大家好我开始设计一个新的小游戏引擎,我假设游戏引擎是一个DLL,然后为游戏构建一个项目,使用这个DLL并输出一个EXE文件。
但后来我读到了最新的ID Tech Game Engines以及他们如何做到这一点。 (http://fabiensanglard.net/doom3/index.php)
虽然没有真正解释原因。我觉得它与modding有关,因为只有游戏(在这种情况下是DLL)在引擎(EXE)关闭源的时候对公众开放了很长时间。
但我想知道是否还有其他原因。
据我所知,DLL项目应具有所有可重用的代码。正常项目应该是应用程序,它将引用可重用的DLL。这样,您就可以在DLL项目中构建一个可用于任何其他未来项目的框架。
我能想到的另一个唯一原因是AFAIK只将DLL的名称记录在程序文件中,没有文本或数据,所以如果Game可能比Engine大,那么它可能会使可执行文件的大小变小。
[编辑]
我想到了另外一个原因:引擎是一个EXE所以它可以在没有游戏DLL的情况下使用吗?喜欢CAD或脚本等工具吗?
答案 0 :(得分:1)
如果您在应用程序中使用库,例如一个游戏,然后你有一个带有一个EXE的应用程序,其零个或多个自己的DLL使用一个或多个DLL的库。
如果你有一个通用环境加载元素来定制它的行为,从而使它成为一个特定的游戏,那么你有一个带有EXE和零个或多个DLL的环境,它使用配置加载各种DLL和配置文件来确定它的行为
要么简单,您的应用程序中可能应该有两个以上的程序集。
E.g。一个(EXE)用于加载主配置和模块并连接它们,一个用于主UI,一个用于图形,一个用于物理,一个用于AI等。