Backend & real time
Ludosaic
A mini-game platform under development with replayable rules, server-verified results and recovery after interruption.
Technical decision
How it works
Rules are separate from rendering; the server replays runs to verify connected results.
- Player actions
- Replayable game rules
- Server-side reconstruction
- Verified connected result
In this case study
My contribution
I develop Ludosaic independently, from the web application to the mini-game rules. My work includes:
- separating games, their interfaces, and the server within a monorepo;
- rules that can be replayed from a seed and action sequence to verify results on the server;
- storing pending results locally and resending them after reconnection, with duplicate prevention;
- a foundation for private rooms with Colyseus, tested locally with two browsers for Grid Duel.
The technical choices and limitations below describe the work in progress.
Inside the application
These screenshots show the catalog and a demonstration game running locally, with the French interface. The illustrated game uses the two-player mode on one device.
View an interface detail
Start playing without creating an account
I started Ludosaic because I enjoy quick games that can be played without installation. Building the platform and its games myself lets me work on rules, interfaces, and the server.
Ludosaic brings several mini-games into one web experience designed to be accessible, installable, and mobile-first. Its intended journey stays direct: choose a game, select a mode, and start playing without requiring account creation.
A guest profile is generated locally to preserve the display name, preferences, progression, and achievements. When connected services are available, an anonymous session can also synchronize selected settings and verified results while compatible modes remain usable offline.
Three games for building the platform
Reflex Rush offers solo reaction runs and deterministic daily challenges. Merge Forge is a merging puzzle that can be saved and resumed, with a shared date-based challenge. Grid Duel explores strategy play for two people on one device, bots, and private online rooms.
These three games do more than fill a catalog. Each tests a different constraint: the lifecycle of a Phaser engine, replayable puzzle logic, and then a multiplayer authority able to control turns and persist results.
Choices that shape the platform
Separate games from their interfaces
The monorepo separates the Next.js application, game server, each game, and their shared contracts. React and Phaser power the interfaces, PostgreSQL and Drizzle store durable data, Redis handles temporary coordination, and Colyseus provides authority for private rooms.
Verify results against the rules
Rules remain independent from rendering and can be replayed from a seed and action sequence. For a connected result, the server reconstructs the run instead of directly trusting a score reported by the browser. Games load only when opened, and the service worker can reopen selected previously loaded modes without a connection.
Resume after an interruption
For example, a connection lost after a game should neither discard its result nor count it twice when sending is retried. The local queue and duplicate prevention address this requirement.
Pending results are stored locally and resent after reconnection. Server-side verification and duplicate prevention allow submission retries without counting the same run more than once.
Grid Duel private rooms also include a recovery mechanism. These features support continuity of play, with validation in the target environment still to be completed.
Validation and current limitations
Ludosaic is still under active development. The repository contains a locally validated foundation and playable local or connected beta journeys, but the complete MVP has not been delivered. Grid Duel private rooms, for example, have a foundation tested with two browsers without yet representing a production-ready multiplayer experience.
No external deployment has been performed. I plan to host it on my future homelab once the hardware and target environment are ready. Before a public release, the project still needs to complete its MVP criteria, harden multiplayer operations, obtain a legal review of its notices, and validate backups, restoration, TLS/WSS, monitoring, and critical journeys in the target environment. Its rule, PostgreSQL, and browser tests therefore describe engineering progress, not results from a production service.