Skip to main content
Agones provides official SDKs in multiple languages to integrate your game server with the Agones platform. Each SDK communicates with the Agones sidecar container via gRPC, providing lifecycle management, health checking, and metadata operations.

Quick Comparison

SDK Details

Go SDK

The Go SDK is the reference implementation and offers excellent performance with minimal overhead.
go get agones.dev/agones/sdks/go

Go SDK Documentation

View full API reference on pkg.go.dev

C# SDK

Designed for .NET game servers and Unity integration with async/await patterns.
dotnet add package Agones
Or in Unity, copy the SDK files to your Assets folder.

Node.js SDK

Ideal for JavaScript and TypeScript game servers with modern async/await API.
npm install @google-cloud/agones-sdk

Rust SDK

Type-safe SDK for Rust game servers with excellent performance.
Cargo.toml
[dependencies]
agones = "1.0"
tokio = { version = "1", features = ["full"] }

C++ SDK

Native C++ SDK for game engines and custom servers.
# Clone the Agones repository
git clone https://github.com/googleforgames/agones.git

# Build the SDK
cd agones/sdks/cpp
cmake .
make
make install

Unity SDK

Specialized SDK for Unity game servers with Unity-friendly patterns.
  1. Download the Unity SDK from the Agones releases
  2. Import the package into your Unity project
  3. Add the AgonesSdk component to a GameObject

Unreal SDK

Plugin for Unreal Engine with Blueprint support.
  1. Copy the Agones plugin to your project’s Plugins folder
  2. Enable the plugin in your .uproject file
  3. Restart Unreal Editor

REST API

Language-agnostic HTTP/REST interface for any technology stack.
All endpoints are available at http://localhost:9358 (configurable via AGONES_SDK_HTTP_PORT).
MethodEndpointDescription
POST/readyMark server as ready
POST/shutdownShutdown server
POST/healthSend health ping
POST/allocateSelf-allocate server
GET/gameserverGet GameServer info
GET/watch/gameserverStream GameServer updates
PUT/metadata/labelSet label
PUT/metadata/annotationSet annotation
POST/reserveReserve server

Choosing an SDK

Use this decision tree to choose the right SDK:
1

What's your primary language?

  • Go: Use Go SDK
  • C# / .NET: Use C# SDK
  • JavaScript / TypeScript: Use Node.js SDK
  • Rust: Use Rust SDK
  • C++: Use C++ SDK
  • Other: Use REST API
2

What engine are you using?

  • Unity: Use Unity SDK (specialized C# SDK)
  • Unreal: Use Unreal SDK (plugin)
  • Custom / Other: Use language-specific SDK
3

What features do you need?

All SDKs support core features. Check specific SDK documentation for:
  • Alpha features (player tracking)
  • Beta features (counters and lists)
  • Async/await patterns
  • Streaming updates

SDK Feature Matrix

Next Steps

Lifecycle Management

Learn about Ready, Shutdown, and state transitions

Health Checking

Configure health monitoring

Example Servers

See complete integration examples

Local Development

Test your integration locally

Build docs developers (and LLMs) love