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