我目前正在开发 C++ 中的游戏引擎等等,我这样设计了我的游戏对象:
每个数据组件在内存中连续分配,并被推送到它们所属的管道中。在运行时,每个模块都会计算它们拥有的数据组件列表。
数据:
爱爱爱
渲染渲染渲染
物理学物理学物理学
foreach ai in AI
computeAI(ai);
foreach render in Render
computeRender(render);
foreach physics in Physics
computePhysics(physics);
问题是:如果它们是由多个模块使用的数据组件怎么办?例如实体的位置。在每个模块中加载它们对缓存行是否致命?
你有什么建议来改进这样的设计吗?或者我应该使用另一个?
非常感谢 !