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-rootelement 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.1verify fairness and clarity, but long-term target-player engagement, retention, and subjective enjoyment remain unmeasured.