I recently disabled Hyper-V on my main computer because Windows was having some issues with the network adapters. In Hyper-V were two VMs that I used to build Quake3e (a modern Quake 3 source port) from source for Linux and Windows. As those weren’t operational anymore, I needed a new solution.
I briefly considered just moving the existing VMs to VirtualBox (which didn’t work because of networking issues), and after that, WSL came to mind.
After installing Ubuntu 20.04 it was time to get a build environment going. After setting up the github repo, I installed the packages
as per the build instructions. After that, I could already build 64-bit dedicated executables.
make gcc libcurl4-openssl-dev mesa-common-dev
Next step was mingw for windows binaries.
mingw-w64 took care of that.
Now I needed to create 32-bit linux binaries, because Rocket Arena 3 doesn’t have the gamecode as a qvm and therefore requires the executable to load a native library. That only works when the binary is 32-bit.
One might need some 32-bit binaries for windows too, if they are still running a 32-bit machine. For building those 32-bit binaries I tried several different things and found that installing
g++-multilib did the trick.
Here are the make-commands that I came up with:
# Linux 64bit time make BUILD_CLIENT=0 # Linux 32bit time make BUILD_CLIENT=0 ARCH=x86 # Windows 32bit time make USE_RENDERER_DLOPEN=0 USE_SDL=0 PLATFORM=mingw64 ARCH=x86 # Windows 64bit time make USE_RENDERER_DLOPEN=0 USE_SDL=0 PLATFORM=mingw64
And here are all packages that you need to install:
# Generic requirements sudo apt install git make gcc libcurl4-openssl-dev mesa-common-dev # Windows sudo apt install mingw-w64 # Additional for 32-bit binaries sudo apt install g++-multilib # For RUNNING 32-bit binaries on Ubuntu 20.04 sudo dpkg --add-architecture i386 && sudo apt update sudo apt install libc6:i386 libstdc++6:i386 libncurses5:i386
So that concludes my method of building Quake3e. If this is of any help to you, feel free to let me know.
After further testing, I was able to conclude that running the 32-bit binaries is possible on a fresh Ubuntu 22.04.3 installation with the instructions provided.