Skip to content

John Carmack

The programmer behind Commander Keen, Wolfenstein 3D, Doom and Quake

A co-founder of id Software in 1991, John Carmack wrote the scrolling for Commander Keen and the 3D engines of Wolfenstein 3D, Doom and Quake. He explained his methods in public, released the source code of id's older engines, built rockets at Armadillo Aerospace, left id in 2013 to become chief technology officer of Oculus VR, and in 2022 founded Keen Technologies to work on artificial intelligence.

In 1990 John Carmack, a young programmer at Softdisk in Shreveport, Louisiana, worked out how to make an IBM PC scroll a game screen as smoothly as a Nintendo console. Within six years he had written the engines for Wolfenstein 3D, Doom and Quake, and each of them changed what people expected a PC to do. In November 1996 Computer Gaming World put him tenth in a list of the industry’s most influential people, and said that without his “programming tricks and gaming instincts” it was “questionable whether Wolfenstein 3D, Doom and Quake would have been made”.

He was also unusually open about how he did it. He posted his working notes on the internet, explained his techniques to other developers, and persuaded id to release the source code of its old engines, so that programmers could read the code of the games they had played.

Fast facts

  • Born: August 1970, Kansas.
  • Before id: freelance programming, then Softdisk, writing games for its subscription disks.
  • id Software: co-founded on 1 February 1991 with John Romero, Adrian Carmack (no relation) and Tom Hall. He stayed until 2013.
  • Engines: Commander Keen (1990), Wolfenstein 3D (1992), Doom (1993), Quake (1996), Quake II (1997), Quake III Arena (1999), Doom 3 (2004), Rage (2011). See id Tech.
  • Other ventures: Armadillo Aerospace, a rocket company (from 2000); chief technology officer of Oculus VR (from 2013); Keen Technologies, an artificial intelligence company (from 2022).

Smooth scrolling

Carmack came to Softdisk from freelance work; he had spent two semesters at the University of Missouri–Kansas City before leaving to program for a living. Softdisk’s games division, Gamer’s Edge, sold a subscription disk of PC games that needed a steady supply of new ones, and the PC was a hard machine to make games for: redrawing a whole screen of scenery every time the player moved was far too slow for an action game.

Carmack’s answer, which he called “adaptive tile refresh”, used the graphics card’s own scrolling and redrew only the tiles of scenery that had changed. Level designers helped by building maps from large areas of repeated tiles, so that each move left little to redraw. To show it off, he and his colleagues spent a weekend rebuilding the first level of Super Mario Bros. 3 on a PC and sent it to Nintendo. Nintendo was impressed, Romero recalled, but “they didn’t want their intellectual property on anything but their own hardware”. The team used the technique for a game of its own instead: Commander Keen in Invasion of the Vorticons, published as shareware by Apogee in December 1990. On 1 February 1991 four of them left Softdisk and founded id Software.

Into the third dimension

id’s contract games for Softdisk became Carmack’s test bed. Hovertank One (1991) drew flat-coloured walls; Catacomb 3-D (1991) added textures. Then, in four months in 1992, came Wolfenstein 3D. It used ray casting: for each column of the screen the program traced a line out from the player until it hit a wall on the map’s square grid, and drew that wall slice taller or shorter by its distance. Carmack later called it “an important pragmatic decision. I wasn’t experienced enough yet to do a solid implementation of a polygon, or even line-based, engine.” He was 21, he wrote, and “had only been programming in C for a year”.

Doom (1993) went much further: walls at any angle, floors and ceilings at any height, and light that faded into the dark. To draw it fast, Carmack turned to binary space partitioning, a way of sorting a map’s walls once, in advance, so the engine always knows which is in front. He found it in a 1993 paper by Bruce Naylor of AT&T Bell Labs, tried it first on the Super Nintendo conversion of Wolfenstein 3D, and then built it into Doom; the BSP trees entry explains the method. Carmack was frank about the engine’s limits. “Doom cannot draw sloping floors, overlapping walkways, or tilted walls,” he wrote in 1994, and walls could not slide sideways: “Thats why there are no swinging doors in Doom.”

Quake (1996), written with Michael Abrash, built its world from real 3D polygons and let players meet over the internet. When Computer Gaming World visited id before its release, Carmack explained why the team had removed Doom’s automatic aiming: “doing so rewards skill”. The magazine reported that he had written the dynamic lighting “in an hour as a bet”, and he was already describing the next engine: “Quake will be id’s last pure planar polygon-based engine.”

Working in public

id’s staff kept .plan files on their workstations, text that anyone on the internet could read with the finger command. Carmack updated his daily, and it grew from lists of bug fixes into long technical essays; one, on 23 December 1996, argued for OpenGL over Microsoft’s Direct3D. He also talked. “He would get up regularly at Game Developer Conferences and clear things up, explain how lightmaps and BSPs worked,” the programmer Glenn Corpes told PC Zone in 2000. At QuakeCon, the players’ gathering held near id’s offices every August from 1996, he had made his talk “an annual event” by 2002, IGN Unplugged reported, one that drew players away from their computers to listen.

The source releases came from the same instinct. Carmack remembered wishing, as a teenager, that he could look inside the games he played; he had used an Apple II sector editor to give himself gold in Ultima III. id released the code of Wolfenstein 3D in 1995 and of Doom on 23 December 1997. “Here it is, at long last,” his note began. Quake followed under the GNU General Public License in 1999, and later engines after it. “Being able to make that type of thing come true,” he said of the releases, “has been something I’m really proud of in my career.”

The partnership with Romero

