What is Agones?
Agones is a library for hosting, running, and scaling dedicated game servers on Kubernetes. Built on top of Kubernetes’ powerful orchestration capabilities, Agones provides native support for managing game server workloads at scale.The name “Agones” is derived from the Greek word agōn which roughly translates to “contest”, “competition at games” and “gathering”.
Why Agones?
Traditional game server infrastructure often relies on bespoke or proprietary cluster management solutions. Agones replaces these with a standardized, cloud-native approach by:- Extending Kubernetes with custom resources specifically designed for game servers
- Providing native Kubernetes APIs for game server lifecycle management
- Enabling standard Kubernetes tooling to work seamlessly with game servers
- Allowing matchmakers to interact directly with Agones via the Kubernetes API
Core Concepts
Agones introduces several Kubernetes Custom Resources to manage game servers:GameServer
A single dedicated game server instance running in a container with lifecycle management and health checking
Fleet
A set of warm GameServers kept ready for allocation, similar to Kubernetes Deployments
GameServerAllocation
Mechanism to allocate a GameServer from a Fleet for player matchmaking
FleetAutoscaler
Automatically scales Fleet replicas based on load, integrating with Kubernetes cluster autoscaling
Major Features
Declarative Configuration
Define game servers using standard Kubernetes YAML manifests or programmatically via the Kubernetes API:gameserver.yaml
Fleet Management
Manage large sets of game servers as a single unit with rolling updates and configurable scheduling:fleet.yaml
Lifecycle Management
Agones manages the complete lifecycle of game servers:- Health checking: Continuous monitoring of game server health
- State management: Track servers through Ready, Allocated, and Shutdown states
- Connection information: Automatic exposure of IP addresses and ports
- Graceful shutdown: Coordinated termination when games complete
Autoscaling
Fleet autoscalers automatically adjust capacity based on:- Buffer-based scaling (maintain a percentage of ready servers)
- Webhook-based custom policies
- Counter and list-based metrics
- Schedule-based scaling
SDK Integration
Game servers integrate with Agones using official SDKs available in multiple languages:Go
C++
C#
Node.js
Rust
Unity
Architecture Overview
Agones consists of several components:- Agones Controller: Manages GameServer, Fleet, and related resource lifecycles
- Agones Extensions: Handles webhooks and extended functionality
- Agones Allocator: High-performance game server allocation service
- SDK Server: Sidecar container that enables game servers to communicate with Agones
Use Cases
Agones is ideal for:- Multiplayer game servers: FPS, MOBA, battle royale, and other real-time multiplayer games
- Session-based games: Match-based games requiring dedicated server instances
- Hybrid cloud deployments: Running game servers across multiple cloud providers
- Development and testing: Consistent local and production environments
Community and Support
Agones is an open-source project under the Apache 2.0 license, hosted by Google for Games:Slack Community
Join the Agones Slack workspace
GitHub Repository
View source code and contribute
Mailing List
Subscribe to agones-discuss
Follow @agonesdev for updates
Next Steps
Quickstart Guide
Deploy your first game server in minutes
Installation
Install Agones on your Kubernetes cluster
