分离显示和游戏逻辑的最佳方法(线程)

分离渲染和游戏逻辑线程的最好方法是什么?

我想做一个逻辑重的游戏(ai,机器学习和networking),其中世界每秒更新50-60次。

我想分开渲染,所以不会浪费逻辑的线程能力。

我正在计划使用C ++提升。

游戏中的线程与其他应用程序中的问题几乎相同。 在并行化方面考虑:你有一些相互关联的任务,必须同时运行而不会干扰彼此的工作。

绘画阶段不应该受到任何其他计算的影响,所以游戏状态在绘画时必须保持稳定,即这些任务必须是同步的。 绘画不应该开始,直到整个gamestate步骤完成。 更改游戏画面的任务必须依次运行绘图代码(update-draw-update-draw -…),同时仍然可以同时运行不会立即改变游戏状态的代码(例如寻找下一帧)。您还可以保留整个游戏状态的局部副本(如果它不是太大)或其中的一部分,计算它们,但只是在与绘图代码同步时更新游戏状态(在当前帧的绘制结束之后)。