C ++游戏引擎:缓存友好的游戏对象设计

时间:2016-11-22 14:12:38

标签: c++ performance caching game-engine data-oriented-design

我目前正致力于用C ++开发游戏引擎等等我用这种方式设计了我的gameObject:

每个数据组件在内存中连续分配,并在其所属的管道中推送。在运行时,每个模块都会计算他们拥有的数据组件列表。

数据:

艾爱艾

渲染渲染渲染

物理物理物理

foreach ai in AI
   computeAI(ai);
foreach render in Render
   computeRender(render);
foreach physics in Physics
   computePhysics(physics);

问题是:如果它们是多个模块使用的数据组件会怎么样?例如,实体的位置。对缓存行是致命的,以便在每个模块中加载它们吗?

你有什么建议改进这样的设计吗?或者我应该使用另一个吗?

非常感谢!

0 个答案:

没有答案