Maps in Doom 3 are defined by four different files, all of which are
in ascii so it should be very easy for other people to write editors
and tools for them. For a map to work properly, all four files must
be included (the only exception is .aas files are not needed for
The .map file is the main file that is created when you edit a file,
it defines all the entities and brushes in the map. The other three
files are all generated from the .map file with the dmap command.
The format hasn't changed much from the Quake series.
The .cm file defines the collision geometry in the map. It is used
by the physics system for collision detection.
The .proc contains all the pre-processed geometry in the map. It stores
all the visible triangles, batched up in to surfaces. It also stores all
the portal information, and any precalculated shadow volumes (if a light
doesn't move, and a brush doesn't move, the shadow volume can be
The .aas files contain the 'area awareness' data for the AI to navigate
through the level. A seperate aas file is generated for each
size monster. Generally an aas48 and an aas96 file is generated for
most monsters sizes. If a map has a special monster in it, such as the
mancubus, saboth, guardian, or cyberdemon, then it will generate a special
aas file for them.