Create apps that allow players to interact with each other using GameKit.

GameKit Documentation

Posts under GameKit subtopic

Post

Replies

Boosts

Views

Activity

Using video chat instead of voice chat on online game ?
Hello, I am building an app that requires players joined to an online game session and to have a video chat with both of their front cameras turned on. I currently know that GameKit supports the voice chat option but could not find any source for video chat. Is it possible set up a video chat on an online game session?. What libraries can I use that have support in implementing the video chat (AVFoundation) ? Your assistance is greatly appreciated.
2
0
1.3k
Feb ’24
[iOS 17] GKAppLevelSignInVisibility fetchAppLevelVisibilityConstraintsWithHandler crash
We noticing below crash mainly happening in iOS 17. Can someone check and confirm what is the root cause for this and how to fix the crash. GKAppLevelSignInVisibility fetchAppLevelVisibilityConstraintsWithHandler Thread 36 Crashed: 0 CoreFoundation 0x00000001904a9d6c -[__NSDictionaryM setObject:forKeyedSubscript:] + 452 (NSDictionaryM.m:202) 1 GameCenterUICore 0x000000020fe6d508 __76+[GKAppLevelSignInVisibility fetchAppLevelVisibilityConstraintsWithHandler:]_block_invoke_3 + 84 (GKAppLevelSignInVisibility.m:82) 2 GameCenterFoundation 0x00000001c8b8971c @objc closure #1 in LimitedPresentationManager.presentationDisabled(config:context:) + 268 3 GameCenterFoundation 0x00000001c8b8b111 partial apply for @objc closure #1 in LimitedPresentationManager.presentationDisabled(config:context:) + 1 4 GameCenterFoundation 0x00000001c8b8b101 thunk for @escaping @callee_guaranteed @Sendable @async () -> () + 1 5 GameCenterFoundation 0x00000001c8b8b105 partial apply for thunk for @escaping @callee_guaranteed @Sendable @async () -> () + 1 6 GameCenterFoundation 0x00000001c8b8aa0d specialized thunk for @escaping @callee_guaranteed @Sendable @async () -> (@out A) + 1 (:0) 7 GameCenterFoundation 0x00000001c8b8ab6d partial apply for specialized thunk for @escaping @callee_guaranteed @Sendable @async () -> (@out A) + 1 (:0) 8 libswift_Concurrency.dylib 0x000000019b78da41 completeTaskWithClosure(swift::AsyncContext*, swift::SwiftError*) + 1 (Task.cpp:463) Full iOS crash log
1
0
4.1k
Feb ’24
AGPT not working properly.
I am on a MacBook Pro 2023. 16inch, 16gb ram, 1tb drive. I am on the latest MacOs (Sonoma 14.3.1) and using the steps from the Apple Gaming Wiki to download the Game Porting Toolkit. I have met all the requirements. I tried using the automated installer, didn't work. I tried doing homebrew, and it worked all up until I got to the step where I had to run the command to download Apple tap: brew tap apple/apple http://github.com/apple/homebrew-apple I get this error: Logs: /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/00.options.out /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/01.configure /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/01.configure.cc /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/02.make /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/wine64-build If reporting this issue please do so to (not Homebrew/brew or Homebrew/homebrew-core): apple/apple
2
1
953
Feb ’24
DS4macOS Compiled Things Partially and Run But it Has 30+ Yellow Warnings & Doesn't Show the Setting
Hi Apple and Swift friends. I'm not really a fluent Swift programmer (or any language) just knowledgable, I just a vague logic of what's going on. This is a gamepad controller remapper similar to DS4Windows on the PC and DSX on Steam gaming. On macOS Sonoma, it successfully compiled and connected the amazing Sony Playstation DualSense but because it has 33 yellow warning, the Setting doesn't show. It says something about outdated something and needs to be replaced by a newer framework.network. It also says it can't use self: It should look like these: What could be the syntax changes that won't produce the 30+ yellow warnings? The file can be had here: [https://github.com/marcowindt/ds4macos) God bless.
0
0
1.1k
Feb ’24
Game Porting Toolkit Error
I tried twice to install homebrew and I got a error message twice: Error: apple/apple/game-porting-toolkit 1.1 did not build Logs: /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/00.options.out /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/01.configure /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/01.configure.cc /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/02.make /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/wine64-build If reporting this issue please do so to (not Homebrew/brew or Homebrew/homebrew-core): apple/apple
1
1
2.3k
Jan ’24
Matchmaker connecting issues on Mobile network
I'm trying to establish a connection between two devices using mobile network. The config in both devices are ok allowing use mobile data for the app. I'm able to connect and start the game with WIFI networ `// Initiate matchmaking - (void)initiateMatchmakingWithViewController:(UIViewController*)rustViewController { dispatch_async(dispatch_get_main_queue(), ^{ if (![GKLocalPlayer localPlayer].isAuthenticated) { NSLog(@"Player is not authenticated."); return; } NSLog(@"Preparing MatchMaker"); GKMatchRequest *request = [[GKMatchRequest alloc] init]; request.minPlayers = 2; request.maxPlayers = 2; GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithMatchRequest:request]; mmvc.matchmakerDelegate = self; // Use the passed view controller to present the matchmaking UI [rustViewController presentViewController:mmvc animated:YES completion:nil]; NSLog(@"MatchMaker running...."); // Store the rustViewController for later, to revert back to it originalViewController = rustViewController; }); } // GKMatchmakerViewControllerDelegate methods - (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController { [originalViewController dismissViewControllerAnimated:YES completion:nil]; NSLog(@"Matchmaking was cancelled."); } - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFailWithError:(NSError *)error { [originalViewController dismissViewControllerAnimated:YES completion:nil]; NSLog(@"Matchmaking failed with error: %@", error.localizedDescription); } - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match { [originalViewController dismissViewControllerAnimated:YES completion:nil]; self.currentMatch = match; match.delegate = self; NSLog(@"Match found."); // Fetch details for each player in the match NSMutableArray<NSString *> *playerIDs = [NSMutableArray array]; for (GKPlayer *player in match.players) { [playerIDs addObject:player.playerID]; } [GKPlayer loadPlayersForIdentifiers:playerIDs withCompletionHandler:^(NSArray<GKPlayer *> *players, NSError *error) { if (error) { NSLog(@"Error retrieving player details: %@", error.localizedDescription); return; } for (GKPlayer *player in players) { if (![player.playerID isEqualToString:GKLocalPlayer.localPlayer.playerID]) { [self loadAndStoreAvatarForRemotePlayer:player]; } } }]; }` I can see how both clients are in state "connecting" but the log "Match found." it's never set. I also can see this log "[Match] syncPlayers failed to loadPlayersForLegacyIdentifiers"
1
2
656
Jan ’24
GKLocalPlayer.Local.FetchItems() Task Error on Unity
We are using apple unity plugin (gamekit) to authorized player using game center account. To get player the info we run a task from the plugin, var fetchItemsResponse = await GKLocalPlayer.Local.FetchItems(); But when this code run, there is an error on the xcode application on mac. The error is the following, Thread 1: EXC_BAD_ACCESS (code=257, address=0x2)
15
0
4.6k
Jan ’24
Game Center MatchMaker only work on WIFI
I'm working in a game where I integrate matchmaker and it's working fine when I try with two devices under same wifi network, but in the moment I use 5g mobile network and I do the matchmaker, I can still see each other but the game did not start and I see error sending data to the remote player. The game is not yet published and I'm using TestFlight for the clients.
0
0
771
Jan ’24
MacOS cannot send and receive Game Center multiplayer Invitation
I'm trying to implement multiplayer invitation from game center for macos, ios, tvos following this https://developer.apple.com/documentation/gamekit/finding_multiple_players_for_a_game?language=objc Implementation works for tvos and ios, I can invite my friends, Start Game and continue sending data. But macos still doesn't work at all. I tried using build that works on iOS to invite macos player, but my mac cannot even receive the invitation notification from game center (game is installed already on mac). While from mac, my invitation process is stuck here until it's failed Is there any specific setting on macos to enable game center invitation?
2
0
906
Jan ’24
GameKit - iCloud Sign In Error
Hi everyone, I'm trying to implement matchmaking in visionOS using GameKit and GameCenter. I'm following the example project that been shared but I get an error. Error: The requested operation could not be completed because you are not signed in to iCloud.. I'm getting this error as a result of matchmaking. I'm already logged in to iCloud in Vision Pro Simulator. I've tried to switch off-on every related settings but didn't work. I'm using latest Xcode Dev Beta and visionOS Beta v6. Would you mind share me any workaround? Regards, Melih
3
0
1.4k
Jan ’24
Bad network latency when using Game Center for real-time multiplayer
In our multiplayer game prototype, we experience a ping of 300 ms (at best) when using Game Center and GKMatch to send data between players, over the GKMatch.SendDataMode.unreliable channel. This latency is not suitable for a real-time game. When we tested alternative services like Unity's Relay under identical conditions (location, devices, and Wi-Fi), we achieved a ping of 120 ms. Is a ping value of 300 ms typical when using Game Center? I can think of possible reasons in case it's not typical, but I can't be sure: Is there a different behavior (servers relaying peer-to-peer connections) when the game is not yet released on the store? We're in Europe, maybe this is normal in Europe and better in US?
0
0
767
Jan ’24
Can't start a game in Game Center (GameKit)
I'm working in a game that it was working perfectly with Game Center (remote game with 1 remote player), but since last Sunday I'm having errors when I try to start a remote game. I have 2 errors, one says FAILED when I invite a friend to play. In this case, the other device never gets the notification. The other error sent the notification, but when I tap on it (on the other device), it fails saying that it couldn't communicate with the server). The main device it says "INVITED" but it doesn't say anything else. I haven't found anyone else having the same issue, so I wonder if it's my fault, although I haven't change that part of the code since the last time I tested it. Is it someone else here having similar problems? or knows what should I review? thank you all, and have a great year!
1
0
943
Jan ’24
GCSystemGestureStateDisabled is now working on macOS 14.2
I am using GCSystemGestureStateDisabled to suppress home button being capture by gesture recognizer so the system menu is not triggered while my app is using the gamepad. It was working well on macOS 14.1 but stop working after I migrated to 14.2. boundToSystemGesture is still showing "Yes" after button.preferredSystemGestureState = GCSystemGestureStateDisabled is assigned. Is it possible some change was introduced on 14.2 causing the issue?
1
0
872
Dec ’23
[VisionOS] Crash on Present / Show GameCenter UI on VisionOS
I'm trying to display the native GameCenter interface from Unity (I've already tried Bounded and Unbouded Volume Mode, that is, with and without Full Immersive Mode) but I can't display this interface. If I use Unity's SocialAPI (https://docs.unity3d.com/ScriptReference/Social.ShowLeaderboardUI.html), nothing is displayed, and I get the following message in XCode (simulator): [u 9C225095-F55E-42CC-8136-957279631DF3:m (null)] [com.apple.GameCenterUI.GameCenterDashboardExtension(1.0)] Connection to plugin interrupted while in use. setViewControllers:animated: called on <GKGameCenterViewController 0x106825600> while an existing transition or presentation is occurring; the navigation stack will not be updated. Type: Notice | Timestamp: 2023-12-08 12:13:50.585973+01:00 | Process: leaderboard-test | Library: UIKitCore | TID: 0x3e57bd viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted} Type: Notice | Timestamp: 2023-12-08 12:13:50.586997+01:00 | Process: leaderboard-test | Library: UIKitCore | TID: 0x3e57bd [u 9C225095-F55E-42CC-8136-957279631DF3:m (null)] [com.apple.GameCenterUI.GameCenterDashboardExtension(1.0)] Connection to plugin invalidated while in use. Type: Error | Timestamp: 2023-12-08 12:13:50.588393+01:00 | Process: leaderboard-test | Library: PlugInKit | Subsystem: com.apple.PlugInKit | Category: lifecycle | TID: 0x3e5a18 If I try to do it using Apple's plugin for GameCenter (GameKitWrapper) adapted to VisionOS, the application crashes with the following error: "Presentations are not permitted within volumetric window scenes." *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Presentations are not permitted within volumetric window scenes.' *** First throw call stack: ( 0 CoreFoundation 0x00000001804a510c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x0000000180082f50 objc_exception_throw + 56 2 UIKitCore 0x0000000184bc2798 -[UIViewController _presentViewController:withAnimationController:completion:] + 1136 3 UIKitCore 0x0000000184bc4000 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 88 4 UIKitCore 0x0000000184bc42d0 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 484 5 UIKitCore 0x0000000184bc3f6c -[UIViewController _presentViewController:animated:completion:] + 160 6 UIKitCore 0x0000000184bc4374 -[UIViewController presentViewController:animate *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Presentations are not permitted within volumetric window scenes.' *** First throw call stack: ( 0 CoreFoundation 0x00000001804a510c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x0000000180082f50 objc_exception_throw + 56 2 UIKitCore 0x0000000184bc2798 -[UIViewController _presentViewController:withAnimationController:completion:] + 1136 3 UIKitCore 0x0000000184bc4000 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 88 4 UIKitCore 0x0000000184bc42d0 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 484 5 UIKitCore 0x0000000184bc3f6c -[UIViewController _presentViewController:animated:completion:] + 160 6 UIKitCore 0x0000000184bc4374 -[UIViewController presentViewController:animated:completion:] + 140 7 GameKitWrapper 0x00000001057aa864 $s14GameKitWrapper34GKGameCenterViewController_Present7pointer6taskId9onSuccessySv_s5Int64VyAGXCtF ... ) The code that produces this crash is the following (trying to display the GameCenter UI): let viewController = UIApplication.shared.windows.first!.rootViewController; viewController?.present(target, animated: true); @_cdecl("GKGameCenterViewController_Present") public func GKGameCenterViewController_Present ( pointer: UnsafeMutableRawPointer, taskId: Int64, onSuccess: @escaping SuccessTaskCallback ) { let target = Unmanaged<GKGameCenterViewController>.fromOpaque(pointer).takeUnretainedValue(); _currentPresentingGameCenterDelegate = GameKitUIDelegateHandler(taskId: taskId, onSuccess: onSuccess); target.gameCenterDelegate = _currentPresentingGameCenterDelegate; #if os(iOS) || os(tvOS) || os(visionOS) let viewController = UIApplication.shared.windows.first!.rootViewController; viewController?.present(target, animated: true); #endif } Is there a way to present the GameCenter UI overlaid on the Unity app?
1
1
1.4k
Dec ’23
Leaderboards for development and live environments
Hello, I'm working on a game application and I've been wondering about how I can separate the GameKit Leaderboards I'm using for testing purpose and the ones that would be "live" (i.e: only for the users) I've been point out that I can attach leaderboards to an app version but it makes me wondering about compatibility. I'm working on the application in version 1.1. My users are using the application in version 1.0 (with their leaderboards). Then I'm releasing a version 1.2. It would means I need to attach all the leaderboards from version 1.0 to version 1.2 and to me it's very tedious. What would be the best practice with using leaderboards on multiple environments? Thanks
0
0
590
Nov ’23
Is iPhone 17.3.1 supported GCMouse?
In my code,i use GCMouse to detect mouse event and it works fine in iOS 16, but while i upgrade my iPhone to iOS 17.3.1, GCMouse doesn't works. But it works fine in IPad 17.3.1. How can i detect mouse event i iOS 17.3.1?
Replies
2
Boosts
0
Views
1.1k
Activity
Mar ’24
Using video chat instead of voice chat on online game ?
Hello, I am building an app that requires players joined to an online game session and to have a video chat with both of their front cameras turned on. I currently know that GameKit supports the voice chat option but could not find any source for video chat. Is it possible set up a video chat on an online game session?. What libraries can I use that have support in implementing the video chat (AVFoundation) ? Your assistance is greatly appreciated.
Replies
2
Boosts
0
Views
1.3k
Activity
Feb ’24
[iOS 17] GKAppLevelSignInVisibility fetchAppLevelVisibilityConstraintsWithHandler crash
We noticing below crash mainly happening in iOS 17. Can someone check and confirm what is the root cause for this and how to fix the crash. GKAppLevelSignInVisibility fetchAppLevelVisibilityConstraintsWithHandler Thread 36 Crashed: 0 CoreFoundation 0x00000001904a9d6c -[__NSDictionaryM setObject:forKeyedSubscript:] + 452 (NSDictionaryM.m:202) 1 GameCenterUICore 0x000000020fe6d508 __76+[GKAppLevelSignInVisibility fetchAppLevelVisibilityConstraintsWithHandler:]_block_invoke_3 + 84 (GKAppLevelSignInVisibility.m:82) 2 GameCenterFoundation 0x00000001c8b8971c @objc closure #1 in LimitedPresentationManager.presentationDisabled(config:context:) + 268 3 GameCenterFoundation 0x00000001c8b8b111 partial apply for @objc closure #1 in LimitedPresentationManager.presentationDisabled(config:context:) + 1 4 GameCenterFoundation 0x00000001c8b8b101 thunk for @escaping @callee_guaranteed @Sendable @async () -> () + 1 5 GameCenterFoundation 0x00000001c8b8b105 partial apply for thunk for @escaping @callee_guaranteed @Sendable @async () -> () + 1 6 GameCenterFoundation 0x00000001c8b8aa0d specialized thunk for @escaping @callee_guaranteed @Sendable @async () -> (@out A) + 1 (:0) 7 GameCenterFoundation 0x00000001c8b8ab6d partial apply for specialized thunk for @escaping @callee_guaranteed @Sendable @async () -> (@out A) + 1 (:0) 8 libswift_Concurrency.dylib 0x000000019b78da41 completeTaskWithClosure(swift::AsyncContext*, swift::SwiftError*) + 1 (Task.cpp:463) Full iOS crash log
Replies
1
Boosts
0
Views
4.1k
Activity
Feb ’24
AGPT not working properly.
I am on a MacBook Pro 2023. 16inch, 16gb ram, 1tb drive. I am on the latest MacOs (Sonoma 14.3.1) and using the steps from the Apple Gaming Wiki to download the Game Porting Toolkit. I have met all the requirements. I tried using the automated installer, didn't work. I tried doing homebrew, and it worked all up until I got to the step where I had to run the command to download Apple tap: brew tap apple/apple http://github.com/apple/homebrew-apple I get this error: Logs: /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/00.options.out /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/01.configure /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/01.configure.cc /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/02.make /Users/MYNAME/Library/Logs/Homebrew/game-porting-toolkit/wine64-build If reporting this issue please do so to (not Homebrew/brew or Homebrew/homebrew-core): apple/apple
Replies
2
Boosts
1
Views
953
Activity
Feb ’24
Cant install EAapp on mac using whisky
i try to run EAappInstaller.exe on whisky. and here was what came out.i just cant install EA app.please help.thanks ahead
Replies
0
Boosts
0
Views
1.9k
Activity
Feb ’24
DS4macOS Compiled Things Partially and Run But it Has 30+ Yellow Warnings & Doesn't Show the Setting
Hi Apple and Swift friends. I'm not really a fluent Swift programmer (or any language) just knowledgable, I just a vague logic of what's going on. This is a gamepad controller remapper similar to DS4Windows on the PC and DSX on Steam gaming. On macOS Sonoma, it successfully compiled and connected the amazing Sony Playstation DualSense but because it has 33 yellow warning, the Setting doesn't show. It says something about outdated something and needs to be replaced by a newer framework.network. It also says it can't use self: It should look like these: What could be the syntax changes that won't produce the 30+ yellow warnings? The file can be had here: [https://github.com/marcowindt/ds4macos) God bless.
Replies
0
Boosts
0
Views
1.1k
Activity
Feb ’24
Xbox Controller won't connect to Macbook Air M1
I have my Xbox Controller plugged into my Macbook, but my controller won't stay on (no batteries are needed for this controller, and the plug I am using works). Also in system settings when I scroll to Xbox Controllers it says no devices found. How do I fix this?
Replies
0
Boosts
0
Views
921
Activity
Feb ’24
Game Porting Toolkit Error
I tried twice to install homebrew and I got a error message twice: Error: apple/apple/game-porting-toolkit 1.1 did not build Logs: /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/00.options.out /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/01.configure /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/01.configure.cc /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/02.make /Users/omarzunun/Library/Logs/Homebrew/game-porting-toolkit/wine64-build If reporting this issue please do so to (not Homebrew/brew or Homebrew/homebrew-core): apple/apple
Replies
1
Boosts
1
Views
2.3k
Activity
Jan ’24
Matchmaker connecting issues on Mobile network
I'm trying to establish a connection between two devices using mobile network. The config in both devices are ok allowing use mobile data for the app. I'm able to connect and start the game with WIFI networ `// Initiate matchmaking - (void)initiateMatchmakingWithViewController:(UIViewController*)rustViewController { dispatch_async(dispatch_get_main_queue(), ^{ if (![GKLocalPlayer localPlayer].isAuthenticated) { NSLog(@"Player is not authenticated."); return; } NSLog(@"Preparing MatchMaker"); GKMatchRequest *request = [[GKMatchRequest alloc] init]; request.minPlayers = 2; request.maxPlayers = 2; GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithMatchRequest:request]; mmvc.matchmakerDelegate = self; // Use the passed view controller to present the matchmaking UI [rustViewController presentViewController:mmvc animated:YES completion:nil]; NSLog(@"MatchMaker running...."); // Store the rustViewController for later, to revert back to it originalViewController = rustViewController; }); } // GKMatchmakerViewControllerDelegate methods - (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController { [originalViewController dismissViewControllerAnimated:YES completion:nil]; NSLog(@"Matchmaking was cancelled."); } - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFailWithError:(NSError *)error { [originalViewController dismissViewControllerAnimated:YES completion:nil]; NSLog(@"Matchmaking failed with error: %@", error.localizedDescription); } - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match { [originalViewController dismissViewControllerAnimated:YES completion:nil]; self.currentMatch = match; match.delegate = self; NSLog(@"Match found."); // Fetch details for each player in the match NSMutableArray<NSString *> *playerIDs = [NSMutableArray array]; for (GKPlayer *player in match.players) { [playerIDs addObject:player.playerID]; } [GKPlayer loadPlayersForIdentifiers:playerIDs withCompletionHandler:^(NSArray<GKPlayer *> *players, NSError *error) { if (error) { NSLog(@"Error retrieving player details: %@", error.localizedDescription); return; } for (GKPlayer *player in players) { if (![player.playerID isEqualToString:GKLocalPlayer.localPlayer.playerID]) { [self loadAndStoreAvatarForRemotePlayer:player]; } } }]; }` I can see how both clients are in state "connecting" but the log "Match found." it's never set. I also can see this log "[Match] syncPlayers failed to loadPlayersForLegacyIdentifiers"
Replies
1
Boosts
2
Views
656
Activity
Jan ’24
GKLocalPlayer.Local.FetchItems() Task Error on Unity
We are using apple unity plugin (gamekit) to authorized player using game center account. To get player the info we run a task from the plugin, var fetchItemsResponse = await GKLocalPlayer.Local.FetchItems(); But when this code run, there is an error on the xcode application on mac. The error is the following, Thread 1: EXC_BAD_ACCESS (code=257, address=0x2)
Replies
15
Boosts
0
Views
4.6k
Activity
Jan ’24
Game Center MatchMaker only work on WIFI
I'm working in a game where I integrate matchmaker and it's working fine when I try with two devices under same wifi network, but in the moment I use 5g mobile network and I do the matchmaker, I can still see each other but the game did not start and I see error sending data to the remote player. The game is not yet published and I'm using TestFlight for the clients.
Replies
0
Boosts
0
Views
771
Activity
Jan ’24
MacOS cannot send and receive Game Center multiplayer Invitation
I'm trying to implement multiplayer invitation from game center for macos, ios, tvos following this https://developer.apple.com/documentation/gamekit/finding_multiple_players_for_a_game?language=objc Implementation works for tvos and ios, I can invite my friends, Start Game and continue sending data. But macos still doesn't work at all. I tried using build that works on iOS to invite macos player, but my mac cannot even receive the invitation notification from game center (game is installed already on mac). While from mac, my invitation process is stuck here until it's failed Is there any specific setting on macos to enable game center invitation?
Replies
2
Boosts
0
Views
906
Activity
Jan ’24
GameKit - iCloud Sign In Error
Hi everyone, I'm trying to implement matchmaking in visionOS using GameKit and GameCenter. I'm following the example project that been shared but I get an error. Error: The requested operation could not be completed because you are not signed in to iCloud.. I'm getting this error as a result of matchmaking. I'm already logged in to iCloud in Vision Pro Simulator. I've tried to switch off-on every related settings but didn't work. I'm using latest Xcode Dev Beta and visionOS Beta v6. Would you mind share me any workaround? Regards, Melih
Replies
3
Boosts
0
Views
1.4k
Activity
Jan ’24
Bad network latency when using Game Center for real-time multiplayer
In our multiplayer game prototype, we experience a ping of 300 ms (at best) when using Game Center and GKMatch to send data between players, over the GKMatch.SendDataMode.unreliable channel. This latency is not suitable for a real-time game. When we tested alternative services like Unity's Relay under identical conditions (location, devices, and Wi-Fi), we achieved a ping of 120 ms. Is a ping value of 300 ms typical when using Game Center? I can think of possible reasons in case it's not typical, but I can't be sure: Is there a different behavior (servers relaying peer-to-peer connections) when the game is not yet released on the store? We're in Europe, maybe this is normal in Europe and better in US?
Replies
0
Boosts
0
Views
767
Activity
Jan ’24
Can't start a game in Game Center (GameKit)
I'm working in a game that it was working perfectly with Game Center (remote game with 1 remote player), but since last Sunday I'm having errors when I try to start a remote game. I have 2 errors, one says FAILED when I invite a friend to play. In this case, the other device never gets the notification. The other error sent the notification, but when I tap on it (on the other device), it fails saying that it couldn't communicate with the server). The main device it says "INVITED" but it doesn't say anything else. I haven't found anyone else having the same issue, so I wonder if it's my fault, although I haven't change that part of the code since the last time I tested it. Is it someone else here having similar problems? or knows what should I review? thank you all, and have a great year!
Replies
1
Boosts
0
Views
943
Activity
Jan ’24
GCSystemGestureStateDisabled is now working on macOS 14.2
I am using GCSystemGestureStateDisabled to suppress home button being capture by gesture recognizer so the system menu is not triggered while my app is using the gamepad. It was working well on macOS 14.1 but stop working after I migrated to 14.2. boundToSystemGesture is still showing "Yes" after button.preferredSystemGestureState = GCSystemGestureStateDisabled is assigned. Is it possible some change was introduced on 14.2 causing the issue?
Replies
1
Boosts
0
Views
872
Activity
Dec ’23
Current player score and position - Apple.GameKit
How to get current player score and position? Thanks!
Replies
0
Boosts
0
Views
542
Activity
Dec ’23
[VisionOS] Crash on Present / Show GameCenter UI on VisionOS
I'm trying to display the native GameCenter interface from Unity (I've already tried Bounded and Unbouded Volume Mode, that is, with and without Full Immersive Mode) but I can't display this interface. If I use Unity's SocialAPI (https://docs.unity3d.com/ScriptReference/Social.ShowLeaderboardUI.html), nothing is displayed, and I get the following message in XCode (simulator): [u 9C225095-F55E-42CC-8136-957279631DF3:m (null)] [com.apple.GameCenterUI.GameCenterDashboardExtension(1.0)] Connection to plugin interrupted while in use. setViewControllers:animated: called on <GKGameCenterViewController 0x106825600> while an existing transition or presentation is occurring; the navigation stack will not be updated. Type: Notice | Timestamp: 2023-12-08 12:13:50.585973+01:00 | Process: leaderboard-test | Library: UIKitCore | TID: 0x3e57bd viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted} Type: Notice | Timestamp: 2023-12-08 12:13:50.586997+01:00 | Process: leaderboard-test | Library: UIKitCore | TID: 0x3e57bd [u 9C225095-F55E-42CC-8136-957279631DF3:m (null)] [com.apple.GameCenterUI.GameCenterDashboardExtension(1.0)] Connection to plugin invalidated while in use. Type: Error | Timestamp: 2023-12-08 12:13:50.588393+01:00 | Process: leaderboard-test | Library: PlugInKit | Subsystem: com.apple.PlugInKit | Category: lifecycle | TID: 0x3e5a18 If I try to do it using Apple's plugin for GameCenter (GameKitWrapper) adapted to VisionOS, the application crashes with the following error: "Presentations are not permitted within volumetric window scenes." *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Presentations are not permitted within volumetric window scenes.' *** First throw call stack: ( 0 CoreFoundation 0x00000001804a510c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x0000000180082f50 objc_exception_throw + 56 2 UIKitCore 0x0000000184bc2798 -[UIViewController _presentViewController:withAnimationController:completion:] + 1136 3 UIKitCore 0x0000000184bc4000 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 88 4 UIKitCore 0x0000000184bc42d0 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 484 5 UIKitCore 0x0000000184bc3f6c -[UIViewController _presentViewController:animated:completion:] + 160 6 UIKitCore 0x0000000184bc4374 -[UIViewController presentViewController:animate *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Presentations are not permitted within volumetric window scenes.' *** First throw call stack: ( 0 CoreFoundation 0x00000001804a510c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x0000000180082f50 objc_exception_throw + 56 2 UIKitCore 0x0000000184bc2798 -[UIViewController _presentViewController:withAnimationController:completion:] + 1136 3 UIKitCore 0x0000000184bc4000 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 88 4 UIKitCore 0x0000000184bc42d0 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 484 5 UIKitCore 0x0000000184bc3f6c -[UIViewController _presentViewController:animated:completion:] + 160 6 UIKitCore 0x0000000184bc4374 -[UIViewController presentViewController:animated:completion:] + 140 7 GameKitWrapper 0x00000001057aa864 $s14GameKitWrapper34GKGameCenterViewController_Present7pointer6taskId9onSuccessySv_s5Int64VyAGXCtF ... ) The code that produces this crash is the following (trying to display the GameCenter UI): let viewController = UIApplication.shared.windows.first!.rootViewController; viewController?.present(target, animated: true); @_cdecl("GKGameCenterViewController_Present") public func GKGameCenterViewController_Present ( pointer: UnsafeMutableRawPointer, taskId: Int64, onSuccess: @escaping SuccessTaskCallback ) { let target = Unmanaged<GKGameCenterViewController>.fromOpaque(pointer).takeUnretainedValue(); _currentPresentingGameCenterDelegate = GameKitUIDelegateHandler(taskId: taskId, onSuccess: onSuccess); target.gameCenterDelegate = _currentPresentingGameCenterDelegate; #if os(iOS) || os(tvOS) || os(visionOS) let viewController = UIApplication.shared.windows.first!.rootViewController; viewController?.present(target, animated: true); #endif } Is there a way to present the GameCenter UI overlaid on the Unity app?
Replies
1
Boosts
1
Views
1.4k
Activity
Dec ’23
Leaderboards for development and live environments
Hello, I'm working on a game application and I've been wondering about how I can separate the GameKit Leaderboards I'm using for testing purpose and the ones that would be "live" (i.e: only for the users) I've been point out that I can attach leaderboards to an app version but it makes me wondering about compatibility. I'm working on the application in version 1.1. My users are using the application in version 1.0 (with their leaderboards). Then I'm releasing a version 1.2. It would means I need to attach all the leaderboards from version 1.0 to version 1.2 and to me it's very tedious. What would be the best practice with using leaderboards on multiple environments? Thanks
Replies
0
Boosts
0
Views
590
Activity
Nov ’23
Playstation controller touchpad support in GCControllerLiveInput?
I tried to update my current game controller code to the new iOS 17.0 GCControllerLiveInput. But the Touchpads of the PS4 and PS5 controllers are not listed as elements of the GCControllerLiveInput. Were they moved somewhere else? They are not listed as a GCMouse, and I didn't find anything about this in the documentation or header files either...
Replies
1
Boosts
0
Views
1.8k
Activity
Nov ’23