Close

Four consoles, one Ludo table, and dice that never go on the air

A project log for Braino! — a 40-game learning console on a CYD

Open-source ESP32 handheld with 40 learning games, from Maths to Chess over Bluetooth. No Accounts, No Telemetry. Flashes from a browser.

ankush-panditAnkush Pandit • a day ago•0 Comments

Chess between two consoles was one thing. Ludo needs four, and it needs a die.

The die is the hard part. If one console rolls and transmits the number, every other console has to trust it, and the first player to patch their firmware wins every game. Worse, a dropped advertisement is a roll nobody heard.

So the die never travels. Every console derives each roll from the table's seed and the turn number, and the rules refuse any move that does not fit the roll it computed for itself. When two consoles disagree, the move is rejected rather than producing two different boards.

That decision cascades.

Who moves first comes from the seed too. Between two players a coin toss inside the invitation works, because the console that asks for a game must not also claim the first move. A toss cannot seat four, so the deal becomes a shuffle nobody chooses.

A console replaces its turn only once every other console has acknowledged it. On a medium that drops things, that is what makes a bonus roll safe.

A console that goes quiet pauses the table, and once it has been silent long enough to count as gone the host may take its seat over and play it as a computer player. That is a numbered ply in values nothing else uses, so it needed no new bytes.

The wire never changed. Ludo spells its meaning into the same fields chess uses: a seat and a token, or a presence, or the host's start word.

Discussions