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.