Welcome to a modular and high-performance top-down shooter built with Unity’s ECS (Entity Component System) and DOTS (Data-Oriented Technology Stack). This project is a perfect example of scalable gameplay where systems, components, and entities work together to deliver dynamic game mechanics.
Entity-Component Architecture
Modular systems that separate logic and data for better performance and flexibility.
Player Mechanics
- WASD or joystick-based movement
- Direction-based animation
- Ranged plasma blast attack
- Health and gem UI integration
Enemy AI
- Automatically tracks and moves toward the player
- Attack with cooldown system
- Drops gems when defeated
Gem Collection
- Pick up system with collision detection
- Real-time UI update
Camera System
- Smooth player-following using singleton-based camera reference
Game UI
- Pause/resume system
- Game over screen
- Dynamic gem and health UI
| Script | Description |
|---|---|
PlayerAuthoring.cs |
Sets up player ECS components and attack logic |
EnemyAuthoring.cs |
Defines enemy behavior and damage logic |
EnemySpawnerAuthoring.cs |
Controls periodic spawning of enemies |
PlasmaBlastAuthoring.cs |
Player's ranged projectile system |
GemAuthoring.cs |
Logic for collectible gems |
DestroyEntitySystem.cs |
Central cleanup system for ECS entities |
GameUIController.cs |
Manages UI interactions, pause/game over |
PlayerAnimationManager.cs |
Controls directional movement animations |
- Unity 2022+
- Entities Package
- Input System Package
- DOTS Physics Enabled
- Clone the repository.
- Open the project in Unity.
- Ensure all systems (Player, UI, Camera, Enemy, etc.) are placed and referenced correctly in the scene.
- Press Play and survive as long as you can!

