Table of Contents
The Offline Processor is one of the BigWorld tools used to generate a navmesh for each chunk in a space. It uses Recast to generate the meshes.
Note
The other tool provided by BigWorld to generate a navmesh is NavGen. For more details, see NavGen.
For details about Recast, refer to the project site, at http://code.google.com/p/recastnavigation/.

Offline Processor
The Offline Processor, located at
bigworld/tools/misc/offline_processor.exe
, needs to be
configured so it knows where to find your game resources. This is done by
listing the resource paths, in order of precedence, in
bigworld/tools/misc/paths.xml
.
In order for the Offline Processor to generate Recast navmeshes for
a space, that space must be properly configured, by setting the
navmeshGenerator option in
space.settings
to recast. If this
option specifies any other generator, the Offline Processor will not
generate meshes. Modifying this value will not automatically cause chunks
to be dirtied, so if a navmesh already exists, the next generation will
have to be run in overwrite mode. For details refer to Running Offline Processor.
Recast uses settings that are stored in a Girths file, located at
bigworld/res/helpers/girths/xml
by default. This file
contains profiles for entity types that will use each layer of the
navmesh. For details, see Server Programming Guide's
section Configuring Girth Information for Navmesh Generation.
The offline processor is designed to be run in a fully automated environment, and is therefore controlled via command line parameters.
offline_processor.exe [options]
The available options are:
-
-clusterIndex
The index of this machine within the cluster. See Cluster generation for more information. -
-clusterSize
The size of the cluster in which this machine belongs. See Cluster generation for more information. -
-help
Displays a usage message. -
-nogui
If no space is specified, or the space could not be found, this will avoid displaying the interactive GUI. -
-overwrite
Forces all data to be re-generated even if the chunks are not dirty. -
-space
Path to the space which is to be processed (e.g. "spaces/highlands").
For example, the following would force all data to be recalculated for the highlands space:
offline_processor -overwrite -space spaces/highlands
If no arguments are supplied, an interactive dialog will be displayed in order for a space to be chosen to process.
The offline processor allows you to accelerate the build process by spreading the workload amongst multiple machines (or multiple cores on a single machine). First, make sure that each computer has an up-to-date copy of the space being calculated. It is best to use cluster generation in conjunction with a version control system, such as CVS or SVN.
Use the clusterIndex
and clusterSize
command line arguments. For example, if you have four machines to process
a single space you could use the following four command lines (one on each
machine),
offline_processor.exe -overwrite -clusterIndex 0 -clusterSize 4 -space spaces/highlands offline_processor.exe -overwrite -clusterIndex 1 -clusterSize 4 -space spaces/highlands offline_processor.exe -overwrite -clusterIndex 2 -clusterSize 4 -space spaces/highlands offline_processor.exe -overwrite -clusterIndex 3 -clusterSize 4 -space spaces/highlands
The computers will proceed individually (there is no coordination between machines). To get the results from each computer back into one space use the version control system's check-in functionality (e.g., svn commit). There should be no overlap between the computers over the changed files, so merging individual files should be unnecessary.