A fast-paced 2D Top-Down Wave-Survival Game built with Unity and C#.
Survive endless waves of diverse enemies in an infinitely generated world!
- 🌊 Wave-Based Combat: Survive increasingly difficult waves of enemies. Each wave escalates in intensity, and the number of enemies scales as you progress.
- 🗺️ Endless Procedural World: Explore a seamless, infinite world powered by a highly optimized Chunk Manager that uses object pooling to dynamically generate the environment around the player without lagging.
- 🏃♂️ Fluid Player Mechanics: Features smooth WASD movement, robust health management, and a dynamic Dashing system with invincibility frames, trail effects, and cooldowns.
- 👾 Diverse Enemy Types: Face off against standard chargers, ranged projectile shooters, and more unpredictable boss-like foes.
- 🔫 Dynamic Shooting: Responsive gun mechanics for taking down hordes of enemies while staying on the move.
- 🛠️ High-Performance: Optimized with resource pooling for chunks and enemy spawning to maintain high frame rates even during intense hardware-pushing waves.
| Action | Key/Input |
|---|---|
| Move | W A S D / Arrow Keys |
| Dash | Left Shift |
| Shoot | Mouse Left Click |
- Unity Game Engine (Recommended Version: 2021.3 LTS or newer)
- Unity Hub
- Clone the repository:
git clone https://github.com/A17PRO/Survival-Game.git
- Open Unity Hub.
- Click on Add and select the cloned
Survival-Gamefolder. - Open the project in Unity.
- Navigate to
Assets/Scenesand open the main/game scene. - Press the Play button in the Unity Editor to start surviving!
- Vector Mathematics: Used extensively for normalized 8-directional movement, dash velocity, and projectile targeting to ensure smooth control.
- Object Pooling: Instead of instantiating and destroying GameObjects constantly (which causes lag spikes), the game reuses world chunks and enemies to drastically reduce garbage collection overhead and improve performance.
- Coroutines: Used for wave timers, dash duration, and cooldown management without blocking the main game loop thread.
- Singleton Pattern: Managed core game states using
GameManager,WaveManager, andChunkManagersingletons for easy, optimized global access.
Developed collaboratively by Aditya Mathew, Aaditya P Naick and Nachiket Prasad.
- Code & Mechanics: Aditya Mathew / Aaditya P Naick
- Art & Audio: Nachiket Prasad / Aaditya P Naick
Feel free to star ⭐ the repository if you enjoyed the game!