Open University BSc(Honours) Computing - Final Capstone Project (NPC1189)
For the final stage of my BSc(Honours) in Computing I was required to undertake a major computing project. For the purpose of this project I choose to investigate the use of Artificial Intelligence within the video gaming industry. My final project consisted of two main phases. Firstly an investigation into the techniques used within the gaming industry in relation to AI and secondly, the design and implementaion of a substantial software system that demostrated my understanding of these techniques. My investigation concentrated on 3 main techniques that I determined were central to the production of video game AI. These techniques were Waypoint meshes, Finite State Machines and Fuzzy Logic/Utility theory. I also investigated the use of A* and Artificial Neural Networks as a means of producing non-deterministic AI. The software component of my project consisted of a demonstration that was writtin using C# and the XNA Framework. The demonstration consisted of two main scenes that demonstrated both deterministic and non-deterministic AI.
Scene 1 - Deterministic AI
Scene 1 was designed to demonstrate the implementation of deterministic AI upon a set of none playable characters (NPC's). Deterministic AI consists of AI which exibits pre-planned behaviour and is therefore not designed to think for itself. Scene 1 was set inside a castle and consisted of a set of NPC guards and peasants that go about their daily business. The scene is centered on one particular guard who is responsible for guiding the player to a location of his choosing by utilising A* search to calculate a path through the waypoint mesh.
This scene demonstrated the implementation of waypoint meshes to provide NPC navigation, Finite state machines to provide NPC state management and A* search to allow the guide NPC to calculate a route.
Scene 2-4 - NonDeterministic AI
In contrast to scene 1, scenes 2-4 were designed to demonstrate non-deterministic AI within a set of Crusader Fighters. The Crusader Fighters were able to perform 4 different attacks. Each scene was designed to investigate the effectiveness of different methods of determining which attack to perform.
Scene 2 only performed one attack type throughout the duration of a battle and was therefore used to determine the affectivness of each attack type.
Scene 3 utilised fuzzy logic/utility theory to allow the crusaders to change their attack type based on the current state of the battle.
In scene 4, the crusaders utilised an ANN to determine the best attack type based on the current state of the battle. The ANN was retrained based on the success of the chosen attack type and therefore the crusaders were able to learn from past battles.