開源專案
DaemonEngine/Daemon avatar
DaemonEngine/Daemon

Daemon:從 README 拆解功能、限制與使用條件

該專案是面向第一人稱射擊場景的跨平台開源 3D 遊戲引擎,並持續維護與演進。

388 個 Star75 個 ForkC++BSD-3-Clause

秒懂

它是什麼?
An open-source multi-platform 3D game engine focused on first-person shooter gameplay and community-driven development workflows.。本文依 DaemonEngine/Daemon README 整理使用入口、依賴、輸出與限制。
適合誰用?
Daemon 適合需要 README 所列功能,並能管理其依賴與設定的使用者;不適合把範例以外的行為當成保證。先執行 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置,核對專案指定的輸入、檔案、日誌或查詢輸出,再決定是否放進既有流程;素材沒有說明的部分仍應列為未知。
可以商用嗎?
可以。BSD-3-Clause 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 9 天前。
用什麼語言寫的?
主要是 C++(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

引擎的定位

Dæmon 是 Unvanquished 這款多人第一人稱射擊遊戲所使用的獨立引擎。Unvanquished 是一個開源專案,Dæmon 引擎的原始碼與遊戲邏輯程式碼分開存放,引擎倉庫只負責渲染、網路、輸入等底層部分。根據倉庫描述,這個引擎已經過 25 年的現代化改造,其歷史可以追溯到 id Tech 3,並吸收了 ioquake3、Wolf:ET 和 XreaL 的程式碼基礎。這意味著它的核心架構帶有老牌引擎的痕跡,但持續在維護和更新。

Daemon 的 README 把這個入口放在實際工作流程中,而不是獨立的功能宣傳。讀者應把 DaemonEngine/Daemon 的專案名稱、檔案路徑、依賴版本和命令放在同一份紀錄裡,這樣才能分辨是環境差異、設定遺漏,還是文件沒有承諾的行為。素材只描述 README 明確列出的能力,未提到的效能、相容性與安全結果都維持未知。

採用 Daemon 前,先執行「git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置」。第 1 節要看的不是抽象的成功訊息,而是專案自己的輸入和產物:檢查命令退出狀態、README 指定的設定鍵、產生的檔案、服務日誌或查詢結果。若 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置 需要額外硬體、服務或憑證,應把缺少的條件記在結果旁,不用推測填補。這個檢查直接對應 Daemon 的 README,因此結論只涵蓋該入口。

對團隊使用而言,Daemon 的取捨在於工作流程是否能承受它的前置條件。DaemonEngine/Daemon 的文件若把本機、容器、瀏覽器、GPU、遠端主機或特定用戶端列為必要環節,這些環節就是部署邊界。先用最小輸入完成一次 Daemon 流程,再逐項增加資料量或協作者;每次保留設定檔名稱與輸出差異,才能知道哪個能力真正來自專案。

從 id Tech 3 到現代的延續

倉庫元資料將 Dæmon 描述為「在 id Tech 3 之後進行了 25 年現代化」的引擎,並明確提到它基於 ioquake3、Wolf:ET 和 XreaL。README 沒有進一步解釋這些專案在程式碼層面的具體繼承關係,也沒有說明哪些功能來自哪個上游。可以確認的是,Dæmon 不是從零寫起的引擎,而是從一個具有多年歷史的技術棧上持續演進的產物。若想了解具體的現代化歷程,需要查看版本歷史或開發文件,這部分 README 並未提供。

採用 Daemon 前,先執行「git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置」。第 2 節要看的不是抽象的成功訊息,而是專案自己的輸入和產物:檢查命令退出狀態、README 指定的設定鍵、產生的檔案、服務日誌或查詢結果。若 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置 需要額外硬體、服務或憑證,應把缺少的條件記在結果旁,不用推測填補。這個檢查直接對應 Daemon 的 README,因此結論只涵蓋該入口。

取得原始碼與建置環境

要建置 Dæmon,需要安裝 git、cmake 和一個支援 C++14 的編譯器。官方支援的編譯器包括 gcc 9 及以上、clang 11 及以上,以及 Visual Studio 2019 或更高版本。在 Windows 上使用 MinGW 時,官方推薦透過 MSYS2 環境安裝對應的 64 位元或 32 位元工具鏈。README 列出了必要的依賴函式庫,包括 zlib、libgmp、libcurl、SDL2、GLEW、libpng、libjpeg、libwebp、Freetype、OpenAL 以及若干音訊編解碼函式庫;ncurses 則是可選的。

採用 Daemon 前,先執行「git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置」。第 3 節要看的不是抽象的成功訊息,而是專案自己的輸入和產物:檢查命令退出狀態、README 指定的設定鍵、產生的檔案、服務日誌或查詢結果。若 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置 需要額外硬體、服務或憑證,應把缺少的條件記在結果旁,不用推測填補。這個檢查直接對應 Daemon 的 README,因此結論只涵蓋該入口。

子模組與下載步驟

Dæmon 依賴多個子倉庫,在編譯之前必須全部取得。如果尚未克隆主倉庫,README 給出的命令是 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git。如果已經克隆過,則需要在倉庫目錄下執行 git submodule update --init --recursive。README 特別提醒,如果 cmake 報錯說 libs/crunch/ 資料夾裡缺少檔案,那通常就是跳過了這一步。子模組的具體清單和用途沒有在 README 中列出。

採用 Daemon 前,先執行「git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置」。第 4 節要看的不是抽象的成功訊息,而是專案自己的輸入和產物:檢查命令退出狀態、README 指定的設定鍵、產生的檔案、服務日誌或查詢結果。若 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置 需要額外硬體、服務或憑證,應把缺少的條件記在結果旁,不用推測填補。這個檢查直接對應 Daemon 的 README,因此結論只涵蓋該入口。

編譯與跨平台建置

在 Visual Studio 下,流程是執行 CMake、選擇編譯器,然後開啟產生的 Daemon.sln 進行編譯。在 Linux、macOS 和 MSYS2 環境下,先執行 cmake -H. -Bbuild,再執行 cmake --build build -- -j4,產物會放在新建的 build 目錄中。README 建議用 -jN 中的 N 替換為 CPU 核心數來加速編譯,Linux 上可以用 nproc 取得核心數。對於從 Linux 交叉編譯到 Windows 的場景,可以使用 cmake/cross-toolchain-mingw64.cmake 或 32 位元版本的工具鏈檔案。

採用 Daemon 前,先執行「git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置」。第 5 節要看的不是抽象的成功訊息,而是專案自己的輸入和產物:檢查命令退出狀態、README 指定的設定鍵、產生的檔案、服務日誌或查詢結果。若 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置 需要額外硬體、服務或憑證,應把缺少的條件記在結果旁,不用推測填補。這個檢查直接對應 Daemon 的 README,因此結論只涵蓋該入口。

執行遊戲與資料包

執行 Dæmon 需要一個 pkg 資料夾,裡面裝滿了由基於 Dæmon 的遊戲提供的 .dpk 檔案,而且這個資料夾必須與 daemon 二進位檔案放在一起。啟動用戶端直接執行 ./daemon,Windows 上則是 daemon.exe。啟動專用伺服器使用無圖形介面的 daemonded(Windows 上為 daemonded.exe),並搭配 +map <mapname> 參數來載入地圖。README 指出地圖名稱和其他選項可能因遊戲而異,並連結到了 Unvanquished 的伺服器設定文件。

採用 Daemon 前,先執行「git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置」。第 6 節要看的不是抽象的成功訊息,而是專案自己的輸入和產物:檢查命令退出狀態、README 指定的設定鍵、產生的檔案、服務日誌或查詢結果。若 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置 需要額外硬體、服務或憑證,應把缺少的條件記在結果旁,不用推測填補。這個檢查直接對應 Daemon 的 README,因此結論只涵蓋該入口。

許可與文件邊界

倉庫元資料標記的許可證是 BSD-3-Clause,但提供的許可證摘錄中只有一段中文說明,指出未找到常見路徑的 LICENSE 檔案,只能如實說明這一點。因此,本文無法從 README 或摘錄中引用任何具體的許可證條款。關於 Dæmon 的安全性、效能表現、使用者規模或商業支援,README 同樣隻字未提;它只說明了如何取得、建置和執行引擎。

採用 Daemon 前,先執行「git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置」。第 7 節要看的不是抽象的成功訊息,而是專案自己的輸入和產物:檢查命令退出狀態、README 指定的設定鍵、產生的檔案、服務日誌或查詢結果。若 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置 需要額外硬體、服務或憑證,應把缺少的條件記在結果旁,不用推測填補。這個檢查直接對應 Daemon 的 README,因此結論只涵蓋該入口。

編輯結論

Daemon 適合需要 README 所列功能,並能管理其依賴與設定的使用者;不適合把範例以外的行為當成保證。先執行 git clone --recurse-submodules https://github.com/DaemonEngine/Daemon.git,再以 cmake 配置 C++14 建置,核對專案指定的輸入、檔案、日誌或查詢輸出,再決定是否放進既有流程;素材沒有說明的部分仍應列為未知。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
社群筆記

社群筆記