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 (brianp@elastic.avid.com). 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 libMesaGL.so.2.6 /usr/local/lib
ldconfig

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 ftp://iris.ssec.wisc.edu/pub/Mesa. When installing Mesa 3.0 or higher, keep in mind that glquake is linked against libMesaGL.so.2, so you must create a symbolic link from your new libMesaGL.so.3.0 to libMesaGL.so.2 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
 ./glquake
QuakeWorld

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 (steve@activesw.com) 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 (roma@botik.ru) 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.

Resources

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 bobz@mr.net.

______________________

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState