Game Server SDK
The GameFlow Game Server SDK connects your dedicated server to GameFlow. One small library per language handles the server side of hosting (lifecycle, automatic health reporting, and player tracking), plus a local mode so the same build runs on your machine with zero configuration.
Looking to allocate servers from your backend or game client? That's the Custom Backend flow (a single API call). The Game Server SDK is what runs inside the server you allocate.
What it does
Every SDK exposes the same lifecycle, adapted to each language's idioms:
- Connect: attach to the GameFlow runtime (or local mode off-platform), with retries.
- Ready: mark the server ready to accept players; health heartbeats then start automatically.
- Track players: register and unregister sessions as players join and leave, so GameFlow sees accurate player counts.
- Shut down: cleanly end the server when the match is over.
The SDK owns the fiddly parts you'd otherwise build yourself: health heartbeats, connect retries and backoff, a server-update stream, the launch payload, and local mode for off-platform development.
Supported languages
| Language | Package | Status |
|---|---|---|
| TypeScript / Node.js | @gameflow.gg/gameserver-sdk | Stable |
| Godot (GDScript) | gameflow addon | Stable |
| Rust | gameflow-gameserver-sdk | Stable |
| Go | github.com/GameFlowGG/gameflow-gameserver-sdk/sdk/go | Stable |
| Unity (C#) | gg.gameflow.gameserver | Stable |
| Unreal (C++) | GameFlow plugin | Stable |
All six implement one cross-language contract, so behavior (health cadence, retries, error codes, local mode) is identical no matter the language.
Local mode
Run your server on your machine with no extra setup. When it is not running on GameFlow, the SDK switches to local mode automatically: lifecycle calls are simulated, player tracking works against an in-memory list, and the watch/payload streams emit synthetic updates. The same binary runs unchanged on the platform and on your machine. See Local development.
Player tracking keeps your server alive
GameFlow shuts down servers that report zero connected players past your organization's idle timeout. Always report players on join and leave. A server that never reports players will be reaped. See Player Tracking for capacity, counts, and where player data appears.
Next steps
- Quickstart: install and integrate in your language.
- Local development: run and test off-platform before you deploy.
- Player Tracking: capacity, counts, and dashboard surfaces.