Go to top
Features
3D Navigation

Pathfinding

Mercuna 3D Navigation offers full 3D pathfinding using a highly optimized A* search through a sparse octree. Mercuna creates a voxelised representation of your game geometry, and stores it in the efficient octree structure – allowing both fast pathfinding and responsive reachability queries.

  • 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.
  • Hierarchical pathfinding – for longer range path queries, Mercuna uses hierarchical pathfinding. An approximate route across the map is found using an automatically generated coarse navigation graph, before the octree is consulted to refine the path.
  • 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 through complex geometry.
  • Multiple agent sizes – Mercuna’s navigation octree supports multiple agent sizes, giving you flexibility to mix large and small agents in a single game world without requiring multiple octrees.
  • Runtime generation – for procedural levels, Mercuna first builds the octree at low resolution to allow basic AI navigation almost immediately. Then, in the background, Mercuna progressively upgrades the octree to full resolution to allow unrestricted movement.
  • Runtime regeneration – regenerate sections of the navigation octree 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.
  • Level streaming – as sublevels are streamed in, Mercuna integrates the new sections of the octree to create a single unified octree, allowing seamless navigation across the whole world.
  • 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 of Detail volumes – generate the octree at lower resolution in volumes where detailed navigation is not required in order to reduce memory usage.
  • Multi way-point paths – specify multiple destinations a path must pass through, or add destinations to the end of existing paths.

Movement

Mercuna 3D Navigation can drive any type of flying or swimming agent, from butterflies to submarines. Out of the box, it offers a range of default flight styles, which can easily be fine-tuned for your game. With Mercuna, your agents can fly quickly through complex environments, smoothly finding their way around the level geometry.

  • Newtonian based flight – by default Mercuna uses a momentum based movement model that can be configured to replicate movement through space, air or water.
  • Smooth spline paths – using dynamically generated polynomial splines, Mercuna ensures that agents move in a smooth, natural looking manner, making full use of the space around them.
  • Maximised speed – agents make full use of their configured acceleration to ensure that they are always moving at the maximum possible speed when making turns, whilst still obeying movement constraints.
  • Optimised following – seamlessly follow other agents and moving actors. By continuously adjusting the spline path end as the destination moves, Mercuna avoids performing unnecessary expensive repaths.
  • Extendable movement components – Mercuna includes easily customisable and extendable movement components that allow configuration of maximum speeds, accelerations, turn rates and other essential parameters.
  • Flexible movement styles – Mercuna supports a wide variety of movement styles from airplane like flight to 6 DoF drone maneuvering, ensuring that you can create the exact movement style needed for your game.

Avoidance

Moving obstacles, such as other agents, are handled using our dynamic avoidance system that predicts and prevents collisions.
  • 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.
  • Spherical and cuboidal obstacles – choose the shape that best fits your dynamic obstacles, allowing long, thin objects such as capital ships to be accurately represented, so that agents only avoid by the minimum amount necessary to prevent collisions.
  • Boundary avoidance – by searching the navigation octree to exclude velocities that would result in collisions with static geometry, Mercuna prevents agents from turning into walls during collision avoidance.