【游戏测试】客户端性能 - 寻路采集热点图

2024-03-25 23:08

本文主要是介绍【游戏测试】客户端性能 - 寻路采集热点图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文由资深游戏测试开发工程师 陈子昂,发表于TesterHome社区,点击原文链接可与作者交流。

导读

写这个类型文章的原因是,很多时候会写代码的很多,但是如何少走弯路,做出一些有价值工具产出贡献一点绵薄之力。
在入职第二年也打算大力发展做这块(根据过往积累和经验写下了这个文章),但是后面平台化后,这件事会推研到 2022 年。
过去也是把这个工具开发方式小范围共享过,在对方公司也获得了好评和认可。
导读,可以先读这个drawcall 工具链 ,更有营养。

适合类型

3D 引擎或者 2.5D 引擎,测试时锁视角(确保每次测试的准确性和摄像机白话来说所见即所得)
游戏和个别引擎互联网都适合用。

适合条件阶段

条件 1.和 TA 有一定的共识后才去做,搭配分工明确。
条件 2.有一定建设程度以及稳定性自动化框架,以附件的形式。
条件 3.1 有小地图雷达并且有坐标的游戏,可以点开地图自动寻路的

条件 3.2 有 GM 指令可以输入:move 场景地图 Id 坐标,进行瞬移的。

使用条件引导

只有不满足条件 3.1 和条件 3.2 的,也可以继续看个热闹,满足条件 3.1 或者条件 3.2 就可以进行下去。
去对接 TA 合作的流程,当满足条件 1 之后,增强对条件 2 的建设。

文章核心

1.性能测试为啥要用热点图

热点图提供了一个对整个测试的场景(颜色的深浅来标记性能哪里更严重)。

客户端性能优化是一个比服务器优化更耗时的工作,通过热点图全局的发现场景性能最差的区域。

点的原因精髓在存储什么数据结构好提供后面复现和平台化。

绘制热点图和疑似问题一点是需要绑定 1.UI 自动化,2.引擎内置自动化来做的,前者通用性比后者强,后者 unity 需要 c# 的编程能力,在很多年前的 testerhome 社区 - 游戏测试白皮书上有作者写过 unity 内置自动化。

2.如何确定热点图的准确性

颜色深度的部分周围颜色一般会逐渐变浅(大部分情况),比如这种就是例外,后面就是一面墙,完全隔离了周围场景,游戏也只能从低往上看,啥也看不到。
热点图的存储的属性是正确的。

3.分析结果方式

选择场景内热点图颜色深度的坐标,飞过去看那块区域,然后用官方 profile 去看具体问题,都是和那块区域场景直接挂钩的,比如那边有一个深陷的大峡谷和一个瀑布,瀑布结果是用完全是用粒子效果实现的,大峡谷摄像机景深没有做处理。
可以用空白场景复原性能最差区域,新建一个空白场景,把那个区域的场景素材导入到新场景。
对场景很熟悉的人,可以更快的猜到是哪里问题,来源于经验,有志向的可以学习知识图谱,然后每个游戏一个,把屏幕坐标–>世界坐标存在分 type,性能倾向 (比如一些 npc 激烈战斗的场景,飞过去分析某块资源是正常的) 存储属性图里面,这个都是后话。

UI 自动化的建设

选择用什么框架不重要,但是需要把这部分做成插件,用 pypiserver 搭建私有 pypi,然后改源后就可以使用。

【】里面是插件名称,后面紧跟着是插件使用方,存在–>是指最终目标用户,下面介绍几个常用的,其他按需来。

【untiy 坐标存储插件】 脚本编写者->性能排查使用方:需要包含对于 Unity 引擎 Debug.log(向量) 导出日志,并且没有精度问题,坐标系处理存储到 web tracking。坐标系存储什么或者是否要转换需要和使用方沟通,来解决。

【雷达图数据存储插件】 脚本编写者:UI 自动化框架获取,雷达图和 unity 坐标如果有条件,条件是指游戏有雷达图是都需要的。

【地图坐标换算插件】 脚本编写者,如果满足上面条件 3.2 的,如果是世界坐标的需要换算成当前场景坐标(其实是可以不用 z,因为 3D 场景的地图本身也是个平面),最终会把整个场景要执行的位置以二维数组有序存储下来,在执行寻路时严格按这个来。
里面技巧是第一 UI 自动化本身看不到路点,也和 unity 内置的不一样,坐标和坐标之间的缝隙,拿其他框架拖拽用的 swipe([],[]),二个数组之间有关,如果有程序机器人可以给你录制一个整个场景按序跑的坐标系,自然更好。
每移动一次就采集当前场景的属性 (cpu,fps,内存),因为 UI 自动化外部采集没有办法和 profile 拿到更多信息。
推荐方式:性能差的地方对屏幕进行高精截图,屏幕上开发那边也可以打印更多的信息。

这里和【untiy 坐标存储插件】不冲突,因为看最终目标用户,所以不是一类,强调这个是因为后面文章也是和这个有关。

结尾

晚上有人问我头发还多吗,猫回答:还有 32 位的头发。欢迎有问题在原贴留言,看到就会回复。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
以上是今天的分享,你学废了吗~
想学习更多干货知识和前沿技术?
想结识测试行业大咖和业界精英?
欢迎关注2022 MTSC大会(第十届中国互联网测试开发大会)>>>

这篇关于【游戏测试】客户端性能 - 寻路采集热点图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846546

相关文章

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Java慢查询排查与性能调优完整实战指南

《Java慢查询排查与性能调优完整实战指南》Java调优是一个广泛的话题,它涵盖了代码优化、内存管理、并发处理等多个方面,:本文主要介绍Java慢查询排查与性能调优的相关资料,文中通过代码介绍的非... 目录1. 事故全景:从告警到定位1.1 事故时间线1.2 关键指标异常1.3 排查工具链2. 深度剖析:

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、