How To Achieve Frag-Nirvana with Quake 4

When Doom 3 came out it bruised our jaws when they hit the floor. Years later Quake 4 came out and reminded us of why the folks at id and Ravensoft get paid to make games.

Quake 4 is every bit as good as the old Quake III Arena in terms of game play. In terms of graphics there’s just no comparison. Even better, Q4 runs very quickly indeed on modern hardware; faster than Doom 3.

The single-player campaign in Q4, like that of Doom 3, will take you some time to beat and provides plenty of challenge even on the easy setting. If you get tired of the single-player campaign you can go online and frag away in exactly the same fashion as in the days of yore on QIII.

Installing Q4 on Linux is almost exactly the same as it is for Doom 3:

1. Copy all the .pk4 files from the cdroms over into /usr/local/games/quake4/q4base. You’ll probably need to be root do so:

  • Open a terminal and cd to /usr/local/games
  • use sudo to make the appropriate directories: sudo mkdir quake4 quake4/q4base
  • cd into the q4base directory: cd quake4/q4base
  • drop the first cd into your drive and either let it auto-mount or mount it manually depending on your system configuration. (manually: sudo mount /dev/sr0 /media/cdrom0)
  • copy the .pk4 files over: sudo cp /media/cdrom0/Setup/Data/q4base/*.pk4 ./
  • wash, rinse, and repeat the copy step for each cdrom

2. Once you’ve got all the .pk4 files copied over then go here and pick up a copy of the Linux installer. (quake4-linux-1.4.2.x86.run).

3. Download it to somewhere handy (i.e. your desktop). And don’t forget to set permissions on the file to allow it to run: sudo chmod ugo+rwx Desktop/quake4-linux*.x86.run

4. Run the installer as root: sudo ./*.run

5. Say “yes” to all the questions in the installer. If you followed the instructions so far then everything will be installed to “/usr/local/games/quake4”. If you’re too manly to follow directions then I also assume you’re manly enough to be able to figure out how to get the installer to put things where you want them (say, “~/quake” for instance). For everyone else: follow the directions.

6. Once the installer is done you’re set to play. Type quake4 at a terminal to start it up.

So gorgeous!

taken during the intro cutscene

No matter what universe you're in space marines ride in dropships!

Q&A:

Q: After taking the .pk4 files off the first disc the subsequent discs won’t let me mount or look into them. My drive was fine before– what the heck is going on here?!

A: The discs have Rock Ridge extensions on them which enable UNIX style permissions directly on the disc image. Paradoxically, this sometimes screws up mounting the discs because the mounter isn’t expecting the discs to play nice. To work around it mount the discs manually and disable the extensions: sudo mount /dev/sr0 /media/cdrom0 -o norock. You can also try working the disc tray in and out, remounting, et cetera, but I still suggest using the “-o norock” option.

Q: Everything seems to have installed fine, but when I try to run the game it crashes messily and I get an error like this:

********************
ERROR: Unable to find entityDef for ‘aas_types’
********************
Sys_Error: Error during initialization
pure virtual method called
terminate called after throwing an instance of ‘idException’
Aborted

********************

ERROR: Unable to find entityDef for ‘aas_types’

********************

Sys_Error: Error during initialization

pure virtual method calledterminate called after throwing an instance of ‘idException’

Aborted

A: I blundered into the same problem myself. It seems to be caused by exiting the installer script without running the game first and entering your CD key. I’d consider it a bug, but it may be an attempt to ward off piracy. The fix is to manually change the ownership/permissions of the installed files so that you can use them:

sudo chown YOUR_USERNAME /usr/local/games/quake4/*

sudo chown YOUR_USERNAME /usr/local/games/quake4/q4base/*

Obviously, you’ll need to replace “YOUR_USERNAME” with your actual username.

Q: I installed everything, but I don’t have a menu button to launch the game in my system menu. I want one!

A: Most desktop environments will allow you to manually create that kind of shortcut- I know GNOME and KDE will. However, xfce and Fluxbox (my favorite) don’t have cutsie little GUI handles for that.

For xfce:

  1. Right click the system panel and hit “Add New Items”
  2. Double click on “Launcher”
  3. Under the “Name” field type something appropriate (i.e. “Quake 4”). Do the same for the description field.
  4. For the icon, hit the “Icon” button, then hit the “Select Icon From” drop down menu and select “Image Files”, navigate to “/usr/local/games/quake4” and double click on “q4icon.bmp”. (now you’ll be sent back to the “Launcher” window)
  5. In the “Command” field type “quake4”. Optionally, you may want to check the “Run in Terminal” check box, but this is pretty useless since the terminal exits as soon as the game does.

For Fluxbox:

  1. Open ~/.fluxbox/menu with your favorite text editor.
  2. Look into a “submenu” section (i.e. “[submenu] (Media)“) and add a new line.
  3. Type the following: “[exec] (Quake 4) {quake4}
  4. Now just save and quit the text editor. When you right click to bring up your menu you’ll see the new entry.

Q: On Windows Q4 comes with a sweet map editor. Can I get the same thing on Linux?

A: Yes there is! Grab it with the SDK here: http://www.iddevnet.com/quake4/.

Q: My sound stutters and sometimes locks up. Don’t tell me you just live with this.

A: Actually, I don’t live with it. The problem is typically caused by running a sound server (i.e. Pulse Audio) on your system. The sound server introduces a slight amount of lag, and in some cases is just plain buggy. The easy method to fix it is to just burn the house down: sudo apt-get remove pulse-audio. On Ubuntu you may need to reboot your machine in order for the system to switch smoothly over to ALSA for sound.

If you don’t have a sound server (Pulse Audio) installed, but you’re still having the problem then you’re most likely in one of the following situations:

  • You’re using some ancient out-dated distro and need to upgrade.
  • You’re too manly to use no stinkin’ mainstream distro and instead decided to try doing mainstream things on a real He-man do-it-yourself distro (i.e. Arch).
  • You’re using a server distro (Red Hat, SUSE) that doesn’t provide cutsie amenities or configurations.

In the first case you just plain need to upgrade your system– stop being lazy and try one of the modern distros. Just try it; they really do fix bugs, I promise.

In the second and third cases you might try running quake and explicitly telling it to use the ALSA sound architecture by running the game with the argument “+seta s_driver “ALSA””. If that fixes it for you then you can add that line to your “/home/YOUR_USERNAME/.quake4/q4base/Quake4Config.cfg” file and it’ll be loaded up when you run the game.


About this entry