Space ship in 3D maze phase 2
Due Date: Monday December 4th 2006
Idea:
You are going to work on preparing version 2.0 of assignment 3. So you will
fix bugs and refactor/redesign your code so that it will be easy to add
the features needed in version 2.0. Note: you are not writing
version 2.0, you are doing version 1.1 that lays the groundwork
for the next version.
Assignment 4 specifics:
- Redesign the code so that it is more extensible;
make sure the code contains internal documentation concerning the
important design points (30%)
- Justify your redesign in writing (20%)
- Fix problems found in your assignment 3 (20%)
- Provide unit tests for your project (20%)
- Follow submission guidelines (10%)
Version 2.0 Features:
- Add computer controlled enemy ships and weapons to maze
- Add mines to maze
- Add destructable walls
- Add two player versus mode
- Add gravity
Unit Tests:
- Test of ODE integrator
- Test of collision detection routine
- Test of file input routines
- Test of file replay
Design Justification:
- Document the APIs of the modules exposed by version 2.0 features, as well
as the modified APIs of previous modules (ie give an MIS).
- Justify how your current design will allow those features to be added easily
Submission Requirements:
- README file containing notes on what libraries you used and how to get them (if not included)
- README must include instructions on how to use the game
- REFERENCE file containing notes on what references you used. This includes books, web pages, discussion with friends, etc. This is an 'engineering journal'.
- Makefile or build script or detailed instructions on how to compile
- Source code
- Sample user input files for both scenarios
- Must be submitted as a single file (zipped or gziped archive).
Notes:
- You don't have to implement the version 2.0 features, just justify why your software design allows them to be added easily
- Any programming language can be used
- Recommend using pre-written linear algebra and ordinary differential equation integration libraries
Hints:
- Collision Detection unit test could consist of testing cylinder and cubes for intersection with GJK at predetermined locations.
Bonus: (implementing any/all of these features will be worth extra marks)