The challenge
My family's three-player game uses KL rules, Fly wildcards, Bomb hands, and payment customs that most Mahjong games do not support.
Jom Mahjong! · KL edition
My family's KL rules became a playable 3D game. New players can learn at the table, and rule-bound AI can fill an open seat during a live match.

01 · Product
The challenge
My family's three-player game uses KL rules, Fly wildcards, Bomb hands, and payment customs that most Mahjong games do not support.
The opportunity
I wanted the software to respect those rules, teach them at the table, and keep a match moving when one seat is open.
Preserve KL rules and vocabulary.
Run people and AI through one legal-action system.
Build the tools needed to run a live game.
02 · Rules
The game engine checks each move against the rulebook. It also calculates fan, Bombs, and payments.

Key translation decisions
KL tile set
84 tilesIncluding four Fly wildcards.Winning threshold
1–10 fanConfigurable by table.Source protection
SHA-256Rule changes trigger a scoring re-audit.


03 · Experience
Players choose their moves. The game handles setup, rejects illegal actions, and explains each payment.
Draw from the 84-tile wall or claim a discard.
The engine resolves legal actions and call priority.
Dangerous discards can make one player liable for the table.
Show the hand, fan, scoring lines, cap, and payments.

Required actions teach the real table in six to eight minutes.
Experienced players can skip generic Mahjong instruction.
Calls, Bombs, payments, and the source PDF stay available.
04 · Multiplayer
The server owns game truth while AI keeps open seats from blocking play.
Match people first, then fill open seats with AI.
Invite by code, link, or QR and start before every seat is full.
A legal AI action keeps a timed-out or released seat moving.
A returning player reclaims the seat at a safe boundary.
The server publishes the table while each concealed hand stays in an owner-private view.


05 · AI
These tools solve different problems, so they get different permissions.
The game engine gives AI a list of legal moves. It cannot invent a command or bypass the rules.
Generated concepts and music help explore a direction. Source and license records stay with every asset that moves forward.
I use the rulebook, code, and tests as evidence. People still own the rules, licensing, and release decision.


Generated output cannot redefine a hand, change a payout, bypass licensing, or publish itself.
06 · Results
The preview tool checks art before release. Asset records, telemetry, identity, and payments keep the live game running.


Rules made executable
36 scoring rowsBuild checks tie every payout row to the source PDF.First working sprint
10 daysThe first commit through the reviewed live build covered 238 small, reviewable changes.Localized product surface
4 languagesEnglish, Bahasa Malaysia, Simplified Chinese, and Traditional Chinese.Character system
8 voice identitiesDistinct, lazily loaded voice packs for human and AI seats.Product model
Offline play is unlimited. Energy funds online play; Jade and cosmetics support stakes and expression without changing legal hands.



07 · What I would measure next
The next step is to measure whether people learn the KL rules and complete live matches.
Track tutorial completion and the first independent win.
Track wait time, human fill rate, AI seats, and invite conversion.
Track latency, recovery, completion, and rules disputes.
Open to senior and principal product roles
I can set direction, work through hard technical details, and help a team ship.