很棒的2D和3D跨平臺(tái)游戲引擎,Godot Engine
Godot Engine是一個(gè)功能豐富的跨平臺(tái)游戲引擎,可從統(tǒng)一的界面創(chuàng)建 2D 和 3D 游戲。它提供了一套完善的常用工具,讓用戶可以專注于制作游戲,而無需重新發(fā)明輪子。游戲可以一鍵導(dǎo)出到多個(gè)平臺(tái),包括主要的桌面平臺(tái)(Linux、macOS、Windows)、移動(dòng)平臺(tái)(Android、iOS),以及基于Web的平臺(tái)(HTML5)和 控制臺(tái)。
免費(fèi)、開源和社區(qū)驅(qū)動(dòng)
Godot 在非常寬松的MIT 許可下是完全免費(fèi)和開源的。沒有附加條件,沒有版稅,什么都沒有。用戶的游戲是他們的,直到最后一行引擎代碼。Godot 的開發(fā)完全獨(dú)立且由社區(qū)驅(qū)動(dòng),使用戶能夠幫助塑造他們的引擎以滿足他們的期望。它得到了 非營利軟件自由保護(hù)協(xié)會(huì)的支持。
在 2014 年2 月開源之前,Godot 已由Juan Linietsky和?Ariel Manzur(兩人仍在維護(hù)該項(xiàng)目)作為內(nèi)部引擎開發(fā)了數(shù)年,用于發(fā)布多個(gè)雇傭作品。
Godot 使用SCons來構(gòu)建。我們喜歡它,我們不會(huì)為了其他任何東西而改變它。我們甚至不確定其他構(gòu)建系統(tǒng)是否能夠勝任構(gòu)建 Godot 的任務(wù)。我們不斷收到將構(gòu)建系統(tǒng)遷移到 CMake 或 Visual Studio 的請求,但這不會(huì)發(fā)生。我們選擇 SCons 而不是其他替代方案的原因有很多,例如:
- Godot 可以針對十幾種不同的平臺(tái)進(jìn)行編譯:所有 PC 平臺(tái)、所有移動(dòng)平臺(tái)、許多控制臺(tái)和 WebAssembly。
- 開發(fā)者經(jīng)常需要同時(shí)為多個(gè)平臺(tái)編譯,甚至是同一平臺(tái)的不同目標(biāo)。他們負(fù)擔(dān)不起每次都重新配置和重建項(xiàng)目。SCons 可以毫不費(fèi)力地做到這一點(diǎn),而不會(huì)破壞構(gòu)建。
- 無論有多少更改、配置、添加、刪除等,SCons 都不會(huì)破壞構(gòu)建。與需要在 SCons 中清理和重建相比,您有更多的機(jī)會(huì)被閃電擊中。
- Godot 構(gòu)建過程并不簡單。一些文件由代碼生成(綁定器),其他文件被解析(著色器),還有一些需要提供定制(插件)。這需要復(fù)雜的邏輯,更容易用實(shí)際的編程語言(如 Python)編寫,而不是使用僅用于構(gòu)建的主要基于宏的語言。
- Godot 構(gòu)建過程大量使用交叉編譯工具。每個(gè)平臺(tái)都有特定的檢測過程,所有這些都必須作為特定案例處理,并為每個(gè)平臺(tái)編寫特殊代碼。
因此,如果您打算自己構(gòu)建 Godot,請盡量保持開放的心態(tài)并至少熟悉它。
SCons:軟件構(gòu)建工具
什么是 SCons?
SCons 是一個(gè)開源軟件構(gòu)建工具。將 SCons 視為經(jīng)典 Make 實(shí)用程序的改進(jìn)的跨平臺(tái)替代品,具有類似于 autoconf/automake 和編譯器緩存(如 ccache)的集成功能。簡而言之,SCons 是一種更簡單、更可靠、更快速的軟件構(gòu)建方式。
是什么讓 SCons 變得更好?
- 配置文件是 Python 腳本——使用真正的編程語言的力量來解決構(gòu)建問題。
- 為 C、C++ 和 Fortran 內(nèi)置可靠、自動(dòng)的依賴關(guān)系分析——不再需要“makedepend”或“make clean”來獲取所有依賴關(guān)系。通過用戶定義的其他語言或文件類型的依賴性掃描程序,依賴性分析很容易擴(kuò)展。
- 內(nèi)置支持 C、C++、D、Java、Fortran、Yacc、Lex、Qt 和 SWIG,以及構(gòu)建 TeX 和 LaTeX 文檔。通過用戶定義的構(gòu)建器可輕松擴(kuò)展其他語言或文件類型。
- 從源代碼和/或預(yù)構(gòu)建目標(biāo)的中央存儲(chǔ)庫構(gòu)建。
- 對 Microsoft Visual Studio 的內(nèi)置支持,包括生成 .dsp、.dsw、.sln 和 .vcproj 文件。
- 使用 MD5 簽名可靠地檢測構(gòu)建更改;對傳統(tǒng)時(shí)間戳的可選、可配置支持。
- 支持并行構(gòu)建——比如 make -j ,但無論目錄層次如何,都可以同時(shí)運(yùn)行 N 個(gè)作業(yè)。
- 集成類似 Autoconf 的支持,用于查找#include 文件、庫、函數(shù)和 typedef。
- 所有依賴項(xiàng)的全局視圖——不再需要多次構(gòu)建傳遞或重新排序目標(biāo)來構(gòu)建所有內(nèi)容。
- 能夠在緩存中共享構(gòu)建文件以加速多個(gè)構(gòu)建——例如 ccache,但適用于任何類型的目標(biāo)文件,而不僅僅是 C/C++ 編譯。
- 專為跨平臺(tái)構(gòu)建而設(shè)計(jì),可在 Linux、其他 POSIX 系統(tǒng)(包括 AIX、BSD 系統(tǒng)、HP/UX、IRIX 和 Solaris)、Windows 7/8/10、MacOS 和 OS/2 上運(yùn)行。