What's New in Gameware Navigation 2015.0.x

This page lists the new features introduced in the 2015.0.x releases.

2015.0.2

Single SDK Library Set

Previously, two library sets (-md and –mt) were included in the MSVC 8.0, MSVC 9.0, and MSVC 10.0 Navigation packages for Win 32 and Win 64. Starting from Gameware Navigation 2015.0.2, only a single library set is included inside the lib directory. You must direct the linker to link against the new library set: win<platform>_<toolset>.debug, win<platform>_<toolset>.release, or win<platform>_<toolset>.shipping depending on your project build mode. You can also link this library set against external libraries built with –md or –mt.

Modes in the InsidePosFromOutsidePosQuery class

Now, the InsidePosFromOutsidePosQuery class has two modes for finding a valid position inside the NavMesh from a specified position (m_inputPos3f) that is outside the (X,Y) boundaries of the NavMesh:

  • INSIDEPOSFROMOUTSIDE_FROM_NEAREST_HALFEDGE – Finds the nearest NavMesh boundary from the specified position and computes a valid position inside the NavMesh boundary.
  • INSIDEPOSFROMOUTSIDE_FROM_RAYCAST – Finds the nearest NavMesh boundary using a ray going from the specified position in the specified direction (m_castDirection). Only the border that intersects the ray is used for computing a valid position inside the NavMesh boundary.

2015.0.0

Added BotOutput to the Bot class

After a World::Update(), you can access Bot::GetBotOutput() to retrieve the outputVelocity, outputFrontDirection, avoidanceResult, and upperBoundType.

To know if a path needs to be recomputed, you can call the BotOutput::IsPathRecomputationNeeded() function. If IsPathRecomputationNeeded() returns true, the path must be recomputed. See Monitoring Path Following for more information.

Spline Computation in Narrow Channels

Previously, a float parameter (distToBorder) was used for computing the distance from the channel borders. When channelWidth was too small (less than two times of distToBorder), this distance was relaxed so that the spline passes about midway through a narrow channel. Now, the distToBorder parameter is replaced with a new DistanceToInnerCorner() function. You can use DistanceToInnerCorner() to customize the minimal distance of a spline from the inner corner on each side of a narrow channel. See Channels for Computing and Following Trajectories for more information.

New NavMesh Generation Parameter

In rare scenarios, if you want the NavMesh to overhang the cliffs, set the new GeneratorAdvancedParameters::m_forceNoErosionFromHoles parameter to true. This setting modifies the behavior of GeneratorAdvancedParameters::m_distanceFromHoles and the NavMesh will overhang the cliffs.

The GeneratorAdvancedParameters::m_distanceFromHoles parameter is used for changing the default distance between the NavMesh borders and holes in the terrain to avoid characters from accidentally falling into the holes or off of cliffs. If GeneratorAdvancedParameters::m_forceNoErosionFromHoles is set to false (default value), the distance between the NavMesh borders and holes is at least m_distanceFromHoles. If m_distanceFromHoles is negative (default value), then m_distanceFromHoles is set to entityRadius/2.

Accessing the CircleArcSpline in Channels

You can access the spline to know the current bot position and how the spline is computed. See Accessing the CircleArcSpline for more information.

Pre-channel Section and Post-channel Section in Channels

Channels have a pre-channel section and post-channel section. See Channels for Computing and Following Trajectories for more information.

Bug fixes

This release contains many bug fixes. For details, see the release history on the Autodesk Gameware developer site at http://gameware.autodesk.com.