Quake C Basics


compile:: to compile a program is to take the source code and make it into something that can be run or used. QCC(link) is the standard compiler for quake c.
patch:: aka mod (modification), addon. a patch is a modified "progs.dat" that changes the gameplay in quake.
source code:: plain text that does do anything until it is compiled. source code is meant to be read and understood by humans, not computers. the quake-c source code freely available, but quake's source code is not.

"Quake C" is a programming language created by John Carmack specifically for Quake. While the Quake.exe engine controls graphics, networking, and player control, Quake C controls the gameplay of Quake. Since the Quake C source code and compiler were released for free, hundreds of patches to enhance gameplay have been released.

Quake C is a boon to players everywhere because it allows virtually infinite possibilities for gameplay. By modifying the standard quake c (.qc) source code, programmers can make simple patches (changes) such as making a weapon fire faster or slower. Experienced QC programmers have created complex addons that modify quake c, as well as add new graphics, sounds, and levels. For examples of the possibilities of quake c, check out some Total Conversions, Mods, or the collection at the Quake C archives.

Quake C is based on the classic C programming language by Kernighan & Ritchie. While C was created in the 1970's and intended to be a real language, Quake C is a subset (smaller version) of C meant to be used only for programming Quake's gameplay. Although C compilers make .exe's, the QCC compiler makes a "progs.dat" file that is interpreted by the Quake engine. There have been programs created to decompile/reverse engineer (go from compiled useable form to source code) the progs.dat file, as well as programs (known as scramblers) to counter decompilers.

Although Quake C is powerful, id software and other companies using the quake engine are moving away from the interpreted QC towards compiled DLLs. Quake C is known as interpreted because as Quake runs, it is continually interpreting the progs.dat file. A DLL (dynamically linked library) would be pre-compiled. DLLs would therefore be faster, and offer more power to programmers. Since DLLs have total access to the system, they can theoretically do anything they want, such as formatting your hard drive or just storing player information. On the other hand, Quake C is platform independent (can run on many types of systems), and slower but more secure.


Inside 3D logo

Inside 3D is the phenomenal combination of two great Quake C sites, Inside.QC and Quake C Revealed. The site has great tutorials that break down Quake C into relatively simple terms and examples. Creative and daring souls that wish to venture into Quake C must stop by Inside.QC and thoroughly absorb the lessons contained there. Inside 3D was created and is maintained by Timm Stokke and Evan Yeagar. (Spotlight review by DaKoTa)

[Basics] [Servers] [Beyond basics] [Other versions of Quake] [Sources of information] [Citizenship] [Quake C] [Level editing] [Mods] [Quake derivatives] [Operating Systems] [Guide News]

This page is maintained by Kolinahr