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
Go SDK
Go 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
C# SDK
C# SDK
Best for: .NET servers, Unity game servers
- Native async/await support
- NuGet package distribution
- Unity package available
Node.js SDK
Node.js SDK
Best for: JavaScript/TypeScript servers
- npm package distribution
- Promise-based API
- Good for Node.js game servers
Rust SDK
Rust SDK
Best for: Rust game servers, type-safe requirements
- Tokio async runtime
- Strong type safety
- Excellent performance
C++ SDK
C++ SDK
Best for: Custom C++ engines, Unreal Engine (without plugin)
- Native performance
- CMake integration
- Full control over dependencies
Unity SDK
Unity SDK
Best for: Unity game servers
- Unity Package Manager integration
- Unity-specific helpers
- Editor integration
Unreal SDK
Unreal SDK
Best for: Unreal Engine game servers
- Plugin architecture
- Blueprint support
- C++ and Blueprint API
REST API
REST 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 playersShutdown()- Gracefully shutdown serverAllocate()- Self-allocate for sessionReserve()- Reserve for temporary duration
Health Checking
Health()- Send periodic health pings
Metadata Management
SetLabel()- Set custom labelsSetAnnotation()- Set custom annotations
State Monitoring
GetGameServer()- Get current stateWatchGameServer()- 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
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
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
