ioquake3 / Quake3e / OSP / CPMA / CNQ3

Since our little boy arrived 8 months ago, opportunities to spend time gaming have become extremely scarce. So I find myself gravitating back towards Quake 3 Arena, rather than the single-player FPS games I’ve mostly been playing over the past 15 years or so, as a quick game of Quake 3 is typically short enough that it’s actually possible to fit one in occasionally. I should perhaps add that I have no expectation of playing online – I just play against nightmare bots nowadays.

My Q3 install has remained essentially untouched for years… ioquake3 with the OSP mod, and a config that I spent ages tweaking a long time ago. However I have now realised that I am somewhat out of touch – it seems that CPMA superseded OSP in popularity not long after I stopped playing competitively, and there are various other improved engines available besides ioquake3 now. Specifically, CPMA’s own CNQ3 engine, and also Quake3e. So I am trying to figure out whether it makes sense to “modernise” my own installation or not.

Having tried out the various options, I’m finding that Quake3e adds numerous enhancements whilst remaining faithful to the base game, so is an obvious “win” (except for one minor annoyance, mentioned later). However I am not yet convinced by CPMA (even when using VQ3 mode). It just feels “too different”, not least in terms of the UI. Given my current lack of free time, I also don’t fancy spending hours re-tweaking my config (which looks like it would be necessary for CPMA, but not if I continue with OSP on the Quake3e engine). But perhaps those changes in CPMA are in fact worthwhile improvements, and I should take the time to adapt. I am undecided…

One minor annoyance that I noticed when switching from ioquake3 to Quake3e (at least on Windows) is that the latter expects to have write access to the directory in which the game is installed, in order to write per-user config files there. This forced me to relocate the entire game into my home directory. Whereas ioquake3 could be installed into a system-wide location (eg under “Program Files”), and yet read/write per-user files such as configs from each user’s home directory. That seems so much more sensible, so the backwards step when switching to Quake3e is frustrating.

Having said that, I have settled on a workaround… I used Process Monitor to determine that Quake3e attempts to load .pk3 files from the appropriate location for a Steam installation of Quake 3 Arena by default. Perhaps the Windows binaries are compiled with that as their default fs_basepath (I’ve not looked at the code). While I could try setting fs_basepath to some other value myself, I am happy to use Steam as the system-wide location for pak0.pk3 – pak8.pk3. Then the Quake3e binaries, mods, and config files all go in my user profile. Even though it is still writing changes to the same location as the binary, rather than beneath %appdata%, this feels like a good compromise as the large .pk3 files no longer need to be in my user profile.

I also have two installations of Quake 3 Arena on Gentoo linux: one client, and one dedicated server. Rather than use the pre-compiled binaries directly I opted to write an ebuild to compile Quake3e from source (based on the ebuild for ioquake3 before it was pulled from the portage tree for some reason a year or so ago). I encountered a similar issue as on Windows whereby the build was ignoring the value of DEFAULT_BASEDIR as passed to the Makefile, so it wasn’t picking up the correct location of the .pk3 files. My workaround was to write a wrapper script to launch the game which sets the value of fs_basepath:

$ cat /usr/bin/games/quake3
exec quake3e.x64 +set fs_basepath "/usr/share/games/quake3" "$@"

3 Replies to “ioquake3 / Quake3e / OSP / CPMA / CNQ3”

  1. Really cool! I’ve been so out of the loop when I finally did a fresh install of gentoo after so many years I was confused where ioquake3 went. Would you mind posting a link to the ebuild that you have? I’d love to take a look and get a game or two in again.

  2. I just returned to q3. And for me quake3e seems to work right away. No hassle or tinkering all kinds of setting. Well the basics, like mouse sensitivity, com_hunkmegs and the menu setting but that just seems to be it….

  3. I resurrected my Q3 Arena Game/Server installation which goes back 20 years!

    I used to host Lan-Parties with about 10 – 20 friends, it was great fun.
    That back when 640/400 or 800/600 was still a good resolution .. 🙂

    I tried IOQuake but somehow found Q3E more straight forward and more stable, especially the Liunx Server.
    I also found it confusing that IOQuake creates/uses its own baseq3 directories.
    (one for the install, and another one on a user basis)

    I play on the Windows side, using my old installation directory with a
    .cmd containing:
    quake3e.exe +set fs_basepath “path to main quake directory”

    Cheers and Happy Holidays

Leave a Reply

Your email address will not be published. Required fields are marked *