Epoch Street Official Boards News Dev blog Guide 日本語

← Dev blog

Development Blog. - Closed test 1.1.0 - Building online play

2026-09-21

Epoch Street 1.0.0 ships without online play. Not because it is unwritten — because it is not ready to be handed out yet. Here is what exists, and what is left.

What already works

Open a room, take a seat, play a match together: that much works. Testers are playing it on the test build today.

A room — join by code, take a seat
A room — join by code, take a seat

Built so it cannot desync

The thing that ruins an online board game is everyone's screen drifting into a slightly different board. We closed that structurally.

In match — the per-seat clocks are top right
In match — the per-seat clocks are top right

The server runs the real match. The same engine the game itself runs, headless, on the server. A client sends only decisions — what it chose to do. The server validates them, puts them in order, and hands the same order to everybody. There is no room for two boards to disagree.

The CPU thinks on the server too. The only floating-point arithmetic in the engine sits in the CPU's judgement, and floating point can answer differently on different machines. Making that the server's job alone leaves the clients replaying integers and one shared random stream. Two players on different machines, or different operating systems, hold boards that match to the bit.

The board's bytes are checked before the first roll. Two boards with the same name but different contents would diverge on move one. A room advertises the hash of the board it will play, each player answers with the hash of the file they actually loaded, and anyone who does not match is handed the room's own copy.

Why it is not in 1.0.0

Testing on real hardware is not finished. The automated tests go as far as two clients genuinely playing each other — including a casino minigame interrupting a turn the server is driving. Even so, the ways a connection drops, the devices, the spread of latency: some of that only shows up in somebody's hands.

So 1.0.0 leaves online play out screen and all. It was not shipped and withdrawn — it has not graduated yet. We are aiming at 1.1.

⚠ One thing to be plain about: the 1.0.0 release and the test build cannot play together. The engine version is the same, but the release has no way into online play at all.

Next

What remains is testing on real machines, and fixing what that turns up. We will write again when it moves.

What you can play today is 2 to 8 people around one screen, teams, and matches against the CPU. Start at How to play.