CPSC414 Project 3 Codename Track Recent Changes: Dec 5, 2003: 1:52PM - changed Missile model from Spike to Bomb - sounds for laser and missile launch added in - provision for more sound effects WARNING: Cross-platform compatibility issue The Track program utilizes some Microsoft DirectX functions, primarily for input and sound. There are no provisions for cross-platform compatibility. The source will NOT compile (nor run...) under any circumstance in the *nix environment. INTRODUCTION: Track is a video game tribute to "rail-shooters" from the past. The player has no control over the flightpath and just follows a pre-set path over the gameworld, all the while shooting everything that moves. (A recent rail shooter-type game is the Panzer Dragoon series from SEGA. They released Panzer Dragoon Orta for the Xbox console in early 2003.) GAME: The object of the game is to survive for as long as possible. You only have to keep enemies' missiles from hitting you. You can also kill enemies, but they are set on a respawn cycle. After a set amount of time, they respawn after being destroyed. HITPOINTS AND SCORING: Every object in the game world has a set number of "hit points". This is used to keep track of damage dealt, as well as scoring for the player. A player's score is determined by the amount of hit points an enemy has when it is destroyed. So, if an enemy has 250 hit points, the player is awarded 250 points for destroying it. BASIC GAMEPLAY: Once the game starts, the player is following a path through the game world. All enemies are flying through the world as well, and it's your job to destroy them. You can look around the world by moving the mouse (view is reminiscent of mouselook from Doom/Quake/virtually any FPS game) Clicking with the left mouse button fires a guided missile at the target in your sights. A missile flies slowly, but deals 50 points of damage and tracks your target. Clicking the right mouse button fires a laser. It fires an instantaneous burst of coherent light to deal a whopping 5 points of damage to the target in your sights. It is used mainly for shooting down missiles headed your way. The game ends when you run out of hit points. The player can quit any time using the 'Esc' button on the keyboard. Functionality Implemented Required: 3D Viewing and Objects - 3D Game World, 3D Models User Input - Keyboard, Mouse Lighting and Smooth Shading - All models are smoothly-shaded Picking and Texturing - Picking used for basic shooting action (ie. Player can only shoot picked objects) - Heightmap is textured Additional: On-screen Display (HUD) - targeting cursor and on-screen score counter Path-following for mobile objects - mobile objects follow a set path specified in a configuration file Sound - background sound - Sound effects for firing weapons Collision Detection - missile weapon depends on collision with target detection for registering hits Keyframed Animation for multi-part models - used rotation angles for animation on spider 'mech object Text-based Configuration - used configuration files for: * game objects and nodes * flightpaths * animation (axis rotations, etc.) Functionality NOT implemented - player avatar/model - ground-based enemies (terrain-following) - restart game option Libraries/Code-snippets: Graphics - OpenGL, Glut (duh) Input - Microsoft (DirectInput), Glut Audio - Microsoft (DirectSound) Model/Mesh Loader - Nate Robins HeightMaps - Terrain Tutorial from Lighthouse3D Texture Loader - PNM loading function by Tamara Munzner (from Paintball++) - PPM loading function from Joseph Roy Santos (pretty much the same as the one from Tamara) Tutorials: Neon Helium - http://nehe.gamedev.net Gamedev References - http://www.gamedev.net/reference/ MSDN - http://www.msdn.com Lighthouse 3D - http://www.lighthouse3d.com Game Resources General: Google - http://www.google.ca Sounds: Obtained free music/sfx from these sites Sound America - http://www.soundamerica.com Partners in Rhyme - http://www.partnersinrhyme.com Videogame Music Archive - http://www.vgmusic.com The Recordist - http://www.therecordist.com Textures: Free textures 3D Cafe - http://www.3dcafe.com About.com: Free Metallic Backgrounds and Textures - http://metals.about.com/library/weekly/aa-background-gallery.htm Booga Holler - http://www.boogaholler.com/freeweb/freeweb.html Paul Bourke - http://astronomy.swin.edu.au/~pbourke/texture/ Models: Missile, Spike, Bomb, Guard - Joseph Roy Santos Spider - Matthias Peissl Copyrights infringed :) Bungie Studios - used main theme from Halo for background music - midi file acquire from Videogame Music Archive