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