FREQUENTLY ASKED QUESTIONS FOR CIRCLE DIKUMUD
Last updated: 23 June, 1996
Preamble
This is the latest version of the CircleMUD FAQ for the CircleMUD Mailing list
at circle@pvv.unit.no. To join this list, send mail to majordomo@pvv.unit.no
with subscribe circle in the body of the message.
This FAQ is still rather new, so any contributions and corrections are more
than welcome. This file is intended to cover common questions related to the
CircleMUD distributon source by Jeremy Elson <jelson@circlemud.org>, and not
general DikuMud questions.
This FAQ is currently maintained by Alex Fletcher (bka Furry)
<furry@circlemud.org> Please direct corrections to this address. The original
author was Ryan Watkins (aka VampLestat).
The most recent version of this FAQ can always be found on the web pages
located at: http://cspo.queensu.ca/~fletcher/Circle/ and on the circlemud ftp
site at: ftp://ftp.circlemud.org/pub/CircleMUD/FAQ
__________________________________________________________________________
Contents
Section 1: Introduction
Subject: 1.1 -- I've never played a MUD before. What should I
do?
Subject: 1.2 -- What is CircleMUD?
Subject: 1.3 -- What is the history of CircleMUD?
Subject: 1.4 -- Where is the original CircleMUD so I can check
it out?
Section 2: Resources
Subject: 2.1 -- Where do I find the source code for CircleMUD?
Subject: 2.2 -- Where do I find areas, etc for CircleMUD?
Subject: 2.3 -- I have questions about CircleMUD. Where should
I go?
Subject: 2.4 -- How do I subscribe/unsubscribe to the Mailing
list?
Subject: 2.5 -- What platforms has CircleMUD been ported to?
Subject: 2.6 -- How can I submit code or areas for use with
CircleMUD?
Section 3: Compiling and Running CircleMUD
Subject: 3.1 -- Compiling
Subject: 3.1.1 -- Why do I get many syntax errors with
Sun's 'cc' compiler?
Subject: 3.1.2 -- Why do I get all sorts of errors with
"crypt" functions and header files?
Subject: 3.1.3 -- When I try to compile, why do I get a
lot of "undefined symbols" referenced in
comm.o for functions like socket,
accept, and bind?
Subject: 3.1.4 -- On Linux, why won't 'make' find header
files?
Subject: 3.1.5 -- While compiling the mud, why do I get
'undefined symbol' errors?
Subject: 3.2 -- Running
Subject: 3.2.1 -- I typed 'autorun' but then my terminal
just froze.
Subject: 3.2.2 -- I typed 'bin/circle' and got lots of
boot messages, but then it said
'Entering game loop' and froze.
Subject: 3.2.3 -- Okay, I think the MUD is running but
why don't I get a login prompt?
Subject: 3.2.4 -- When I run Circle under Linux, it tells
me 'connection refused' when the MUD
boots, and then dies. Why?
Subject: 3.2.5 -- My Mud crashed and my connection got
closed. What can I do?
Section 4: Code Changes for CircleMUD 2.20
Subject: 4.1 -- How do I fix the bug where people can junk more
coins than available?
Subject: 4.2 -- How do I fix the 'vstat' bug?
Section 5: CircleMUD 3.0 Questions
Subject: 5.1 -- Are there any bugs in patch level 11?
Subject: 5.2 -- How do I access Online Creation?
Subject: 5.3 -- When will the production release of Circle 3.0
be????
Subject: 5.4 -- If someone logs in and just sits at the
password prompt, the MUD hangs.
Subject: 5.5 -- How do I add a new class?
Subject: 5.6 -- Is there a complete coding.doc?
__________________________________________________________________________
Section 1: Introduction
Subject: 1.1 -- I've never played a MUD before. What should I do?
Don't try to use your own copy of CircleMUD! There are two
levels of MUD users: players and administrators. Administrators
do what you're trying to do now -- get a copy of a MUD's source
code, compile it, and run it. Players use MUDs that are being
administred by someone else. If you try to actually run a MUD
before you've ever played one, you'll get very confused indeed!
Your best bet for now is to play someone else's MUD first.
There are a large number of excellent MUDs out there already,
some of which are based on CircleMUD code. A good place to
start looking is the complete MUD list, which you can find via
Mosaic or another WWW browser at http://www.absi.com/mud.
There's a list of CircleMUD sites at
http://www.circlemud.org/sites.html.
Subject: 1.2 -- What is CircleMUD?
CircleMUD is a DikuMud derivitave, developed by Jeremy Elson
<jelson@circlemud.org>, and is from the Gamma v0.0 of DikuMud
created by Hans Henrik, Staerfeldt, Katja Nyboe, Tom Madsen,
Michael Seifert and Sebastian Hammer at DIKU (Computer Science
Instutute at Copenhagen University)
Also, note that CircleMUD is a Diku derivative and its users
must follow the DIKU license agreement - most notably that it
cannot be used to make money in any way, the original
developers names have to be in the login screen that the
'credits' command always presents the same information, etc..
This is from the release.doc:
"CircleMUD is highly developed from the programming side, but
highly UNdeveloped on the game-playing side. So, if you're
looking for a huge MUD with billions of spells, skills,
classes, races, and areas, Circle will probably disappoint you
severely. Circle still has only the 4 original Diku classes,
the original spells, the original skills, and about a couple
dozen areas.
On the other hand, if you're looking for a highly stable,
well-developed, well-organized "blank slate" MUD on which you
can put your OWN ideas for spells, skills, classes, and areas,
then Circle might be just what you're looking for."
The latest full release of Circle is 2.20, released on November
17, 1993. Currently 3.0 is in beta, at patch level 11, released
on April 14, 1996.
Subject: 1.3 -- What is the history of CircleMUD?
Version 2.20: November 17, 1993
Version 2.11: September 19, 1993
Version 2.10: September 1, 1993
Version 2.02: Early August
Version 2.01: July 20, 1993
Version 2.00: July 16, 1993
Version 3.00 is currently in beta right now and is up to patch
level 11. The final release is due out Real Soon Now(tm). Dont
bother posting requests for it. It will be out when Jeremy gets
it done, and it will be announced on the mailing list and the
newsgroup rec.games.mud.diku.
Subject: 1.4 -- Where is the original CircleMUD so I can check it out?
CircleMUD is a public code base, freely distributable, but the
author of Circle don't actually run one personally. There used
to be CircleMUD, and while Jeremy Elson continues to develop
it, there is no original CircleMUD on the net. If you want to
play Circle, there is a list of Circle-based MUDs at
http://www.circlemud.org/sites.html.
__________________________________________________________________________
Section 2: Resources
Subject: 2.1 -- Where do I find the source code for CircleMUD?
Circle's complete source code and areas are available for
anonymous FTP at ftp.circlemud.org in the directory
/pub/CircleMUD. There is a web site for CircleMud as well,
located at: http://www.circlemud.org/
Subject: 2.2 -- Where do I find areas, etc for CircleMUD?
A number of Circle-mud based Implementors have submitted areas
to the public and they are archived at the same sites as the
CircleMUD source (ftp.circlemud.org) but in the directory
/pub/CircleMUD/contrib.
Subject 2.3 -- I have questions about CircleMUD. Where should I go?
If you have general questions about the MUD such as how to get
it running, how to add new spells, how to add new skills, etc.,
the first place you should look is the documentation.
coding.doc will have information about how to add new spells,
skills, commands, etc. building.doc has information about how
to create new worlds, how to read the database files, etc.
There are many other documents in the doc directory with useful
information.
There is also a new project called the CircleMUD Documentation
Project which will eventually be a repository for all Circle-
related information. It's still very new as of June 1996, but
hopefully will become a valuable resource as more documentation
is added.
If you still have questions after reading the doucmentation,
you can try asking on the CircleMUD mailing list (see Section
2.4).
If you want to contact the author, Jeremy Elson, his email
address is jelson@circlemud.org.
Subject: 2.4 -- How do I subscribe/unsubscribe to the Mailing list?
To subscribe to the mailing list send a message to
majordomo@pvv.unit.no with any subject and the message body
should be simply subscribe circle.
To unsubscribe from the list send a message to
majordomo@pvv.unit.no with the words unsubscribe circle as
the message body. DO NOT send subscription/unsubscription
requests to the list in general. There are hundreds of
people on the list, and it will only irritate a ton of
people who have no power to remove you from the list.
Subject: 2.5 -- What platforms has CircleMUD been ported to?
Version 2.20 of CircleMUD compiles mainly on BSD UNIX systems but
has trouble under SVR4-based systems such as Solaris. The author
has personally compiled and tested v2.20 under the following OS's:
+ Ultrix 4.0
+ IRIX 4.0.1, 4.0.4, and 4.0.5
+ SunOS 4.1.1, 4.1.3
+ AIX 3.2
+ Linux 0.99.11 (amongst others)
+ ConvexOS V10.2
Reports have come in that v2.20 compiles with relatively minor changes
on the following systems:
+ NeXTStep 2.1 and 3.0
+ HP/UX 9.0
Version 3.0, although still officially in beta-testing, is much
more portable because it uses the GNU autoconf system, meaning you
only need to type 'configure' to have it automatically determine
various features of your system and configure the code accordingly.
3.0 compiles without changes under most BSD and SVR4 systems,
including SunOS, Solaris, Ultrix, IRIX, AIX, and others.
Version 3.0 is also being ported to various non-UNIX platforms.
As of patchlevel 11, you can compile Circle under OS/2 2.x and 3.x
with the OS/2 port of gcc, and Windows 95/NT using Microsoft Visual
C++ version 4.0.
CircleMUD users are working on porting the 3.0 source to other
non-UNIX platforms as well. Amiga and VMS versions should be
available within the next few months.
Subject: 2.6 -- How can I submit code or areas for use with CircleMUD?
Currently, you can upload code or areas to the incoming
directories off of the CircleMUD directories on the ftp sites.
These portions of code or areas will probably not be added to
the full release of CircleMUD unless you make arrangements with
Jeremy for code items, or with me, Alex for area/lib files.
__________________________________________________________________________
Section 3: Compiling and Running CircleMUD
Subject: 3.1 -- Compiling
This subsection deals with some common compiling problems
experienced by people attempting to set up a CircleMUD.
Subject: 3.1.1 -- Why do I get many syntax errors with Sun's 'cc'
compiler?
Because Circle is written in ANSI C, and Sun's standard
cc compiler isn't capable of compiling ANSI C code. You
can try acc, Sun's ANSI C compiler, but it costs extra
money to get it from Sun so your sysadmin may not have
installed it. Most don't. The best solution is to get the
GCC compiler from ftp.gnu.ai.mit.edu and install it, if
you have enough time and space.
Subject: 3.1.2 -- Why do I get all sorts of errors with "crypt"
functions and header files? At the end of compiling,
why does the linker tell me it can't find the crypt
function?
(This information applies ONLY to Version 3.0 of the code)
CircleMUD normally uses the UNIX crypt() function to enrypt
players' passwords. Because of export restrictions imposed
by the U.S., some systems do not have the crypt() function.
'configure' will usually be able to figure out whether or not
your system has crypt(), but if it guesses incorrectly and
you see problems with the crypt() function or headers,
you can manually disable password encryption by going into
the sysdep.h source file and uncommenting the line that
reads:
#define NOCRYPT
Be warned, however, that doing this causes the MUD to store
players' passwords in plaintext rather than as encrypted
strings. Also, if you move from a system which has crypt
to one that doesn't, players won't be able to log in with
their old passwords!
Subject: 3.1.3 -- When I try to compile, why do I get a lot of
"undefined symbols" referenced in comm.o for
functions like socket, accept, and bind?
SVR4 systems require the socket and nsl libraries for
network programs. You shouldn't see this error any more
with version 3.0 because 'configure' should automatically
use those libraries for you; however, if you still have
problems, try adding '-lsocket -lnsl' to the line in the
Makefile that links all the object files together into
the 'circle' binary.
If you're using V2.20 and you have this error, the best thing
to do is simply to use V3.0 instead. If you insist on using
2.20, go into the Makefile and search for the comment next
to "SVR4".
Subject: 3.1.4 -- Every time I try to compile Circle (or any other
piece of software) under Linux, it gives me errors
and says it cannot find include header files in
the linux/ and asm/ directories.
Under Linux, you cannot compile any program unless you
install the kernel source code because the kernel source
includes the ANSI C header files. You need the files in
/usr/include/linux, which are distributed separately
from the rest of /usr/include.
The easiest way to do this if you're using the Slackware
Linux distribution is simply to install the 'K' series of
disks which is the kernel source.
Otherwise, you'll have to set up your include files manually.
The easiest way to get these is to download kernel source
from sunsite.unc.edu:/pub/Linux or tsx-11.mit.edu:/pub/Linux.
Get the kernel source that matches the kernel you're running
(type 'uname -a' to find your kernel version). Then unpack
the kernel into the /usr/src directory. It's 6 megabytes
compressed, 25 megabytes uncompressed.
Read the README file and make the symbolic links you need for
/usr/include/asm and /usr/include/linux.
Now compile the mud. This will take care of most of the
errors. You may have to do 'make config' and 'make dep' as
well, in order to make 'linux/config.h' and other files that
get generated by these steps.
You can remove the whole kernel source tree except for
'include' at this point and get most of your 25 megs back.
(Thanks to Michael Chastain for providing this answer.)
Subject: 3.1.5 -- While compiling the mud, why do I get errors
like these:
foo.c:1231: Undefined symbol '_whereamI'
referenced from text segment
You forgot to include a source file into the make. Go
edit your Makefile and make sure all the necessary *.c
files are in there.
Subject: 3.2 -- Running
This subsection deals with some common execution problems
experienced by people attempting to set up a CircleMUD.
Subject: 3.2.1 -- I typed 'autorun' but then my terminal just
froze.
autorun is a script which automatically runs, logs, and
reboots the game for long-term runs. You should run
autorun in the background by typing 'autorun &' -- the
MUD will start running in the background and you'll get
the normal UNIX prompt back immediately (see section 3.2.3).
The game will then run unattended until you explicitly shut
it down.
Subject: 3.2.2 -- I typed 'bin/circle' and got lots of boot
messages, but then it said Entering game loop
and froze.
It is not frozen, it is just waiting for people to
connect. You have to run the MUD in the background by
typing 'bin/circle &' and then use telnet to connect to the
game.
Subject: 3.2.3 -- Okay, I think the MUD is running but why don't
I get a login prompt?
In order to play the MUD, you must connect to it using
the telnet command, i.e. 'telnet localhost 4000'.
Subject: 3.2.4 -- When I run Circle under Linux, it tells me
"gethostbyaddr: connection refused" when the
MUD boots, and then dies. Why?
You need to make sure you have Networking and TCP/IP support
compiled into your Linux kernel, even if you aren't actually
connected to the Internet. The easiest way to do this if
you're using Slackware is to install one of Slackware's
precompiled networking kernels. Also, make sure to install
Slackware's 'N' series of disks which contains other networking
support files.
If Slackware's precompiled kernel isn't available you'll
have to compile the kernel yourself. First make sure the
kernel source is installed in /usr/src/linux (see question
3.1.4) and follow the instructions in /usr/src/linux/README.
When you do 'make config' it will ask you a series of
questions about which kernel features you want; make sure to
answer 'Y' to "Networking support" and "TCP/IP support".
Subject: 3.2.5 -- My Mud crashed and my connection got closed.
What can I do?
Just because your connection got closed from the mud (for
example, if you get too much information sent to you and
the telnet session gets closed), this doesn't always mean
that the game itself crashed. Before reporting something
as a crash bug, make sure that the game itself crashed,
and above all, try to duplicate the circumstances before
reporting it as a crash bug.
__________________________________________________________________________
Section 4: Code Changes for CircleMUD 2.20
Subject: 4.1 -- How do I fix the bug where people can junk more coins
than available?
Apprently in Circle 2.2, you can drop any amount of coins, and
then be rewarded with more coins than you had in the first
place. Here is the fix from Jeremy Elson
Around line 480 of act.obj1.c, you will find the code:
if (!str_cmp("coins", arg) || !str_cmp("coin", arg))
perform_drop_gold(ch, amount, mode, RDR);
else {
/* code to drop multiple items. anyone want to write it? -je */
send_to_char("Sorry, you can't do that (yet)...\n\r", ch);
--> return;
}
} else {
....
It should be changed to:
if (!str_cmp("coins", arg) || !str_cmp("coin", arg))
perform_drop_gold(ch, amount, mode, RDR);
else {
/* code to drop multiple items. anyone want to write it? -je */
send_to_char("Sorry, you can't do that (yet)...\n\r", ch);
}
--> return;
} else {
....
Subject: 4.2 -- How do I fix the 'vstat' bug?
To the fix for the vstat bug, from Jeremy Elson:
In the file act.wizard.c, in the function do_vstat, in the
mobile section of the switch (around line 1150), you'll find
the code:
mob = read_mobile(r_num, REAL);
do_stat_character(ch, mob);
extract_char(mob);
Add the line char_to_room(mob, 0) before extract_char(), like this:
mob = read_mobile(r_num, REAL);
do_stat_character(ch, mob);
char_to_room(mob, 0);
extract_char(mob);
__________________________________________________________________________
Section 5: CircleMUD 3.0 Questions
Subject: 5.1 -- Are there any bugs in patch level 11?
There are no bugs. Only features. Seriously though, if
perchance you find a bug, please mail it (along with a possible
fix) to Jeremy and the CircleMUD list. If the bug is a world
related bug, it is a good idea to mail it to me, Alex, as well.
Subject: 5.2 -- How do I access Online Creation?
Online Creation is not yet part of the Circle beta release.
When it does become part of the release, it'll be accessed
through a command called olc.
Update: OLC will probably be in release 3.01 now.
Subject: 5.3 -- When will the production release of Circle 3.0 be?
I don't know. Don't ask again.
Subject: 5.4 -- If someone logs in and just sits at the password
prompt, the MUD hangs (i.e., no one else can connect or
do anything) until the person enters their password.
(Version 3.0 only)
Your system's POSIX non-blocking I/O might be broken. Look in
the source file sysdep.h at the comment above the line that
says "#define POSIX_NONBLOCK_BROKEN" for a possible fix.
If you decide to use the POSIX_NONBLOCK_BROKEN constant and it
fixes your problem, please send mail to Jeremy <jelson@circlemud.org>
and let him know exactly what kind of system you're using and
what you had to do to fix it.
Subject: 5.5 -- How do I add a new class?
Adding a new class is fairly easy in 3.0, in fact, someone has
taken the time to put together a fairly complete document on
adding a class, in this case a Knight class.
The class.doc is available at the same location as this
FAQ:
ftp://ftp.circlemud.org/pub/CircleMUD/docs/class.doc
http://cspo.queensu.ca/~fletcher/Circle/class.html
http://cspo.queensu.ca/~fletcher/Circle/class.doc
Subject: 5.6 -- Is there a complete 'coding.doc'?
No. Look at the README.NOW in the docs directory. It isn't
complete, nor does anyone have the entire thing.
RTFM
This archive was generated by hypermail 2b30 : 12/18/00 PST