Networking 统一多人玩家同步

Networking 统一多人玩家同步,networking,mobile,synchronization,unity3d,multiplayer,Networking,Mobile,Synchronization,Unity3d,Multiplayer,我正在开发一款unity手机游戏。这就像是多人版的坦普尔跑步。因为这款游戏是为移动设备设计的,所以延迟通常在200-500毫秒之间波动。 由于路径是预先确定的,并且用户可以执行的操作是有限的(跳跃、滑动、使用通电等),远程播放器将继续在路径上运行,直到它从本地播放器接收到更新的状态。 这种策略通常效果很好,因为我只需要通过网络发送有限数量的数据,但有一种特殊情况下我遇到了问题。 在游戏中,玩家死在特定的位置(障碍物)。 我希望远程玩家在与本地玩家相同的障碍物/位置死亡,但由于发送消息的延迟,远程

我正在开发一款unity手机游戏。这就像是多人版的坦普尔跑步。因为这款游戏是为移动设备设计的,所以延迟通常在200-500毫秒之间波动。 由于路径是预先确定的,并且用户可以执行的操作是有限的(跳跃、滑动、使用通电等),远程播放器将继续在路径上运行,直到它从本地播放器接收到更新的状态。 这种策略通常效果很好,因为我只需要通过网络发送有限数量的数据,但有一种特殊情况下我遇到了问题。 在游戏中,玩家死在特定的位置(障碍物)。 我希望远程玩家在与本地玩家相同的障碍物/位置死亡,但由于发送消息的延迟,远程玩家在收到死亡消息时越过障碍物。 有没有一种方法可以同步死亡画面上的玩家。 我尝试过的一件事是将远程玩家移回本地玩家的死亡位置,但这不仅在视觉上看起来很尴尬,而且还会引发其他同步问题。
还有其他更好的方法吗?

我建议的一种方法是让一个玩家扮演服务器(而不是真正的服务器)的角色。服务器播放器将执行所有计算,如移动、跳跃、创建场景等。然后服务器播放器将发送所有数据以与客户端播放器同步。客户端玩家获取数据并处理游戏状态。客户端玩家也可以将他的动作(左-右跳转幻灯片)发送给服务器玩家。这样,两个玩家将有相同的游戏状态,如位置,死亡。您还需要通过添加一些预测来处理延迟问题。

因此,我实施的解决方案是,我让所有远程玩家都有足够的时间来接收本地玩家在特定障碍物上死亡的信息。最后,有一条直道,我只需再次同步播放器。以便正确显示结果

有趣的问题-你能稍微澄清一下这句话吗“我希望远程玩家死在和本地玩家相同的障碍物/位置上”?