A map is the technical name for a level for a FPS game like Quake.

Maps in Doom

The term "map" comes originally comes from DooM where the levels were represented as 2D sectors as viewed from above with floor and ceiling heights to define the 3rd dimension. When drawn as a line diagram in this way, a level can be displayed as a map and was done in the game (by hitting the TAB key). This gave rise to the naming of DooM levels as "maps" and was further enforced in DooM2 by the actual naming of the levels as MAP01, MAP02... etc.

In DooM, a map is represented by a number of vertexes (sp), linedefs, and sectors:

  • A vertex is a single point in 2D space, or if you want to think in 3 dimensions, an infinitely tall vertical line passing through an x/y coordinate in the horizontal plain. And yes vertexes are spelt incorrectly.
  • A linedef is a line between two vertexes which can either be a wall (single sided), a step (double sided), or just a boundary to a sector (double sided). Each linedef is assigned one or two sidedefs, depending on whether it is single or double sided. Each sidedef has a texture and texture offset properties which define which texture should be rendered and at which x/y position.
  • A sector is an area which a player can walk in. It is definded as a number of linedefs which form a closed area. This area (sector) has floor and ceiling heights, floor and ceiling textures, a light level, and an effect (flashing light, hurts player, etc).

This data is then processed by a BSP processor to generate compiled data which is used in game for collision detection and hidden surface removal.

  • A thing is everything that isn't part of the levels structure, ie: weapons, monsters, etc. They are not processed by the BSP processor and is read directly by the game, as such things can be edited in a map without having to re-compile the level (for reference, sidedef and sector properties can also be changed without requiring a re-compile).

All this data is stored in a .wad file which is a zero compression archive format which defines each of the above pieces of data as a "lump". All data (even pre-compiled data which is not used by the game) is stored in the WAD file, thus allowing anyone access to the pre-compiled level and thus the ability to edit them.

Maps in Quake

With the release of Quake, the term "map" was again further enforced by the console command "map xxx" which loads a particular level and by the file extension given to pre-compiled level data files (.map files).

In Quake, a map is definded by a number of brushes which are placed together to build the structural objects in the game world.

  • A brush is a 3D convex hull made up of any number of sides. Brushes are placed together in 3D space to form walls, floors, pillars, etc. Everything which is solid in the game (apart from non-brush entities) are built out of brushes.
  • An entity is similar to a thing in DooM. Entities are all things in the game world which are not part of the structure, ie: the player, monsters, lights, items, etc.

In the original Quake, there are two types of brush. Structural as described above, and entity. There are also two types of entity, point as described above, and brush (aka solid-entity).

A brush-entity is a brush/entity hybrid. It has the properties of an entity but the structural nature of a brush. Basically a brush-entity is some game world structure which moves... doors, lifts, and buttons are all brush-entities.

Level structure is defined in .map files. These files are ASCII text files which define all the brushes and entities needed to make up the level. This data is then passed through a BSP processor (QBSP) to generate a compiled level which can be run in the game (a .bsp file).

Two other processing passes can be applied to the .bsp file:

  • LIGHT - The light processor uses the light entity definitions to generate the lightmap for the level.
  • VIS - The VIS processor generates the visibility tree which is used for hidden surface removal.

Quake "maps" do not resemble maps at all. They are 3 dimensional and cannot be easily viewed as a plan view, and there is no map view in Quake (unlike in DooM). So really the only reason they are called "maps" is due to the naming of levels in DooM.

Other Games

There are of course lots of other FPS style games, many based on 3D engines other than the Quake engine. However, the term "map" is used across engines to mean a single level in the game world.