This FAQ answers some of the questions that programmers typically have when inquiring about NavPower. This list is based on questions we receive from you, so feel free to email us at with any questions that you may have.

How long does it take to integrate with NavPower?

The NavGraph building is very easy to get running since the input to our build process is just an array of triangles which you can generally grab from your collision or render geometry. Several clients have e-mailed us within hours of downloading the evaluation with NavGraphs that they have built. After that, it typically takes a few days to get characters running around in your game, depending on the details of your engine.

How does resource loading work?

Resources such as the NavGraphs are created by the build process as chunks of binary data. The client loads these binary chunks at runtime and calls AddResource() to supply them to the NavPower system. This technique allows very high-performance resource loading since the NavPower system only needs to adjust pointer locations before using a new resource.

How does NavPower handle memory allocation?

NavPower can either be configured to use a custom allocator provided by the Game, or one of several built-in allocators. The built-in allocators include a standard dlmalloc based allocator as well as a thread caching allocator for high-performance allocations in a multithreaded environment. The built-in allocators can either be provided with a fixed block of memory from which they will make all of their allocations, or they can use the standard system calls to allocate larger chunks of memory which they then handle internally.

What type of streaming support does the NavPower system have?

The NavPower system has full streaming support with the ability for NavGraphs to connect up with previously loaded NavGraphs. All of the dynamically created objects such as obstacles, jump connections, movers, etc. automatically react appropriately to a new NavGraph being loaded or unloaded in their vicinity. The largest NavPower worlds are those running on MMO servers where there are typically over a thousand grid sections simultaneously loaded and connected together.

Do you provide source code for NavPower?

The NavPower Complete license includes source code for all of the runtime systems which is something that many middleware products do not provide. This gives you the ability to modify NavPower if needed and to compile with specific compilers/options as you wish. Note that the source code for the NavPower tools and build process is not provided.

What types of navmesh queries does NavPower support beyond pathfinding?

NavPower provides a large number of queries that can be used to examine the NavGraph, including functions such as: SearchToMultipleGoals(), CheckBoxFit(), GetClosestReachableArea(), NavProbe(), and CollideLineSegmentAndNavGraph().

The image on the left demonstrates how one team used additional NavGraph queries to generate a corridor around the path, allowing animation flexibility when heading towards cover. The full presentation is available here. If you are interested in looking through the complete list of functions in the NavPower documentation please request a NavPower evaluation from us.

Copyright © 2024 BabelFlux LLC . All Rights Reserved.