格斗游戏开发者如何提高在线游戏性能

格斗游戏开发者如何提高在线游戏性能

Netcode是一组决定视频游戏在线播放的技术协议,在格斗游戏中尤为重要。决策往往是一分为二的,只有几个框架来决定一个或一个组合是否完成任务。网络代码通常是竞争对手寻找下一个游戏的主要关注点。不幸的是,开发人员并不总是这个讨论中最积极的参与者。

作为即将上映的关于2013年《杀手本能》重新启动的一部“封杀”纪录片的一部分,摄影家埃斯特班·马丁内斯(Esteban Martinez)昨日发布了对铁银河工作室战斗设计师亚当·凯茨(Adam“Keits”Heart)关于网络代码的采访,特别是《杀手本能》团队使用的“回滚”网络代码。回滚网络代码,例如由Evo联合创始人托尼·坎农(Tony Cannon)免费开发和发布的GGPO中间件,在格斗游戏方面,与标准的“基于延迟的”网络代码相比有不少优势,而Heart与Martinez的对话在分解这些方面做得非常出色。(Heart是我在战斗游戏社区网站Shoryuken的前老板,Cannon是老板。)

哈特解释说:“在格斗游戏中,网码是最重要的因素,因为在线游戏的玩家需要快速找到一场比赛,而这场比赛必须是稳定的,并且需要尽可能让玩家感到离线。”。“对我们来说幸运的是,这个问题在2007年基本上由汤尼·坎农和GGPO解决了。因此,我们已经有了我们的框架来研究如何处理这个问题,并以一种真正令人满意的方式来处理它。”

就像大多数涉及视频游戏背后技术方面的事情一样,回滚网络代码对于外行来说是复杂的,但是Heart说它与基于延迟的网络代码“完全相同”,但有“更多的特性”。这一切归结于两个系统如何处理经常发生在在线对手之间的数据差异。当基本的基于延迟的网络代码没有收到关于一个玩家正在做什么的信息时,游戏就停止了,因为它在等待所有人跟上。在这段时间里,两个玩家的输入都被“吃掉”,或者变得无用,因为游戏不能接收任何信息。这是一个明显的小插曲,可以使在线比赛令人沮丧和徒劳。

另一方面,回滚网络代码根据连接错误之前执行的输入来预测对手正在做什么。如果一个玩家向前走,它可能会假设他们还在向前走。如果他们跳下或抛出重拳,动画仍将播放数帧,而游戏赶上。如果这个预测是错误的,游戏状态将被重新模拟和纠正的速度会比玩家能够识别发生了什么更快。这并不总是最顺利的过程,但与体面的互联网连接,整个体验是更顺利,感觉更好的球员习惯了玩离线比基本的延迟为基础的网码。

“如果回滚构建正确,很难看到发生这种情况,”Heart说。“你总是会有同样的感觉。你的组合总是一样的。你的反应时间总是一样的。你永远不需要调整。实际上,你可以在线学习离线版本的游戏,因为回滚网络代码。这只是一个开发人员说,‘是的,这对我们很有价值,我们希望这样做。’然后(社区)把信息传达出去说,‘看看这对杀手本能做了什么。在发展甚至停止之后,它有一个欣欣向荣的景象。人们发现火柴闪电般的快,他们可以玩世界各地的人。这是魔法。你必须这么做。”

战斗游戏社区的网码讨论在过去的一个月里已经扩大了由于有罪的齿轮争取明年发布。众所周知,内疚装备开发商arcsystemworks在游戏中实现回滚网络代码时一直犹豫不决,因为在日本这样的小国,基于延迟的网络代码足以让玩家找到稳定的匹配。然而,当netplay搬到美国这样的大国时,情况就变得不稳定了。玩家们一直在谈论在Arc System Works游戏中使用网络代码回滚的必要性,虽然没有迹象表明工作室正在针对这些问题采取行动,但在最近的一次游戏中发布的一份调查问卷显示,玩家们问这种网络代码对他们有多重要,明确表示,开发商正在某种程度上倾听。

有几款格斗游戏,从主要的发行版如《致命的快打》和《不公正》到更独立的冒险游戏如《Skullgirs》和《Pocket Rumble》,都使用了像GGPO这样有能力的回滚网络代码,效果非常好。然而,Street Fighter V专有的Kagemusha回滚网络代码(至少可以说实现得很差)给一些玩家留下了这样的印象:它不值得在其他格斗游戏中使用。当然,这不仅仅是一个将代码塞进游戏的问题,如果一个游戏是用回滚网络代码构建的,并且开发人员愿意花费一点额外的时间和金钱来实现它的功能,那么最终产品将为更多的在线竞争对手提供更愉快的体验。

“当您转换到回滚系统时,有很多需要考虑的因素,”Heart总结道。“这是一个很好的网络架构,但你还是要做好准备。这绝对不是小事。但我想让开发人员明白的是,无论哪种方式,您都必须在网络代码上花钱。你要么做不好的网络代码然后花钱买它,要么做好的网络代码然后花钱买它。这不像是在不花钱和花一堆钱之间做出选择,而是在花一堆钱和多花一点钱之间做出选择。”

Hold Back to Block与Heart的整个对话中有更多关于这些系统的信息,以及如果更多的开发者给rollback一个机会,战斗游戏玩家如何“一起拥有更好的未来”。

我一直想知道的是,这种方法是否适用于其他多人游戏类型,如Minecraft或MOBA。这会不会因为资源太密集而无法在多个演员身上运行,而且它只在格斗游戏中有效,因为它们是1v1?



Scroll to Top