tuintje.org wiki
Admin

QuakeC

QuakeC is a scripting language developed by id Software for the Quake Engine. It allowed players and modders to create custom gameplay logic, weapons, and even entirely new games without modifying the engine itself.

It was one of the first embedded scripting systems in a commercial video game and became a key reason for Quake’s massive modding community and longevity.

Origins

When John Carmack and John Romero were developing Quake, they wanted the engine to be flexible and easily extendable by the community.

To achieve this, Carmack designed a built-in programming language called QuakeC, inspired by the syntax of C but compiled into bytecode that could run inside the game’s virtual machine.

This system allowed anyone to modify the game’s behavior while keeping the core engine closed and stable.

How It Worked

QuakeC was compiled using a special tool named qcc (QuakeC Compiler), which converted human-readable scripts into a single file called progs.dat.

When Quake was launched, the engine loaded this file and executed its contents, allowing for custom entities, AI logic, weapon mechanics, and game rules.

Through QuakeC, modders could:

Create new enemies, weapons, and power-ups

Change player physics or abilities

Script custom single-player missions or multiplayer modes

Build total conversions that transformed Quake into new experiences

Modding Revolution

QuakeC empowered players to go far beyond simple map editing. It turned Quake into a platform for creativity and experimentation.

Some of the earliest and most influential mods made with QuakeC include:

Threewave Capture the Flag

Team Fortress

Future vs Fantasy

AirQuake

These community creations laid the foundation for future multiplayer genres, including class-based shooters and team arena games.

Influence and Legacy

QuakeC’s design inspired future scripting systems in other engines. Valve Software’s Half-Life SDK inherited many ideas from it, allowing similar flexibility for modders.

Later id Tech engines moved toward compiled C++ code and plugin systems, but the concept of mod scripting lived on in systems like UnrealScript and modern mod APIs.

Even today, fan projects continue to use and expand QuakeC through enhanced engines like DarkPlaces, FTEQW, and QuakeSpasm.

Modern Use

Many community tools, such as fteqcc and fteqccgui, allow developers to write and compile QuakeC more easily on modern systems.

Advanced forks of QuakeC also support new data types, events, and modern syntax, extending its lifespan into the present day.

Legacy

QuakeC was one of the earliest examples of game logic separation, allowing players to modify gameplay without altering the core code.

This principle became standard in later engines, shaping how games are developed, customized, and distributed.

The language stands as a symbol of id Software’s open and innovative approach to player creativity — a philosophy that began with DOOM and reached new heights with Quake.

See Also

Quake

Quake Engine

id Software

John Carmack

John Romero

Michael Abrash

Team Fortress

Valve Software

DarkPlaces

id Tech Engines

DOOM Engine