Nobody at id Software called the Doom engine “id Tech 1” in 1993. The name came fourteen years later. When id showed its new engine for Rage in 2007 it called it id Tech 5, and the older engines were numbered backwards to fit, starting with the one John Carmack wrote for Doom. What the numbers describe is real enough: a line of engines that id used for its own games, sold to other studios, and then gave away as source code once it was a few years old.
That last habit made the engines unusual. From Wolfenstein 3D in 1995 to Doom 3 in 2011, id published the code of its old technology, and programmers learned from it for decades. Fabien Sanglard, who learned C from the Doom code and later wrote books on both Wolfenstein 3D and Doom, calls it the “University of id Software”.
Fast facts
- Developer: id Software. John Carmack wrote the early engines, with Michael Abrash helping on Quake.
- The name: first used for id Tech 5, announced in 2007; the earlier engines were numbered afterwards.
- Engines: id Tech 1 (Doom, 1993), the Quake and Quake II engines (1996 and 1997), id Tech 3 (Quake III Arena, 1999), id Tech 4 (Doom 3, 2004), id Tech 5 (Rage, 2011), id Tech 6 (Doom, 2016), id Tech 7 (Doom Eternal, 2020) and id Tech 8 (Doom: The Dark Ages, 2025).
- Source code: released for Doom (1997, under the GPL from 1999), Quake (1999), Quake II (2001), Quake III Arena (2005) and Doom 3 (2011). Nothing from id Tech 5 onwards has been released.
Which engine is id Tech 2?
Because the numbers were handed out after the fact, public sources disagree about one of them. Todd Hollenshead, id’s chief executive in 2007, counted the Doom engine as id Tech 1 and put the Quake and Quake II engines together under id Tech 2, according to a FiringSquad article that year, and Sanglard’s Wolfenstein 3D book lists both games as idTech 2. Other public references, Wikipedia among them, keep “id Tech 2” for the Quake II engine alone and call its predecessor simply the Quake engine. The two engines were different programs: Quake ran its game rules in its own language, QuakeC, while Quake II moved them into a replaceable library (a DLL) and added coloured lighting. This entry calls them the Quake engine and the Quake II engine.
| Engine | First game | Year | What was new |
|---|---|---|---|
| id Tech 1 | Doom | 1993 | Walls at any angle, floors and ceilings at any height, light levels per area, a BSP tree for drawing order |
| Quake engine | Quake | 1996 | A true 3D world of polygons, polygon monsters, client-server networking over the internet |
| Quake II engine | Quake II | 1997 | Coloured lighting, game code in a replaceable library |
| id Tech 3 | Quake III Arena | 1999 | Curved surfaces, shader scripts, a 3D graphics card required |
| id Tech 4 | Doom 3 | 2004 | Every light casting real-time shadows, per-pixel lighting |
| id Tech 5 | Rage | 2011 | MegaTexture texturing |
| id Tech 6 | Doom | 2016 | Support for the Vulkan graphics interface |
| id Tech 7 | Doom Eternal | 2020 | Vulkan only on PC |
| id Tech 8 | Doom: The Dark Ages | 2025 | Requires a graphics card with ray-tracing hardware |
Before the numbers
Carmack’s engines had a history before Doom. His smooth-scrolling technique, “adaptive tile refresh”, gave id its start with Commander Keen in 1990. Hovertank One and Catacomb 3-D in 1991 were first-person mazes, and Wolfenstein 3D in 1992 used ray casting, which Carmack later called a “pragmatic decision”: “I wasn’t experienced enough yet to do a solid implementation of a polygon, or even line-based, engine.” None of these carries an id Tech number.
id Tech 1: Doom
Carmack described the Doom engine’s world himself: “a two-dimensional arrangement of lines representing walls, and flat floors and ceiling of variable heights”. Every area of floor had its own heights and light level, so a map could have stairs, lifts, pits and dark rooms. What it could not have was one room above another, or a sloping floor.
The engine stayed fast by sorting walls with a binary space partitioning tree. Carmack did not invent the technique. He took it from a 1993 paper by Bruce Naylor of AT&T Bell Labs, first used it for the Super Nintendo conversion of Wolfenstein 3D, and then built it into Doom, where a separate program worked the tree out when a map was saved. The BSP trees entry explains how it works.
Other studios built games on it. Raven Software made Heretic and Hexen with it; John Romero set Raven up with id’s NeXT workstations and tools himself. Strife, published by Velocity, was advertised in 1996 as “the first game to fuse the spectacular Doom engine” with role-playing.
The Quake engines
Quake in 1996 dropped the flat plan. Its levels and monsters were true 3D polygons, with 200 to 500 polygons to a monster, and players could look up and down. Its world was lit by light maps, worked out in advance, and Carmack added moving lights, according to Computer Gaming World, “in an hour as a bet”. It was built as a client and server, so anyone who owned the game could host a match over the internet. GLQuake in 1997 added support for 3D graphics cards through OpenGL.
Carmack was already thinking past it. “Quake will be id’s last pure planar polygon-based engine,” he told the magazine in 1996. “The future will utilize much more advanced geometries, and will allow the programmers to specify the curvature and even roughness of surfaces.” Curved surfaces arrived in Quake III Arena three years later.
These engines sold well to other studios. Raven used the Quake engine for Hexen II and the Quake II engine for Heretic II. Valve’s Half-Life was built on an enhanced Quake engine. Ritual Entertainment announced Sin on the Quake engine in 1997 and moved it to the Quake II engine before release. Romero’s own Daikatana was planned on the Quake engine and shipped in 2000 on Quake II’s.
id Tech 3 and id Tech 4
id Tech 3, written for Quake III Arena, dropped software drawing altogether and needed a 3D graphics card. It let artists describe surfaces in text scripts, called shaders, and build curved surfaces. Other studios built Medal of Honor: Allied Assault, Raven’s Star Wars Jedi Knight II and the first Call of Duty on it.
id Tech 4, for Doom 3 in 2004, lit every surface pixel by pixel and gave every light real-time shadows. It went into Quake 4, Prey and Enemy Territory: Quake Wars.
Engines for others, code for everyone
id released the source code of each engine a few years after the game it was written for. The Doom code came out on 23 December 1997, “for your non-profit use”, and was relicensed under the GNU General Public License in 1999. Quake followed under the GPL on 21 December 1999, Quake II in December 2001, Quake III Arena on 19 August 2005 and Doom 3 on 22 November 2011. For Doom 3, Carmack rewrote the shadow code before release to avoid a patent held by Creative Labs. The Doom and Quake entries describe their own releases in more detail.
The released code grew communities of its own. Hundreds of Doom source ports appeared, among them Boom, ZDoom, GZDoom and Chocolate Doom; ioquake3 has kept the Quake III Arena engine running on modern systems. The practice ended with id Tech 5. Sanglard, writing in 2017, noted that it “stopped with the Rage (id Tech 5) engine”.
After Carmack
Carmack left id in 2013 to join Oculus VR, and the later engines were built without him. id Tech 6 brought the Vulkan graphics interface to Doom (2016), id Tech 7 used Vulkan alone on the PC for Doom Eternal (2020), and id Tech 8 made ray-tracing graphics cards a requirement for Doom: The Dark Ages (2025). ZeniMax Media bought id in 2009, and since 2021 both have been part of Microsoft.
Sources
- Fabien Sanglard, Game Engine Black Book: Wolfenstein 3D (2017): John Carmack’s foreword (ray casting as a “pragmatic decision”, the quotation); chapter 3 (adaptive tile refresh, Hovertank One and Catacomb 3-D); chapter 7, “Epilogue” (the table of id’s games and engines, including Quake and Quake II as idTech 2; the table of source code releases; “this practice stopped with the Rage (id Tech 5) engine”; Romero’s help to Raven on Heretic and Hexen).
- Fabien Sanglard, Game Engine Black Book: DOOM (2018): chapter 4 (the Doom release; Romero on setting Raven up with NeXT workstations for Heretic and Hexen); chapter 5, “Software: idTech 1” (the BSP tree, Naylor’s 1993 paper and Carmack’s first use of BSP on the Super Nintendo Wolfenstein 3D); the epilogue (source ports, and Sanglard’s “University of id Software”); appendix G.1 (Carmack’s essay from DOOM: Survivor’s Strategies & Secrets, 1994: the engine’s map model and its limits); appendix E (Carmack’s source release note, 23 December 1997).
- Vic Long, “Get Ready To Rumble”, Computer Gaming World issue 144, July 1996: Quake’s polygon counts, dynamic lighting “in an hour as a bet”, and the sidebar “Quake II and Beyond” (the quotations on planar polygons and curved surfaces).
- Computer Gaming World issue 143, June 1996: Strife advertisement (“the first game to fuse the spectacular Doom engine”).
- Computer Gaming World issue 155, June 1997 (Hexen II on the Quake engine); issue 158, September 1997 (Half-Life and Sin on the enhanced Quake engine); issue 161, December 1997 (Sin moving to the Quake II engine, and that engine’s move to DLL files); issue 169, August 1998 (Heretic II on the Quake II engine, and its coloured lighting).
- Edge issue 42, February 1997: Ion Storm planning to license the Quake technology. PC Zone issue 91, July 2000: Daikatana review (the Quake II engine).
- PC Zone issue 100, March 2001: Medal of Honor: Allied Assault “uses the Quake III engine”. PC Zone issue 104, July 2001: Jedi Knight 2 “powered by the Quake III engine” and made by Raven. Edge issue 128, October 2003: Call of Duty review (“The game uses the Quake III engine”).
- Wireframe issue 16, June 2019, pp. 50–53, “Developer Profile: id Software”: Doom 3’s “id Tech 4 engine”.
- “id Tech”, Wikipedia (web, secondary): the names applied retroactively from id Tech 5, Todd Hollenshead’s numbering as reported by FiringSquad, “Rage: id Tech 5 First Look” (2007), and the engines from id Tech 5 to id Tech 8. https://en.wikipedia.org/wiki/Id_Tech
- “Quake engine”, “id Tech 3” and “id Tech 4”, Wikipedia (web, secondary): the Quake engine’s light maps and Abrash’s part; the Quake and Quake III Arena source releases and their dates; id Tech 3’s shader scripts and graphics-card requirement; ioquake3; id Tech 4’s lighting, the Creative Labs patent, the Doom 3 release on 22 November 2011 under GPL-3.0-or-later, and the games that used it. https://en.wikipedia.org/wiki/Quake_engine, https://en.wikipedia.org/wiki/Id_Tech_3 and https://en.wikipedia.org/wiki/Id_Tech_4
- “Doom engine”, Wikipedia (web, secondary): the relicensing of Doom under the GPL on 3 October 1999. https://en.wikipedia.org/wiki/Doom_engine