Project Evaluation

The goal of my project was to investigate the use of behaviour trees (BT) in a stealth based environment.  I do believe that I have achieved this by researching into various different aspects of artificial intelligence (AI) used within games, the various AI used by different games, especially the BTs used within Alien: Isolation and Halo 2.  At the end of my deadline I have implemented a BT that my agents use in a stealth based environment where the player will need to get from the start location to the objective.  If the player is spotted the AI will converge on their location, once close enough the AI will kill the player forcing them to try again from the start location.

I believe that the project has been a success and I have made good progress despite having various personal issues that restricted my availability to work on the project, as well as having commitments to other modules.  I was able to complete all my milestones and create a few extra simple behaviours, such as the guards shooting the player once within range.  I am glad that I allocated myself some contingency weeks when creating my project timeline as I had to adapt this to allow myself to catch up.  I have learnt a lot about the AI employed by games and how different companies used different approaches to achieve similar goals.

I believe I have also been able to learn more about object-oriented programming (OOP) strengthening my understanding, usability and application of methods such as inheritance and polymorphism while building the BT and encapsulation while implementing the blackboards.  I was also able to learn a lot about C# learning new parts of the language such as delegates, while also learning and strengthening my ability to work within Unity3D and creating models using ProBuilder.

I am also happy with how the patrol works within the game, as spoken about in an earlier blog, I was able to implement two different types of patrol.  If I had more time on the project I would have liked to have gone further down the ability for my guards to search, reacting to audio sounds and implementing dialogue and animations.  

Although I was able to complete my milestones, I had a lot of personal issues get in the way of the project.  I also had issues with the BT not working correctly and having to redesign the code structure of the tree.  With the old implementation of the BT the behaviours were not executing correctly and in the wrong order with some agents getting stuck in a branch and not getting out.  Although after rewriting the tree in a more efficient way, some behaviours do not work 100% as intended, as sometimes when an agent switches from idle to alerted, it's not as instant as I would like.  

I also lost some time to modelling, as I underestimated how long this would take, even to create a simple level with several rooms for the agents to patrol around.  I ran into some problems with the design of the BT with the structure needing to be reorganised a couple of times, with the help of a designer I believe I could have mitigated this problem and spent more time on the actual implementation of the BT and behaviours rather than the structure and order of the behaviours.  

Unfortunately I was unable to meet with my specialist tutor as much as I would have liked, as I was unable to attend University as frequently as needed, if I had been able to attend the University for some more support I believe I would have been able to make better progress on the project as some of the issues I encountered could have been eradicated quicker. 

I was unable to find a reason any decorator nodes or a parallel node, which I would have liked to and as mentioned in my presentation.  I would have implemented parallel nodes if I had any audio and/or animations within the project as these would need to be executed at the same time as say, the Move behaviour.

At the end of the project I reuploaded all the videos from the blogs onto YouTube as this made the viewing experience better. 

The top video is the built-in blogger video player, while the bottom video is an embedded video from YouTube.  

If I was to start the project again I would spend more time designing the structure of the BT as this could have saved some time having to rewrite a lot of the behaviours and the overall structure and flow of the BT.  I would have also wanted to get some input from a designer or my specialist tutor on the structure of the tree and priority order of some of the behaviours.  

I would also research into more games and how they create the AI within their games, specifically games that use BTs alongside the research that I conducted into BTs.  I could also have created some of the behaviours to be more generic had I given them more thought such as the guards normal movement and combat movement, could have just taken a location in as a parameter and conducted the behaviour dependant on that.  I would also use more conditional checks to ensure that the BT flows in the way that I intend.  

Overall, I am happy with the progress I have made and skills that I have learnt and would like to take this project further in my spare time to create a full BT package that others could potentially use in their game.