Running a Quake 3 Server on a Raspberry Pi

Quake 3 is a classic, so much so that there are still servers running to this day. This is how to get a Quake 3 server to run on a Raspberry Pi – cheap and easy!

First up, you’ll need:

  • RPi (duh)
  • A copy of Quake 3 or the demo.
  • Some time.

I’m using the UFreeze mod, so a lot of the work is already done for the server setup once we’ve compiled everything.

So you’ll first need to get your RPi set up and connected to the internet.
Next we’ll run these commands:

This can take a while, but it’s best to do.

Once those are done we need to install what we need to compile Quake, more so ioquake3.

Okay. Now we’re ready to get the code and compile it.

The time this will take depends on your connection, though usually it should be fairly quick.
What we’re doing here is making a folder, downloading the repository into it and moving to that folder.

There’s just a few things we need to change before we build, so go ahead and do this:

You’ll need to find line 8, which begins with ARM_LIBS and change it to this:

Line 16 to this:

and on line 19 you’ll want to comment this out (put a # in front of it.)

Once that’s all done, it’s time to compile. This can take up to an hour, though may be quicker if you have your Pi overclocked. Build by typing ./build.sh

–1 hour later–

Now that everything is done, you should have a folder called build, and inside that something along the lines of quake3-build-arm (I can’t fully remember) you’re going to want to move that to your home folder by doing the following:

Well done, you’ve just compiled Quake for RPi!
Now we get the server setup.

You’re going to need to put the pak0-pak8.pak files into the baseq3 folder, if you own the game, you can copy those, or download the demo ones. This is your problem. I can’t give you these because copyright.
Once you’ve done that, you download uFreeze or whatever mod you wish to use and replace the reference to the standard quake3 file with q3ded.arm which is the dedicated server file built for the Pi.

Finally, to ensure everything works.

Make sure the Pi user owns all the files as otherwise you may have issues with configs not being found.

–UFREEZE ONLY SECTION–

Download uFreeze from it’s respective location.

Copy the uFreeze folder to the quake3 root.

If you’re using ft-hook-rail.sh, edit that file and replace the link to q3ded to q3ded.arm as described above.

Run your file. SIMPLE!

Final Stuff

I’m not sure what the limit is to the number of players – this depends on your connection but also because the Pi has limited CPU power, it might become laggy after a certain amount of players is reached. This is something you’d have to experiment with.

Have fun!

banner