整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

H5游戏开发:游戏引擎入门推荐

5游戏开发:游戏引擎入门推荐

前言


很多刚刚接触到游戏开发,准备大展拳脚的小鲜肉们,往往在技术选型这第一关就栽了跟头。毕竟网络上的游戏引擎良莠不齐,官网上相关资料也比较少,而选择一个适合的游戏引擎是一个项目最基础,也是很核心的一部分。试想一下,在游戏开发进行到中后期的时候,才发现项目引入的游戏引擎与需求相悖,这时候不管是重新做一些修修补补的工作或者更换游戏引擎,这都是相当耗费人力物力的一件事。为了避免这种情况的出现,在前期选择适合项目需求的游戏引擎显得尤为重要。接下来我们来聊一聊如何去选择适合项目的 JS 游戏引擎。

游戏场景分类

在刚接到游戏需求时,我们可以从以下几个方面进行考量,分析出游戏需求场景所属,从而作为我们选择游戏引擎的依据。

  • 游戏效果呈现方式( 2D ? 3D ? VR ?)
    这与游戏引擎能够支持的渲染方式直接挂钩。现在的 H5 游戏渲染方式一般有 2D 渲染、3D 渲染、VR 渲染三种。
    而 2D 渲染一般也有三种:Dom 渲染、Canvas 渲染、WebGL 渲染。Dom 由于性能原因,一般只适合做一些动画效果较少,交互较少的小游戏,本文主要针对 Canvas 和 WebGL 展开介绍。
    一般来说,对于 2D 小游戏来说,Canvas 渲染已经足够。然而 Canvas 渲染由于底层封装层次多,不足以支撑起大型游戏的性能要求,因此大型游戏最好选择 WebGL 渲染或者浏览器内嵌 Runtime 。
  • 游戏复杂度
    这与游戏引擎能够支持的功能,提供的API,性能等方面关系比较大。

游戏引擎推荐

笔者从业界较流行的一些框架,进行以下几个方面对比,希望能从客观数据上给大家的技术选型带来建议和参考。

  • 引擎支持的渲染方式
  • github上的 star 数
  • 更新时间
  • 文档详细度
  • 周边产品

2D,3D,VR 都支持的游戏引擎



下图是主要支持2D游戏的游戏引擎



Egret

Egret 周边产品

白鹭引擎是企业级游戏引擎,有团队维护。Egret 在工作流的支持上做的是比较好的,从 Wing 的代码编写,到 ResDepot 和 TextureMerger 的资源整合,再到 Inspector 调试,最后到原生打包(支持 APP 打包),游戏开发过程中的每个环节基本都有工具支撑。官网上的示例,教程也是比较多。值得一提的是,今年5月白鹭引擎支持了 WebAssembly ,这对于性能的提升又是一大里程碑。

LayaAir

在渲染模式上,LayaAir 支持 Canvas 和 WebGL 两种方式;在工具流的支持程度上,主要是提供了 LayaAir IDE。LayaAir IDE 包括代码模式与设计模式,支持代码开发与美术设计分离,内置了 SWF 转换、图集打包、JS 压缩与加密、APP 打包、Flash 发布等实用功能。


一般来说,WebGL 的渲染速度都会比 Canvas 快,这是由俩者的绘制路径决定的。Pixi 最大的特点在于,Pixi 具有完整的 WebGL 支持,却并不要求开发者掌握 WebGL 的相关知识,并在需要时无缝地回退到 Canvas 。相较于很多同类产品,它的渲染能力是比较强大的。然而,Pixi 也有不足的地方,Pixi 对于动画的支持是比较缺乏的,在实际开发中,常常需要引进额外的动画库,如 GSAP。

Phaser

Phaser 在渲染方面直接封装了 Pixi;架构方面,Phaser 内嵌了3个物理引擎(Arcade Physics、Ninja、p2.js),提供粒子系统、动画、预下载和设备适配方案;兼容性方面,Phaser 的焦点是放在移动端浏览器上的;API 方面,Phaser 能实现丰富的游戏功能,适合复杂度高的游戏开发。

CreateJS

CreateJs 周边产品

CreateJS 官方提供了 TweenJS 支持动画开发,同时通过 SoundJS 和 PreLoadJS 提供了音频和预下载的支持,对于 H5 游戏基础功能的支持是足够的。在兼容性方面,CreateJS 支持 PC 端和移动端几乎所有的浏览器。此外,CreateJS 还支持用 flash CC 开发导出由 CreateJS 渲染的 H5 游戏。

Hilo

