Absolute Beginner's Guide to MUD Programming, Chapter 2

By Jon Morrow

(Missed Chapter 1? Click here)

Part 1: Introduction

Greetings, MUD Programmer! In this chapter, I am going to elaborate on how to get started on your own. Topics such as source code, different types of MUDs, and how to approach development are discussed in detail with pointers to more information. Much of this knowledge has been gleaned from six years of personal experience and tutelage under various respected mud programmers throughout the industry. The goal of this document is to guide you through the most testing waters of a cutthroat industry and alleviate most of the accompanying stress.

At this point, I assume that you have been through your basic training under the careful eye of another administrator. You have hopefully mastered the basic concepts of programming for your code base, as well as how to effectively build a world. Depending on how successful the game was, you should have a decent following of friends that will be able to support you and perhaps co-administrate your game. If you are not at this point in your career, please return to Absolute Beginner's Guide to MUD Programming, Chapter 1.

Part 2: Which code is right for you?

A. Ethics of source code

Before we get into various links on where to find code, let me first cover a few ethical topics. When you start your own MUD, do not attempt to copy any of the source code from anyone else's, including the one you were working on, unless you are given permission. For one, this is illegal. For another, a persistent administrator can ruin your reputation for the rest of your online life. Simply put, someone else's code is not right for you unless they give you permission.

B. Code bases

For most of you, the obvious choice is to work on the code base you were trained under. However, if you are feeling adventurous or want to increase your value as a developer by learning another code base, it is perfectly acceptable to do so and eventually encouraged. For the novice, I recommend any of the DIKU derivatives because they are easy to setup and have a large support community. Here are some links:

http://darkoth.mudnet.net/ - This fellow specializes in ROM, but also has a good links section

http://www.mudconnector.com/resources/index.html - Gigantic resource for everything MUD related

http://game.org/heirarchy.html - Links to all of the code bases derived from MERC.

http://www.hotbot.lycos.com/ - My favorite search engine

Those resources are about all you need to get started. If you can't find the code base you are looking for in the first three sites, do a Web search with the last.

Part 3: What kind of game do you want to make?

A. Fun or Profit?

Most of us start games that we like to play. This may seem like a simple statement, but there are deep and controversial philosophies on how to approach making MUDs. A great many people have decided that administrators are much more productive when making a game that they enjoy playing. The opposing viewpoint is that, to be successful, administrators need to cater to every form of player. Much of the free MUD community has bought into the first philosophy, while the commercial gaming community leans a little more to the second viewpoint in order to boost their revenues. Both sides are likely equally correct for their places in the market, so it is up to you on which philosophy you decide to follow.

B. Genres

Your next decision will be that of which genre to choose. A genre is the style of a work, or more specifically for the gaming industry, the style of the game. The four major genres for MUDs are fantasy, science-fiction, a mix between fantasy and science-fiction, and social. Social MUDs serve as places for friends to meet on the Internet without much regard to gameplay. Because MUDs are mostly derived from fantasy works (Dungeons and Dragons, Tolkien, Salvatore, etc.), most of the code bases and support communities are for the fantasy genre. However, if you are a pioneer, a well-made science-fiction MUD would be a wonderful change of flavor.

C. Gameplay

At some point in their lives, players choose which kind of game they find most preferable to play. Just as there are different rules for board games, there are various ways of handling advancement and interaction in MUDs. These styles are categorized under the label of gameplay. Examples of different types of gameplay are player killing, role-playing, hack'n'slash, level-based, and skill-based. A short explanation of each type of gameplay can be found below to help you decide which one you will provide:

Player Killing (PK): Have you ever wanted to kill your best friend or even a complete stranger? Many MUD players do because power struggles can be seen at their fullest potential, the best man or group of people always wins, and everyone comes back to life.

Role-playing (RP): When life gets rough, many people like to escape to an alternate reality where they can pretend to be a different person with a different life. They can develop another personality to suit their character and role-play a life of their choosing. A MUD that creates an environment conducive to being able to escape promotes role-playing.

Hack'n'slash: Role-playing and hack'n'slash styles do not generally coexist in the same MUD. Where role-players concentrate on escaping into the MUDs reality and generating friendships therein, hack'n'slashers are focused on advancement or reputation as the most talented player killer. Atmosphere is generally disregarded so that the player’s complete attention can be put upon the above listed goals.

Level-based: In a level-based system, players attain experience through various tasks like killing monsters or completing quests. When a certain number of experience has been reached, the player advances to the next level of power, often-increasing durability, strength, and the number of skills available. Level-based systems frequently have a maximum number of levels and then the player can advance no further.

Skill-based: This fairly new type of system allows the player to advance by using their skills. For instance, if the player uses the swordsmanship skill often, the skill will grow in power and will then be more effective. Players advance by using the skills of their choosing to become more and more powerful. Once a single skill has been mastered, there are frequently many others to keep the player busy, providing nearly endless hours of entertainment.

