An FPS/RTS hybrid game powered by the Daemon engine (a combination of ioq3 and XreaL)
Switch branches/tags
Clone or download
Failed to load latest commit information.
appveyor Try to fix appveyor again Nov 7, 2015
archlinux Archlinux: Don't handle unv:// URLs in starter script. Mar 3, 2015
daemon @ 9613b69 update cbse and daemon submodules Nov 8, 2018
debian Option for specifying the path to the NaCl helper binaries. Jan 14, 2015
libs sync submodules Oct 7, 2018
macosx Version bump to Alpha 50. Apr 10, 2016
pkg sync unvanquished dpkdir submodule Oct 16, 2018
src update cbse and daemon submodules Nov 8, 2018
.gitattributes Enforce normalisation of line endings in source files. Jun 3, 2012
.gitignore remove daemon references in .gitignore Feb 16, 2017
.gitmodules make unvanquished dpkdir a submodule, game loadable from repository Dec 30, 2017
.travis.yml travis needs python May 7, 2018
CMakeLists.txt Fix submodule existence check that always returned false. May 20, 2018
COPYING.txt remove shaderlab and non-GPL Wolf:ET exceptions, fix #998 Oct 12, 2017
GPL.txt Some clean-up of trailing white space. Jun 3, 2012 update readme more Dec 30, 2017
appveyor.yml Fix and use USE_PRECOMPILED_HEADER=0 Jan 14, 2016 Update for removal of qvms, game->sgame change and additio… Mar 1, 2015 Make PNaCl a first class CMake toolchain; split engine and game build… Jul 16, 2015 Make PNaCl a first class CMake toolchain; split engine and game build… Jul 16, 2015 more README rewording, plus some pk3/dpk rewriting and things like that Dec 30, 2017 update Oct 15, 2018
libRocket.cmake Delete libRocket from repo. Add as submodule. Feb 20, 2016
src.cmake Improve Entities.h documentation and add it to src.cmake Nov 3, 2018 Config header Apr 11, 2016 Update "" script. Oct 15, 2018


GitHub tag GitHub release Github release


Windows OSX Linux
AppVeyor branch Travis branch Travis branch

This repository contains the gamelogic of the game Unvanquished.

You need to download the game's assets in addition to that to make it run. See below for build and launch instructions.


zlib, libgmp, libnettle, libcurl, SDL2, GLEW, libpng, libjpeg ≥ 8, libwebp ≥ 0.2.0, Freetype, OpenAL, libogg, libvorbis, libtheora, libopus, libopusfile


cmake, python ≥ 2, python-yaml, python-jinja


ncurses, libGeoIP



64-bit: mingw-w64-x86_64-{toolchain,cmake,aria2}
or 32-bit: mingw-w64-i686-{toolchain,cmake,aria2}

Build Instructions

Instead of make, you can use make -jN where N is your number of CPU cores to speed up compilation. Linux systems usually provide an handy nproc tool that tells the number of CPU core so you can just do make -j$(nproc) to use all available cores.

Visual Studio

  1. Run CMake.
  2. Choose your compiler.
  3. Open Unvanquished.sln and compile.

Linux, Mac OS X

mkdir build && cd build
cmake ..


mkdir build && cd build
cmake -G "MSYS Makefiles" ..

Linux cross-compile to Windows

mkdir build && cd build
# Use “cross-toolchain-mingw64.cmake” for a Win64 build.
cmake -DCMAKE_TOOLCHAIN_FILE=../daemon/cmake/cross-toolchain-mingw32.cmake ..

Mac OS X universal app

mkdir build32 && cd build32
cd ..
mkdir build64 && cd build64
cd ..
./ build32 build64

Launch Instructions

Linux, Mac OS X, MSYS2

If Unvanquished's assets are already installed somewhere on your system

cd build
# <PATH> is the path to the “pkg/” directory that contains the game's assets.
./daemon -pakpath <PATH>

If you don't have the assets, you can download them first

cd build
mkdir pkg
# Fast, requires “aria2c”:
../ pkg
# Or with unreliable speed, requires “curl”:
../ pkg

Loading base asset package from sources

As a developer, you will want to load assets from repository. To do that:

cd build
./daemon -pakpath ../pkg -set vm.sgame.type 3 -set vm.cgame.type 3

Note that only the basic unvanquished_src.dpkdir asset package is provided that way, and running Unvanquished only with that package will bring you some warnings about other missing packages and you will miss soundtrack and stuff like that. Note that you need to load your own game code (using vm type switches) at this point.

This should be enough to start the game and reach the main menu and from there, join a server. If the server supports autodownload mechanism, Unvanquished will fetch all the missing packages from it.

If you are looking for the sources of the whole assets, have a look at the UnvanquishedAssets repository. Beware, unlike the unvanquished_src.dpkdir package, most of them can't be loaded correctly by the engine without being built first.

Loading your own assets

As a developer, you will want to load your own assets in addition to those shipped with the game. To do that:

cd build
mkdir -p pkg && cd pkg
mkdir assets_src.dpkdir

You can now put loose assets into assets_src.dpkdir or you can put additional dpkdir directories or dpk containers inside pkg and add their names (the format is <NAME>_<VERSION>.dpk[dir]) as lines to the DEPS file (the format is <NAME> <VERSION>). Version is required in package filename but optional in DEPS file. In order to launch Unvanquished, use one of the following commands:

# Runs the game and loads the “assets” package and its dependencies from “pkg/” directory:
./daemon -set fs_extrapaks assets

# Runs the game and loads the “assets” package and its dependencies from <PATH>
# when <PATH> is not one of the default Unvanquished paths:
./daemon -pakpath <PATH> -set fs_extrapaks assets

# In addition, load a shared-object gamelogic you compiled and allow it to be debugged,
# then launch the map “Platform 23” with cheats enabled after startup:
./daemon -pakpath <PATH> -set fs_extrapaks assets \
			-set vm.sgame.type 3 -set vm.cgame.type 3 \
			+devmap plat23


If Unvanquished's assets are installed on your system

Run daemon.exe -pakpath <PATH>, where <PATH> is the path to the pkg/ directory that contains the game's assets.

If you don't have the assets

  1. Copy the pkg/ directory from the release zip (torrent | web) into your build directory.
  2. Run daemon.exe.