场景作为游戏的一个基本构成元素,其功能、效果和性能的重要程度不言而喻。良好的场景表现是游戏留存率的重要因素,因此,QA对场景的测试需要格外注意。

场景的测试一般分为基础功能、效果、性能三方面。基础功能包括场景的路点配置是否正确,网格、高度图配置是否正确,复活点配置是否正确,npc配置是否正确,空气墙配置是否正确等;效果包括烘焙、LOD、天空盒、高中低配、场景特效、树、水、雾、草等显示是否正常;性能包括场景面数、顶点数、Drawcall是否合理。从这些维度我们可以看到,其对QA的专业能力要求很高,需要具备一定的图形渲染知识和美术那样的像素眼,同时游戏中场景的数量也十分巨大,一个mmorpg类型的游戏,其场景数量往往达到上百个。所以一套流程化的场景测试方法和配套的测试工具是十分必要的,不仅能保证测试质量,也能提高测试效率。

笔者所在的游戏是基于Unity开发的,下面我将以某个场景的一个测试报告为模板,

介绍下目前我们组内针对一个在Unity下开发的场景的测试流程和方法。

首先是报告的一个概要信息,其中主观感受可能大家会比较疑惑,为什么会出现在这里。个人觉得不管最后你测试的数据如何,最后玩家不不会关心这些数据的,他们只会关注感受,比如流畅度如何、画质如何、发烫如何等。所以我们要把自己当做玩家一样去实际体验这个场景,得到一个主观感受。如果我们光关注数据的话,有时候甚至会被数据欺骗。同时为了保证全面性,还会邀请场景的负责策划和美术进行一个场景跑图,从不同角度看待场景,并记录下他们的实际感受。

这里主要是通过一个GM命令,记录下在真机上场景跑图过程中的FPS,然后绘制曲线看是否平滑,有无巨大的波动。

Triangles统计:Triangles_Min = 59334.0      Triangles_Max =461620.5      Triangles_Average = 270621.0

同理会画出batch和vertice的图。其中第一张图是数据的一个波浪图、第二个图是2D的图,颜色越深代表数值越大,其中x和y分别对应地图的坐标。第三张图是在Unity编辑器的Scene视图下生成的,能够较为直观的看到地图中各个点的性能指标。在性能测试之前,我们会设定场景各个性能指标的阈值,最后将实际测试的数据和事先约定的阈值对比。这里为什么要选取4个方向呢?因为每个点的性能数据和LOD相关,LOD和镜头的视角有关,所以这里我们简单的选取了4个方向,然后做一个平均值。

这个工具会检查场景中Renderer的分布密度,如果某个区域内密度过大,会输出一个warning,然后交给策划和美术,和他们确认下是否需要调整下场景的布局。

这个工具中我们会对场景的基础配置进行一个自动化检查,比如LOD配置、Animation组件配置等,这些检查结果会输出到一个log文件中,如果有相关的错误,就会开单子给对应的美术或者策划。

这两个工具都可以对场景内的NPC做一个检查。其功能是遍历当前场景内所有的NPC,并传送到其附近,然后人工确认下NPC的基础表现和功能是否正常。

最后,我们还会编写针对场景的一些测试用例,这些测试用例会更偏重各个场景的特殊之处,比如:

那么根据什么原则选取这些景观呢?1是场景的标志性景观,2是在日常的测试中,多次出现过bug的物件。

大家可能还有一个疑问,针对场景的这么一个较为完整的测试,在什么时候开展呢?按照目前我们的经验是,等美术、策划和程序优化过一轮后,或者策划这边反馈说这个场景已经迭代完成了,那么我们就会进行一次完整的测试。过早的介入,会因为问题太多,造成各个职能组压力太大,同时有些因为处于迭代中,会造成不必要的时间成本。过晚的介入,会给修改和优化带来一定的压力,尤其是美术资源这块,千万不要临近版本上线之前进行大规模优化或者迭代。

还有一个场景测试过程中存在的问题是,比如某个广告牌有一个流光的效果,或者树叶不能透光,甚至是某个NPC的衣服样式不正确,这些在QA测试的时候很难发现,或者不被认为是Bug,因为我们不清楚场景设计的原稿是如何的。所以我们目前会定期开展的一个工作是,美术、策划、QA坐在一起,对场景进行一个跑图检查,这样场景原始的设计者、实现者、测试者汇聚一堂,很容易将一些表现效果类的问题发现出来。

以上就是目前我们项目在场景测试这块的一些方法流程和工具。

