Allocations and reservations
At the heart of Game Server Hosting is a system that selects which servers should host a game session to allow the number of players to change dynamically and automatically. Game Server Hosting makes this decision either by allocation or reservation.
The allocation system performs best and affords the most benefits for games that incorporate a matchmaker, while the reservation system is more limited in functionality, working best for games that do not incorporate a matchmaker.
For more information about the differences between the two, see Allocations and reservations.
An allocation is a request from a matchmaker to Game Server Hosting (Multiplay) to find the best possible game server for a game session. Game Server Hosting uses the following factors to select the best game server following an allocation request:
- Game server region
- Profile of the game server
- Hosting score of the machine that’s hosting the game server
- Server configuration of the game server
Additionally, if using a matchmaker, the quality of the connection between the game server and the game client may be a factor. See Quality of service (QoS).
In this way, the allocation system always fulfills allocation requests with a game server instance that best optimizes performance, availability, and costs.
Besides selecting game server instances to reduce costs, the allocation system further optimizes the cost of the fleet by automatically defragmenting servers across machines and scaling game server instances down as needed based on time-to-live thresholds. As mentioned, allocation-based fleets work best for games that use a matchmaker to assign players to servers dynamically based on sets of player criteria, such as player experience level, location, and game mode. However, the allocation system doesn't support games that use a server browser where the players choose the game session they want to join from the game client.
The opposite of an allocation is called a deallocation, which tells Game Server Hosting that a game session is finished, and the server can now be freed again to be allocated for a different session.
A reservation is a retroactive request by a server to notify Game Server Hosting (Multiplay) that the server is in use. Unlike allocations, the game server supplies the machine ID and the server ID in the request to tell Game Server Hosting which server you want. The reservation system has no intrinsic logic to select a game server instance based on variables an allocation would have used, such as location, cost, and game settings, thus Game Server Hostingcannot choose the best server upon which to host the game. Reservation-based fleets work best for games that use a server browser, which requires the player to select a specific server for each game session from the game client.
The reservation system doesn’t support the ability to operate more than one game mode at a time. You can use the Fleet Profile Switch endpoint to trigger a zero-downtime profile switch for all servers in a reservation fleet.
The opposite of a reservation is an unreservation, which tells Game Server Hosting that a game session is finished, and the server can now be freed again to be returned to the available pool.
Topics covered in this chapter: