解密Egret:为什么我们要做H5游戏引擎?

文/ 守夜的查理 2014-05-21 08:00:01

作为移动游戏引擎的后来者,Egret的出现一开始着实令我们困惑;而当我们得知Egret是一个基于Html5的开发引擎时,更多的问题开始涌现:

● 现在移动游戏领域已经是Unity 3D和Cocos2dx的天下,Egret准备如何杀出一条血路?

● Html5一直被认为性能低下、难堪大任,Egret又为什么选择这个标准作为引擎的核心?

● 作为一个开源的游戏引擎,Egret如何避免其它免费开源引擎的老路,实现真正的商业化?

带着这样的问题,葡萄君来到了Egret公司所在地,和Egret的陈书艺(CEO和联合创始人)以及马鉴(联合创始人)进行了对话,我们尝试从一个新兴HTML5游戏引擎开发商的角度,来看看这个此前已经陷入低谷的开发技术,现在正站在一个什么样的时间节点上。

以下是整理过的对话记录。

Q: 你们的引擎是基于Html5的,但是被寄予厚望的Html5一直没有达到业界期望的规模,你们认为是什么原因呢?

陈: 我们内部认为有几个原因。首先还是环境的原因。一开始,Html5这个概念抛出来的时候大家的预期太高了。尤其是当乔布斯说苹果不再支持Flash,移动的未来是属于Html5的时候,很多人就把HTML5炒得很高。但是当时硬件的能力还不行,11年的手机甚至没有GPU,不支持硬件加速渲染;而苹果也没有提供API给硬件加速。

第二个问题是网络。直到今天,4G才刚开始铺设;当时的3g的覆盖不够到位,不具备能支持Html5的网络环境。

第三个比较重要的问题是没有成体系的引擎和工具,市面上只有JAVASCRIPT框架和很小很轻量级的东西。前辈里比较关注Html5的磊友等厂商都在做内容本身,而不是对引擎和工具进行完善。我的同事马鉴可以补充一下,他之前在Adobe一直站在比较高的高度看问题,看到的东西可能多一点。

马:09年的时候,大家对HTML5抱的希望确实太高了。它一下子被乔布斯推到了web技术的焦点。所有人都去转向HTML5的时候,但大多数人并没有真正理解HTML5能带来什么。但为什么这两年会有一个很大的契机呢?是因为移动互联网变得成熟了。每个人都有一台或者几台智能设备,智能设备上多渠道的内容呈现就是HTML5的核心价值所在。Web的内容是无所不在的,不仅仅出现在原生市场上,还在浏览器上,甚至于广义的嵌入Web View的方式——比如百度轻应用或者微信——其实都可以把很多HTML5的内容放进去。我觉得这个时候才是HTML5技术真正适合被商业化的时候。再者,移动互联网的硬件革命带来了处理速度、存储容量和显示技术的提高,还有可穿戴设备的智能化,使得太多内容需要被呈现。这个时候,移动互联网行业没有Flash Player这样的播放器插件技术、没有这样广泛的标准的问题才凸显出来,这时候HTML5才能为大家所用。

陈:分两个层面再补充一下。技术层面上,以前有很多人去做HTML5游戏,都用JavaScript去写。这样会面对两个问题,首先JavaScript是弱类型的,所以HTML5给人的印象是只能做一些表现力很弱的、很卡的游戏,包括声音也有问题,没有被广泛的支持,只能放背景音乐。对于工程学来说,开发游戏维护起来非常困难,代码越写越乱、越写越多。所以我们通过微软的TypeScript语言来解决这个问题,用TypeScript写然后再编译成JavaScript。TypeScript是一个强类型的语言,而且是JavaScript的超集,也就是说你可以JavaScript和TypeScript混着写。使用TypeScript写,首先语法和AS3很像,其次它是一个强类型的语言,比较容易像C++那样去维护。

商业层面上,可以参考PC时代的步伐:先单机、然后弱联网,然后出现MMO,然后更注重表现力、出现3D。随着端游越来越大、推广成本越来越高;即点即玩的页游的推广成本低,自然而然就火了。手游现在也开始出现这样的趋势,有几千家手游厂商挤在榜里,大家只能去买积分墙或者去做很强的市场推广,而不是很注重游戏的品质或者通过口碑的传播来推广游戏。现在整个平台的格局大体要形成了,比如腾讯、百度、360等大厂商都在对渠道进行整合,推广变得更困难了。现在如果能出现无端或者一两秒就能进入游戏的,一边玩一边加载的产品,这时候渠道会发生一些变化,CP的营销方式也会发生一些变革。所以今年不仅仅是技术上得到了提升,商业角度来看,移动Web领域也对Html5有很强的需求。

