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 .bsp file per level ("binary space partitioning"). This contains the level geometry (the "map").
  • Optionally an accompanying .aas file 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 .map files. This can either be done offline, or programmatically inside DeepMind Lab using Lua extensions.