Role Playing Game AI System
For this project our team was tasked to create an AI for an immersive role playing game that contains a modular ability system. The AI must be capable of interacting with the ability system effectively. The AI must be fair, and as such will be constrained by the same constraints as the players. It must have the same abilities, follow the same rules, and only operate on information that is also available to the players. Additionally, the AI must be capable of being an adversary or an ally to the player. We have implemented a basic routine-based approach to solve the problem. This approach uses a "Black Box" function to deduce a general course of action to take, such as an attack, defensive, or healing ability. Then, the routine decides on the best approach to achieve its goal and adds specific actions to an action queue. Additionally, we have added ability tags that the AI uses in order to understand what purpose each ability serves. With the use of such an approach, we hoped to create an AI that is both challenging and is immersive to play with or against. We performed manual testing by inserting our AI into various pre-defined scenarios. We have also documented our code with comments that explain the functionality of our code. Our deliverable content is mainly contained within the files "BlackBox.cs" and "State.cs" with small additions to other files. As the game is still in the process of development, much of its functionality is still incomplete. As such, we had to work around some missing functionality, such as incomplete character classes and abilities, by making some assumptions about the final vision of the client. Therefore, the Black Box and the routines will need to be modified as new functionality is introduced into the game in order to better make use of that new functionality.