Q:现在市面上有很多Html5的引擎和框架,梦工场还做过一百多种框架的对比,你们定位的差异化在什么地方呢?

马:我来说一下Egret的思路。我们首先觉得Html5是一个开源技术,国内外加起来的JavaScript库、框架甚至引擎,都属于片面地解决了游戏驱动的核心问题,但没有做很多配套的东西。在Adobe和微软这样的级别的公司中有一个很重要的词语,叫做“工作流(work Flow)”。换句话说,给开发者一个库或者引擎,他们能做出或大或小的游戏;但是这些库和引擎拿去商业化运作的时候,会发现做不大,核心原因是不能够满足开发者的开发需求,满足不了社区的开发需求。社区的开发需求是什么呢?是需要一个核心的高效的引擎,同时围绕这个引擎建立一套上层的为开发人员或开发团队构建的成熟的工作流。比如说这个引擎要做好,要有GUI,不可能UI都要工程师去手写代码。我们做Egret的时候,同时要推进很多项目,其中一大部分都是工具级别的。这些工具都是为引擎的封装格式所服务的。比如说GUI,UI编辑器,可以给美术、策划来使用;粒子编辑器,让美术人员可以用可视化的工具来调整,通过拖拽或者图形文件的编排,就可以生成一些特效,然后进行文件格式的输出。然后还有场景编辑器,还有各种平台发行商的SDK接入的配置环境。

所以说想要引擎成熟起来,必须以引擎为核心打造一套为游戏的团队中不同的开发角色的完整的工作流。只有把他们串起来,每个人都有工具可以围绕引擎工作的时候,产品的商业化才算上一台阶,否则就永远停留在库或者框架的级别。未来想要实现最后一公里,必须围绕引擎做框架、工具、服务,把整个服务做好。以这种思路做产品,才有可能成功。

陈:另一个我们比较大的优势是,我们这套引擎灵感源于flash。Adobe这么多年的积累,被马鉴移植到这个引擎中,无论是语法、API、工具流,都是围绕着怎么做一个Web应用去展开的。这样的好处是我们可以争取到第一批开发者。他们大都是pc上的页游开发者,不需要转型,语法和API都一样,他们习惯的工具还可以继续用,比如用Flash做动画,用Dragonbones做骨骼。以前他们自己开发的地图编辑器和场景编辑器,稍作改变,只要支持Egret的数据格式就可以继续使用。对于所有的大页游厂商来说,转手游几乎是零成本。比如墨麟,游戏谷都是我们的典型用户,他们花费了仅仅两三个月时间就用Egret开发出游戏。

Q:所以这些页游厂商是在对引擎进行测试?

陈:对。我们准备六月份公开发布,但已经内测了两个多月了。这期间已经有页游厂商开发出很不错的产品了。

Q:你们说对游戏引擎而言生态非常重要。但是我看官方网站上的时间表,开发相关的工具要到今年8月才开始着手做,这意味着在Egret发布的初期,引擎的生态是不完整的,这时候怎么说服开发者不去用Cocos2dx或者Unity3D呢?

陈:我们的办法是让曾经的开发者惯用的工具很简单地就可以支持Egret。很多过去的开发商他们自己做的工具,只要数据格式支持,我们就可以把他们的数据格式直接转换为Egret的格式支持。。我们会推出自己的官方编辑器,虽然这是相对靠后的一个事情,但并不影响他们使用Egret。

Q:会考虑像Unity那样做自己的插件商店吗?

陈:我们会提供。这也是第三季度到第四季度会推出的东西。

Q:之前和几个工程师聊了聊Egret,他们很好奇为什么用TypeScript而不用CoffeeScript

马:TypeScript是微软官方的一种语言,是JavaScript的超集。它遵循的ECMA Script 6.0是下一代的JavaScript。今年年底,微软、谷歌和Mozila三个拥有自主技术的浏览器巨头会宣称在他们的浏览器JIT环节支持JavaScript2.0——其实就是ES6。但是现在浏览器都是JavaScript1.5的版本,是弱类型的语言,还没有面向对象的概念,没有类、没有命名空间等等。所以从微软的角度来说,推出TypeScript是帮助web开发者过渡到未来的web开发技术当中。之所以不用CoffeScript去封装我们的引擎,而选用TYPESCRIPT,是因为TypeScript的语言设计和ActionScript3.0一模一样,可以帮助几十万Flash开发者快速上手Egret。他们一看到我们的语法设计、结构设计就会非常非常熟悉,花很短的时间就能上手。为了知识体系的过渡,我们把flash整个的显示列表技术和API设计技术用原封不动的语法设计从ActionScript3.0挪到了TypeScript上。这就是刚刚陈总说的,很多用ActionScript3.0的页游的开发人员,拿到我们的东西知识不会有任何损失。

