Mapping

What’s this?

Mapping quick reference


- Common Mapping Issues - Optimising maps - Keyboard Shortcuts

Entity Listings

Entity Listing (Doom 3) Entity Listing (Quake 4) Entity Listing (Prey) Entity Listing (ETQW)

Mapping for id Tech 4 games is based on ‘additive’ editing, whereby the level designer adds solid geometry to an empty “world”, know as the void in Doom 3. This is contrasted with “subtractive” editing which is used in Unreal and its derivatives - in these games the world starts out solid and rooms are subtracted from it, with extra details such as pillars being added back.

Users of Unreal-based engines may initially find Doom 3 editing overly complex: instead of subtracting a simple room, it is necessary to create solid brushes for floor, ceiling and walls and make sure they do not leave any gaps. However, pure-additive geometry is simpler from the engine’s perspective (since the order of brush creation is no longer critical), and completely eliminates the “BSP holes” that plague Unreal levels.

Map Editing Tools

Here are the known editing tools that can be used for creating maps for id Tech 4 engine games.

  • Map editor - Built-in Windows-only level editor.
    • DoomEdit - Doom 3 map editor specific information.
    • QuakeEdit - Quake 4 map editor specific information.
    • PreyEdit - Prey map editor specific information.
    • EditWorld - ET:QW map editor specific information.
  • GTKRadiant - Open source, multi-platform editor.
    • DarkRadiant - GTKRadiant modification made for The Dark Mod (also works with vanilla Doom 3) with many fixes, usability improvements and new features.

Components of a map

Any map will contain a number of standard elements, which are discussed below.

Brushes

Brushes are convex solids that form the basic geometry of a map - floors, ceilings, walls, and basic internal solids (such as steps or beams) that do not require a model are produced with brushes. At the very least, the outer hull of a map must be made from brushes since by default, they belong to the only entity class (the worldspawn) capable of sealing the map from the void.

Aside from visual geometry, brushes can also be used to define volumes within a map with unique properties. This is done by applying special volume materials (a.k.a. “common” materials) to their surface. An example would be the material player_clip which prevents the player from entering the designated volume.

If a user attempts to create a concave brush through a CSG operation, the editor automatically fragments it to create a number of smaller convex brushes that combine to create the desired concave structure.

Entities

Entities are functional objects placed in a map (“actors” to the Unreal mappers). Lights , monsters, items, doors - anything which must do something as opposed to just constituting map geometry - are all examples of entities. Entities can be created in-editor from patches or brushes, while pre-defined entities can be added from the right-click context menu in the main editor window. Entities are inherently dynamic and can be controlled either by the game logic or level scripts .

Models

Objects that are too complex to create with brushes or patches can be modelled in an external application and imported into Doom 3, in either . ASE or . LWO file formats as an entity. A static model can be used to represent anything from a key to a table to a large stone buttress, while an animated model is required for enemies, monsters or NPCs.

And despite the debate, models cannot be scaled by the engine. It is possible to scale them by carefully tweaking the rotation key/value pair, however the effect is only visual. The collision model does not scale with it.

Unreal users will be accustomed to creating almost all architectural detail with static models, due to problems caused by excessively-complex BSP geometry. This is not an issue for Doom 3, which uses a unified rendering model that makes no distinction between BSP and model-based polygons. See the modelling section for more discussion of the model vs brush distinction. Although entities by default, with the inline flag a model entity that is not supposed to be dynamic can be turned into map geometry when the map is compiled.

Patches

Patches are used to add rounded, curved or undulating surfaces to a map, which are not possible using brushes alone. They are defined using Bezier curves , and are smooth-shaded by the renderer.

Compiling the map

Before you can play a map you have to compile it. The easiest way is to select BSP > BSP in the map editor, but you can also type " dmap <mymap>" in the console. Doom 3 is different from previous id engines because it reads direct from . MAP files without making computations for VIS and LIGHT, which are performed on-the-fly by the engine. However, you still need to ‘compile’ your maps to create a . CM and a . PROC which essentially makes solid geometry solid. Despite this, map compilation is very fast (measured in seconds).

Writing a declaration

Before packaging a map for distribution you should create a map declaration , which will provide the engine with information like the working map name, supported game modes, and general memory consumption.

For more information about declarations , like what they are, how they are created, or where they are stored, visit the corresponding article.

Advanced Tutorials

Prey Advanced Tutorials

The information in this section is specific to Prey .

ETQW Advanced Tutorials

The information in this section is specific to Enemy Territory: Quake Wars .

See also