Skip to main content
Feature · Tech

The innovations.

What made Carmack's reputation: engineering solutions that moved an entire industry forward.

Scrolling · 1990

Adaptive tile refresh

A technique that redraws only the tiles that changed, making smooth side-scrolling possible on the PC — the foundation of Commander Keen.

Rendering · 1992

Textured ray casting

In Wolfenstein 3D, a simplified ray-casting renderer projects textured walls in real time: the illusion of first-person 3D on modest machines.

Rendering · 1993

Binary space partitioning (BSP)

In Doom, a BSP tree sorts surfaces to draw complex levels quickly, with height changes and lighting — and a data format open to modding.

Rendering · 1996

Surface caching & true 3D

Quake makes the leap to real-time polygonal 3D; surface caching combines geometry with pre-computed lighting for a rich, fast render.

Shadows · 2004

"Carmack's Reverse"

A robust variant of the shadow-volume technique (depth-fail), used in Doom 3 for reliable dynamic cast shadows.

Textures · 2011

MegaTexture (virtual texturing)

In Rage (id Tech 5), a single, enormous texture streamed on demand covers an entire world with no visible repetition.

Opening the source

Beyond the algorithms, Carmack's most lasting contribution may be his consistency: releasing the source code of id Software's engines years after their commercial run. That practice enabled the preservation of the games, countless ports (down to calculators and toasters, as the running joke goes), and the education of whole generations of programmers.

The opening happened in stages. The very first release, Wolfenstein 3D in 1995, came with a restrictive licence limited to educational use, with no right of redistribution. It was Doom, relicensed under the GPL in 1999, that made free licensing the rule. Carmack set out the reasoning himself in the readme.txt of Quake: earlier releases barred commercial exploitation but forced no one to share their changes, and the community lost the sources of several mods as a result.

Where to find the code

The official repositories are gathered on id Software's GitHub account. Licences and dates verified in the repositories themselves.

1995 · restrictive licence

Wolfenstein 3D

The first opening, and the only one that is not free software: the repository's LICENCE.DOC is a "Limited Use Software License Agreement" restricting the code to educational use, with no redistribution.

Open link →
1997, then GPLv2 in 1999

Doom

Released in late 1997 under a non-commercial licence, then relicensed under the GPL in 1999. It is id Software's most-followed repository and the starting point of most ports.

Open link →
22 December 1999 · GPL

Quake

Contains WinQuake, GLQuake and QuakeWorld. The readme.txt signed by Carmack lays out the reasoning behind the choice of the GPL.

Open link →
21 December 2001 · GPLv2

Quake II

The engine that generalised OpenGL hardware acceleration. Its development tools live in a separate repository, Quake-2-Tools.

Open link →
19 August 2005 · GPLv2

Quake III Arena

The basis of several standalone free games (OpenArena, Tremulous, Urban Terror). It is also the code that carries the famous fast inverse square root.

Open link →
22 November 2011 · GPLv3

Doom 3

Announced by Carmack at QuakeCon 2011. The id Tech 4 engine, home of volumetric shadows and "Carmack's Reverse".

Open link →
2012 · GPLv3

Doom 3 BFG Edition

A revised version of the id Tech 4 engine, and the last major code release made during Carmack's time at id Software.

Open link →
The remaining repositories

The id Software account

Around twenty repositories in total: Return to Castle Wolfenstein and Enemy Territory (GPLv3), the iOS ports of Doom and Wolfenstein, the GtkRadiant editor and the Quake development tools.

Open link →

Cite this page

John Carmack Archive, "John Carmack's Technical Innovations", updated 15 août 2026, https://carmack-archive.com/en/tech (accessed [date]).