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