Chapter 1 - Overview

This document is intended for people who are administering Multi-User Dungeons based on the CircleMUD 3.0 public source distribution, and who are responsible for making these MUDs interesting through modifications to the source code of the game program. It assumes that you have an idea as to what MUDs are, have a reasonable knowledge of the C programming language, and have access to the computing resources, in both hardware and software, to actually download, unpack, compile, link and run the program. It also assumes that either you or someone you know is willing and able to act as a builder, to modify the world files as needed to accommodate your changes. Some experience with adventure games is also desirable, since understanding how these games as a category are played and experienced will enhance the reader's understanding of much of what is discussed. MUD experience, particularly with Diku-class MUDs or derived types such as Circle, Envy and ROM, is preferable, since it is questionable why someone would implement a MUD without having played one before. However, most role-playing adventure games, such as a number of Dungeons & Dragons games, members of the Wizardry series, or games like Diablo share many of the same concepts, and experience with these will suffice.

This document is not intended to replace Jeremy Elson's "coding.doc" file, nor is it intended to be an end-all guide to manipulating the code of the MUD. Rather, it is a walk-through by example of how to make a few of the common types of additions to CircleMUD which require working with the program source code, based on the newest version available, which is version 3.0, beta patch level 11. The intention is to supplement the documentation which comes with CircleMUD in a couple of areas which are not covered or are incomplete. Parts of this, however, are intended to replace or combine other mini-documents which may have missed a couple of spots along the way. I can only hope I haven't missed too many myself.

The purpose of this document is to provide examples of some of the more popular types of modifications to the game code. This includes the addition of a new player class, the creation of skills and spells, other commands, and non- player character special functions. After that, we'll finish up with a couple of ideas about what more can be done that would make your game really unique. Along the way, I will attempt to explain what these changes do, so that you aren't just making them blindly and taking it on faith that they will do what you want. Never take it on faith that what I or any other by-example writer does in their example will have the exact results you are after. For starters, the specifics of your idea of what you want are probably rather different from what I was thinking about while writing this. Also, I'd hate for someone to go MUD-hopping and discover that every other MUD they hop onto has identical additions to the ones I've placed here, and is, beyond those changes, a stock CircleMUD. I urge you to show some creativity in applying the information contained herein, and tailor your MUD to suit your own personal tastes and those of your players, using this material as a guide, not a Bible.

After all, the point of modifying the code is to customize it for yourself and your player base, so that it provides those players with a somewhat unique experience, within the context of still being a CircleMUD-based game. Above all, remember that the purpose of these games is to have fun. While it is understandable if you find yourself disappointed with someone else's MUD, it is unforgivable for you to find yourself not enjoying your own MUD. After all, it's your game. You have the power to make your MUD all that you want it to be. It just takes a little time at the keyboard, a couple of compiler passes, and the will and commitment to doing the job, doing it right, and most importantly, to doing it your way.