
11 October 2005
An Absolute Beginner's Guide to MUD
Programming
By Jon Morrow

Part 1: Introduction
"Sure, I have never programmed before, but I
want to make games!"
I imagine that every person to have ever
desired to program a game has uttered this phrase, or at least thought
it. The Veteran programmers have a tendency to mutter this in their
sleep, for at every programming newsgroup or mailing list they turn to,
countless neophytes agonizingly scream it in bursts of incredible
frustration. If you have ever been reduced to this level, or you are
simply struggling to get started, this article is for you. Wipe away
your tears, regain your feet, and lend me your hand, because I am about
to show you the glorious world of MUD programming!
What is a MUD? Well, this is a little
difficult to answer because the term is used so broadly these days. It
stands for Multi-User Dungeon. MUDs began as an online version of a
board game called Dungeons & Dragons, hence the acronym. However,
over the past twenty years or so they have evolved to be the single most
popular form of interactive entertainment for all age ranges. The most
complex and magnificent MUDs take the shape of entire worlds where
thousands of people interact to form intricate economies and societies,
an occasional battle between computer-generated monsters and players may
shift the game's history, and people get together to form indispensable
life lasting friendships.
MUDs are the perfect environment for
someone to start learning how to game program. They can be programmed
and maintained by a single coder, often yield incredible results, and
they are simple enough for anyone to learn. Now, don't get me wrong, it
isn't an easy path to the big bucks, but it provides a great learning
foundation that teaches important concepts like modular design,
networking, and how to maintain a large gaming server. The best thing
is, it is also totally free to get started!
Part 2: Steps to Success
You may be thinking, "Wow, this
sounds great! Let's get rolling!" Well, we could jump right in and
get you running, but my goal here is do that and help you distinguish
your MUD from the thousands of others out there. Making a great game is
only half of the ballgame. The other half is getting everyone else to
realize that you made a great game. To do this, you will need to have a
clear game plan. Here is what I recommend:
a) If you have never played a MUD before,
finding a good one is probably the best place to start. You might want
to play several different kinds and decide which you like best. Playing
different kinds is not only a good way to get a feel of what you are
getting into, but it also serves to help you get a group of friends with
similar interests. Your friends might be your only players in the
beginning, so treat them well!
There are basically two different kinds
of MUDs: hack'n'slash and role-playing. You can go all-out with either,
but the best games on the Internet are a careful and delicate blend of
the two. However, these games are often overcrowded and don't have many
opportunities beyond playing for the beginning game programmer, so I
recommend finding a smaller and only moderately successful one. Why? You
are going to need to work your way up the administrative ladder in the
next step, so you don't want much competition!
If you can't decide where to start
playing, surf on over to www.mudconnector.com. These folks have created
an incredible resource where thousands of unique MUDs are described in
great detail. Use the searching tool on their site to find the perfect
game for you. Do be advised, however, that some of the information found
here might stretch the truth a bit, so you might want to compile a list
of possibilities and go visit them all. Try and stick around for a few
hours on each one to give it an adequate chance. Sometimes the
brilliance of a MUD doesn't hit you immediately!
b) Once you have established a network of
friends on a MUD, you might consider trying to become an immortal on
your favorite one. I recommend being an immortal on at least one MUD
before trying to start your own. Normally you are given responsibilities
depending on your level of skill and experience. In general, you
exchange your services to the admins for tutoring. You may start off by
enforcing rules and helping new players, but eventually the admins
should offer to let you build areas or they might even teach you to
code.
Just for an example, I was a builder of
at least five MUDs before I struck out on my own and I still struggled
mightily by myself. You will definitely want to get a handle on building
first, for once you start your own, you will likely have to train
builders. The importance of this is beyond my ability to express in
words! World building is probably the most time-consuming task for any
game out of there, whether it to be text based or graphical, and it
requires the most talent.
Are there any prerequisites for building?
Generally, you will need to be on a speaking basis with the
administrators, have good English skills, and a creative mind. A good
administrator will probably give you a small stomping ground where you
can let your creative juices flow down your arms and into the keyboard,
creating magnificent, succulent fruits of your labor. Before starting
for real though, be sure to visit some of the other original areas
within the game to get a feel about what the administration is looking
for.
If you show dedication, great potential,
and have a great deal of luck, someone will harness your now blossoming
creative energy and show you the source code. All of the mysteries will
be unraveled and you will be equal to God in your power over the game.
Under supervision of the administration, you could then implement all of
the awesome ideas that you have been dreaming about for so many years!
Don't give them all away though, for you need something to start with in
the next step!
c) Now that you have all of the skills
and plenty of friends, it is time to start your own! That's right, you
are finally to the point where you can probably make it on your own! The
first step here is finding the code base that you want to run, which
will probably be the kind that you have the most experience with. After
that, all you need to do is decide what you want your game to be like
and start implementing your ideas!
Don't tell me, you didn't learn how to
code in your internship of sorts? Some programmers would tell you that
you and the seven generations to come will burn in hell, but do not
listen to them! There is hope! Grab yourself several C books, go to the
WebSite for the source code you chose, and get cracking. On this road,
no one is going to do it for you, much less do it well, so you are going
to have to learn and do it yourself. If you are determined and have a
very thick hide, you will probably end up being better off than if
someone taught you. You learn to figure things out for yourself,
exercise your own creative potential, your mind is not polluted by
everyone else's foul ideas, and eventually you earn the respect of
everyone, including yourself.
Lastly, you need to figure out how you
are going to host your MUD. "Hosting?! No one said anything about
that!" you scream. You are going to need one of three things: Linux
or a Unix box, a Unix emulator, or a shell account. Those of you that
are new to MUD administration should probably go with the shell account
because they have technical support and you don't have to learn how to
be a network administrator. Unfortunately, this route costs money under
most circumstances, although it is the best choice in my humble opinion
for the novice. I recommend www.betterbox.com due to their outstanding
support and low prices. After you get an account, head back to the
library or bookstore and get a good book on Unix/Linux.
If you can't pull together the money, you
can either beg friends and family or do a great deal more learning. You
can repartition hard drive at the risk of erasing everything, go through
the hassle of installing Linux, and then learn how to host your own mud
if you wish. To be one of the big boys, you are eventually going to have
to learn all of this anyway, but starting with a shell account is much,
much easier and in my opinion, better.
Note that these are the basic steps to
getting started. There are steps beyond this if you wish to take them,
but things get much more complicated and difficult. The steps after
those will be covered in later articles in great detail. Coding
specifics, building, and other overall good administrative practices
will be covered in later chapters as well. Until then, happy learning,
for you are now on the path to being a game programmer!

|