-
Notifications
You must be signed in to change notification settings - Fork 2
onboarding
This walks through bringing a new game onto a ggscale deployment, from an empty stack to a client making authenticated calls. It assumes a local development stack. The same steps apply against a hosted deployment once you point the URL at it.
make upThis brings up ggscale-server, Postgres, and Mailpit. The server is on http://localhost:8080. See the Quickstart for prerequisites and the health check.
The first admin is created with a one-time bootstrap token.
cat ./data/bootstrap.tokenOpen http://localhost:8080/v1/control-panel/setup, paste the token, and set the email and password for the first platform admin. The token is spent after this step. Sign in.
In the control panel:
- Create a tenant, shown as "Account Tenant". This is your studio or game brand.
- Create a project inside it, shown as "Game Project", for example
my-game-prod. Many studios add a second project for staging. - Creating the project mints an API key. Copy it now, because it is hashed at rest and will not be shown again. Your game clients send it as
Authorization: Bearer <api_key>.
See Core Concepts for what each of these is.
Other operators reach the control panel through an invitation. From the tenant's team settings, invite a teammate by email and pick a role:
-
owner: full control, including owner-only actions on the tenant. -
admin: manage projects, keys, players, and settings. -
member: read-only view of projects and players.
The invite email lands in Mailpit locally at http://localhost:8025. The teammate follows the link to set a password and join the tenant.
A game client reaches ggscale over the HTTP API directly, or through an SDK (see Client SDKs). A typical player session runs like this:
- Authenticate to get a session token. For a first run,
POST /v1/auth/anonymous. For real accounts,POST /v1/auth/signupfollowed byPOST /v1/auth/login. - Call player features with the session token in
X-Session-Token, such as saving data, submitting scores, and managing friends. - To get into a match, submit a ticket to
POST /v1/matchmaker/tickets, then read the result over the WebSocket or by polling the ticket. - Connect players together using the match result, and report progress back through the API.
Signup sends a verification email, which also lands in Mailpit on the local stack.
Each tenant sits in a tier class that sets its limits, such as open sessions and stored objects. The control panel shows the current usage and limit for a tenant, and a tenant admin can request a change from the same screen. A self-hosted deployment runs unrestricted by default, so these limits matter mainly on a managed deployment. See Quotas, Tiers, and Entitlements for the operator view.
Peer-to-peer modes need no dedicated game server. If your game runs an authoritative server instead, you host that binary yourself and register it in the server browser, or use the game-server fleet to allocate instances on demand. The fleet is beta; see the Game Server Fleet guide for the Docker, Agones, and plugin backends and the fleet key scope.