Build a custom first-person shooter by using the Quake engine as a base and supplying your own game assets
Study 1990s real-time 3D rendering and game engine architecture from a landmark production codebase
Create a total conversion mod or entirely new game on top of the Quake engine
Learn how software and OpenGL rendering paths were implemented and optimized in C and assembly
Designed for Visual C++ 6.0, modern compiler compatibility may require patches. Engine only, original Quake game data must be sourced separately (not included in repo).
This is the original source code for Quake, the first-person shooter game released by id Software in 1996. John Carmack published the code under the GNU General Public License, commonly called the GPL, which allows anyone to read, modify, and redistribute it, provided they also release their changes as open source. The release includes four versions of the engine: the standard Windows build, the OpenGL-accelerated version, and the two Quakeworld variants designed for online multiplayer. The code is written in C, with some assembly language for the software rendering path. The README notes that removing the assembly code is possible via a flag, but the software renderer loses roughly half its speed as a result. The OpenGL path is less affected. The project was tested with Visual C++ 6.0. An important distinction: only the engine source code is in this repository. The actual game data, including the maps, textures, sounds, and character models, remains under id Software's original copyright and is not included. You can use the code to build a completely new game, called a total conversion, but you cannot simply package the original Quake game content and distribute it freely. The release was intended for entertainment and education. The README, written by John Carmack himself, also encourages mod developers who publish modified versions to release their source code in turn, citing cases where mod projects were lost because teams kept their code private.
← id-software on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.