## QUICK INSTALLATION for those who demand results NOW! ##

    1. modify src/inc/config.h to fit your preferences and your system.
    2. modify src/inc/params.h also.
    3. modify game/data/parmfile.cfg

    When you're happy with the changes...

	cd src            # Enter the src directory.
	make              # This will call the configuration script
(opt)	make depend       # Makes the dependancies appropriate to your system
	make              # Compiles the source code
	make install      # This puts the binaries in ../game/
	cd ../game/data   # This will put you into the games data directory
	cd ../..          # Directory should be $(HOME)/proto
	./proto start     # This starts the server.
	
    And you're done!  ProtoMuck has it's own special minimal database.  To
    connect to it, use:

	telnet somehost someport
	<Welcome screen scrolls by>
	connect One potrzebie

    You should then be connected to da Man.

	QUIT
	./proto stop   # This shuts the server down.


## HISTORY ##

      ProtoMUCK is derived from NeonMUCK with man extentions and
      modifications, which is derived from TinyMUCK, PuebloMUCK, RattyMUCK,
      and TinyMUCKfb.  All of these share common derivation form TinyMUD 1.5.2,
      which also has many extensive changes.

## COMPATABILITY ##

	ProtoMuck will read, without modification, any TinyMUD, TinyMUCK,
	PuebloMUCK, TinyMUCK FB, NeonMUCK, and RattyMUCK databases.   ProtoMuck
	databases however cannot be loaded back into these other variants,
      except for NeonMUCK (though it is untested and only in theory).

	NeonMuck added space for 32 additional flags on all objects, along
	with a new programming language called MCP, extensive new MUF
	primitives, increased support for Pueblo and other web based logins,
	and a host of other changes.  And, in turn, ProtoMUCK expanded upon
      that and started on the long road of bringing the FB code base in
      line with the later versions.

	To convert an existing FB database over, rename it to proto.db
	in the game/data directory.  Log in as the God character, and
	type '@fixwizbits Convert DB to new level system.'  Then shut
	down the game and restart it; the database is now a clean
	Neon-format database.

## COPYRIGHT ##

	Please see the file COPYRIGHT for the full version of the copyright
	applying to this code.  It is unlawful to use this code without
	complying with the copyright.

## COMPILING PROTOMUCK ##

	ProtoMuck uses the GNU autoconf system to try and compile without
	errors on any platform which supports the required tools.  ProtoMuck
	does want GCC, Flex, and Bison to compile each and every source file
	into object code.  If Flex and Bison aren't available, pre-compiled
	versions of the mcpparse.y and mcplex.fl files are available in
	the 'backup' directory under the source tree.

	This code is known to compile without errors or warnings under
	Linux, Solaris, and SunOS.  It can be ported cleanly to Windows
	under Cygnus's gnu-win32 development kit. with a custom Makefile
	and using the backup parser files.

	It should compile cleanly, or with very few modification under most
	systems.   If you need to make modifications, or find a system which
	it doesn't compile under, or which it compiles but doesn't run under,
	please contact the authors, and they will do their best to provide you	
	with some help, and to incorporate fixes into later releases (if any).
	The authors are however under no obligation to provide support, but
	will likely do so anyway.

  # SLACKWARE LINUX #

	ProtoMuck has an internal fix to the Makefile so the fix below should
	not be necessary, but the fix is provided for reference purposes.

	If you are running slackware 2.2.x or later, you might need to first
	make sure your system has a soft link from /usr/lib/libg.sa to
	/usr/lib/libc.sa.  Do this with the command:

		cd /usr/lib; ln -s libc.sa libg.sa

	This isn't a complete fix, but it at least lets Proto compile.  Make
	sure the Makefile generated has LIBR=-lm

	This fix is not required under RedHat Linux.

  # SUN #

	Sun realloc() is braindead.  On every Sun system I have seen,
	all TinyMUD/TinyMUCK derived code runs about 6 megs in memory with
	a very small database if the option DB_DOUBLING is not defined.  If
	you are running on a Sun3 or Sun4, you should definitely compile with
	this option turned on. 

	Let the authors know if there are other systems that need this.  This
	may not be as much of a problem with current versions of the server,
	as databases now store a count of their objects, and the entire
	database generally gets allocated in one chunk.

  # OTHER OS'S #

	As far as other platforms, you're on your own.  In almost all cases,
	just running 'make' will set up the makefile and configuration
	for your system, then typing 'make' again will compile the server.


## DIRECTORY STRUCTURE ##

    bin  -- Contains the unix restart script and other support scripts

    docs -- Contains important information about administering the muck

    game -- Holds all run-time game data files and online information

    src  -- Contains all source code to build the server executable
		and related utility programs


## PROGRAM ##

    # protomuck #

	Usage: protomuck [options] starting-dbfile dump-dbfile [portnumber]

	Where the [options] can be:

            -convert       load db, save in current format, and quit.
            -decompress    when saving db, save in uncompressed format.
            -nosanity      don't do db sanity checks at startup time.
            -insanity      load db, then enter interactive sanity editor.
            -sanfix	   load db, then fix any sanity problems in the DB.
            -wizonly       only allow wizards to login.
            -help          display usage message.

	If port is not specified it defaults to 10002.  The initial database
	will be read in from starting-dbfile, which must contain at least
	the two objects in minimal.db to work well.

	The -decompress option will cause the dump-file to be saved in an
	uncompressed format.  The protomuck process will write a checkpoint
	out to dump-dbfile every few hours, depending on the @tuned interval
	parameter.

	The -convert option will cause the server to load an old style
	database, save it back out immediately in the most current database
	format, and then shutdown, instead of allowing connections.


    # proto #

	Usage: proto start -- Starts the muck
	Usage: proto stop   -- Shuts the muck down

	This is just a simple script to turn ProtoMuck on or off from the
	shell account.  ProtoMuck accepts a SIGKILL to force an immediate
	but clean and safe shutdown of the muck.  (Don't try this on a
	normal Fuzzball server, it will crash and could hose your database.)


    # olddecompress #

	Usage: olddecompress < compressed-db-file > uncompressed-db-file
	or: olddecompress compressed-db-file > uncompressed-db-file

	Removes old style bigraph compression from a database file that has
	been generated by an older version of netmuck using the -DCOMPRESS
	compile-time option.


    # topwords #

	Usage: topwords < db-file | sort > wordlist.txt

	This program will find the 4096 words who will give you the best
	compression with the new style dictionary based compression.  This
	is used by the optimdb script to re-optimize the compression of a
	database.

    # optimdb #

	Usage: optimdb infile outfile

	This script reads a database, and saves it out to the outfile with
	the compression optimized.  For databases under a half meg, this db
	will likely be a few K larger than the same database compressed with
	the old bigraph method.  For half a meg and over, though, it's a win.


## AUTHOR and CONTACT INFORMATION ##

	Bug reports, suggestions, and complaints can be sent to:
      (Moose) ashitaka@home.com   -or-  (Akari) Nakoruru08@hotmail.com


