

When a player creates a new open game, they’re actually sending a request to connect to an opponent. If a player creates a new open game, it gets added to the game session list and waits for an opponent to join.The player creates a new open game with a set of settings, or invites a specific opponent.Existing player's games list is retrieved from the backend.The general flow of an asynchronous multiplayer title is as follows: Having said that, if you want to have multiple data centers, then you should use Traffic Manager. Moreover, having multiple data centers also implies that a database synchronization mechanism should be used to synchronize the database data between different data centers. Since Traffic Manager is used for HTTP calls, it might actually get cheaper if all the resources are in one data center and not spread throughout the world. Depending on the game being built, leveraging a traffic manager and deploying to multiple data centers may not be needed. This reference architecture only contemplates a single region for the backend. This reference architecture doesn't cover neither player authentication nor an in-depth player identity management, both are left as an exercise for the reader.Īzure PlayFab offers multiple forms of authentication so players can be tracked across multiple devices: The following sections are covering general design considerations common to the different implementations documented. Here are different implementations of the same use case to get you a head start: This specific reference architecture showcases a serverless simple tic-tac-toe game. Game custom settings - Consider allowing players that create new game sessions with specific settings from your game.Deadline - The player has a specific amount of time (6 hours, 12 hours, 24 hours, etc) to complete a turn or the game is forfeited.Support multiple games in parallel - Yes, no.

There are several variables which can be taken into consideration when defining an asynchronous multiplayer:

The backbone for building an asynchronous multiplayer is saving the game state to a persistent database so that it can be retrieved by all players in the game session when it’s time to take the next turn, and a push notification mechanism.
