Skip to main content

Game engine: id Tech 1 (Doom engine)

Overview
Released in 1993 and principally engineered by John Carmack, id Tech 1, better known as the Doom engine, set the template for real-time first-person rendering on commodity PCs. It combined fast, deterministic software rendering with a data-driven asset format and a moddable pipeline that invited a thriving community. The “id Tech 1” label was applied retroactively; at launch it was simply the Doom engine, powering Doom and Doom II and later licensed for games such as Heretic, Hexen, and Strife.

Rendering and World Model
The engine is a classic “2.5D” design. Levels are defined by vertices, linedefs, sidedefs, and sectors; each sector carries floor and ceiling heights, textures, and a fixed light level. Geometry is not truly volumetric: rooms cannot overlap vertically, and the camera cannot pitch, which the engine side-steps via vertical column rendering and horizontal spans for floors and ceilings. Sprites billboard toward the camera and interact with the sector-based world, yielding a convincing illusion of depth at low cost.

Doom’s speed comes from binary space partitioning. Maps are preprocessed into a BSP tree with nodes, subsectors, and segments, enabling front-to-back traversal, rapid clip rejection, and correct draw ordering without a z-buffer. A REJECT table offers coarse sector visibility culling, while a BLOCKMAP accelerates collision checks. Rendering relies on 8-bit palettized VGA at 320×200, with per-sector brightness and distance-based dimming driven by a COLORMAP. Lighting is static but artful: “fake contrast” and animated specials (flicker, glow) create mood without per-pixel lights. The software renderer uses fixed-point math and lookup tables for trigonometry and perspective, with hand-tuned inner loops for columns and spans.

Data Format and Tools
All assets are packed into WAD files as “lumps,” including maps (THINGS, LINEDEFS, SIDEDEFS, SECTORS, NODES, SEGS, SSECTORS, VERTEXES), textures (PNAMES, TEXTURE1/2), flats, sprites, sounds, and palettes (PLAYPAL). This modular structure made content replacement straightforward and seeded a mod culture. Internally, id built levels with DoomEd on NeXTSTEP; the community quickly produced editors like DEU and DCK, along with DeHackEd for behavior tweaks. The engine exposes numerous linedef specials for doors, lifts, triggers, scrolling, light changes, and stairs, enabling expressive logic without a scripting language. Raven’s derivatives extended the format, Heretic added features and assets; Hexen introduced hub levels and ACS scripting, demonstrating the engine’s elasticity.

Physics, AI, and Audio
Movement and collision use axis-aligned bounding boxes and deterministic fixed-point arithmetic, which guarantees identical outcomes across machines and underpins the engine’s demo and networking systems. Hitscan weapons auto-aim vertically, and projectiles move in true 3D within the sector model. Sound runs through the DMX library, mixing digital effects with MUS/MIDI music; spatialization is sector-aware and leverages the REJECT table to limit propagation.

Networking and Demos
Multiplayer employs a lockstep, peer-to-peer model: each “tic” all clients exchange compact input commands, keeping the world state consistent with minimal bandwidth. The same deterministic structure powers demo recording and playback by capturing inputs rather than frames, allowing tiny files that reproduce entire sessions, until a code or data mismatch causes the infamous desync.

Limits, Artifacts, and Performance
The design imposes memorable constraints: no room-over-room, a finite number of “visplanes” for floor/ceiling spans, and savegame and drawlist ceilings that mappers learned to skirt. Visual glitches like the HOM (hall of mirrors) effect and tutti-frutti textures became both pitfalls and lore. Despite these limits, the engine extracted remarkable performance from 486-era hardware via tight C with strategic assembly.

Legacy
id released the source in 1997 and later under the GPL in 1999, igniting a long-lived ecosystem of ports and enhancements. Concepts pioneered here, BSP visibility, data-driven levels, deterministic simulation, and community-first tooling, echo through modern engines. id Tech 1 proved that clever software and smart data design could turn architectural constraints into enduring style.
id Tech 1 (Doom engine)

The engine used for Doom and Doom II, featuring innovations such as BSP-based rendering, sector-based world representation and efficient software rasterization; a foundational step in modern real-time 3D engines authored by Carmack and id Software.


Author: John Carmack

John Carmack John Carmack, a tech innovator behind iconic games like Doom and Quake, and a major influence in modern gaming technology.
More about John Carmack