Companion AI Improvements
James Simpson
 · 
October 4, 2023

Earlier in the year we completely re-built the companion AI system for our therapy robot from the ground up. Having a life-like companion that isn't just your typical "tutorial bot" is vital to the experience of Arctic Awakening, so we couldn't just leave it at that.

We continued gathering your feedback from the latest demo builds as part of Gamescom and Tokyo Game Show, and we've been using that to focus on various areas of polish to improve the behavior of this pivotal character in the story.

Intelligent Target Selection

One of the main issues with Alfie's navigation is that it didn't have a full model of the world – in other words, he couldn't really see! Often, Alfie is simply trying to get into the player's cone of vision, even without understanding what lies within that vision. This led to significant issues when inside walled areas, of which there are many beyond the demo!

We iterated through a number of solutions before landing on a system that selects several possible target locations and intelligently selects the "best" one based on obstacles in the way, their type and their distance. This effectively allows Alfie to see walls or other large obstacles that he should stay in front of rather than trying to go around.

The most glaring example of this can be seen in the below GIF where previously Alfie would often try to navigate completely outside of the building rather than following the player through the curved hallway. Beyond halls, this change improves navigation in any sort of interior space like a room or airplane, narrow cliff ledge trails and just general traversal through the forest.

Local Avoidance

While Alfie could already navigate around obstacles, dynamically moving obstacles such as the player could throw a wrench in that. Or even more common would be Alfie's own momentum carrying him into large rocks or trees, causing unwanted (though often comical) collisions with the environment around him – he's still a bit clumsy and will run into things here and there, but now it's by design!

An advanced autonomous flying robot should at least be on par with the capabilities of a current-day consumer drone. Many of these camera drones have local avoidance systems that scan the world around them and avoid colliding with obstacles that become too close, which is now what Alfie does with detectors above, below, to the front and to the sides.

Custom Navmesh Baking

We use a pathfinding system called a navmesh to enable Alfie's navigation throughout the world. This works relatively well; however, the complexity of the nature in our world leads to rather noisy navmeshes that make it difficult for Alfie to "understand" what's around him. This noise often leads to noisy navigation and movement behaviors.

To address this, we built a custom navmesh baking system that evaluates every rock, tree and obstacle in the game world (all 1,332,787 of them – approximately) and tags these in certain ways to aid Alfie's calculations for navigation. This allows the navmesh to be much more seamless and significantly smooths and simplifies Alfie's movement through the world.

Dodging Behaviors

One of the biggest issues we saw from demo players was one of the simplest to fix! Often when traversing over an obstacle – whether jumping down from a ledge, vauling over a dead tree or climbing up a rock – Alfie would be in your way causing you to land on or collide with him.

We all laughed the first few times, but it quickly becomes a nuisance. There are a number of adjustments involved to fix this, but the primary one is adding dodging behaviors so that Alfie can quickly get out of your way. We further expanded these dodging behaviors to cover a variety of scenarios that would previously result in head-on collisions (don't worry, no robots were harmed in the making of this GIF).

But wait, there's more!

Beyond these major changes, we've made dozens of other fixes and updates to our companion AI system that powers Alfie. Creating such a character is no easy task, and it's an area many games have come up short. This is why we've put so much emphasis on getting this right all through our development, and we hope you'll see the fruits of that effort in the final game!

Until next time, the best way to keep up on the game is by following/wishlisting our Steam page. You can also join our Discord, Twitter (X?) or newsletter for future updates and chat with us and others about the progress of the development!