Skip to main content

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​

  1. Upload a build of your server. New servers run the game's current build.
  2. 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.
  3. Ready. The server boots, connects through the SDK, and marks itself ready. GameFlow returns its address and port.
  4. Players join by connecting straight to the server. The server reports joins and leaves, and GameFlow shows live player counts in the dashboard.
  5. 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​

ConceptWhat it is
GameThe top-level resource. Holds server settings, builds, regions and scaling strategy. Use separate games for development, staging and production.
BuildA versioned upload of your server. One build is current, and you can roll back to the previous one.
RegionWhere a server runs. Servers only run in the region they were started in.
Scaling strategyStandalone Servers or Intelligent Autoscaling. Set per game.
Game Server SDKThe library inside your server. Handles connecting, readiness, health checks, player tracking and shutdown.
Launch payloadPer-match data your server reads through the SDK, like the match id and roster.
Environment variablesValues injected at startup, like the server's region and ports.

Where to go next​