Skip to main content

Client SDKs Overview

Agones provides official client SDKs for multiple languages and game engines, allowing your game server to communicate with the Agones platform running on Kubernetes.

Available SDKs

Agones supports the following SDKs:

Go SDK

Reference implementation with excellent performance

C++ SDK

Native SDK for custom game engines

C# SDK

For .NET and Unity game servers

Node.js SDK

JavaScript/TypeScript support

Rust SDK

Type-safe async SDK with Tokio

Unity SDK

Specialized Unity integration

Unreal SDK

Plugin with Blueprint support

REST API

Language-agnostic HTTP interface

Choosing an SDK

Best for: Custom servers written in Go, high-performance requirements
  • Reference implementation maintained by the core team
  • Lowest overhead and latency
  • Full feature support including Alpha and Beta features
Best for: .NET servers, Unity game servers
  • Native async/await support
  • NuGet package distribution
  • Unity package available
Best for: JavaScript/TypeScript servers
  • npm package distribution
  • Promise-based API
  • Good for Node.js game servers
Best for: Rust game servers, type-safe requirements
  • Tokio async runtime
  • Strong type safety
  • Excellent performance
Best for: Custom C++ engines, Unreal Engine (without plugin)
  • Native performance
  • CMake integration
  • Full control over dependencies
Best for: Unity game servers
  • Unity Package Manager integration
  • Unity-specific helpers
  • Editor integration
Best for: Unreal Engine game servers
  • Plugin architecture
  • Blueprint support
  • C++ and Blueprint API
Best for: Any language, prototyping, debugging
  • Works with any HTTP client
  • Easy debugging with curl
  • No additional dependencies

Common SDK Features

All SDKs provide the following core functionality:

Lifecycle Management

  • Ready() - Mark server as ready for players
  • Shutdown() - Gracefully shutdown server
  • Allocate() - Self-allocate for session
  • Reserve() - Reserve for temporary duration

Health Checking

  • Health() - Send periodic health pings

Metadata Management

  • SetLabel() - Set custom labels
  • SetAnnotation() - Set custom annotations

State Monitoring

  • GetGameServer() - Get current state
  • WatchGameServer() - Watch for changes

Advanced Features (Alpha/Beta)

  • Player Tracking (Alpha) - Track connected players
  • Counters (Beta) - Manage integer counters
  • Lists (Beta) - Manage string lists

SDK Architecture

All Agones SDKs communicate with the SDK Server sidecar container using gRPC:
The SDK Server sidecar is automatically injected into your GameServer Pod when you create a GameServer resource.

Getting Started

1

Choose your SDK

Select the SDK that matches your game server language or engine
2

Install the SDK

Add the SDK dependency to your project (see individual SDK pages for instructions)
3

Initialize the SDK

Create an SDK instance at server startup
Go Example
sdk, err := sdk.NewSDK()
if err != nil {
    log.Fatal(err)
}
4

Call Ready()

Mark your server ready after initialization
err = sdk.Ready()
5

Send Health Pings

Start sending periodic health checks
go func() {
    tick := time.Tick(2 * time.Second)
    for range tick {
        err := sdk.Health()
        if err != nil {
            log.Fatal(err)
        }
    }
}()
6

Shutdown Gracefully

Call Shutdown() before exiting
defer sdk.Shutdown()

SDK Connection Configuration

The SDK connects to the sidecar using environment variables automatically set by Agones:
  • AGONES_SDK_GRPC_HOST - SDK server hostname (default: localhost)
  • AGONES_SDK_GRPC_PORT - SDK server port (default: 9357)
You typically don’t need to set these variables manually. They’re automatically configured by Agones.

Feature Stability

Agones SDKs follow a stability model:
  • Stable - Production-ready, fully supported
  • Beta - Feature complete, may have minor changes
  • Alpha - Experimental, may change significantly
Alpha and Beta features require the corresponding feature gate to be enabled in your Agones installation.

Next Steps

Integration Guide

Learn how to integrate Agones into your game server

Lifecycle Management

Understand the game server lifecycle

SDK API Reference

Explore the complete SDK API

Quickstart

Deploy your first game server

Build docs developers (and LLMs) love