Mon*_*ofu 5 multithreading synchronization
所以我正在尝试为我想写的游戏创建一个简单的多线程游戏引擎.到目前为止,一切都没有任何问题,我甚至知道我必须采取什么步骤来完成它.
只有一件事我不知道(从技术上讲,我知道它的解决方案,但我希望有更优雅和更快的东西):基本上,我的引擎的每个部分都有一个单独的线程 - 图形,输入,物理,音频等
物理线程具有完整的世界场景节点结构,模拟一切.但是,我现在必须将这个结构放到我的图形线程中,尽可能减少开销.理想情况下,它应该仅传输自上次更新以来更改的部分.
我有用于传输此数据的组件,只有问题是生成它.
到目前为止,我已经想到了两种不同的方法:
方法一会复制大量内存,但没有太多的处理能力,方法二会做相反的事情:充足的处理能力,更少的内存复制.
在典型的游戏环境中,是否有一些通用的答案会更快?
不,没有公认的通用答案,这是游戏开发当前的研究领域。
我的 2 美分是传统智慧 - 使用哪一种实际上取决于您的具体用例 - 如果您的游戏有大量数据(即它非常占用内存,就像大多数大片游戏一样),您可能只想传输更改。如果您的游戏不是内存密集型游戏(例如街机游戏),您可能可以复制整个对象。
我建议同时实现两者并连接性能计时器,看看哪个更适合您;可以实现一种能够透明地处理这两种方法的体系结构。