Quake Source Code

This is the complete source code for winquake, glquake, quakeworld, and glquakeworld.
 
The projects have been tested with visual C++ 6.0 and above, but masm is also required to build the assembly language files. It is possible to change a #define and  build with only C code, but the software rendering versions lose almost half its speed.  The OpenGL versions will not be effected very much. See the included documentation for exact details.

This version of the source includes Visual C++ 2008 Express Edition. To compile:

1. Start Visual C++ Express Editor
2. Open the winquake.sln file by doing File->Open->Project/Solution
3. Press F7 to compile and it should compile as-is
4. The glquake.exe is in the "release_gl" folder.

There are several dozen things "wrong" with glquake, so if it runs funny like you get a white screen (add -no8bit to command line) or if it runs too fast or too slow (clock issue with dual core/quad core if you have one of those), it isn't the fault of the compiler, it's something else. You should probably read this article and a few of the other ones out there about building Quake from source.

No idea where to start? These tutorials might help.

You will also need the game data (pak files) frm the original game disks.

 

Quake II Source Code

This is the complete source code for Quake II, version 3.21, buildable with Visual C++ 6.0 or above. The linux version should be buildable, but has not been tested by us.

You will also need the game data (pak files) from the original game disks.

 

Quake III Arena Source Code

This is the full source code for Quake III Arena. This includes compiler tools and the Q3Radiant editor.

VC7 / Visual C++ 2003 project files are provided:

  • code/quake3.sln
  • q3radiant/Radiant.sln

To compile the qvms, you need to run some batch files: you will need to have lcc.exe q3cpp.exe q3rcc.exe and q3asm.exe in your path (some precompiled binaries are provided in lcc/bin and code/win32/mod-sdk-setup/bin). The qvm batch files are in code/game code/cgame code/q3_ui code/ui.

You will also need the game data (pk3 files) frm the original game disks.

 

QuArK Map Editor

QuArK stands for Quake Army Knife and is a game editor for Quake 1, Hexen 2, Quake 2, Heretic 2, Half-Life, Sin, Kingpin, Soldier of Fortune, Quake 3: Arena, Star Trek Voyager: Elite Force, Half-Life 2 and a lot more... .


It can edit maps and models, import sounds and textures, create pak-files and run compilers. Features include:

  • Unique and editable tree-view display, which shows objects that the map/model consists of.
  • 3D preview with software-, OpenGL- and 3Dfx(Glide)-render.
  • Colored lights in OpenGL 3D preview.
  • 2-, 3- and 4-view layout of map-editor.
  • Textured view edit in map-editor.
  • Texture-browser with textures neatly grouped into categories.
  • Mirror-, Duplicator- and Hollow-maker functions for easy map-making.
  • Extendable with plug-ins, coded in Python.
  • Negative brushes - creates a movable hole, no more redoing your carving/brush subtraction.
  • Bezier/patch editing, with helper functions to ease creation.
  • Manipulate brushes, textures and entities directly in the 3D windows.
  • Player-, monster- and item-models viewable in 3D preview. (Not all games)
  • Unique high accuracy of brush- and texture-alignment in map-editor. (May require special build-programs)
  • Mailing-lists supplied by YahooGroups, for easy communication to and from QuArK users.
  • Project-explorer to keep all files of the TC/PC/MOD collected in one file.
  • A fully functional model-editor (Not all model formats are supported)
  • Customizable keys, mouse-buttons, colors and more.
  • Extremely newbie-friendly map-editor, very different from other popular map-editors, with context help and intuitive functions.

 

Some level of programming knowledge is required for all of the above. Not just anybody can write a mod from scratch or work out physics and lighting for maps! We cannot support you if you run into trouble, so we advise joining one of the many modding or mapping communities instead and going through their tutorials and forums for help.