A mahjong roguelite where you break the rules, build impossible hands, and chase absurd combos.
Mahjuro takes the tile-matching beauty of mahjong and reimagines it as a roguelite deckbuilder inspired by Balatro. No mahjong experience required -- the game teaches you as you play, and every run is a new puzzle of pattern recognition, risk management, and combo stacking.
Each run is a series of antes, and each ante has three blinds you need to beat by hitting a target score. You draw tiles, arrange them into scoring patterns called melds, and try to rack up enough chips x multiplier to clear the target before you run out of plays.
Between rounds, visit the shop to buy relics, zodiac cards, and talismans that bend the rules in your favor. The deeper you go, the higher the stakes -- and the wilder the combos.
| Pattern | What It Is | Base Chips |
|---|---|---|
| Pair | 2 identical tiles | 18 |
| Triplet | 3 identical tiles | 50 |
| Sequence | 3 consecutive numbers in one suit | 28 |
| Kong | 4 identical tiles | 80 |
| Full Hand | 4 melds + 1 pair (14 tiles) | Huge bonus |
Land specific tile patterns to trigger yaku -- named bonuses that multiply your score. Start with the basics and unlock more as you progress:
- Tanyao -- All middle tiles (2-8), no terminals or honors
- Toitoi -- All triplets, no sequences
- Honitsu -- One suit plus honors only
- Chinitsu -- Pure single suit, no honors
- Sanshoku Doujun -- Same sequence in all three suits
- ...and many more to discover
Persistent upgrades that stack and interact in surprising ways. A few favorites:
- Triplet Boost -- Triplets get x2 multiplier
- Kan Drum -- Kongs grant +1 play and +4 mult
- Snowball -- Earn +0.1 mult for every 100 points scored (max +5)
- Dora Crown -- Extra dora indicator with +35 bonus chips
There are 50+ relics to find across your runs.
Carry up to 2 items at a time (expandable with relics):
- Zodiac Cards -- Level up your yaku patterns permanently for the run
- Talismans -- Enhance tiles with jade, pearl, gilded, or polychrome finishes for bonus chips and mult
Every third blind is a boss with a special rule that forces you to adapt:
- The Hermit -- Pairs score zero
- The Forest -- Sequences are halved
- The Bureaucrat -- You must play exactly 5 tiles
- The Dragon -- Structure must contain honors
- Rust (2024 edition)
- A GPU with Vulkan, Metal, or DX12 support
# Clone the repo
git clone https://github.com/Velfi/Mahjuro.git
cd mahjuro
# Build and run (release mode recommended)
cargo run --releaseThe game includes a tutorial that walks you through the basics -- just start a new run and follow the prompts.
Mahjuro supports gamepads out of the box via the gilrs library.
Your progress persists across runs. As you complete more runs, you unlock:
- New yaku patterns to score with
- New relics in the shop pool
- Tile materials with gameplay perks (Bamboo: +1 play, Plastic: +1 discard)
- Dora indicators for bonus scoring
- Harder rule modifiers and boss encounters
- 7 difficulty tiers total
Run a headless AI player to test game balance:
# Run 200 bot games
cargo run --release -- --bot 200
# Parameter sweep for tuning
cargo run --release -- --sweep --runs 30
# Custom parameters
cargo run --release -- --bot 200 --base-target 250 --target-scale 1.3 --plays 5
# Verbose trace for a single run
cargo run --release -- --bot 1 --bot-logAlways use --release for bot mode -- debug builds are 10-20x slower.
src/
core/ Game logic: tiles, hands, scoring, yaku, relics, progression
game/ State machine, event bus, game modes, cascade animations
render/ WGPU rendering, animation controller, draw commands
ui/ Constraint-based layout (Cassowary), widget tree, input
scenes/ Scene system: start screen, gameplay, shop, game over
audio/ Sound effects and music
persistence/ Save/load
assets/ Tile models, textures, fonts, audio, backgrounds
| Document | Description |
|---|---|
GAME_DESIGN.md |
Full feature spec and design philosophy |
ARCHITECTURE.md |
System design and module structure |
PROGRESSION.md |
Unlock trees and meta-progression |
BOT.md |
Headless AI player guide and tuning |