Resources

100 DikuMUD resources for MUD players

DikuMUD represents the foundational architecture for the 'hack-and-slash' genre of text-based games, characterized by its class-and-level systems and automated combat loops. This resource provides developers and administrators with the essential codebases, modernization tools, and design frameworks required to maintain, fork, or launch a Diku-derivative MUD in a modern computing environment.

100 DikuMUD resources for MUD players illustration
Placeholder illustration shown while custom artwork is being produced.

Essential Codebases and Modern Forks

  1. 1

    ROM 2.4 (Rivers of MUD)

    beginnerhigh

    The most popular Diku derivative. Features a robust spell system and 'bits' for object/mobile flags. Best for developers wanting the largest library of public snippets.

  2. 2

    CircleMUD 3.1

    beginnerstandard

    Known for its clean C code and modularity. Unlike ROM, it uses a more structured approach to world files and player saving.

  3. 3

    tbaMUD

    intermediatehigh

    The most actively maintained version of CircleMUD. Includes built-in OLC (On-Line Creation) and fixes for modern GCC compilers.

  4. 4

    QuickMUD

    beginnermedium

    A ROM 2.4 distribution pre-patched with essential fixes (Color, OLC, Copyover). Ideal for rapid deployment on Linux VPS.

  5. 5

    Merc 2.1

    advancedstandard

    The direct predecessor to ROM. It is extremely lightweight and minimalist, providing a 'blank slate' for advanced C programmers.

  6. 6

    Smaug 1.8

    intermediatehigh

    A highly evolved derivative of Merc. Features complex skill trees, sub-classes, and a sophisticated virtual machine for mobile programs.

  7. 7

    EnvyMUD

    intermediatemedium

    A fork of Merc 2.2 focused on stability and performance. It remains a favorite for those who prefer classic combat mechanics over ROM's complexity.

  8. 8

    RaM (ROM and Modern)

    advancedmedium

    An effort to modernize the ROM codebase by removing legacy code, fixing memory leaks, and implementing standard C99/C11 practices.

  9. 9

    Ack!MUD

    intermediatestandard

    A Merc-based engine that introduced early multi-classing systems and 'build' modes that influenced many late-90s Diku variants.

  10. 10

    Crimson II

    advancedmedium

    A highly customized Diku variant featuring advanced socket handling and a unique approach to object persistence.

Modernization and Administration Tools

  1. 1

    Valgrind Memory Debugger

    advancedhigh

    Essential for Diku developers to track down memory leaks in 'handler.c' and 'db.c' which are notorious for dangling pointers.

  2. 2

    Mudlet Lua Integration

    intermediatehigh

    A modern client-side framework. Use its API to create GUI elements for Diku's 'prompt' strings, replacing the standard text-only status line.

  3. 3

    GDB (GNU Debugger)

    intermediatemedium

    The primary tool for analyzing core dumps. Use 'gdb ./rom core' to identify the exact function causing a crash in 'comm.c'.

  4. 4

    MSSP (MUD Server Status Protocol)

    beginnermedium

    Implementation of the protocol to allow your DikuMUD to be indexed automatically by crawlers and listing sites like MudStats.

  5. 5

    Dockerizing DikuMUD

    intermediatehigh

    Create a Dockerfile based on 'debian:stable-slim' to package GCC, make, and zlib, ensuring the MUD runs identically across different hosting providers.

  6. 6

    SQLite Integration

    advancedhigh

    Replace the standard flat-file 'pfiles' system with SQLite for player data to allow for SQL-based web rankings and easier backups.

  7. 7

    Copyover Snippet

    intermediatehigh

    A critical code modification that allows the MUD to recompile and restart without disconnecting active players by passing the socket descriptors.

  8. 8

    Zlib Compression (MCCP2)

    intermediatestandard

    Implementation of the MUD Client Compression Protocol to reduce bandwidth usage and improve latency for players on high-latency connections.

  9. 9

    Git Flow for MUDs

    beginnermedium

    Using branching strategies in Git to separate 'area' updates from core engine 'src' updates, preventing world corruption during builds.

  10. 10

    ANSI Color Parser

    beginnerstandard

    Standardizing the '{r' or '&r' color codes across 'act_wiz.c' and 'comm.c' to ensure consistent rendering across modern Telnet clients.

Combat Design and Class Balancing

  1. 1

    The Diku Combat Loop

    intermediatehigh

    Understanding 'violence_update' in 'fight.c'. This function controls the rounds of combat and pulse timing for every active fight.

  2. 2

    MobProg (Mobile Programs)

    beginnerhigh

    A scripting language for NPCs. Use it to trigger specific behaviors (like a boss healing itself at 20% HP) without recompiling the C source.

  3. 3

    THAC0 vs. Hitroll

    intermediatemedium

    Modernizing the 'To Hit Armor Class 0' system. Many admins replace this with a linear percentage-based hit system for better transparency.

  4. 4

    Class Tiering Logic

    intermediatehigh

    Balancing the 'Mage' vs 'Warrior' power curve. In Diku, Mages typically scale exponentially while Warriors scale linearly; use 'const.c' to adjust.

  5. 5

    Area Conversion Scripts

    intermediatemedium

    Python scripts designed to convert .are files between CircleMUD and ROM formats, facilitating the migration of legacy content.

  6. 6

    Global Cooldown (GCD)

    intermediatestandard

    Implementing a 'wait state' or 'lag' on skills to prevent players from spamming high-damage macros in 'interp.c'.

  7. 7

    Equipment Stat Caps

    beginnermedium

    Hard-coding limits in 'handler.c' to prevent 'stat-creep' where items from new areas render all previous content trivial.

  8. 8

    Remort/Rebirth Systems

    intermediatehigh

    A prestige system where level 51+ players reset to level 1 with permanent stat bonuses, increasing the longevity of the endgame.

  9. 9

    Saving Throw Mechanics

    advancedmedium

    Refining the 'save_vs_spell' logic to ensure high-level mobs aren't completely immune to crowd control, which often kills class diversity.

  10. 10

    VNUM Management

    beginnerstandard

    The practice of allocating Virtual Number ranges for rooms, mobs, and objects to prevent ID collisions between different builders.