tank 0.4 (c) 1996 Vincent S. Cojot. Jan 12th, 1997. This is the README for Tank 0.4a. SECTION 1 GENERAL INFO 1.1 INTRODUCTION 1.2 STATUS 1.3 WHERE TO FIND THE SOFTWARE. 2 COMPILING AND INSTALLING 2.1 Portability Notes 2.2 Performance Notes 2.3 Compiling tank 2.4 Installation for Unix/X11/OpenGL 2.5 Installation for Unix/X11/Mesa 2.6 Extra installation Notes 3 RUNNING TANK 3.1 Using the software 3.2 Keys 4 TECHNICAL NOTES 4.1 Possible problems starting the game 4.2 Varia 4.3 Thanks ============================================================================== SECTION 1 GENERAL INFO * 1.1 Introduction Welcome to Tank, an OpenGL-based network tank game for OpenGL and Mesa Capable stations. Currently, Tank only runs under X11 using either OpenGL or Mesa (with still a few display gliteches, due to some bugs in the game's code). * 1.2 Status Tank is still being worked upon but there is no release date for future releases. The author will gladly accept any patches, fixes, improvements sent to him and will incorporate them in the next release. * 1.3 Where to find the software The tank-0.4a package should be available from: http://www.info.polymtl.ca/~coyote or http://step.info.polymtl.ca/~coyote The first address is not likely to be available after May 1998 but the second one should remain active. However, tank's official www page will be on http://www.info.polymtl.ca/~coyote until then. ============================================================================== SECTION 2 COMPILING AND INSTALLING * 2.1 Portability Notes Tank has been written on Linux using Xinside's OpenGL package and has been used on RISC/6000 workstations. It was also test on some SGI workstations but not by the author. It is very likely to be able to compile perfectly on another workstation since none of the system calls are Linux-specific. To compile on a Big-Endian machine, please take a look at "Makefile.Linux" and to compile on a Little-Endian machine, use "Makefile.RISC6000" and define (-DSHIFT). The loading of Targa files is the only place where the Big/Litte Endian difference really matters. * 2.2 Performance Notes Tank was written on a Pentium 133 with 64MB of RAM and it was demonstrated on a Pentium 75 with 24MB but then it was too slow to be really playable because of the poor graphics subsystem. A good system to run tank is probably a Pentium 133 (the faster the better) with 24-32MB of RAM. It was best developped under Linux because of the speed of the Operating System but it ran best on workstations with a graphics pipeline. Under Linux, it is recommended that you leave the width and height of the game window to its default values (which also means you won't be able to see all of the messages displayed on the screen). On a graphically faster workstation, you can increase these values. Look in defines.h for: STARTUPWIDTH and STARTUPHEIGHT. Changing these to 512 and 384 is a good bet. (We used that on our RS/6000 workstations). Sound support is experimental, at best. To enable it, define -DSOUND. It expects a /dev/audio device so that it may "cat" an *.au file to it. Ugly, but that kinda works. It can slow down your game a bit on a slow machine too. * 2.3 Compiling tank You can skip this step if you are using one of the pre-built binaries (currently only available for Linux-ELF/Mesa). Typing "make" should give you a menu giving you a list of various platforms. To compile for OpenGL you will need the glaux library. If not installed on your system, you can get it from sgigate.sig.com in /pub/opengl. The file name should be opnegl.tar.gz. I have run into various version of the very same aux library and some versions did not have some of the functions that this game uses. If your version of libaux doesn't have AuxDrawStr() then get another version or use the one that comes with Mesa. To compile for Mesa you'll have to get Mesa 2.1 or later (it works on Mesa 2.0 too but you'll get slightly better results using Mesa 2.1) and install it in a subdirectory named "Mesa". Compiling with "make linux-mesa" or "make linux-mesa-elf" will recompile the Mesa library along with the game. If you already have Mesa, change the values of GLAUXLIB and GLAUXINC to the correct settings. If Mesa is already installed and compiled on your system, you can even remove the lines about Mesa compilation inside the main Makefile but you still need to set GLAUXLIB and GLAUXINC. In both cases, if you want to install in somewhere else than the default directory (/usr/games/tank-0.4a), you'll have to change TANK_HOME in defines.h and recompile. This will be supported through some kind of improved configuration interface in future versions. * 2.4 Installation for Unix/X11/OpenGL Cd to /usr/games and extract the source distribution. "make linux-opengl" or "make aix-opengl" should be able to perform the compilation. Currently, there is no binary distribution for RS/6000 workstations since I don't have access anymore to this kind of hardware. Therfore it is likely you could have to adjust some of the parameters inside the Makefile for RS/6000 hardware. This is probably just a matter of changing paths to correct values. * 2.5 Installation for Unix/X11/Mesa Cd to /usr/games and extract either the binary distribution or the source distribution. To build the source for Linux and Mesa, type either "make linux-mesa" or "make linux-mesa-elf". "make linux-mesa-elf" expects that you have Mesa shared libraries installed on your system. * 2.6 Extra installation Notes Installing the game in the default directory (/usr/games/tank-0.4a) requires root privilege but running the game doesn't require any specific privilege. ============================================================================== SECTION 3 RUNNING TANK * 3.1 Using the software Unlike games like doom and quake, you shouldn't leave the keys depressed in tank. Thank works with speed "increments" and not with keys depression. This means that one press of the forward arrow key will give you 1 m/s, two presses will give you 2 m/s, etc.. Keeping a key depressed will fill the event buffer queue and will make the game very difficult to control, especially on a slow machine. * 3.2 Keys arrow keys : Control motion of your tank. 1,2,3,4,5 : switches between various zoom angles. w : enable/disable wingman's view. q,e : rotate clockwise/counter clockwise wingman position. o : enable/disable aerial view. a,z : zoom in/out in aerial view. h : disable/enable Head-Up-Display. m : change shading mode (wireframe,shaded). t : enable/disable display of debug info. space : fire missiles. i : on-line help. f : enable/disable fog (not possible in network game mode). p : toggles between two kinds of floor. [ESC] : the Escape key exits the game. ============================================================================== SECTION 4 TECHNICAL NOTES * 4.1 Possible problems starting the game Sympton: All you see is: "Initializing......" and then it seg faults. Possible Cause: You do not have enough free memory available on your computer. Tank requires about 4-6mb of free RAM (on a 24mb Linux machine, under Openwindows and with some opened applications, I had to unload a few programs to make it start). Once the game is loaded, you will be fine as there is very little dynamic memory management during the game. ---------------------------------------------------------- Sympton: You see several references to "images" that the game attempted to load but was unable to find the files. Possible Cause: You haven't set the value of TANK_HOME in "defines.h" to a valid value prior to compiling the game. ---------------------------------------------------------- Sympton: You see a message stating: "sendto: Network is unreachable" Possible Cause: The hard-coded subnet can't work on your machine or you specified an invalid "-net" argument. By default, the game tries to use "127.0.0.0" as a default subnet, in order to reduce trouble for people using it in single player mode. If you want network gaming, you'll have to specify a "-net" argument. Be careful to kill the other process (the daemon) after such an error because this error only kills one of two process. The other remains loaded and may prevent tank from being re-started or from joining a network game. * 4.2 Varia As a non-native english speaker, I am willing to improve the english of the various help texts found inside the game so, if you notice mistakes, please send me the corrected sentences and i'll fix them.. :) * 4.3 Thanks Thanks to Linus Thorvals for this incredible Operating System and to Brian Paul for writing a free OpenGL implementation, thus allowing people without the real OpenGL to run OpenGL programs. Vincent S. Cojot coyote@info.polymtl.ca, coyote@step.polymtl.ca.