Server Hosting Overview
GameFlow runs your dedicated game servers in regions close to your players. You upload a build of your server, choose where and how it runs, and start servers from the dashboard or with a single API call. Your server uses the Game Server SDK to tell GameFlow when it's ready and who is connected.
Two ways to run servers
Each game picks a scaling strategy:
- Standalone Servers. You start each server when you need it with
POST /v1/games/:gameId/servers. GameFlow provisions it and returns its address and port once it's ready. No warm pool, so you control exactly when servers exist. - Intelligent Autoscaling. GameFlow keeps a pool of warm servers, scales it
automatically, and rolls out new builds for you. You allocate a server from the pool with
POST /v1/fleets/:gameId/allocate, which is faster because the server is already running.
Either way, you can start servers yourself, from your backend, or let Matchmaking start them when a match forms.
How a server runs
- Upload a build of your server. New servers run the game's current build.
- Start a server in a region, or allocate one from the warm pool. You can pass a launch payload with match data like the team roster.
- Ready. The server boots, connects through the SDK, and marks itself ready. GameFlow returns its address and port.
- Players join by connecting straight to the server. The server reports joins and leaves, and GameFlow shows live player counts in the dashboard.
- Stop. When the match ends, the server calls
shutdown(). GameFlow also shuts down servers that report no players past your organization's idle timeout.
Core concepts
| Concept | What it is |
|---|---|
| Game | The top-level resource. Holds server settings, builds, regions and scaling strategy. Use separate games for development, staging and production. |
| Build | A versioned upload of your server. One build is current, and you can roll back to the previous one. |
| Region | Where a server runs. Servers only run in the region they were started in. |
| Scaling strategy | Standalone Servers or Intelligent Autoscaling. Set per game. |
| Game Server SDK | The library inside your server. Handles connecting, readiness, health checks, player tracking and shutdown. |
| Launch payload | Per-match data your server reads through the SDK, like the match id and roster. |
| Environment variables | Values injected at startup, like the server's region and ports. |
Where to go next
- Getting Started: launch your first server in minutes, no code needed.
- Server Builds: upload, promote and roll back builds.
- Server Regions and Finding the Best Region: pick where servers run.
- Environment Variables and Launch Payload: what your server knows when it starts.
- Player Tracking: report players and keep servers alive.
- Game Server SDK: integrate your server with GameFlow.