Discipline
In this project, I serve as a Game System & Architecture Designer. My primary contributions include:
​
-
Object Pooling System
-
Base Classes for Enemy and Turret
-
Event system
1. Object Pooling System:
I implemented an Object Pooling system to save computational time. Constantly instantiating and destroying small objects like bullets and enemies is expensive. By using a pooling system, I can reuse a small number of prefabs repeatedly. This approach incurs only minimal additional memory usage but results in significant CPU time savings.
​
2. 1 Enemy:
I employed interfaces and other script components to implement various functions such as movement, path switching, death handling, slowing, burning, and knocking off the path.
​
2.2 Turret:
There are four types of turrets in the game:
1. Bullet Turrets: These turrets shoot bullets and missiles.
2. Area Damage Turrets: These turrets deal area damage.
3. Laser Turrets: These turrets fire lasers that cause continuous damage.
4. Stone Thrower Turrets: These turrets throw stones, which can knock small enemies off the path and instantly kill them.
​
3. Event System:
I utilized C# delegate methods to decouple the project. While quick and practical for small projects, it may not be sufficient for larger ones.
​