陈:这个东西是双向的。对于工程师来说,学习的成本很低。用官方群里的一个开发者的说法来说,“学习Egret甚至不需要看文档。”对于老板来说,愁的是什么?怎么找C++的工程师,找Unity的开发,因为整个行业都在抢。这导致很多AS3的工程师不得不转型。原来我做CP,有几百号工程师,转型的过程中也非常痛苦。如果我们早做这些事儿(Egret),那些人都可以成为新生的生产力,对老板来说成本变低了很多,对工程师来说又可以发挥自己的作用了。

Q:有提到HTML5的音频兼容性不好,比如IE10不支持。

陈:这就是我们的另一个核心价值:不仅是写了很多代码然后做了一个引擎,我们也有使命去帮助Html5在中国进行推进。所以我们和百度腾讯和浏览器公司合作推动他们的浏览器去支持游戏需要的API,其中就包括Web Audio。以前支持的不好,其实是因为没有人去敲这个门,解决这个问题。现在我们做这个引擎,很多人在用了,然后在使用的过程中发现这个问题,再去推动厂商,他们会很愿意解决这个问题。

Q:最后能做到接近原生的程度?

陈:几乎是可以的,如果能完善起来就没问题。

Q:时间上有期望值吗?完善到和原生差不多的程度需要的时间。

马:我觉得未来一年就可以。因为移动互联网只用了两年时间就把端游的生命周期走完了。

陈:其实这个东西就是HTML5标准中的一部分,但因为Html5都是拿来做应用啊,资讯网站啊,用不着这些接口。现在因为Egret出来了,抓住很多开发者做游戏,带来了更多的游戏内容,有内容要分发了,平台才意识到需要提供更好的服务,才把这些本该加上的接口加上。之所以预计需要一年的时间,是因为有很多很多的厂商需要去推动,需要一家家去让他们支持。

Q:有没有对打包好的游戏,有没有方便断点测试的工具?

陈:我们都是live测试。甚至于对Android和iOS的支持都是这样。用其它引擎做游戏,需要打包出来用模拟器或者装到手机里面才能看效果,但我们高效很多。你整个编码过程中都是所见即所得的,在浏览器里只要打开debug工具随时都可以调代码,随时都可以看到效果。最终效果满意了,再去打包,不用打包完了再去调。

Q:这样通过浏览器的应用,在iOS上和苹果会有冲突吗?

陈:这是更高层面的问题了。这个首先看苹果的胸怀了,其次是平台方都会努力去规避这个风险。Html5游戏是蛮大的一个机会,苹果会不会觉得这个绕过他们,这可能不是我们引擎的角色能解决的问题。

Q:你们怎么看磊友呢?他们是Html5领域的先行者,而且一直在坚持。

陈:磊友现在是我们的潜在客户,我们和他们并没有直接的竞争关系。他们的定位是Html5游戏平台和游戏内容开发商,但也遇到了同样的问题:适配,兼容性,性能。

Q:他们做了几年,没有技术的沉淀吗?

陈:这个东西技术门槛很高。马鉴在Adobe十几年,才积累下这么一套web渲染的技术和基于web的优化。多泡他们只做了两三年,想全解决这些是很困难的。与其自己花很大成本去做,不如把这些难点交给Egret来解决,实现他们自己的核心价值,也就是很多好的内容。

马:做引擎和做工具流门槛是很高的。Flash之所以普及这么广,是因为有Flash pro,有Photoshop,有Illustrator,然后有很多成熟的工具围绕着Flash让你做游戏和应用。这些东西需要很长时间的积累。再者,原来我做Flash Player,知道Web游戏最痛的地方是什么。但是以前没接触过Flash Web游戏,而是因为Html5的兴起而来做游戏的人,他们基本上没遇到过这些问题。当他们碰到这些门槛的时候,就很难跨过去。对于磊友来说,他们专注于内容的研发,分发,让他们去做引擎、工具太不划算了,用我们的工具是性价比最高的方案。

Q:很多顶尖的引擎商都有自己的研发团队,你们有计划建立第一方的研发团队吗?

陈:我们自己确实会做一些游戏,但不是通过做游戏来盈利。首先我们觉得一个引擎公司如果不做游戏,很难了解游戏开发者真实的需求。其次开发者的增值服务体系里面,是包括我们帮他们出定制方案,帮他们搭建游戏的框架,甚至帮他们写部分代码,解决性能问题等等。所以我们确实会自己研发一些游戏,但只会维持在比较小的规模。

