Naval Warfare - Dissertation Artifact

Project Introduction

As part of my final year, I was required to write a dissertation. The topic I chose to research was how to create more challenging AI opponents in RTS games. Being an avid RTS player myself, I am disappointed that the majority of playable titles resort to letting the AI cheat to be more "difficult" to play against

Therefore, researching methods to make AI opponents difficult without cheating was very interesting to me. Alongside my dissertation, I required an artifact to test my hypothesis. Rather than testing these methods on exisitng games like Starcraft, I decided to develop my own RTS game from scratch to help understand the full development pipeline of RTS games.

Project Info

  • Role: Project developer and researcher
  • Team Size: 1
  • Time Frame: 24 weeks
  • Engine & Language: Unreal with C++

RTS Game Mechanics

Rather than creating an RTS game following the Age of Empires or Starcraft structure of building everything from the ground up, I opted to mimic the Skirmish mode from Star Wars: Empire At War. This mode has short skirmish matches where players gain constant income and have to destroy their enemies shipyard to win. Player's could increase their income by capturing resource mines across the map which are a main point of conflict as whoeever has the strongest economy would likely win. Emulating this game-mode required a shipyard to build units from as well as the typical multi-select, drag select and unit grouping seen in most RTS titles.

AI Opponent Breakdown

As for the AI opponent, having never developed AI before, this required extensive research on how RTS AI bots were typically structured. In the end I settled with breaking down each major task the bot needed to do and assignging it to an individual manager. These would all communicate for example the resource manager would order the combat manager to attack the player's resource mines if they had more than the AI.

I also required a good combat prediction system so the AI did not just launch ships into battle aimlessly. I used an adapted version of Lanchester's law of modern warfare to account for ranged units. Now the AI could predict whether or not it could win the current engagement and retreat if it could not.

Lastly, I used dynamic difficulty scaling to adapt the AI's difficulty at runtime. An equation was used to see if the player was ahead or behind, depending on the value returned, the AI's income multiplier would be increased or decreased, which would buff or hinder the AI. As a result, modifying the difficulty. This was done so players had a constant challenge throughout the game depending on their skill level.



  • Project Image
  • Project Image