Project: Real-Time Strategy (RTS) Game
Overview:
In this RTS, you take on the role of an Army Commander tasked with leading your troops to victory. Strategically place your units on the battlefield, issue orders, and adapt your tactics in real time as you face off against enemy forces in large-scale engagements.
Key Features:
Unit placement and formation-based deployment system
Real-time tactical combat with melee, ranged, and AoE troops
Dynamic AI-controlled enemy behavior
Intuitive UI and point-based army deployment system
Time Frame: 8 weeks
Summary of responsibility's:
This was a solo project where I designed and implemented all core gameplay systems, excluding the art assets. The game is a real-time strategy experience focused on strategic unit placement, intuitive controls, and dynamic combat. My key contributions included:
Army Placement & Resource Management
Built a grid-based system for deploying units strategically across the battlefield
Implemented a point-based resource mechanic that checks unit costs before placement
Enabled dynamic placement and removal of units with real-time visual and logical updates
Unit Control & Command Systems
Developed single and box selection mechanics for flexible troop control
Created a movement system with ghost formation previews showing future unit positions
Added functionality to command units to move or attack with intuitive mouse-based inputs
Combat & Health Systems
Implemented melee, ranged, and long-range attack behaviors with appropriate cooldowns and logic
Built projectile mechanics and AoE logic for ranged and special units
Managed unit health tracking, damage resolution, and death conditions for all troops
UX & Visual Feedback
Designed interactive feedback for unit selection, formation movement, and attack targeting
Visualized health status, movement intentions, and attack actions for improved clarity and immersion
I built a centralized UnitManager that tracks and controls all player and enemy units using two dictionaries. Key responsibilities include:
Automatically updating unit behavior and UI in timed intervals using async loops
Dynamically enabling/disabling animations based on camera distance for performance optimization
Providing utility methods to add, remove, or query units during runtime
Implemented as a singleton to ensure global access and persistence across scenes
This system helps decouple logic from individual units and ensures scalable control in real-time scenarios.
Manages the local state, navigation, and positioning logic of individual troops within a unit.
Key responsibilities include:
Tracking each troop's current state (idle, moving, attacking) using a central status dictionary
Handling troop-level navigation via NavMeshAgent to target enemies or keep troop in formation position
Updating troop behavior in response to combat events or external commands
This component enables responsive and autonomous troop behavior while delegating combat logic to UnitAttackBehaviour.
Handles all combat logic and engagement mechanics for a unit's troops.
Key responsibilities include:
Maintaining attack data per troop (target, cooldown, type) using dictionaries
Executing melee, ranged, or AoE attacks based on troop type and range checks
Managing projectile behavior with coroutine-driven bullet logic and pooling integration
Ensuring efficient combat resolution using async timers and conditional updates
This system decouples attack logic from the unit controller, ensuring flexible and scalable real-time combat across multiple units.
Responsible for dynamically spawning and organizing troops into structured formations based on unit data.
Key responsibilities include:
Generating troops procedurally based on formation, width, depth, and spacing
Instantiating and positioning troop placeholders and visual models using offsets for centering
Linking each spawned troop to its formation spot, NavMeshAgent, animator, and metadata for future use
Supporting modular troop layouts by separating visuals, logic, and transform hierarchy
Passing all initialized data to UnitBehaviour for runtime control and combat coordination
This script highlights spatial logic, procedural instantiation, clean separation of data and visuals, and strong collaboration between systems. It demonstrates competency in formation management and dynamic setup at runtime.