RTS AI Dissertation - Unity C#
Dissertation: a Unity C# RTS prototype with an AI opponent that plays believably like a human, using configurable ScriptableObjects for tuning.
Sole Developer / Researcher | Unity | 2026 | Tools: C#, Unity, ScriptableObjects
This final-year dissertation built a real-time strategy prototype in Unity with C# and researched how to create an AI opponent that plays believably like a human. The AI manages resource collection, base building, and unit command in a way that feels natural and appropriately challenging - not omniscient. ScriptableObjects allow all AI behaviours and statistics to be tuned without any structural code change, demonstrating the configurable, modular design approach central to my practice.
The Research Question
Standard RTS AIs cheat: they react instantly, have perfect information, and exhibit superhuman patterns that break immersion. This dissertation asked: can an AI win at the right difficulty and still feel like a person played it? The research surveyed believability literature and applied it to a functional game prototype.
Architecture
Built a hierarchical AI in C# using finite state machines at the tactical layer with a goal-oriented planning layer above it. Simulated human imperfection was introduced through configurable reaction delays, information fog, and intentional sub-optimal moves calibrated against playtesting data. Unity ScriptableObjects act as data containers for all AI parameters, enabling any behaviour or statistic to be adjusted by designers without touching underlying logic - a pattern I apply consistently across my Unity work.
Results
Playtesters rated the AI as "human-like" in blind testing at the target difficulty. The prototype scales to multiple difficulty presets by adjusting a single imperfection coefficient in the relevant ScriptableObject. The dissertation received a distinction-level mark.
Highlights
- Hierarchical AI: goal-oriented planning over tactical FSMs
- Simulated human imperfection: reaction delay, info fog, calibrated sub-optimality
- ScriptableObject-driven parameter tuning - no code change required
- Blind playtest: testers rated opponent as human-like at target difficulty
- Distinction-grade dissertation mark