Related Artices:
Sure, DynDNS® Spring Server℠ VPS instances can be used for all sorts of productive things, but what about the things that really matter? You know, games! Spring Server instances have excellent specs and bandwidth to run a dedicated server for most games. In this tutorial, we'll show you how to set up a Quake III Arena dedicated server on an Ubuntu-based server.

Why Quake III? As you may have read, DynDNS Spring Server VPS instances feature IPv6 connectivity built into every virtual server. While many games don't yet support IPv6, id Software released the source code for Quake III under an open source license, and some developers have added IPv6 support to the game. With that in mind, why not show off your virtual server's IPv6 connectivity and have some fun at the same time?
This article assumes you already have a working Spring Server instance set up, are running Ubuntu 8.04 (Hardy Heron) or newer, and are using sudo to execute commands with root privileges. If you have a firewall set up, you will need to open port 27960 UDP. You will also need a retail Quake III Arena CD and the baseq3/pak0.pk3 file from it.
First, you will need to download the installers from http://ioquake3.org. The easiest way to do this is generally by using the "wget" command. If you don't already have this installed, you can install it by running:
sudo apt-get install wget
You will need both the latest stable release and the latest unofficial build to include IPv6 support. These can be found at http://ioquake3.org/get-it/ and http://ioquake3.org/get-it/angst-builds/ respectively. You can download them using wget as in the example below:
wget http://ioquake3.org/files/ioquake3-1.34-rc3.run
wget http://ioquake3.org/files/angst/ioquake3-latest.x86_64.run
Once the downloads are complete, you will need to make the installers executable:
chmod +x ioquake3-1.34-rc3.run
chmod +x ioquake3-latest.x86_64.run
Next, you will need to run the installers one at a time. Depending on your installation, you may get an error about a missing file. On my server, libxml2 was missing, so I had to install it:
sudo apt-get install libxml2
Run the latest stable installer first:
sudo ./ioquake3-1.34-rc3.run
Proceed through the install, entering information as needed. The default information is generally fine, with an installation path of /usr/local/games/ioquake3 and symbolic links created in /usr/local/bin.

When it prompts for which components to install, deselect i386 and PPC, leaving x86_64 selected. When prompted to copy Quake III Arena or Team Arena CD data, do not select it; we will copy the file over afterwards. You can also deselect installation of desktop menu entries when prompted.
Once the install has completed, select 'No' when prompted to start the game now – we need to update and configure the dedicated server first.
Repeat the installer process using ioquake3-latest.x86_64.run this time around to update your installation to the latest version. When prompted to overwrite an existing install, select 'Yes', and agree to overwriting any of the files it prompts about.
Next, you will need to copy the pak0.pk3 file from the baseq3 directory of a Quake 3 retail CD or existing installation to /usr/local/games/ioquake3/baseq3/.
The easiest way to upload the pak0.pk3 file onto your server is generally over SSH since that service should already be installed and running on your Spring Server VPS. If you have a FTP server or other file-transfer service setup on your server, you can use that instead.
On a Windows machine, you should install WinSCP from http://winscp.net/ to copy the file to your server; on a Linux machine the command you need is already installed, so you can copy the file with the command below. Replace "login" with your server login and "hostname.springserver" with your actual server hostname.
scp /path/to/baseq3/pak0.pk3 login@hostname.springserver:~/.
After the file has finished copying, move the file to the baseq3 directory and correct the ownership:
sudo mv ~/pak0.pk3 /usr/local/games/ioquake3/baseq3/.
sudo chown root:root /usr/local/games/ioquake3/baseq3/pak0.pk3
Now that we have ioquake3 installed and the data file copied over, we need to configure the Quake III server itself. This is the configuration for your server, dictating what type of game will be played, which maps are offered and other information. For this tutorial we'll use a basic free-for-all deathmatch setup which can be found at http://planetquake.gamespy.com/View.php?view=Guides.Detail&id=47&game=4.
Copy the default free-for-all server configuration to /usr/local/games/ioquake3/baseq3/ffa.cfg using your favorite text editor or, alternatively, create the file on your computer and use scp to transfer it to your server. If you want to have your server show up properly in the servers list when users are searching for servers, make sure you uncomment the sv_hostname variable and set it to something appropriate. There are many other options that can be used in the server configuration file, but we won't go into them here. There are many sites dedicated to that topic, some of which you can find in the links at the end of this article.
Now we're ready to run the server for the first time. IPv6 support isn't enabled by default, so we will turn that on as well. You can start the server by running the following command:
/usr/local/games/ioquake3/ioq3ded.x86_64 +exec ffa.cfg
Once your server has started, you can enter this command into it, which will enable ipv4 and ipv6 support:
set net_enabled 3
You'll get a message that the change won't take effect until you've restarted the server, so go ahead and type quit, then run the server again. It's recommended that you run the server using the "screen" command so that you can easily detach it, log out, and reattach it if you need to. If you haven't used screen before, it's well worth installing. You can type "man screen" to learn how to use it.
If you'd like to run the server on boot up, you can add it to your /etc/rc.local file.
Now that the server is set up, you can connect in your Quake III client by clicking Multiplayer, then either find it in the list or click Specify and enter your server's hostname or IP address. If your client is the latest ioquake3 client, and you're on an IPv6 network, you can enable IPv6 support by pressing ~ and typing this command:
/set net_enabled 7
This will prefer connecting over IPv6 when available, but will still allow you to connect to IPv4 servers. As with the server, you will need to restart your client for this to take effect. You should also set your client to download maps it doesn't have from the server you're playing on.
/set cl_allowDownload 1
Ioquake3 supports http downloads from the server, so downloads are much faster than the traditional in-game download method.
You should now be able to connect to your server and get playing with a basic configuration. If you're curious who is connected by IPv4 and who is connected by IPv6, you can type "status" on your server to get a list of which players are connected and from which IP address.

There are many more options for changing the game type, adding bots, or setting up http downloads for your server. You can find more information, maps and bots at the links below.
© 1998-2009
Dynamic Network Services Inc. -
Legal Notices -
Privacy Policy -
Contacts