CS414 Assignment 3 Clayton Arnall Fraser Pogue We implemented a duck hunt game. The goal of the game is to kill all of the birds (don't forget the humming bird, he can be tricky to see). After all the birds have been killed a screen will pop up telling you how many seconds it took you to kill all the birds. To play the game: type make type duckhunt commands: mouse - use the mouse to look around the environment left mouse button - shoot the shot gun s - go backwards w - go forwards a - go left d - go right c - turn on collision spheres for animated objects i - invert the mouse control esc - exit Here is a list of functionality that we implemented: 1. A world camera with a mouse and keyboard interface 2. Animated Characters (ducks and humming birds) that are fully autonomous - ie. not scripted. At a given point in time, a bird may choose to either fly, land, takeoff, eat etc. This creates a more random and realistic environment since each time the game is played, the birds do different things 3. Spherical collision detection - the camera and all animated characters use spherical collision detection to avoid bumping into eachother. 4. Planar Collision detection - when the camera or an animated character is walking around, to avoid bumping into planar objects like walls, houses, and the world boundary, planar collision is used 5. Line collision is used for the gun to calculate when a bird has been shot. 6. Particle System - a particle system was created for the gun that shoots out pellets in a given direction with a deviance to give a random look. 7. Time Based animation - to account for various graphics card speeds, we based our animation speed on the frames per second rather than on a constant like in previous assignments. 8. Texture mapping - note we used the professor's texture.cpp and texture.h as well as we used his window init stuff in main (from the assignment 1 sample code). 9. Frustum culling - to speed up rendering we check if an object is in the viewing frustum before we draw() it. This increases the frames per second by at least 3 times.