在2021年微信公开课-分论坛小游戏专场上微信公开课讲师 lucia介绍了小游戏在过去的一年里做了哪些能力升级,比如资源容量扩容、提供多人联机服务,云测试服务升级等等。以下是其分享实录:
大家好,我是微信公开课讲师lucia。接下来我将分享关于调优游戏体验方面的内容,帮助大家进一步提升游戏品质。小游戏的品质在整个研发周期都至关重要,在研发的每个阶段,开发者的关注点也有所不同。比如在开发阶段,大家往往会关注平台所提供的基础能力;在测试和调优阶段,大家会关注是否有一些简单易用的调优工具;小游戏上线之后,大家又需要对各种留存、新进数据进行分析,优化游戏体验。因此为了帮助大家进一步调优游戏品质,我们在基础能力、调优工具和线上分析这些内容上,进行了多方位的升级。
首先是对基础能力的两个升级。一个是资源容量扩容,另一个是提供了多人联机的匹配服务,我们详细来看一下。我们先来看容量扩容方面的调整。随着越来越多的重度小游戏加入微信平台,为了更好的为大家提供支持,我们将代码包总包大小从16兆提升到了20兆。为了保证小游戏的启动性能,依旧能够维持在一个高水平,首包大小依旧限制在4兆以内。但是在分包加载上就不再做任何限制,也为开发者提供更加丰富的操作空间。当然这里我们依旧建议首包尽量小一点,最好能够在两兆左右。开发者可以使用动图等无感知的二次加载策略,来优化下载过程。
另外在文件缓存上,本地用户文件和本地缓存文件的存储大小,也提升到了200兆。支持开发者做更大体量的游戏,本地也能保存更多的内容。文件缓存容量的提升。首先从开发者角度看,研发上可以做到无感知接入,并且更大的缓存空间也意味着缓存的命中率变高,可以提升流量的复用性。
其次从内容角度上,游戏设计师可以为玩家提供丰富的游戏内勤。以重度游戏中的MMORPG游戏为例,不仅可以添加更多玩法内容,也可以提升游戏世界的探索空间。最后从用户体验角度上,玩家减少了加载的频次,保证了整个体验的连贯性,也提升了沉浸感。最后拿新轩辕传奇这个具体的小游戏来说,代码包和文件缓存的提升,让这款几乎不可能实现的小游戏最终成功上线。
下面我们再来看新加入的多人联机匹配服务。之前我们的玩家已经可以邀请自己的好友对战,平台也具有对局房间和帧同步的能力。现在我们为了满足多人联机的需求,在平台侧加入了通用的游戏匹配服务,开发者不需要自己再去写一个匹配服务,就可以很方便的实现游戏匹配的功能。
另一方面,玩家也可以和好友之外的世界玩家来进行互动。当然,这个游戏匹配服务的接入方式也很简单。首先开发者可以自定义匹配的规则,比如依靠某些数据定好每一局游戏的人数和队伍数量,然后使用几个简单的微信API就实现了游戏的自动匹配能力。这里也有一个简单的例子可以看一下,这个就是匹配服务的简单演示过程。大家可以感受到有了匹配服务,整个游戏的可玩性也变得更高了。接入匹配服务的更加详细的介绍,都在我们的微信小游戏文档中,各位开发者可以之后查阅详细的了解一下这方面的内容。相信这个能力的加入也会给玩家带来比较好的游戏体验。
第二部分是工具上的升级,这部分主要是针对云测试服务。云测试服务6月份全量开放以来,已经有2600多款小游戏参与使用,也帮助了1200多个开发者发现了潜在的性能问题。
右图这个折线图是一个典型的例子,是使用云测试来提升小游戏的启动性能的。我们可以清晰的看到他们使用云测试协助优化之后,数据方面提升了很多,最重要的是相比以往我们使用现网数据来进行优化,使用云测试优化整个周期是大大缩短了的。因为现网数据的延迟性可能优化一次需要一周的时间,现在使用云测试只需要1到2天,而且可以马上知道优化效果。
不仅如此,因为云测试的设备机型很多。对于一些没有足够设备的开发者来说,使用云测试可以解决很多的问题。而且一次测试可以得到几十台设备的性能数据,优化的效率当然也就非常高了。但是在上线这段时间我们也发现了一些问题,比如测试排队的问题,很多开发者想要测试很小的问题,需要排队很久。针对这个问题,我们在硬件层面上将设备集群数量翻了一倍,设备数量也达到了200多台,极大的缩短了排队的时间。当然除了排队时间,覆盖到的设备的型号也有了一倍的提升。针对排队问题,我们也建议开发者在周一或者周二,或者是上午的时间提交测试。因为往往在周中或者下午的时间,排队测试的小游戏会比较多,所以排队的时间相对来说也会比较久。
另一个问题是测试场景覆盖率还不够高的问题。针对这个问题,我们一方面对测试所用到的智能探索算法,进行了全面的升级,覆盖率也提升了30%。另一方面在测试框架上也支持测试用例集,使得自定义测试脚本的编写变得更加简单和规范。另外,还有报告内容解读困难的问题。因为一下子从几十台设备中快速定位到潜在的性能问题,确实存在难。因此我们也上线了测试评分的功能,给大家提供了一个定量的指标,也就可以很快的发现问题。
此外我们也上线了历史报告对比的功能,方便大家查看每次优化之后的关键指标的差异。另外,我们也推出了指定设备调度这一个全新的测试模式。和之前的模式相比,在这个模式下开发者不需要排队,所以如果开发者觉得原来的模式排队时间比较长,也可以使用这个模式先测试一次。这两种模式是可以同时测试的,测试的次数上也不会有影响。另外在这个模式下,开发者可以选择自己想要测试的设备机型。而且提供了两种测试时长供大家选择。但是为了避免设备抢占过度的问题,我们也限制了一次测试的机型不超过三台,我们比较建议当开发者有想要验证测试脚本,或者是想要验证特定机型下性能问题的时候来使用这个模式。
另外这个模式还有一个新的特性,就是它支持iOS CPU Profile的能力,我们来看一下这个能力,在前期因为缺少iOS CPU Profile的能力,很多开发者在面临iOS性能瓶颈时无所适从。这个时候有些开发者可能会通过打点统计的方式来计算热点函数,但是显然这个方式代价很大,统计的力度比较粗,效果也就不够理想。现在我们所提供的iOS CPU Profile的能力,是从JS引擎层面获得性能数据。首先它的粒度很细,其次无论是从准确性、效率还是易用性方面都做到了极致。开发者只需要在代码中加入两行代码就能得到性能数据,此外,我们也进一步消除了iOS和安卓的profile协议的差异,可以做到在云测试中下载下来的profile文件,无论是安卓还是iOS系统的,都可以直接加载到微信开发者工具中来查看。
第三部分主要是针对大家对线上场景的分析的需求,我们主要推出了自定义场景分析、实时日志和数据开放三个能力。首先是自定义场景分析。相信有很多开发者很好奇,自己投放的广告的效果怎么样?用户在小游戏的哪个页面流失比较多?这些疑问都可以通过自定义场景分析来得到解答。它提供了在游戏中埋点上报的功能,开发者可以在后台检测到所上报的数据,针对各个场景中用户行为进行个性化的统计和分析,来帮助游戏调优。举个例子:某款小游戏想要了解在复活界面来看,分享的成功率和广告的观看率是怎么样的以便后续制定更好的策略。他们使用自定义场景分析,只需要在代码里面加入几行埋点代码,就可以得到线上的对应数据,也就能更清晰和带有数据支持的来调优自己的小游戏。
其次是实时日志方面。实时日志是开发者用来排查小游戏线上错误的一种有效手段,在之前当小游戏遇到线上错误时,开发者往往只能通过logmanager让玩家主动反馈,自己是无法及时捕捉到错误。现在我们提供了实时日志的功能,开发者就可以在代码的关键节点埋点,自动的上报日志,接着就可以在后台管理端进行查询,来及时的发现游戏的异常表现。
同样我们也来举一个例子。比如某款小游戏在线上一直遇到白屏问题。但是这个问题比较难以复现,所以一直没有办法得到解决。这个过程中用户流失很多,但是在接入实时日志之后,白屏问题触发的整个过程都可以在后台清晰的看到,那也就很快的能够定位到具体的问题得到解决,最后用户流失率极大的降低了。
最后是数据开放。之前我们在微信小游戏数据助手和小游戏后台,提供了丰富的小戏数据分析图表,也深受开发者的好评。但是一些开发者主体下可能存在多个小游戏,他们也就希望将这多个小游戏的数据结合起来,综合分析做到更深层次和定制化的效果。所以现在我们把图表中的这些原始数据开放给大家,并集中在图中所示的数据接口中。开发者可以通过接口来获取数据、自行分析。现在从接口中获取到的小游戏的活跃数,现在已经可以从这个接口中获取小游戏的活跃数据、注册数据、付费数据和分享数据这四种类型的数据。
就像大家从图中看到的这样,在每个类别下也有着更加细致的数据属性,大家可以查看文档来详细的了解和使用。另外,还有更多的数据我们正在逐步的开放。
最后做一个总结,我们在整个研发周期中对大家所关注的基础能力、调优工具和线上分析能力做了升级。在基础能力上对资源容量进行了扩容,并提供了多人联机的匹配服务,支持大家做出内容更加丰富的小游戏;在调优工具上,我们针对云测试服务进行了全面的升级,并支持了iOS CPU Profile的能力,助力大家快速定位性能瓶颈,提升调优效率;最后我们还提供了自定义场景分析和实时日志的能力,并开放了一些数据助手和后台管理端的数据,大家可以针对线上游戏的表现进行分析和调优。
我的分享就到这里,谢谢大家!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.