Skip to content

A17PRO/Survival-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧟‍♂️ Survival Game

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!


✨ Features

  • 🌊 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.

🎮 Controls

Action Key/Input
Move W A S D / Arrow Keys
Dash Left Shift
Shoot Mouse Left Click

🚀 Getting Started

Prerequisites

Installation & Playing

  1. Clone the repository:
    git clone https://github.com/A17PRO/Survival-Game.git
  2. Open Unity Hub.
  3. Click on Add and select the cloned Survival-Game folder.
  4. Open the project in Unity.
  5. Navigate to Assets/Scenes and open the main/game scene.
  6. Press the Play button in the Unity Editor to start surviving!

🧠 Under the Hood (Technical Highlights)

  • 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, and ChunkManager singletons for easy, optimized global access.

👥 Credits

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!

About

A fast-paced 2D wave-survival game built with Unity and C#. Survive endless hordes of diverse enemies in an infinitely generated world! Features fluid dashing mechanics, dynamic shooting, and a performance-optimized chunk loading system.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors