The Dawn of Time - Mud Codebase


About Dawn

Codebase News



Announce Mailing List

Getting Started


About the Dawn of Time MUD Codebase

The Dawn of Time is a MUD codebase developed by Kalahn, originally based on the ROM codebase. Work began on the Dawn codebase in 1997, and it was first publically released at the end of 2000.

Thus it has a similar "look and feel" to the Diku/ROM styles of MUD, and of course it is free :).

Some of Dawns features include:

  • Compiles and runs under Unix (Linux, FreeBSD, OpenBSD), Windows (Cygwin and Microsoft Visual C++), and OS X
  • Full MXP (MUD eXtension Protocol) support - probably the most advanced MXP server on the net.
  • MSP (MUD Sound Protocol) support
  • MCCP (MUD Compression Protocol) support
  • Fully Customizable Colour System, with mudwide templates
  • Support for ANSI, IRC and HTML colouring conventions
  • OLC (online construction), many MXP driven - including the following in game editors:
    • Game editor (gameedit, customize the behaviour of a number of game features - more on this later!)
    • Area editor (aedit)
    • Room editor (redit)
    • Mobile editor (medit)
    • Object editor (oedit)
    • Help editor (hedit)
    • Race editor (raceedit)
    • Class editor (cedit)
    • Clan editor (clanedit)
    • Skill Group editor (skgrpedit - for editing things like 'mage basics')
    • Spells/Skills editor (sedit)
    • Social editor (socedit)
    • Ban editor (banedit)
    • Mix editor (mixedit)
    • Deity editor (dedit)
    • Herb editor (herbedit)
    • Command editor (comedit)
    • Mobile Program editor (mpedit)
  • A number of aspects within the OLC editors are automated:
    • Automatic saving of olc work every 15 minutes and prior to hotreboots, reboots and shutdowns
    • Automatic balancing of mobs when you set their level, (the stats can then be overridden)
    • The autobalance parameters are easily customized for a muds requirements (see system/mob*.txt within the support files download)
    • Automatic adjustment of racial flags, body parts, form etc when you set a mobs race
    • Ability to rebalance all the mobs in an area/vnum range with the autobalance command
    • Ability to adjust room flags on a range of vnums with the setrooms command.
  • Ability to read and convert rom area files
  • GameEdit - The Game Settings Editor
    • Gameedit allows the editing of a large number of game parameters, text fields and values.
    • The game settings editor is fully MXP enabled, every underlined word in the example is a link that can be clicked to edit settings.  The mxp feature does require an MXP capable mudclient such as mushclient to be used.
  • Replay command works for all channels as well as tells (e.g. replay immtalk) - imm only.
  • Separate DNS and Ident resolving process (meaning DNS lookups don't lag the mud)
  • Laston database, with search criteria
  • Extensive helps (over 1000)
  • Player Help searching command - helplist <keyword>
  • Textsearch command, able to search for any text, searching the following:
    • helps
    • socials
    • roomname
    • roomdescription
    • roomextdescript
    • objdescription
    • objextdescript
    • mobdescription
    • mobprog
  • Mobprog debugging and development:
    • Online mobile programming help using the mobhelp command (with no parameters to list all).
    • A 'token' object (which is invisible to mortals, can optionally stay in a players inventory over death,  and can optionally degrade over time).  Mobs can use this to tag players and remember state - e.g. when a player kills a citizen in mekali they are given a token.  Guards and other citizens in mekali change their behaviour depending on the number of 'I killed a mekali citizen' tokens a character carries.
    • Room progs are simulated by putting a mob in the room with the unseen flag (with this flag, the mob can only be seen with holylight and is unaffected by area attacks).  Object progs are currently not available, but are planned when a complete scripting language will be fully embedded.
    • Automatic logging of mobprog bugs and view the call stack (log and callstack accessed with mpinfo).
    • Help with the mobprog if checks using the ifhelp command.
    • Queued events using mob queue command: (e.g. mobhelp queue)
  • Extensive admin commands and information
  • Extensive "wiznet" information services that lets you know of ongoing events (such as players connecting)
  • "Hot reboot" feature lets you update the server without players having to disconnect
  • Source code supplied (C++)
  • Integrated web server - lets players check who is on in their web browser, before connecting, and other things, like viewing help files.
  • MudFTP/DawnFTP support - lets you edit room descriptions etc. in your favourite text editor
  • Ability to disable mudftp, dawnftp and irc connection support
  • Automapper including support for maps of different scales - shows an text-based map of the current room and surrounding rooms.
  • Clans with ranks
  • Personal and Clan banking
  • Intergrated name generator into creation
  • Spell system which supports creating new spells by making an alias to an existing C++ spell function
  • Arealist automatically sorted by level and alphabetically (depending of the command used to access it).
  • Letter writing
  • Lockers and mail boxes
  • Corpses autosave
  • Option to have short descriptions in place of player names
  • Ability for players to introduce themselves (so their name appears by their short for selected players)
  • Support for different who list formattings
  • Idle time shown in the wholist for all formats
  • Optional Remort support (support intergrated into race, class and game edit), remort process integrated into the mobprog system (mobhelp remort)
  • Second weapon support - can be a skill or free to all players
  • Separate OOC rooms
  • Generic channel system, making it easy to add new channels
  • Advanced note functions including forwarding, respooling and wordwrapping.
  • Advanced language systems including over unique 10 languages
  • Global socials
  • Ability to subdue as an alternative to killing
  • XP is also awarded for roleplaying (by default)
  • Ability to bury and dig up items
  • Ability to ride and tame pets
  • Speedwalk and players leaving tracks/trails
  • Directional yelling (i.e. you can hear the direction the yell came from, and volume)
  • Alias with parameter subsitution
  • Dueling system for pkill combat (when enabled in gameedit)
  • Intelligent object manipulation (E.g. objects automatically unlock when you attempt to open and have the key, when you have key and attempt to lock, it will automatically be closed)
  • Ability to load players into the game while they aren't logged in, edit their pfile and resave or abort changes.
  • ...

There are many many many more features, but this list is just a start, to give you an idea.  It is interesting to comparing the size of the code with some other popular codebases (.c, .cpp and .h files):

  • ROM: 46,434 lines
  • SMAUG: 134,650 lines
  • Dawn: 190,872 lines

If you are interested in evaluating the Dawn Codebase, you can log into one of the Dawn based muds listed on the muds page, or download your own copy of the mud (further instructions of the getting started page).