具体来说,我想讨论动画。

我正在 UE5.8 上开发一个合作模式僵尸 FPS 异类游戏。它并不是特别竞争激烈,但确实需要比较响应的控制。由于它是合作模式,我将使用网络方法让玩家能够彼此连接。这自然会引入延迟和网络延迟。从我所见来看,我有两条潜在的路线可以处理第一人称动画的问题。

  1. 我只是不让动画播放,直到服务器接收到请求。
  2. 这是好的,因为没有问题会出现“哦,我发誓我重新装载了/近战了/射击了”,因为如果服务器没有看到它,玩家也不会看到它。
  3. 这是潜在的坏处,因为它使输入的感觉变得迟钝和不响应。
  4. 我让客户端预测动画,但服务器仍然拥有时间的权威。
  5. 优点:玩家感觉动画是响应迅速的,因为它马上发生了。
  6. 缺点:动画可以在高延迟的情况下完成,导致玩家看到自己行动,但服务器并没有实际收到请求,导致玩家感到沮丧,因为他们看到自己行动,甚至在行动被打断(死亡、晕倒等)之前。

第三人称动画稍微容易一些,因为它们只会依赖于服务器告诉它们什么时候播放,因为它们只对每个人都能看到的内容相关。

个人来说,我倾向于第二个选项,因为我觉得预测动画感觉要好过等待服务器告诉你动画。 我想,可能有很多混合解决方案,所以我很想听听你们在这种情况下做了什么。