Back in April I released One Million Chessboards - a realtime chess MMO played across one million boards.
It runs in a single process and handled millions of moves and hundreds of millions of queries at launch. I’m particularly proud of how the game implements “rollback” - applying moves in your browser immediately and then undoing them if they aren’t valid.
After releasing the game, I found that plenty of folks were as interested in understanding how it works as they were in actually playing it! So I’ve taken some time to write that down.
You can read about how it works here (sorry, the post is far too long and image heavy for me to be able to send it over substack).
I’ve also made a video version of the essay, which you can watch here1. Making a long-form video (instead of short form content) was refreshing; it felt like I was making something that contributed to a real body of work, which I typically don’t feel when I make a 30 second video about my latest project.
I’ve also been playing with some funny ideas.
The browser tells you where the cursor is
I’ve spent the last few weeks experimenting with games that are about selecting text.
It turns out that the browser tells you when the user is selecting text, and it even tells you exactly what you’ve selected! And so if you’re clever (and if you change that text out from under them) you can build full little games inside text boxes.
These experiments started out simple - like here where selecting text creates a “bridge”
There’s something delightful (for me, at least) about taking a familiar mechanism like selecting text and adding this level of interactivity to it. And it’s very nice to be able to rely on the browser’s built in behaviors - the arrow keys work out of the box since this is just…a text box!
I’ve spent a while trying to come up with more complicated actions that selecting text might represent. Maybe you’re selecting text to draw back an arrow on a bow:
Or maybe you’re creating an umbrella to shield yourself from the rain:
I’m not quite sure where I’d like to take these experiments - maybe they’re a game, or maybe I just want a little gallery of them. But I’ll have more to share here eventually.
More multiplayer stuff
I’m also hard at work on my next multiplayer game. I’m not ready to describe exactly how it works just yet, but I can say that it *won’t* run in the browser this time.
Till next time,
-N
I’d welcome any and all feedback that you have on the video - the plan is to make several more of these but I’m an absolute novice here and don’t really know what I’m doing!