Setup Quake III Arena server on ARM64
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
Create a user for Quake III (optional but recommended):
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.