The idea
Regular Mahjong Solitaire is a fixed, finite puzzle — you solve the layout and you’re done. I wanted to know if that could be endless instead: a world you wander through rather than a board you clear once.
What it does
One board. No end.
Talus is a phone-first Mahjong Solitaire game that ditches the usual fixed board. Instead, tiles are packed into 48-tile “gardens” that physically weave into their neighbors along shared edges, forming a continuous, wanderable world instead of a single puzzle.
You start anywhere, match identical free tiles within a garden (and its overhanging neighbors), and clear gardens to earn gems and uncover a persistent decorative tapestry across the world. Dragging pans the camera, pinch/scroll zooms, and Wander teleports you to new coordinates when you want a change of scenery.
Built with TypeScript and Vite, packaged for Android and iOS via Capacitor, with a full test suite covering board generation, the solver, rules, save/recovery, and end-to-end browser interaction on both desktop and mobile.
Interesting challenges
What started as a simple Mahjong game turned into a much more interesting problem in procedural generation. Simple Mahjong rules get significantly harder once puzzles share physical boundaries: a garden can’t be generated in isolation, because its edge tiles have to stay solvable alongside whatever gets generated next to it later. That means generation has to be deterministic (the same world coordinates always produce the same garden) and solver-verified, so a player never wanders into a dead end that can’t be cleared.
Progress and outcomes
The current build (V16) draws each garden from 128 checked-in, solver-certified layouts, with a Node/TypeScript engine, a Vite dev/build pipeline, and Capacitor wrapping it for Android (with an iOS project checked in for Xcode builds on a Mac). There’s a diagnostic APK build for chasing down tile/trap bugs, and a documented roadmap for the next round of algorithm, difficulty, and progression work.
What comes next
The roadmap’s next task is reproducing and explaining suspected false traps — cases where a garden looks tangled but might not actually be. Broader ambitions include a leaderboard (gardens cleared, matches made) and further economy/progression design.