Hilo 是阿里团队推出的一个开源项目,支持模块化开发,同时提供了多种模块范式的包装版本和跨终端解决方案,适合用来开发营销小游戏。其体积也是比较轻量的,只有70kb左右。Hilo 支持 DOM 渲染,Canvas 渲染和 WebGL 渲染,同时集成了 Hilo Audio, Hilo Preload。其后推出的 Hilo 3D 也是其亮点之一。

Cocos2d-x

Cocos2d-x 是业界比较老牌的游戏引擎了,同时支持 C++ ,Lua 和 JavaScript 三种开发语言,官方用例来看更倾向于 C++ 开发,适合做一些中大型游戏开发。Cocos2d-x 提供 Cocos Creator 游戏开发工具,组件化,脚本化,数据驱动,跨平台发布。

lufylegend.js

lufylegend.js 的最新更新是在16年,不过其社区还是十分活跃的,如果遇到什么开发问题,可以很方便地在社区上找到解决的方案。lufylegend.js 可以支持基础的游戏功能,但是其可拓展性不是很强。

主要支持3D游戏的游戏引擎

name2D渲染(Canvas)2D渲染(WebGL)3D渲染(WebGL)VRgithub star 数文档详细程度周边产品备注Three.jsNONOYES(倾向)NO37.6k(最新更新2017.12)▪ 英文文档
▪ 例子充足
▪ 英文社区无默认Ammo.js为默认物理引擎,基于JavaScript语言的3D库,耗性能,加载慢,效果一般PlayCanvasNONOYESYES3k(最新更新2017.12)▪ 英文文档
▪ 例子充足
▪ 英文社区提供了在线编辑器,发布托管等教程较为详细,入门快

Three.js

Three.js 示例案例

相信对于很多有关注 3D 游戏的开发者来说,Three.js 早已经耳熟能详了。实际上,Three.js 官方定位并不是游戏引擎,而是一个 JS 3D 库。Three.js 更倾向于展示型的视觉呈现,比较少直接拿 Three.js 来开发 H5 游戏。渲染环境上,Three.js 支持 WebGL 和 CSS3D 两种渲染模式。

PlayCanvas

从渲染支持程度来看,PlayCanvas 不仅支持 3D WebGL渲染,同时保持到 VR 的支持,拥有比较好的拓展性。在工具流的支持上,提供了在线编辑器和发布托管等服务。从官方教程上看,教程也是比较详细的。

结语

现在市场上的 H5游戏引擎很多,很难去直接定义哪个引擎的好坏,只能说每个引擎都有自己的特性,在某方面跟项目的契合程度比较高,笔者根据现在市场上比较热门的几大引擎做了几点比较,希望能给刚入门的你做技术选型的时候有一点帮助,找到适合项目的引擎,更快、更准、更高效率地完成项目需求。

感谢各位耐心读完,希望能有所收获,有考虑不足的地方欢迎留言指出。

如果对「H5游戏开发」感兴趣,欢迎关注我们的专栏。

参考资料

目前有哪些比较成熟的 HTML5 游戏引擎?

HTML5游戏引擎深度测评

现在 TypeScript 的生态如何?

为移动游戏引擎的后来者,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。

TML5是移动互联网的未来吗?

自2010年乔布斯公开支持并在iOS禁止Flash后,在多数开发者心中,这开始变成一个肯定的答案。

2010年到2011年,HTML5概念被热炒,受到追捧,甚至不少人预言HTML5应用将会替代原生app。但或许是当初被捧得太高,而不论是生态环境还是技术支持都远远算不上成熟,HTML5游戏在短暂热捧之后遭遇诸多问题,随后开始陷入冰谷,当初使用HTML5开发游戏的团队纷纷转型——HTML5或许将是未来,但现在谈论还为时过早。

在被遗忘一段时间之后,现在,一些专注于游戏领域的HTML5引擎服务提供商正在重整旗鼓(详见今日推送的第二篇文章),这让我们不由再次回头审视HTML5游戏走过的整个路程,并开始思考一个问题:在HTML5那条通往“未来”的遥远道路上,它正站在一个什么样的位置上?

■过去


2010年4月,苹果公司宣布禁止FlashPlayer登陆iOS系统,鼓励开发者使用HTML5技术,这一举动引起了轩然大波,乔布斯甚至为此撰写了一篇长文《关于Flash的几点思考》进行回应。当年十月,Zynga收购了HTML5游戏引擎开发商Dextrose,并在随后发布了第一款HTML5游戏《MafiaWarsAtlanticCity》。

