专访9秒社区:H5当前不火怎么想都是技术瓶颈的错

编辑:小蜂 发布时间:

HTML5到底是什么,以及这项技术当前到底处于什么样的阶段。

  龙虎豹此前曾经做过关于HTML5的科普文章,但实话实说,此前的文章连我给作者启蒙都不够,心中抱有遗憾的龙虎豹这一次特地为此走访了移动开源技术社区9秒社团,从专业的技术讲师杨胜杰那里弄清楚了HTML5到底是什么,以及这项技术当前到底处于什么样的阶段。

 

HTML5说白了是要极大扩展单一网页的能力范围

  想了解HTML5,要从HTML开始说起,HTML(HyperText Markup Language)意为超文本标记语言,在这一预言中拥有许多标签代码,根据这些标签代码组合块状图形结构,就构成了网站页面。为这些标签服务的又有一些其他的标记和语言,比如CSS和JavaScript。CSS中文名是层叠样式表,主要是用来修饰网页的显示效果,让页面更好看;而JavaScript是原生程度较高的语言,能够通过开发帮网站实现许多额外的功能,由于其较强的性能,人们又把许多常用的JS语句封装成API,方便直接使用。这几项技术和起来,就构成了无需用户添加其他软硬件环境,有一个可执行的计算机浏览器便可访问的基础网页。

  但就算是HTML、CSS、JavaScript合起来,能实现的功能依旧是难以满足所有的网络应用需求,所以用户在上网时不得不经常添加各种功能扩展插件,比如看个视频得装Adobe Flash,访问微软网站要求你装Silverlight,访问苹果网站要求你装Quick Time,玩个复杂点的页游要装Unity Player,例子实在太多,这说明网络应用的功能需求远超过了以往HTML所能提供的范畴。

  而HTML5想要做的,就是解决这些问题,扩展自身所能实现的功能范围,去涵盖现有和未来一段时间内可能的网络应用需求,让用户不再需要自行配置应用环境,就能访问所有的网页。为此HTML5重新升级了HTML规范,让HTML、CSS、JavaScript等用户可以直接访问的网页技术能实现远比现在大得多更大的功能范围。

  杨胜杰以HTML5标准中新增的<canvas>标签举例说明它实现更多的功能。Canvas直译就是画布,有了这个标签,技术人员可以在网页上随意绘画,并且可以分帧循环显示,这样就能实现游戏所需的动画效果。这样重要的新增元素还有<video>、<audio>等许多种,分别用来扩展视频、音频、数据等多方面的能力,它们使得HTML5规范下可实现的功能大幅超越以往。

 

用H5制作的内容拥有病毒级传播能力

  既然HTML5可以像网页那样以无端无插件的形式实现游戏所需的效果,那么用H5制作的游戏其传播能力几乎就跟病毒是同一级别的,因为玩家分享一款游戏时,需要做的只是简单把一个网址发给别人即可。H5游戏没有应用环境的限制,用户拿到链接后点击打开网页就可以玩,没有以往手游那种在分发渠道的商品页面和下载、安装过程中流失用户的过程。据杨胜杰介绍,任何内核技术水平在IE9及其之上的浏览器,都可以支持HTML5,当前世界五大浏览器IE、火狐、Opera、Safari、Chrome,以及傲游等国产浏览器,其实都可以支持HTML5。H5游戏可以在装有这些浏览器的各种系统中畅行无阻,无需安装任何插件。

  杨胜杰在Mac笔记本上演示的H5小游戏,龙虎豹在自己的手机(移动4G)和iPad(现场Wifi)上也很容易就打开,然后立刻进行了尝试,确实分享起来极其容易,即便是手输网址所花的时间都不足与现有手游下载安装的耗时相提并论。在这种传播能力之上, DataEye预测国内H5玩家将在今年内达到1.7亿人,这一市场非常广大,而且在用户端不需要太多的成长时间,不存在像2012年时那样掀起一波智能手机廉价化风潮的必要。

 

