专访欧朋首席技术官 罗志宇:全硬件加速的HTML5游戏引擎是这样炼成的

日期: 2013-09-25 来源:TechTarget中国

  由于HTML5具备跨平台、易移植、部署简单、节省成本等优点,所以从2012年甚至更早的时候,HTML5游戏就被炒得火热起来。但事与愿违,这一年多来,由于HTML5的性能瓶颈,导致成功的HTML5游戏少之又少,市场情绪低迷。正是在这样的背景下,2013年2月在西班牙巴塞罗那世界移动通信大会上正式发布的全球首款基于硬件渲染的HTML5游戏处理引擎——Sphinx,于近日开放公测和上线开发者社区,正式吹响了全硬件加速HTML5游戏引擎的进攻号角。

  《程序员》:大家都看到HTML5的好处了,那么在HTML5游戏遇阻之后,大家又是怎样的反应?

  罗志宇:有三种情况。第一种最普遍,就是观望,等待整个产业进步以后,再继续跟进。第二种是基于现状的妥协,比如不做重度网游,只做休闲游戏;不做Android版,只做iOS版。因为从性能上来说,苹果是所有厂商里图形做得最好的,可以反过来抵消一些浏览器游戏展现能力的缺陷。第三种是不妥协,积极寻求可行的解决办法。这种团队认为自己已在HTML5游戏上花费了大量心血,而且也小有成绩,他们不想在用户体验上打折扣,所以就想寻求突破。在这点上,他们与欧朋做Sphinx的初衷非常切合。

  《程序员》:所以想到了要做Sphinx?

  罗志宇:可以这么说。我们当时的出发点非常简单。作为浏览器平台厂商,天生就要做HTML5,而如果游戏厂商想用HTML5,却失望而归的话,平台就很容易衰败。所以我们想解决HTML5游戏存在的问题。

  分析之后,我们发现导致HTML5性能瓶颈的主要原因是在HTML5和底层硬件之间隔了一个浏览器,而浏览器的首要任务是展现网页,而非游戏。

  由于我之前是做渲染技术出身的,所以很了解游戏一般会卡在两个地方:一个是CPU效能,另一个是GPU效能。CPU效能更多的是通过JavaScript发挥出来,而想真正大幅提高游戏性能的话,必须要充分利用GPU效能。

  其实,早在2007年我还在Opera总部时,就对Sphinx引擎相关的渲染技术进行了验证。第一版用在Opera移动浏览器上面,Sphinx是第二版。由于渲染技术对浏览器性能提升明显,所以当时从Opera Mobile 9直接跳过Opera Mobile 10,发布了Opera Mobile 11。同期的浏览器在卷动页面时都会有马赛克一样的方格,然后才慢慢填清晰起来,而使用渲染技术的Opera Mobile 11没有马赛克,这可以说是第一次尝试硬件加速。所以,Sphinx的开发不是一蹴而就的,经历了长期的技术沉淀。

  《程序员》:Sphinx的架构是怎样的?为何称为全硬件加速引擎?

  罗志宇:开始时,我们认为JavaScript引擎会有很多问题,但后来发现似乎并没有那么多,更多的原因在于开发者自己没有做好优化。只要做好优化,帧率完全可以从10帧提升到35帧。但要想从35帧提升到70帧,就要靠提升渲染引擎来实现。

  以前网页渲染引擎是偏文字渲染精确度的,经常会出现网格对齐这类问题。而游戏更多的是追求速度。因此,这两种渲染引擎的架构完全不同。在Sphinx中,整个浏览器分成前端和后端,前端主要执行页面、JavaScript、CSS,后端是正儿八经的图形渲染引擎。所以,Sphinx的结构很简单,就是一个标准的HTML5前端加上一个强大的游戏级别的图形引渲染擎。

  说起来简单,做起来并不那么容易。因为之前的图形引擎并非是为了游戏而设计,而我们要做的Sphinx较之复杂得多,需要非常精确的调整。实际上,硬件加速GPU的演进只和游戏有关系,整个GPU在最开始发明时就是为了游戏,游戏和GPU之间是一种互相促进和演进的过程。所以游戏引擎用GPU用得最狠、最恰当。整个工艺里,游戏引擎和图形引擎是最好的。浏览器很晚才开使用GPU,所以无法做出游戏引擎的效果。我们所做的就是将游戏引擎所有的设计模式和工作方法都拿过来放到浏览器里面,做出真正意义上的全硬件加速游戏引擎Sphinx。

  《程序员》:Sphinx研发团队是怎样组建起来的?

  罗志宇:这个团队规模蛮小,只有9个人,他们之前专门给联发科定制浏览器。因为内核非常复杂,所以人数越多,沟通成本越高,迭代速度就会降低。我们一般会把整个系统框架和原型梳理出来之后,再根据工作量的情况考虑人员调整。如果一开始就黑压压扑上来一片的话,每个人都不清楚自己要做什么,连开会都变得像打酱油一样。

  欧朋的工程师是一个奇怪的群体,我们对他们本身没有什么特殊要求,但都一专多能。我们不会给每个人贴上固定标签,因为一旦贴上就会对他的职业发展或知识发挥有很大限制。在同一客户端里,所有工作都是交织的。

  《程序员》:Sphinx研发过程中遇到了哪些困难?

  罗志宇:研发Sphinx是一项大工程,为了确保每个环节正确性,我们从技术和人员上做了很多。

  在技术层面,为了确定插入游戏渲染引擎中的东西是否破坏了浏览器的整体性能,我们内部做了很多回归测试,整个Opera有14万的测试用例,每一次改动都是全部重跑一遍。

  在人的层面,我们经历的挑战更大。由于是全新的团队,他们对做这样一个高性能的游戏引擎并不自信,但又很容易满足于一点小小的成绩。为了解决这个问题,我会给他们树立一个理性的高目标,然后推动他们去挑战自己。这个过程经历了两个大困难。第一,项目刚开始时,渲染游戏帧数多在10帧以下,当时大家很沮丧,随便挑一个游戏,涨个5~6帧就开心不已。后来我说,不应该去追求这种表面的东西,应该从结构上分析问题到底出在什么地方,保证整个结构在逻辑和数学上是合理的。这个周期让他们把方向摆正,向前走。第二,Sphinx Beta版正式发布,大家松了口气,觉得前途一片光明。然后,2013年4月,《三国时代OL》制作人张哲带着新游戏《不江湖》来了。跑了一下,只有10帧!所有人都郁闷了,一系列问题浮出水面——GC、渲染合并算法都出现了问题。考虑到之前确实短视一点,我告诉他们,这阶段能做什么,而且会很长一段时间都在这种架构里进行探讨,怎么来解决这些问题。经过努力,我们终于将《不江湖》提升到了70帧,即使在普通浏览器上也能达到30帧以上。

  总体来说,研发Sphinx是一个自然而然的过程,因为工程师喜欢这种更先进的东西,喜欢享受成就感。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • 欧朋浏览器8.2让支付一触即达

    Opera欧朋宣布欧朋浏览器8.2正式发布。“支付宝支付”功能在欧朋浏览器8.2中回归,让网购不再有遗憾;随心自定义的亮度调节以及新颖的流量统计方式,带来一切都在你掌控之中的移动浏览体验。

  • 欧朋CEO微博质疑UC市场份额第一

    欧朋CEO宋麟在其微博中对UC成绩进行公开质疑,宋麟认为StatCounter统计数据并不能作为市场份额的有力凭证,并喊话俞永福公开其月度活跃用户数量来证明市场份额。

  • 欧朋宋麟:浏览器是互联网的最佳载体

    2013年中国互联网大会上,欧朋浏览器CEO宋麟在名为“开放的移动互联网”的主题演讲中表示,万维网的本质在于信息自由的发布、使用和分享,而浏览器则是万维网最好的载体之一,它将会是下一个无线互联网Web应用的所在。

  • 七夕约会季牵手获惊喜

    烛光晚餐、看电影、送礼物一定是七夕约会季必备的环节。欧朋将全程陪伴提供你所需要的信息,打造你的专属七夕。