Difference between revisions of "Map compiling"
From Quake Wiki
Revision as of 10:07, 11 January 2010
Map Compiling is the process of converting a level from a map file, which 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.
A number of games based on id software's technology use map files as their level source format, but these files differ in format from game to game. 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 all surfaces textured with a skip texture from a level, so that they are not rendered in-game. This requires a seperate tool because skip textures are not supported by any QBSP version.