Configuring a Quake3 Arena server

Your Own Arena


You don't have to be an expert to set up your own Quake 3 game server.

By Mirko Albrecht

Very few game vendors go to the trouble of porting complex 3D games to Linux. One positive exception is ID Software [1]. Most of the - partly controversial - titles released by ID run natively on Linux thanks to point releases. The most popular of these games is the Quake series, which has now reached number four. If you are afraid of burning out your graphics card with the complex graphics in the latest Quake sibling, you might prefer to stick with its extremely popular predecessor, "Quake 3: Arena," or Q3A (Figure 1). Because the game is much more fun when played on a network, you also might want to set up your own Q3A server to challenge your friends.

Figure 1: Like many other computer games, Quake 3 is all about survival.

Single Player

To battle an opponent, start by installing Quake on your computer. Make sure you have 3D acceleration enabled for your graphics adapter.

If your game CD does not include a point release, you can download it from the ID Software site [3]. To make the file executable, enter chmod u+x linuxq3apoint-1.32.x86.run, become root, enter ./linuxq3apoint-1.32.x86.run, and follow the instructions for installing via the GUI or console (Figure 2). It's a good idea to install the game in /usr/local/games/quake3, but enable Dedicated Server before doing so to run your own server later on. Your Quake3 CD contains a 470MB file called pak0.pk3, which you now need to copy to the /usr/local/games/quake3/baseq3 directory. Then give the ./quake3 command in the parent directory to launch the game.

Figure 2: If you do not have a GUI desktop, you can use the command-line interface for the setup.

In single-player mode, you fight your way through various arenas, doing battle with threatening looking computerized opponents. You need to win in one arena before you can enter the next. If this gets too boring, you can set up your own server and prepare to do battle with human opponents.

Multiplayer Mode

Quake 3 offers several approaches for fighting human opponents. The easiest approach requires a server on your local network. For this, you need to install Q3A on two computers.

To set up the game on one of the computers, use the Quake menu call Multiplayer | Create and select a "Map" (an arena). On the next screen, decide on the maximum number of opponents and specify whether they will be computerized bots or human. Then, define the number of hits you need for victory and choose a time limit for the game.

Your opponent has to select Servers | local in the top field of the Multiplayer menu and then connect with the server. An opponent who will be using the Internet to access your local server needs to select Specify in the Multiplayer menu and then enter the IP address or hostname for the server. If you use a NAT router, you will need to forward the Q3A standard port, 27960, to the computer hosting the server.

When an Internet user enters a game, the graphics will take longer to render than for a local player; if worst comes to worst, the remote user might suffer from lags, and because split seconds can be decisive, the remote player will always be at a disadvantage.

To make sure the game is fair for all players, you need to install a proxy server with a fast Internet connection. Many vendors offer game servers designed specially for fast games. Customers can select the desired game and the number of slots (maximum number of players), then you use a web interface to manage the game server. Costs can vary, but you can expect to pay upward of US$ 15 a month.

If you have a dedicated Internet server, you can easily set up a Q3A server on it. The server software has fairly frugal requirements. For example, I had no trouble running a Quake3 server on a simple virtual server (VServer) with a maximum of 256MB RAM in our lab. This variant is far cheaper, and you can still use other services such as http or ftp.

As described previously, install the point release on the server and copy the pak0.pk3 file to the right directory. For security reasons, you will want to install the game in a normal user's home directory. Note also that point release versions 1.31, 1.32b, and 1.32c are currently available. Servers and clients need identical program versions.

Go on to build a configuration file with commands for the server and create a ffa.config file with an editor of your choice (ffa stands for "Free For All" gaming mode). The "Quake Game Modes" table explains the various modes. Store the file in the user's home directory as ~/.q3a/baseq3/ffa.config. Many sample Q3A configuration files are on the Internet [4].

It makes sense to launch the server via the screen command to ensure that the server will carry on running when you are not logged on:

screen quake3 +set dedicated 2 +set com_hunkmegs 16 +net_port 27960 +exec ffa.config

The screen command creates a process that runs independently of your own login. The +set dedicated 2 option refers to the dedicated server, which is available to all users; the com_hunkmegs 16 parameter tells the program to use just 16MB RAM for caching data - this is a big help for underpowered servers or very old machines on your home network. Do not change the default of 56MB on the client. Thanks to the +net_port option, the Q3A server will now listen for incoming connections on port 27960; +exec points the way to the configuration file.

Your opponents should now be able to reach your game server via the server list in Multiplayer mode. While playing the game, you can press the Tab key (Figure 3) to display the list of players and their ping times. Pings of around 50 milliseconds should not interfere with the flow of the game; values above this indicate an issue with your provider.

Figure 3: Pressing the Tab key lists the players along with their ping times.
The Game

Although ID software released the gaming engine source code under the GPL some time ago [2], you must consider two obstacles before you can sit down and relax. For one thing, Q3A is an indexed game; you have to be at least 18 years old to buy it. For another, ID Software released the source code for the engine, but not the game itself, with the worlds available on the CD. Of course, it is getting difficult to buy the disks in shops, so you might need to check out eBay or a similar vendor.

The content of the game is easily summarized for non-players: The player visits a distant planet and has to fight one or several opponents in various arenas. The opponents are new "heroes" in some cases and familiar figures from previous ID adventures in others. This sums up the plot and leads critics to refer to Q3A as a sports game rather than an ego shooter. Despite this, the game enjoys the support of an active community, and the game's excellent multiplayer support contributes to its popularity.

Conclusions

It is easy to set up a Quake3 Arena server. Thanks to the program's excellent multiplayer mode, innumerable maps [5], and interesting modifications (mods), the game has not lost any of its original charm. If the original version is too bloodthirsty for your liking, check out the "World of Padman" [6] mod - an excellent demonstration of the potential of the Quake3 engine.

INFO
[1] ID Software website: http://www.idsoftware.com
[2] Free Quake engine: ftp://ftp.idsoftware.com/idstuff/source/quake3-1.32b-source.zip
[3] Quake point release: ftp://ftp.idsoftware.com/idstuff/quake3/linux/old/linuxq3apoint-1.32.x86.run
[4] A Q3A HOWTO: http://tldp.org/HOWTO/archived/Game-Server-HOWTO/quake3.html
[5] More maps for Quake: http://www.lvlworld.com
[6] World of Padman: http://padworld.myexp.de/index.php?news