In short, the allocation system performs best and affords the most benefits for games that incorporate a matchmaker, and the reservation system, while more limited in functionality, works best for games that do not incorporate a matchmaker.
An allocation is a proactive request for a game server instance from Multiplay’s orchestration platform. When you make an allocation request, the allocation system will dynamically select a game server instance based on the variables in the request, such as geographic location, game settings, and cost. 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 players and scaling game server instances down as needed based on time-to-live thresholds.
A limitation of the allocation system is that it doesn’t support games that use a server-select workflow where end-users choose the game session they want to join from the game client.
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.
A reservation is a retroactive request to reserve an explicit game server instance on a specific machine for a game session. Unlike allocations, reservations require you to supply the machine ID and the server ID in the request. There’s no intrinsic logic to select a game server instance based on variables such as location, cost, and game settings.
The reservation system doesn’t support the ability to operate more than one game mode at a time. Each game server instance in a reservation-based fleet must use the same executable and configuration files.
Reservation-based fleets work best for games that forego a matchmaker workflow in favor of a server-select workflow that requires the end-user to select a specific server for each game session from the game client.