-
Notifications
You must be signed in to change notification settings - Fork 897
Player Tracking for each GameServer #1033
Description
Is your feature request related to a problem? Please describe.
It would be very useful to track player connection and disconnection against a specific GameServer.
This would allow us to do several things:
- Track if a GameServer is full or not (we should also track GameServer capacity as well)
- Be able to trace and debug a player lifecycle from matchmaker to gameserver connection (we should track an
idortokenon connection) - Autoscale Fleets based on how full gameservers are (useful for persistent worlds)
Describe the solution you'd like
(Full design TBD)
- Need a way to specify the capacity of a GameServer, at creation time, but also editable from the SDK at runtime
- SDK methods to track a player connection, and player disconnection with an id/player token
GameServerCRD Events for player connections and disconnectionsGameServerCRD Status values that track player counts and capacity. Maybe should also have a list of current connected players?- May want to add some labels to allow for searching for full/empty/partially full game servers through the k8s api
Describe alternatives you've considered
Have a separate system for player tracking - but based on feedback, this is a feature that almost all users should find useful, so it feels like part of Agones, and also allows some useful functionality down the road -- such as autoscaling by player count, or automating backfill operations by searching for non-full game servers.
Additional context
I do have concerns that we are adding more API QPS with this, so we should track performance with these changes.