自从游戏行业出现以来,这种错误就一直烦扰着玩家。我们已经习惯了它们,并给它们起了一个不太友善的绰号——“BUG”(臭虫)。程序错误随处可见,《战舰世界》也不例外。开发团队于今日公布了官方纪录片,讲述了 QA 团队如何发现和修复游戏中的程序错误。
Wargaming Group 表示,他们的项目包括数百万行不断更新的代码、大量的内容以及玩家电脑与服务器之间复杂的交互系统。所有这些都创造了大量可能发生错误的关系。在本期纪录片中,玩家将了解团队如何减少出现在主服务器中的程序错误数量,以及如何修复那些被忽视的程序错误。
“程序错误”一词可能为大多数玩家所熟悉。程序错误是导致程序运行的实际结果与预期不符的错误。在游戏的早期,团队将程序错误分为两个主要类型:游戏内容中的程序错误和代码中的程序错误。现在,还有很多其他类型。
质量保证(QA)团队负责发现和修复《战舰世界》中的程序错误。《战舰世界》大多数的开发团队中都有QA部门。例如:
内容:检查模型、声音、视觉效果等。
游戏逻辑:检查游戏机制是否可以正确运行。
服务器核心:检查游戏服务器是否可以正确运行。
QA的工作是理解如何将特定事物在游戏中实现。为此,他们需要研究文档并与开发人员沟通。之后,他们会制定测试流程和方案,用于检查程序是否符合预期行为。测试程序时,同时进行负面和正面测试:
如有必要,团队也会执行其它类型的检测:性能测试、用户体验测试等。在《战舰世界》中,测试可以简化为几个主要阶段。
构建是游戏客户端的某个版本,可用于测试。像《战舰世界》这样的大型项目,即使是最大规模的QA团队,也不可能完全跟踪所有关系及其结果。因此,在内部测试进入最后阶段时,团队会开放外部测试:
外部测试还能让团队检查游戏在各种各样的计算机和软件配置上的运行状况《战舰世界》开发团队也会参与外部测试。工作室中有一个“红绿灯”机制。这是一个特殊页面,由所有团队在公共测试服上游戏后进行填写。在这个页面上,工作人员可以针对测试版本中的新功能给予反馈,并对其进行评估。之后在总结测试结果时会将所有评估纳入考量。
基于外部测试的结果,团队对会在当前游戏构建中修复最后一批被识别出的错误。如果无法修复错误,团队甚至需要从即将到来的版本更新中移除某些功能。0.10.9版本中的非对称战斗就是这种情况。在公开测试期间,测试者发现了一个导致模式无法正确运行的程序错误,这需要额外时间进行修复。因此,该版本更新移除了此模式。
为什么正式服上会出现程序错误?程序错误的出现有多种原因,并且发生在不同的开发阶段。从程序代码和人为因素中常见的错误到为新版本创建设计文档阶段产生的不明显的交互和错误。
一个存在于构思阶段的错误,仍将被视为程序错误。例如,航空母舰中队在攻击后会立即开启暂时不受伤害的机制也可以归因于程序错误。这个机制之前被用于突破敌人的防空区域。在航空母舰更新的设计阶段,团队未能预见该机制的这种用法,所以只能在后来对其进行修复。
为了避免类似的情况,团队尝试在讨论新的想法时就尽早开始测试。此外,单独运行时表现完美的游戏元素也可能在与其它游戏元素结合时,由于各种相互联系和冲突而“出错”。例如,在排位战更新的一个内部测试中,团队发现它们会导致军团战的运行发生错误——由于匹配时间是无限长的,玩家无法开始战斗。造成这种情况的原因并不是最明显的关系,但幸运的是它被发现了,并且没有进入正式服。
导致程序错误的另一个原因是用户的计算机配置种类繁多,加上复杂的客户端-服务器体系结构,可能导致特定计算机上游戏代码的意外行为。这类程序错误很难被发现。例如,在一次版本更新中,由于日本的日期格式与欧洲或美国使用的格式不同,游戏代码无法处理这些信息,从而导致一些玩家的战后统计数据无法显示。
玩家认为是程序错误的程序行为有时可能并不是程序错误,而是预期结果。在这种情况下,团队必须分析玩家的反馈,也可能做出一些改动。相反的情况也可能发生——程序错误有时会成为游戏的一部分,在这种情况下,团队可能会决定故意不修复它。
例如, 敷岛号开炮时的独特声效在听觉范围设置中有一个错误(可以在比预期更大的范围内听到)。这个错误后来被修复。但是,玩家们认为这个修复使此声效失去了其独特性,因此团队让此“错误”重归了游戏。
程序错误也可以暂且归因于数据中心或互联网提供商的技术问题。遗憾的是,在这种情况下团队几乎无能为力。团队并不是每次都能帮到玩家,不管他们是否知道问题的根源。希望各位玩家能理解,要找出所有的程序错误是不可能的。QA团队的工作成果是新功能可以按预期运行,没有严重的程序错误和缺陷,并且可以在正式服上发布。
为什么有些程序错误需要这么长时间才能修复?纠正特定错误所需的时间主要取决于其性质。有些缺陷在错误分析阶段就需要投入大量时间。要纠正错误,团队需要准确地再现错误,并理解错误发生的原因。
例如,最近的一个程序错误导致战舰在转向时无法正确发射鱼雷。这是一个游戏逻辑上错误,而对游戏逻辑的任何更改和修复都具有极大的风险,因为它们会影响所有玩家和游戏的根基——游戏玩法。
因此,要修复此类错误,团队必须准确分析玩家的投诉和各种报告,找出问题的原因,并制定和验证解决方案。在某些特殊情况下,可能需要重写游戏代码以修复程序错误或使用新技术对其进行优化。这个过程被称为重构。尽管从玩家的视角看,似乎没有任何变化,但这个过程实际上需要相当长的时间。
此外,纠正错误的时间范围取决于程序修复交付给玩家的方式。例如:
有些程序错误比较容易处理,团队只需对游戏的服务器端进行一些细微修复就行了,大多数玩家甚至不会察觉。
当错误还影响到玩家的客户端或需要对服务器进行维护以修复错误时,情况就更为复杂。在这种情况下,团队需要准备一个小补丁并在服务器上花一些额外的功夫。在此期间,服务器将对玩家关闭。
修复某些程序错误需要对代码进行大量更改并安排额外测试,所以只有在下一次大型游戏版本更新发布时才能发布修复。
关于如何交付每个修复以及修复程序错误的优先级取决于许多因素:
程序错误的严重程度:无法运行的随机战应当尽快修复,而战舰特性中的错别字可以稍后修复。
影响范围:一些错误影响所有玩家;另一些错误只会对1000名玩家中的1名产生影响。
风险和必要的修复测试:如上所述,对游戏逻辑进行草率的修复只会让事情变得更糟。
服务器维护时长和更新大小:要修复错误,团队需要关闭服务器几个小时,而玩家需要下载相当大的补丁。在这种情况下,团队需要再次考量某个错误是否真的需要立即修复,因为这将导致大量玩家很长时间无法进入游戏。
遗憾的是,尽管团队都希望修复所有可能的程序错误,但是《战舰世界》的团队资源是有限的,所以团队专注于修复最关键和最常见的程序错误。
玩家可以随时通过以下渠道,报告自己发现的任何错误:
为了更快更有效地修复错误,请在报告中添加以下内容:
在今日的文章中,团队尽最大努力以最易懂的方式为玩家介绍了他们与程序错误的斗争,以及那“隐形的前线”。开发团队表示,由衷感谢玩家报告程序错误、提供反馈、参与测试以及游玩《战舰世界》。没有各位的贡献,他们不可能快速发现并纠正游戏中出现的各种错误。
评论区
共 1 条评论热门最新