Our own project · In development
Rosmino
An online, competitive, cross-platform domino platform, built from scratch. Not a client project — it's ours, and here's how it's going.
What Rosmino is
Rosmino is a domino platform meant to feel like an esport, not a casual game: 1v1 and pairs matches, competitive ranking, leagues with promotion and relegation, single-elimination tournaments, and official championships with a Hall of Fame, plus matches against AI with difficulties ranging from beginner to grandmaster. A single project compiles for Android, iPhone/iPad, Windows, macOS and the web browser.
What does it take to build an engine like this from scratch?
Here "the engine" isn't the confidential part of work on someone else's game — it's literally what we're building, piece by piece, and we can talk about it in detail because it's ours. The core is a pure C# rules library, with no dependency on any graphics engine or networking, compiled identically for three different places: the client (for local prediction and animation), the match server (the single source of truth), and, later, a simulator that will play millions of matches automatically to find balance issues before a real player does. A match's state is never mutated directly: it's rebuilt by applying, in order, a sequence of immutable events — so a complete match is literally reproducible from its history, which is exactly what's needed for replays, audits, and dispute resolution. The client can predict a move locally so it feels instant, but it never decides the outcome: that's always validated by the server, against the same rule set — so no modified client build can cheat at anything that actually matters to the match.
The domino rules themselves — tile count, closing conditions, scoring, 1v1 or pairs mode — sit behind a configurable "rule set" interface, so adding a new variant means adding a class, not rewriting the engine. On top of that, the server talks to each client over WebSocket with versioned messages from day one, precisely so the protocol can evolve later without breaking an old app version someone still has installed.
How it's going, phase by phase
The project is moving through 21 planned phases, and as of today 12 are closed — not in the sense of "works in a demo," but verified by playing real matches start to finish in each one. The rules engine has a suite of over 90 automated tests with close to 100% coverage. The client builds and runs on all five platforms. There's a real authoritative match server talking over WebSocket, with real reconnection. Automatic matchmaking runs on a real queue, widening the acceptable rating range the longer someone waits. Accounts are real, with real sign-in. Ranking is calculated with a real Elo-style system after every match. Leagues have real promotion, relegation, and protection. Tournaments generate their single-elimination bracket for real, round by round, with no manual intervention. And championships — fixed phases of quarterfinals, semifinal, and final, with ranking-based qualification and a real Hall of Fame — round out the competitive system.
The most recent phase added genuinely competitive AI: seven difficulty levels, from beginner to grandmaster, with real inference of which tiles each opponent might hold and real search for the best move — never random moves. In simulated matches, a grandmaster beat a beginner 17 out of 20 times, and an intermediate level beat a beginner 48 out of 60 — a real strength gradient, not just "makes more mistakes on purpose." That same AI automatically takes over for any human player who disconnects mid-match, until they come back.
Still ahead: a social system, spectators and replays, hardening anti-cheat, the admin panel, the game's final art — right now there isn't a single finished image, so you won't see screenshots on this page yet — and finally, optimization, real load testing, and a cross-platform release. None of this has an announced date.
What's already real