Download Game! Currently 67 players and visitors. Last logged in:AceduckDesertDregasTalon

Blitzer's Blog >> 72282

Back to blogs index
Posted: 11 Sep 2026 13:37 [ permalink ]
## Recommended order of operations

Given where you are, I'd resist the urge to build all three subsystems at
once. The dependencies point to a specific sequence:

1. **Add `seq` to the RingBuffer and `lastAppliedSeq` to the worker.** This is
small, and everything downstream depends on it. You'll thank yourself later.
2. **Local persistence first (OPFS, not IndexedDB).** OPFS is dramatically
faster for many small writes, and it's synchronous inside a worker. Get
"reload the tab, world is still there" working. This forces you to nail down
the snapshot format without any network complexity.
3. **Then a single WS relay** (FastAPI or a 50-line Node `ws` server  both
fine). One server, two clients, verify seq ordering works. This is where
you'll discover whether your snapshot consistency story is actually right.
4. **Then bots.** Bots are just a WS client that reads the edit stream and
occasionally emits edits. Once step 3 works, bots are a Python script.
5. **RLE, compression tuning, WebRTC, claims/ownership, anti-cheat**  all
later, and only if profiling or gameplay demands them.

The proposal's big idea  the world is a log of sequenced edits, snapshots are
checkpoints  is the correct one. The missing piece is that **every one of
those words needs a sequence number attached**, and the proposal doesn't say
that anywhere. Fix that first and the rest becomes straightforward.