This is beta release 1.4.1 of TinyMUD version 1.4, a user-extendible
multi-user adventure game.

See the file copyright.h for information on the copyright under which
TinyMUD 1.4.1 is distributed.


Compiling TinyMUD:

The code is written in ANSI C, and is known to compile and run under
Mach (a variant of 4.3BSD Unix) on a Sun-3 and uVax-2 using GCC, and
on an RT using AT&T's CFront 1.2 C++ preprocessor with hc.  It has
also been compiled on a Vax running a fairly generic 4.2BSD system.

I do not expect that it will work well on non-BSD systems, although
most of the BSD-isms are concentrated in interface.c and in a few
calls here and there to bzero() and such.  Please let me know if you
manage to port TinyMUD to another type of system.


Programs contained in the distribution:

netmud

 This is the actual server program; it is invoked as 

    netmud source-file dump-file [port]

 If port is not specified it defaults to 4201.  The initial database
will be read in from source-file, which must contain at least the two
objects in minimal.db to work well.  The file small.db, which contains
the core of the original TinyMUD universe, may be a better place to
start a new universe from.  The netmud process will write a checkpoint
out to dump-file every 3600 seconds; the interval can be changed by
setting DUMP_INTERVAL in config.h.


dump

 Usage: dump [owner] < source-file

 Pretty-prints all objects owned by owner (if omitted, by everyone).


sanity-check

 Usage: sanity-check < source-file

 Performs several simple consistency checks on the specified database
file.  Also useful for detecting surplus WIZARDs and people with
excess pocket change.


paths

 Usage: paths [start] < source-file

 Prints the shortest path to every room in source-file from start.
Preference is always given to paths with fewer locked exits,
regardless of length.  Paths that involve passing through an exit
locked to a person are assumed to be impossible.


extract

 This is the program that was used to create the file small.db
distributed with TinyMUD.  It is used to extract a part of a database
as a connected whole.

Examples:

 extract < source-file > output-file

 Extracts location #0, player #1, and all objects owned by player #1;
 these objects are renumbered into a contiguous block starting at 0 and
 are written out as a new database file that preserves all of their
 inter-relationships.  Some objects may become "orphaned" as a result
 of having their home or location disappear; these objects are moved to
 location #0.  With some combinations of command line arguments it is
 possible to include an object without including its owner; in this
 case player #1 "inherits" the object.  Exits are only extracted if
 both their source and destination rooms are extracted.

 extract 2 < source-file > output-file

 Extracts location #0, object #1 and anything it owns, and object #2
 and anything it owns.

 extract 2 -5 < source-file > output-file.

 As above, but does not extract object #5 even if it is owned by #1 or
 #2.

 extract 2 5991 195 -198 3391 -12 12915 < source-file > object-file

 Extracts #0, #1, #2, #195, #3391, #5991, #12915 and anything they
 own, except #12 and #198.

The keyword "all" can be specified as an argument to include
everything by default, e.g.:

 extract all -198

 Extracts everything except object #198 and anything it owns.

 extract all -198 5

 Extracts everything except object #198 and anything it owns, but
 includes object #5 even if #198 owns it.



restart-cmu: The shell script used at CMU to restart the TinyMUD
server.  Useful for making sure that back versions of the database are
always available.




I hope that you enjoy using TinyMUD.  

--Jim Aspnes, December 9th, 1989.