Game architecture with managed Amazon GameLift
The following diagram illustrates the key components of a game architecture that's hosted using the managed Amazon GameLift solution.
![Game architecture with managed Amazon GameLift.](/images/gamelift/latest/developerguide/images/game_architecture.png)
The key components of this architecture include the following:
- Game clients
-
To join a game hosted on Amazon GameLift, your game client must first find an available game session. The game client searches for existing game sessions, requests matchmaking, or starts a new game session by communicating with Amazon GameLift through a backend service. The backend service makes requests to Amazon GameLift, and in response, the service receives game session information, which it relays back to the game client. The game client then connects to the game server. For more information, see Preparing games for Amazon GameLift.
- Backend services
-
A backend service handles communication between game clients and Amazon GameLift by calling the Amazon GameLift service API operations in the AWS SDK. You can also use backend services for other game-specific tasks such as player authentication and authorization, inventory, or currency control.
- External services
-
Your game can rely on an external service, such as for validating a subscription membership. An external service can pass information to your game servers through a backend service and Amazon GameLift.
- Game servers
-
You upload your game server software to Amazon GameLift, and Amazon GameLift then deploys it onto hosting machines to host game sessions and accept player connections. Game servers communicate with Amazon GameLift to start game sessions, validate newly connected players, and report the status of game sessions, player connections, and available resources.
Custom game servers communicate with Amazon GameLift by using the Amazon GameLift Server SDK. Game clients connect directly to a game server after receiving connection details from Amazon GameLift through a backend service. For more information, see Integrate games with custom game servers.
Realtime servers are game servers that run your custom script. When joining a game, a game client connects directly to a Realtime server using the Realtime Client SDK. For more information, see Integrating games with Amazon GameLift Realtime Servers.
- Host management tools
-
When setting up and managing hosting resources, game owners use hosting management tools to manage game server builds or scripts, fleets, matchmaking, and queues. The Amazon GameLift tool set in the AWS SDK and the console provides multiple ways for you to manage your hosting resources. You can remotely access any individual game server for troubleshooting.