Quake III DeFRaG World Cup 2008

DeFRaG is a Quake III Arena mod where the goal is to remove ALL violence and replace it with skill. As such, the goal isn’t the most frags; it’s completing a level by shooting all the targets on walls, or getting from A to B in the fastest time possible (which is what the video below is about). Getting from A to B might sound easy, but I assure you, it is absolutely rock-solid hard – you need to abuse physics and keep your momentum up throughout an entire level to be able to, literally, leap over buildings in a single bound… Without that kind of speed, you’re going to be like Neo in the jump program ;-)

The only thing I can think of to which younger gamers (meaning those who’ve never played Q3A) might relate would be to think of it as an old-school version of Mirror’s Edge – with rocket launchers to assist you in your run… Only that actually makes it 10x harder, because you have to be spot on with where and when you use them as well as your regular aiming and jump timings.

Anyways, the point of this post is the 2008 DeFRaG world cup video “Trixo” below – which is all kinds of awesome… (Hint: Fullscreen makes this 10x cooler to watch).

Also, sweet riff on GLaDOS, no? =D

How-To: IOQuake3 Linux Tips n’ Tricks

I had to build a copy of IOQuake3 (Q3 from now on) the other day, as the version I had wouldn’t spawn bots on 64-bit Linux. Did that – worked well, but I found out a couple of other things you can do and fixes you can make to maximise the entire Q3 experience, so I thought I’d jot ’em down…

Run At Any Resolution

By default, Q3 gives you a rather poor list of available resolutions – to see what’s available, just hit the tilde key (i.e. ` – backtick, just left of the “1” key) and type: \modelist and you’ll see something like this:

ioquake3 - modelist

Well, we can do better than that – just enter the following couple of lines (changing the width and height to any valid, known resolution) and you’re set! Personally, I use these:

\r_mode = -1
\r_customwidth 1920
\r_customheight 1080

And presto – full resolution! Be aware than if change any options in the Options | System part of Q3 it’ll override your custom resolution, so you’ll need to set it back by repeating the above lines.

ioquake3 - custom resolution

You might see some people talking about changing \r_customaspect (which by default simply has the value 1), but I didn’t really see it doing a great deal. But if you want to experiment yourself, your aspect ratio is just your horizontal resolution divided by your vertical resolution, so for me it’d be 1920 divided by 1080, which gives 1.7777778, so I might put it just as 1.7 or 1.8 – but really, I didn’t see much if any difference when I’ve messed with it, apart from a possible slowdown when I actually used 1.77777778, which could have just been my perception of things… I did a quick side-by-side comparison with different r_customaspect values and did a \vid_restart between each one:

ioquake3 - custom aspect difference [None!]

Record and Play Demos

To record demos (i.e. record you playing against your mates or randoms) you need two commands which you can happily issue from the command window (i.e. stab tilda and type ’em):

  • record – records a demo
  • stoprecord – you guessed it, stops the recording…

However, typing these at the prompt can be a pain, so why not just bind them to some keys? You can do this easily enough by opening the file ~/.q3a/baseq3/q3config.cfg and adding the following lines somewhere in it (then saving it, obv!):

bind F5 "record"
bind F6 "stoprecord"

Now, all you need to do is stab F5 to start recording a game and F6 to stop the recording. You might see some moaning about needing g_syncronousclients 1 set, but you can safely ignore it as it’s a legacy requirement that doesn’t even exist in recent versions of Q3.

Your demo will be recorded with the filename demoXXXX.dm_68, where XXXX is a number starting at 0000 and going upwards with each demo recorded. It’ll be saved in the folder ~/.q3a/baseq3/demos/, but when you go to play it from the Demos part of the main menu – it won’t play. Instead, it’ll come up with the error “Couldn’t open demos/demo0000.dm_68” or the like:

ioquake3 demo error

The fix/workaround for this is to go to the location of your demos (~/.q3a/baseq3/demos/) and RENAME THE FILE TO ALL CAPITALS! No, really. I guess this is a really old error which has reared it’s ugly head because Windows systems aren’t case sensitive (so myfile.txt, MYFILE.TXT and MyFiLe.TxT are all seen as the same thing to Windows) whereas Linux takes case sensitivity into account… I’m tempted to go digging in the code and apply an upcase statement to the demo filename retrieval mechanism…


I guess those are the main two things I’ve been concerned about getting working properly, besides getting the thing to work in the first place, so I guess I’ll leave the VOIP stuff until I’ve got some more time… Got any comments, suggestions, improvements? Sling ’em in the comments! Cheers! :D

How-To: Fix Missing Bots in ioquake3 in Linux

I don’t do a lot of PC gaming these days, preferring more to just sling a disc in the 360 or PS3 to get my jollies without all the patch/driver hassle, but you’ve got to have a couple of linux games installed to vent the occasional blood-lust. With that in mind, I grabbed the latest version of ioquake3 earlier, and tried out a single player game, but no bots would join the match, and a look at the shell showed errors along the line of:

^1Error: file bots/default_c.c, line 2: file charsh” not found
^3Warning: couldn’t find skill 1 in bots/default_c.c
^1Error: file bots/default_c.c, line 2: file charsh” not found
^1Error: file bots/default_c.c, line 2: file charsh” not found
^1Error: file bots/default_c.c, line 2: file charsh” not found
^3Warning: couldn’t load any skill from bots/default_c.c
^1Error: file bots/kyonshi_c.c, line 2: file charsh” not found
^3Warning: couldn’t find skill 1 in bots/kyonshi_c.c

Apparently it’s only been an issue with the 64-bit version – but even the older version I had was showing the same problem (which I don’t quite get how) – anyways, I recompiled ioquake3 and it’s all fixed up – and thought that if anyone else was up against the same issue it might be useful to know how to fix it quickly and easily.

1.) Get the source

For this we need to have git installed to download the source code, if you do – great!, if not, then run this first:

sudo apt-get install git

With git in place, grab the source code with:

git clone https://github.com/ioquake/ioq3/

2.) Build it

Go into the downloaded ioq3 folder cd ioq3 and then build that bad-boy with this complex command:


Geez, linux is tech ;) To be fair, you’ll need the sdl-dev packages installed (for example: libsdl1.2-dev) and of course build-essential – I didn’t have to get any extra packages, it just built.

3.) Pick a place to stick it

Because I’m the only user of my laptop, I have a folder called Games in my home directory, so I just created ~/Games/ioquake3 and then copied all the files from the build/release-linux-x86_64 sub-folder (created when you successfully built ioquake using that complex make command – your folder won’t have _64 on the end if you built it on a 32-bit system) to ~/Games/ioquake3/, and then copied the pak0 to pak8.pk3 files from my original Windows install of Quake III into the baseq3 subfolder of the ioquake3 folder.

4.) Frag on!

Launch ioquake3.x86_64 and get your game on =D

I have absolutely no idea how they’ve got motion blur on the game (unless it’s applied post-game to the captured footage) – but it looks AWESOME! Want! If you know how they did it please feel free to smack me with the clue-stick in the comments! Cheers! =D

Update: It turns out they’re using the Excessive Plus mod in the video (which works fine with ioquake), still no clue about the motion blur though…

Another Update: Turns out this issue exists in the 64-bit version of OpenArena as well as ioquake3. I rebuilt openarena using the 0.81 version from the svn here – but still no dice with getting bots to spawn. Apparently the 32-bit version of OpenArena is unaffected.