Dæmon engine code
Contents
Sources
The Dæmon engine code features C++ and C code.
See the Getting the source page for details on how to get the sources.
The engine sources are stored in a Git repository: github.com/DaemonEngine/Daemon
Libraries
We maintain various libraries and tools that contribute to the Dæmon engine:
- Native Client runtime — A binary sandbox to securely run downloadable game code, built separately, distributed with the engine.
Sources: github.com/DaemonEngine/native_client - Dæmon Crunch — An GPU-friendly image codec, built in engine (submodule).
Sources: github.com/DaemonEngine/crunch - Dæmon Breakpad — A crash reporting library, built in engine (submodule).
Sources: github.com/DaemonEngine/breakpad
We also vendor as submodules some third-party libraries, they are usually kept unmodified but we keep the opportunity to patch them when needed so we host them in our forge:
- PDCursesMod — A curses library used everywhere ncurses isn't available, built in engine (submodule).
Sources: github.com/DaemonEngine/PDCursesMod - FreeType — A font rendering engine, built in engine (submodule).
Sources: github.com/DaemonEngine/freetype - GoogleTest — A C++ test framework, used in engine build system (submodule).
Sources: github.com/DaemonEngine/googletest
We also vendor as subdirectories some small third-party libraries, they may be modified when needed:
- FindLocale: github.com/DaemonEngine/Daemon/tree/master/libs/findlocale
- TinyFormat: github.com/DaemonEngine/Daemon/tree/master/libs/tinyformat
- Minizip: github.com/DaemonEngine/Daemon/tree/master/libs/minizip
- Mumblelink github.com/DaemonEngine/Daemon/tree/master/libs/mumblelink
Platforms
The Dæmon engine is distributed as native executables, compiled for each supported architectures and systems. The engine is written to be buildable for various supported and not-supported platforms. We provide prebuilt binaries of the engine for the supported platforms with the Unvanquished game, the engine for a not-supported platforms should be built by the user:
| ↓ System \ Architecture → | amd64 | i686 | arm64 | armhf | ppc64el | riscv64 | loong64 |
|---|---|---|---|---|---|---|---|
| Linux | ✅️ | ✅️ | ✅️ | ✅️ | ☑️ | 🚧️ | 🚧️ |
| Windows | ✅️ | ✅️ | |||||
| macOS | ✅️ | ✅️ | |||||
| FreeBSD | ☑️ | ☑️ |
The compiled game code to run with the Dæmon engine is meant to be distributed as Native Client executables, compiled for various architectures but system-agnostic:
| System | Architecture | Dæmon NaCl Runtime | Google PNaCL SDK | Dæmon Saigo SDK |
|---|---|---|---|---|
| Windows | amd64 | ✅️ native | ✅️ native | ✅️ native |
| i686 | ✅️ native | ✅️ native | ✅️ native | |
| Linux | amd64 | ✅️ native | ✅️ native | ✅️ native |
| i686 | ✅️ native | ❌️ | ✅️ native | |
| arm64 | ☑️ armhf Multiarch ☑️ Box64 (WIP) |
❌️ | ✅️ native | |
| armhf | ✅️ native | ❌️ | ✅️ native | |
| ppc64el | ☑️ Box64 (WIP) | ❌️ | ✅️ native | |
| riscv64 | ☑️ Box64 (WIP) | ❌️ | ✅️ native | |
| loong64 | ☑️ Box64 (WIP, untested) | ❌️ | ✅️ native | |
| macOS | amd64 | ✅️ native | ✅️ native | ✅️ native |
| arm64 | ☑️ amd64 Rosetta2 | ☑️ amd64 Rosetta2 | ✅️ native | |
| FreeBSD | amd64 | ☑️ Linuxulator | ❌️ | ✅️ native |
| i686 | ☑️ Linuxulator (untested) | ❌️ | ✅️ native |
Compilation
See the Compiling the source page for details on how to compile the sources.
