大家好,我要开始设计一个新的小游戏引擎,我打算将游戏引擎作为一个DLL,然后建立一个使用该DLL的游戏项目并输出EXE文件。
但是,我读到了最新的ID Tech游戏引擎,以及它们采用的相反方式。(http://fabiensanglard.net/doom3/index.php)
虽然没有真正解释原因。但我感觉这与modding有关,因为在很长一段时间内,只有游戏(在这种情况下是DLL)对公众开放,而引擎(EXE)是封闭源代码。
但我想知道是否还有其他原因。
据我所知,DLL项目应具备所有可重复使用的代码。普通项目应该是应用程序,该程序将引用可重复使用的DLL。这样,您可以在DLL项目中构建框架,可用于任何其他未来项目。
我能想到的另一个原因是,据我所知,程序文件中仅记录DLL的名称,不包括文本或数据,因此如果游戏可能比引擎更大,则可以使可执行文件大小更小。
[编辑]
我又想到了另一个原因:引擎是EXE,因此它可以在没有游戏DLL的情况下使用?比如用于CAD或脚本等工具?