Click the image below to watch the demo video:
This is a 2D platformer prototype inspired by MegaMan, developed in Unity using C#.
The project focuses on:
- Player movement mechanics
- Shooting system
- Enemy spawning architecture
- Object Pooling for performance optimization
- Score system and explosion damage logic
This project was built to practice clean system design and performance-aware gameplay programming.
The player can:
- Move left and right
- Jump
- Shoot bullets
- Take damage from enemies or explosions
There are 2 enemy types:
- KillerBomb
- Pepe
Enemies are spawned continuously from a vertical spawn line on one side of the screen.
Spawn system features:
- Random enemy selection
- Adjustable spawn probability
- Random spawn position along Y-axis
- Spawn controlled by coroutine timer
- Player bullets damage enemies.
- When enemies are defeated:
- They explode
- The explosion area can deal damage
- The player gains score points
- Enemies are returned to the object pool instead of being destroyed.
Each enemy type uses its own ObjectPool.
Features:
- Pre-instantiated objects
- Auto expansion up to max size
- No runtime Destroy calls
- Enemies return to pool when defeated
This prevents performance spikes caused by frequent Instantiate/Destroy operations.
- Single Spawn Controller
- Spawn occurs along a vertical line
- Spawn height is configurable
- Enemy type selected using probability percentage
- Enemies trigger explosion effect when defeated
- Explosion has an area of effect
- Damage can affect nearby entities
- Encourages positional gameplay
- Coroutine-based timed spawning
- No unnecessary object destruction
- Reusable bullet & enemy objects
- Designed with mobile/hyper-casual optimization mindset
- Wave-based spawning system
- Dynamic difficulty scaling
- UI improvements
- Sound effects and polish
- Mobile build optimization
- Boss enemy implementation
- Unity (2D)
- C#
- Coroutine-based systems
- Custom Object Pool implementation
Through this project, I practiced:
- Clean spawn architecture
- Performance optimization with pooling
- Area damage logic
- Probability-based enemy spawning
- Inspector-driven system configuration