INSTALLATION TinyMUSH 3.0 should be straightforward to install and run. The installation process assumes that you are familiar with basic Unix commands. If you are not familiar with basic Unix commands, you will probably need the help of someone with at least some Unix familiarity, in order to be able to reliably run your game. Also, your local bookstore can probably recommend some good books for Unix beginners, such as "Unix for Dummies" or "Unix for the Impatient". ---------------------------------------------------------------------------- ONE-STEP INSTALLATION If you want to build the server using the standard default configuration, just type: ./Build (You must be in the directory that this INSTALL file is in.) When the build finishes, assuming there are no errors, you are ready to start a new MUSH, or convert an existing MUSH to TinyMUSH 3.0. ---------------------------------------------------------------------------- BASIC INSTALLATION If you decide not to use the one-step install, or you encounter problems in the one-step install, the installation process is as follows: - Go to the top-level directory (the directory where this INSTALL file is normally located). - Go into the directory for GNU dbm; 'cd src/gdbm-1.8.0' should take you there. - Type './configure --enable-shared=no --enable-static=yes', then type 'make' . This will compile the GNU dbm library, which is required by TinyMUSH 3.0. Please Note: TinyMUSH 3.0 requires gdbm-1.8.0! If gdbm is already installed on your system, chances are that it's version 1.7.3 or earlier -- do NOT ignore this step. - Go back to the src directory ('cd ..'). - Run the configure script, by typing './configure'. This will customize autoconf.h and the Makefile for your system. If you have gcc (the GNU C compiler) installed on your system, it will automatically be selected as the compiler of choice. - Edit the Makefile and make any changes that might be necessary (go down to the line that says 'CONFIGURATION SECTION'). See the notes on Compatibility, later in this file, for some operating-system-specific notes and modifications that might need to be made that are not handled by the configure script. - Edit config.h and select the configuration options you want. The options are documented in that file. - Type 'make depend', then 'make'. This should produce a number of binaries, and link them into the appropriate place in the directory structure. - You are now ready to start a new game, or convert an existing game to TinyMUSH 3.0. ---------------------------------------------------------------------------- STARTING A NEW GAME - Go into the game directory ('cd game' or 'cd ../game' should do it). - Edit mush.config, according to the directions in that file. - If you changed GAMENAME in mush.config, you will need to rename netmush.conf to the appropriate thing (i.e., if GAMENAME is foo, then you should 'mv netmush.conf foo.conf'). - Edit that conf file (netmush.conf, or whatever you renamed it to). Put in whatever configuration parameters are appropriate. - Start the game by typing './Startmush'. - Connect to the game using telnet or a MUD client. Log in the "God" character with 'connect #1 potrzebie'. - Change the password of the God character; make sure you make it something that you can remember, but which can't be guessed by someone else! Type '@password potrzebie = YourNewPassword', where YourNewPassword is the new password that you've chosen. - You are now ready to build your game. It is strongly recommended that the God character only be logged in when absolutely necessary; create another character for yourself and give it the Wizard flag, for day to day use. - You may want to make sure that you can back up and restore your database: Type '@shutdown'. Then, from the game directory, type './Backup'. If the backup finishes successfully, type './Restore FILENAME' (where FILENAME is the name of the backup file). If this finishes successfully, then type './Startmush' to start the game again. If you encounter problems at this stage, you have an installation problem. The most common is a problem with GNU dbm; this is likely the cause if you @shutdown, type './Startmush', and find that the attributes in your database are gone. If this happens to you, check your configuration and rebuild the netmush and dbconvert binaries, if necessary. ---------------------------------------------------------------------------- CONVERTING AN EXISTING GAME If you are upgrading from TinyMUSH 2.2, read the file 'CONVERT.TINY22' for instructions. If you are upgrading from TinyMUX, read the file 'CONVERT.MUX' for instructions. ---------------------------------------------------------------------------- COMPATIBILITY TinyMUSH 3.0 is believed to be compatible with all major versions of Unix, including SunOS 4.1.x, Solaris, Irix, AIX, HP-UX, NetBSD, and Linux. There is no official Windows NT port, at present. The frequent releases of new Linux versions, the proliferation of multiple Linux development paths, and the incompatibility between multiple versions of the C header files and GNU C library incorporated into most current versions of Linux, make it very difficult to maintain "out of the box" 100% compatibility with every version of Linux. If you are on a Linux system, it is possible that you will need to make minor tweaks to the Makefile and/or autoconf.h, particularly if you are running a Linux release more recent than the release date of this server version. There is a known problem with gcc on 64-bit operating systems, including Irix 6. gcc fails to correctly pass structures of less than 16 bytes which are not exactly 8 bytes, padding those structures on the wrong end; this affects the inet_ntoa() call, which relies on such a structure. If you compiled using gcc, and find that all hostnames are resolving as '0.0.0.0' or '255.255.255.255', this is what's broken. Add a '-DBROKEN_GCC_PADDING' to the Makefile, or the line '#define BROKEN_GCC_PADDING' to autoconf.h, and recompile. Also, Irix may need HAVE_SRANDOM manually defined in autoconf.h -- for some reason, autoconf doesn't detect this properly. If you find that you need to make modifications to anything in order to compile successfully, the developers would like to know about it. Send email to tinymush-support@godlike.com with the output of the broken 'make' attempt, and a list of what you did to fix it. ---------------------------------------------------------------------------- SYSTEM REQUIREMENTS The hardware requirements are minimal, by the standards of modern Unix servers. You will need a machine with at least 16 MB of physical RAM, and at least 10 MB of available disk space for the game. The RAM requirements (actual RAM used) typically vary between 2 and 15 MB; unless your game is huge (more than 50,000 objects), cache tuning should ensure that you do not consume more RAM. The network bandwidth needs are minimal; even with a very large MUSH, it is unlikely that you will pass more than 25 kbps. The average MUSH user transfers fewer bytes in an entire session, than does someone viewing a single typical web page. However, if you plan to run your game over an analog dialup connection (typically 14.4 kbps - 56 kbps), be aware that latency will affect the number of commands that have queued up interactively over a given timeslice, and that you should increase the queue_active_chunk config parameter. It is important that you allocate enough disk space; should you ever run out of it, you will end up with serious database corruption. If your disks are close to capacity, make sure that you do frequent backups. There are no significant security concerns involved in running a MUSH on a server, save for possibly increasing its "visibility" on the Internet and therefore making it the target of more attempts to breach the system's security. The MUSH server can run comfortably in a chroot'd environment, and does not provide any players with access to the filesystem or underlying system. Nonetheless, you should also obtain the consent of your systems administrator before running a MUSH on a system. Virtually all Internet service providers ban the running of MUDs on their shell machines. Therefore, you will probably need either a MUD hosting service or a personal server, if you plan to run a public game.