Cheezmud: a cheesy little mud in Objective C Copyright (C) 1995 David Flater. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. IMPORTANT! ========== Cheezmud is a toy. It is experimental. If you use it like a "real" mud it will probably bog down or blow up. (If it doesn't, let me know so I can brag about it.) Cheezmud is loosely patterned after LPMud by Lars Pensj|, but it is a totally different product. It is completely incompatible with LPMud and variants thereof. A few code fragments in net.m actually trace their origins back to LPMud. Why Cheezmud is Cool ==================== 1. Generalized combat model. 2. Prioritized actions. 3. Fast heartbeat. 4. Has slack. 5. Lets you kill "Bob". Why Cheezmud is Cheezy ====================== 1. You can't reprogram objects at run time. Everything is compiled. 2. Many features that you may think you can't live without are not yet supported. These include currency, sex, guilds, player classes, player stats or abilities, quests, enter/exit, aliases for objects, and encumbrance. 3. Cheezmud is monolithic -- it makes no sense to distribute a mudlib separate from the mud kernel. 4. Output is hard-coded for an 80-column screen. 5. Bad coding style. The includes are especially screwed up -- I just include everything all the time. Isn't disk caching wonderful? 6. No documentation. How to Install ============== REQUIREMENTS: 1. Objective C compiler (http://sunsite.unc.edu/pub/Linux/devel/lang/objc/) 2. An amenable operating system, preferably Linux. I recommend leaving the binary in the source directory. The subdirectories needed by the mud are already in place in the source distribution. 1. Decide what you want your mud name to be and change the #define mudadmin in cheezmud.h to identify you as the superuser. Rename db/Dave correspondingly and edit its contents to suit. This is the only time you will have to edit db files directly (unless you want to). 2. Change etc/passwd to have the right name and edit etc/motd to taste. This is the only time you will have to edit etc/passwd directly (unless you want to). You should probably add a line to motd saying "Send e-mail to me@this.site to request an account" if you want a semi-public mud. 3. make 4. Edit restart.sh to use the right directory. 5. Execute restart.sh to start the mud. 6. If you will be restarting the mud from rc.local, edit mudrc.sh to have the right user id and the right filename for restart.sh and execute it from rc.local. 7. Log in (telnet loopback 2000), type 'help', and learn to use the commands. Use the adduser command to create some normal user accounts. One useful thing that is not in the on-line docs is the use of signals to flush or truncate the log. Send cheezmud a SIGUSR1 to truncate the log, or SIGUSR2 to flush stdout and stderr. Other signals cause cheezmud to save players and exit. How to Distribute Your Mudlib or Enhanced Kernel ================================================ As I said before, Cheezmud is monolithic, and you can't really separate the mudlib from the kernel. If you have a mudlib to distribute, tar up a complete standalone distribution and call it something like "Mina's Cheezmud" or "Elfquest Cheezmud". If, on the other hand, you rewrite the kernel and want to distribute _that_, tar up a complete distribution and call it something like "Cheddarmud" or "Goudamud" to let people know that you did more than just add rooms. Please be nice and let them know that this Cheezmud distribution is where it all started, so that they can start from scratch too if they want to. Fan Mail ======== All of my fans are very important to me. You can send me e-mail at dave@flaterco.com Cheezmud Chronology =================== Version 1.0 released on 1996-04-15 with the following changes: -ldl added to makefile. Made compatible with newer libobjects: Ignore messages belonging to the Retaining protocol. Work around forced usage of dealloc instead of free on Bags. Fixed a compiler warning (not a bug). Version 1.0 (Beta #1) semi-released on 6/5/95. Version 1.0 (Beta #2) stes@can.nl modfs for POC 2/98 and 9/98 Version 1.1 stes@can.nl 9/98 Version 1.2 stes@can.nl 1/99