Overview
This project was created in Visual Studio using C# language. The goal was to create a clone of the 1978 arcade classic, Space Invaders, but through design patterns.
Highlights
Management System via Singleton, Object Pool, and Template Method patterns.
Sprite System via Factory and Proxy patterns.
Optimized Collision System using Composite, Visitor, and Iterator patterns.
• system groups game objects in Axis-Aligned Bounding
Boxes (AABBs)
• bounded area (parent) is checked before checking
children
• reducing redundant collision checks per frame
• system groups game objects in Axis-Aligned Bounding
Boxes (AABBs)
• bounded area (parent) is checked before checking
children
• reducing redundant collision checks per frame
Post-Mortem
This project was a result of an intense 10 week Real-Time System Architecture graduate course at DePaul University. This was one of the biggest projects I have attempted. Many of my previous courses were more focused on theory and had minimal coding. This course required me build nearly the whole project from scratch. The sheer amount of coding was a bit jarring at first, but the experience overall was an enjoyable challenge. I also learned a fair amount about design patterns. It serves as a good reference point to tackle future development problems. Also a good point in which to discuss development problems.
I captured the basic game mechanics of Space Invaders, but it lacks a few features that could push it further. If I were to continue to expand the project, I would add the two-player functionality. I would also include death animations like shield dissolve, alien or missile explosions. Include a cleaner alien bomb drop possibly using the state pattern versus a brute force calculation per update. I also would add transition screens and a credit system to make it more accurate.
Documentation