Go to top
Features
Ground Navigation

Hybrid Navmesh

Mercuna utilises an innovative hybrid navmesh/navgrid for ground-based pathfinding. This high-performance navigation graph combines the advantages of very fast spatial lookup and low memory of a quadtree, with efficient pathfinds through a polymesh.
  • Low memory usage – Mercuna’s use of a quadtree to store the detailed representation of navigable space results in significantly lower memory usage compared to standard navmesh only based solutions.
  • Runtime generation – for procedural levels the navmesh can be built at level generation time, with areas near agents prioritised, so your AI can get started moving immediately.
  • Runtime regeneration – regenerate sections of the navmesh during gameplay when the world changes and ensure that your agents’ paths are always up-to-date and reflect the changing game world around them.
  • Advanced spatial queries – quickly find points in navigable space and test which are reachable. Fast navigation raycasts allow you to check for clear, unobstructed routes across complex terrain.
  • Nav links – Mercuna offers both designer-placed nav links as well as automatically generated jump links. Give your agents the freedom to climb ladders, jump down from ledges and leap across gaps.
  • Modifier volumes – mark volumes within the map as being more expensive to traverse, and/or only traversable by certain agent types. Use these to make certain routes less desirable or to block routes and areas so that only certain agents can enter them.
  • Level streaming – as sublevels are streamed in, Mercuna integrates the new sections of the navmesh on the fly to create a single unified navmesh, allowing seamless navigation across the whole world.
  • World partition – when used with UE5’s World Partition system, Mercuna automatically splits the navmesh into chunks so at runtime as the player moves around the world, sections of the navmesh get streamed in and merged together. 
  • World partition UE5 editor – Mercuna enables rapid iteration of level design by allowing designers to build and test the navmesh for just the section of the map they are working on.
  • Nav invokers – only generate the portion of the navmesh that is close to navigating agents, and update the generated area as those agents move. Save memory in large worlds by only having navmesh where needed.
  • Moving platforms – attach navmesh to moving platforms, enabling agents to pathfind across large, moving objects such as the deck of a rocking ship.
  • Large World – generate navmesh 100s of kilometres from the world origin.

Pathfinding

As well as standard A* character pathfinding, Mercuna offers kinematic pathfinding for turning rate-limited and non-symmetric AI such as vehicles. Once a path has been found, Mercuna fits smooth, continuous polynomial curves, giving natural-looking movement for characters, vehicles, and animals.

  • Asynchronous pathfinding – all pathfinds are performed as background asynchronous jobs, so even long and complex paths can be found without visibly impacting your game’s performance.
  • Kinematic pathfinding – for agents with minimum turning circles, such as vehicles, Mercuna’s advanced kinematic pathfinding considers their turning constraints as part of the path search, ensuring that the resulting path is followable, without any impossible turns.
  • Smooth paths – using dynamically generated polynomial splines, Mercuna ensures that agents move in a smooth, natural looking manner avoiding sharp turns when possible.
  • Rectangular agents – as well as the usual circular agents, Mercuna supports pathfinding for rectangular agents, ensuring they correctly traverse narrow corridors and gaps.
  • Automatic path updates – if the navmesh is rebuilt or the destination moves Mercuna’s paths are automatically updated, with either a small adjustment or a full repath if necessary.
  • Multi way-point paths – specify multiple destinations a path must pass through, or add destinations to the end of existing paths, allowing agents to maintain continuous, smooth movement.

Movement

Whatever the type of game you are making or the type of AI you are using, Mercuna provides high quality movement for all kinds of agents.
  • Characters – as a standard part of most games, Mercuna offers comprehensive support for character movement allowing deep integration with the engine movement model to ensure that AIs move smoothly and realistically.
  • Animals – in contrast to characters, animals often move at higher velocity and tend to make more gentle turns but still have high accelerations. Mercuna handles this by preferring paths that make sweeping turns, but allowing sharp corners where they are unavoidable.
  • Vehicles – using the same controls as available to the player – throttle, brakes and gears – Mercuna drives your vehicles taking account of the available surface friction, turning circle and even reversing where necessary to get out of a tight spot.
  • Physically based – Mercuna uses a momentum based model that takes into account all the important physical constraints – acceleration and turning limits, the effect of gravity, available traction against the ground, tipping of vehicles – to ensure agents move as quickly but realistically as possible.
  • Optimised following – seamlessly follow other agents and moving targets. By continuously adjusting the path end as the destination moves, Mercuna avoids performing unnecessary expensive repaths.
  • Trajectory prediction – query agents for a prediction of their future motion, based on their current path and acceleration model. These trajectories can be used for motion matching to fit high quality animations.

Avoidance

In addition to pathfinding around static geometry, Mercuna provides multiple dynamic avoidance options, ensuring that collisions with other moving obstacles, such as other agents, never occur. 

  • ORCA – based on the industry standard ORCA velocity obstacle algorithm, Mercuna continuously predicts the future positions of moving obstacles and alters the agents’ velocities to ensure that collisions never occur.
  • Context Steering – a combination steering and avoidance method where possible velocities are scored in multiple different contexts in order to calculate the optimum move. Available contexts include cohesion, repulsion, collision, and following.
  • Stationary obstacles – obstacles that have stopped are temporarily baked into the navmesh so that paths automatically go around them, meaning that agents don’t get stuck when someone stands in a doorway and blocks their path.
  • Cylindrical and cuboidal obstacles – choose the shape that best fits your dynamic obstacles, allowing long, thin objects such as animals and vehicles to be accurately represented so that agents only avoid by the minimum amount necessary to prevent collisions.