REC.GAMES.MUD.DIKU FAQ
Version 3.13
A note on FTP sites:
If you discover that a site is no longer valid, or you have a
new site to submit, please let me know. Thank you very much.
_________________________________________________________________
Recent Changes
* Added a basic list of DikuMud derivatives that are freely
available.
* Added a question about lag. Specifically a definition.
* Added a section on porting to Linux.
* Addition to creditation questions.
* Updates and additions to the resource section.
_________________________________________________________________
Credits
* Originally authored and compiled by Frederick Myers [reni]
<mondays@bsu-cs.bsu.edu>
* Original HTML conversion by Ryan Watkins [VampLestat]
<vamp@csulb.edu>
* Recent updates, upkeep, HTML by Alex Fletcher [Furry]
<fletcher@democracy.queensu.ca>
The following people have lent a hand with contributions/comments for
this document...
* Sebastan Hammer - Donated notes on DikuII and on DikuMud history.
* Adam Coggins - Spelling and grammar checking.
* Dean Gaudet - Provided a list of common stock Diku bugs and
init_socket patch.
* Furey at Merc Industries - Provided some technical info for
starting a mud.
* Michael Brundage - Provided the noecho patch and some other bug
fixes.
* Nick Borko - VMS TinTin CPU fix.
* Derek J. Middleton and Russel Schultz - provided basic
instructions to port DikuMud Gamma 0.0 to Linux.
* Others... Jeffery Bennett, Bombman, Dan Brumleve, Mort, Sven
Nielsen, Nino Ruffini, Derek Snider, and Naved Surve.
Please let me know if I have missed anyone...
_________________________________________________________________
Overview
This document will be posted approximately bi-weekly to
rec.games.mud.diku.
Approximate size of this document: 40k
This file is the FAQ for the rec.games.mud.diku newsgroup as well as a
general game FAQ for DikuMud games. This FAQ is divided up into three
different sections:
* Introduction (general information and background)
* Implementor / Building (questions concerning starting a mud,
building areas, etc)
* Resources (well known ftp sites for various DikuMud utilities,
patches, and sources).
More information on muds can be received from the
rec.games.mud.announce General Three Part FAQ, online within whichever
mud you decided to play, and from the various web and ftp sites
located at the end of this document.
All information is correct to the best of my knowledge. The author
takes no responsibility for any inaccuracies contained in this
document. Please let me know of any corrections to make to this
document.
This document may be distributed freely. Any use of any of the
contents here-in must be credited and the author should be notified.
In light of several publishing companies 'stealing faqs', BY NO MEANS
IS THIS DOCUMENT TO BE USED FOR 'FOR_PROFIT' GAINS WITHOUT THE
EXPLICIT WRITTEN CONSENT OF THE AUTHOR. THIS INCLUDES INCLUDES USING
THIS DOCUMENT ON "FAQ CD-ROMS".
Patches Note: If you decide to use one of the patches in this FAQ,
please take the time to put the authors (Dean Gaudet and Jeffery Stine
of ArcticMud for the socket patch and Michael Brundage for the noecho
patch) in your lib/credits file. These three individuals have donated
their work for the better of others, so please give credit where
credit is due.
_________________________________________________________________
Questions
Introduction
"What is a DikuMud?"
"Where did this DikuMud come from?"
"Where and how do I connect to a DikuMud?"
"Where can I find out where these muds are located?"
"Ok, I'm connected, what do I do now?"
"What is a client program, or TinTin?"
"Is there anything I can do about enourmous CPU usage of VMS TinTin?"
"Ok, I have a character, now what do I do?"
"What are hit points, mana, and movement?"
"What are some other things I should know?"
"What is a crash?"
"What is lag?"
"What is some of the slang or jargon I hear on these muds?"
"What about this newsgroup, rec.games.mud.diku?"
"What is DikuII, and when can I expect to see it?"
"Where can I find so-and-so?"
"Now I know where to find it... what is available?"
Implementors / Building
"I really like DikuMuds, I want to start my own!"
"What is the difference between Circle, Merc and Silly?"
"Well, I do not want to run my own mud, but I would like to create an
area."
"Ok, I think I can start my own, but I hear there are bugs with the
stock code, what are these?"
"Are there any RFC's of interest?"
"What runs on Linux?"
"How can I make the original DikuMud run on Linux?"
"Are there any books of interest to admins?"
"Are there any muds available with online creation?"
"When is Circle 3.0 going to be released?"
"Are there any mailing lists for administrators?"
"Do I need to follow the license agreement?"
"Should I credit my area authors too?"
Resources
Web Resources
FTP Resources
_________________________________________________________________
Introduction
"What is a Diku Mud?"
A DikuMud is s specific species of one of the fastest growing
forms of computer games called Mud. For more information on
muds in general, please consult the general mud FAQ posted on
rec.games.mud.announce.
DikuMuds are highly influenced on the AD&D format for
adventuring. Though DikuMuds are not an exact duplicate of
AD&D, both share many common qualities, enough so a person who
is familar with AD&D will feel quite at home with the DikuMud
world. But by no means is AD&D experience required for a person
to prove to be successful.
While some muds are based on pure social interaction and some
based on pure fighting, DikuMuds have evolved into an
intelligent compromise between the two.
"Where did this DikuMud come from?"
DikuMud was originally developed by Katja Nyboe, Tom Madsen,
Hans Henrik Staerfeldt, Michael Seifert, and Sebastian Hammer.
A small bit of background of DikuMud, according to Sebastian
Hammer:
"The game originated at the Department of Computer Science at the
University of Copenhagen (in Danish: Datalogisk Institut ved
K|benhavns Universitet; or, amongst friends: DIKU) The foundations
of the code were laid out in March of 1990. Our background
(Mud-wise) was primarily Abermud (LpMud was just emerging at the
time), and our object was to make a better AberMud. We wanted to
make it fast, compact and CPU-efficient. We wanted to allow more
than the 18 (or so) players-at-a-time that AberMuds permitted in
those days, and we wanted a bigger world, so that players could
truly get lost in there (back then, 500 room AberMuds seemed the
norm). Also, we wanted to make it more interesting for players to
cooperate, rather than just run madly around in search of beasts to
kill.
I guess we reached some of our goals, but far from all of them.
Currently, we are working on DikuMud II, which is still under
debugging. We have ceased to support the original code in any way,
since so many "improved" versions have started to circulate"
"Where and how do I connect to a DikuMud?"
DikuMuds are located on different computers throughout the
world. These computers can be at universities, companies, or
even be personal workstations. To connect to these games, you
need two things -
1. Access to telnet.
2. The mud's host name or IP number and the protocal port that
the particular mud is running on.
Telnet is, to put it very simply, like a telephone. From the
computer, you 'dial in' where you want to connect to and you
are in (assuming the game is up).
Since many people play from a Unix based platform, I will use
that for examples on how to connect. Asgard.cs.bsu.edu 6969
will be the mud we will use as an example to connect to.
(147.226.112.94 was the IP number of that same machine).
From a unix based machine - (The % is the prompt)
% telnet asgard.cs.bsu.edu 6969
or
% telnet 147.226.112.94 6969
or
% telnet <enter>
telnet> open asgard.cs.bsu.edu 6969
"Where can I find out where these muds are located"
Word of mouth is a good way. So are the news groups. Different
muds are always being mentioned in rec.games.mud.diku plus a
listing is posted every few weeks in rec.games.mud.announce.
Also, look for the Mud Connector (http://www.mudconnect.com/).
"Ok, I'm connected, what do I do now?"
Many DikuMuds have a lot of differences on how a person goes
about making a character. But there are some common
similarities between all of them.
Name
This will be your character's name for the game. It is
suggested that you do not make up a name that is
complicated to spell (something like Gustralieb would be
a pain for other players to type) or something that could
possibly be the name of a monster in the game (something
like Dragon or Guard has a great possibility of being a
monster (or mob) in the game). If your name is one of the
above, you can find yourself being killed at times when a
sensible name could have saved your life.
Password
This is what will prevent other people from playing your
character. Pick a password word that is hard to guess and
one that you currently do not use on another mud or
system. This is very important because it takes little
effort for a mud admin to find your password of your
character, your site and your username. Bad passwords
include your real name, character name, and anything less
than 3 characters. It is recomended that you choose
something that includes some non-standrard Alpha
characters such as # or @ or * (you get the idea). So, a
password like #Chapo1* would be a good, hard to guess
password.
Sex
No, not if you get any, but what gender you want to be.
Most commonly this will be Male or Female, but a few muds
have the option of being Other or Neuter.
Class
There are usually four basic classes that DikuMuds
usually have.
1. Cleric - a healer
2. Warrior - a fighter
3. Magic User - a spell caster
4. Thief - a rogue
Some muds also have many other split style classes such
as Rangers, Paladins, Bards, etc. Usually on the log-on
screen, there will be some sort of online help that will
help you in the decision of your class.
There are a few other things some muds include such as
hometown and races. For these items, there should be
sufficient online help to guide you through on the
paticular DikuMud you are playing.
"What is a client program, or TinTin?"
A client program is basically a program that you use to connect
to a mud that has many enchanced features to help (in some
peoples' opinion... 'cheat') in the game. The most commonly
used Unix clients for DikuMuds are TinTin and TinyFugue. TinTin
was specifically designed for play on DikuMuds and is only
available for Unix platforms. There is now a Beta version of
WinTin for Windows '95 however. TinyFugue was designed for
MUSHes and other TinyMuds, but has been adapted for use with
DikuMuds. Both of these feature things like macros, aliases,
and triggers. Sites where you can find these two clients are
listed later in this document.
Further info on clients programs and their functions is
contained in the bi-weekely rec.games.mud.announce FAQ.
"What can I do about the enourmous CPU usage of VMS TinTin?"
Quick and easy fix:
+ Edit the file main.c
+ Find the following line:
time.tv_usec=0;
+ Change the 0 to 500000
+ Recompile and you are all set.
"Ok, I have a character, now what do I do?"
The first thing you would want to do is get to know the mud and
its commands. Some things you can do is type:
HELP
This will give a general listing of the commands
available.
HELP <keyword>
This will give you a more precise definition. An example
of what you could type is HELP SAY. This will give you an
explanation and proper syntax for the command say.
INFO
Will give you a brief introduction to the paticular mud
you are playing.
COMMANDS
This command is not on all muds, but what it does is
gives you a listing of all the commands available to your
character.
NEWS
Will provide the latest news of the mud.
Ask around. Most people are generally nice by nature and will
offer some (sometimes a lot, sometime very very little) help if
you ask nicely and are not annoying about it.
Read everything you see. Things like the MOTD (Message Of The
Day, which you see right before you enter the game) will often
provide very important information.
"What are hit points, mana, and movement?"
Hit Points
A numeric representation of the amount of hits/damage
that your character can take. Every time you are hit, you
lose some amount of hit points. You are considered
officially dead when you reach -11 hit points, though at
0 you can not do anything except for hope there is
someone around who will heal you.
Mana
This is the amount of spells you can cast. Every time you
cast a spell, a certain amount of mana is subtracted from
your working total of mana. Mana is like the working
energy that you can use to cast spells.
Movement
This is the amount that you can walk/run etc etc. A
decent comparison could be the amount of energy your
player has. Some skills also subtract from your movement
points.
"What are some other things that I should know?"
Don't be annoying. Such things are constanly whinning to other
players and wizards will be the quickest way of being rejected
by the players of the mud.
Avoid player killing unless it has been explicitly allowed on
the mud you are playing. Usually if player killing is not
allowed on a mud, and someone violates this, it is dealt with
very sternly.
Avoid unnecessary shouts. Such things as shouting
"LAAAAAAGGGG", "GOODBYE SO-AND-SO", "LEVEL!!!", etc generally
do nothing but annoy other players and can be taken care of by
using tell or say.
Don't litter. Leaving junk around does nothing more than drain
the machine's resources. See if the mud you are playing has the
junk command, sacrifice command, or a dump where you can
dispose of uneeded items.
Remember, that it is only a game and the main purpose is for
you, as a player, to have fun, explore, and talk to people. And
do not let mud playing take priority over your school/job work,
which happens all too often.
"What is a crash?"
A crash occurs when
1. The system that the mud is located fails, or
2. The actual mud itself fails.
When a mud crashes, you will be thrown out of the game and you
will not be able to connect back to the game until it is
rebooted.
Because of crashes, the importance of saving your character is
very important. All you need to to do is type 'save' and your
character is saved, that's it. No excuses. Fortunately, many
muds have made it so that the mud saves your character every so
often.
In event the game does crash, and you lose items/experience,
then often (not always, and it is not required) immortals/gods
will reimburse your items. But remember, the keywords for you
to get reimbursed are politeness and courtsey. Chances are, if
you lost something, other players did too. Avoid telling your
local god 100 times that you lost something. Usually, if you
told them once, they know and will get to you as soon as they
can. And remember, nowhere does it say they have to reimburse
you.
In the event of a crash, do not go straight to rec.games.mud.diku
and post a message saying "Blah mud crashed 4 seconds ago, what
happened?" That posting will usually be met with negative
reponses. POST TO THE NET ONLY AS A LAST RESORT. If the game is
going to be down for an extended amount of time or if there are
serious problems, usually there will be a message at the port
the game ran on, or there will be a posting on rec.games.mud.diku
concerning the down time.
"What is lag?"
Lag is the result of an overstrained Internet. It comes in two
varieties, machine lag in which the machine the MUD runs on is
overburdened, and network lag caused by a poor network
connection between the enduser and the MUD's host machine.
Machine lag can be created by other processes gobbling up CPU
processing time or RAM, or simply by trying to run an overly
exotic MUD on an inadequate machine. Machine lag will cause all
actions to be slowed down, but for the most part everything is
slowed down equally. Machine lag can be fixed by upgrading the
hardware the MUD uses or by the MUD implementors better
optimizing the MUD.
Network lag is typically the result of a breakdown or bottleleg
somewhere on the Internet. Massive or rerouted traffic on the
Internet as a whole will cause traffic jams that make
communicating between the MUD and the enduser difficult.
Typically, the communications problem is sporadic and the lag
will come and go in "bursts". Multiple commands will go thru
simultaneously, followed by a period when seemingly no response
occurs. Network lag is sometimes caused by the MUD's machine if
the MUD has an inadequate hookup to the Internet. Utilities
like PING and TRACEROUTE are good for tracking down the
location of network lag.
The two types of lag have different effects on the MUDder.
Since machine lag slows everything down, all actions take
longer. Machine lag is essentially like operating in slow
motion. There is little real danger (other than becoming
inattentive from boredom) to machine lag since you essentially
have a longer reaction time. Network lag, on the other hand, is
MUCH worse. It may take many seconds, even minutes, for a
command to be entered, be processed and the response to that
action to come back to the user. Obviously, the situation could
have dramatically changed in the meantime. In short, the user
might be responding to an event that the MUD thinks happened
many seconds in the past. Or more to the point, you might
already be dead before you even register that you should be
thinking about fleeing.
Each MUD has its own policy on how lag related problems are
resolved. Commonly though, most MUDs will refuse reimbursement
for lag induced death simply because it is an aspect of the
game that the implementors have no control over and for the
most part can not be verified.
From Jeffrey Bennett (Batopr@SneezyMUD)
"What is some of the slang or jargon I hear on these muds?"
brb --- Be right back.
brt --- Be right there.
rl --- Real life. Something like "I'm bored rl" is commonly
heard.
brb rl --- Put the two together and you get "Be right
back, real life". You know, like going to the bathroom.
pk, pk'ing --- Player Killer and Player Killing.
newbie --- Someone who is new to the game. Associated with the word
clueless.
mob --- A mobile, a monster in the game.
immort --- A player who has achived immortality on the mud and is
considered a god.
imp(s) --- The person(s) who run the mud. They have final say over
everything.
afk --- Away from keyboard.
afw --- Away from window.
inv --- Your inventory, what you have on you and is not
currently equiped.
equip --- The items that you are currently using. Like the armour
you are wearing.
"What about this newsgroup, rec.games.mud.diku?"
This newsgroup was designed to help filter a lot of traffic
that flowed through the newsgroup rec.games.mud. The newsgroup
is designed for discussions about anything pretaining to
DikuMud games. Anyone or anything is open, though messages that
obviously have no purpose, like "Big Fat Hairy Mud
Rules/Sucks!!!!" are generally frowned upon and are a waste of
peoples' time and of network resources.
"What is DikuII, and when can I expect to see it?"
DikuII is exactly that, the second version of DikuMud. The
latest word is that this code will not be released due to the
politics and pains of releasing public code. Unless of course,
you have the April Fools DikuII release of a couple of years
ago. However, all this aside, ValhallaMud runs on the DikuII
code and is run by some of the original DikuMud authors.
"What other derivatives are available then?"
There are a large number of derivatives of the original
DikuMud, far too many to list in fact, but a quick summary can
be made. The first real variant on the DikuMud Gamma code was
the Alfa DikuMud code. Not too many changes were made, but a
number of bugs were corrected, and several new areas were
added. In the time following this, other variants were
released, for example Copper, Sequent, Pirate, TECHv3, and so
forth, most without too many changes to the original code. As
more new ideas came to the forefront, SillyMud was released,
MercMud, and CircleMUD. MercMud has since branched off into a
large number of other derivatives such as ROM, Envy, SMAUG, The
Isles (NiMud), Ember, Oblivian, and more. The differences
between these are generally in the basic features, but the
MercMud tree introduced a new file format to the game for area
files. Instead of all of the rooms being stored in one big
file, they stored each area in its own file instead, making
adding and removing areas somewhat easier.
Each generation of DikuMud code tends to remove a number of
bugs and problems from earlier code while introducing new
features, bells, and whistles. If you are planning on using one
of these derivatives, you are advised to find the one that
suits your needs the most.
See also the question on the differences between Silly, Merc,
and Circle based muds in the next section.
"Where can I find so-and-so?"
If you are looking for a paticular client/patch/source, check
the bottom list and look at those ftp sites. I try to maintain
a general list of what is at these sites, but I can not always
keep up-to-date of these sites' contents, so you will have to
actually log in those sites and look around, chances are what
you are looking for is at one of those sites.
If by chance you do not find what you are looking for at one of
those sites, then use the archie server. Archie is a archive
database searcher that will aid in hunting down a paticular
program or whatever it is you seek. Don't post to the newsgroup
asking how to use archie, ask someone at your site if they can
help. If you can not get help locally, then post the question
to newsgroup such as news.newusers.questions or look in
news.answers.
_________________________________________________________________
Implementor / Building
"I really like DikuMuds, I want to start my own!"
Well, before you go off and do that, there are some things you
need to know or have.
A good, working knowledge of C. Though with the amount of
enhanced muds that are available, this is still a good thing to
know because you are never going to find 100% bug free code.
A machine. Some general requirements include:
+ 32-bit processor
+ 8+ megs available (greater than 16 is desirable)
+ 2-8 megs of available memory
+ Network bandwith running (to Internet) at about 50
kilobits/second
+ Explicit System Administrator Approval. Muds do not go
unnoticed on any machine where there are any other users. Get
this before you do anything or you could find hours and hours
of hard work down the drain.
+ A large amount of time to devote to actual work on the mud
and time to spend online in the game doing administrative
duties. This has caused the eventual death of many muds.
+ A creative mind. Be creative about your work, no one really
cares for a dull, boring mud.
DikuMuds are not very CPU intensive, so very little CPU time is
needed for all practical purposes.
"What is the difference between Circle, Merc, and Silly?"
There is a lot of differences between the codes, some that are
easily recognizable by players, some that are not.
CircleMUD is the closest to the original Gamma Diku with a lot
of the bugs patched plus a lot of new features built in. It can
compile on almost any platform, including Amigas and Windows 95.
SillyMud is a very large and heavily modified release and if I
remember what the author of this code (or maybe it was someone
else) said is "it is big and it is ugly". Silly is filled with
features but is has not been patched up to run on all systems,
so beware it might take some hacking to get this to work on
your machine.
MercMUD is yet another highly developed and very different
release. It has been made to work with a variety of machines
including Macintosh and is very compact. The MercMUD base has
branched off into a number of different bases now, including
ROM, EnvyMUD, and SMAUG.
It is recommended that you give each release your attention to
find out which code is best for you, because none is
specfically better than the other in general terms, it is up to
you find out what you prefer.
Further additions to this section are welcome, including
comparing new code bases that exist.
See also the question on which derivatives are available in the
previous section.
"Well, I do not want to run my own mud, but I would like to create an
area."
Some tips in writting an area:
1. Get documentation - Basic DikuMud documention has been
upgraded and released by the Curious Areas Workshop, and
their Builders' Handbook can teach the most inexperienced
beginner how to create an area.
2. Ask a wizard at the mud you would like to build for for the
documentation specifically for that mud. This is helpful
because the actual format for area creation and many of the
different bitvectors vary greatly from mud to mud.
3. Planning. Plan out your area. Make a detailed map and think
of a good general story or theme for your area before you
start construction.
4. Don't just make an area for the sake of it. If you make an
area just for the sake of it, this usually shows and people
do not want a boring, non-planned area. All you will do is
waste your time and the admin's time.
5. Many other helpful tips are given in the C.A.W. Builders'
Handbook, and are available online at:
http://democracy.queensu.ca/~fletcher/VieMud/Caw/Bhndbk/tips.html
"Ok, I think I can start my own, but I hear there are bugs with the
stock code, what are these?"
Unfortunatly, all code will have bugs, here are some of the
more well known bugs that should be looked at when starting
your own bugs.
(NOTE: These are all fixes that require knowledge of C... told
you you needed to know C.)
+ Problem with realloc() in db.c with the world, and to a
lesser extent mob_index and obj_index.
+ Problem in do_pour. This bug allows players to preform 'pour
cup cup' and have an infinite water supply.
+ Problem on do_taste. A player can taste the bread, but when
he tastes the bread, it will apply the breads fill value
without actually eating the bread, thus having an infinite
bread supply.
+ Problem in nanny(). In nanny(), if a player answers 'no' to
the 'is that really your name?', the name pointer is never
set to NULL. So, when you drop link, the same pointer will be
free [using free()] again inside free_char().
+ Problem in generic_find(). Uses str_cmp() instead of isname()
in FIND_OBJ_EQUIP.
+ Problem in affect_from_char(). The variable hjp is given the
value hjp-next after hjp has been free()'d.
+ Problem in shop.c. A has the scroll 'a tattered scroll' he
wishes to sell. Upon selling the item, a check is made for
the keyword scroll in the shopkeeper's inventory. Since
scrolls of identify and scrolls of recall are produced by the
shop and have the keywords 'scroll', the game assumes that
the first scroll is one of these items and destroys the item
and never places it back for resale.
+ Problem in the init_socket. The ports do not seem to clear
freely, so you end up with a lot of port binds. Here is a
patch provided by Dean Gaudet <dgaudet@arctic.org>
int init_socket(int port)
{
int s, sbuf, opt;
struct sockaddr_in sa;
struct linger ld;
memset(&sa, 0, sizeof(struct sockaddr_in));
sa.sin_family = AF_INET;
sa.sin_port = htons(port);
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
exit(0);
}
opt = 1;
if (setsockopt(s,SOL_SOCKET,SO_REUSEADDR, (char *)&opt, sizeof(opt)) < 0)
{
exit(1);
}
ld.l_onoff = 0; /* let's make sure this isn't on */
ld.l_linger = 1000; /* who cares what this is */
if (setsockopt(s, SOL_SOCKET, SO_LINGER, (char *)&ld, sizeof(ld)) < 0) {
exit(1);
}
......
if (bind(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) {
if( close(s) ) {
syslogf("init_socket: error closing socket: %s", strerror(errno));
exit(1);
}
exit(0);
}
if( listen(s, 5) < 0 ) {
exit(1);
}
return(s);
}
+ Check for unused variables by compiling with the -Wunused
flag. This will help in streamlining your code.
+ Many typos, especially look in constants.c, act.obj1.c and
act.other.c
+ Echo on/off:
in interpreter.c, add this to the other includes:
#include <arpa/telnet.h>
create the following strings:
char echo_off[]={IAC,WILL,TELOPT_ECHO,'\0'};
char echo_on[]={IAC,WONT,TELOPT_ECHO,'\n','\r','\0'};
make the following macros:
#define ECHO_ON(d) SEND_TO_Q(echo_on,(d))
#define ECHO_OFF(d) SEND_TO_Q(echo_off,(d))
Then place in appropriate places where you want to turn
echo'ing on or off.
"Are the any RFC's of interest?"
The following RFC's can be of interest to Diku Implementors:
+ RFC 1413: Telnet Identification Protocol
+ RFC 854: Telnet Protocol
+ RFC 857: Telnet Echo Option
RFC's are located on many sites including nic.ddn.mil and
wuarchive.wustl.edu.
"What runs on Linux?"
CircleMUD and ROM 2.4 were both developped on Linux, so neither
should have any problems compiling on Linux. Other muds such as
MercMUD and EnvyMUD have been reported to compile with very few
problems.
"How can I make the original DikuMud run on Linux?"
From Derek J. Middleton with corrections from Russell Schutlz
To port DikuMud gamma 0.0 over to Linux, there are a couple
things that should be modified. This may not be everything, but
here is what needs to be done right off the bat:
1. Add this to your #include section:
#if defined(linux) || defined(SYSV)
#include <sys/utsname.h>
#include <unistd.h>
#endif
2. Change all calls to the srandom() function to srand()
3. I believe there are two references like this. Change:
gettimeofday(&last_time, (struct timeval *) 0);
to:
gettimeofday(&last_time, (struct timezone *) 0);
4. In addition, the init_socket() function needs to be re-worked
quite a bit. This is what I have:
int init_socket(int port) {
int s;
char opt = 1;
struct sockaddr_in sa;
struct hostent *hp;
struct linger ld;
struct utsname hostinfo;
char *hostname;
/* get the current hostname */
if (uname(&hostinfo)<0) {
perror("uname");
exit(1);
}
hostname = hostinfo.nodename;
memset(&sa, 0, sizeof(sa));
hp = gethostbyname(hostname);
if (hp == NULL)
{
perror("gethostbyname");
exit(1);
}
sa.sin_family = hp->h_addrtype;
sa.sin_port = htons(port);
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0)
{
perror("Init-socket");
exit(1);
}
if (setsockopt (s, SOL_SOCKET, SO_REUSEADDR,
&opt, sizeof (opt)) < 0)
{
perror ("setsockopt REUSEADDR");
exit (1);
}
ld.l_onoff = 1;
ld.l_linger = 1000;
if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &ld, sizeof(ld)) < 0)
{
perror("setsockopt LINGER");
exit(1);
}
if (bind(s, (struct sockaddr *) &sa, sizeof(sa)) < 0)
{
perror("bind");
close(s);
exit(1);
}
listen(s, 3);
return(s);
}
Once this is done, you should be well on your way to having the
Gamma DikuMud running on your Linux system.
"Are there any books of interest to admins?"
Yes, these should be available at your local bookstore:
_Unix Network Programming_
Stevens, Richard W.
Prentice Hall, 1990
_The C Programming Language_
Kernighan, Brian W.
Ritchie, Dennis M.
Prentice Hall, 1988
[This is THE bible on C programming]
"Are there any muds available with online creation?"
The Isles is a Merc based DikuMud with Online Creation among a
lot of other enhancements.
There is a copy of Envy mud with a ported version of The Isles
OLC in it.
SMAUG, a newer code release based on Merc has a built in OLC
system.
Circle 3.x is also going to have online creation. (See the next
question)
"When is Circle 3.0 going to be released?"
See the CircleMUD FAQ for more details on CircleMUD 3.x
"Are there any mailing lists for administrators?"
CircleMUD has a mailing list at <listserv@post.queensu.ca>. To
subscribe, send it a piece of mail with the body 'subscribe
circle <first name> <last name>'.
MercMUD and EnvyMUD have a mailing list at
<merc-l-request@webnexus.com>
To subscribe to this, send a piece of mail to that address with
the word 'subscribe' in the body.
ROM also has a mailing list now. This can be found at
<rom-request@cmc.net>. To subscribe, send a piece of mail to
this address with the word 'subscribe' in it.
"Do I need to follow the license agreement?"
YES YES YES YES YES!! No matter how much you have or think you
have changed in the code, you must included both the 'credits'
file and the names of the authors in the initial logon screen.
There are no ifs, ands, or buts about this.
"Should I credit my area authors too?"
Of course you should! The best way to do this is to either have
a help entry for 'areas' or 'zones' with a listing of zones and
their authors. Another way to do this would be to use the Merc
family method of having an 'areas' command which lists the
areas and authors. A final method would be to list them in the
credits of your mud. If all of your authors are credited
publically, it gives people more incentive to release areas to
the public and to create areas for your mud.
To aid this, Nino Ruffini (Steppin of JediMUD) has lent his
time in order to compile a fairly extensive listing of areas
and their authors. This has been posted once to rgmd, and will
soon be found on a web page near you! Keep your eyes peeled for
it.
_________________________________________________________________
Resources
Below is a list of commonly used sites for DikuMud related items. All
sites/contents are subject to change.
Web Resources
There are a good number of resource sites online and more seem to crop
up every day. The following is by no means a definitive list of
available resources, but should serve as a good starting point.
http://www.dikumud.com/diku/
The official DikuMud homepages.
http://www.efn.org/~rtaylor/
This is the official release site of ROM.
http://www.circlemud.org/
The official CircleMUD homepages, complete with links to the
CircleMUD FAQ, various documentation for running a CircleMUD,
etc.
http://democracy.queensu.ca/~fletcher/Circle/
This is the official CircleMUD FAQ site, as well as being the
official home of this FAQ. Also found here are a number of
CircleMUD code snippets, and links to CircleMUD area updates.
http://democracy.queensu.ca/~fletcher/VieMud/Caw/
The official Curious Areas Workshop homepages. These pages
include area releases and the C.A.W. Builders' Handbook.
http://www.mudconnect.com/
The Mud Connector. This site has links to many online
resources, as well as links to over 400 muds.
http://www.eden.com/~hsoi/mud/
This site is the quintessential Macintosh Mudding Resource
site, with links to Mac Clients, code, and so forth.
http://www.goodnet.com/~esnible/mudinfo.html
A site with many links to building resources online, as well as
links to several area archives.
http://www.game.org/heirarchy.html
A page listing the approximate family tree of the DikuMud
server, complete with links to the home sites of many of the
DikuMuds listed.
http://tf.tcp.com/~hawkeye/tf/
This is the homepage of the TinyFugue Client. This page gives
complete instructions on how to go about using the client and
how to get it.
FTP Resources
ftp://ftp.math.okstate.edu/pub/muds/
This site contains a general mishmash of mud related software.
Unfortunately, it is somewhat out of date in general.
ftp://ftp.pvv.unit.no/pub/mud/
This has the server software for MUME as well as a few
utilities for DikuMuds. There are also some clients available
here.
ftp://ftp.tcp.com/pub/mud/
This site is mostly out of date, but has a fairly large amount
of mud related items, including having the most recent releases
of the TinyFugue client.
ftp://marble.bu.edu/pub/diku/
This site is an older site pertaining to DikuMuds.
ftp://grind.isca.uiowa.edu/unix/mud/dikumud/
This site contains a fair number of servers as well as a few
areas, but does not tend to be updated very often.
ftp://ftp.envy.com/pub/mud/
This is the official release site of EnvyMud.
ftp://ftp.game.org/pub/mud/diku/
Probably one of the largest and most up to date FTP sites. It
contains almost every single DikuMud related server that has
been publically released.
ftp://ftp.circlemud.org/pub/CircleMUD/
This is the offical site of the CircleMUD distribution. It
contains various releases of the CircleMUD server, as well as a
plethora of CircleMUD administrator contributed code and areas.
ftp://ftp.io.com/pub/mud/
This site contains a number of items relevant to DikuMuds, as
well as being the homesite for the Hidden Worlds Mud.
ftp://democracy.queensu.ca/pub/USERS/fletcher/
The official release site of Curious Areas Workshop, an area
building group, also known for the C.A.W. Builders' Handbook.
ftp://ftp.cis.ufl.edu/pub/src/games/mud/
The official site of the SillyMUD distribution.
ftp://ftp.lysator.liu.se/pub/lpmud/clients/
A site for PMF, an alternative client to TinTin.
ftp://princeton.edu/pub/tintin++/dist/
The official release site of the TinTin++ client.
_________________________________________________________________
Final Word
Playing a mud of any sort is NOT a right. The people who run the game
and the people who owns/runs the system that you are playing from are
not required to let you play. If you abuse your privledge of playing,
there are good chances that it will be taken away.
_________________________________________________________________
--
Erm... Yeah. Whatever.

User Contributions:

Comment about this article, ask questions, or add new information about this topic: