Project Overview
Narrative: Defend your castle against incoming waves of enemies. Build roads, towers, and collect resources to expand your kingdom. Unlock new territories and fight enemy strongholds to continue your conquest.
Features: Game features one endless level, generated from a randomly selected CSV file. Game is endless, measured by high score. Players can build roads and a variety of towers with various abilities to fight the incoming enemies. Players can collect Exp Points to level up and unlock new areas of the game map
This project was made as a personal project to showcase common core features for a game. 

Conquest Castle - Game Demo

Details 
Personal Project
Genre: Tower Defense
Engine: Unity / C#
Platform: Console / PC
Status: In Progress
Key CONtributions and Development

Implemented core game systems: Singleton Manager Classes 
- Game Manager: Finite State Machine managing game states (Start, Running, Pause, End)
- Audio Manager:  Responsible for loading, playing, and controlling music and SFX
- Event Manager: Using broadcaster design pattern, responsible for sending events to subscribed classes
- Scene Manager: Responsible for loading and changing scenes 
- Object Pool Handler: Creates object pools for desired game object, handles enqueuing and dequeuing 

Developed main gameplay components, consisting of: 
- Game Controller: Responsible for setting up game logic, initiating systems, and managing gameplayer objects
- Map Generator: Generates map from CSV file and spawns corresponding tiles 
- Road System Controller: Handles road tile placement, determines road tile using rule tile algorithm , and rebuilds Nav Mesh
- Build Controller: Handles placing and removing of road and tower tiles ​​​​​​​
- Menus and UI: Start, settings and pause menu controllers, level and Player HUD