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.