The labengine and labgame
The labengine and labgame are tools that support the Navigation Lab. They provide:
- A ready-to-use sandbox for playing with the samples offered by the Navigation Lab, and for experimenting with the queries offered by the SDK. For details on running these samples for yourself, see Getting Started with the Navigation Lab.
- Code examples that you can use as models for your own project. Full source code is provided for the labengine and the labgame, even in evaluation packages.
The labengine is a very simple game engine, somewhat comparable to a server application for an MMO game.
- It has no rendering system; the only way to view the state of the game is through visual debugging in the Navigation Lab.
- It has no real physics system. Instead, it simply sets the position on the vertical Z axis for all bots and obstacles to match the altitude of the NavMesh. This is a relatively high-performance way to fake the effect of a physics system that keeps the bots and objects pinned to ground level.
- It has a set of basic game objects that are equivalents of some of the main objects in the Navigation SDK: GameWorld, GameBot, GameObstacle, etc.
- It contains some implementations of smart objects such as doors, elevators, and jumping points, and some more advanced "behaviors" that use the Navigation API, such as a simple routine for melee combat.
The labgame is an executable that runs on all platforms supported by Autodesk Navigation. It creates and runs an instance of the labengine internally, and adds a layer that manages communications with the Navigation Lab.
It accepts commands from the Navigation Lab (e.g. to spawn bots and obstacles), and passes those commands along to the labgame. It also sets up a visual debug server, and manages sending debug information from the labengine to the Navigation Lab.