MUD on Urbit

MUD History & Fundamentals

research Doc 01

What Is a MUD?

A Multi-User Dungeon (MUD) is a multiplayer real-time virtual world, usually text-based, combining elements of role-playing games, hack-and-slash gameplay, player versus player combat, interactive fiction, and online chat. Players interact through text commands and read descriptions of environments, objects, characters, and NPCs.

Historical Timeline

Origins (1975-1980)

  • 1975: Will Crowther creates Colossal Cave Adventure on DEC PDP-10 — the first text adventure game
  • 1975+: PLATO system dungeon crawlers emerge (pedit5, moria, dnd)
  • 1978: Roy Trubshaw starts building the original MUD (later MUD1) at the University of Essex in MACRO-10 assembly language, naming it after the Dungeon variant of Zork
  • 1979: Trubshaw rewrites MUD in BCPL (predecessor of C)
  • 1980: Richard Bartle takes over development. MUD1 becomes the first Internet multiplayer online RPG when Essex University connects to ARPANET

Expansion (1980s)

  • 1983: Scepter of Goth — early commercial MUD
  • 1985: Island of Kesmai on CompuServe
  • 1987: Alan Cox writes AberMUD — the first widely-distributed free MUD codebase. Written in B for Honeywell L66, ported to C in 1988. Its availability on Unix sparked rapid MUD proliferation
  • 1987: Late — original MUD closes under CompuServe pressure; MIST derivative becomes popular
  • 1987: Simutronics founded by David Whatley, Tom & Susan Zelinski
  • 1988: Monster by Richard Skrenta pioneers player world-building
  • 1989: TinyMUD by James Aspnes — stripped-down, social-focused. Spawns TinyMUCK, TinyMUSH, MOO
  • 1989: LPMud by Lars Pensjö — innovative driver/mudlib separation with LPC language
  • 1990: DikuMUD by five Danish students at University of Copenhagen — triggers explosion of hack-and-slash MUDs

Golden Age (1990s)

  • 1990: Simutronics launches GemStone III on GEnie/AOL
  • 1991: DikuMUD goes public (February 3, freja.diku.dk port 4000)
  • 1991: MUME (Multi-Users in Middle-earth) created
  • 1992: Merc MUD released (December 18) — DikuMUD derivative
  • 1993: ROM 2.3 released by Russ Taylor
  • 1995: Over 60,000 players across ~600 MUDs
  • 1996: DragonRealms launches; Bartle publishes player types paper
  • 1996: Aardwolf MUD created (November 29)
  • 1997: Richard Garriott coins the term “MMORPG”
  • 1998: ROM 2.4b6 released (the final public ROM version)
  • 1999: EverQuest launches — directly inspired by DikuMUD

Modern Era (2000s+)

  • By 2004, MUDs serve gaming, education, socializing, and religious purposes
  • By 2009, community considered “in decline” but many MUDs persist
  • 2020: DikuMUD III released for HTML5 with WebSockets
  • Active MUDs still tracked via The Mud Connector, Top Mud Sites, MudVault

Types of MUDs

By Codebase Family

FamilyOriginLanguageKey Feature
DikuMUD1990, CopenhagenCHard-coded world, hack-and-slash focused
LPMud1989, Lars PensjöC driver + LPC mudlibDriver/mudlib separation, in-game programming
AberMUD1987, Alan CoxCFirst widely-distributed free codebase
TinyMUD1989, James AspnesCSocial focus, player building
TinyMUSHTinyMUD derivativeCExpanded command interface, RP-focused
TinyMUCKTinyMUD derivativeC + MUFAdded MUF programming language
MOO1990, Stephen White / Pavel CurtisC + MOO langObject-oriented, in-server programming

