Game #
The Game Loop describes the workflow for how players connect with their friends, match with other players, and get into the game.
Session #
There are key aspects of session management particular to the Game Loop.
Players who leave an in-progress game create a bad experience for other players. In addition to systems deliberately tailored to prevent AFK and other disruptive behaviors, live-service games often want to manage the game loop such that players are not able to leave a match and start another.
The Game Loop services coordinate with the Session service to ensure the platform understands where the player is at all times. This enables several features, including:
- Allowing players to reconnect to an in-progress match after a client crash or disconnect.
- Requiring that players reconnect to an in-progress match rather than starting a new one.
- Preventing abuse cases such as filling up the matchmaking queue with stale records.
- Allowing clients to recover from intermittent network issues while players are going through the game loop.
Attribute keys #
Within the Session service, players are assigned session attribute keys, which can be found within the OnGameSessionChangedV1Notification
event. These keys indicate which part of a game loop a player is in.
key | status |
---|---|
PARTY_ID | in the Party service before matchmaking |
MATCHMAKING_ID | entered matchmaking |
MATCH_ID | match found |
Once a player makes it through this loop and reachesMATCH_ID
status, the game client waits for aOnMatchReady
orOnFailedToFindMatch
event.
Contents #
Topic | Description |
---|---|
Party | Allows players to create a party with their friends and configure their game before entering matchmaking. |
Matchmaking | Connects parties to create matches. Utilitizes game mode and queue configuration, matchmaking rules, and matchmaking. |
Game Server Management | Launch matches, manage player sessions, support reconnect, and process match end results. |
Match End | Grant content, update quests and progression data, and grant rewards. |