《守望先锋》是一款快节奏的在线多人第一人称射击游戏。 像许多其他同类游戏一样,《守望先锋》采用了自己的客户端预测。 客户端预测负责使在在线环境中进行游戏时始终感觉到一些延迟,从而使游戏感觉灵敏且流畅 。 它告诉您根据游戏的当前状态最有可能发生的事情。
如果您向敌人发射源治的手榴弹,您可能会在看到击打声确认目标对准之前看到冲击视觉效果。 如果所有其他条件保持不变,则客户会告知您最可能的结果-您的目标继续朝着同一方向移动,没有使用缓解能力,等等。但是,有时您会看到手里剑发现的所有红色冲击视觉效果它们的标记,但您听不到撞击声,也看不到对目标造成的损害。 这是客户端预测的缺点之一。 客户错误地预测了动作的结果,从而使球员对“无规则”投篮感到沮丧。

与所有形式的预测一样,它们永远不可能是完美的。 预测取决于假设,在这种情况下,客户会假设目标在发射榴弹炮时将以相同的方向和速度行进。 在投掷流星之后,目标所要做的就是改变其运动,并且您可能会看到误导性的冲击视觉效果,而这些视觉效果刚好脱离了目标模型。 射弹武器的预测误差往往会更多,因为它涉及更大的误差空间。 可以在《要塞要塞2》中制造射弹瞄准器 ,以使每枚火箭几乎始终如一地准确落在目标上。 但是,在玩家控制目标和空中移动的情况下,目标会偏离预期路径,从而导致瞄准机器人错过目标。 客户端预测使用相同的假设恒定移动路径的原理。
尽管客户端的预测可以使游戏发挥出色且可在线播放,但也会导致一些令人头疼和令人困惑的时刻,即使是经验丰富的玩家也无法自拔。 最值得注意的是,Roadhog的“链钩”(Chain Hook)可为最不正确的预测产生最明显的反馈。 挂钩似乎与源氏分离的Example1和笨拙地更改目标的Example2 。
您可能会问,我们如何将预测误差与Chain Hook的视线要求区分开。 这就是服务器对帐的作用。 游戏客户端上有一些指标可以确认服务器已根据使用的功能确认了命中登记,例如十字准线上的“ x”命中标记,命中声音和“火”点获得。 成功着陆但由于视线不佳而断开的链钩仍会奖励“火”点。 在Example1中,没有授予“射击”分数,这表示客户在机钩着陆之前通过源源不断的Swift Strike迅速改变了位置,这是客户的错误预测。 客户首先考虑到使用该能力时的情况,挂钩将降落。 但是,服务器然后告诉客户端,由于来自目标的其他输入,挂钩实际上错过了。 然后,客户端尝试进行自我更正,并将该挂钩返回给用户,从而使其看起来像在到达目标后分离。
尽管弹丸武器的预测误差往往更频繁发生,但命中扫描武器也不例外 。 当玩家遇到连接中断时,通常会发生击中扫描的预测错误,而不是来自目标的意外输入或外部影响。 当玩家遇到连接问题时,客户会预测敌人最可能的位置,而且通常情况下并不总是如此。 结果,客户端的预测错误将导致敌人模型与其命中盒相比被绘制在不同的位置。 在这里,命中扫描镜头似乎可以连接目标模型,但仍然会丢失,因为《守望先锋》中的滞后补偿使服务器能够根据服务器(而不是客户端)上的内容进行决策。
可能的改进
《守望先锋》的客户端预测确实很棒,但我确实认为需要进行一些改进以进一步增强玩家的体验。 一种可能的方法是为玩家提供几乎完全禁用客户端预测的选项,而忽略用于玩家移动和其他绝对必要性的选项。 但是,这仅对ping低且连接非常稳定的玩家有用,因为当连接刚好低于所需水平时,没有客户端预测的游戏将变得非常粗糙。
另一种方法可能是为特定能力切换预测选项 。 他们可以为每一个能力做到这一点,或者只为特定的能力保留选择权,例如Roadhog的Chain Hook和Reaper的Wraith Form。 这些能力使玩家无法进行动作以外的其他动作,并且无论该能力的成功如何,都不会对玩家的决策产生太多不利影响-例如,经验丰富的Roadhog可能会在成功完成Hook之后及时转移目标。 关闭预测将导致他们是否成功的响应延迟,但这可以让玩家尝试他们喜欢的东西。
最终,这些选项使玩家能够改变他们的游戏体验,以适应他们的喜好。
包起来
对于那些以前不了解客户端预测的人,我希望我已经设法阐明了这个问题,以帮助您掌握该问题。 尽管客户端预测的实现因游戏而异,但该通用文章可能会引起您的兴趣,因为它会更深入地研究其复杂性,但仍易于消化。
体验宁静〜
沙什鲁兹
