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
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
The LabGame is an executable that runs on all platforms supported by Gameware 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.