Jump to: navigation, search


The HeroPath System is responsible for the generation of NavMeshes used by the Physics Servers, to maintain a server-side representation of the "walkable" parts of an area's geometry. The HeroPath NavMesh is then used to respond to pathfinding requests from other parts of HeroEngine, such as script calls.


Typically, most (non-HeroEngine) game engines generate NavMeshes for use by AI and other systems through a lengthy, perhaps even overnight process, that crunches away on game levels to produce the NavMesh(es) used by server and/or client. The regenerated NavMeshes must then be deployed to server and/or client, new executables run, and so on. This process has a number of significant disadvantages both in terms of game design and the iteration cycle for level designers. Also, an overnight process simply does not match our vision or standard for the production of game content in HeroEngine; highly collaborative, real-time, and WYSIWYG: "What you see is what you get".

HeroEngine originally included (prior to v1.21) a pathfinding system in which NavMeshes were generated by the HeroBlade client and submitted to the Area Server process to use for pathfinding requests. While significantly better than an overnight process, it required the editing client to provide the updates to the NavMesh, and did not provide the area server with actual understanding of the geometry.

In HeroEngine release v1.20, the new Physics server was deployed and HeroEngine's servers suddenly had access to knowledge of the geometry of objects and areas. Limitations in the original (pre v1.21) pathfinding solution, led to the implmentation of the new HeroPath system. With the new system, load is distributed off of area servers to scalable processes, and memory usage is economized. Pathfinding requests are now handled by the physics server processes, and a special physics server process, the PathMaker process, builds NavMeshes and performs micro updates in near real-time for existing navmeshes.


What problems does this solve?

What problems does this not solve?


Components of the HeroPath System

The HeroPath system is comprised of multiple elements including:

Requests for Information are Asynchronous

The core of the HeroPath system lives in the Physics server, a separate process that may be located on a separate machine in a cluster. Consequently, all requests to the HeroPath system are asynchronous in nature.

Personal tools