Dissertation: AI Demo
Project Overview
I made this project to explore two different ways of developing artificial intelligence behaviours. The goal was to identify the most efficient strategy for creating AI that can be procedurally generated, allowing for gameplay with more variety in the characters and enemies encountered along the way.
My research led me to consider two different development approaches which I called 'binary AI' and 'spectral AI'. I developed a simple AI system capable of using both of these approaches, then presented it to a test group to determine whether they could see a significant difference in variety between the two models.
This project runs on Unreal Engine 4 and was built using Unreal Engine Blueprints.
Program Description
The setting for the demonstration was a space station. A finite number of human crew members would defend the station against aliens who continuously teleport in. The crew are victorious if they can destroy the teleportation device, or if they survive long enough for reinforcements to arrive.
While the alien AI is consistent, the crew's behaviours are procedurally generated using one of two methods. The first method is one I call 'binary AI', in which behavioural tendencies are either one way or another. In the case of this demonstration, the AI would be either offensive (choosing to find and destroy the teleporter) or defensive (choosing to stay and defend the room they start in). This was inspired by the enemy AI in Middle-earth: Shadow of Mordor's nemesis system, which might give a particular character a fear of some kind of creature, while others have no such fear. In this case, the behaviour associated with this trait was either present or it was not.
I called the second method 'spectral AI'. This meant that behaviours exist on a spectrum. This means that now, not only is a character either offensive or defensive, there is also a number that represents how strongly this trait manifests. A more offensive character will be much more brazen in their attack on the alien teleporter than others. A character who is more defensive will stay inside the room they wish to defend, while others may guard the refuge from neighbouring corridors.
While the spectral approach is objectively more varied than binary in the behaviours that it can allow, it wasn't clear whether players would notice the differences. Seeing as the spectral traits require more time to implement due to the increased behavioural variety, it was important to discover whether the distinctions were evident enough to justify the additional development resources.
Study and Results
The study required participants to observe the behaviour of both AI models for three minutes and make a record of their observations. Their observations were submitted with a form designed to get specific differences that they noticed as well as their general impression of which demonstration was the most varied in terms of the behaviours exhibited by the human crew.
The majority of the participants believed that the spectral demonstration showed more variety than the binary one, even though some could not identify why they felt that this was the case. A deeper dive into the responses of the participants makes a good case for spectral AI being superior in regards to the user experience. Additionally, I believe there is room for the approach to be further refined and made more efficient. In many cases, the magnitude of a trait could be used to directly modify the behaviours an AI agent might exhibit, rather than simply acting as a signpost to help the AI determine which behaviour to use from a selection. If this can be done, not only would it cut down on development time, it could also allow for even greater variety. In theory, a trait's magnitude could have no upper limit and could even be a floating point number instead of an integer, meaning the exact way in which a behaviour manifests could be unique to each AI agent. This is exemplified even further if multiple traits are able to interact, in effect determining a character's behaviour with a point on a 2-dimensional graph rather than a 1-dimensional spectrum.