One Million Chessboards · eieio.games (eieio.games)
from alyaza@beehaw.org to gaming@beehaw.org on 28 Apr 2025 19:08
https://beehaw.org/post/19702694

I made a website. It’s called One Million Chessboards. It has one million chessboards on it.

Moving a piece moves it for everyone, instantly. There are no turns. You can move between boards.

What

Well last year I made this game called One Million Checkboxes.

It was a pretty fun time! So I thought I’d do something like this again.

I worked really hard on this one. I hope you like it.

How

This was the most technically challenging thing that I’ve worked on in a long time. I’m going to save a full technical writeup until I see how my decisions pan out, since I think there’s a decent chance I’ll need to make a lot of changes.

But I’ll summarize a few things for you.

  • Unlike One Million Checkboxes, I designed this for scale
  • The game runs on a single server (!)
  • The board is stored fully in-memory; it’s a 2D array of 64 million uint64s
  • The backend is written in go. This is my first go project.
  • I use a single writer thread, tons of reader threads, and coordinate access to the board with a mutex
  • The frontend optimistically applies all moves you make immediately. It then builds up a dependency graph of the moves you’ve made, and backs them out if it receives a conflicting update before the server acks your move.

That last part - optimistic move application with what games people sometimes call “rollback” - is about 1,600 lines of code that took me a ~7 days of fulltime work to write. I don’t remember the last time I wrestled with a problem that hard!

#gaming

threaded - newest

alyaza@beehaw.org on 28 Apr 2025 19:09 next collapse

the website: onemillionchessboards.com

Goretantath@lemm.ee on 28 Apr 2025 19:26 next collapse

Wtf? I love it XD Gonna try it out when i get home.

prof@infosec.pub on 28 Apr 2025 19:51 next collapse

This is super cool. Well done!

wirelesswire@lemmy.zip on 28 Apr 2025 23:13 next collapse

I was taking a rook around and taking a bunch of pieces out. Found someone else making moves and antagonized them for a bit before moving away. I guess they followed me, because as I was taking out a back row on one board, the rook ambushed me as I took out a knight.

realitista@lemm.ee on 30 Apr 09:04 collapse

I just grabbed a queen and took out a ton of pieces unopposed.