Amazon GameLift
Developer Guide (Version )

Game Architecture with Amazon GameLift

The diagram shown below illustrates the key components of an Amazon GameLift-hosted game architecture.

Game architecture with Amazon GameLift

Key components are described as follows.

Game clients

Your game client interacts with Amazon GameLift through a backend game service to retrieve information on current game sessions, request new game sessions, and reserve player slots in games. Although technically a game client could communicate directly with the service, this is not best practice. The backend service relays connection details for a game session back to the game client, which the client uses to connect to the game server and join the game. The green arrow represents the direct connection between game client and game server during gameplay.

Game services

Backend game services handle communication between game clients and the Amazon GameLift service, as well as additional tasks such as player authentication and authorization, team building and matchmaking, and inventory or currency control. For example, when a player wants to join a game, your game client might call an authentication service to first verify the player's identity, and only then send a player slot request to the Amazon GameLift service.

External services

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

Game servers

Your game server software is uploaded to Amazon GameLift and deployed onto hosting machines 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. Game clients connect directly to a game server after receiving connection details from the Amazon GameLift service.

Amazon GameLift service

The service deploys your game servers to a fleet of computing resources for hosting based on your directions. You choose where to deploy fleets with your game server (in which regions), select the type of computing resources to use (instance type), and manage capacity as needed to accommodate player traffic while controlling costs. Once deployed, the service responds to game client requests by providing game session information, placing players into existing games, starting new game sessions, performing matchmaking, etc. It continually tracks the status of computing resources, game sessions, and players in order to manage game availability as player traffic fluctuates.

Developer tools

The Amazon GameLift developer tool set provides multiple ways for you to configure your game hosting resources, scale capacity to player demand, and monitor the current status of resources, as well as track metrics on game server performance and game and player activity. In addition, you can remotely access any individual game server for troubleshooting.