从2011年开始,HTML5的概念开始火爆,在这一年,诸多大厂纷纷出击这一领域进行布局,MOTO投资了HTML5游戏公司Moblyng,迪士尼收购了HTML5游戏引擎公司RocketPack。

Facebook社交游戏开发商Wooga也在当年宣布进军HTML5和iOS游戏领域。

在同一年,Unity确认支持HTML5,Facebook收购HTML5技术团队Strobe,将自身在移动端的发力重心放在HTML5上。同年,手游大厂EA、Popcap、Gameloft也相继发布了自己的HTML5游戏。

在2011年底,还有一件重要的事情,Adobe宣布停止在Android系统更新FlashPlayer,并推荐开发者使用HTML5技术开发移动Web应用。

就在看起来形势一片大好HTML5概念火热的时候,哀歌从2012年开始唱响。

在2012年开年之际,此前MOTO投资的HTML5游戏开发商Moblyng倒闭是第一个音符,随后在六月,Wooga宣布停止开发HTML5游戏,他们曾经推出一款HTML5游戏《MagicLand:Island》,但是玩家玩这个游戏的总次数只有130万次,留存率仅5%,相比之下,他们在iOS平台推出的《DiamondDash》则获得了1800万次的下载。

为这支哀歌谱下强音的是Facebook的失败。在2012年9月,扎克伯格在接受采访时表示:“Facebook曾经错误地将赌注押在了HTML5上,这是我们最大的战略错误,致使我们错失了移动市场的发展良机。”

在那之后,曾经被捧上高位打上未来标签的HTML5技术在移动端狠狠摔落,HTML5开始淡出视野。

总结下来,HTML5在移动游戏领域所遭遇的困境,主要是由于四个原因:

1、技术不成熟,开发生态不完整

2、没有合适的载体,浏览器渲染性能低下

3、没有成熟的生态环境(渠道,运营商)

4、受制于网络环境

这些原因最终造成了游戏功能和表现受限,体验大打折扣。

在2013年底,下一代JavaScript标准规范ES6草案锁定并正式发布。

■现在

目前HTML5的框架和库都普遍偏于Web应用的制作,专注于游戏的偏少,比较流行的HTML5框架包括CreateJS,JQuery,AngularJS和Node.js,专注于HTML5游戏的引擎有Impact、Phaser、Pixi、Createjs、EaselJSPhaser、Turbulenz、GameClosure、Coco2d-HTML5和Egret等。

现在主流网站几乎全部支持HTML5标准,几乎所有流行的网站都采用了HTML5技术。但是在移动设备上,还尚未出现非常成熟的HTML5应用或游戏,这一市场还在刚刚起步。游戏方面,此前有一二三国、修仙三国、三国喵喵传等游戏,而目前,墨麟、游戏谷、光年互动等开发商正在开发HTML5游戏。

正在发生的另外一些事情:

1.各浏览器对HTML5标准化的支持正在慢慢趋于一致

2.硬件的变革正在不断推动采用HTML5技术制作的复杂应用和游戏的用户体验的快速提升

3.Web游戏类型在3G/4G网络下的数据发送接收速度正在变得相对高效,但目前国内总体网络质量仍不乐观

4.逐渐涌现出的HTML5游戏引擎和制作工具,开始降低H5游戏制作成本,并提高游戏开发效率

5.混生应用出现,上层使用h5开发,底层使用c++渲染,性能得到很大提升,这种方式是当前阶段的主流

6.一些巨头正在尝试引领这个市场,腾讯的手机QQ空间的安卓版应用,在前段时间将“玩吧”菜单放置在了底部菜单栏的一级入口;在玩吧中,现在已经上线了不少HTML5游戏,不仅有休闲游戏,也有一些卡牌类的中重度游戏,同时在安装QQ空间首次登录时,会自动进入一个名为“让童年飞”的HTML5休闲游戏,腾讯正在尝试引导用户尝试这些HTML5游戏,不过总体来说,内容还处于匮乏阶段,玩吧目前仅提供13款游戏;此外还有百度轻应用等。

看起来一切正在往前有序推进,不过站在游戏开发者角度来说又是什么看法?

在一些开发者看来,HTML5游戏开发快、易调试、跨平台、推广成本更低的特点,或许会是其优势所在,但是问题的核心在于如果不能在游戏体验上给予玩家更多好处,那么就没有太多的理由去看好,基于这点才会有市场,别的都是业内臆想。

而对于游戏玩家来说,内容才是永远的核心。

■未来

HTML5的成熟条件是什么?