Amazon GameLift
Developer Guide (Version )

Game Architecture with Amazon GameLift

The diagram shown below illustrates the key components of an Amazon GameLift-hosted game and how they interact.

Game architecture with Amazon GameLift

Key components are described as follows.

Amazon GameLift service

The service deploys your game servers to Amazon GameLift hosting resources and controls capacity based on your settings. It manages player demand by starting new game sessions and reserving game slots for new players. It continually tracks the status of game resources, game sessions, and players in order to maintain game availability and balance player traffic.

Game clients

Your game client may interact with Amazon GameLift in two ways:

  • It communicates with the Amazon GameLift service to retrieve information on current game sessions, request new game sessions, and request player slots in games. Game clients can communicate directly with the service (as shown by a dotted line), but it is common to have game services handle this communication as part of other core tasks and then relay information as needed to the game client.

  • It connects directly to a game session running on a game server. A game session's connection details are provided in response to a player slot request. If you use a game service to handle player requests to the Amazon GameLift service, it must relay the connection information to the game client.

Game services

Your game may choose to handle certain tasks through game services rather than in the game client. These services are developed and managed by you. Game services are often used for tasks like player authentication and authorization, team building and matchmaking, and inventory or currency control. If your game uses services, it may make sense to call the Amazon GameLift service from a game service instead of from the game client. For example, when a player wants to join a game, your game client might call your authentication service to first verify the player's identity, and only then send a player slot request to the Amazon GameLift service.

Game servers

Your game server software is deployed by Amazon GameLift based on your configuration. You can tell Amazon GameLift to deploy one or multiple game servers in as many AWS regions as you need. Game servers communicate with the Amazon GameLift service to start new game sessions, validate newly connected players, and report on the status of game sessions, player connections, and available resources.

External services

Your game may rely on an external service, such as for validating a subscription membership. The architecture diagram illustrates how information from an external service can be passed to your game servers (via a custom game service and the Amazon GameLift service) without going through the game client.

Developer tools

The Amazon GameLift developer tool set is used to configure your hosting resources and game deployment, scale capacity, monitor current status of resources, and track metrics on game server performance and game and player activity.