Carleton University - School of Computer Science Honours Project
Winter 2019
RTS AI Development
Alex Shulman
SCS Honours Project Image
ABSTRACT
The problem that this Honours Project is trying to solve is how to build an AI opponent in an RTS (Starcraft/Age of Empires) style game. This AI is designed not with the goal of playing the game optimally, but with the goal of being able to make real decisions throughout the game to guide it’s playstyle and to be an opponent that provides an engaging experience for the player, such that it would be ideally suited to be the AI used by the game developers themselves. This project is built inside of an RTS game named Shards of Roh I was currently developing, and thus is specially designed to work with that game, but the methodology it is using could be easily adapted for any game in the genre. The goals of this AI to provide the best opponent experience is that: - The actions it takes are rational. It doesn’t make blatantly poor choices that will detriment it’s playstyle. This does not mean that the AI plays optimally, but it’s choices have to be reasonable. - The strategies that the AI enacts need to have enough randomness in them that they will maintain being an interesting opponent, and not be entirely predictable. This needs to happen while having all possible choices obey rule 1. - The implementation of the AI must be devoid of any script that specifically instructs the AI to use certain strategies such as “build this building at this time” or “always start off by doing this”. All actions it takes must be self-directed. In addition, the implementation needs to be independent from the specific units, buildings, and research that the AI is playing with. This will be done in a manner such that the files that represent the unit, building, and research data can be modified, and the AI can understand that modification and reinterpret the purpose of that object when choosing what actions to take without any modification to the AI code directly.