This is my submission for my codebase development, which I am posting for public access after years of building toward a MUD server that never took off. I'm mostly out of the coding now, and I thought others could benefit from the work I've done in making a d20 based MUD. There is a vast amount of new, complete added features I've added — some are adapted from snippets, and others from my own development. But there are some things that were still developments in progress.
Feel free to download, alter, and improve this codebase, and develop it farther. Or borrow some of the features for your own MUD. All I ask is that revisions to the MUD codebase as a whole be updated to this repository, so that others can also benefit from it. I will also gladly answer any questions potential developers may have regarding what I've done under the hood. The functions and alterations I did are typically commented at the head of the code in question. This was a labor of love and experience for me that I developed over years of coding, please give credit where credit is due!
This was written in C, and compiles cleanly and runs on BSD Unix/MacOS. I did not develop it for other platforms nor did I have access to test even if I did. The lines for other platforms of the original MRMud/eMud codebase are commented out. If you want to make the project compile on Cygwin and/or other flavors of Unix, you're on your own!
The Original Spiel
The Mud20 system is a an extensive redevelopment of the eMud codebase, itself a derivative of MRMud, a descendant of Diku and Merc. The Mud20 System, as the name implies, is an adaptation of version 3.5 of the Open Gaming System by Wizards of the Coast, based on the world's most popular Fantasy Roleplaying Game system. This codebase provides a hardcore d20 experience, with pretty much every skill, spell and ability rewritten or coded from the ground up to fit the spirit of the Open Gaming System. If you are at home playing a d20 based game, even a veteran tabletop gamer, you'll fit right in mudding with the Mud20 System. The system also borrows extensively from the Pathfinder RPG System (PFRPG) for select rules variants, and other house rulings, but the unmistakable d20 ruleset is at its core.
Mud20 features a turn-based combat engine. Entering into combat puts you in turn mode, so everyone has their call on what they do with their actions. No scrolling screens of meaningless spam you can't keep up with, and you win combat based on your decisions, not how fast you can hit the return key. Mobiles respond on a turn basis as well, with an AI that was coded from the ground up for the Mud20 system. The rest of the mud world around you revolves in real time, and picks you up to resume when combat is finished.
Mud20 features Unearthed Arcana's mana variant of magic casting, in which each of your casting classes gives you a mana pool, which fuels your spells and increases as you progress. This gives you flexibility of which spells you cast from a prepared list, and how often, as well as adding metamagic feats by simply spending the appropriate amount of extra points to cast the spell.
Many text-based games and muds suffer from a lack of visual feedback to tell you where you're going. Mud20 uses a VT100 tactical interface, complete with player status readings, a tasteful, customizable color interface, and a directional mini map with extended full-screen map capabilities for the area you are in.
Mud20 is an RPI (Role Play Intensive) mud code base, with commands and tools for rich, expressive roleplay, including emotes that can include targeted characters, objects, and quotes, and whispers that can be overheard. Pets you can name when you purchase or tame them, control their actions and emotes, and which save with their equipment intact. Support for non-armor clothing and full colored equipment descs that onlookers can actually see, so you can dress to kill, or dress to kill. Objects are completely interactive. You can not only take and use items, but also sit, stand, hide behind, place things onto larger objects, and more.
Animal companions, familiars, and a paladin's warhorse level themselves automatically when you level your character. Your companions become an integral part of your character that grow as your character does.
Mud20 is a virtual tabletop, not only for the players, but for the GMs, with GM commands available for leading adventures and roleplays with the ability to make skill checks, stat checks, and more on both players and NPC, even a dice rolling tool for the imms and players to wing it.
Many muds have a long list of cryptic commands that you have to learn just to do mundane things. Mud20 simplifies the command list of its merc predecessors by consolidating commands and unifying them. Why must you quaff a potion when you can just drink it? Why have to zap, brandish, recite, and all sorts of other cryptic commands to use items when all you really want to do is USE them? Why unlock a door with a key, and pick it without one, when either way you want to unlock it? Why even command to unlock it at all if you have the key and all you want to do is OPEN it? Where possible, syntax is simplified, commands are written to be intuitive for new mudders.
Other features include:
* Grind-free skill system - Just like the d20 system. Get skill points at each level to purchase skill ranks. Mechanics are also in place so that select skills like trades and knowledge can also be increased thru completion of certain quests. There is NO skill increase by repetition.
* Coded stables, inns and more - Rent private inn rooms, that also allow you to rest at an accelerated rate. Keep your mounts and pets safe using a coded stabling system that keeps track of your pet and keeps it nourished and rested until you check it back out.
* Intuitive OLC engine - Menu based editor remedies the need to know cryptic commands and syntaxes to lay out areas, rooms, objects and NPCs. So builders can learn quickly to expand your game world.
* 32-bit quest engine. The qbit system first introduced in MRMud allows very complex quests to be written in conjunction with the mob program engine - quests that track and record a PC or a party's progress, and remember it across reboots, allowing for unique quests that are able to be completed only once per character or party, with different results depending on the actions and choices of the party. Quest bits can be set on players, NPCs, objects, as well as the areas themselves, so that changes can be persistent even in the world around the players.
* Mobile, Object and Room Programs - All of which work hand in hand with the quest engine. Add life to the environment and to the NPCs, and power your adventures with programs that support attempts to persuade, swindle and dupe NPCs, as well as fight them. This code expands on MRMud and Smaug's mob prog engine with hundreds of additional lines of code to support many more features.
* Faith system - Code a vast number of deities in your campaign's pantheon(s), complete with relationships to other deities, allowed clerical domains, multiclassing restrictions for monks and paladins, PC faith rankings within the faith, and flags for merchants, healers and other NPCs that are directly affected by the PCs affiliations. Gain favor from your god based on your actions both through the quest engine, or other actions in-game that are based on your deity's domains.
* Reputation system - Keeps track and measures the actions of a PC against, or in the presence of NPCs. The better or worse the actions of a PC, the more heroic (or villainous) a PC becomes in the eyes of the populace.
What's not finished:
* The crafting system is partially complete — enough so that a knowledgeable enough coder can fill in the missing bits. It is a d20 based system that's been adapted to a real time environment.
* Magic Item Creation/Enchantment is also partially complete. Enough that it should be easily fleshed out the rest of the way.
• Deity Favor - based off of the patron deity's domains, I've added favor gains to a number of actions and skill usages (casting certain spells gains favor for different domains, stealing gains Trickery favor, rescuing gains Protection favor, etc), as well as for praying at an altar, but there's more possibilities for things a player could do in-game to gain favor.
* Spell components – Only coded in a few spells' components for proof of concept, but all you need to do to require certain components for spells is to edit the spell in the game editor.
* Documentation - There are, sadly, some things missing in the documentation for features I've added and some options in the game editor. As I get around to it, I'll try to improve the documentation and add it to my post.
You can also see the complete changelog and development notes I made along the way at the MUD's website, which is now read-only for those who want to know more about the code: