开发者该如何抓住微信小游戏的风口?听Cocos创始(4)

   人气:    发布时间:2018-01-30 15:38


这是《跳一跳》和《星途Go》好友排行榜的例子,包括游戏里的排行榜和每个关卡的排行榜。



这个例子是《坦克大战》中的邀请对战,当你把邀请发到群里后,进入的玩家可以选择阵营,形成3对3模式。




直接接受邀请是微信所做的最大创新。在原生游戏中,玩家点击邀请链接后首先要下载安装,之后还要互加好友,随后才可以进行匹配,整体流程路径很长,流量转化成本也很高。然而在小游戏场景下,当你的好友点开你的分享链接后,可以直接进入游戏,这是一个突破,大家需要在这方面考虑更多。


我刚刚仔细检查了一下微信小游戏的API,有转发邀请,但是并没有获取其他微信好友昵称、备注名、分数的排行榜API。大家可以再检查确认一下,如果的确是在今天没有这个公开的API,那么游戏设计为好友排行榜竞争的玩法时候则需要注意一下。不过目前在腾讯游戏中都可以使用,未来这个API也有可能会出现。


三.小游戏开发环境



接下来我会进入更加技术的一个环节,让大家更了解如何去适应小游戏的开发环境。



这张图是小游戏的运行框架,它不是微信官方给出的,是我们自己分析得出的。首先,最底层是iOS安卓的硬件、系统等内容,这些提供了系统层级别接口。微信在这基础上开发了微信安卓版和iOS版,其中包含了包括用户、支付、文件、多媒体等各种模块。


然而在在这样一个原生应用中,没有浏览器的加持H5程序又怎样运行JavaScript代码呢?这是通过JS VM在安卓上集成V8引擎,在iOS上集成JavaScript Core引擎去执行JS代码的。


微信仅仅执行JS代码还不足以让开发者的小程序运行起来,因为开发者所调用的用户转发文件系统这些接口都是不存在于JS VM中的。实际上,它是通过绑定的接口来讲微信原生接口桥接到JS接口上的。当你调用这些JS接口时,实际上就是在调用原生接口来达成功能。如果大家对绑定技术感兴趣,可以去关注我们开源的JSB技术,这也是目前游戏引擎当中唯一开源的实现技术。


这里我们就不深入细讲了,继续讨论微信小游戏是怎样提供接近于浏览器环境以及怎样跟游戏引擎相结合。



这张图比上一张多了一个Adapter,我将小游戏总结为2部分:图形渲染API以及微信API。右边的Adapter是微信官方提供的适配脚本,它提供了右边2个API不存在的一些浏览器API,这些往往是大家开发游戏所依赖的API。比如,创建Image,这样才可以使用贴图;Audio是播放功能;LocalStorage是存储;使用WebSocket来做网络调用等。


在小游戏原始环境的图形渲染API和微信API的基础上,加上Adapter之后,就跟浏览器的环境非常接近了。