Tripwire’s Maneater is a Single-Player Action RPG, set in the Gulf Coast’s unforgiving waters. Taking place both on top of the waves and deep beneath the surface, the player takes on the role of a fearsome shark, with the goal to feed on unsuspecting ocean inhabitants to become the ultimate predator. You have to hunt down and eat Mercuna-driven AI fish, swimmers, and other sea creatures to evolve to become a bigger shark and progress through the game.
In Maneater, the player-controlled shark is able to freely explore a rich and varied ocean environment. To bring this world to life, Tripwire Interactive turned to Mercuna 3D Navigation to power the movement of all underwater AIs. Using a full 3D navigation system is essential for an open world game like this, where the AI need to be able to navigate throughout the expansive environment as freely as the player, always knowing where to flee when they sense the predator of the sea.
“We used Mercuna for our entire above and below water navigation system. It allowed for natural movement for things like underwater wildlife, divers, and swimmers and provided spline based paths where the changes in heading felt life like.”
Kyle Ray, Maneater’s AI Programmer
As you roam from swamps to the coast and back to the deep ocean, you encounter a diverse variety of creatures spanning from small, harmless fish to giant, hostile crocodiles and competing sharks. Using a separate navigation graph for each AI type would have required too much memory and placed artificial restrictions on game design, so Mercuna’s ability to support multiple agent sizes on a single navigation octree proved essential to managing memory usage. And it’s not just the challenge of the large range of AI sizes which needed to be solved: Mercuna was also able to provide an immediate solution for handling the range of sea depths in the game. Mercuna’s modifier volumes allowed designers to easily restrict where creatures could move, ensuring, for instance, that the deep sea creatures remained where they belong in the ocean depths.
Tripwire did not restrict their use of Mercuna 3D Navigation to underwater, they are also using it for the surface navigation of boats and swimmers. While a slightly unusual use for 3D navigation, the versatility of Mercuna meant that it could quickly solve some major problems Tripwire had been facing with boats. “We ran into problems with UE4s navmesh system as it did not supply a method to have any spline path-following on runtime computed paths and our timeline was too short to retool or add a custom layer to recast,” explained Kyle. “Instead we were very easily able to extend Mercuna to continue pathing in 3D, but for the AI to react in 2D, allowing swimmers and boats to stay confined to the water surface while moving in smooth manner with gentle turns.”