The Game Loop describes the workflow for how players connect with their friends, match with other players, and get into the game.
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.
|in the Party service before matchmaking|
Once a player makes it through this loop and reaches
MATCH_IDstatus, the game client waits for a
|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.|