大家好,我开始设计一个新的小游戏引擎,我假设游戏引擎是一个 DLL,然后为游戏构建一个项目,该项目将使用这个 DLL 并输出一个 EXE 文件。
但后来我读到了最新的 ID Tech Game Engines 以及他们是如何反其道而行之的。( http://fabiensanglard.net/doom3/index.php )
但并没有真正解释为什么。我觉得它与修改有关,因为只有游戏(在这种情况下为 DLL)在相当长一段时间内向公众开放,而引擎 (EXE) 是封闭源代码。
但我想知道是否还有其他原因。
据我所知,DLL 项目应该包含所有可重用的代码。正常项目应该是引用可重用 DLL 的应用程序。通过这种方式,您可以在 DLL 项目中构建一个可用于任何其他未来项目的框架。
我能想到的另一个唯一原因是 AFAIK 仅将 DLL 的名称记录在程序文件中,没有文本或数据,因此如果游戏可能比引擎大,它可能会使可执行文件的大小更小。
[编辑]
我想到了另一个原因:引擎是一个 EXE,所以它可以在没有游戏 DLL 的情况下使用?喜欢 CAD 或脚本等工具?