Learning quake3 modding

I would start from ioquake3 repo. There isn’t a maintained ioq3 SDK as far as I know. ioquake3 receives bug fixes and improvements to the mod code as well.

The mod code is in ioquake3 code/game, code/cgame, code/q3_ui (baseq3), code/ui (Team Arena), code/qcommon/q_shared.*, code/qcommon/q_math.*. The code/qcommon/q_* files are code/game/q_* in the Q3 SDK.

You can disable building the ioquake3 server and client executable using make BUILD_SERVER=0 BUILD_CLIENT=0 (or setting those in Makefile). The ioquake3 Makefile also has the benefit of building mod DLLs using gcc or clang which have better error messages and can be used with a debugger (gdb, lldb). It shouldn’t be too difficult to build the Q3 1.32 SDK code using ioquake3’s Makefile and lcc (code/tools).

By default QVMs built using ioquake3 Makefile cannot run on the original Quake 3 engine (due to slightly modified QVM format). To run on original Quake 3 (and ioquake3) you need to pass -vq3 (vanilla q3) to $(Q3ASM) in Makefile when linking QVMs.

Q3AGameSource.exe is the name of the older Quake 3 1.1x SDK source code which incompatible with final patched Quake 3 1.32 (Quake 3 1.32b engine source code and ioquake3). The final patched Quake 3 1.32 SDK is Q3A_TA_GameSource_132.exe.

The main consideration is which license you want to use for you mod. Q3 SDK license (Q3A_TA_GameSource_132.exe) or GNU GPLv2+ (Quake 3 1.32b source code / ioquake3).

GNU GPLv2+ requires your mod source code to be available to anyone with binaries (QVMs/DLLs). The Q3 SDK license and GPL license are incompatible. So whichever you pick there is Quake 3 code out there you cannot use. If you use the GPL license, you cannot add code with no license or Q3 SDK license. If you use Q3 SDK license, you cannot add code with GNU GPL license.

Personally I would use the mod code from ioquake3 since it has additional bug fixes and improvements over the original Quake 3 1.32, licensed under the GPL which is needed for standalone games, and allows using code from other GPL games/mods. However if you want to add Challenge Pro-Mode (CPM) physics (or other tutorials that have a large amount of complex code and no license) you need to use the Q3 SDK license. I don’t know what license the majority of new mods are using.

2 Likes