My blog has been moved to ariya.ofilabs.com.

Tuesday, January 13, 2009

bleeding-edge ioquake3 to play Quake III: Arena

Here is step by step short instructions if you want to play Quake III: Arena using the bleeding-edge version of ioquake3. Reasons to do this (instead of using the vanilla Q3A executable): ioquake is still actively developed and maintained and it has new fancy features like in-game VoIP, SDL backend, OpenAL support, x86-64 JIT, MinGW build, and many others.

Get ioquake3 source code using subversion, git, or a normal plain web browser.

To get the source code using Subversion:

svn co svn://svn.icculus.org/quake3/trunk ioquake3

Windows users might want to use something like TortoiseSVN and enter svn://svn.icculus.org/quake3/trunk to check it out.

Since cool kids are using git these days, I set up an unofficial git mirror of the repository at github.com/ariya/ioquake3/. It is synchronized with the subversion repository. To get the code:

git clone git://github.com/ariya/ioquake3.git

Windows users might want to use something like msysgit.

If you are allergic to subversion and git, grab the most up-to-date source code as ZIP or tar.gz package. Use a web browser or tool like wget. How is the last one possible? Hint: download button at the github page.

Build ioquake3, which is quite easy.

On Windows, you need MinGW, MSYS, along with typical development packages (gcc, make, etc). Run MSYS, go to the ioquake3 source directory (e.g. C:\ioquake3), and just type make. If everything is OK, you will get the executable (e.g. at C:\ioquake3\build\release-mingw32-x86\ioquake3.x86.exe). After that, grab SDL 1.2.11 (try to match it with ioquake3, see e.g. C:\ioquake3\code\SDL12\include\SDL_version.h) development package for MinGW, extract it and put it in your MinGW directory (e.g. C:\MinGW).

On Linux/Unix, you need SDL and OpenAL development packages. Then go to the ioquake3 source (e.g. ~/ioquake3) directory and type make. You will find the executables at the build subdirectory (e.g. ~/ioquake/build/release-linux-i386/ioquake3.i386)

Start to play, since the executable is now ready. Before that, we need to copy the Q3A game data.

On Windows, get the pak0.pk3 from your Q3A CD. Afterwards, find and install Q3A point release 1.32 and then locate its additional data files (e.g. C:\Program Files\Quake III Arena\baseq3). Place all these *.pk3 files to your user Q3 directory (e.g. C:\Document and Settings\username\Application Data\Quake3\baseq3). Launch ioquake3 and you are set.

On Linux/Unix, copy all pk3 files to the baseq3 directory (e.g. ~/.q3a/baseq3). Again, if you have installed 1.32 point release, there will be 9 pk3 files needed. Now just launch the ioquake.i386 executable and have some fun.

Related note: if you don't own Quake 3, then just download and install OpenArena. Of course, it is not an exact 1:1 copy of Quake 3, but enough to have some fraggin' fun. You don't even need to bother with building ioquake3 at all because OpenArena already packages it. If you are bored with Q3A, there are other similar free and good games, like Warsow, Nexuiz, Tremulous, Urban Terror, and many others.

1 comment:

Anonymous said...

If you are on Windows you might as well use Visual Studio Express, mingw creates slower object code.

Also you forgot to mention that in using ioq3 you miss out on Punk Buster. The SDL input is "off" when compared to iD's binary, which is to say that it is not as responsive to play as the old system (its just easier to work with and port from a developers standpoint).