HTML5当前不够火爆的现状是受限于技术瓶颈

 

(一)强大功能使开发不得不依赖工具

  因为就是基于HTML、CSS、JavaScript等网页技术,所以H5游戏的开发入门门槛非常低,以往那些会用这些技术做网页的程序员,都可以成为H5游戏开发程序员。但入门容易并不代表开发难度低,H5游戏当前主要以轻松休闲小游戏为主的原因其实恰恰在于开发能力不足之上。H5的到来就像是突然给一群十几个人手刨肩扛种一亩地的原始人们万亩良田,但他们的手里却依旧还是只有石刀和木棒,连牛和犁都没见过。那么纵有良田万亩,能种的也只有那么一亩三分而已。

  举个直观的例子,国外有技术牛人手写代码实现了《Flappy Bird》的H5页游版本,不仅花了很长的时间,而且其代码的复杂度已经达到了没有扎实JavaScript技术功底的人就难以看懂的地步。但他实现了什么样的游戏逻辑呢?不过是一只小鸟上下翻飞而已……相对所花的时间精力,性价比实在过低。

  而解决这一问题的,就是白鹭和Cocos-JS等引擎。像杨胜杰现场为龙虎豹演示的跑酷H5小游戏,使用Cocos-JS引擎制作,逻辑简单,就是在一条线路上下躲避箱子向前跑,开发仅仅花了5个小时,但如果手工写代码,至少需要1周时间。

 

(二)如何实现资源的合理加载来优化流量

  不过引擎要做的并不仅仅是让编程更加容易,还得解决流量问题。杨胜杰现场演示的小游戏未经优化,容量在5M左右,而经过优化的《围住神经猫》不过几百K。看似不大,可一个问题在于,H5游戏与其他网页内容的机制相同,即所有能看到能听到的东西都要先下载到本地缓存,这也是造成当前H5没有大型重度游戏的原因之一,以当前热门的大型手游来说,《梦幻西游》手游版安卓初始包体大小243M、《全民突击》214M、《全民奇迹》242M,连较早的《刀塔传奇》也有213M。200M的游戏包,以龙虎豹所持有的60M光纤下载,理论值只需要半分钟,看似不是很长的理论时间背后,存在三个着极大的问题。首先,数十兆光纤和4G网络并不是每个用户都具备,就算这些有顶级网络的用户,也依旧会难以想象他们能为玩一款游戏在每次开始键都等上几十秒。其次,和手游安装包只需要一次下载安装不同,H5游戏的网页缓存一旦被清空,或者玩家更换自己的游戏设备时,甚至是一时网卡,着急刷新了一下页面,游戏资源就都要重新下载,玩家在整个游戏生命周期中,不知道要下多少个200M,这以当前我国移动互联网的资费水平来看,根本是不现实的事情。这还不是最糟糕的,最糟糕的是这些问题都是浏览器与计算机存储硬件的工作机制问题,HTML5标准自身无法解决。

  H5游戏引擎在这一问题上能帮的忙就是类似以前页游的做法,建立资源包服务器,让玩家开始只下载一小部分,玩得多下得也多,让用户循序渐进的加载。这是H5游戏引擎当前最重大的技术攻关,成功解决后将极大提升其商业价值。

  至于资源下载到本地后面临的黑客修改、外挂、代码和图像资源泄露等问题,以往页游产业在Flash时代就早已有相关加密对策,可以直接沿用,并不会成为H5游戏的新问题。

 

