WHAT IS CROSSFIRE? This is a multiplayer graphical arcade and adventure game made for the X-Windows environment. It has certain flavours from other games, especially Gauntlet (TM) and Nethack/Moria. Any number of players can move around in their own window, finding and using items and battle monsters. They can choose to cooperate or compete in the same "world". REQUIREMENTS You will need UNIX, X-windows and an ANSI C compiler to compile this game. COMPILING Crossfire has been known to compile on the following systems (latest known version number of Crossfire that compiled on these systems is included in parantheses): o Sun3, SunOs 4.1.1, gcc (0.90.3) o DEC300AXP-500 (Alpha with OSF1 1.3) (0.90.3) o Sun4 with SunOS 4.1.3 (0.90.2) o Ultrix 4.2a (0.90.1) o IBM RS/6000 with AIX 1.2, X11R4 (0.90.2) o PC Compatiable, with Linux (0.89.3) o HP735, HPUX, X11R5 (0.90.2) o DEC 3100 and DEC 5000 with ULTRIX BSD 4.2 o DEC with OSF1 o VAX3100 with BSD 4.3 o IBM RT with BSD4.3 o HP9000-series (HP-UX) (very old versions of HP-UX might barf on stdarg.h) o MIPS with RISC/os o (UMIPS) 4.52 (?) It has been compiled with X11R3, X11R4 and X11R5 (the editor requires X11R5). To get directions on compilation, read the INSTALL file. USAGE There are several ways of playing this game, and they depend on wheter or not you defined SERVER in inlucde/config.h. If you commented it out, you can only play by running crossfire. Type "crossfire " to play. The first display defaults to your DISPLAY environment variable unless you specify the -l option. If you left it defined, you can alternatively play by starting crossfire as a server in the background; type: "crossfire -server". Then you can use "crossclient" to connect to the game. If you are running the server on a different computer than the one you're sitting on, then run crossclient on your local computer, and specify the server with the "-server " option. Also try "crossclient -c sc". You can also use the "crossloop" shell script which restart the server in case it crashes, and which logs output to /tmp/crosservlog. If crossfire can't find the font "crossfire", and failed to set the fontpath to FONTDIR, it will try to use pixmaps instead. This means that it will read all the files in the LIBDIR/bitmaps/ directory, which will usually take quite a while. Type "crossfire -h" / "crossclient -h" or read the man-page for information about the other options. New players can also be added by typing 'add once inside the game. (Though it's recommended that they use crossclient to add themselves) MAILING LIST There are two mailing-lists dedicated to the developement and bug-testing of crossfire. The first is for discussing bugs and features, the second is for announcing new versions. If you want to join or leave any of the lists, send mail to crossfire-request@ifi.uio.no with the subject "subscribe", "unsubscribe","subscribe announce" or "unsubscribe announce". If you use the subject "subscribe" or "unsubscribe" you will (un)subscribe to *both* lists. To send messages directly to the list, mail crossfire@ifi.uio.no. An archive of old messages can be found at ftp.ifi.uio.no in the directory /pub/crossfire/archive FTP SITES FTP-sites where you can look for the latest versions are: ftp.ifi.uio.no:/pub/crossfire (129.240.82.2) ftp.world.net:/pub/crossfire (192.243.32.18) yoyo.cc.monash.edu.au:/pub/crossfire (130.194.9.1) ftp.cs.city.ac.uk:/pub/games/crossfire/ Please use the one nearest to you. ".no" and ".uk" in Europe, ".au" in Australia, ".net" in USA. If you are setting up another site, please notify me. REPORTING BUGS First, check the INSTALL file for common problems, and see if yours is mentioned. When reporting bugs, make sure you include the following: o What version of crossfire did you use? o What type of computer did you use? o What release of the operating system did it have? o What windowing system are you using (Ie, openwindows, X11R6, etc) o What compiler (and its version) did you use (ie, gcc, acc, etc)? o Which flags did you give it? o If the bug happens when compiling crossfire, send an EXACT copy of the compiler line, as well as the errors it puts out. Sending bugs of the sort 'it failed with a line like ...' doesn't help any. o If the bug happened while running crossfire: - Include any output before to the bug. - Give a short description of what you did before the bug occured. o If you managed to compile Crossfire, include the output of "crossfire -o". Lack of any of this information in a bug report can make that bug report useless. Also, if you have a bug, make sure you are using the latest version. If you report a bug that has since been fixed, you are not likely to get any help. Note: If you can not reproduce the bug, and lack the skills/knowledge necessary to run a debugger to find out where it crashed, chances are there is little I can do to help. Note2: I only have a sun 3 (with sunos 4.1.1 and gcc) for developement. As such, if you have problems compiling on some other type of systems due to header files or similar system dependant things, I am not likely to help out that much. Note3: If you have core dumps, or trouble compiling on whatever system, and are able to give me a guest account or something similar to log onto your system to poke around with the code or core dump, I will likely take you up on your offer. If you make such an offer, I will assume that you have oberyed whatever usage rules/policies are applicable for your site. Mail the bug report to master@rahul.net, or crossfire-bugs@ifi.uio.no ------------------------------------------------------------------------------ SUBMITTING PATCHES: If you have added new features to the game, or fixed a bug, I am interested in the patches. A few guidelines: 1) Make a diff file of the changes. Try to only make a diff file of the pertinent files (ie, I don't need to see all the changes you might have made to your config.h file, unless you add new options.) Make a context diff. 5 lines of context if preferable to the 3 default lines. To do this, do: 'diff -c5 (oldfile) (newfile)' You can also do diffs of entire directories. Do do this, type: 'diff -c5 -r (old_directory) (new_directory)' An example: 'diff -c5 -r crossfire-0.90.1 crossfire-0.90.2'. This will create a context diff of all the changes made between version 90.1 and 90.2. Note that this will not include new files, but will include a message saying that a file exists in one version and not the other. Also note that if you do a diff at the top level, diffs will be created for the various font and archetype files in the lib directory, greatly increasing the size, and not containing any useful information. If send new files (archetypes, or source files), shar archives, or uuencode tar archives (compressed or gzip'd is fine), are the preferred method. NOTE TO DEVELOPERS: If putting debug messages in your, #ifdef with a local define (ie, #ifdef INPUT_DEBUG or #ifdef TREASURE_DEBUG). Don't use the generic DEBUG variable -- If everyone uses that, it just creates to much output, and becomes meaningless. Using local defines makes it easy to turn on debugging information on that area of code, or likewise, turn it off, if it appears to work correctly. 2) Try to keep patches for different things separate. That is to say if you have made changes that fixes some monster code, and other changes that fix spell code, submit these as two separate patches if at all possible. This makes it easier for me to look through them and understand what the patches are changing. It also makes it easier to not use the code if I don't like it. 3) If adding new fields/variables to structures, use the (u/s)int(8/16/32) typdefs (see top of structs.h). All the old old structures should probably be converted to use these, but definately, any change to the structures should use this. Mail all patches to master@rahul.net COPYRIGHT Don't get scared by the below, it's included just for "safety" reasons 8) (Don't want anyone to start selling the game) Copyright (C) 1994 Mark Wedel Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to master@rahul.net