Skip to main content

GameClientBootstrap

Startup contract for browser game clients. Fetch this after login to initialize protocol/version checks and UDP proxy state in one round trip.

type GameClientBootstrap {
appId: BigInt!
me: User!
versionInfo: ServerVersionInfo!
udpProxyConnectionStatus: UdpProxyConnectionStatus!
realtimeProtocol: String!
subscriptionName: String!
maxReplicationDistance: Int!
maxDecayRate: Int!
sequenceNumberModulo: Int!
}

Fields

GameClientBootstrap.appId ● BigInt! non-null scalar

The app (game) this bootstrap was requested for, echoed back. A BigInt as a decimal string. Reuse this exact appId to scope the udpNotifications subscription and on every spatial send for this play session.

GameClientBootstrap.me ● User! non-null object

The authenticated user resolved from the bearer game token on the request. Use this for the local player identity instead of a separate me call.

GameClientBootstrap.versionInfo ● ServerVersionInfo! non-null object

Current server version and the minimum client version the server accepts. Compare your build against minimumClientVersion before connecting; prompt the player to update if it is too old.

GameClientBootstrap.udpProxyConnectionStatus ● UdpProxyConnectionStatus! non-null object

UDP proxy session status for this game token at bootstrap time. connected is false until you open a session (via connectUdpProxy, any send* mutation, or subscribing to udpNotifications); fetching the bootstrap does not open one.

GameClientBootstrap.realtimeProtocol ● String! non-null scalar

GraphQL WebSocket subprotocol expected by udpNotifications.

GameClientBootstrap.subscriptionName ● String! non-null scalar

GraphQL subscription field that carries UDP proxy notifications.

GameClientBootstrap.maxReplicationDistance ● Int! non-null scalar

Maximum allowed value for the distance (chunk fan-out radius) field on spatial sends. Currently 8; the server clamps send distance to 0..this. distance is the number of chunks outward the message is replicated.

GameClientBootstrap.maxDecayRate ● Int! non-null scalar

Maximum allowed value for the decayRate (named attenuation algorithm id) field on spatial sends. Currently 5; the server clamps send decayRate to 0..this. decayRate selects how the message attenuates with distance (0 = none).

GameClientBootstrap.sequenceNumberModulo ● Int! non-null scalar

The modulus the per-message sequenceNumber wraps at (256), i.e. sequenceNumber is a uint8 in 0-255. sequenceNumber exists ONLY to correlate asynchronous responses/errors (delivered on udpNotifications) with the send that produced them — it is NOT an idempotency key, and the server does not dedupe replays.

Returned By

gameClientBootstrap query