(三)处理能力瓶颈对代码优化提出高要求

  当前硬件与浏览器的能力不足以良好支撑白鹭和Cocos等引擎所生成的初级程序。现有的小游戏还好,重度游戏的H5代码可能会远比现有网页代码复杂得多,现有硬件与浏览器在执行这些高复杂度的代码时,性能会出现下降。

  龙虎豹随便查看了一下某大型电商的首页,代码500多行,160K字节(纯代码文本的量)。这已经是非常复杂、分割非常多、功能非常齐全的页面了,而当前网络浏览器也就是为这种级别的性能而做的。而龙虎豹从某全球知名开发商的CTO处了解到,当前大型3D重度手游,前端程序源代码交给技术水平优秀的开发人员来做,经过优化后也得有十五万行左右,这还是国际级的开发水平,许多国内开发者还做不到这么精简。而且这还只是程序的代码长度,脚本和配置文件都不算,有时候策划做一个道具列表的配置文件都有上万行,这同样也是水平比较高的策划。另一家全球级知名开发商则以自家产品给出了实例,该公司以Unity3D引擎开发的超大型项目,前端程序源代码达到50万行,如果不是用现成引擎完全自行开发的话,代码将达到100万行之巨。以现有的硬件和浏览器执行这个数量级的代码时,很容易想象会出现卡、慢甚至无法执行、崩溃等各种问题。

  这一点上需要开发者与引擎双方共同提高自身的代码优化能力,一味等待硬件和浏览器能力的提升并不是解决之道,这同样给开发者转向H5游戏造成了很大的阻力。

  另外浏览器的兼容性也是一个问题,某款使用MP3音频格式的游戏,在火狐浏览器上可以完美还原音效,但换了其他浏览器就有可能要打折扣甚至无法播放,这些浏览器兼容性的适配问题也是白鹭和Cocos引擎所要面对并解决的问题。不过好在全球加国内,主流浏览器及其核心也就那么几种,现在做iOS和安卓手游时也得因为渠道标准问题来改变文件格式,这对开发者来说并不是多么大的额外工作量,至少绝对要比接200家安卓渠道的SDK轻松太多了。而且一种浏览器只要一次适配成功,此后更新就是在自家服务器后台上做的事情,无需反复适配,版本更新不会再把程序员累个半死。

 

(四)尚未出现统一的分发渠道的结算平台

  当前一些H5已经开始逐渐向更重度更复杂发展,比如杨胜杰拿来举例的《狂挂传奇》,继《愚公移山》之后又一款放置类游戏,iOS、安卓、H5三版总的月流水已经过百万,但这些游戏在在付费上依旧存在痛点:为游戏单做一个资金接口在技术上很容易实现,但却没有一个大的平台去汇总这些接口并进行统一结算。

  这一问题并不在白鹭和Cocos引擎的解决范围之内,之所以没有出现像手游那样的大型分发结算平台,是因为H5游戏在分发过程中,对平台的依赖性很低。像《愚公移山》在推广过程中,主要借助的都是第三方平台如微信朋友圈转发等。前文提到的H5游戏病毒一般的传播能力反而使得在现阶段就为其专门建立分发平台显得有些浪费资源……当某种内容太过容易传播时,再专门为其建立分发平台又有何必要呢?这就是当前还没有人来做这种平台的原因所在。当前H5游戏的开发者基本处于借用谁的平台就与谁合作的状态,比如微信钱包、比如阿里支付宝。而《狂挂传奇》更是简单,自建游戏官网,通过17173的网页广告完成H5版本的推广,微信朋友圈分发,走自己独立的支付流程。

  不过杨胜杰并不认为这种状况会一直持续下去,随着H5游戏复杂化重度化,之后一定会出现这样的集中式平台。具体形式尚不明朗,可能跟手游一样,也可能再有新的模式。不过游戏的重度化和复杂化……这就又回来再次卡到了前文所说的技术瓶颈之上。

 

关于H5当前现状的总结和未来展望

  总结上面的几个痛点,可以发现当前H5游戏尚没有大量开发者进入、产品以小型休闲游戏为主、没人做集中平台等诸多问题其实都源于当前HTML5做大型重度复杂游戏很难这一技术瓶颈之上。对于这一技术攻关需要多久周期,杨胜杰表示尚不好预测,但白鹭和触控都在为此努力,或许年内就能看到一些新的发展。他认为以往页游厂商其实很适合向H5进行转型,可以先期通过小游戏进行技术与实践储备,预先在技术攻关完成前做好准备,然后等待H5爆市条件成熟的时机到来。