For five years Carmack’s engines and Romero’s levels and tools made id’s games. The partnership did not survive Quake. Romero left in 1996; in his account to Edge the next year he had thought about leaving for a year and kept “on good terms with the id guys”. The Australian magazine APC wrote in 2004 that “constant conflict” with Carmack had seen Romero fired. Carmack himself, in a 2022 interview with the podcaster Lex Fridman, spoke of firing Romero and said that he regretted the way he had handled it. The two saw games differently. Edge summed up Romero’s view on leaving as a complaint that id was “no longer creating visionary game designs, but rather minimalist vehicles for its engines”; Carmack told Edge in 1999, “I look at my job as providing a park where people can go and enjoy themselves, whereas a lot of classical game designs are more like movies. They’re both equally valid but somewhat contradictory in approach.” The John Romero entry has more on his side of the story.

Rockets, virtual reality and AI

In 2000 Carmack founded Armadillo Aerospace in Mesquite, Texas, to build rockets. In 2005 Computer Gaming World ran a photograph of him floating weightless and quoting id’s Tim Willits: “[Carmack] is like a 13-year-old kid that just built his first toy.” Armadillo won $350,000 in the Lunar Lander Challenge in 2008 and $500,000 in 2009, before Carmack put it into “hibernation” in 2013.

That August he became chief technology officer of Oculus VR, a start-up making virtual reality headsets, and in November he left id. He stepped back to a consulting role in 2019 and left in December 2022. By then he had started Keen Technologies, which raised $20 million in 2022 to work on artificial general intelligence.

His honours include two Emmy awards for technology, the Game Developers Conference Lifetime Achievement Award in 2010 and a BAFTA Fellowship in 2016.

Sources

  • Fabien Sanglard, Game Engine Black Book: Wolfenstein 3D (2017): Carmack’s foreword (his age, a year of C, ray casting as a “pragmatic decision”); section 4.7 (how the ray caster draws one column at a time); chapter 3 (Softdisk and Gamer’s Edge, adaptive tile refresh, the Super Mario Bros. 3 demonstration and Romero’s quotation, the founding of id on 1 February 1991, the Softdisk games and Keen release dates); appendix G (Carmack’s 20th-anniversary commentary: Ultima III, the source code releases, “something I’m really proud of”); chapter 7, “Epilogue” (the source code release table; Carmack at id until 2013, then Oculus VR; his Emmys, GDC Lifetime Achievement Award and BAFTA Fellowship).

  • Bas Smits, Game Engine White Papers: Commander Keen (2026), section 4.10.2 (web, secondary): how adaptive tile refresh redraws only changed tiles, and why designers repeated tiles. https://github.com/bsmits74/Keen_White_Papers

  • Fabien Sanglard, Game Engine Black Book: DOOM (2018): chapter 4 (.plan files and the finger service); chapter 5 (BSP, Bruce Naylor’s paper, the Super Nintendo Wolfenstein 3D); appendix E (the source release note, 23 December 1997); appendix G.1 (Carmack’s essay from DOOM: Survivor’s Strategies & Secrets, 1994, and its quotations); appendix J (the “OpenGL vs Direct3D” .plan of 23 December 1996).

  • Vic Long, “Get Ready To Rumble”, Computer Gaming World issue 144, July 1996: the Quake visit, the auto-aim quotation, dynamic lighting “in an hour as a bet”, and the sidebar “Quake II and Beyond”.

  • Computer Gaming World issue 148, November 1996: “The Most Influential Industry Leaders” (Carmack tenth, and the quotation).

  • PC Zone issue 88, April 2000: interview with Lost Toys (Glenn Corpes on Carmack’s conference talks).

  • IGN Unplugged issue 17, October 2002: QuakeCon report (Carmack’s talk “an annual event”).

  • Edge issue 48, August 1997, pp. 70–72: “The Escape” (Romero on leaving id). Edge issue 73, July 1999: visit to id Software (Carmack’s quotation; Romero’s view of id on leaving). Australian Personal Computer, September 2004: feature on delayed games (Daikatana: Romero fired after “constant conflict” with Carmack).

  • Computer Gaming World issue 248, February 2005, p. 30: Carmack and Armadillo Aerospace in the X Prize contest, Tim Willits’ quotation.

  • “John Carmack”, Wikipedia (web, secondary): his birth date and place, the University of Missouri–Kansas City, Oculus VR from 7 August 2013, the consulting role from November 2019, leaving in December 2022, Keen Technologies’ $20 million in August 2022, the years of his awards, and his 2022 conversation with Lex Fridman. https://en.wikipedia.org/wiki/John_Carmack

  • “John Romero”, Wikipedia (web, secondary): Carmack’s 2022 statement on Lex Fridman’s podcast (episode 309, 4 August 2022) that he regretted how he had handled Romero’s firing. https://en.wikipedia.org/wiki/John_Romero

  • “Armadillo Aerospace”, Wikipedia (web, secondary): founded in 2000 in Mesquite, the Lunar Lander Challenge prizes of October 2008 and September 2009, and the “hibernation” of 2013. https://en.wikipedia.org/wiki/Armadillo_Aerospace

  • “id Software”, Wikipedia (web, secondary): Carmack joining Oculus VR in August 2013 and leaving id in November 2013. https://en.wikipedia.org/wiki/Id_Software

  • Softdisk advertisement for Gamer’s Edge, Computer Gaming World issue 89, December 1991: “Gamer’s monthly software subscription”, $10 a month, for IBM compatibles.

See also

Checked. Verified against primary sources and signed off by a person.