|

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! |