【发布时间】:2010-02-12 00:19:05
【问题描述】:
在过去 6 个月左右的时间里,我一直在一个小型测试游戏中拼凑一些东西,现在一切都在一个项目中。我想了解有关创建可重用“引擎”的更多信息,并且我正在尝试找出实现此目的的最佳方法。
静态库显然要快一点,因为它们是在运行时编译而不是在运行时加载的,但这对我来说真的无关紧要。 DLL 相对于静态库的优势似乎相当大。所以我想知道“游戏引擎”的最佳方法/最常用的方法是什么。
我正在使用 Ogre3D(渲染引擎),它支持它加载的 dll 插件,但我想编写我的 dll,我基本上可以在任何地方使用它们。那么我最好的选择是为我的示例引擎的每个部分编写单独的 DLL,例如 sound.dll、gui.dll 等?或者我会更好地通过创建一个大的 dll,被认为是 engine.dll 或其他东西吗?我假设最好的方法是为一般结构编写类似...engine.dll 的东西,然后将其组合成其他 dll,例如声音/gui/input/等。
独立于 Ogre 的插件系统编写我的 dll 会很愚蠢吗?我的声音依赖于 FMOD 库,我的 GUI 依赖于 CEGUI 库,等等。我主要只是想将我的引擎创建到可以轻松使用各个库中我需要的功能的程度。
【问题讨论】: