订阅移动开发RSS CSDN首页> 移动开发

[对话CTO]欧朋 CTO 罗志宇:谈Sphinx游戏引擎的前世今生

发表于2013-08-20 17:05| 次阅读| 来源CSDN| 0 条评论| 作者张宁

摘要:欧朋CTO罗志宇,在接受我们的采访时讲到:技术方面,如何让H5的体验最好,就是Sphinx游戏引擎负责的事儿。渠道方面,去年年底,欧朋累计有1亿用户,今年预计达到2.5亿。我们可以构建完整的HTML5产业生态。

2013年2月份Sphinx游戏引擎在西班牙巴塞罗那世界移动通信大会上首次亮相,今年7月份该款游戏引擎开发者社区上线。最近,Sphinx游戏引擎已经开放公测。我们可以看到,从今年2月份到现在,在Opera的大力推动之下,Sphinx的发展速度很快,进展很大。现在,合作游戏也已经面市了。

CSDN:Sphinx——“狮身人面像”,它的寓意是什么?

罗志宇:因为在Opera里面,每一个项目程序员都自己取一个项目代号。Sphinx是个项目代号,当时没有更合适的东西了,就拿出来了。当时为什么取Sphinx呢?因为它是狮身人面像,看起来是个人,其实是个狮子,因为你没发现它看起来是个游戏引擎,其实它本质上是个浏览器,它是承载一个HTML5游戏的快速浏览器而已,所以取这个名字。


图:欧朋 CTO 罗志宇

CSDN:它是在哪个层面上的技术呢?浏览器是排版引擎和渲染引擎的结合体。Sphinx算是一个排版引擎?还是一个渲染引擎?

罗志宇:渲染引擎。这个游戏引擎可以打开百度、Google、新浪都可以打开。

CSDN:对于各种手机芯片,比如像Qualcomm、MTK没有经过优化?

罗志宇:我们其实没有对哪一家的厂商进行优化,我们还在和他们谈。因为整个东西很奇怪的,行业里的竞争蛮激烈的,今天根高通讲,你要是比MTK快的话,就跟你合作?明天跟MTK讲你要是比高通快,我就和你合作?

其实行业内现在看起来这方面芯片的差距蛮小的,没有想象那么大,他们的性能差距小,竞争太激烈了。今天你出一个新东西,明天我一定要赶上来。所以整个Sphinx引擎,我们还没有为专门的芯片做优化。我们也觉得没有这个必要,因为你见过为哪个游戏为芯片做优化的吗?没有吧,其实没有必要。但此后,如果说哪个厂商有推进的话,我们也会继续做下去。因为也想做出一个差异点,但这块的工作现在还没开始。

CSDN:Sphinx引擎是通过什么方式做性能优化的,能不能讲具体实现的思路?

罗志宇:至于实现的思路蛮简单的,因为之前所有的浏览器可能更偏向于软的方面。你要知道整个浏览器本身的性能进化,和硬件加速不是同时进行的。在工业里面,和硬件加速GPU同时演进的是游戏。你经常会看到游戏厂商,出个新游戏,需要很高的显卡配置,大家就会去买新显卡。出了新显卡以后,游戏厂商一定会出一些新游戏。因此游戏本身和硬件加速是互相促进的。

浏览器从来都不会加入这种竞赛。浏览器本身是非常晚的时候,可能是前几年才加入到游戏行业中来。这导致大部分的移动浏览器对硬件加速支持都相当不好。现在应该没有一个浏览器是支持全硬件加速的,Chrome属于半硬件加速。如果从技术上讲的话,它属于半硬件加速的过程。为什么呢?浏览器的第一设计原则,最高的设计原则,一定是可以更好的浏览网页。然而看网页和打游戏是矛盾的,这不是一套体系的东西。网页可以是5000个像素可以卷10屏,游戏则完全不然。所以,整个游戏引擎是把设计的坐标从网页浏览,拨向了游戏。这样它可以完全使用所有的硬件加速资源。我们现在所有渲染都是在GPU端运算的。而在浏览器里面的话,现在最好的Chrome结构,也就在50%左右是在GPU端进行的。很多情况下,只要任何一种异常情况发生,它就会回退到CPU端进行渲染。

CSDN:那么它是OpenGL?

罗志宇:对OpenGL!也就是所谓的OpenGL ES,相当于是和GPU进行通讯的协议,这个其实是工业标准。在Android上面就是OpenGL ES。

CSDN:这个引擎最先开发的是哪个部分?比如您可能要出一个原型Demo,可能要给团队的领导演示它。那么最先着手做这个项目的时候,最先做的一块是什么?然后又是从怎样的情况下延展开来,完善周边的支持和优化?

罗志宇:其实这个技术是蛮奇怪的,这个技术如果从最初说起的话,不是从去年开始的。整个引擎的技术先进行了验证,从2007年就开始了。2007年我在Opera总部的时候,整个技术已经被验证过一次了。第一版是用在了Opera 移动浏览器上面,然后这是第二版,所以,从Symbian时代就开始搞这个了。

你会发现一个很好玩的事情,如果你看Opera  mobile的发布史的话,它发了一个Opera mobile10  beta,然后就直接发Opera11正式版了,中间是没有Opera10正式版的。那块就是我做的,因为这种渲染技术引入之后,我们发现性能提升非常大,就不再发Opera10了。因为整个项目结构都变了,就直接发Opera11。这也是第一个使用这种渲染技术的产品。

在同期产品里你可能记得很清楚,所有的浏览器在卷动页面的时候都会有花格子阶段,这时浏览器在做渲染,如iPhone上面。实际上Opera11是没有的。

就是说,页面下面面有马赛克一样的方格,而后系统才慢慢填充过来。但Opera11不必有马赛克,这就是我们渲染技术。这种渲染技术,可以说是第一次在尝试硬加速。这个技术本来已经验证好了,所以今天的Sphinx开发其实没有像你说的,从一个点,像做实验一样扩散的过程。它更像是一个技术的演进,这个技术沉淀的时期是蛮长的。

0
0