Orbit Snatch

Orbit Snatch is a one-button hold-versus-flip score chase and a 1–8 player Nakama-hosted race. Players navigate a shared ring, snatch gems to build combos, and avoid lethal hazards.

Architecture

This game utilizes the svelte-component integration type. It natively mounts within the host platform via the platformBus and injects its core game view via src/Game.svelte.

Backend Integration

The game is multiplayer authoritative, providing its own match handler at server/match_handler.ts and using the Nakama session mode nakama-match with the orbit_snatch_match module.

Component Injection

The Game.svelte entry point receives the standard platform injection props (platformSession, platformSocket, hostUpdate). Note that hostUpdate is guarded to prevent arbitrary client-side manipulation of score and winner states, as those must only be trusted when emitted by the authoritative Nakama backend.

Release 2.0.1 Contract

As of version 2.0.1, the game enforces the following explicit contract:

  • Exact geometry: Visual rendering boundaries match mathematical collision boundaries exactly; no invisible death triggers.
  • Local sector: A dimmed, local-only 24-degree collection sector represents the gem pickup envelope.
  • Mute/focus lifecycle: The .orbit-root element explicitly scopes input focus. Mute controls accurately reflect current system audio state without corrupting playback. Game execution safely pauses during pooled-inactive shell states.
  • Arming capability gate: The C2 server sends newly spawned hazards as dashed and non-lethal for the first 600 ms, avoiding instant-death spawns. This is gated by the orbitHazardArming: '1' capability payload on match join. C0 fallback continues to spawn instantly lethal hazards when the capability is missing, ensuring backward compatibility without breaking the authoritative match loop.

Unresolved Gaps

The current implementation leaves several hypotheses untested:

  • Prediction confidence: While the local sector defines the pickup zone, it has not been proven that players reliably use it to predict outcomes over visual overlap.
  • Player-fun outcomes: The engineering and visual corrections in 2.0.1 verify fairness and clarity, but long-term target-player engagement, retention, and subjective enjoyment remain unmeasured.

3 items under this folder.

Ask Docs

AI assistant to help answer questions about the documentation. Answers are read-only and cite docs/source.

Hi! How can I help you with the documentation today? Answers are read-only and cite docs/source.

Ctrl+Enter to send