---
title: GameKit
framework: gamekit
role: collection
role_heading: Framework
path: gamekit
---

# GameKit

Enable players to interact with friends, compare leaderboard ranks, earn achievements, and participate in multiplayer games.

## Overview

Overview Use the GameKit framework to implement Game Center social-gaming network features. Game Center is an Apple service that provides a single account that identifies players across all their games and devices. After players sign in to Game Center on their device, they can access their friends and use Game Center features you implement.

Before you can use GameKit classes, you must enable Game Center in your project and initialize the local player in your code; otherwise, your game receives a GKError.Code.notAuthenticated error. If you have an existing Unity project, you can access the GameKit framework using the Apple Unity Plug-ins. Implement Game Center features After you’ve enabled Game Center, you can implement many useful features to enhance the gaming experience. You can add leaderboards that let players see how well they rank amongst friends and players all over the world. Create recurring leaderboards to organize regular competitions that provide players more chances to earn the top score. As players progress through your game, you can reward them with achievements that encourage them to keep playing. GameKit supports real-time and turn-based multiplayer experiences. Players can choose automatic matching or invite their friends to join a game. You can support turn-based gaming in which a match plays out over a series of alternating turns, and players can receive invitations even when your game isn’t in the foreground. GameKit also provides user interface components for your players to see highlights and access their Game Center data directly in your game. The access point provides a way for players to open a dashboard in which they can browse their profile, leaderboards, and achievements, as well as manage their friends list. For designing Game Center features in your app, see Human Interface Guidelines > Technologies > Game Center.

## Topics

### Essentials

- [Initializing and configuring Game Center](gamekit/initializing-and-configuring-game-center.md)
- [Authenticating a player](gamekit/authenticating-a-player.md)
- [Improving the player experience for games with large downloads](gamekit/improving-the-player-experience-for-games-with-large-downloads.md)
- [Game Center Entitlement](bundleresources/entitlements/com.apple.developer.game-center.md)

### Players

- [Connecting players with their friends in your game](gamekit/connecting-players-with-their-friends-in-your-game.md)
- [Saving the player’s game data to an iCloud account](gamekit/saving-the-player-s-game-data-to-an-icloud-account.md)
- [Protecting the player’s privacy using scoped identifiers](gamekit/protecting-the-player-s-privacy-using-scoped-identifiers.md)
- [GKLocalPlayer](gamekit/gklocalplayer.md)
- [GKPlayer](gamekit/gkplayer.md)
- [GKBasePlayer](gamekit/gkbaseplayer.md)
- [GKLocalPlayerListener](gamekit/gklocalplayerlistener.md)
- [GKPlayerAuthenticationDidChangeNotificationName](foundation/nsnotification/name-swift.struct/gkplayerauthenticationdidchangenotificationname.md)
- [GKPlayerDidChangeNotificationName](foundation/nsnotification/name-swift.struct/gkplayerdidchangenotificationname.md)

### Game Center interfaces

- [Adding an access point to your game](gamekit/adding-an-access-point-to-your-game.md)
- [Displaying the Game Center dashboard](gamekit/displaying-the-game-center-dashboard.md)
- [GKAccessPoint](gamekit/gkaccesspoint.md)
- [GKDialogController](gamekit/gkdialogcontroller.md)
- [GKViewController](gamekit/gkviewcontroller.md)

### Leaderboards

- [Encourage progress and competition with leaderboards](gamekit/encourage-progress-and-competition-with-leaderboards.md)
- [Creating recurring leaderboards](gamekit/creating-recurring-leaderboards.md)
- [Adding Recurring Leaderboards to Your Game](gamekit/adding-recurring-leaderboards-to-your-game.md)
- [GKLeaderboard](gamekit/gkleaderboard.md)
- [GKLeaderboardSet](gamekit/gkleaderboardset.md)
- [GKLeaderboardScore](gamekit/gkleaderboardscore.md)

### Achievements

- [Rewarding players with achievements](gamekit/rewarding-players-with-achievements.md)
- [GKAchievement](gamekit/gkachievement.md)
- [GKAchievementDescription](gamekit/gkachievementdescription.md)

### Challenges

- [Creating engaging challenges from leaderboards](gamekit/creating-engaging-challenges-from-leaderboards.md)
- [Choosing a leaderboard for your challenges](gamekit/choosing-a-leaderboard-for-your-challenges.md)
- [GKChallengeDefinition](gamekit/gkchallengedefinition.md)
- [GKShowChallengeBanners](bundleresources/information-property-list/gkshowchallengebanners.md)

### Activities

- [Creating activities for your game](gamekit/creating-activities-for-your-game.md)
- [GKGameActivity](gamekit/gkgameactivity.md)
- [GKGameActivityDefinition](gamekit/gkgameactivitydefinition.md)
- [GKGameActivityListener](gamekit/gkgameactivitylistener.md)

### Real-time games

- [Creating real-time games](gamekit/creating-real-time-games.md)
- [Finding multiple players for a game](gamekit/finding-multiple-players-for-a-game.md)
- [Exchanging data between players in real-time games](gamekit/exchanging-data-between-players-in-real-time-games.md)
- [Adding voice chat to multiplayer games](gamekit/adding-voice-chat-to-multiplayer-games.md)
- [Finding players for custom server-based games](gamekit/finding-players-for-custom-server-based-games.md)
- [Matchmaking rules](gamekit/matchmaking-rules.md)
- [GKMatchRequest](gamekit/gkmatchrequest.md)
- [GKMatchmaker](gamekit/gkmatchmaker.md)
- [GKMatchmakerViewController](gamekit/gkmatchmakerviewcontroller.md)
- [GKInviteEventListener](gamekit/gkinviteeventlistener.md)
- [GKInvite](gamekit/gkinvite.md)
- [GKMatch](gamekit/gkmatch.md)

### Turn-based games

- [Creating turn-based games](gamekit/creating-turn-based-games.md)
- [Starting turn-based matches and passing turns between players](gamekit/starting-turn-based-matches-and-passing-turns-between-players.md)
- [Sending messages to players in turn-based games](gamekit/sending-messages-to-players-in-turn-based-games.md)
- [Exchanging data between players in turn-based games](gamekit/exchanging-data-between-players-in-turn-based-games.md)
- [GKTurnBasedMatchmakerViewController](gamekit/gkturnbasedmatchmakerviewcontroller.md)
- [GKTurnBasedMatch](gamekit/gkturnbasedmatch.md)
- [GKTurnBasedParticipant](gamekit/gkturnbasedparticipant.md)
- [GKTurnBasedEventListener](gamekit/gkturnbasedeventlistener.md)
- [GKTurnBasedExchange](gamekit/gkturnbasedexchange.md)
- [GKTurnBasedExchangeReply](gamekit/gkturnbasedexchangereply.md)
- [GKGameCenterBadgingDisabled](bundleresources/information-property-list/gkgamecenterbadgingdisabled.md)

### Errors

- [GKError](gamekit/gkerror.md)
- [GKError.Code](gamekit/gkerror/code.md)
- [GKErrorDomain](gamekit/gkerrordomain.md)

### Deprecated

- [Deprecated symbols](gamekit/deprecated-symbols.md)
