葡萄大讲堂是游戏葡萄的常规闭门线下活动之一,每一期在北京、上海和深圳邀请明星讲师做内容分享,现已举办了十几期。在内容上我们以原有的常规大讲堂为基础,构架出独立的营销大讲堂、运营大讲堂等不同专题,敬请期待未来更多的专题系列。
此次葡萄大讲堂带来“引擎月”特别活动,第一期北京站邀请白鹭时代联合创始人马鉴先生带来《如何打造卓越的HTML5游戏引擎》的主题分享,定位于技术本身,讲述如何打造一款卓越的HTML5游戏引擎,让开发者便捷、高效、安全地开发出HTML5移动游戏。
此次活动由爱贝云计费全程支持。
以下为演讲实录,经游戏葡萄整理发布。
我为什么做白鹭引擎?
白鹭从去年开始做HTML5引擎,当时白鹭团队只有十几个人,很艰苦。在加盟白鹭之前,我在其他地方干了很多年,最早我在Macromedia,那时候一直在做Flash,后来发现Flash越来越不行了,尤其乔布斯在官网上发布了一篇吐槽Flash的文章,表明Flash在手机上的不足:耗电量大、不适合交互等,使得Flash在手机上无法生存下去。
移动游戏与移动App的发展趋势
1.基于开放技术
针对一个开放的技术入手,一个不开放的甚至是封闭的技术会遭遇到和我上一家公司一样的局限。比如Flash就是闭源的,在乔布斯发布文章之后,Adobe在Flash方面做得越来越不好。2008年是Flash最辉煌的时刻,后来Flash无法进入移动设备,所占份额不断收缩。最早Flash的工程团队有几百人,现在已经只剩下十几个人。所以说技术的投入与业界的趋势是密切相关的,不要选走下坡路的技术。
2.多平台多设备(原生+Web)
现在如果只做PC平台上的东西是没有前途的,在我看来必须是多平台多设备,这其中当然也包含了PC。这一年来有很多开发者问我:“你们白鹭做引擎为什么不做PC端的?”其实不是我不想做,是做了也没有任何机会,去年Q4PC的页游市场大概有60亿人民币左右,这算是Flash领域唯一仅存的市场。而且现在页游基本都是大公司在做,他们都有自己的自研团队。现在在PC端用HTML5做游戏虽然可行,但是很多人认为PC端不需要用HTML5做游戏,因为现在有很多其他在PC端的技术的成熟程度远超HTML5。
3.高性能高效率(引擎+工作流)
你做出来的东西必须是有效率的,必须支持大部分用户的手机,呈现出好的效果。HTML5曾经的问题有很多,其实HTML5在2010年就被很多人关注,很多外来开发者说HTML5就是下一代移动平台和PC平台技术的未来,用HTML5就无所不能,用HTML5就会被关注。
HTML5曾经的“问题”
1.太乐观。在2010年时,乔布斯大力捧HTML5,说HTML5将会引领一个新的潮流,但是他并没有说一个期限。2010年的时候,智能手机刚刚兴起,很多人投入到HTML5的技术中,但是当时PC端那些顶级的外国游戏基本都是由Flash制作,所以说如果想取代Flash,必须在技术上超越它。这是在技术领域中非常重要的一点,你永远不要用一项成功去试图打败另一项成功。
2.性能表现不佳。在6年前我还在Adobe的时候发表过一篇博客对比了Flash和HTML5,HTML5刚刚能干的事情Flash在7、8年前就已经可以做了,而且HTML5性能表现的非常不好。
3.“长鞭理论”影响标准落地。HTML5的问题都在这一点被放大(长鞭效应:当你在鞭子这头施加力的时候,对另一边的影响会变得无比的巨大),最典型的就是,HTML5开始的时候没有打好基础,刚开始做的一点小小的修改都会使得未来HTML5出现巨大的波动,这就使得标准落地出现很大困难。
HTML5在移动设备的现状如何?
Flash与HTML5的不同发展历程
Flash一开始只能做矢量图,并且成长经历起伏,四处寻找投资但失败,并被微软拒绝。相比之下HTML5就比较顺风顺水,2006年W3C计划做HTML5,并树立了HTML5标准。2010年苹果声明不支持Flash,2014年7月20号神经猫上线,仅仅3天就得到了将近2亿的点击。
如何制作卓越的H5引擎?
说到卓越,我觉得就是在能用的时候做到易用,在易用的方面做到好用。
简单用例子阐述一下,2009年,Adobe赞助了一家叫做Skinner的公司,并赞助开发了CreateJS的一个游戏引擎,直到现在还有很多开发者在用这个引擎做移动设备的小游戏。我认为这个引擎介于能用和易用之间,因为这个引擎封装了大量的Flash的语言结构,能让从Flash转型到HTML5的开发者很好地使用。但是问题是只有一个人在写这个东西,完全基于个人的兴趣,引擎基本不更新,也不会对任何bug有反馈。
库、框架还是引擎:在做白鹭引擎之前我想过一个问题:我们到底是要做一个怎样的产品?Library的独立性特别强,特别易用,但只能解决某一系列的问题,比如说就解决游戏加载或者素材问题。Framework相对来说扩展性稍微强一些,在应对某类问题时有优势,比如说游戏的场景,一套Framework可以做出无限可能性。Engine其实和Framework的界限非常模糊,但是引擎就是要解决某个行业的问题,虽说可以充分的扩展但是并不能去无限的扩展。
成本:对于我们这种做技术平台或技术工具的公司来说,我们认为做一个引擎的成本要大于做一个基础建构的成本,个人开发者最容易的是做一个库,中小型团队是做一个Framework。但是要做一个引擎,必须要做巨大投入,以及长期的技术研究,人力和时间上的成本都是不同的。
开源还是闭源:我们参考了很多引擎的项目,看了他们引擎的协议然后再考虑是开源还是闭源,最终我们选择了开源。
闭源可以构建门槛,可以打造专利,别人不可能山寨你;但是闭源产品的宣传成本更高,因为你要说服别人去用一个黑箱产品很困难。另外闭源产品很难获取开发者,所以想要占领市场,闭源不是一个好的选择。
开源的优点是一旦放出开源产品,大家都会给产品提建议、反馈bug,另外开源有扩展产品功能,别人可以给你的产品添加原本没有的功能。但是这样也造成了一个问题就是很难申请专利,尤其是在中国。另外开源协议中还有很多陷阱,比如最开放的是MIT和BSD,但是最开放也就表明最难被控制,举个例子就是MIT的协议,随便改随便传播,不能对用户造成任何约束;BSD比MIT稍微严格一点,BSD协议你可以拿去改动,可以拿去做商业产品,但是你必须保存原产品里的版权注释。
白鹭引擎做HTML5引擎的特点
1.移动
我们支持移动设备,但是我们不做任何PC设备上的支持。
2.社交
比如说神经猫虽然是一个单机休闲游戏,但是通过朋友圈的分享,朋友的互相比拼,也达到了朋友互相交流的作用,所以白鹭引擎必须满足外围开发者快速开发social游戏的需求,这是由场景决定的,移动设备上,没有人会拿着手机去玩4个小时。所有HTML5游戏都在微信、新浪微博等超级app里,如果你的游戏所使用的游戏引擎可以快速的启动社交链,意味着你的游戏更可能被快速关注。
3.即点即玩
还有要着重解决适配与即点即玩的问题,要快速加载HTML5对素材的要求非常严格,还要极尽可能的提升渲染性能。所以对于白鹭引擎的开发者的挑战就来了,如何让玩家在30秒内玩你的游戏。
HTML5的进化方向
1.下一代JavaScript:2D的东西对我们来说没有任何难度,但是越往后走研发的成本越高。当所有的外围开发人员都迁移到下一代的H5或是最新的浏览器上,我们就需要为下一代的JavaScript做考虑。这时候我们考虑使用TypeScript做过渡,因为它向下可以编译出这一代的JavaScript标准,向上可以编译出下一代的JavaScript标准。
2.3D:3D技术的研发之路坑很多,做一个3D引擎相比做一套3D工作流容易很多。
3.AR(Augmented Reality增强现实)和VR(Virtual Reality虚拟现实):AR在Flash年代就已经出现,在我看来是特别简单的技术。但是难就难在VR上,现在全球没有一家游戏公司能够做成沉浸式VR,就比如OculusVR的设备硬件成本已经很低,但是软件还是一个坑,不过这是一个方向,我们将来可以沉浸到任何一个环境里去体验,就相当于置身于这空间。现实情况是很多公司都在做VR的软件开发,而且我们也非常关注这一方面,在将来H5也会运用到VR技术。
白鹭引擎的产品思路
1.简单易学:简单不是内核简单,而是使用方法比较简单易懂,对于外围开发者来说,我们尽可能把上层接口向他们暴露出来,而且容易学。
2.扩展:就是通过白鹭引擎可以轻松的连接微信以及一系列其他的平台。
3.调用系统硬件的能力:所有移动设备都有一套系统级的硬件调用能力,需要靠runtime去充分调用这些能力为HTML5服务。
好多人说我们在Adobe之后又做了个和Flash很像的HTML5,其实并不是,作为白鹭技术合伙人,我想说我们和Flash只有一点像:那就是和Flash的语法结构设计方面很像,这就保证了我们有自己的开发者体系。同时,做Flash的人可以很容易过渡,但是他又不用回去依赖Flash。
4.工作流:还有就是工作流,因为我们这几个人都来自Adobe,对于工作流这一方面的了解非常透彻,所以白鹭的工作流在中国是顶尖的。开发者做一个游戏项目具体来说有4个步骤:开发、接入、发布、调试。在开发调试这方面我们做了一套工具来满足这些需求,这也是我们擅长的部分,做到了安全、简洁、高效的一站式开发。如果游戏开发者认为那些超级app所带来的用户量都不能满足他们的要求,我们还提供了一个分支,就是打包,但是这对于即点即玩HTML5游戏不是一个好的选择。
这个市场要想成熟除了引擎工具的发展还需要关注运行,你无法保证你开发的一HTML5游戏跑在中低端手机上也是流畅的。所以我们要做一个软件能让它在任何一个手机上流畅运行,这么一个东西,我做出来只用了一个月时间。但是对于标准JavaScript就不适用,因为HTML5标准API有数万个,而Flash的标准API有2200个左右,有200人的工程团队去完成2200个API的适配工作,所以我们只对使用Egret引擎开发的游戏做加速。当开发者用Egret引擎做H5游戏的时候,我们把Egret Runtime植入到那些大渠道去,彻底解决了移动设备的适配问题。
我们如何开发
很多人问我们团队是怎么去开发东西的,其实就是做,想明白了就做,双周发布一个版本,引擎里面可改的地方很多,所以分为主版本和社区体验版两个版本,当社区体验版一个阶段基本完成、所有功能比较稳定之后,然后再开始做下一个大的功能模块,都基本完成后再合并成一个版本,所有的工程都在两周内完成。另外我们不仅仅使用测试案例,而且我们所有的开发还用具体的游戏进行测试,让工具本身更健壮。
关于爱贝云计费:
爱贝作为移动互联网最大的数字娱乐计费解决方案商,也于今年2月份推出了H5的计费解决方案,从根本上解决了H5用户从登陆到支付成功再到返回游戏的问题。
爱贝H5支付能够做到方便快捷的接入:
(1)收银台无需登陆,方便用户快捷支付;
(2)使用iframe浮动框架打开收银台,用户的游戏或应用进程不会丢失,H5游戏内支付无障碍;支持CP可定制化界面功能。
(3)聚合多个支付通道,支付宝,财付通,银联,微信支付,充值卡,游戏点卡等,提高支付成功率。
(4)拥有深厚的支付技术基础,可快速更新版本新功能。
欢迎各位前来骚扰:
QQ:305980045 / 289797597
微信:hening1989 / naonao77