It’s been more than 10 years since I stopped playing any computer games. My interest ended with the great Commandos 2 but I have some sweet memories of Duke Nukem 3D, StarCraft and Quake III Arena. Out of nostalgia I recently decided to try running Quake III on my 64-bit Ubuntu 13.10. That’s when I encountered the error mentioned in the title and it took me a bit of time to figure out how to fix it.
Quick re-cap of ioquake3 installation
I downloaded the engine and data installer files from the ioquake3 download page and run them. Then I obtained a dodgy copy of the pak0.pk3 data file and copied it into the /usr/local/games/ioquake3/baseq3 directory. This file is not part of the installation because unlike the engine it’s a licensed file. In my defense, I do own the original Quake III Arena CD but my current machine doesn’t have a CD drive so I had no means of copying the file from it.
“BotAISetupClient failed” error
I run the game, created an arena with a couple of bots and started the fight. I kept running for a minute, praising the bots’ intelligence while mumbling that going into a hide from such a mighty opponent as myself is the only reasonable thing one can do (fact: I actually suck at the game). THEN I realized the bots are simply not there. [sigh] I tried to add them again and noticed the “BotAISetupClient failed” message in the console. After some Googling, I found a post that explains that this can be fixed by re-compiling the game. I didn’t feel like going into that hassle so was happy that somebody in the discussion suggested a simpler fix: renaming one of the files inside the pak0.pk3 data pack. As the .pk3 file is in fact a ZIP file (see Wikipedia), it’s quite easy. For those of you who are new to Linux, follow these instructions:
The game’s directory is probably writable only to root so start by using its account:
The next set of commands does the following:
- Changes the working directory to the one where ioquake3’s data files are located.
- Backups the original pak0.pk3 file.
- Renames the crucial file inside the .pk3 pack from chars.h to charsh” (<- double quotation mark at the end)
Let’s do it:
cp pak0.pk3 pak0.pk3.bak
echo -e "@ botfiles/chars.h\n@=botfiles/charsh\"" | zipnote -w pak0.pk3