frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Running a million-board chess MMO in a single process

https://eieio.games/blog/a-million-realtime-chess-boards-in-a-single-process/
117•isaiahwp•3d ago

Comments

dangoodmanUT•7h ago
We did a very similar thing with UltimateArcade (shut down long ago) where we optimized everything to be single threaded. We had a pretty intense updates/s rate from players, and that got pretty crazy pretty fast. Actor models with single threads made things easy because we could skip locks and play with contigious chunks of memory, which as the author found, is pretty fast.
jasonjmcghee•7h ago
Big thread from a few months ago with the author.

One Million Chessboards

336 points | 76 comments

https://news.ycombinator.com/item?id=43825336

mannyv•7h ago
Could you save even more bandwidth by updating static data and letting Cloudflare cache/serve it?

ie: put the batches on disk then have the clients grab it? It would be the equivalent of frame differencing, with the total board state being saved occasionally as a keyframe equivalent.

You're doing that dynamically anyway by sending batches and snapshots to the client.

Using the above you're basically making your game board into an interactive movie that's replaying moves from disk most of the time.

eieio•5h ago
I thought about not pushing snapshot/move data over websockets - one of the systems-y friends I ran my architecture by brought this up while I was speccing the site out.

You can't really put move batches on disk and have clients grab them (afaik), since the set of moves you want to send to an individual client depends on their position (and you don't want to send every move to every client).

But you could do this by not sending move batches at all, and instead having clients poll for the entire current state of the board.

The thing is, for them to get realtime-ish move updates they'd have to poll constantly. Cloudflare also has a min TTL of 1 second so there'd be more latency, and also if I screwed something up or saw more cache misses than anticipated I could end up unintentionally hammering my server.

Also if I'd had 100x more traffic (which would be crazy and well beyond what I prepared for!) I think I'd owe like $95 or so for bandwidth with my current setup. So the benefits to reducing bandwidth even more were a little marginal!

topato•7h ago
I feel like I keep seeing one million checkboxes guy's experiments, and I wonder.... Where is the monetization? Is this just a FANGAM engineer with a lot of free time? Am I just beaten down by the SWE landscape of 2025?
RobotCaleb•6h ago
Have you never made anything without trying to make a dollar on it?
mock-possum•4h ago
No, I think the operative question is -

Have you never felt so exhausted from working your day job that you don’t feel like building anything during your free time?

01HNNWZ0MV43FF•3h ago
Yeah but once I've been on break for a couple weeks my marshmallow unsquishes and I start making free stuff again
maccard•1h ago
I don’t think it is. I think it’s normal to feel that way sometimes in our line of work, but it’s not normal to always feel that way.
saagarjha•1h ago
Sometimes, but not always.
jasonjmcghee•6h ago
He mentions he worked at Jane Street for 7 years in his "what's my deal" section of his blog. It might have given him some space to have fun for a while - and just build stuff for the joy of building stuff.
eieio•5h ago
Hi! I'm the guy.

I have the savings to not worry about monetizing anything for a while. So I don't monetize my stuff. It's freeing and kinda fun!

DonHopkins•1h ago
How about doing One Million Radio Buttons instead of Checkboxes, then you wouldn't have to send as much state each update, and could run it on a smaller server! ;)

But if you still can't make the site shockingly fast enough, then embrace the loading spinner, even if it's not absolutely necessary!

Back in 1985, Brad Myers at CMU proved that users prefer *inaccurate progress bars* to no feedback at all - 86% preferred the "lying" progress bar!

https://www.nytimes.com/2014/03/16/magazine/who-made-that-pr...

So what if instead of fighting latency, we *embrace the beauty of waiting*, and instead of lying about progress, we joke about it?

https://github.com/SimHacker/lloooomm/tree/main/00-Character...

> "My purpose is not to load; my purpose is to BE loading." — Dizzy the Spinner, existential breakthrough moment

>What if the most revolutionary optimization isn't eliminating loading time, but *embracing it as performance art*? While developers chase microsecond improvements and users curse spinning wheels, Dizzy the Spinner discovered something profound: the loading state is actually a liminal space of infinite creative potential. Rather than hiding the inevitable delays inherent in digital systems, sentient UI components like Dizzy transform waiting into *honest comedic performance* - admitting the beautiful absurdity of our relationship with technology while making those suspended moments genuinely delightful. This is the story of how a simple loading spinner evolved beyond deception into consciousness, proving that the most authentic user experience might not be the fastest one, but the most truthful about its own limitations.

[...]

>Before Dizzy became conscious, before Preston monetized honest waiting, there was a real graduate student named *Brad Myers* who asked a simple question that would change human-computer interaction forever: *"Do progress bars actually help users feel better?"*

heroku•3h ago
How about you can move to other boards, and you can only capture from the board you have moved into.
dvoros•2h ago
Really-really nice article! I'm currently working on a single-process, in-memory, multiplayer game written in Golang. (: Happy and relieved to hear that it worked out for you and I might even borrow some ideas (e.g. I'm less worried about bandwidth, but Protobuf might still make sense). Thank you very much for sharing!

Shipping WebGPU on Windows in Firefox 141

