Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Map compiling

From Quake Wiki

Revision as of 08:05, 10 January 2010 by Metlslime (talk | contribs)

Map Compiling is the process of converting a level from the map file generated by a level editor into a bsp file which is ready to be played in-game. It generally consists of three steps: QBSP, Light, and Vis.


Main article: QBSP

QBSP is the first stage of map compilation. It is the process that reads the map file and generates the bsp, and in doing so calculates all of the geometry and collision data for the level. It also extracts any needed textures from the wad files and repackages them into the bsp file. After this step, the level can be loaded into the game engine. However, it will not have any lighting or visibility data.


Main article: Light (map compiling)

Light is the stage of map compilation that calculates lightmaps for the level. Using the light entities from the entity lump of the bsp file, it precalculates the lighting on every surface in the level, and saves that lighting as lightmaps in the bsp file.


Main article: Vis

Vis is the stage of map compilation that calculates PVS data for the level. With PVS data, the engine need only draw those parts of the level (and those entities) that might be visible from the current player location. This performance optimization was necessary to allow levels as large and as complex as Quake's on the computers of the day. And even today, most games use equivalent systems to allow levels, props, and NPCs to be as detailed as possible.

Other Compiling Tools

In addition to the above three tools, some mappers need additional tools for their specific develompent pipeline.

Map Converters

Map converters are used to convert map files from one format to another, so that mappers can use a level editor that does not natively support Quake.


Skip tools are standalone programs that can remove skip textures from a level, as skip textures are not supported by any QBSP version.