Q:刚刚说到商业化的问题,我们也很好奇你们作为开源的引擎,有什么商业化的构想?

陈:商业模式还在探索和完善的过程中。但我们的引擎一定会是免费并且开源的。我觉得当下的重点是做好引擎本身,服务好开发者,其他人通过我们来获利。我们的商业模式之一就是和开发者分账。你们用Egret引擎是免费的,想用增值服务,定制工具,定制方案,解决适配问题、开发难点,只要分一个点的流水给我们就可以了。换个说法,你赚钱了,分给我一点。如果只是试水的项目,那也没关系。如果我们的工具足够好用,平台和开发者会希望我们越做越好,也肯定希望我们越来越强大。所以目前我们不是很愁商业模式,更大的压力来自于怎么把Egret做成最好的引擎。

Q:有一个开发者说之前用开源引擎做项目,没想到做到一半的时候开源引擎不维护了,项目受到了很大的影响。这个问题你们是怎么考虑的呢?

陈:我们之前也看到一些同行的做的不错的引擎框架,但他们多数是社区开源,由一些爱好者聚集在一起做的,而不是像我们这样进行商业化的运作。我们这个团队有像马鉴这样来自Adobe的高手,带来了一些以前的同事,包括Starling的参与者,Dragonbones的参与者,还有Flexlite的创始人,在不同的web领域的这些引擎框架的核心作者。我们也在争取另外两个很强的人,近期他们会加入。我们希望把这些最优秀的人聚集在一起,通过我的商业化的运作,投资和战略规划,能活得更长远一些。我们很专注,不会又做游戏又做发行,只会专心把引擎做好。我们就是一个很小的公司,有几十人,有大量的资金支持。未来越多人用我们这个东西,我们就有越多的资金,这个事情可以做的很长久。

Q:Egret编译的速度如何?

马:TypeScript的编译器是微软的,我们和他们有好几轮技术会谈,关于他们的编译器的大规模编译也提了很多建议,这些都是基于我们在Flash AS上的经验。下周还和微软有会议,会推进TypeScript编译器的改进。

Q:Egret当前的目标主要还是2D?

马:对,今年的路线图主要还是2D,明年启动3D相关的开发。

Q:Egret会不会提供一些周边的工具呢?比如说拼图工具或者导出工具?

马:有,比如Flash pro我们就支持,Flash标准的工具流我们已经打通了。Flash动画可以直接导出为我们的格式,骨骼工具Dragonbone也可以直接使用。我们为了降低转移成本做了很多工作,比如我们做了一个AS转TypeScript的工具,转换完成以后只需要稍微调整一下就可以使用了。

陈:我们还提供了一个GUI系统,只需要做好皮肤和流式布局的方案,很容易就能适应不同屏幕的设备。实际上,我们借鉴了很多Flash上比较成熟的东西。

Q:目前都有哪些开发者进行内测呢?

马:大概有两类吧,一类是受邀请的已经开始用Egret做游戏的厂商,另一类是原来用Flash开发的AS3的大牛。我们一共邀请了大概100个左右开发者。他们上手都不用看文档,一看结构设计就可以开始写。

陈:这些人在各大页游CP中可能都是CTO或者游戏主程。他们很自愿地来做小白鼠,来吐槽我们的东西,我们再加以改进。如果这些人都觉得好用了,那其他人就更没有问题了。

Q:通过Egret打包成原生效率如何?

马:接近于原生。我们不用浏览器渲染,我们写了一套驱动层,和JavaScript里面做渲染的,比如说Canvas啊,绘图是一一对应的。

陈:你就这么想,我们直接调用系统底层的触摸、声音等等,效率可能是几倍于web上的。随着web的提升,这差距会渐渐缩小。音效和音轨方面,原生就完全没问题。

Q:六月份的Public Beta会有发布会吗?

陈:如果时机成熟的话,我们可能会在八月的时候为真正的Final版本做发布会。六月份的正式公测所有人都能访问Github。

Alex Matveev
2022-06-06 16:27:13
不合规
审核中
@苏某某: 她在音乐方面的喜好,以及对天文的兴趣,也源于这部动画的影响。一直很喜欢爵士乐的她突然开始想
乐方面的喜好,以及对天文的兴趣,也源于这部动画的影响。一直很喜欢爵士乐的她突然开始想,没有系统了解过此类音乐的她怎么会喜欢上 呢?后来听完《美少女战士》原声带后才发现,“原来我在那么小的时候
评论全部加载完了~