q3rally/engine
Zack Middleton 1286903908 ioquake3 resync to commit 47c96419 from 4610a240
Document USE_INTERNAL_VORBIS in README
Update CI to Ubuntu 20.04
Add protocol handler support
Fix bad client reliableAcknowledge DOS exploit
2023-06-04 19:32:47 -05:00
..
code ioquake3 resync to commit 47c96419 from 4610a240 2023-06-04 19:32:47 -05:00
docs ioquake3 resync to commit 47c96419 from 4610a240 2023-06-04 19:32:47 -05:00
misc ioquake3 resync to commit 4610a240 from bc8737d7 2023-03-02 23:13:18 -06:00
ui added new/tweaked headmodels by insellium 2021-03-14 22:13:21 +00:00
make-linux-portable.sh Add SDL 2.24.0 libs for Linux 2023-03-02 23:13:18 -06:00
make-macosx-app.sh ioquake3 resync to commit 47c96419 from 4610a240 2023-06-04 19:32:47 -05:00
make-macosx-ub.sh ioquake3 resync to commit 4610a240 from bc8737d7 2023-03-02 23:13:18 -06:00
make-macosx-ub2.sh ioquake3 resync to commit 4610a240 from bc8737d7 2023-03-02 23:13:18 -06:00
make-macosx.sh ioquake3 resync to commit 4610a240 from bc8737d7 2023-03-02 23:13:18 -06:00
Makefile ioquake3 resync to commit 47c96419 from 4610a240 2023-06-04 19:32:47 -05:00
README.md Update engine/README.md 2023-03-07 17:43:08 -06:00
resync_ioq3.sh Add new script for merging ioq3 changes 2023-03-02 23:13:18 -06:00

Q3Rally engine

Q3Rally is a standalone game based on ioquake3. However it's not compatible with ioquake3.

Compiling

Q3Rally is compiled using GNU Make (make) from a terminal while in the engine directory.

make ARCH=x86, make ARCH=x86_64, make ARCH=aarch64 (ARM64/Apple Silicon) specify compiling for a specific architecture instead of the host architecture.

If you have commit access and use an SSH key use git clone git@github.com:Q3Rally-Team/q3rally.git instead.

Windows

There is several ways to get an MinGW-w64 build environment.

MSYS2

  1. Install MSYS2 with packages: git, make, mingw-w64-i686-gcc mingw-w64-x86_64-gcc
  2. Open "MSYS2 MinGW 64-bit"
  3. Get the Q3Rally source code with git clone https://github.com/Q3Rally-Team/q3rally.git
  4. Change to the engine directory using "cd q3rally/engine"
  5. Run make

Cygwin

:This was more relevant before MSYS2 was made.

  1. Install Cygwin with packages: git, make, mingw64-i686-gcc-core, mingw64-x86_64-gcc-core
  2. Open "Cygwin"
  3. Get the Q3Rally source code with git clone https://github.com/Q3Rally-Team/q3rally.git
  4. Change to the engine directory using cd q3rally/engine
  5. Run make

WSL

  1. Install Windows Subsystem for Linux.
  2. Install a Linux distribution from the Windows store (e.g., Ubuntu).
  3. Open the start menu entry for the distribution (e.g., Ubuntu).
  4. Install Git, Make, and MinGW-w64 packages, for Ubuntu run: sudo apt install git make mingw-w64
  5. Get the Q3Rally source code with git clone https://github.com/Q3Rally-Team/q3rally.git
  6. Change to the engine directory using "cd q3rally/engine"
  7. Run make PLATFORM=mingw32

It's possible to compile for Linux under WSL using make or ./make-linux-portable.sh. Compiling for macOS using osxcross is not supported under WSL as of writting.

Linux

  1. Install git make gcc libsdl2-dev packages for your Linux distribution.
  2. Get the Q3Rally source code with git clone https://github.com/Q3Rally-Team/q3rally.git
  3. Change to the engine directory using "cd q3rally/engine"
  4. Run make

To make a release which includes SDL2 run: ./make-linux-portable.sh x86_64 (also with x86).

make PLATFORM=mingw32 and make PLATFORM=darwin can be used to cross-compile for Windows and macOS from Linux, if mingw-w64 and osxcross are installed.

macOS

  1. Install Xcode from the AppStore (the GUI is optional, only the command-line tools are required).
  2. Open Terminal app.
  3. Get the Q3Rally source code with git clone https://github.com/Q3Rally-Team/q3rally.git
  4. Change to the engine directory using "cd q3rally/engine"
  5. Run make

To create an AppBundle:

  • Single architecture: ./make-macosx.sh x86_64 (if needed, replace x86_64 with aarch64 (Apple Silicon), x86, or ppc).
  • Modern macOS 10.9+ (Apple Silicon, x86_64): ./make-macosx-ub2.sh
  • Legacy macOS 10.5+ (x86_64, x86, ppc): ./make-macosx-ub.sh

Modern AppBundle requires macOS 11.0 SDK or later to be installed. Legacy AppBundle must be compiled on macOS 10.6 with 10.5 and 10.6 SDKs installed.

Release builds

Assuming you have everything set up; release builds could be done like this.

clean is used to do a fresh build to be sure VERSION, etc from Makefile are applied to the build.

-j# is the number of CPUs thread to use. Set it to your CPU cores/threads for faster compiling.

# Windows; run on Windows or Linux with mingw-w64
make PLATFORM=mingw32 ARCH=x86 clean release -j8
make PLATFORM=mingw32 ARCH=x86_64 clean release -j8

# Linux; run on Linux or Windows (WSL)
./make-linux-portable.sh ARCH=x86 clean release -j8
./make-linux-portable.sh ARCH=x86_64 clean release -j8

# macOS Modern; run on macOS or Linux with osxcross
make PLATFORM=darwin ARCH=aarch64 clean
make PLATFORM=darwin ARCH=x86_64 clean
./make-macosx-ub2.sh

# macOS Legacy: run on macOS 10.6
make PLATFORM=darwin ARCH=x86_64 clean
make PLATFORM=darwin ARCH=x86 clean
make PLATFORM=darwin ARCH=ppc clean
./make-macosx-ub.sh