QQ玩一玩轻游戏一路走来踩过的坑
微信发布小程序后,继而发布小游戏,各个平台怎么可能眼睁睁看着微信赚钱,他们也相继加入小程序、小游戏的竞争中,都想在各自的社交App或者资讯App里面增加相关的功能来增加用户的留存和停留的时间。但未必每个平台都能够全面和专业做出一个游戏引擎,并且有清晰明了的开发文档,能够快速做出迭代更新来服务开发人员。
在这里我就说说微信的同门兄弟——QQ,从微信小游戏跳坑到QQ玩一玩这个过程中所遇到的坑,让大家能够尽快入手,避免重复进坑。
本人开发环境为mac系统,cocos creator 2.0.5。
1、引擎混乱
打开qqPlayCore.js,可以发现里面的version有时候是纯数字,有时候又是英文加数字,所以要查看引擎的版本新旧情况只能看更新日期来判断。并且在一些新版中可能会引入新的问题,导致游戏不能正常启动,这时候需要在cocos creator构建的时候不要更新到最新版,然后在网上找到没有问题js文件或者别人分享的放到build-templates文件夹俩面,这样打包的时候就会用build-templates里面的qqPlayCore.js来替换。
2、调试与部署的问题
因为现在引擎只支持Android系统的QQ,所以只能使用Android机来调试,这对于一些个人开发者只有一台iPhone十分不友好,虽说现在一台Android机比较便宜,但也是一部分支出。而在调试过程中如果按照官方的引导来操作可能会有一点阻碍,但这里不详细叙述,如有问题可以在下方留言。
因为调试是在手机上安装一个新的App,所以可能会导致一些需要QQ号授权登录的功能无法走通,这时候只能构建后上传版本到QQ后台来调试。并且现在QQ还没有像微信的开发者工具,所以这样操作比较耗时和蛋疼。顾现在我都是先在微信上跑通后再去调QQ的。
构建完成后,如果游戏资源文件比较大,也是可以像微信那样放到远程服务器上进行资源加载。然后把build里面qqplay的文件压缩成一个压缩包就可以了。
3、错误定位麻烦
调试时错误的定位还算比较方便简单,但如果打包后在真机上打开游戏的话就比较难定位问题。虽然会告诉你错误的行数和列数,但因为是把所有js文件打包到同一个文件所以不知道到底是哪里出错。而这时候可以打开手机里的文件管理,找到 tencent/mobileqq/.apollo/game/游戏ID 中到 js 文件,对 line xxx column xxx 的代码位置进行查看。因为.apollo是隐藏文件,所以在查看的时候要注意显示隐藏文件。
4、es6的使用
因为QQ玩一玩不支持es6的语法,所以当之前使用了es6的语法都会报错。我的游戏就是因为使用了promise的函数而导致整个游戏无法运行,为了减少改动和能够再次使用promise的相关方法,故我们可以采取第三方的js文件来实现。
这里推荐一个正在用的:es6-promise,只要引用之后就可以方便使用,不需要改动已有的代码。
5、不能使用自动图集
为了优化小游戏图片素材的加载,我们可以在cocos creator里面很方便的为在同一个文件件里面的图片自动归集压缩成一张大图,这样在下载的时候就能够比较快,不用单张图片这样下载。但在QQ玩一玩的平台上居然会导致图片加载出错错乱的情况,所以只能果断放弃图片图集。
6、偶尔出现黑屏
有些跳出游戏或者把游戏切换到后台或锁屏重新打开后,游戏会有一段时间黑屏的情况,这估计也是引擎处理的问题。特别是分享后回到游戏比较容易出现,这要等引擎修复优化才行。
7、组件显示问题
在调试模式下所有label和richtext的显示都是黑色,而打包后在QQ里面跑是没有问题的,但也会出现显示有一点点不完整的情况,这个应该是creator构建后的兼容问题。
8、提审发布流程较慢
提审需要写一份自测报告,其实和微信小游戏一样,但内容会多一点,并且审核的时间比微信要慢很多,现在大概要3天工作日,估计是QQ的人手不足。并且他们比较注重的是游戏的性能,但这个比较蛋疼,因为引擎本来做的不是很好,性能优化比较差,并且在Android机上运行,更多的用户是中低端的机器。所以QQ在这里设定了比较高的门槛,来提高用户体验,但这毕竟对开发者不是很友好,更好的处理方式应该尽快优化引擎。
以上就是我在QQ玩一玩开发过程中所踩过的一些坑,欢迎大家来分享补充。
发个小广告,大家用微信上体验一下,毕竟微信的小游戏引擎还是做得比较好。
点点大明星还有另外一个app哦!