Unity:哪种状态同步技术更好?

时间:2017-09-14 16:51:56

标签: c# unity3d 2d-games mmo

我在Unity中实现了简单的2D mmo游戏。

我想在服务器和客户端之间实现用户位置同步。 你会建议采用哪种方法?

我的两个想法:

第一个:

alt text

说明

  • ClientA生成事件移动。他的移动增量时间为0,并通过套接字发送此事件作为命令,并带有开始移动的本地时间戳(T1)。
  • 服务器将记住并播放有关此事件的每个客户端
  • ClientB将在(T3)时间收到ClientA事件,并从dt(delta time)= T3-T1实施移动操作。

(我们也可以在帧或服务器时间内评估T3和T1。)

第二个: enter image description here

说明

  • 每次我们将为客户播放当前场景状态
  • 场景状态将在服务器或客户端上计算(无关紧要)
  • ClientA将发送到服务器移动事件,服务器将接收它并将记住它并向其他客户端广播。
  • ClientB将获取ClientA对象的同步状态,并使用对象的当前移动状态更新其位置)并每次插值。

好。问题是......我会得到这两种解决方案的利弊吗? 也许你有比我想象的更好的解决方案。

解决方案可能在Unity引擎上,但应该比我想象的更有效。 另外,什么解决方案使用Unity Networking和Photon与Photon服务器?

谢谢!

0 个答案:

没有答案