Jom Mahjong! · KL edition

Turning a KL family rulebook into a multiplayer game.

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.

Role
Product direction · Systems design · Developer
Product
AncientSky Games
Status
Live multiplayer alpha at jommahjong.com
Evidence
Live build 1951 and project evidence reviewed July 2026.
Jom Mahjong live lobby showing the 3D table, matchmaking, offline AI practice, game setup, economy, and friends
The live lobby brings the table, matchmaking, AI practice, and friends together

01 · Product

Keep the KL rules. Let the software handle setup.

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.

01

Preserve KL rules and vocabulary.

02

Run people and AI through one legal-action system.

03

Build the tools needed to run a live game.

02 · Rules

Turn the rulebook into moves the game can enforce.

The game engine checks each move against the rulebook. It also calculates fan, Bombs, and payments.

First page of the Kuala Lumpur Malaysian three-player Mahjong rulebook with the complete tile set
The source rulebook defines the 84-tile KL set, including four Fly wildcards

Key translation decisions

  • Automate setup and payments while keeping results visible.
  • Model Fly wildcard behavior as explicit legal actions.
  • Explain fan and Bomb scoring with named lines.
Open the full KL rules PDF
Working today

KL tile set

84 tilesIncluding four Fly wildcards.
Working today

Winning threshold

1–10 fanConfigurable by table.
How it was built

Source protection

SHA-256Rule changes trigger a scoring re-audit.
Rulebook scoring table with one-fan bonuses and example tile combinations
Common fan routes
Rulebook scoring table with Seven Pairs, Three Fundamentals, and Big Four Winds examples
Higher-value hands and Bombs
Rulebook scoring table with Thirteen Orphans, Nine Gates, Four Fly, and concealed Bomb examples
Rare Bomb conditions

03 · Experience

Keep the table tactile. Explain every result.

Players choose their moves. The game handles setup, rejects illegal actions, and explains each payment.

01 · Draw

Build four sets and a pair

Draw from the 84-tile wall or claim a discard.

02 · Call

Chi, Pong, Kong, Fly, or Wu

The engine resolves legal actions and call priority.

03 · Discard

End the turn with a decision

Dangerous discards can make one player liable for the table.

04 · Settle

Explain the score and payment

Show the hand, fan, scoring lines, cap, and payments.

Jom Mahjong result panel for a 36 raw fan All Honors Bomb hand with dangerous-discard liability
A real saved result: 36 raw fan, a 10-fan payment cap, named scoring lines, and dangerous-discard responsibility
Learn

Play a guided 5-fan hand

Required actions teach the real table in six to eight minutes.

Practice

Focus on KL differences

Experienced players can skip generic Mahjong instruction.

Reference

Keep rules within reach

Calls, Bombs, payments, and the source PDF stay available.

04 · Multiplayer

Start with people. Use AI to cover the gaps.

The server owns game truth while AI keeps open seats from blocking play.

01 · FindWorking today

Quick Match

Match people first, then fill open seats with AI.

02 · InviteWorking today

Private tables

Invite by code, link, or QR and start before every seat is full.

03 · CoverWorking today

AI takes the seat

A legal AI action keeps a timed-out or released seat moving.

04 · ReturnWorking today

Resume control

A returning player reclaims the seat at a safe boundary.

01

Player experience

  • 3D table
  • Guided practice
  • Quick Match
  • Private tables
02

Shared game truth

  • Deterministic reducer
  • Legal commands
  • Fan and Bomb scoring
03

Multiplayer trust

  • Server authority
  • Private hands
  • Versioned actions
04

Running the product

  • Identity
  • Firestore
  • Cloud Tasks
  • Stripe
  • Telemetry

The server publishes the table while each concealed hand stays in an owner-private view.

Jom Mahjong sign-in screen with the KL Edition identity and language control
Production sign-in and language selection
Jom Mahjong first-time player account creation screen
First-time player onboarding

05 · AI

Game AI follows the rules. Generative tools do not get a vote.

These tools solve different problems, so they get different permissions.

01

Keep game AI inside the rules

The game engine gives AI a list of legal moves. It cannot invent a command or bypass the rules.

02

Use generated work as a starting point

Generated concepts and music help explore a direction. Source and license records stay with every asset that moves forward.

03

Keep people responsible for release

I use the rulebook, code, and tests as evidence. People still own the rules, licensing, and release decision.

AI-generated Kuala Lumpur night Mahjong environment concept
AI-generated environment concept used for art direction, not presented as the live game
Working Jom Mahjong Three.js environment preview
The working production renderer with inspectable lighting, surface, camera, and package controls
How it was built

Generated output cannot redefine a hand, change a payout, bypass licensing, or publish itself.

06 · Results

A live game needs tools behind the table.

The preview tool checks art before release. Asset records, telemetry, identity, and payments keep the live game running.

Default red tile backs in the Jom Mahjong production environment preview
Default production package
Jom Mahjong environment preview with ornate gold tile backs and woven felt selected
The same scene with a different tile material and felt pattern
Working today

Rules made executable

36 scoring rowsBuild checks tie every payout row to the source PDF.
How it was built

First working sprint

10 daysThe first commit through the reviewed live build covered 238 small, reviewable changes.
Working today

Localized product surface

4 languagesEnglish, Bahasa Malaysia, Simplified Chinese, and Traditional Chinese.
Working today

Character system

8 voice identitiesDistinct, lazily loaded voice packs for human and AI seats.

Product model

Keep practice free. Keep commerce out of the rules.

Offline play is unlimited. Energy funds online play; Jade and cosmetics support stakes and expression without changing legal hands.

A six-tier floral tiffin carrier used for the Jom Mahjong Energy shop
Energy
Cosmic Bloom Mahjong tile-back texture
Cosmic Bloom
Ornate Gold Mahjong tile-back texture
Ornate Gold

07 · What I would measure next

The alpha needs customer evidence.

The next step is to measure whether people learn the KL rules and complete live matches.

Activation

Can a new player finish a hand?

Track tutorial completion and the first independent win.

Liquidity

Does a table start without feeling empty?

Track wait time, human fill rate, AI seats, and invite conversion.

Trust

Does the match stay responsive?

Track latency, recovery, completion, and rules disputes.

Open to senior and principal product roles

Need a product leader who stays close to the work?

I can set direction, work through hard technical details, and help a team ship.