Yo-Zombie is a 2D single-player survival game.
To better manage the flow of the game, I structured the game states using the State-design-pattern.
I have also implemented a polymorphic system for enemies and weapons to allow each type to have unique stats and behaviours.
To maintain performance and manage memory usage, I applied the Object-pool-pattern for the enemy, bullet and grenade spawning so instances can be recycled in a fixed pool. This avoids repeatedly allocating and deleting them one by one.