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