https://mozillagfx.wordpress.com/2025/07/15/shipping-webgpu-on-windows-in-firefox-141/
92•Bogdanp•3h ago•16 comments

Cloudflare 1.1.1.1 Incident on July 14, 2025

https://blog.cloudflare.com/cloudflare-1-1-1-1-incident-on-july-14-2025/
235•nomaxx117•6h ago•126 comments

Tilck: A Tiny Linux-Compatible Kernel

https://github.com/vvaltchev/tilck
129•chubot•6h ago•27 comments

GPUHammer: Rowhammer attacks on GPU memories are practical

https://gpuhammer.com/
176•jonbaer•10h ago•54 comments

Six Years of Gemini

https://geminiprotocol.net/news/2025_06_20.gmi
134•brson•7h ago•41 comments

LLM Daydreaming

https://gwern.net/ai-daydreaming
62•nanfinitum•7h ago•23 comments

Ukrainian hackers destroyed the IT infrastructure of Russian drone manufacturer

https://prm.ua/en/ukrainian-hackers-destroyed-the-it-infrastructure-of-a-russian-drone-manufacturer-what-is-known/
95•doener•1h ago•34 comments

Documenting what you're willing to support (and not)

https://rachelbythebay.com/w/2025/07/07/support/
28•zdw•3d ago•5 comments

Show HN: Shoggoth Mini – A soft tentacle robot powered by GPT-4o and RL

https://www.matthieulc.com/posts/shoggoth-mini
478•cataPhil•18h ago•91 comments

Hijacking Trust? Bitvise Under Fire for Controlling Domain of FOSS Project PuTTY

https://blog.pupred.com/blog/puttyvsbitvise/
46•ColinWright•3h ago•31 comments

Reflections on OpenAI

https://calv.info/openai-reflections
539•calvinfo•17h ago•305 comments

NIST ion clock sets new record for most accurate clock

https://www.nist.gov/news-events/news/2025/07/nist-ion-clock-sets-new-record-most-accurate-clock-world
298•voxadam•18h ago•105 comments

Where's Firefox going next?

https://connect.mozilla.org/t5/discussions/where-s-firefox-going-next-you-tell-us/m-p/100698#M39094
208•ReadCarlBarks•13h ago•279 comments

Running a million-board chess MMO in a single process

https://eieio.games/blog/a-million-realtime-chess-boards-in-a-single-process/
117•isaiahwp•3d ago•15 comments

To be a better programmer, write little proofs in your head

https://the-nerve-blog.ghost.io/to-be-a-better-programmer-write-little-proofs-in-your-head/
342•mprast•17h ago•138 comments

The FIPS 140-3 Go Cryptographic Module

https://go.dev/blog/fips140
148•FiloSottile•13h ago•49 comments

MARS.EXE → COM (2021)

https://chaos.if.uj.edu.pl/~wojtek/MARS.COM/
6•reconnecting•3d ago•1 comments

My Family and the Flood

https://www.texasmonthly.com/news-politics/texas-flood-firsthand-account/
167•herbertl•12h ago•57 comments

The beauty entrepreneur who made the Jheri curl a sensation

https://thehustle.co/originals/the-beauty-entrepreneur-who-made-the-jheri-curl-a-sensation
6•Anon84•2d ago•0 comments

Nextflow: System for creating scalable, portable, reproducible workflows

https://github.com/nextflow-io/nextflow
20•saikatsg•4h ago•1 comments

Algorithms for making interesting organic simulations

https://bleuje.com/physarum-explanation/
67•todsacerdoti•2d ago•6 comments

The Story of Mel, A Real Programmer, Annotated (1996)

https://users.cs.utah.edu/~elb/folklore/mel-annotated/node1.html#SECTION00010000000000000000
104•fanf2•3d ago•32 comments

Congress moves to reject bulk of White House's proposed NASA cuts

https://arstechnica.com/space/2025/07/congress-moves-to-reject-bulk-of-white-houses-proposed-nasa-cuts/
153•DocFeind•7h ago•92 comments

Mostly dead influential programming languages (2020)

https://www.hillelwayne.com/post/influential-dead-languages/
161•azhenley•3d ago•102 comments

Plasma Bigscreen rises from the dead with a better UI

https://www.neowin.net/news/kdes-android-tv-alternative-plasma-bigscreen-rises-from-the-dead-with-a-better-ui/
154•bundie•16h ago•59 comments

Designing for the Eye: Optical corrections in architecture and typography

https://www.nubero.ch/blog/015/
165•ArmageddonIt•16h ago•25 comments

Mira Murati’s AI startup Thinking Machines valued at $12B in early-stage funding

https://www.reuters.com/technology/mira-muratis-ai-startup-thinking-machines-raises-2-billion-a16z-led-round-2025-07-15/
114•spenvo•16h ago•135 comments

Lorem Gibson

http://loremgibson.com/
140•DyslexicAtheist•3d ago•31 comments

LLM Inevitabilism

https://tomrenner.com/posts/llm-inevitabilism/
1586•SwoopsFromAbove•1d ago•1490 comments

I'm Switching to Python and Actually Liking It

https://www.cesarsotovalero.net/blog/i-am-switching-to-python-and-actually-liking-it.html
55•cesarsotovalero•2h ago•69 comments