Skip to content
namreeb edited this page Apr 19, 2020 · 1 revision

Introduction

namigator is a pathfinding library for older versions of World of Warcraft -- specifically versions 1.12.1, 2.4.3, and 3.3.5a are supported. It has been developed in spurts over many years. It was initially written in C#.

Overview

namigator relies on the Recast and Detour pathfind library which can be found at https://github.com/recastnavigation/recastnavigation. Custom heuristics, filters, and queries have been introduced into the Recast and Detour workflow to closely approximate correct movement for both players and NPCs.

There are two main components to namigator: the map builder and the path finder.

Most of the navigational data or "nav mesh" is produced from static data extracted from the game. Optionally, game objects may also be inserted during the generation phase. Such game objects are considered permanent and therefore appropriate for inclusion in the static data. Temporary objects may sparingly be inserted dynamically at "runtime", when pathfind queries will be performed.

The pathfind component will load the nav mesh data and perform queries on it. These queries include finding a reasonable path between two points, determining if there is line-of-sight between two points, finding the area id for a particular point, and more. These operations are designed to be extremely fast in exchange for an expensive initial load into memory.

Clone this wiki locally