Bsports·体育(综合)官网

关于bsports 案例作品 服务项目 网站建设 移动端/APP 微信/小程序 技术支持 Bsports综合 bsports网站登录





Bsport体育平台登录【技术干货】开发者该如何抓住|造梦西游3贺岁版|微信小游

栏目:案例作品

  从正月初五起至正月初九ღ◈◈ღ,我们每天将推送一个主题的“旧文回顾”ღ◈◈ღ,涉及运营ღ◈◈ღ、策划ღ◈◈ღ、美术ღ◈◈ღ、技术Bsport体育平台登录ღ◈◈ღ、营销等领域ღ◈◈ღ,今天为技术篇ღ◈◈ღ。

  微信小游戏在2017年12月28日正式上线游戏ღ◈◈ღ,小游戏的优势十分明显ღ◈◈ღ,拥有微信庞大的用户量以及更好的兼容性ღ◈◈ღ,在天生适合微信社交生态的同时还不用担心被屏蔽ღ◈◈ღ。无疑ღ◈◈ღ,这或许是一个巨大的风口ღ◈◈ღ。不过在现阶段若想抓住这波红利ღ◈◈ღ,开发者所面临的挑战也是明显的ღ◈◈ღ,产品品质定位该如何定位?H5游戏和小游戏的匹配度究竟是怎样的?开发过程中会开发者可能会遇到哪些坑?这些都是目前急需解决的问题ღ◈◈ღ。

  在1月4日的葡萄学院中ღ◈◈ღ,我们请来了Cocos 引擎创始人王哲和Cocos核心技术凌华彬(Panda)ღ◈◈ღ,针对微信小游戏进行了技术方面的介绍ღ◈◈ღ。此次课程主要介绍了微信小游戏的基本架构ღ◈◈ღ,并对相关开发知识ღ◈◈ღ、开发环境以及资源管理等方面进行了干货分享ღ◈◈ღ。

  今天我们在希望向大家分享一下小游戏的概论ღ◈◈ღ,主要包括一些入门的相关知识ღ◈◈ღ。我们将内容分成了6个部分ღ◈◈ღ,分别是ღ◈◈ღ:

  相信这个群里的所有听众基本上都不会对这几款小游戏感到陌生ღ◈◈ღ。目前整体来看ღ◈◈ღ,第一波上线的小游戏更多以休闲类为主ღ◈◈ღ。例如《跳一跳》ღ◈◈ღ,应该是目前最流行的产品ღ◈◈ღ,虽然它只是一款单机ღ◈◈ღ。

  当然造梦西游3贺岁版ღ◈◈ღ,对于棋牌来说ღ◈◈ღ,小游戏可能也会为其带来一波新浪潮ღ◈◈ღ。近一段时间棋牌类游戏由于房卡棋牌等模式的兴起也非常流行ღ◈◈ღ,小游戏上线后ღ◈◈ღ,大家拉个群ღ◈◈ღ,发一个小游戏的链接ღ◈◈ღ,就可以进行游戏了ღ◈◈ღ。这种便利会给棋牌行业带来很大的增益ღ◈◈ღ。

  1.聊天入口ღ◈◈ღ。用户可以将小游戏分享链接直接推到群聊或与朋友的会话中ღ◈◈ღ,直接将他们拉进小游戏中ღ◈◈ღ。

  2.搜索入口ღ◈◈ღ。玩家可以通过下拉微信聊天记录ღ◈◈ღ,或在专门的小程序页面对特定小游戏进行搜索ღ◈◈ღ。若想利用这个入口ღ◈◈ღ,游戏需要有较好的口碑ღ◈◈ღ,当然如果名字起得太长太难ღ◈◈ღ,可能也会影响这个入口的使用效果Bsport体育平台登录ღ◈◈ღ。

  4.朋友圈ღ◈◈ღ。从我的直觉来看ღ◈◈ღ,这个入口与聊天入口将会是最重要的2个小游戏入口ღ◈◈ღ。但是通过群聊的聊天分享ღ◈◈ღ,我认为是比朋友圈更重要的入口ღ◈◈ღ。也就是小游戏立项的时候务必ღ◈◈ღ、务必要做好通过社交拉新用户进入游戏的设计ღ◈◈ღ。

  在小游戏里ღ◈◈ღ,除了游戏本身的逻辑开发和引擎使用外ღ◈◈ღ,对微信目前开放社交API的使用ღ◈◈ღ,以及怎样去设计社交ღ◈◈ღ,都会对游戏的传播效果造成影响ღ◈◈ღ。分享点的刺激是有讲究的ღ◈◈ღ,在早期游戏里ღ◈◈ღ,游戏更多是以“战力”ღ◈◈ღ、“等级”这些数值向的设计分享点ღ◈◈ღ,而现在ღ◈◈ღ,游戏分享点则更多在于“情感之上”ღ◈◈ღ,这些都是在游戏设计过程中值得思考的内容ღ◈◈ღ。提醒一点ღ◈◈ღ,80后和90后触发分享的情感点是不一样的ღ◈◈ღ,我不能说更多ღ◈◈ღ,但是游戏制作人自己应该加以揣摩ღ◈◈ღ。

  回到小游戏上ღ◈◈ღ,在讲技术之前ღ◈◈ღ,我们要去理解小游戏的趋势架构是如何的ღ◈◈ღ。小游戏不等于原生游戏ღ◈◈ღ,也不等于HTML 5游戏ღ◈◈ღ。现在一些媒体经常会讲ღ◈◈ღ:“小游戏是H5游戏的春天ღ◈◈ღ。”严格来说ღ◈◈ღ,这么讲不是太准确ღ◈◈ღ。

  标准的 HTML 5 游戏是什么呢?标准H5游戏是Facebook Instant Gamesღ◈◈ღ、爱微游ღ◈◈ღ、QQ空间的那些游戏 Bsport体育平台登录ღ◈◈ღ。这些是在浏览器里跑H5的游戏ღ◈◈ღ;但是小游戏本质是Runtime游戏ღ◈◈ღ,它跟小程序类似ღ◈◈ღ,结构是小程序+游戏库APIღ◈◈ღ。

  在这个架构之上ღ◈◈ღ,他会有更多优势ღ◈◈ღ。首先它会比H5游戏更稳定ღ◈◈ღ;其次小游戏跳出重进后ღ◈◈ღ,用户不用像在H5游戏里那样进行重新登录ღ◈◈ღ;另外小游戏可以调用微信的原生用户ღ◈◈ღ,在转发ღ◈◈ღ、支付等方面也固定了接口ღ◈◈ღ,可以说对整个微信生态建设是有很大帮助的ღ◈◈ღ。当然对于我们来说一定要注意的是ღ◈◈ღ,虽然小游戏的调试环境是在浏览器当中ღ◈◈ღ,但这只是其 HTML 5 兼容性的体验ღ◈◈ღ,它真正在微信当中时是用 Runtime的造梦西游3贺岁版ღ◈◈ღ。

  我们自己很清楚H5和小游戏之间在技术结构上的差异ღ◈◈ღ,但现在如果说小游戏不是H5游戏又会被人喷ღ◈◈ღ,于是我们今天发明了一个新名词ღ◈◈ღ:HTML 5 技术栈ღ◈◈ღ。它包含了所有纯H5和类H5的技术解决方案ღ◈◈ღ。

  《拳皇命运KO不服》由国外引擎Createjs制作ღ◈◈ღ;《全民大乐斗》是目前唯一一款带有成长元素的小游戏ღ◈◈ღ,由Laya引擎制作

  这张图我想表达的是ღ◈◈ღ,在原生游戏中ღ◈◈ღ,可能还有一些游戏在用自研引擎来制作ღ◈◈ღ,但在小游戏中ღ◈◈ღ,已经没有自研引擎的身影了ღ◈◈ღ。所以不管是国内的Cocosღ◈◈ღ、Layaღ◈◈ღ、Egret这些H5引擎ღ◈◈ღ,还是用国外的Phaserღ◈◈ღ、Createjsღ◈◈ღ,基本上都是可以直接用的ღ◈◈ღ。

  需要注意ღ◈◈ღ,特别是小公司ღ◈◈ღ,大家最好使用已经被微信适配证明过的引擎ღ◈◈ღ,特别是现在微信小游戏开发文档只有中文版本ღ◈◈ღ,海外的引擎可能并不能帮助你多少ღ◈◈ღ,除非你的研发团队能吃透他们的英文文档而且忍受带时差的论坛技术支持ღ◈◈ღ。而且在这次上线的游戏中ღ◈◈ღ,除了华夏乐游与飞鱼科技外ღ◈◈ღ,其他都是腾讯自研的ღ◈◈ღ,你不知道他们在研发过程中究竟踩了多少坑ღ◈◈ღ,改了多少东西ღ◈◈ღ。

  对于3种游戏的对比ღ◈◈ღ,我来严格列举一下他们之中区别ღ◈◈ღ。首先ღ◈◈ღ,他们的入口都不同ღ◈◈ღ,这也就代表了它们的用户属性是不同的ღ◈◈ღ。比如ღ◈◈ღ,可能很多小游戏用户并不是原生游戏玩家ღ◈◈ღ,作为非玩家它们对于游戏产品的需求也会与玩家不太一样ღ◈◈ღ,对于“VIP1-VIP15”ღ◈◈ღ、“首充大礼包”ღ◈◈ღ、“首充3倍”ღ◈◈ღ,它们或许就不会那么敏感ღ◈◈ღ。当然ღ◈◈ღ,这些都是值得去继续揣摩的事情ღ◈◈ღ。

  在流量成本上ღ◈◈ღ,小游戏和HTML 5的崛起有一定原因源于其低于原生游戏的流量成本ღ◈◈ღ。实际上游戏品类没有什么变化ღ◈◈ღ,变的是流量成本ღ◈◈ღ,当某一模式的流量成本过高了ღ◈◈ღ,行业就会有动力去挖掘一个新平台ღ◈◈ღ,去获取一批新的游戏用户ღ◈◈ღ。PC端游到PC页游ღ◈◈ღ,PC页游到手机原生ღ◈◈ღ、再到手机页游ღ◈◈ღ,表面上看是一件技术驱动市场变化的事情ღ◈◈ღ,但本质上是流量成本驱动技术迭代ღ◈◈ღ、进而驱动市场变化ღ◈◈ღ。这个本质要理解清楚ღ◈◈ღ。

  在开发的时候ღ◈◈ღ,CP也要注意性能的约束ღ◈◈ღ。纯H5游戏在性能和占用内存上都是约束性最高的ღ◈◈ღ,所以如果往往H5游戏做小游戏移植版本ღ◈◈ღ,不论用哪个引擎ღ◈◈ღ,适配工作都会进展得相对顺利ღ◈◈ღ。当然需要注意ღ◈◈ღ,诸如CSSღ◈◈ღ、DOM是不能用于小游戏开发的造梦西游3贺岁版ღ◈◈ღ。但是反过来ღ◈◈ღ,如果你移植一款手机原生游戏到微信小游戏ღ◈◈ღ,就得非常小心内存使用的问题了ღ◈◈ღ。

  其实原生游戏移植到小游戏也有一些案例ღ◈◈ღ,比如《保卫萝卜》ღ◈◈ღ,但一定要注意ღ◈◈ღ,在移植原生游戏过程中一定要注意性能和内存上的问题ღ◈◈ღ,如果控制不好很可能程序就会崩溃ღ◈◈ღ。其实有不少曾经的客户过来问我ღ◈◈ღ,如果原生游戏是用C++这些语言写的ღ◈◈ღ,能不能直接移植到小游戏上ღ◈◈ღ。很遗憾ღ◈◈ღ,不行ღ◈◈ღ,目前必须通过手工去翻译ღ◈◈ღ,因为今天微信提供的标准接口只有JavaScriptღ◈◈ღ。

  我出于个人技术倾向ღ◈◈ღ、项目历史的原因ღ◈◈ღ,非常强烈地不喜欢那些通过编译器去转化不同编程语言的方案ღ◈◈ღ,因为这些方案并不「自然」ღ◈◈ღ,表面上看是省了很多移植开发量ღ◈◈ღ,但在调试和优化阶段会有无数的坑等着你ღ◈◈ღ。所以最优的方案ღ◈◈ღ,我仍然建议大家用 JavaScript 重新移植游戏ღ◈◈ღ,不论你的原生游戏是Cocos C++, Lua还是Unity的ღ◈◈ღ。

  这张图是小游戏目前可以使用的技术栈ღ◈◈ღ。最上层是各家游戏引擎ღ◈◈ღ,经过微信验证后ღ◈◈ღ,都是可以提供给大家尝试的ღ◈◈ღ。中间一层是小游戏的底层ღ◈◈ღ,是小游戏所借助的 HTML 5 的技术栈ღ◈◈ღ。

  为什么说它是 HTML 5 技术栈?因为小游戏并没有完全使用 HTML 5 标准ღ◈◈ღ,它只是模拟这些的接口ღ◈◈ღ,从而更好地完成 HTML 5 向小游戏的移植工作ღ◈◈ღ。最下面这部分是微信自己的APIღ◈◈ღ,之后会对它进行展开讲解ღ◈◈ღ。

  首先是底层的技术ღ◈◈ღ,它包括JavaScript代码和Canvas 2Dღ◈◈ღ、WebGL 1.0的APIღ◈◈ღ。这2个API都是和Web上的API是一致的ღ◈◈ღ,这也是微信想要拉拢H5开发者所作出的努力ღ◈◈ღ。微信同样也很快地与国内的几个主要引擎商进行了合作ღ◈◈ღ,让各家引擎可以第一时间支持微信小游戏的发布ღ◈◈ღ。同时微信小游戏Runtime也开发了一个Adapterღ◈◈ღ,并且移植了一些海外诸如Phaser, Three.JS, CreatreJS等H5引擎到小游戏环境里面ღ◈◈ღ。

  上层我们建议大家通过游戏引擎来开发ღ◈◈ღ,这是出于对成本的考量ღ◈◈ღ,因为游戏引擎可以为大家尽可能缩短研发周期ღ◈◈ღ、降低项目成本和风险ღ◈◈ღ。现在微信所试验过的就是上图所列出的6个引擎ღ◈◈ღ,这些大家都是可以去尝试的ღ◈◈ღ。

  除此之外还有微信小游戏的SDKღ◈◈ღ,这些虽然是是微信所提供最底层的东西ღ◈◈ღ,但实际上是除去引擎外大家需要去关注的部分ღ◈◈ღ。在游戏玩法逻辑研发之外ღ◈◈ღ,这些接口都是要去研究的ღ◈◈ღ,这才能让游戏拥有更好的社交玩法ღ◈◈ღ。具体这些接口的详细功能大家可以参阅微信的文档ღ◈◈ღ。目前可以看到ღ◈◈ღ,仅小游戏所拥有的直接分享功能和即点即玩的特性让它在传播和进入门槛上都拥有极大的潜力ღ◈◈ღ。

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

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

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

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

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

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

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

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

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

  在此基础上ღ◈◈ღ,微信提供了一个完整的Runtimeღ◈◈ღ,接近于浏览器的环境ღ◈◈ღ,但并不等同ღ◈◈ღ。游戏引擎的工作就是进一步抹平浏览器和微信环境的差异ღ◈◈ღ。比如在Cocos引擎中ღ◈◈ღ,你可以直接切换HTML 5版本和小游戏版本ღ◈◈ღ,不需要做任何游戏代码上的修改ღ◈◈ღ。也就是说你用JS写的游戏ღ◈◈ღ,一份代码就可以同时在小游戏平台和原生平台上运行ღ◈◈ღ。

  除了抹除浏览器和小游戏之间的差异外ღ◈◈ღ,游戏引擎还可以带来成本上的巨大降低ღ◈◈ღ。就像上图写的ღ◈◈ღ,成本降低主要来自于3个方面ღ◈◈ღ:

  1.Framework中ღ◈◈ღ,当我们游戏引擎封装了更高层的APIღ◈◈ღ,开发游戏会更加便利ღ◈◈ღ,这就使得人力成本降低

  3.在兼容性层面中ღ◈◈ღ,游戏引擎带来的设备兼容性和稳定运行效率可以降低大家的维护成本ღ◈◈ღ,加上刚才提到的跨平台能力ღ◈◈ღ,可以给大家带来更强大的渠道和流量ღ◈◈ღ。

  所有这些人力成本ღ◈◈ღ、维护成本的降低以及跨平台所带来的丰富流量ღ◈◈ღ,可以让大家的项目以更低的开发成本完成游戏ღ◈◈ღ,继而盈利ღ◈◈ღ。

  当你希望在微信小游戏环境中使用第三方库的时候ღ◈◈ღ,很多第三方库会遇到问题ღ◈◈ღ。比如JQueryღ◈◈ღ,它就使用了DOM的APIღ◈◈ღ,DOM API在微信小游戏中是不存在的ღ◈◈ღ,而且也无法模拟ღ◈◈ღ,因为根本就没有DOM树ღ◈◈ღ。

  纯JS的第三方库是绝对不会有问题的ღ◈◈ღ。当然ღ◈◈ღ,有一些第三方库使用ES6来编写的ღ◈◈ღ,这个时候你要注意去掉“ES6转ES5”的标签ღ◈◈ღ,在微信开发者工具的详情页面中可以找到ღ◈◈ღ。总之ღ◈◈ღ,原则是使用DOM API的第三方库请不要使用造梦西游3贺岁版ღ◈◈ღ,JS的第三方库可以随意使用ღ◈◈ღ。

  依赖于网络的第三方库ღ◈◈ღ,像Protocol Bufferღ◈◈ღ,这些在加载的部分是需要定制的ღ◈◈ღ,需要加载部分API适配到微信小游戏所适配的API上ღ◈◈ღ,比如wx.request.downloadFileღ◈◈ღ。

  首先为大家介绍一下小游戏资源管的分布方式ღ◈◈ღ。大家如果使用过开发者工具的话会注意到ღ◈◈ღ,当你开发一个小游戏的时候ღ◈◈ღ,你如果点预览ღ◈◈ღ,它会有一个上传的过程ღ◈◈ღ,之后扫它提供的二维码就可以测试这个小游戏ღ◈◈ღ。实际上这个上传的过程就是将你的小游戏包上传到CDN内ღ◈◈ღ。在你的用户扫这个二维码时ღ◈◈ღ,实际上是从微信的CDN下载这个小游戏包到他的手机上ღ◈◈ღ,并执行ღ◈◈ღ。

  微信小游戏为了能够提升首包加载速度ღ◈◈ღ,将包体限制在了4Mღ◈◈ღ,这显然对很多HTML 5 游戏来说是不足够的ღ◈◈ღ。所以大家就需要将一些资源文件放到自己的远程服务器中ღ◈◈ღ。也就是这张图所体现的访问关系ღ◈◈ღ:当用户扫你二维码的时候ღ◈◈ღ,会让小游戏包下载到微信ღ◈◈ღ,然后微信内小游戏包代码在执行过程中会请求远程服务器资源ღ◈◈ღ。

  不同用户会将不同的资源下载到他自己的沙河环境当中ღ◈◈ღ,并且不同小游戏之间的资源缓存也是相互分割的ღ◈◈ღ。这样就可以保障不同用户和不同小游戏间的资源不会互相冲突ღ◈◈ღ。

  H5开发者会非常在意首场景的加载体验ღ◈◈ღ,微信小游戏也非常需要注意这一点ღ◈◈ღ。小游戏在下载过程中会将包首先完整下载ღ◈◈ღ,然后才会进行详细的代码完整初始化ღ◈◈ღ。在初始化之后再去加载远程资源ღ◈◈ღ,再去启动场景ღ◈◈ღ。

  这与浏览器有很大的区别ღ◈◈ღ。浏览器永远是按需加载ღ◈◈ღ,当它需要一个资源的时候才会加载一个资源ღ◈◈ღ。所以大家一定要在小游戏当中控制好自己的包体大小ღ◈◈ღ。

  经过一段时间研究并与微信团队进行沟通后ღ◈◈ღ,我们得出了一个目前较好的资源解决方案ღ◈◈ღ。我们会将代码包放在小游戏包内ღ◈◈ღ,所有的资源都放在开发者的Server上ღ◈◈ღ。这样ღ◈◈ღ,当代码请求某个资源时ღ◈◈ღ,就会动态进行动态下载ღ◈◈ღ,这样才能满足按需加载的需求ღ◈◈ღ。

  所以这张图和上面那种图没有太大区别ღ◈◈ღ,唯一需要注意的是ღ◈◈ღ,在微信CDN上储存代码包ღ◈◈ღ,在开发者Server中储存详细的小游戏资源ღ◈◈ღ。值得注意的是ღ◈◈ღ,你的代码是不能够放到自己的Server上的ღ◈◈ღ,微信小游戏禁止在微信CDN以外的域名中加载它的代码ღ◈◈ღ。

  接下来我解释一下Cocos Creator是加载微信小游戏时的资源策略ღ◈◈ღ。首先ღ◈◈ღ,我们同样从微信的CDN当中下载代码包ღ◈◈ღ。下载完成后ღ◈◈ღ,当你的代码需要某些资源时ღ◈◈ღ,我们会先从大包里去查找Bsport体育平台登录ღ◈◈ღ。若内置资源没有ღ◈◈ღ,我们会去查找资源缓存(稍后解释)ღ◈◈ღ。如果资源缓存也没有ღ◈◈ღ,我们会从远程服务器去下载ღ◈◈ღ。数据下载后ღ◈◈ღ,我们会将数据自动缓存到资源环境中ღ◈◈ღ。这样便形成了一个缓存机制ღ◈◈ღ。

  我们这样做的原因是ღ◈◈ღ,小游戏环境是实际上是没有类似浏览器的缓存和资源过期机制的ღ◈◈ღ。 在浏览器中ღ◈◈ღ,当用户请求一个页面时ღ◈◈ღ,第一次请求会下载所有资源ღ◈◈ღ,一段时间后ღ◈◈ღ,第二次请求时它会自动检查所有资源是否过期ღ◈◈ღ,如果没有过期则会从本地缓存空间中下载该资源ღ◈◈ღ,这对于开发者和用户都是透明的ღ◈◈ღ。但小游戏没有这样的机制ღ◈◈ღ,所以当你的信息再去请求资源时ღ◈◈ღ,每次都会重新下载该资源ღ◈◈ღ,不管你这个资源此前下载过多少次ღ◈◈ღ。所产生耗电量和加载时间对于用户来说都是不可接受的ღ◈◈ღ,所以我们在Cocos Creator当中内建了一个更完整的解决方案ღ◈◈ღ。

  如何去处理资源过期的问题呢?如果说资源URL是完全一致的话ღ◈◈ღ,在逻辑当中是不会下载新资源的ღ◈◈ღ,这就会导致Bugღ◈◈ღ。我们所推荐的解决方案是ღ◈◈ღ,在Cocos Creator打包时会有一个“MD5 CASH”选项ღ◈◈ღ,勾选后我们会为所有文件名打上MD5码ღ◈◈ღ。这样当文件更新后ღ◈◈ღ,文件名就会变化ღ◈◈ღ,这就一款为服务端URL会变化ღ◈◈ღ,这时代码包在请求时就会被认定为一个新的资源ღ◈◈ღ,这样就完成了资源缓存和更新机制ღ◈◈ღ。

  同时我们还提供了API让开发者删除资源缓存ღ◈◈ღ,这样在大版本更新时ღ◈◈ღ,如果缓存资源过多ღ◈◈ღ,你就可以先去清除缓存ღ◈◈ღ,然后再去更新所有资源ღ◈◈ღ。

  当然ღ◈◈ღ,用户如果觉得我们的资源管理方案不太适合你ღ◈◈ღ,你也可以去自己设计一个合适自己的资源管理方案ღ◈◈ღ。这些方案所以来的API微信都有提供博体育Bsports官方网站ღ◈◈ღ,ღ◈◈ღ,即微信文件API和微信网络APIღ◈◈ღ。网络API可以让用户将文件下载到缓存空间中ღ◈◈ღ;文件API可以支持文件的重命名ღ◈◈ღ、删除等操作ღ◈◈ღ。

  相信很多朋友关注的是ღ◈◈ღ,如果我已经有H5游戏了ღ◈◈ღ,我怎样把这个H5游戏发布到小游戏当中ღ◈◈ღ。这个其实是微信团队非常关注的事情ღ◈◈ღ,他们希望大家的H5游戏可以去针对微信做了社交玩法后发布到微信小游戏环境当中ღ◈◈ღ。我们继续以Cocos Creator为例来看如何将已有游戏发布到小游戏ღ◈◈ღ。

  1.你可以从你的小程序公众平台上找到App ID并输入ღ◈◈ღ,然后将发布平台修改为WechatGameღ◈◈ღ。

  3.出现该画面就说明在Cocos Creator构建完成后ღ◈◈ღ,就可以直接在微信开发者工具里看到你的项目了ღ◈◈ღ。这个过程不需要用户去修改任何配置文件ღ◈◈ღ。

  首先ღ◈◈ღ,微信提供游戏上的支持ღ◈◈ღ,并且提供了庞大用户基础和用户分享APIღ◈◈ღ,这肯定会催生出完全不同的游戏体验ღ◈◈ღ。我认为社交性玩法在微信上会有更大的发挥空间ღ◈◈ღ,会比以往的社交平台都要大ღ◈◈ღ。

  同时ღ◈◈ღ,小游戏ღ◈◈ღ、手机页游ღ◈◈ღ、PC页游其实都依赖于HTML 5 的技术栈ღ◈◈ღ,包括Cocos Creator原生发布也都依赖于此ღ◈◈ღ。HTML 5 引擎提供了基于HTLM 5技术栈的跨平台发布ღ◈◈ღ,为大家提供了更多选择和可能性ღ◈◈ღ。

  今天我们所说的HTML 5技术栈包括手机页游造梦西游3贺岁版ღ◈◈ღ、手机原生和PC页游ღ◈◈ღ。手机页游包括QQ空间ღ◈◈ღ、微信小游戏ღ◈◈ღ、厘米秀这些Runtime方案ღ◈◈ღ,Facebook Instant Games这种纯H5方案以及爱微游ღ◈◈ღ、疯狂游乐场这些H5渠道等ღ◈◈ღ。手机原生包括各种JSBღ◈◈ღ、Runtime打包游戏Bsport体育平台登录ღ◈◈ღ、微端游戏等ღ◈◈ღ。第三个是PC页游ღ◈◈ღ,因为Flash之前宣布2020年停止更新ღ◈◈ღ,所以很多PC页游上的Flash游戏现在也在转成HTML 5 游戏ღ◈◈ღ。

  简单计算一下ღ◈◈ღ,我用手机原生游戏市场规模除以PC端游规模ღ◈◈ღ,再乘以PC页游规模ღ◈◈ღ,粗略算出手机页游的市场空间可以打到每年280亿人民币ღ◈◈ღ。如果说Bsport体育平台登录ღ◈◈ღ,手机页游和PC页游互为此消彼长的线亿的市场空间ღ◈◈ღ。中国游戏产业规模占全球游戏市场的25%ღ◈◈ღ,当然这个数还在上升ღ◈◈ღ,算上这一方面ღ◈◈ღ,H5技术栈可以支撑全球手机页游 + 部分手机原生 + PC页游市场ღ◈◈ღ,理论市场容量上限可以达到2000亿人民币ღ◈◈ღ。所以说ღ◈◈ღ,现在做这方面的技术储备其实是非常有价值的ღ◈◈ღ。

  1.作为个人开发者ღ◈◈ღ,利用微信的用户和支付功能ღ◈◈ღ,而不是将微信作为一个引流工具ღ◈◈ღ,能否从游戏中获得较好的收益?另外ღ◈◈ღ,Cocos和微信支付对接中是否有坑?

  关于支付ღ◈◈ღ:微信小游戏目前还没有与iOS打通ღ◈◈ღ,具体什么时候打通我也不太清楚ღ◈◈ღ。所以说能否从游戏中获得较好的收益ღ◈◈ღ,这个问题应该由微信来回答ღ◈◈ღ,因为这些数据如今都是保密的ღ◈◈ღ,包括DAUღ◈◈ღ、留存率ღ◈◈ღ、安卓目前的收益率ღ◈◈ღ、用户画像ღ◈◈ღ,像用户画像是需要你们去自己琢磨的ღ◈◈ღ。

  关于Cocos和微信支付对接ღ◈◈ღ:这种支付SDK对接根本就不是我关心的层面ღ◈◈ღ。就Cocos来说ღ◈◈ღ,与微信对接没有什么坑ღ◈◈ღ,只是纯粹的SDK调用ღ◈◈ღ。我相信包括其他引擎也不会有什么坑ღ◈◈ღ,因为实在是太简单了ღ◈◈ღ。

  优势在于其庞大用户基数与其社交性玩法ღ◈◈ღ,流量成本会很低ღ◈◈ღ。目前来看Bsport体育平台登录ღ◈◈ღ,若想造成病毒式的传播ღ◈◈ღ,目前可能也就在Facebookღ◈◈ღ、微信ღ◈◈ღ、QQ这种大的社交平台上可以比较容易地实现ღ◈◈ღ。

  当前劣势可能还是在于对非游玩家特点的理解上ღ◈◈ღ。我认为大部分微信小游戏用户很可能原来并不是传统意义上的游戏玩家ღ◈◈ღ。这些玩家的游戏化需求ღ◈◈ღ、情感ღ◈◈ღ、乐趣ღ◈◈ღ,都和我们以往理解的手游玩家不一样ღ◈◈ღ。当然我认为也不能把这一点完全看成劣势ღ◈◈ღ,因为就算是非游戏玩家也是有游戏化需求的ღ◈◈ღ。问题关键在于怎样正确理解ღ◈◈ღ、切入ღ◈◈ღ、服务这些大量的非游戏用户ღ◈◈ღ。现在小游戏刚刚起步ღ◈◈ღ,所有人都在摸索这件事情ღ◈◈ღ,谁能先利用好这个平台的用户特点ღ◈◈ღ,谁就能成为这个新领域的巨头ღ◈◈ღ。

  3.目前包括已上线的十几款小游戏都是以轻度休闲为主Bsport体育平台登录ღ◈◈ღ,处于试水阶段ღ◈◈ღ,如何看待重度网游在小程序的发展潜力和前景?

  首先ღ◈◈ღ,其实在PC页游发展上也可以看到ღ◈◈ღ,都是从休闲游戏(偷菜抢车位ღ◈◈ღ、抓奴隶)开始的ღ◈◈ღ,再将用户培养到一定程度后才慢慢出现重度页游ღ◈◈ღ。手机页游也是如此ღ◈◈ღ,不要想着第一天就可以直接跳跃到重度游戏ღ◈◈ღ。行业发展规则必然是要先去培养和教育用户ღ◈◈ღ,然后再过渡到做中度造梦西游3贺岁版ღ◈◈ღ、重度游戏ღ◈◈ღ,我认为不会有非常快的跳跃ღ◈◈ღ。

  其次ღ◈◈ღ,微信小游戏很多玩家都是非游戏玩家ღ◈◈ღ,他们目前对于重度游戏可能并不会很感冒ღ◈◈ღ。如果是重度游戏玩家ღ◈◈ღ,他为什么要去玩小游戏?到底小游戏用户里有多少是重度玩家?重度玩家为什么要玩微信小游戏ღ◈◈ღ,而不是已有的《传奇霸业》《奇迹MU觉醒》等重度的微信精品游戏ღ◈◈ღ,理由是什么?这现在都是需要去摸索和探讨的问题ღ◈◈ღ。其实就算是Facebook Instant Games目前也是主要由轻度休闲游戏组成的ღ◈◈ღ。

  其实就现在PC平台来看ღ◈◈ღ,目前很多PC端游的品类也没有完全移到页游上面ღ◈◈ღ,典型如FPSღ◈◈ღ、MOBA游戏ღ◈◈ღ,在PC页游上是看不到的ღ◈◈ღ。平台属性还是天然就决定了的ღ◈◈ღ。端游和PC端游的用户场景是不同的ღ◈◈ღ,像之前很多挂机类页游之所以能崛起ღ◈◈ღ,就是因为在很多场景下用户不具备安装客户端的条件ღ◈◈ღ,同时也无法投入过多精力去进行端游ღ◈◈ღ,比如在办公室中ღ◈◈ღ。目前来看ღ◈◈ღ,手机原声游戏和手机页游的用户场景确实有所重叠ღ◈◈ღ,但这都需要进一步地探讨并优化ღ◈◈ღ。

  初始包大小限制就是4Mღ◈◈ღ。粗不粗糙和初始包大小是没有关系的ღ◈◈ღ,你可以首场景加载4M初始包 + 10M资源ღ◈◈ღ,只不过加载速度会慢而已ღ◈◈ღ,你的代码加载更多也没有问题ღ◈◈ღ。我认为可能《四川麻将》粗糙的原因可能在于开发者更多考虑了用户的等待时间体验ღ◈◈ღ。我们也是建议尽量控制首场景的大小ღ◈◈ღ,在之后的游戏中逐渐加载更多资源ღ◈◈ღ,为用户提供一种渐进加载的游戏体验ღ◈◈ღ。

  热更新在 HTML 5 游戏中是不存在的ღ◈◈ღ,因为是没有本地文件的ღ◈◈ღ,你永远可以更新自己的服务器内容ღ◈◈ღ,让用户得到更新的资源ღ◈◈ღ。对于小游戏来说最关键的是ღ◈◈ღ,你能不能热更新你的代码包ღ◈◈ღ。你的代码包会存储在微信CDN中ღ◈◈ღ,你必须向微信CDN提交更新申请ღ◈◈ღ,至于具体的审核过程ღ◈◈ღ,还需要看后面微信官方所给出的具体方案Bsport体育平台登录ღ◈◈ღ。

  这需要看用户手机的硬件情况ღ◈◈ღ,开发者可以做的就是尽量控制不要让内存占用持续增长ღ◈◈ღ,维持在某一个峰值以下ღ◈◈ღ。我认为控制在100M以下比较安全ღ◈◈ღ。H5游戏一般是控制在150M以内ღ◈◈ღ,200M也是可以跑ღ◈◈ღ,但不安全ღ◈◈ღ。安卓一般内存会比苹果手机要大ღ◈◈ღ,所以在测试的时候优先测试苹果手机ღ◈◈ღ,尤其是 iPhone 6ღ◈◈ღ,如果没有崩溃现象ღ◈◈ღ,基本上就是可以了ღ◈◈ღ。

  叶子猪每日行业播报系叶子猪游戏网出品的资讯栏目ღ◈◈ღ,仅作于汇聚互联网游戏行业的每日资讯ღ◈◈ღ,如需查看文章出处可点击阅读原文ღ◈◈ღ。