Zuckerbude

not your average tech/non-tech blog - since 2007

Setup Quake III Arena server on ARM64

April 4, 2020 Technical Ben Zucker

Recently a fellow Twitter user asked for help setting up a dedicated Quake III Arena server on his OrangePi One Plus.

In first place two things came to my mind:

  • is there a source code available as there is proabably no chance that there are arm binaries out there?
  • if so will it compile on arm64 since it lacks of compat to armhf? Running stuff native is more awesome anyways.

Preparation

So what do we need?

  • Obviously an SBC with arm64 architecture. This can be any board featuring for example the Allwinner H5 or H6 SoC, Rockchip RK33xx like the RK3399 or Amlogic S9 series. For this example I go with the OrangePi One Plus which has the H6 SoC on board.
    Should work with armhf architecture SoCs as well but I did not test this.
  • As operating system I utilized Armbian Buster flavor featuring the 5.4.x LTS Linux kernel

Installing build dependencies:

apt update
apt install build-essential libsdl2-dev
useradd -m -s /bin/bash quake3
su - quake3

Getting the ioquake3 source code and compile it:

git clone https://github.com/ioquake/ioq3.git
cd ioq3
make

This may take a while. Go get a fresh cup of coffee or a sandwich.
During the building process some warnings may popup which can be ignored.

Copying additional needed data:

ioquake3 needs some data from the original Quake III Arena game in order to work. These can be extracted from an existing game installation, patched to point release 1.32 (not 1.32c!).

Locate whereever your game is installed and select the baseq3 folder, like C:\Quake III Arena\baseq3 and
use like WinSCP to transfer the whole content of this folder to
/home/quake3/ioq3/build/release-linux-aarch64/baseq3

Launching the server:

Go back to /home/quake3/ioq3/build/release-linux-aarch64/ and launch the dedicated server executable:

./ioq3ded.aarch64

You should be greeted with the server console and all IP addresses it is listening to. But the server is not running yet. We have to load a map:

map q3dm7

Since it can be a bit boring playing alone we should reload the map with bots:

spmap q3dm7

You can find all available commands on fan pages like here.