Quake 3 source documentation

This part of the documentation includes a portion of Q3A (Quake 3 Arena - for those not "in the know") documentation. It is not meant to be a complete and perfect document, merely highlight our knowledge from this project.

Source code

We found and used a copy of Q3A source for Linux. This includes Makefiles and binaries for q3asm and q3lcc. All in all, I strongly recommend its usage for building Q3A mods. It is legal and free and can be found here. So during the compiling, if you dont hae the build tools, you can get them from this file :)

The source code that you can download is not the complete Q3A source, it's only the source so that mod's can be made. Most of the code for the engine hasn't been released, for obvious reasons. This means that you really only have access to the outer shell around the Q3A engine. There are "traps" into the engine that allow communication between the client and server. All of the rendering is also handled within the engine, as is keystroke and mouse button handling. The best method we found in which to handle the appearance and disapperance of events is to simply trust and believe the engine. There is also a brief description under the "syscalls" of cgame and game.

Directory structure

The directory structure of the source is quite well laid out. All the source can be found in the src/ directory. Inside the src/ directory are 4 directories:

cgame directory

The cgame/ directory contains all of the source for the client side of the game. So, if you wanted to simply change anything that will affect the client only, follow this link to find out a little more about the files and functions.

game directory

The game/ directory contains all of the source for the server side of the game. So, if you wanted to simply change anything to do with the server, follow this link to find out a little more about the files and functions.

q3_ui directory

The q3_ui/ directory contains all of the source for the user interface into Quake 3. Its main usage is for displaying large text and menus on screen. The menu files are set up well and can be added with no a great amount of effort. To find out more, click here.

ui directory

The ui directory contains user interface code for demos only. Don't do anything to this directory, because its simply never used as far as I can tell!

File names

Now, before you rush off and try to "mod" Q3A like no tomorrow, you should know a little about the file name structure also.

Any file beginning with: