我目前正在C#中设计一个3D游戏引擎。我不知道为什么,但我觉得应该提到引擎将很快支持多个呈现后端(OpenGL 4.6、Direct3D 12等)。
在VS中,我在一个解决方案中有5个不同的项目,还有一个项目是我用来测试我所有代码的地方。
目前,我的解决方案是这样的:

该组织如下:
所有4个项目都被编译成DLL。
TestGame项目引用所有4个项目来使用所有引擎特性。
当我深入开发的时候,引擎的体系结构会继续吗?还是应该将所有这些项目合并成一个项目?
发布于 2018-03-27 01:47:31
将大型解决方案分离为不同项目的主要好处是部署的独立性;例如,您可能希望能够提供包含更多咒语或能力的DLL更新版本,同时保持呈现逻辑。如果您的launcher能够下载和安装更新,则尤其如此。
因此
GameEngine.Math可能变化不大,因为数学定理和物理定律几乎是不变的。基于此,我认为你做得还不错。
此外,您还可以考虑使用单独的DLL来定义接口(如果使用的话),这样可以确保所有DLL都“说同一种语言”,而不需要混乱的绑定重定向,并且不引入循环的程序集引用。
https://softwareengineering.stackexchange.com/questions/368284
复制相似问题