Our submarine chassis determined the weight, turn rate and weapon placement, naturally lending to strengths and weaknesses of the various submarines

We wanted the AI to take advantage of these innate differences to create some compelling interactions. 



We needed a way to accurately inspect and iterate on AI behavior.

I determined that researching and writing a way to do this would take a long time, without adding anything for the end user.

I spent a couple of days on the Unity Asset Store trying various State Machine and Behaviour Tree solutions.

My metrics were: Open Source, Functionality, Documentation, Presentation, recent updates and forum activity.

NodeCanvas scored highest in all categories.



Another major feature of NodeCanvas, was the ability to save trees as their own, reusable objects called Subtrees. 

This allowed for much easier organization, and customization of behaviors.

Pictured is the go to navTarget tree,  for moving an agent safely though the world, which is reused in every behavior that requires movement.



Captains are the designer's interface with the AI system. 

Nodecanvas is a broad tool that requires time and a skillset that the designers might not have.

The Captain allows the designer to start creating behaviors by mixing and matching subtrees as default and reactionary behaviors.

This way, each subtree created adds an order of magnitude possibilities for the designer to create interesting encounters.