unity 地图编辑器_基于Unity的场景基础测试相关推荐

  1. Unity关于Oculus Quest2 基于XR Interaction Toolkit 基础开发 002-UI交互

    学习目标: Unity关于Oculus Quest2 基于XR Interaction Toolkit 基础开发 002-UI交互 学习内容: 1.创建XR Origin 2.创建XR UI Canv ...

  2. unity 2017介绍_介绍Unity 2017

    unity 2017介绍 We're excited to announce that Unity 2017.1 has been released and is now available for ...

  3. unity 回合制_用Unity E3 Goodness制成

    unity 回合制 The Electronic Entertainment Expo, more commonly known as E3, has kicked off this week in ...

  4. java web 编辑器_基于Java+web的在线Java编辑器 PDF 下载

    主要内容: 近些年,互联网技术飞速发展,越来 越多的人接触到了编程语言,同时更多的 人愿意去了解学习编程语言,但由于以往 的编程语言编译器安装复杂,且部分还需 要配置环境,所以一些想学习编程语言的 人 ...

  5. 多因子策略_基于成长因子的模型测试

    因子的量化选择 基于IC值 相关系数 计算方法 多因子模型得打分法,指得是选用若干能够对股票未来时间段收益产生预测作用的因子,根据每个因子在对应位置的状况给出股票在该位置上的得分,然后按照一定的权重将 ...

  6. 基于canoe 新建一个lin工程_基于CANoe的高性能网关测试系统的构建

    < 工业控制计算机 > 2010 年第 23 卷第 8 期 进行整车电气系统架构设计时 , 由于动力系统 Powertrain 与车身系统 Comfort 在控制要求上的不同 , 通常将整 ...

  7. python软件开发电子产品测试方向_基于Python语言的自动测试系统通用软件平台实现...

    期 No.5 2019 年 3 月 Mar. 2019 收稿日期: 2018-05-06 稿件编号: 201805027 基金项目: 中国电科第十研究所发展基金 ( SSJ-1784 ) 作者简介: ...

  8. unity vr 交互_基于手动的VR / MR交互,用于删除实体

    unity vr 交互 Deleting an entity or closing an application is one of the most ubiquitous operations pe ...

  9. unity随机方向的代码_基于 Unity 的 Roguelike 随机房间生成的方法

    本文主要是为了实现各种随机大小不一样的方块基础房间,便于 Roguelike 游戏地图使用,希望对各位独立游戏的新手有所帮助,同时也希望各位大牛可以给出宝贵意见. 由于我的思路是地图=基础房间+特殊房 ...

最新文章

  1. 【FPGA】流水线学习笔记
  2. 红帽Redhat6.4 iso下载地址
  3. C# Excel数据有效性
  4. python卸载模块的方法汇总_Python卸载模块的方法汇总
  5. Nginx教程系列四:实现反向代理配置
  6. openpyxl库,1秒合并多张表格并设置图表格式
  7. xcode 4.3 调试的时候显示汇编,怎么办
  8. 检测和语义分割_分割和对象检测-第5部分
  9. CV Papers|计算机视觉论文推荐周报20200504期
  10. Python找出列表的中只出现一次的元素
  11. android自定义TextView字体
  12. c++ time_t和tm
  13. 前阿里GOC负责人葛梅:运维转型运营,IT服务管理体系搭建实践
  14. 射极跟随器实验报告数据处理_射极跟随器实验报告射跟随器实验报告.doc
  15. 《互联网的那些事之时代》第三回:滟滟随波千万里,何处春江无月明
  16. feign接口返回泛型设置属性为null问题
  17. 基于facades数据集的图像成任务,完成各种GAN的对比实验
  18. 2023前端面试题集(持续更新中~),祝大家早日拿到心仪offer
  19. Javase day06_作业
  20. 短信推广的规则,你知道多少?

热门文章

  1. 怎样在word中同时输入上下标
  2. Vue2.0 探索之路——生命周期和钩子函数
  3. 图书馆的uml概念类图怎么画_设计模式:UML?设计原则?
  4. php编写一个投票程序,实例学习PHP之投票程序篇(一)
  5. elastichd的使用教程_ElasticSearch可视化工具ElasticHD安装
  6. 空间计量模型_截面数据空间计量模型空间误差模型及Stata操作和应用
  7. win10 安装Pytorch GPU版+CUDA+cuDNN(篇幅较长保姆教程) (含CUDA11.1与cuDNN8.0.4安装包)
  8. mysql python 中文_python操作mysql中文显示乱码的解决方法
  9. c语言实现图片卷积_卷积神经网络(CNN)Python的底层实现——以LeNet为例
  10. 就地链表反转_链表常见问题总结(一)