2

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

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

我的两个方法想法:

第一:

替代文字

描述:

  • ClientA 生成事件移动。他移动的 Delta 时间为 0,并通过套接字将此事件作为命令发送,并带有开始移动的本地时间戳 (T1)。
  • 服务器将记住并向现场的每个客户广播有关此事件的信息
  • ClientB 将在 (T3) 时间收到 ClientA 的事件,并从 dt (delta time) = T3-T1 开始执行移动动作。

(我们还可以以帧或服务器时间为 T3 和 T1 评分)。

第二个: 在此处输入图像描述

描述:

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

出色地。问题是.... 这两种解决方案的优缺点是什么?也许你有比我想象的更好的解决方案。

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

谢谢!

4

0 回答 0