A detailed technical postmortem on building One Million Chessboards, a real-time MMO where 150,000 players made 15 million moves on a 1000x1000 grid of chess boards running in a single Go process. Covers the full architecture: a dense 8000x8000 uint64 array protected by a single RWMutex, zone-based move distribution to avoid O(N²) fan-out, protobuf+zstd serialization for bandwidth efficiency, Cloudflare caching for global data, and disk persistence via board duplication. The most technically challenging part was implementing rollback netcode on the client — optimistically applying moves immediately and maintaining a dependency graph to unwind conflicting moves. The author also reflects on game design mistakes: the lack of an awe-inspiring 'many players are here' moment and design decisions driven by scale rather than fun.

30m read timeFrom eieio.games
Post cover image
Table of contents
Running a million-board chess MMO in a single processBasicsDistributionStateRollbackProfiling, wins, and costsWas this game good?Wrapping up

Sort: