High Level Engine
Working in teams, develop a moderately complex game such as: Centipede, Galaga, Missle Command, Tetris,ChuChuRocket, Defender,Super Mario Bros, Geomerty Wars, or one of your own that is of similar complexity. You should empahsize the code's design and the game's playability over the looks and artwork of the game. The game's mechanics need not be your sole focus --- they can be less sophiticated if you emphasize the complexity of another aspect of the game such as making shopping levels, a scrolling world, post-level bonus calculations, or chained game goals. However, at a minimum, the game should have a variety of players/items, power-up style modes, and at least three levels. Finally, to help debug your games (and for me to play your games :), it should include a number of useful cheat keys.
Your game should use as many of the packages in the VOOGA Game Engine being developed by the class as possible and compile and run with the GoldenT Game Engine. It should be an example of good code design (which is encouraged, hopefully, by the class' API), specifically following the course's design conventions to emphasize the Open-Closed Principle and minimize the number code smells. In particular, since you will be given multiple chances to extend these games in the future, make sure that the code is designed so that extensions to the game play are easy to make and require changing as little code as possible. It is better for code extensions to be implemented with new code that extends old code rather than changing old code.
Resources
- Teaching Design Patterns Through Computer Game Development by P. Gestwicki and F. Sun
- Comparing Computer and Traditional Games Using Game Design Patterns by S. Loh and S. Soon
Deliverables
- Sunday, October 3. Update VOOGA Game Engine API
- The code in the merged repository must compile and run with the GoldenT Game Engine
- Friday, October 8. Running version of your game
- In writing your game, you may need to update the class' Game Engine API, these changes should be discussed with the class