Forensic Friday 48: We're running out of titles for Utility AI

Welcome to the 48th installment of Forensic Friday! It’s crazy looking back that we’re almost at the big FF50 in a couple weeks, and also humbling that it’s really taken this long for a project that was meant to be done over 1 summer…

A quick technical overview #

Numerous refactors and rewrites have defined such long periods, and the current implementation of Utility AI is no exception. We’re still battling through a few bugs, but day by day we’re getting closer to completion.

Our NPC pathing algorithm has had a makeover this week, using new multithreaded code utilising Unity Jobs. While previously NPCs would queue up certain tasks, the new Utility AI system has made this all redundant. Therefore, we’re now able to use multithreading for pathing, which has given us a bit of extra work, but is definitely worth it for the performance payoff.

New activities such as going to the toilet and Category-Cs using beds have also been implemented this week, along with the more complex work on porting builders to the new desire based system (which is what saw the end of the task queue).

New Developer Tools #

This week also saw the introduction of a new developer console, using a handy, open source package which you can find here. This new console makes it easier for us to add new commands to our existing codebase using a custom defined attributes above methods. Further Unity inspector tools to easily load up items and NPCs on start have made setting up the game world for testing that much easier!

The new developer console

Case Closed #

It has felt like every week, for the last couple blogs, that we predict Utility AI will be completed before the next blog. However, without a doubt we’re closer to being finished than before, and while there were and are unforeseen bugs, we’re slowly squashing them. Thank you all for your continued patience with us, and we’ll see you on Monday for the release of the next Anomaly document!

Case Closed.
The Team
Plasmarc Studios