@ umoria.net Play mudai

mudai

A modern Python port of the classic roguelike Umoria, in your browser.

mudai stands on the shoulders of others. The dungeon, the monsters, the spells, the line-of-sight, and the room-lit-on-entry trick all come from Umoria, which Jim E. Wilson ported to C/Unix in 1987–88 from Moria — the game Robert Alan Koeneke and Jimmey Wayne Todd wrote in VMS Pascal at the University of Oklahoma in 1983. David Grabiner and Ben Asselstine kept Umoria alive across the decades. mudai is a port, not a reinvention. The heritage is documented in full in ATTRIBUTION.md; please read it before forking.

A peek

A typical screen, six tiles east of a lit room:

##########                              HP:   24/24
#........#                              Mana: 10/12
#..!.....+####                          AC:   13
#........#  #                           Status: Blessed
##########  #                           Wield: Longsword (1d10)
            #     k                     Worn:
            ####...####                  body: Soft Leather Armor [+4 AC]
               #@.....#                  light: Brass Lantern
            ####.......                 Visible:
                ##.k.>##                  - Kobold (×2)
                 #####                   Cast which spell?
                                          a) Magic Missile  (mana 1, 5% fail)
                                          b) Phase Door     (mana 1, 14% fail)

@ is you. k is a kobold. > is the stairs down — walk onto them and the game asks if you want to descend.

Play it

Coming soon at https://play.umoria.net (DNS pending). Until then, run locally — see the next section.

Run it locally

# One-time
curl -LsSf https://astral.sh/uv/install.sh | sh      # or `irm https://astral.sh/uv/install.ps1 | iex` on Windows
uv sync

# Every time
MUDAI_LOCAL_DEV=1 uv run python server.py             # bash
$env:MUDAI_LOCAL_DEV = "1"; uv run python server.py   # PowerShell

Open http://127.0.0.1:8000, pick Warrior / Rogue / Wizard, and you land straight in the town square. No Google login, no Mongo, in-memory only. Fine for poking around, not for saved campaigns.

What's in it

Today, a fresh game gives you:

How it's built

Python 3.14, uv for dependencies, FastAPI on a single WebSocket endpoint, MongoDB for persistence, and Cloud Run + Workload Identity Federation for the deploy. The frontend is plain HTML/CSS/JS — no React, no canvas — and the dungeon is drawn into a <pre> block with one <span> per cell. The console aesthetic is deliberate. See CONTRIBUTING.md for the local dev workflow and the phase-based prompt model the project uses.

License & attribution

mudai is GPL-3.0, the same license the original Umoria carries (LICENSE). The names of the original authors — Koeneke, Todd, Wilson, Grabiner, Asselstine — appear in the in-game HUD footer, in every Python source file's header, and in full in ATTRIBUTION.md. Please keep them there.

On the shoulders of giants we sit.

Play mudai in your browser