Level generation
January 26, 2018 ยท View on GitHub
Levels for DeepMind Lab are Quake III Arena levels. They are packaged into .pk3
files (which are ZIP files) and consist of a number of components, including the
following:
- One
.bspfile per level ("binary space partitioning"). This contains the level geometry (the "map"). - Optionally an accompanying
.aasfile per level ("area awareness system"). This contains navigation information for the in-game bots of Quake III Arena. - Textures. Textures are referenced by maps. DeepMind Lab ships with a number of default textures.
You can use your own maps, zipped up as a .pk3 file, by placing the .pk3
file(s) into your base directory (e.g. $HOME/.deepmind_lab/baselab).
DeepMind Lab includes tools to generate maps: The q3map2 tool converts a
.map file into a .bsp file, and the bspc tool generates an .aas file
from a .bsp file. The .map format is a human-readable text format that
describes a map as a sequence of entities. Map files are cumbersome to edit by
hand, but a variety of level editors are freely available
(e.g. GtkRadiant).
In addition to built-in and user-provided levels, DeepMind Lab offers additional sources of levels:
- Procedurally generated levels, which are created on the fly.
- Text levels, which are simple, human-readable text files
that can be compiled into
.mapfiles. This can either be done offline, or programmatically inside DeepMind Lab using Lua extensions.