Project 4

CS 320

75 points, due Apr. 22, 2005

Design a small maze, based on several rooms that fit into a grid. (Rooms will be simpler to deal with than hallways.) Optionally, we can discuss generalizing the 2-D maze. Your display should provide a small overhead view (with some indication of what direction the viewer is looking toward) and an immersed view. As mentioned earlier, it would be ``really cool'' to be able to drag the overhead view around. An alternative (probably better) would be to create a second window for this view. Put a few obstacles in each room as well as using two balls (spheres) which roll around the maze. Here are some design parameters:

  1. Modular design and literate documentation. Documentation should include a user guide, explaining how to play the game.

  2. Your collision detection and rendering should be ``smart,'' as we'll discuss.

  3. Minimize the number of ``building'' blocks used. Use display lists as much as possible.

  4. Movement:
    1. Up arrow: forward one unit.

    2. Down arrow: backward one unit.

    3. Left arrow: rotate left 1/16th of a turn.

    4. Right arrow: rotate right 1/16th of a turn.

    (To eliminate floating point round-off errors, store the rotation position as a small integer and convert that to radians as necessary.)

    You may modify the keys assigned to movement and add additional keys to follow gaming conventions. Make sure to document this in your user guide!

  5. Include a ``zombie'' which slowly and weakly follows the viewer. If the zombie ever collides with the viewer, the ``game'' is over. The zombie should have the general shape of a human and has the power to pass through walls.



Thomas P. Kelliher
Sat Apr 9 12:51:02 EDT 2005
Tom Kelliher