在Pool Multiplayer上同步物理

时间:2014-07-01 07:09:10

标签: sockets networking unity3d game-physics physics-engine

我正在进行多人游戏池游戏,但我面临物理同步问题,如碰撞点,碰撞力。当两个客户端连接到一个房间时,他们通过套接字交换数据而不是发送所有球数据。我只是输入像白色球被击中的力矢量的输入。理论上,对于相同的行动,即在这种情况下,力量应该在游戏中发生相同的反应或效果但在我的游戏中不会发生。

我在连接到房间和房间的一个客户端游戏中应用已知的力量。将该力转移到连接到同一房间的其他客户端游戏,但由于碰撞导致的球的位移/位置不同。

我无法理解为什么会这样?统一物理引擎在不同的设备或平台上的表现会略有不同吗?

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:1)

Unity物理学是非确定性的。在两个设备上运行物理模拟而不是通过新位置,速度,旋转等进行发送可能会引入由滞后和设备差异引起的不一致,特别是浮点计算不准确。

另见:

http://forum.unity3d.com/threads/is-unity-physics-deterministic.152825/

这个给出了有关模拟中设备差异的示例: http://answers.unity3d.com/questions/46724/deterministic-physics-same-platform.html

在这里,您可以在评论中获得解决方法的说明: http://answers.unity3d.com/questions/475402/is-physicsraycast-deterministic.html