№ 08 · In Build 2024 → · On the Bench

An old-school MUD, built from scratch.

A text-based multi-user dungeon, persistent world, real-time multiplayer over WebSockets, scriptable rooms and NPCs, content shipped like blog posts. You play this in a terminal. The point is rooms that feel hand-written, fights that feel weighty, and a world that grows in public.

session · chris@mud:~ connected · 38ms
The Stonecutter's Yard
▸ outer ward · district 02
A low-walled yard of cut granite, half-finished pillars leaning against the eastern fence. The chisel marks on the nearest block look fresh. Smoke from a forge hangs in the cold morning air.
Exits: north (gate), east (forge), south (alley)
A stout dwarf in a leather apron tests the edge of a chisel here.
A grey cat watches you from the wall.
> look dwarf
She is short, broad, and unimpressed. Her hands are scarred from decades of stone. A brass token hangs on a thong around her neck.
> ask dwarf about the token
"You've got an eye, traveler." She lifts the token. "Guild mark. You wanted to know that, or you wanted to know why I'm wearing it openly today?"
> attack goblin
You drive your blade in low. CRITICAL · 14 damage. The goblin reels. Stamina: 18/30 (debt: 4).
>
Terminal session · room · NPC · combat Python backend · WebSocket · stamina debt mechanic
The premise

A MUD is a text-based RPG you play in a terminal. The genre is older than the modern web, and most of what's still online today is held together by VOLUNTEERS and an LPC interpreter from 1996. The premise here is to build one from scratch, with a modern stack, and treat the world like a publication: rooms get shipped, NPCs get written, regions go live the way blog posts go live.

The build

A Python backend running real-time over WebSockets. Persistent world state in a database. Rooms and NPCs are scriptable in their own small DSL so writing a room feels closer to writing a post than to writing a class.

  • Persistent world, the place is still there when you log out
  • Real-time multiplayer. WebSocket transport, low latency, presence
  • Scriptable rooms & NPCs, small DSL, content pipeline like a CMS
  • Stamina debt combat, over-exert on a turn, pay it back across the next two
  • Room-by-room devlog, each region ships in public
Why it matters

Most contemporary RPGs are obsessed with rendering. MUDs are obsessed with writing. There's still room for a game that asks you to read carefully, talk to the dwarf, decide whether to ask the second question, and live with the answer. This one is mine to build, slowly, on the bench.

Stack
Python · WS
Postgres · scriptable content
Genre
Text-based RPG
Persistent world · multi-user
Cadence
Public devlog
Region-by-region · content pipeline
MUD Game · devlog

Dev / Build Log

Filtered to MUD —
all lanes →