Automap

The automap is a feature of the Doom engine which allows the player to view his or her current position in the level and any of the walls (formed from linedefs) which have been seen so far. The automap is toggled on or off using the tab key by default, and is available in Doom, Heretic, Hexen, and Strife, with minor differences in each game.

Automap behavior
The map shows all walls the player has seen since entering the level. Seeing just a small piece of a wall will make its entire linedef visible on the map. As all levels supported by the Doom rendering engine are flat when viewed from above (it is not possible in vanilla to have rooms over rooms), the map is easily generated by the software and easily comprehended by the player.

By contrast, some of Doom's close contemporaries such as ' and ' had 3D automaps that many found too challenging to navigate. Most of Doom's fully 3D successors, starting with Quake and including Doom 3, have either abandoned the idea of a top-down map, or circumvented the problem of displaying a Z-axis by artificially dividing each level into 'floors' or 'zones'. The automap f--u--c--k--q--u--a--s--a--r returns as a feature in Doom (2016), having been informed by such geometry-simplifying implementations as those used in the  series of 3D adventure shooters.

The lines in the automap are color-coded. Red lines indicate solid walls. Yellow lines indicate changes in ceiling height (e.g. doors). Brown lines indicate changes in floor height. Light gray lines indicate areas which have not yet been visited (made visible by the computer map powerup). This color scheme may vary depending on the source port being used.

While it is possible to walk around in automap mode, the map itself will not update: the lines shown in the map are marked by the rendering process, which does not occur while the automap is turned on. As the Doom instruction manual notes, playing in automap mode is a dubious long-term strategy, since monsters cannot be seen. Certain source ports avoid the entire issue by including the automap in a heads-up display.

Regardless of the view size setting in-game, the automap fills the entire screen and displays the status bar.

Technical
In its original implementation, the automap is a simple two-dimensional engine which uses the  to draw linedefs after scaling and translating their coordinates into screen space. The is used to clip the lines against the edges of the automap's frame buffer.

Hidden areas
During the design of a level, linedefs can be flagged by the author so as not to appear on the automap even if the computer map powerup is obtained. However, the cheat code will display all lines. Linedefs can also be flagged to appear on the map even before they have been rendered.

To avoid giving away secrets, concealed doors can also be marked so as to initially appear red on the map, as though they were solid walls.

Multiplayer
In cooperative mode, all players show up as arrows on the automap, with colors corresponding to the players' colors (red, green, brown, and indigo). In deathmatch mode, however, opponents are not visible on the map.

Demo playback
When an external demo lump is viewed using the Parameter command line parameter, the automap can be accessed, and the automap cheat code works. The automap is not accessible during a built-in demo, or while running a demo with the Parameter or Parameter switches; pressing the tab key in these modes brings up the game menu.

Controls
Several keys perform actions inside the automap:


 * F: Toggles follow mode. If follow mode is on, the map remains centered on the player, and if not, it is possible to scroll the map using the arrow keys while the player remains stationary.
 * M: Marks the current position with a number. Up to ten markers may be placed, numbered 0 through 9; further uses of the M key will cause the existing set of numbers to be sequentially erased in favor of the new positions. (In Doom95, this function is extremely buggy and may even cause the program to crash.) Note that Heretic and Hexen do not support marking spots.
 * C: Clears all marked positions.
 * G: Toggles grid on/off. Not supported in Heretic and Hexen.
 * +: Zooms in.
 * -: Zooms out.
 * 0: Zooms out fully. If pressed a second time without leaving automap mode, returns the map to its previous scale.
 * Tab: Exits automap and returns to normal view.

If one of these keys has also been mapped to a gameplay function (e.g. firing or running), the above table overrides that key's default behavior during automap mode. All other keys can be used as normal, however.

Heretic
Raven Software introduced a few changes to the automap in Heretic:
 * A parchment-like texture is used as a background behind the automap, stored in the lump. This was also retained in Hexen.
 * Linedefs of locked doors are colored with the color of their respective keys.
 * In the easiest skill level, keys themselves are shown on the automap, making it easier to find the way out.
 * The player appears as a sword rather than a simple arrow.
 * Lines are drawn using a modified form of, for a smoother anti-aliased appearance.

Hexen
Along with the enhancements and changes made in Heretic, the automap in Hexen will be remembered between levels in a hub, and the total time played on the current save slot will be shown in the upper right-hand corner of the map, up to a limit of 5 days. If this limit is surpassed, the timer will change to an Easter egg message which states, "YOU FREAK!!!"

Doom 64
Doom 64 offers the choice between wireframe mode and textured mode; in textured mode it renders the floor subsectors from a top-down view. Doom 64 also rotates the automap so that the player arrow is always pointing towards the top of the screen. A few more minor differences exist as well, such as pulsing the player arrow and changing the position where the level name is displayed.

Source ports
Several source ports have extended the automap with additional features. For example, Boom allows one to color-code secret sector boundaries, linedefs with teleport or exit types, and locked doors (with their key color as in Heretic). PrBoom+ and ZDoom offer a textured automap. Overlay mode is often implemented, which displays the map superimposed over the regular game view. PrBoom adds a rotate mode as in Doom 64 (originally from LxDoom). Source ports implementing room over room techniques may also offer additional features to adapt the automap to these effects.

Source ports must treat the automap specially with respect to aspect ratio, since it is not rendered using the same code as the player's three-dimensional view of the level. This is easily done via the addition of scaling multipliers to the, however.

Strife
In Strife: Quest for the Sigil, the automap state will be remembered between levels in hubs, and a special item called the scanner can be used to temporarily reveal the positions of all actors (in the same way as Doom's cheat code) if a map has been found for that level. Actors revealed by the scanner are color-coded to represent what type of object their arrows represent (such as an item or a monster).

In the Strife: Veteran Edition re-release, dynamic objective markers will be placed on the automap or turned off when the player is given objectives or completes them during conversations. These appear as a small red "X" in the software renderer, and are augmented with translucent strobing concentric circles when the high-quality hardware renderer is in use.

Trivia

 * The iddt cheat code can be used to display all linedefs and Things on the map. Zooming in closely on the player while this is active shows the letters "ddt", a reference to Dave Taylor who wrote the automap code. Boom modifies this: the letters "jff" are visible instead, a reference to Jim Flynn.
 * id Software planned to include a secret minigame in the automap, but it was never completed.
 * In the Doom source code, there is still a residue of an implemented but unused automap strobing effect, which would cause the automap to slowly fade to a low lighting level and then back to full brightness cyclically. This feature is either left as dead code or altogether eliminated in most source ports.