Skip to main content

Apps on the shared platform

Every customer app runs on the shared Game API — a managed, multi-tenant endpoint scoped by your appId. You do not provision VMs, pick datacenters, or wait for a dedicated stack.

Primary path for new studios

If you are standing up your first game, start with Create your first app. That wizard registers the app on the shared platform and it is immediately usable after create.

After create, use Connecting to your app for endpoints, tokens, and client configuration. Billing and usage limits are covered in Shared environment & billing.

How routing works

ConceptDetail
Shared endpointOne Game API fleet per tier (e.g. https://game.shared.dev.cks-env.com on dev).
App scopingTraffic is isolated by appId — your players only see your app's world data.
DiscoveryRead gameApiUrl from the app record or mintAppToken; or call public platformConfig for tier defaults.

Programmatic discovery (no auth):

query {
platformConfig {
sharedGameApiUrl
sharedGameApiWsUrl
freeAppsPerOrg
}
}

Per-app routing after create:

query {
app(appId: "<your-app-id>") {
appId
deploymentTarget # "shared"
runtimeStatus # "active" — immediately usable
gameApiUrl
}
}

App dashboard

Open /orgs/:orgSlug/apps/:appSlug for studio operations on a single game:

  • Connection infogameApiUrl and WebSocket URL for clients (same shared host for all apps on the tier).
  • Access tiers — marketplace and entitlement settings.
  • Granted users — who can play or manage the app.
  • Runtime statusactive, or a denial reason when wallet, caps, or subscription block traffic.
Org dashboard — apps and connection summary
Screenshot note

Some screenshots in this section were captured before the shared-only UI pivot. Connection URLs and app dashboards replace the legacy Environments tab for customer workflows.

Free tier and wallet

  • Free apps: up to platformConfig.freeAppsPerOrg (default 3) per org.
  • Free usage allowance: each app includes a small hourly metered allowance at no cost.
  • Above allowance: usage debits the org wallet at published rates.
  • Auto-billing: optional saved card tops up the wallet when balance runs low.

Top up or configure auto-billing from the org Wallet tab before heavy testing or launch.

Permissions and tokens

  • Org members manage apps through the UI according to org RBAC.
  • Org API tokens (created under the org Tokens tab) can call the same Management API mutations your user can, for automation — see the Management API schema reference for createApp, mintAppToken, and related types.

Keep tokens secret; they grant org-level power equivalent to a highly privileged member.

Dedicated environments (not self-service)

Dedicated and developer sandbox stacks (isolated Game API + database + Buddy per org) are not available in the customer portal. Crowded Kingdoms operators provision them for internal or enterprise use.

Troubleshooting

SymptomWhat to check
Cannot connect to Game APIMint an app-scoped token (mintAppToken); identity session tokens are rejected for gameplay.
runtimeStatus deniedWallet empty, spend cap hit, or subscription lapsed — see Shared environment & billing.
Wrong Game API URLUse app.gameApiUrl or platformConfig.sharedGameApiUrl — do not use legacy per-box URLs like game.dev1.dev.cks-env.com unless an operator assigned one.
Token expiredCall refreshAppToken on the Management API before retrying gameplay.

Next steps