Getting Started with Quake

How to get this most popular game to run on your Linux system.
GL Quake

Hardware-accelerated OpenGL Quake is Quake the way it was intended to be. There is no substitute—once you have experienced it, there is no going back.

To make GLQuake work, you need a 3-D card with the 3Dfx Voodoo or Voodoo2 chip set on it, the glide library, the Mesa library and SVGAlib. Getting your 3Dfx card working under Linux is a big topic, one I will discuss very briefly here. See Resources for places to find more information.

First of all, make sure SVGAlib is installed and properly configured as outlined in the previous section. Remember, glquake uses SVGAlib to get mouse and keyboard input.

Next, get and install the glide library. Glide is a library that provides an API for programming 3Dfx-based cards. If you want the Mesa graphics library to use your 3Dfx card, you must have it. Select the package(s) appropriate for your system (see Resources) and install according to the instructions on the web page.

Note that unless you download the 3Dfx-device-driver package in addition to the Glide library, you will be able to run Glide applications (like GLQuake) only as root. Install the /dev/3dfx module and you can play GLQuake as a regular user.

Once you have glide installed, try out the test program that comes with it. Remember this test program; it is a good way to reset your display if you ever have a glide application (like GLQuake) crash, leaving your screen switched off. Run this test from a VC, not X. It is possible for the test application to lose mouse and keyboard focus in X; then you'd have no way of shutting it down. Type usr/local/glide/bin/test3Dfx and your screen will turn blue and prompt you to press any key. After you press a key, you will be returned to the prompt.

Now you need to install Mesa, a free OpenGL-like graphics library by Brian Paul ( Luckily, you won't have to look far, because Mesa 2.6 is included with the QLQuake and QuakeWorld binaries. All you have to do is move it to the right place:

cd /usr/local/games/quake
cp /usr/local/lib

If you want to upgrade Mesa to a more recent version (Mesa 3.0 should be released by the time this is printed), download the latest version from When installing Mesa 3.0 or higher, keep in mind that glquake is linked against, so you must create a symbolic link from your new to in order for glquake to find it. Also, as I mentioned earlier, remember that since Quake is a libc5-based application, all the libraries it links to must also be built with libc5. A libMesaGL linked against glibc will cause glquake to abort with a segmentation fault and possibly hang your system.

Now that SVGAlib, glide and Mesa are installed, you should be able to run glquake. Switch to a VC if you are in X (ctrl+alt+f1) and start glquake:

cd /usr/local/games/quake

QuakeWorld is a multi-player version of Quake that is optimized for Internet play over a modem. Problems with the original Quake's network code, like excessive lag and packet loss, are reduced or eliminated in QuakeWorld.

To play QuakeWorld, you need the full, registered or retail version of Quake and a Linux QuakeWorld client. QuakeWorld clients come in the same flavors (X11, SVGAlib and OpenGL) as normal Quake, but are bundled together in one package. The prerequisites and configuration for these binaries are the same as for regular Quake, so if necessary, refer to the previous sections for help on setting up SVGAlib or glide/Mesa.

If you are installing one of the RPM QuakeWorld packages, installation should be as simple as typing the following:

su root
rpm -Uvh qwcl-xxxxx.i386.rpm

To install from the tar.gz packages, type:

cd /usr/local/games/quake
su root
tar -xzf qwcl-xxxx-i386-unknown-linux2.0.tar.gz
Four new executables (qwcl, qwcl.x11, glqwcl and glqwcl.glx) will be installed in /usr/local/quake. glqwcl.glx is a GLX application linked against standard OpenGL libraries. This should allow QuakeWorld to run with OpenGL implementations other than Mesa. The programs qwcl, glqwcl and glqwcl.glx are installed setuid root so that the graphics devices on your system can be accessed. If you installed the /dev/3dfx driver mentioned in the GLQuake section, you can remove the setuid permissions on glqwcl and glqwcl.glx.

Once QuakeWorld is installed with your Quake files, you can start it up by typing the following:

 ./qwcl +connect some.server.address
Related Software

Qstat is a command-line utility created by Steve Jankowski ( that returns the status of Internet Quake, QuakeWorld and Quake 2 servers. Qstat (see Resources) is a must-have tool if you are planning on doing any Internet Quaking.

XQF (see Resources) is a graphical front-end to Qstat that uses the GTK toolkit. This is currently the best QuakeWorld/Quake 2 server browser in existence. Roman Pozlevich ( is still cranking out new versions at the rate of about one per month. If you are familiar with GameSpy for the Windows platform, this is the closest thing to it for Linux.


Bob Zimbinski is soft and pasty from years of playing computer games. When not playing games or working as a consultant for Control Data Systems, Mr. Zimbinski sleeps. He is co-author of the Linux Quake HOWTO. He can be reached via e-mail at


Free Dummies Books
Continuous Engineering


  • What continuous engineering is
  • How to continuously improve complex product designs
  • How to anticipate and respond to markets and clients
  • How to get the most out of your engineering resources

Get your free book now

Sponsored by IBM

Free Dummies Books
Service Virtualization

Learn to:

  • Define service virtualization
  • Select the most beneficial services to virtualize
  • Improve your traditional approach to testing
  • Deliver higher-quality software faster

Get your free book now

Sponsored by IBM