Part 4: Development

A. Fun or profit?

We are confronted with this question once again, except this time the focus is on development. Many administrators decide to develop MUDs as a hobby and therefore expand the game in an ad hoc manner, neglecting planning in favor of reckless coding that is rapid and creative. Programming is not viewed as a job and is therefore frequently found enjoyable, especially when others see rapid progress and have positive comments. When starting to code, this is probably not your most effective means of development, but valuable experience is gained through trial and error while also promoting creativity. In short, programming as a hobby is frequently very enjoyable, but the quality of your code will likely suffer and bugs will appear more often than if you had planned out the source code.

If you are developing a MUD for commercial purposes, a high level of quality will be expected from all of your work and you will often need to work with a group of programmers. In this kind of environment, you will need to create detailed specifications of what you are going to write, how it will effect the system, and when the job will be completed. A high level of accuracy in time estimations will be expected because your team will often be managed and other systems might need to be written on top of yours. Unfortunately, the increased accuracy and quality of code often reduces the fun and creativity involved in programming. Creative energies are used when writing design specifications instead.

B. Doing it yourself

When you start your first MUD, there is a high probability that you will be the only programmer on staff. Also, as it is your game, you will want it programmed a certain way and you will be most competent at making your vision a reality. I suspect, however, that many of you have not had enough experience in coding to be the lead programmer, so you have a great deal of learning to do. Fortunately, there are plenty of resources to learn from aside from other administrators.

Most code bases are programmed in C or C++ because the languages are powerful and fast. However, they are also complex. Fortunately, most of the difficult programming was done by the creator of your code base and you are left with the task of modifying it. With a few guides and careful study of the code base, you can implement some new code in no time! Here are some resources to get you started:

http://www.cm.cf.ac.uk/Dave/C/CE.html - A very thorough online reference for the C programming language

An Absolute Beginner's Guide to C is the best book for learning C

http://www.cprogramming.com/tutorial.html  - A good C++ resource

http://www.intap.net/~drw/cpp/  - Another C++ tutorial.

C. Where to find help

Every programmer runs into a bug they can't seem to squash or a section of code that seems impossible to understand. In these circumstances, you should first consult your programming resources. If the answer continues to evade you, try posting to mailing lists or a message board dedicated to the code base you are using. When asking your question, be specific and don't expect anyone to fix the problem for you. Always maintain an attitude that says you want to learn how to fix the problem yourself and you are simply seeking direction.

You may also find that you don't have time to build areas and program. Fortunately, there are a great number of talented builders that will be more than willing to help extend your world. Training players to build is also an option, but you don’t see them producing good areas for a long time because they require lots of initial guidance. Instead, you will probably want to locate a building staff at http://mudconnector.com. Look at some of the listings and see which ones received the most responses. The MUD world is competitive, so you will need to convince builders that yours is the place to be.

Also, a word of caution. Pay very close attention to the attitude of whomever you hire. If they are egotistical or seem highly emotional, they could scare away players and ruin the reputation of your MUD. You may want to setup a copy of your MUD for building, but this ruins some of the prestige of being a builder and it may discourage dedication from your staff.

D. Laws on the work of others

Here I go on my legal rant again. Unless you are compensating your staff through a paycheck or some clever pricing scheme, any areas they produce are their personal property. Some MUDs also ask their builders to sign an agreement stating that they work on a volunteer basis and the MUD owns any areas produced. However, if you aren't compensating them and they haven't signed a contract, you don't own their areas and they can ask you to remove them. Of course, this is not a common occurrence and you shouldn't be overly worried.

Additionally, you aren't allowed to distribute the work of others without their agreement. Doing so would be like copying a friend's artwork, selling it, and not sharing any of the profit. If you ever decide to give away your code base and all of the accompanying areas, you should ask the permission of your builders before giving away their areas. It is also your responsibility to defend against anyone wishing to steal the areas on your MUD. You are the leader of your building staff and are therefore required to protect their work.

Conflict with the law can be avoided through common sense and respect for others. Maintaining a friendly atmosphere among your staff can also reduce the number of problems regarding rights to areas. If a builder leaves the MUD on good terms, they will likely let you keep their areas because they understand how important the areas are to the MUDs survival.

Part 4: Conclusions and Next Chapter

You are now equipped with all of the information needed to begin developing your own MUD. Pick your code base, decide what kind of MUD you want to make, and start developing! In the next issue, I will expand on different development methodologies and give you the tools necessary to manage your programming project. Until then, gather your resources and have a wonderful time setting up your MUD!

 

GIGnews is a publication of GIGnews.com, Inc.
"Get In the Game" is a registered trademark used with permission.

© 1
999- 2005 GIGnews.com, Inc.
Legal