By Gameplay Style

  • Hack and Slash: D&D-style combat and advancement; PvE focus. Most DikuMUD derivatives
  • Player vs Player (PK): Unrestricted player combat. Genocide (1992) pioneered this
  • Roleplaying (RP/RPI): Enforce constant in-character play. Often use MUSH/MUX
  • Social: De-emphasize game mechanics, prioritize interaction. TinyMUD family
  • Talkers: Pure chat environments (ew-too, NUTS)
  • Educational: Learning-focused (Diversity University MOO, 1993)
  • Graphical: Computer graphics for world/avatars → evolved into MMORPGs

Core Architecture

The Game Loop

MUDs operate on a tick-based game loop:

  1. Accept and process incoming connections
  2. Read input from all connected players
  3. Parse commands
  4. Execute game logic (combat rounds, NPC AI, environmental effects)
  5. Send output to affected players
  6. Handle timers, resets, regeneration
  7. Sleep until next tick

World Model

The standard MUD world is a directed graph of rooms:

  • Rooms: Discrete locations with descriptions, properties, and contents
  • Exits: Directional connections between rooms (N/S/E/W/U/D + custom)
  • Objects/Items: Things that can be picked up, worn, wielded, or used
  • Mobiles (Mobs): NPCs and monsters with AI behaviors
  • Players: Connected users with persistent characters
  • Resets: Periodic repopulation of rooms with mobs and objects

Command Parsing

Players interact via text commands: look, north, get sword, kill dragon, say hello

Approaches range from simple verb-first parsing to Bartle’s sophisticated six-stage parser:

  1. Tokenizing — strip whitespace, normalize
  2. Dictionary lookup — map words to vocabulary entries
  3. Parsing — grammar matching with backtracking
  4. Binding — associate words with game objects by context
  5. Dispatching — route to appropriate handler
  6. Executing — run the action with intelligent assumptions

Object Systems

  • DikuMUD: Hard-coded object types (weapon, armor, container, etc.) with flag-based properties
  • LPMud: Objects defined in LPC with inheritance; driver/mudlib separation
  • MOO: Everything is an object with properties and verbs; single inheritance
  • Modern engines: Python/JS classes with database-backed persistence

Bartle’s Player Types

Richard Bartle’s 1996 taxonomy, mapped to playing card suits:

TypeSuitMotivationFocus
AchieversDiamondsPoints, levels, wealth, completionActing on the world
ExplorersSpadesDiscovery, mechanics, hidden contentInteracting with world
SocializersHeartsRelationships, community, chatInteracting with players
KillersClubsCompetition, domination, PvPActing on players

The model sits on two axes:

  • X-axis: Players ↔ World (interaction preference)
  • Y-axis: Acting ↔ Interacting (engagement style)

Bartle later expanded this to 8 types by adding an implicit/explicit axis in Designing Virtual Worlds (2003).

Key insight: Most players exhibit a mix of styles. A healthy MUD needs content for all four types, and the types interact — Killers drive away Socializers, but Achievers need Killers as motivation.

Relationship to MMORPGs

The MMORPG genre descends directly from MUDs:

  • EverQuest designer Brad McQuaid was an avid DikuMUD player
  • Ultima Online designer Raph Koster was a MUD developer
  • The DikuMUD team challenged whether EverQuest was a derivative (resolved amicably)
  • “Graphical MUD” was the term before Garriott coined “MMORPG” in 1997
  • Core MMORPG patterns (classes, levels, quests, raids, loot) all originate in MUDs

Key Figures

PersonContribution
Roy TrubshawCreated MUD1 (1978)
Richard BartleDeveloped MUD1, player types theory, Designing Virtual Worlds
Alan CoxWrote AberMUD (1987), later Linux kernel developer
James AspnesTinyMUD (1989) — social MUD paradigm
Lars PensjöLPMud (1989) — driver/mudlib architecture
Stephen WhiteOriginal MOO server
Pavel CurtisLambdaMOO (1990)
Sebastian Hammer et al.DikuMUD (1990)
Michael Chastain et al.Merc MUD (1992)
Russ TaylorROM (1993)
Raph KosterMUD designer → UO → “A Theory of Fun”
Brad McQuaidDikuMUD player → EverQuest

Sources