Skip to content

Latest commit

 

History

History
128 lines (89 loc) · 4.06 KB

File metadata and controls

128 lines (89 loc) · 4.06 KB

Dæmon Game Engine

Dæmon is the standalone game engine that powers the multiplayer first person shooter Unvanquished.

GitHub tag
Web Forums Wiki
Rules IRC Matrix Discord

ℹ️ We provide ready-to-use downloads for the Unvanquished game on the Unvanquished download page, builds of the Dæmon engine are included.

ℹ️ The Unvanquished game logic source code can be found there: github.com/Unvanquished/Unvanquished.

Workspace requirements

To fetch and build Dæmon, you'll need: git, cmake, and a C++14 compiler.

The following are actively supported: gcc ≥ 9, clang ≥ 11, Visual Studio/MSVC (at least Visual Studio 2019).

Dependencies

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

Optional: ncurses.

MSYS2

MSYS2 is the recommended way to build using MinGW on a Windows host.

Required packages for 64-bit: mingw-w64-x86_64-gcc, mingw-w64-x86_64-cmake, make
Required packages for 32-bit: mingw-w64-i686-gcc, mingw-w64-i686-cmake, make

Downloading the sources for the game engine

Daemon requires several sub-repositories to be fetched before compilation. If you have not yet cloned this repository:

git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git

If you have already cloned:

cd Daemon/
git submodule update --init --recursive

ℹ️ If cmake complains about missing files in libs/crunch/ folder or similar issue then you have skipped this step.

Build Instructions

💡️ Instead of -j4 you can use -jN where N is your number of CPU cores to distribute compilation on them. Linux systems usually provide a handy nproc tool that tells the number of CPU core so you can just do -j$(nproc) to use all available cores.

Enter the directory before anything else:

cd Daemon/

Visual Studio

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

Linux, macOS, MSYS2

Produced files will be stored in a new directory named build.

cmake -H. -Bbuild
cmake --build build -- -j4

Linux cross-compile to Windows

💡️ For a 32-bit build use the cross-toolchain-mingw32.cmake toolchain file instead.

cmake -H. -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cross-toolchain-mingw64.cmake
cmake --build build -- -j4

Running a game

ℹ️ On Windows you'll have to use daemon.exe and daemonded.exe instead of ./daemon and ./daemonded, everything else will be the same.

To run a game you would need a pkg/ folder full of .dpk files provided by the Dæmon-based game you want to run. This pkg/ folder has to be stored next to the daemon binary.

You then run the game this way:

./daemon

If you want to run a dedicated server, you may want to use the non-graphical daemonded server binary and start a map this way:

./daemonded +map <mapname>

Map names and other options may be specific to the game.