Allocating based on GameServer Player Capacity

Find a GameServer that has room for a specific number of players.

Using this approach, we are able to be able to make a request that is akin to: “Find me a GameServer that is already allocated, with room for n number of players, and if one is not available, allocate me a Ready GameServer”.

Common applications of this type of allocation are Lobby servers where players await matchmaking, or a persistent world server where players connect and disconnect from a large map.

Player Capacity Allocation Diagram

Example GameServerAllocation

The below allocation will attempt to find an already Allocated GameServer from the Fleet “lobby” with room for 10 to 15 players, and if it cannot find one, will allocate a Ready one from the same Fleet.

apiVersion: "allocation.agones.dev/v1"
kind: GameServerAllocation
spec:
  preferred:
    - gameServerState: Allocated
      matchLabels:
        agones.dev/fleet: lobby
      players:
        minAvailable: 10
        maxAvailable: 15
  required:
    matchLabels:
      agones.dev/fleet: lobby

Next Steps

  • Have a look at all commands the Client SDK provides.
  • Check all the options available on GameServerAllocation.
  • If you aren’t familiar with the term Pod, this should provide a reference.

Last modified September 12, 2021: Fix typo (#2260) (936fcc8)