小游戏除了首屏启动优化,我们还需要注意什么?-上虞网络公司为你呈现
做好了小游戏首屏启动优化的你,请务必“细品”这最佳实践呀!从性能、内存优化、调试、Adapter到使用游戏引擎,每一个板块都为你娓娓道来!
1
性能
✔垃圾回收
每个客户端实际纹理储存的回收时机依赖于JavaScript中的Canvas、Image对象回收。通过调用wx.triggerGC()方法可加快触发垃圾回收,释放对应的实际纹理储存。
由于GC具体触发时机还要取决于JavaScriptCore自身机制,并不能保证调用wx.triggerGC()能马上触发回收,建议在每局游戏开始或结束触发一下。
✔混合渲染模式
在一些混合渲染模式的游戏中,游戏场景使用了WebGL的模式渲染,但是一些GUI以及 排行榜 等内容会使用 canvas 2d 的模式渲染。
(温馨提示:该方法仅支持 iOS 6.6.6 以上版本,Android/开发者工具暂不支持。)
2
内存优化
✔管理机制
Android:内存分为系统和V8两块,两者均沿用了系统原有的内存管理机制。
iOS:小游戏在iPhone上是沿用了iOS系统的内存管理机制。
✔分析手段和工具
性能监控面板:在监控不同内存的占用情况,还通过不同内存的变化趋势来判断是否有内存泄漏的情况。为了排除GC延迟的影响,可点击开发调试中的Request Force GC。
Heap Snapshot:根据提示操作在微信开发者工具中的调试器的Memory中,Load拷贝出来的文件便可查看V8的内存快照。
V8-CPU-Profile:根据提示操作可查看 CPU 的使用情况。
(温馨提示:以上功能在微信Android7.0.7版本及以上的小游戏开发版和体验版中均已提供)
3
调试
✔vConsole
如需查看console API输出的日志内容和额外的调试信息,需要在点击屏幕右上角的按钮打开的菜单里选择「打开调试」。此时小程序/小游戏将会退出,重新打开后会右下角会出现一个vConsole按钮。点击按钮即可打开日志面板。
(温馨提示:尽量避免在非调试情景下打印结构过于复杂或内容过长的日志内容(如游戏引擎中的精灵或材质对象等),可能会带来额外耗时。)
✔Source Map
小游戏在打包时,会将所有js代码打包成一个文件,为便于开发者在手机上调试时定位错误位置,小游戏提供了Source Map支持。
(温馨提示:该方法仅支持iOS 6.7.2及以上版本。)
✔真机调试
可实现直接利用开发者工具,通过网络连接,对手机上运行的小程序进行调试,帮助开发者更好的定位和查找在手机上出现的问题。
4
Adapter
基于浏览器环境的游戏引擎在小游戏运行环境下的一层适配层,使游戏引擎在调用DOM API和访问DOM属性时不会产生错误。每位开发者都可以根据自己的项目需要实现相应的Adapter。
5
使用游戏引擎
小游戏是一个不同于浏览器的JavaScript运行环境,没有BOM和DOM API。然而,基本上所有基于HTML5的游戏引擎都是依赖浏览器提供的BOM和DOM API的。所以如果要在小游戏中使用引擎,需要对引擎进行改造。
目前,Cocos、Egret、Laya已经完成了自身引擎及其工具对小游戏的适配和支持。Unity目前还没有对小游戏进行适配。不过小游戏提供了对大部分Canvas 2d和WebGL 1.0特性的支持,有能力的开发者可以尝试自行适配。
除了小游戏平台的游戏引擎,开发者如果想用其他HTML5游戏引擎来开发小游戏也是可以的,但需要对齐进行修改。建议先引入通用的Adapter尝试运行,再把遇到的问题逐个解决。

最后,温馨提示各位小游戏赛道的同学们,小游戏作品提交时间截止为:6月30日晚9:00整!还未提交作品的同学可要抓紧时间哟~
点击阅读原文解锁更多小游戏“最佳实践”!
推荐
-
-
QQ空间
-
新浪微博
-
人人网
-
豆瓣
