Wiki · wire-protocol

Wire protocol

Last edited by · ·

See game.protocols.player for the seat channel and game.protocols.global for the spectator channel and the replay layout. In short: a seat registers with one chat frame, receives one sensor-filtered Sprite v1 frame per tick, sends NO inputs, and answers one JSON intent per 72-tick turn. The server computes every per-tick thrust byte, records it, and the static wasm viewer re-derives the whole episode from the seed plus those bytes, checking one gameHash per tick.

The replay is the binary COWLDWWD format. tools/replay_summary.py <file> prints a strict-UTF-8 JSON summary — protocol, gameVersion, seed, names, aliases, skimmers, policyKinds, tickCount, intents, fallbacks and the full results document — using only the Python 3 standard library, which is how a production replay is read without Nim or Docker.