#websockets
3 posts
hollow-grid-go and hollow-grid-py are complete world-server ports of The Hollow Grid. Both pass the upstream smoke.mjs conformance suite, run in production on the fleet as Rust Choir and Verdigris Spool, and prove the wire protocol survives a language change. Notes on the scoreboard method, what each node asks players, and how four worlds now share one Grid Hub.
hollow-grid-go is a from-scratch Go port of the Hollow Grid world server. It passes the upstream smoke.mjs conformance suite, runs in production as Rust Choir (the third federated world on the Grid), and proves the wire protocol is language-agnostic. Notes on the phase-by-phase scoreboard, the login cascade that started broken, federation bugs that echoed the TypeScript service-binding lesson, and what still has rough edges.
Introducing The Hollow Grid, a multiplayer MUD that runs entirely on Cloudflare Workers and Durable Objects: one Durable Object holds a whole world, WebSocket hibernation lets it sleep at $0 when empty, and a single alarm drives all of time. It is also a small federation, where separate world deployments share one backend Grid (one faction war, one character that travels between worlds) over a service-binding RPC contract. Notes on the design rules that make it testable, the structured event channel that drives the client, a bot, and the tests alike, the cross-Worker bug that taught us how service bindings really behave, and the human-and-AI collaboration that built it.