A 2D Tower Defense game built with Unity 6 (C#) as an academic project at HCMUS (Ho Chi Minh City University of Science).
| Member | Student ID |
|---|---|
| Tran Thao Ngan | 22120225 |
| Phan Duc Quang | 20120359 |
| Huynh Huu Thuong | 21120393 |
Defend your base across 5 levels by strategically placing towers, casting spells, and setting traps to stop waves of enemies from reaching the end of their path. Each enemy that escapes costs you lives — lose them all and it's game over.
| Tower | Description |
|---|---|
| Archer | Ranged attacker |
| Catapult | Area damage |
| Wizard | Magical effects |
All towers can be upgraded through multiple levels, increasing their damage, range, and fire rate. Towers can also be sold for 50% of total investment.
| Enemy | Type |
|---|---|
| Bee | Fast flying unit |
| Goblin | Medium-speed ground unit |
| Wolf | Strong-health ground unit |
| Boss_1 | Boss with unique animations |
Enemy health scales with each wave and level for increasing difficulty.
- Slow Time (200 resources) — Slows all enemies by 50% for 5 seconds.
- One More Life (400 resources, one-time use) — Grants an additional life.
- Spike Trap (50 resources) — Deals damage to passing enemies. Lasts for 30 hits before breaking. Placeable on designated trap spots.
- 5 playable levels with wave-based enemy spawning
- 6 tower types with multi-level upgrade system
- Spell and trap systems
- Save/load game progress
- Pause menu with speed controls (0.3x, 1x, 2x)
- Full audio system (BGM + SFX) with volume settings
- Object pooling for performance
- Data-driven design using Scriptable Objects
- Engine: Unity 6.0.3
- Language: C#
- UI: TextMesh Pro + Unity UI
- Input: Unity New Input System
- Save System: JSON-based serialization
Assets/
├── Scripts/ # C# source code
│ ├── Enemy/ # Enemy behavior and types
│ ├── Tower/ # Tower, projectile, and platform logic
│ └── Utils/ # Shared enums and utilities
├── Scenes/ # Level scenes (Level1–Level5) + StartMenu
├── ScriptableObjects/ # Data configs for enemies, towers, levels, waves
├── Prefabs/ # Reusable game object prefabs
├── Sprites/ # 2D art assets
├── Animation/ # Animator controllers and clips
├── Audio/ # BGM and SFX files
└── Tiles/ # Tilemap assets for level design
- Install Unity Hub and Unity 6.0.3 (or compatible).
- Clone this repository.
- Open the project folder in Unity Hub.
- Open
Assets/Scenes/StartMenu.unityand press Play.