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.
- Custom rooms — join by code, 2 to 8 players. Every seat can be a person, a CPU or closed, and the rule and player screens that open are the game's own, unchanged
- Quick match — pick a goal band (three of them) and queue; when enough people are waiting, the room builds itself. The board comes from a pool the operators curate
- Rejoin — lose your connection and you come back to the same seat. A CPU plays for you while you are away
- Time bank — a clock per seat. Run it out and a CPU plays that one turn for you; you do not lose the seat
- Unanimous early finish — a match that has gone long can end, but only when everyone agrees
- Custom boards — the room's board is handed to the players who do not have it
A room — join by code, take a seatBuilt 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 rightThe 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.