
ADT files? The file format is quite well documented at the wowdev.wiki site. If you're curious, you can use an MPQ Editor to view the contents of these MPQ files to see what's inside.
WORLD OF WARCRAFT BOT CPP SOURCE CODE ARCHIVE
This archive stores the static geometry for the entire game. In the Data subfolder you'll see a file called terrain.MPQ. It's not just terrain data that's stored in an MPQ file - models, sounds, speech, textures, etc are all stored in MPQ files. WoW's terrain geometry isn't just stored in plain text - it's stored in an archive file format known as an MPQ file. So if we want to use Recast to generate a navigation mesh, we need to first obtain WoW's terrain geometry so we can pass it into Recast for processing. The static geometry looks something like this when visualized in 3D coordinate space: We can take advantage of the existence of those files, and by feeding them into Recast, we can generate a navigation mesh that our bot can use to traverse the game world. The rendering engine uses this mesh when it renders the game world. This is simply a set of points in 3D space that make up a mesh. Somewhere in your WoW game client folder will be a set of files that represents the static geometry of the game world (earth, trees, buildings, etc). This will differ from game to game - in WoW, 60 degrees seems to be a sweet spot. Recast's path generation functions also take an "angle" as an argument that allows you to specify the angle at which a player can no longer run up a steep surface (a hill for example).

Instead of writing algorithms ourselves to traverse the graph, a nav mesh exposes functions that allow us to pass in, for example, a start point and an end point, and it'll return a path that represents an optimized route between those two paths, taking into account any obstructions that have to be avoided. A nav mesh is a data structure that provides a nice abstraction for solving graph traversal problems. The purpose of Recast is to take the static geometry of the game's terrain and convert it into a Navigation Mesh. There are two primary parts that I'll do my best to summarize. Thankfully, somebody much smarter than myself created a pair of open source libraries that solves our problem perfectly: Recast/Detour. Interviewing sucked, and I don't really get much enjoyment from solving graph traversal problems.

He's moving through the world, trying to get from one point to another, but certain terrain is "blocked" - trees, buildings, or other obstables can't be walked through - they need to be avoided. Given those rules, the goal was to write an algorithm that found the shortest path between two cells in the matrix that didn't move through "blocked" cells.

There's a problem I saw frequently when I was preparing for job interviews - at its core it was a graph traversal problem, but certain cells of the matrix were "blocked" - you couldn't traverse them. Pathfinding is a fascinating concept with its foundation based on computer science fundamentals like Graph Theory.
