Fleet Service Key Concepts #
The Pragma Fleet service is responsible for processing game instance requests and coordinating with a third-party host to allocate game servers. All active game servers are expected to report their capacity to this service on a regular cadence. In response to these capacity reports, the game server can receive game instances to start.
To facilitate this capability, you can partition your game server fleet according to two facets: server pools and server pool management policies .
Server pools #
Server pools allow you to segment your fleet of game servers by common features, such as game server zone, game server version, and custom values such as game mode. Using server pools, the Fleet service can determine what server pool a given game instance should be associated with, ensuring the game instance finds an appropriate game server to run on.
Server pool implementation can be useful if you have game servers that each run only one type of game (e.g., one game server runs PvP casual, another runs PvP competitive). You could also use server pools to segment your servers by geographic region or expected workload.
Each game server maps to one server pool, which in turn maps to one server pool management policy to inherit general server pool settings. You can define additional custom data, such as game version, in an individual pool’s ExtServerPool
payload to further inform the game server allocation process.
Server pool management policies #
Server pool management policies define capacity characteristics that you can apply to one or more pools of game servers. Server pool management policy configuration options include:
- Number of games allowed to run on a single game server
- Minimum and maximum game capacity allocated at all times
- Maximum time a game server can take to start before allocation fails
- Interval at which a game server should report its capacity
- Number of reporting heartbeats that can be missed before allocation fails
- Maximum time the platform will wait for capacity to resolve for a game instance before ejecting it