Our project is a cell shaded zombie shooter. For the project we implemented a cell shader, full collision detection (along with a collision detection debugger), a map parser, hierarchical models and animations, and plenty of game elements to make it fun.
A nice picture that demonstrates the cell shading on the bunny. We shoot the bunnies in the facing direction. They are represented by the Bullet class, and interact with all objects by destroying themselves on contact, and interact specially with Zombies by damaging them.
These are close up shots of the monument to show the detail in the cell shading. The dragon and the torus are both complex objects that show the cell shading well.
This is a Zombie at full health and once damaged. Each zombie has a semi-random skin colour, but all of their clothes are the same. Each shirt starts brown, representing full health and gains a red tint to represent a loss of health. Zombies are hierarchically modeled, and are also animated hierarchically, with arm and leg motion.
Monuments are used as healing stations in our world. As the player nears a Monument it turns from red to green to indicate the proximity. If the player is near enough to the station it will begin to heal them until they are at full health.
The sky colour represents the player's health by editing the glClearColour. As the player loses more health, the sky gains more red; and as the player heals, it loses redness (becomes more cyan).
Zombies move toward the camera and when in range, they attack the player, dealing damage to the player. The collision detection between the zombie and the player is one way (the zombie reacts to the player, but the player doesn't react to the zombie). This means that the zombie will stop moving toward the player while attacking, but the player can still move through the zombie, so that the player can still move easily around the world. (The zombie trains are a little reminiscent of the Black Ops: Zombie mode "rape trains")