============================================================================== CPSC 414 Assignment #3 README April 10, 2004 ============================================================================== Author: Malcolm Liu Assignment Description ====================== This assignment is a simple 3d shooting game. The goal is to kill as many zombies as possible and to stay alive. You score points for killing zombies, but the more zombies you kill, the tougher the new zombies become. Some of the graphical features this game includes are: - Jointed, animating, texture mapped meshes. - 3D outdoor terrain. - Ray intersections against deformable meshes. Running under Linux =================== - Run 'make' to compile the project. - Run 'game' to begin the game. - Or, run 'game 1024 768 fullscreen' to run in fullscreen mode, for example. Game Controls ============= * Player Controls * Left-click on ground Move to clicked location Left-click on zombie Shoot at zombie Right-click on ground Shoot at ground Right-click on zombie Shoot at zombie * Camera Controls * Hold middle mouse button + Rotate camera move mouse Arrow keys Rotate camera Page Up Move camera closer, smoothly Page Down Move camera farther, smoothly + Move camera closer, stepped - Move camera farther, stepped * Miscellaneous/Debug Controls * R Restart Game Esc or Q Quit Game P Pause Game T Show/hide last clicked point I Toggle invincibility '?' Show/hide frame rate S Show/hide skybox background Gameplay Tips ============= - Your character tries to shoot as close as possible to the location you click at the time you clicked there. If the target moves away from that location you will probably miss. Its easiest if you try to aim for the middle of a zombie's chest. - You inflict extra damage if you hit a zombie in the head. - Moving the camera to a better position can make aiming easier. Its easiest to aim at a zombie that is facing directly toward or away from the camera. Compilation Notes ================= - Compiling with Visual C++ 6 Debug configuration will result in many warnings about debug information being truncated. These warnings are due to Visual C++'s STL implementation, and can be safely ignored. - Visual C++ 6: Please be sure to use the 'Release' configuration, which includes optimizations for best performance. Known Bugs ========== - In Linux, there may be an occasional a segmentation fault during the game. (Although I think I fixed it). - There is no player-to-zombie collision detection. - It is possible to stand in locations on the terrain where zombies cannot hit the player (due to differences in height). - Performance is fairly poor. The program does not make effective use of rendering hardware, e.g. by using hardware vertex buffers. Credits and Acknowledgements ============================ Uses GLM 1.2 - a matrix/vector math utility library by Markus Ilmola - http://markus_ilmola.tripod.com Contains implementations of intersection algorithms described in "Real-Time Rendering" by Thomas Moller and Eric Haines (ISBN: 1-56881-101-2) Meshes and animations created using Milkshape 3D 1.7.0 by chUmbaLum sOft - http://www.swissquake.ch/chumbalum-soft/ Human reference images obtained from - http://www.josh.ch/joshch/tutorials/milkshape,modelling-human-leg.html Makes use of some textures from Paul Bourke's texture library - http://astronomy.swin.edu.au/~pbourke/texture/ Additional texture work by Helen Wong - whylala@hotmail.com Skybox background textures created using Terragen - http://www.planetside.co.uk/terragen/