这段视频中,每个象限都是四个玩家自己的客户端在同一时刻的视图。我们排列了它们,使您可以看到四个预测视图在所有玩家与道具同时碰撞时保持一致。
我们以我们的Unity多人引擎(Reactor)为原型来测试预测在重力物理交互下是否能够承受。显然,回滚式预测在这种情况下不起作用。
在打斗游戏中,回滚式预测是很棒的。您有有限的玩家,一个确定性的(类似)模拟,重新模拟几个帧是很便宜的。如果您尝试在物理游戏中使用它,重新模拟可能会变得非常复杂,导致客户端性能下降。
玩家经常与相同的对象互动,这使得回滚式不一致的问题变得更加明显。每次修正都重新模拟一个充满刚性体的世界,这导致客户端的处理峰值和不稳定的帧率。另外,当几个玩家都在推动相同的一堆碎石时,它可以发展成一个近乎连续的回滚式状态,重新模拟可能永远不会结束或需要放弃。
我们处理预测的方式不同:服务器运行模拟,客户端在本地预测并向服务器进行协调,而不是回滚世界,“收敛预测”。不同的动作被预测得不同,所以运动使用收敛预测,但旋转是“本地”的。这意味着运动有一些加速度,但旋转是立即的。在低延迟的情况下,您几乎感觉不到任何差异。
所以我很好奇你们是如何处理这个问题的。你们在回滚式预测和服务器主导式预测之间划分的界限在哪里?有人成功地将回滚式预测应用于真正的物理重型游戏吗?如果有,那么它需要什么?你们的什么部分出问题了?我们很乐意深入讨论。我们在我们的Discord中讨论网络编程:https://discord.gg/vWeTvPB
评论 (0)