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

GameKit Documentation

Post

Replies

Boosts

Views

Activity

Display number of players online for online matchmaking(GameKit)?
Hello, has anyone been able to implement in their game a way to display the number of players currently online in their game?. I thought up of this feature and thought it will be useful for players to find out if there is anyone currently online so that they don't waste their time trying to find a random online match. Any help will be greatly appreciated. Kind regards, Jabir Abdi
1
1
459
Aug ’24
Open Leaderboard using Apple Unity Plugin GameKit
This may be a bit dumb but I've really been having trouble with understanding the documentation for Apple's Unity Plugins. I wanted to implement Game Center functionality on my game. So far the only line of code I've managed to get working is the authentication, in which I did async void Start() { await Login(); } public async Task Login() { if (!GKLocalPlayer.Local.IsAuthenticated) { var player = await GKLocalPlayer.Authenticate(); var localPlayer = GKLocalPlayer.Local; ] } However, I'm at a complete loss as to how to open leaderboards. I followed the documentation given: void OpenLeaderboard() { var allLeaderboards = await GKLeaderboard.LoadLeaderboards(); var filteredLeaderboards = await GKLeaderboard.LoadLeaderboards("leaderboardIwant1"); } But it did not work. What did I do wrong? Am I missing a function to get it to work? Why can't Apple write proper documentation to properly implement this in a simple way? My apologies for my frustration. Up until now I've used another plugin from the Unity Asset Store which is shockingly easy to use, but I decided to attempt to use Apple's system because the plugin I had used deprecated functions and I was afraid the App Store would not approve it. But Apple's own plugins are stunningly opaque and hard to test. As additional questions (but not the main ones), I'm also completely at a loss how to submit scores or load specific leaderboards and Apple's documentation does nothing to help there either. Any help or thoughts are appreciated. Thanks.
1
0
455
Jul ’24
GKMatchmaker suddenly not able to connect to players
In the last several days I've gotten reports from customers saying that Game Center suddenly cannot connect to players. I was able to verify this myself. It will find players to match, but then during the Connecting process it just sits there indefinitely with a spinning thing. Up until maybe 4 days ago this had worked fine for the last 12+ years, so something on the Game Center server broke. Is anyone else experiencing the same problem?
2
0
469
Jul ’24
Game Center Notifications do not include GKMessageImage.png
Hello, Asking the following as, I was unable to find answers via search on the forum and in the documentation: Invitations sent via iMessage seem to work correctly with my custom image ( GKMessageImage.png ) however, notifications sent to Game Center Friends via invites generated in Game Center do not include the custom image ( GKMessageImage.png ). Questions: Is this expected behavior? Is there a different way to customize the image in the notification? Note the Game Center notification includes the App name correctly. I also noted in the WWDC session in 2016 ( saw video recently ) that there was some mention of no longer adding friends via Game Center. Is that currently true? Thanks in advance.
1
0
526
Jul ’24
WebGL canvas stop rendering.
https://vimeo.com/957974306 Canvas #1(Unity) stopped rendering context when I switch tab on inspector. Also my device 13 pro max running iOS 17.5.1 lost context when I screenshot. It has no log in console. Not happened on 13 pro max running iOS 16.4
1
0
356
Jul ’24
Inquiry about Background Assets and User Experience in App Store
Dear Apple Developer Support, I have a question regarding the Background Assets feature for a game we are planning to release on the App Store. Specifically, I would like to understand the user experience during the initial installation process. If our game utilizes the Background Assets feature and we have essential assets specified in the BAExtension, will the end user need to wait for these essential assets to be fully downloaded before they can open the game after installing it from the App Store? Additionally, during this download process, will there be any indication of the essential assets' download status on the App Store or on the home screen icon of the game? Your guidance on how this process is managed and what the user can expect would be greatly appreciated. Thank you for your assistance.
2
0
527
Jul ’24
GKVoiceChat not working despite online game successfully connected online
Hello, First of all, I understand that GKVoiceChat has been deprecated and replaced by shareplay but for my situation, it does not seem useful as I will be matching with the random players hence I can not utilise the Facetime(Shareplay) capability. I have set up a voice chat function using the GKVoiceChat object, my game connects with another player successfully but the voice chat does not work for some reason. The code snippet below is how I implemented it with the help of the tutorial from : apple (Start Voice chat between players) class OnlineGame { var voiceChat: GKVoiceChat? = nil ... // When online game succesfully connected and game view loaded self.startVoiceChat() func startVoiceChat() { // Handle an unknown, connected, or disconnected player state. /// - Tag:voiceChatChangeHandler /// if voiceChat == nil { // Create the voice chat object. voiceChat = myMatch?.voiceChat(withName: "Gamesession") } let voiceChatChangeHandler = { (player: GKPlayer, state: GKVoiceChat.PlayerState) -> Void in switch state { case GKVoiceChat.PlayerState.connected: self.voicechatstate = 1 case GKVoiceChat.PlayerState.disconnected: self.voicechatstate = 2 case GKVoiceChat.PlayerState.speaking: self.voicechatstate = 3 case GKVoiceChat.PlayerState.silent: self.voicechatstate = 4 case GKVoiceChat.PlayerState.connecting: self.voicechatstate = 5 @unknown default: print("Player unknown state.") } } // Exit early if the app can't start a voice chat session. guard let voiceChat = voiceChat else { return } // Handle an unknown, connected, or disconnected player state. voiceChat.playerVoiceChatStateDidChangeHandler = voiceChatChangeHandler // Set the audio volume. // Activate the shared audio session. do { let audioSession = AVAudioSession.sharedInstance() try audioSession.setCategory(AVAudioSession.Category.playAndRecord, mode: AVAudioSession.Mode.gameChat, options: AVAudioSession.CategoryOptions.allowBluetooth) try audioSession.setActive(true, options: []) } catch { print("ERROR: \(error.localizedDescription).") } voiceChat.volume = 0.8 voiceChat.start() voiceChat.isActive = true } } Thats my implementation of it and hope it explains my issue. Thanks for your assistance in advance!.
0
0
453
Jul ’24
Unity Apple Plugin GameKit Error 37 when sending build to app review
I'm using the Apple Unity Plugins to use Game Center to authenticate Playfab accounts for my game and when I test this on testflight, everything works fine for me and the people I've tested with, however, when I send the build to review, they are getting GameKitException 37 which states "This game is not listed in a marketplace that supports Game Center" and upon further research I found this page https://developer.apple.com/documentation/gamekit/gkerror/code/appunlisted which I'm assuming is the same thing. This seems to suggest that I need my app to be listed on the App Store which is strange because this has created a what comes first, the chicken or the egg problem. I need to pass review to get the game listed in the App Store and they can't test the game because accounts cannot be authenticated with Game Center which apparently needs to be listed on the App Store. So far, I can't find the reason why this doesn't happen on testflight and only happens when I send it to review. I opened a ticket to Apple Developer Support and haven't recieved a response. I asked app review about it and they replied "Hello, Thank you for your response. Since all apps must pass App Review before they can be approved, it should not be necessary to have a "store page". We look forward to reviewing your app once all issues have been addressed and the new build has been received and queued for review. Best regards, App Review" Which doesn't really help me. I am quite pressed for time and I really need assistance in resolving this issue which I cannot replicate. Has anyone encountered this issue or know how to solve it?
5
1
1.5k
Jun ’24
Game Center leaderboard works on TestFlight not on live app
I have a VisionOS app that uses a Game Center Leaderboard. On 'appear' of my content view, I check authentication, and if the user is auth'd, I display a 'leaderboard' button. This works on development / TestFlight – the little floating 'Game Center logged-in' pop up shows up when the app runs, and the button appears. Tapping the button opens the leaderboard, and I can tap over to 'global' and see everyone's scores. However, the app launched today on the App Store, and I'm having some issues. The leaderboard button isn't showing up, meaning that the auth call is probably failing silently. Not sure why. If I log out of Game Center on the device, and re-open the app, I'm able to auth and see my leaderboard button. Once I've done that, the leaderboard seems busted. On App Store Connect I can see the values that I expect (high scores from my beta test flight). But, on the production app, the leaderboard is just empty. And there's no 'global' tab to tap on. Wondering if this is a propagation issue? Like, does it take time to roll out the Game Center entitlements when the app is live? I'm going to distribute promo codes to try and get some more people with the App Store version testing for me to see what happens for them. Any help appreciated!
1
1
760
Jun ’24
Unity GameCenter Leaderboard issue
Hey, i have created a game in unity with the apple core and apple gamekit plugins present. I setup 5 leaderboards on the app store connect. I made a unity build and did the whole testflight build loop to test everything. When i open my gamecenter panel via the button i see my leaderboards but they show as MISSING TITLE which is weird because i have for sure set them up correctly they have a leaderboard reference name and leaderboard id as well. When debugging i can see that when i call my submit score function it gets submitted with no error but then i also dont see the score appear anywhere . Keep in mind the leaderboards are not live and are being tested on testflight first
1
0
692
Jun ’24
Game porting toolkit 1.0.3 to 1.1 update error
It show the following : ==> Upgrading apple/apple/game-porting-toolkit 1.0.3 -> 1.1 ==> Staging /Users/mtahin07/Library/Caches/Homebrew/downloads/7baed2a6fd34b4a641 ==> Patching ==> /private/tmp/game-porting-toolkit-20240619-16666-si8pyg/wine/configure --pre ==> make Last 15 lines from /Users/mtahin07/Library/Logs/Homebrew/game-porting-toolkit/02.make: /private/tmp/game-porting-toolkit-20240619-16666-si8pyg/wine/dlls/crypt32/unixlib.c:641:23: error: use of undeclared identifier 'noErr' if (status == noErr) ^ /private/tmp/game-porting-toolkit-20240619-16666-si8pyg/wine/dlls/crypt32/unixlib.c:647:31: warning: this function declaration is not a prototype [-Wstrict-prototypes] if ((status = SecItemExport(cert, kSecFormatX509Cert, 0, NULL, &certData)) == noErr) ^ /private/tmp/game-porting-toolkit-20240619-16666-si8pyg/wine/dlls/crypt32/unixlib.c:647:51: error: use of undeclared identifier 'kSecFormatX509Cert' if ((status = SecItemExport(cert, kSecFormatX509Cert, 0, NULL, &certData)) == noErr) ^ /private/tmp/game-porting-toolkit-20240619-16666-si8pyg/wine/dlls/crypt32/unixlib.c:647:95: error: use of undeclared identifier 'noErr' if ((status = SecItemExport(cert, kSecFormatX509Cert, 0, NULL, &certData)) == noErr) ^ 2 warnings and 7 errors generated. make: *** [dlls/crypt32/unixlib.o] Error 1 make: *** Waiting for unfinished jobs.... If reporting this issue please do so to (not Homebrew/brew or Homebrew/homebrew-core): apple/apple I can't verify what error occur
1
1
975
Jun ’24
Error: apple/apple/game-porting-toolkit 1.1 did not build
I was trying update gptk, so i removed the old one ( installed by Xcode 15.0 ) and reinstalled it, but accuired a issue: Error: apple/apple/game-porting-toolkit 1.1 did not build Logs: /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/00.options.out /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/01.configure /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/01.configure.cc /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/02.make /Users/CASEM/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 Error: Your Xcode (15.0) is outdated. Please update to Xcode 15.4 (or delete it). Xcode can be updated from the App Store. So I upgrade the Xcode to 15.4 by app store and still encountered: Error: apple/apple/game-porting-toolkit 1.1 did not build Logs: /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/00.options.out /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/01.configure /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/01.configure.cc /Users/CASEM/Library/Logs/Homebrew/game-porting-toolkit/02.make /Users/CASEM/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 I've been reading some post says use 15.1, but still get same error report. What should I do next? Any help woulbe appreciated.
0
0
998
Jun ’24
Couldnt link game on game center
my game center account are linked both on my ipad and iphone but the activity on the game center didnt update when i play games on my ipad. It only linked to games on my phone. So all the games i‘ve downloaded on my ipad arent linked to the game center. Is there any solution so that the games i‘ve downloaded on my ipad could link to the game center? i have tried to turn on and off both on my ipad and iphone but it still only linked to the phone.
0
0
458
Jun ’24
fail install game porting toolkit
when i install game porting toolkit 1.1 ,i got an error as below: Error: Failure while executing; patch -g 0 -f -p0 exited with 2 ==> Installing game-porting-toolkit from apple/apple ==> Staging /Users/***/Library/Caches/Homebrew/downloads/bf215bb93a68251243c69e19a3ba0d670aa82daad63a2bfe24d7ff0a11c2c969--crossover-sources-24.0.2.tar.gz in /private/tmp/game-porting-toolkit-20240520-35139-asrgp4 ==> Patching Error: Failure while executing; patch -g 0 -f -p0 exited with 2. Here's the output: patching file 'wine/include/distversion.h' patching file 'wine/configure guys who knows how to fix it?
0
0
547
May ’24
GameKit leaderboard image fails to load
I've added a recurring leaderboard in App Store Connect which I can get the localized title from, submit scores to, and load players from, but I'm getting an error whenever I try loading the image for it with the instance method for GKLeaderboard, loadImage(). The description from the error is: The requested operation could not be completed due to an error communicating with the server. Both the completion block and async versions of this method yield the same result. I made sure the image is a PNG in 1024x1024, 72 DPI, and in the RGB colorspace. No errors appear after I upload the image. Are there any hidden requirements that might be causing this error? Perhaps there is a waiting period before the server can provide the image?
1
0
550
May ’24
GKTurnBasedMatchmakerViewController disabled "Send Game" when recipients are set
When I run the following code, the Matchmaker view is populated with me (local player) and my opponent (correct picture and friendly name). however, the "Send Game" button is disabled. I assume that recipients is set correctly. There are errors from loadPlayersForIdentifiers . GKMatchRequest *request = [[GKMatchRequest alloc] init]; request.minPlayers = 2; request.maxPlayers = 2; request.defaultNumberOfPlayers = 2; request.inviteMessage = @"Testing"; [GKPlayer loadPlayersForIdentifiers:@[ playerID ] withCompletionHandler:^(NSArray<GKPlayer *> *_Nullable players, NSError *_Nullable error) { if (error) { NSLog(@"Error loading player: %@", error); } else if (players.count > 0) { request.recipients = players; GKTurnBasedMatchmakerViewController *mmvc = [[GKTurnBasedMatchmakerViewController alloc] initWithMatchRequest:request]; mmvc.turnBasedMatchmakerDelegate = self; mmvc.showExistingMatches = NO; [self presentViewController:mmvc animated:YES completion:nil]; } }]; If I remove the opponent, and then re-add them manually, the "Send Game" button is enabled.
0
0
448
Apr ’24
UIBezierPath’s orientToPath
Here is a link to a super long conversation with a true genius at StackOverflow https://stackoverflow.com/questions/78343630/what-algorithm-is-available-to-correlate-a-skspritenodes-position-with-the-uibe/78379892#78379892 He has done an extraordinary amount of work to make up for what I consider is the non-working of UIBezierPath’s orientToPath = true. He’s done multiple hours work to make up for orientToPath = true not working. What are we missing?
0
0
508
Apr ’24
apple/apple/game-porting-toolkit 1.1 did not build
My MacBook Pro is M3 max, running macOS 14.4.1 (23E224), with Xcode 15.3 and Command_Line_Tools_for_Xcode_15.3 installed. When I tried to execute "brew -v install apple/apple/game-porting-toolkit", it reported the following error. Error: apple/apple/game-porting-toolkit 1.1 did not build Logs: /Users/yuanmouren/Library/Logs/Homebrew/game-porting-toolkit/00.options.out /Users/yuanmouren/Library/Logs/Homebrew/game-porting-toolkit/01.configure /Users/yuanmouren/Library/Logs/Homebrew/game-porting-toolkit/01.configure.cc /Users/yuanmouren/Library/Logs/Homebrew/game-porting-toolkit/02.make /Users/yuanmouren/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 I found the following error reasons in the console. /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:629:11: error: unknown type name 'SecTrustSettingsDomain' const SecTrustSettingsDomain domains[] = { ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:630:9: error: use of undeclared identifier 'kSecTrustSettingsDomainSystem' kSecTrustSettingsDomainSystem, ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:631:9: error: use of undeclared identifier 'kSecTrustSettingsDomainAdmin' kSecTrustSettingsDomainAdmin, ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:632:9: error: use of undeclared identifier 'kSecTrustSettingsDomainUser' kSecTrustSettingsDomainUser ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:640:18: warning: this function declaration is not a prototype [-Wstrict-prototypes] status = SecTrustSettingsCopyCertificates(domains[domain], &certs); ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:641:23: error: use of undeclared identifier 'noErr' if (status == noErr) ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:647:31: warning: this function declaration is not a prototype [-Wstrict-prototypes] if ((status = SecItemExport(cert, kSecFormatX509Cert, 0, NULL, &certData)) == noErr) ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:647:51: error: use of undeclared identifier 'kSecFormatX509Cert' if ((status = SecItemExport(cert, kSecFormatX509Cert, 0, NULL, &certData)) == noErr) ^ /private/tmp/game-porting-toolkit-20240414-2133-st99bv/wine/dlls/crypt32/unixlib.c:647:95: error: use of undeclared identifier 'noErr' if ((status = SecItemExport(cert, kSecFormatX509Cert, 0, NULL, &certData)) == noErr) ^ 2 warnings and 7 errors generated. make: *** [dlls/crypt32/unixlib.o] Error 1 make: *** Waiting for unfinished jobs.... How should I resolve this issue?
5
1
3.1k
Apr ’24