研发实战:如何对VR游戏进行自动化测试 都市之龙傲天下 - 新视野 - 金网新闻网

  1. <ul id='g7En3w'><button id='g7En3w'><style id='g7En3w'></style></button></ul>
  2. <pre id='g7En3w'></pre>
  3. <dl id='g7En3w'></dl><strong id='g7En3w'></strong>

          研发实战:如何对VR游戏进行自动化测试

          2019-05-12 20:20:00 映维网 分享

          加入映维网会员服务

          查看引用和消息源请点击:映维网

          关于开发自动化测试系统的经验

          映维网 2019年04月08日)Lucky VR是热门多人游戏《PokerStars VR》的开发商。日前,这款游戏的一名软件开发者Huiyoung Hyun Jung通过Oculus博客分享了关于开发自动化测试系统的经验。下面是映维网的具体整理:

          1. 多人VR测试的挑战

          就虚拟现实而言,由于用户高度沉浸在游戏之中,bug会造成非常非常不愉快的体验。如果不确定问题的根源,你将非常难以解决它们,而确定bug的重现步骤非常腻烦和令人泄气。多人游戏尤是如此,因为一些bug只在非常特定的情景中出现。

          因为各种各样的原因,测试VR游戏虽然测试VR游戏非常具有挑战性,而与传统游戏相比,测试人员的工作会更加繁重,并且运行多个实例可能非常困难。本文概述了我是如何通过开发自动化测试系统来解决《PokerStars VR》的测试挑战,以及能够帮助你简化测试过程的技巧提示。

          附接至虚拟化身的camera可以增加用户的沉浸感,但在VR中测试时这可能会成为障碍,因为用户需要佩戴头显来感知VR环境。要创建自动化测试,第一步是设置第二个camera,这样你无需穿戴Rift头显就能轻松浏览相关的情况。

          如果系统检测到未穿戴头显,你可以禁用附接至虚拟化身的主camera,并启用更宽视角的第三人称camera。你同时可以录制镜像屏幕的视频。如果你决定要在无人监督的情况下运行自动测试,这可能非常有用。对于《PokerStars VR》,我们设置了一个鸟瞰camera,令其围绕着牌桌转动。

          2. 输入与追踪

          取决于游戏的类型,模拟输入和头部追踪可能极具挑战性。所以,我建议你关注其他可以从自动测试系统中获益更多的组成要素。例如,你可能会发现某些对象在不同关卡之间切换时未能正确实例化或销毁。

          在多人游戏中,新加入游戏的玩家可能无法同步画面,或者当发生host迁移时,你可能会在运行游戏数小时后发现内存泄漏。Oculus SDK提供了一个事件委托(事件代理)。当检测到未穿戴Rift时,系统就会调用这个事件委托。你可以编写一个根据需要禁用输入,追踪及一定虚拟化身组件,并订阅所述事件的函数。

          3. 实现测试

          实现测试系统的时机已经成熟。最有用的测试场景是人类测试员难以完成,并需要定期完成的测试场景。例如,某些bug需要测试人员执行特定操作,但同时要执行另一个函数以引发冲突。 在现实世界中,网络意外断开是常见的事情,并且需要定期测试。确定需要自动化的测试类型。

          在实现时,不要改动核心游戏逻辑,因为这就违背了测试的目的。首先构建类属基础系统,然后编写特定的测试场景。接下来,你可能会发现可以从自动化测试中获益的其他场景,但可能无法同时执行两个不同的测试。例如,你可以进行网络稳定性测试,然后再进行常规的游戏测试。

          4. 日志记录

          对于日志记录的重要性,怎么强调都不为过。利用自动测试系统,记录堆栈踪迹和错误异常可以非常好地相互补充。当你运行自动测试系统时,它会创建大量有用的数据,并帮助分析从录制视频中发现的错误。知晓幕后发生的事情可以帮助定位问题的根源,因此请确保你的日志文件包含错误异常和堆栈踪迹。当出现错误报告但你又不确定原因时,它同样有助于纳入自定义信息。将你认为可疑的信息放入自定义日志,在运行数小时自动化测试后你有可能会想到更好的点子。

          我想分享的另外一点是,纳入可以帮助你从日志文件中定位正确消息的任何帮助。当我第一次收到隔夜自动化测试会话的结果时,我的日志文件长达数十万行。定位相应的日志消息非常具有挑战性。解决问题的一种方法是,组合日志消息和时间戳,这样你就可以立即识别哪条日志消息匹配你在录制视频时发现的bug。设置一个显示错误的开发控制台,这样你就能够在分析录制视频时轻松发现错误。

          5. 《PokerStars VR》的自动Host迁移测试

          在《PokerStars VR》开发的早期阶段,我们在host迁移过程中发现了一系列影响游戏的问题。有时变量未同步,RPC函数未在其他客户端调用,或者对象在插值过程中遭遇冻结。要确定bug的重现步骤非常困难。它们要求host在非常具体的时间点断开连接。有时host迁移必须在不到0.5秒的时间窗口内发生,这是一个非常大的问题,特别是因为它是一款扑克游戏,所以游戏的运行必须稳健。

          我解决这个问题的方法是,自动host迁移测试。首先,我实现了一个host bot和一个client bot。当host bot位于大厅时,它会创建一个多人扑克室。每个client bot定期从服务器获取现有房间列表,并标记为自动测试房间的房间列表。当发现测试房间时,client bot加入房间。在进行一段随机的游戏时间后,host bot离开房间并返回大厅,这时host迁移出现。

          声明:本站部分资源来源于网络,版权归原作者或者来源机构所有,如作者或来源机构不同意本站转载采用,请通知我们,我们将第一时间删除内容。本站刊载文章出于传递更多信息之目的,所刊文章观点仅代表作者本人观点,并不意味着本站赞同作者观点或证实其描述,其原创性及对文章内容的真实性、完整性、及时性本站亦不作任何保证或承诺,请读者仅作参考。
          编辑: