This is the original C source code for the Quake game engine, a landmark first-person shooter engine from the 1990s. It is a retro game engine that renders 3D environments and processes player input in real time using CPU-based software rendering rather than GPU acceleration. The engine supports networked multiplayer gameplay over LAN or internet connections and is designed to be moddable, allowing users to create and run custom game modifications and levels.
The engine's architecture includes a Binary Space Partition tree for efficient world geometry organization and visibility determination, a client-server network model that separates game state authority into a server process, and a QuakeC virtual machine that executes game logic through a bytecode interpreter. It also features a software-based sound mixing subsystem, a fixed-function pipeline for 3D rendering, and a timer-based frame loop that drives the game at a consistent update rate.
This repository serves as a resource for studying a historically significant game engine's implementation, enabling retro game preservation and providing a foundation for learning about real-time 3D rendering and multiplayer networked gameplay. The source code can be compiled and run directly to experience the original game engine's logic and rendering loop.