Class

GKGameSession

A game session you can use to save game data, invite other players, and create turn-based and real-time game apps.

Declaration

@interface GKGameSession : NSObject

Overview

Use a GKGameSession object to play turn-based and real-time games in iCloud. Every instance of a game session resides inside of an iCloud container. You can create multiple sessions for a single app, allowing players to play several games at once. All of the information for a game session is saved in the owner's iCloud.

Each session can contain a maximum of 100 players. Inside of a session, up to 16 of those players can be connected to each other in real-time. The 16 connected players can be selected from any of the 100 players in the session. You can change a connected player with another player in the session at any time.

After a game session is created, you can save game data in iCloud. Each game session can save a maximum of 512KB data. This prevents games from using a large about of space in a user's iCloud account. This data can be loaded, edited, and saved by anyone in the game session, providing your app provides this behavior. You must ensure that you delete a game session from a user's iCloud after a game is over, otherwise the session will stay in the user's iCloud forever. Game sessions are not automatically removed after a set amount of time. They can only be actively removed.

Topics

Creating and Loading Game Sessions

createSessionInContainer:withTitle:maxConnectedPlayers:completionHandler:

Creates a new game session inside of an iCloud container.

loadSessionsInContainer:completionHandler:

Retrieves all of the game sessions associated with a container.

removeSessionWithIdentifier:completionHandler:

Removes the specified game session.

Accessing Information About a Game Session

identifier

A unique identifier for a game session.

lastModifiedDate

The date that the game session was last modified.

lastModifiedPlayer

The last player to modify the game session.

maxNumberOfConnectedPlayers

The maximum number of players allowed to connect to the game session at the same time.

owner

A player object that represents the owner of the game session.

players

An array of player objects associated with the game session.

title

The title of the game session.

Inviting Players to a Game Session

getShareURLWithCompletionHandler:

Retrieves the URL used to share a game session.

Saving and Loading Data

loadDataWithCompletionHandler:

Retrieves the game data from the current game session.

saveData:completionHandler:

Saves the current game session data.

Listening for Events

addEventListener:

Adds a new event listener object.

removeEventListener:

Stops listening to the event listener object.

Connecting Players for Real-Time Communication

setConnectionState:completionHandler:

Sets the connection state for the player.

playersWithConnectionState:

Retrieves a list of players with the specified connection state.

sendData:withTransportType:completionHandler:

Sends the indicated data to all connected players.

GKTransportType

The mechanism used to send messages to other players in a game session.

Communicating Between Players

badgedPlayers

An array containing all of the currently badged players.

clearBadgeForPlayers:completionHandler:

Clears the badge from the designated players.

Relationships

Inherits From

See Also

Game Sessions

GKCloudPlayer

The object representing the currently signed-in iCloud user.

Deprecated
GKGameSessionEventListener

An event listener that handles game session events.

Deprecated
GKGameSessionSharingViewController

A user interface you can use to invite other users into a tvOS game session.

Deprecated
GKGameSessionErrorCode

Error codes for the GKGameSession domain.

Deprecated
GKGameSessionErrorDomain

The error domain for game sessions.

Deprecated