Skip to main content

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
apiVersion: agones.dev/v1
kind: GameServer
metadata:
  generateName: simple-game-server-
spec:
  ports:
    - name: default
      portPolicy: Dynamic
      containerPort: 7654
  template:
    spec:
      containers:
        - name: simple-game-server
          image: us-docker.pkg.dev/agones-images/examples/simple-game-server:0.41
          resources:
            requests:
              memory: 64Mi
              cpu: 20m

Fleet Management

Manage large sets of game servers as a single unit with rolling updates and configurable scheduling:
fleet.yaml
apiVersion: agones.dev/v1
kind: Fleet
metadata:
  name: simple-game-server
spec:
  replicas: 2
  template:
    spec:
      ports:
        - name: default
          containerPort: 7654
      template:
        spec:
          containers:
            - name: simple-game-server
              image: us-docker.pkg.dev/agones-images/examples/simple-game-server:0.41

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

Twitter

Follow @agonesdev for updates

Next Steps

Quickstart Guide

Deploy your first game server in minutes

Installation

Install Agones on your Kubernetes cluster

Build docs developers (and LLMs) love