DarkPlaces is a game engine based on the Quake 1 engine by id Software. It improves and builds upon the original 1996 engine by adding modern rendering features, and expanding upon the engine's native game code language QuakeC, as well as supporting additional map and model formats.
Developed by LadyHavoc. See CREDITS for a list of contributors.
#darkplaces on irc.anynet.org
Linux x86_64 builds are available in GitHub CI artifacts.
More complete builds are available in xonotic.org engine zips.
These support Windows, Linux and macOS, and include the current libraries needed for all features.
DarkPlaces supports many Quake-based games and you can select which it will run by renaming the executable so it's prefixed with the game's name, for example rogue-sdl.exe
, or by passing a cmdline argument such as -rogue
. The supported list and related details are defined in com_game.c.
These instructions are adequate for Quake, but for Xonotic please refer to its wiki.
The minimum SDL version is 2.0.18 for Linux and 2.24.0 for Windows.
The following package names are for Debian, see below for Windows and Mac.
Build (mandatory): build-essential
libjpeg-dev
libsdl2-dev
Runtime (optional): libcurl
libpng
libfreetype6
libvorbisfile
Build (mandatory): build-essential
libjpeg-dev
zlib1g-dev
Runtime (optional): libcurl
libpng
- Install MSYS2, found here.
- Once you've installed MSYS2 and have fully updated it, open a MinGW64 terminal (not an MSYS2 terminal) and input the following command:
pacman -S --needed gcc make mingw-w64-x86_64-{toolchain,libjpeg-turbo,libpng,libogg,libvorbis,SDL2}
- See Unix instructions.
- Open a terminal and input
xcode-select --install
- Install Homebrew
- In the same (or a different terminal), input the following command:
brew install sdl2 libjpeg-turbo libpng libvorbis curl
- See Unix instructions.
From a terminal, in the engine's root directory, input make
. On macOS, input make
with a target such as make sdl-release
.
Input make help
for options.
If you get errors (that don't seem to be about missing dependencies) try make clean
before compiling, especially if you updated your system since the last time you compiled.
May work but not recommended due to lack of support for C standards, and lack of maintenance. Instructions TODO.