CocoaChina线下沙龙上海站:Cocos2d-js作者林顺演讲全回顾
Posted Cocoa开发者社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CocoaChina线下沙龙上海站:Cocos2d-js作者林顺演讲全回顾相关的知识,希望对你有一定的参考价值。
点击上面蓝色字可免费订阅!
【主持人】:欢迎大家来到我们2014 CocoaChina线下沙龙上海站,今天会有很多精彩的演讲,马上请出我们第一位重量级的讲师林顺为大家带来精彩的演讲。
嘉宾简介:
林顺(触控科技高级技术总监,CocoaChina用户名:linshun)
演讲主题:Cocos2d-x工具链整合和工作流介绍
个人简介:林顺,Cocos2d-js引擎作者、Cocos2d-x引擎的联合创始人和开发者、触控高级技术总监, 致力于提升Cocos2d-x跨浏览器和跨多平台的支持能力,提供更加易用、高效的开发模式,相同游戏代码可跨平台部署在网页和原生应用平台上。
【林顺】:今天是七夕,大家一大群技术宅男没去CJ看大白腿妹子,却在这里听我废话,这才是对技术的真爱,非常感谢大家来参加技术沙龙。今天我在这里和大家分享一下过去一段时间里Cocos2d-x社区做的一些东西,可能有些大家马上用的到,有些不能马上用到,但大家可以知道有这样的好东西存在。
按照惯例,我们在技术分享之前先来聊一聊社区的发展情况,也会分享一些热点事件。
3年多前最早在我们刚开始做引擎的时候,那会用户和我们说游戏下载量超过百万,我们会觉得太开心了。接下来开始报游戏下载超过一千万了,那个时候也是超级开心,后面就就飚下载量超过1个亿,再后来,不飚下载量,没感觉了,开始飚收入,游戏从过百万流水开始,到2012年底是过千万的游戏,今天大家看到已经升级到10亿流水俱乐部了。
PPT上的这么多土豪游戏,都是用Cocos2d引擎做的,它们的共同特点是收入都超过10亿。
在这些游戏里面,有一个当前很火的游戏,《刀塔传奇》,公司就在上海这边,王哲昨天在CJ分享数据的时候说,他们的团队现在也才20个人,一个月流水有2个多亿,利润5千多万一个月。他们老板肯定很苦恼,这么多钱,该怎么分。大家也能在图上看到其他很熟悉的游戏,很幸运,当前最赚钱的这些游戏都是用Cocos2d-x引擎开发的。
前面那页是土豪级别的,现在我们来看一下市场平均占有率,从ppt中能看到各种数据,首先是微信游戏,微信游戏最近又多了一个是《天天富翁》,刚上线的,也是基于Cocos2d-x的,所以现在25个游戏里面,有14个游戏是基于Cocos2d-x的,比例是56%,超过一半多。日本区的40%,韩国区别的60%,中国区70%。所以当前主流的2D游戏开发基本都是基于Cocos2d-x。
教育合作方面,目前Cocos2d-x已经进入了北大、浙大,华南理工等大学,图上这些大学可都是我上学那会梦寐以求想考进去的大学,我们从来没有想过有一天我们自己写的这个引擎框架、工具能进入这么优秀的大学作为课程。
今天大家也收到了一个单子,上面有一个讲师招募,如果台下的哪个游戏公司有兴趣,可以和我们联系,一方面你们可以招收新鲜血液补充力量,另一方面把你们企业的品牌做到高校里面去,有兴趣的朋友可以跟我们联系。
我们基本上每次出来都会遇到很多朋友和游戏公司跟提需求:我们实在需要主程级别的人才,我们需要各种级别的Cocos2d-x的人才。但每次我只能告诉他们,我们自己招收做引擎的工程师都很难。
在上海,北京,土豪游戏公司开的价格比我们的价格更高,于是我们更难招收到合适的人选。现在Cocos2d-x课程进入到各高校去,相信未来可以一定程度解决人才不足的问题,缓解解决大家后续发展的问题。
下面我们来聊一聊当前比较热的话题是微信html5游戏,最近有不少的休闲游戏在微信上面传播,最典型的《围住神经猫》这个游戏。PPT里大家看到的这两个游戏《你是我的小羊驼》和《来自喵星的你》,是基于Cocos2d-js开发的小游戏,目前教程和源码都已经分享在CocoaChina论坛上。
这两个小游戏的开发,就一个程序员,一个美术,美术时间很短,因为画面并不复杂,整个游戏的开发时间,不到10个小时。得益于Cocos2d-js的模块定制功能,完成的游戏javascript文件大小只有251K,非常小,加载非常快。
这段期间,这类微信小游戏非常多,但是其商业化仍然有问题,游戏的PV虽然很高,但是能很好的把流量转化价值出来吗?能把这些用户转化成有效用户吗?
目前看到的结果,价值方面转化率还是比较低,比较好的仍然是广告方面带来的收入。其次,病毒性社交传播方式,其可复制概率是不高的。但是透过这次的热点事件,大家可以看到HTML5游戏的点击即玩的模式爆发出来的潜力是巨大的,HTML5拥有非常高的用户转化率。
如果商业化的手段也能跟上的话,理论上通过广告买量也可低成本地快速导入用户,那么这种模式可复制性就会很强,带来的可能就是移动游戏的渠道变革。
Cocos2d-js可以快速的做出各种微信游戏,它也同样适合做原生的游戏。
PPT上显示的是基于Cocos2d-js的一些比较优秀的游戏,第一个EA出品的《2014 FIFA巴西世界杯》,在世界杯期间上线的,技术宅有很多都是球迷,相信大家前段时间都看世界杯,相信也会喜爱这个游戏。这个游戏目前是足球类排名最高的游戏。
第二个游戏是Big Fish Games的《Big Fish Casino》,在美国区一直妥妥的排在前10。
其他还有很多大家很熟悉的游戏,第三个是昆仑游戏和Line一起推出的重度卡牌游戏《Line悟空》,触控的《进击的小怪物》,4399的《谁的乱世》,完美的《东邪西毒》,上面的图标大家也可以看到有不少的教育类的应用也是基于Cocos2d-js开发。
后面的这个《龙之空》,出品人就比较牛逼了,没看错,是Square Enix,相信大家都不会陌生,是经典游戏《最终幻想》和《勇者斗恶龙》的出品游戏公司。这么多的游戏公司采用Cocos2d-js的作品,主要是因为Cocos2d-js在native上有很好的性能表现,默认支持资源和脚本热更新,开发环境可以在浏览器上进行,开发和特别高效,是跨浏览器和native的优秀解决方案。
以上是产品方面的内容,接下来我们看一下技术的部分。
这段话我们对Cocos2d的一个愿景,可能大家已经比较熟悉了,这段话的几个关键点是:完整的工具链,跨平台游戏开发,快速原型构建,高性能。
最早Cocos2d只是我们写的一个开发框架,使用难度并不低。曾经社区里有用户在Q群里吐槽说,他学习了两周的Cocos2d-x引擎,结果连Hello World也跑不起来。虽然这种情况极为不常见,绝大多数的开发者都没有这样的困扰,但是确实也提醒了我们,需要完善我们的工具链,降低引擎的使用难度,提供更完善的文档。
此外,各个游戏公司也帮助我们收集了游戏开发中工具方面的需求,完整的工具链是游戏开发不可或缺的。所以,我们调整自己的定位,投入更多的精力在构建和完善一个完整的工具链,让Cocos2d能覆盖游戏项目创建、原型构建和快速验证、真机调试、测试、游戏打包直至最后商业化支持的全过程,旨在帮助你能快速地把创意变成一个真正的游戏。
简单来讲Cocos2d的工具链包括几个部分,第一个部分是我们一直以来做的比较好的开发框架部分,是引擎的基础。第二个部分,包含了Cocos Studio的几个编辑器,也包括了Cocos Code IDE,以及一些社区优秀的第三方工具,最后,是Tools部分,包含Installer,资源转换器,AnySDK等工具。
Cocos Engine会将这些部分整合在一起,现在集成工作还在进行中,在9月23日CocoaChina开发者大会,相信大家就能拿到。CocoaChina 2014秋季大会会选在上海召开,之前基本都是在北京国家会议中心,这是第一次来到北京之外的城市举办。
这个图就是我们定义的Cocos Engine工作流,从下载安装,游戏创建,采用编辑器制作游戏场景,快速的进行原型验证,采用Cocos Code IDE进行编码和游戏集成。
Cocos Code IDE支持JavaScript和Lua,代码提示。由于是脚本,不需要编译,开发特别高效,目前支持Live Coding,修改的代码可以在画面上直接生效,不需要重新启动app,这样可以更加高效的验证你的idea,更快的进行原型验证。
Code IDE在debug方面的体验也做的很好,支持一键模拟器调试,真机调试,还支持一键打包出apk或者ipa游戏包。现在Code IDE已经可以支持不打开xcode就能编译出ipa发布到苹果的AppStore。目前Code IDE和AnySDK的工具已经打通了,通过Code IDE可以直接调用AnySDK,一次编译100多个游戏包发布到100多个android渠道,后面会给大家演示。
【视频播放】
这个视频是我在自己电脑上的工具链的使用演示,首先是启动Cocos Code IDE创建一个JS游戏,取名FishingJoy,我们每次都拿捕鱼达人作为例子。采用Code IDE创建出游戏项目,运行在安卓的模拟器上面,它也支持真机调试。
运行APK,看到的是一个空的游戏项目,这个时候,我们加入商业化的SDK部分,加一个广告进去。大家看一下代码文件,代码里面加载了Plugin并初始化它,然后创建了两个菜单按钮,Show Ads和Hide Ads,重新打包安装运行起来的APP上面已经带有两个菜单。点击Show Ads,可看到广告部分显示出来了,但是它现在显示出来的还是一个空的图片,因为我们目前添加的还是一个Plugin SDK而不是真正的商业化SDK。
通过Code IDE可直接启动AnySDK工具,工具会自动按照配置好的参数进行打包,得到加工过的apk,运行起来,ok,此时点击广告,AdMob的广告就显示出来了。
打开AnySDK的配置菜单,我们可以看到渠道配置表,你要选哪些渠道,打个勾就好了,下一页是所有的SDK的一个配置表,有用户、支付、广告、统计,Share和Push等等,最后一页是参数配置页,大家可看到配置好的谷歌AdMob广告 Unit ID,打包的时候,AnySDK会将所有已经写进去的参数配置到apk中,一次性产生出100多个apk给100多个渠道。
为什么会想到做AnySDK的工具,之前很多厂家都跟抱怨,做一个游戏至少要3个月以上的时间,好不容易完成了,结果还要接这个SDK接那个SDK,最后发现主要的渠道SDK接完至少要一个月以上,每次版本更新,最短的周期也要一个月以上,伤不起。游戏的上线时间本来就卡的非常紧的,而且一个游戏团队的人不是很多,还要浪费大量的精力在这个环节,特别不值得。
采用AnySDK,只需要集成一次SDK,工具就可以根据配置自动产生出100多个APK,一个打包也就是几分钟的事情,所以快速的话,基本上两三天就可以搞定100多个渠道。
各位如果后面有游戏要上线接渠道的话,记得和老板说要用AnySDK,我们这个工具蛮不错的,可以快速搞定,你不会被进度压的死死的,天天加班没时间去泡妞。但是要是你老板说,接渠道事情现在这么短的时间就能干完了,这些任务都归你了,你还是没有时间去泡妞,不好意思,这可不能怪我。
现在AnySDK已经支持了60个SDK,用户接入的有20个,支付的有20个,广告有2个,share有10个,统计的有6个,push有2个,SDK的数量还会继续增加,最快是8个SDK每周。
这页PPT的字太小了,大家肯定看不清楚,不过没关系,我只想告诉你,现在AnySDK支持的渠道数已经有103个。一次打包,就可以发103个渠道。
其实我自己都很诧异,因为以前我不是做游戏开发,从来不知道有这么多渠道。真实的数据是中国有300个左右的渠道,渠道有独立的用户和支付SDK的有50多个,其他的渠道是没有的SDK的。
记得当年,我们做《捕鱼达人》,做到最后捕鱼达人的渠道覆盖度在当时已经最广的时候,差不多是150多个渠道。我们当时用脚本的方式,批量生成渠道包。现在用这个工具,可以一次性参考100多个渠道,可能大渠道竞争比较激烈,大家的游戏可以一次性也覆盖小渠道还是有更多的机会。
触控代理的游戏,我们自己也面临这个接无数渠道的问题,触控的游戏已经是在用AnySDK工具做渠道的打包上线,这些东西是我们自己要用的。所以可以放心的使用,这里面如果有什么坑,第一个遇到坑的就是触控自己。
再给大家介绍下Cocos2d-x社区里面的新工具。
第一个是GAF Media给Cocos2d社区做的一个工具,可以将Flash的动画通过converter转为GAF的文件格式和图片素材,通过reader解析运行在Cocos2d-x游戏里。
第二个是Video Sprite,是日本开发者做的,可以将视频作为纹理贴到Sprite上面。第三个是谷歌做的一个流体引擎,LiquidFun,最后一个是还是日本作者做的,通过增加mesh的顶点,让2D的画面可以有3D的效果。
我们今天会介绍一下Flash的工具,可快速集成到Cocos2d中,大家可以看一下。这个是用Flash做的一个动画,在浏览器的网页里可以看到它跑起来是什么样的效果。
通过他们的一个转化工具,最后转出来是一个数据和素材,然后把这些东西加到Cocos2d的工程里面跑起来,这是看到在Cocos引擎的游戏里面跑起来的样子,这个是所有设备上面一个测试的情况,运行非常正常。所以大家可以通过这个技术,使用Flash来设计动画。
现在社区有各种各样的工具,我们自己也在不断挖掘社区好的资源,如果有哪个厂家有比较不错的工具想和其他开发者分享的话,可以联系我们。我们这边有一个Hub频道,专门用来收集这些比较有帮助、有意义的工具。如果大家缺什么内容,你也可以到上面去找是不是有适合用的。
这个是我们做的一个CCConsole,可以通过一个手机模拟手柄去控制另外一个游戏。在发布Cocos2d-x v3.2版本的时候,我们已经支持大屏游戏上面所要用到的功能,比如游戏手柄的支持,支持市面上主流的手柄,不管是标准或者是非标准,基本上可支持市面上90%以上的手柄。此外还支持焦点功能,支持视频播放组建功能,这些都是为机顶盒设备服务的功能。
这是Mac版本的Cocos Studio,现场有多少朋友的游戏是用Cocos Studio做的?麻烦举个手,还不少。Mac版本以前是打算基于QT来做的,后来发现QT的坑也很深。现在大家看到的是C#版本,基于Mono实现的跨平台。可能今天状态不是很好,但是我们还会持续的改进这个工具。
关于Cocos2d的3D部分,之前其实我们自己也讨论过是做一个Cocos2d带3D功能,还是直接是独立的Cocos3d。后面我们决定做成同一个引擎,把3d的模块加到2d里面去。这样做的好处是,可以延续之前的开发习惯,引擎的使用方式是延续的。比如说,我做一个卡牌游戏,可以很迅速的把人物变成3D的模型,变为一款2.5D的游戏。当前我们已经添加了3D的Sprite和animation,后面会逐个将3D的功能加进去,比如光照,阴影,3D粒子效果。
我们的《捕鱼达人3》已经上线了,在座的各位已经下载玩过《捕鱼达人3》的可以举下手?这么少,说明广告打的还不够多。捕鱼达人3是基于Cocos2d-x v3.0和3D部分作出的游戏,代码在github/chukong账号下。当时为了快速出游戏,代码没有整理的非常干净,我们正将各个功能逐渐添加到Cocos2d-x仓库中。
最后,介绍下我们昨天刚刚发布的Cocos Play点击即玩的技术。传统的应用推广,广告展示100次,点击的个数只有2个,这是统计出来的数据。从点击到下载完成安装,确定再打开,这个概率也只有2%左右。但是不是2%+2%,而是2%×2%,是万分之四,所以这个转化率是非常低的。Cocos Play的技术就是为了解决转化率低的问题。
通过CocosPlay可在3G网络下,点击20秒到40秒左右就能打开一个新游戏,因为他是用一个APK加载另外一个APK的技术,没有安装的过程,通过分场景加载技术,点开即玩。
以《秦时明月》为例,第一个是通过正常安装的方式,第二个是通过CocosPlay的方式。两台同样的手机,第一个手机还没有安装完成,第二个已经进去打了两场战斗,退出来再进去玩第二次了。此外,完整版的游戏还会在桌面上创建图标,方便二次访问,和正常的原生游戏没区别,只是它的游戏缓存文件是寄生在宿主APP上面,如果宿主的APP删除之后,那么这个游戏是会被清空的。
Cocos2d的游戏可以通过改造达到点开即玩的效果,通过我们提供的转换工具,《秦时明月》改造完了以后只有5点多兆。
大家可以比较一下,正常情况下,一个比较大的游戏基本上都有70、80兆甚至100兆左右,但是对于一个玩家来说,如果说一个游戏下载下来开始玩,我连10关都没打过去,100关之后的内容跟我没太大关系,也很可能搞不好,第10关玩完以后玩家可能就再也不会玩。不同的包大小对应下载成功概率是不一样的,50兆的话转化率是多少, 20兆的时候是多少,10兆是多少,业界是有统计数据的。
通过Cocos Play技术,只下载前面游戏3分钟的内容,或者前面几个关卡的内容,游戏就可以正常开始完,再动态加载剩余的内容,这个是一个非常非常棒的方式,可以大大的提高移动互联的流量转换率。
最后,9月23日,上海我们有秋季的CocoaChina的大会,到时候欢迎大家。这个是我们的一些联系方式,今天的分享到此结束,谢谢大家。
【提问】:我问您一个问题,刚才讲到AnySDK工具可以各个SDK打包进去,可以集成很多种支付方式,这个工具现在是已经完成了,什么时候发布?能不能单独使用?我不用引擎的,我只是用自己写的一些APK,用这个打包集成可不可以?
【林顺】:可以,AnySDK是一个可独立运行的工具,也可以支持你自己写的游戏,因为它提供一个plugin SDK包,你集成它,AnySDK工具最后会通过替换的方式把原来调用我们提供的SDK的API替换成真正的SDK功能调用,变成真正的SDK操作。
【提问】:现在这个工具已经发布了?
【林顺】:已经发布了。你可以看到已经有很多第三方厂家的游戏已经用这个工具打包上线发布了,已经可用,可访问anysdk.com获得。触控的游戏,现在也都用这个工具接渠道SDK上线。
【提问】:还有一个保密性的方面的因为,我们一些独立的厂家使用你的SDK,我怎么保证没有获取消费者的信息呢?
【林顺】:首先我们提供的是本地打包的工具,其次我们会保证你的信息不会商用,会签一个协议,因为协议重点保证了两项事情,第一个是服务器,你们也很担心服务器挂掉是吧,所以我们会提升我们的服务器的稳定性。第二个就是所有的数据会保密,不会做任何的商业行为,或者是公开。
【提问】:您好,我记得上次在开发者大会上Justin提到的Cocos Studio 2.0现在进展如何?
【林顺】:Justin负责的是Cocos Studio 2.0,也就是QT的那个版本,我刚才在介绍的时候,有介绍之前那个版本已经弃掉了,QT的坑太深了。现在的Mac版本是基于C#和Mono的。现在Windows版本功能会多一点,Mac版本功能少一点,正在做功能的统一。QT的路线已经停止了。
【提问】:刚才看到网上的视频可以用一个虚拟的手柄来运行,现在有开发第三方手柄。有没有可能自己做一个第三方手柄来模拟现在这个手柄的接口?
【林顺】:你虚拟手柄指的是用手机的方式来模拟出操作的界面,是这个意思吗?
【提问】:对。
【林顺】:那么可以用我刚才讲的方式,虚拟按键的事件对应转换为标准的按键事件,让游戏接收。可以满足这个需求。
【提问】:我的虚拟手柄有什么通信的接口?
【林顺】:他支持Wifi,支持USB线,你可以研究一下。
【提问】:问题其实很简单, 3D已经有其他的引擎,我想您评价一下加了3D的Cocos2d和其他的引擎的优劣,就是比较一下?
【林顺】:只能说我们在3D这边算是一个新的加入者,但是3D部分我们会持续投入的,工具链是我们短版,也会持续的投入。大家也都这样说,3D工具是很重要的,我们也不可能一天之内做出很好的工具支持出来,这是不太现实的。
但是我们目前的是让开发者做2.5D、3D游戏,我们的捕鱼达人本来第一个版本鱼是在平面上游,跑3D的模型。但是策划最后改着改着游动是z轴方向了,整个游戏像从侧面上看到的鱼缸,我们目前可以支持到这种程度。但是距离做全3D的游戏,可能还是需要有一个很强大的工具支持。
相比而言,我们的优势是,所有的代码开源可控,后续的调优成本小,打包出来的文件体积小,性能高;还有一个优点,使用上是Cocos2d的延续,学习成本小。
以上是关于CocoaChina线下沙龙上海站:Cocos2d-js作者林顺演讲全回顾的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins 上海线下沙龙:Jenkins China Meetup
CODING DevOps 线下沙龙回顾一:DevOps 代码质量实战