您当前的位置:光雾山之窗 > 手机 > 正文

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

www.guangwushan.net 时间:2013-08-21 来源:光雾山之窗

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开发其实没有像你说的,从一个点,像做实验一样扩散的过程。它更像是一个技术的演进,这个技术沉淀的时期是蛮长的。

CSDN:我看宣传册上写的是“共建HTML5游戏平台”,这块我能理解,但是后面有“共同开发专属的SDK”、“免费提供基础的SDK”,这个方面是怎么做的?

罗志宇:因为HTML5有两种渠道推出来,一种渠道是浏览器渠道,你可以把这个网页发出去放到浏览器里安装,这个是一个非常传统的页游渠道,我输入一个网址玩这个游戏。这块是我们前面说的游戏平台,跟我们联运的模式。

但国内来看,手机平台有自己的特殊性,手机上面其实还有另外一个渠道——APP端游的渠道。我们这边也支持,帮你利用端游的渠道发布。端游渠道一般都比较成熟,在国内的游戏产业中渠道非常重要。

就像我问张哲,我说你们为什么要做轻度游戏?你们这个东西拿到普通技术也可以做,你们大公司也活得起的,为什么要做HTML5游戏呢?

所有我刚才说的HTML5的好处,其实讲起来非常重要的一点,从商业角度上有非常重要的一点:做HTML5的游戏,最后都要有端游,在Sphinx上和端游没有什么区别。端游我们可以推,然后我还多了一大批的网页渠道,这样只要我的渠道还在,只要我有用户,我就可以赚钱。并且赚钱机会一定会比纯端游要大。因为端游里,向我这样往网游推的,我也可以向端游这样推。这就是为什么会有SDK——专属SDK。我们可以帮助做HTML5业务的人,如果他们也想在端游层面推广的话,我们可以帮它改成一个端游。游戏可以在浏览器里当页游制作,也可以用我们的工具把它变成端游,你的代码不用重写的,它可以同时让你有两大发布渠道。

CSDN:是不是可以这样理解,页游可以套个壳变端游。还能加友盟、Chatboost等这些SDK?

罗志宇:对!我们这边做的东西更多是为开发者着想的,因为整个生态链是完整的,单解决技术上的问题是没法解决生态的问题。我告诉你一个很好的技术,开发者开发完以后,用那个技术开发出来的东西赚不到钱,他肯定不会用。

从上到下是一个很完整的闭环的过程,从技术的解决方案,到最后渠道推广方案,整个完善的流程会让开发者更容易接受。假如我现在不发一个SDK功能,开发者会说:我用了这个东西以后,我的渠道就只有网络渠道,我不能解别的SDK,我不能往这些渠道推,那我盈利会差很多。我赚不到钱,我自己就死掉了,不要给我谈技术了,我饭都吃不起。

我们帮开发者把渠道问题解决了,反过来可以促进这个产业的发展,说到底我们是做平台的,我们自己做游戏。我们所有的依托都是整个HTML5产业可以发展起来,我们才有饭吃。

现在我们的做法都是想把整个产业先做起来,让更多的人进来,更多人认为这个技术是存在的,更多的人把浏览器视作一个平台,我们做平台才有意义,我们做的平台才能够壮大,才能够繁荣。所以,这些东西都是为开发者做的,让他们可以走进来,发展起来,多赚钱。然后我们才能跟着他们一起赚钱,就是这么简单。

CSDN:那你们的引擎盈利的模式是卖license吗?

罗志宇:这个引擎在外面打包,你可以在我们的网络上打包,打包是不要钱的,免费的,拿去随便用就可以了。如果你要在浏览器里发布,那浏览器就是一个渠道。比如说用户到浏览器里面来,推个网址给他。以后我们也会有游戏中心,如果用户进到游戏中心里,浏览器就是一个渠道了,我可以把你的游戏放到游戏中心里去,给你推荐到TOP10中去。我们的浏览器有上千万的用户,我可以让你在明天被几千万用户看到。我们可以按照游戏用户分成、流量分成都可以。我们是做渠道的,我们是给你带用户的。

如果我们需要帮你把SDK全部打好。这种合作要看量级,这是纯粹商务合作了,如果你赚很多钱的话,我希望你可以分我一点。如果你没赚钱的话,先不跟你分成。这种东西都是纯商务上的一些谈判了。我们自己的态度是蛮简单的,不指望这个东西能赚钱。要赚钱的话一定赚最终用户钱,不是丛开发者身上赚钱。

CSDN:未来会有一些UI编辑器或关卡编辑器,这些东西会丰富起来吗?

罗志宇:我们是做底层引擎的,游戏引擎分两种,cocos2d引擎其实是更广义上的引擎,它分成两个部分,一个是引擎中渲染技术,而UI编辑系统属于框架范畴的,我们做的是下面的引擎。我们和cocos2d也有合作关系。我们不是那么担心动画编辑器,因为别人会做。我们从最底层核心去解决渲染的问题。他们是从框架上解决这个问题,受益的都是游戏开发者。

CSDN:今年欧朋为HTML5的普及,都做了哪些事情?或者说哪些事情你们觉得是难点?

罗志宇:今年欧朋在HTML5会更实际一点,欧朋自己今年内核会改变,这个业界都知道的。会支持Blink内核,这和Google是一样的。本身Opera对Blink内核有一些优化。你看Blink在Opera里面跑分是高于平均水平的。我们在参与一些Blink开发HTML5的推进工作,这是浏览器层面的工作。

另外是解决实际问题,像Sphinx这个引擎很明显的是要解决HTML5性能的问题。让游戏跑足30fps,咱们先把速度提上来,让它达到可玩的水平,让HTML5真的有竞争力,让它能赚到钱。

CSDN:Blink这块您能多谈谈吗?它的时间点或者现在的进展程度?

罗志宇:Blink更多是Opera总部在做,因为内核开发是我们和总部一起在做的。Blink开发研究应该是从Chrome 28开始。Chrome的发布周期应该是一致的,六个星期一次。

同时,现在你下的Opera mobile15已经支持Blink了,以后的迭代速度也会6个星期一次,如果到Chrome 29的话,Opera对应的版本是v16。

最近业界开始玩那种敏捷开发,6个星期是稳定输出,一次就把版本号加一。Chrome也一样,Chrome的内部号也是28、29、30这样迭代。它不会做2.8、2.9这样的东西,是28、29这样一直往前走。最开始的时候大家不是很适应,以后大家就都适应了。

CSDN:Blink的优势显现出来了吗?比较轻量级会不会让速度会更快点?

罗志宇:Blink本身现在还不到看到那么多好处,因为它刚刚分支出来,还没有太多的东西可以改进。

Blink本身很有意思。我自己的理解,像是Webkit这样的开源软件的发展,一定会互相牵扯,大家一定有不同的兴趣。比如苹果要开发这个东西,Google开发那个东西,搞到最后大家会互相拖。现在大家觉得整个工程的内耗太大了,这就是为什么Google要分出来一个Blink。它分出来以后就会发现,比如说以前所有图形渲染部分可能都是苹果做的。那你分出来以后没有办法做图形渲染了,怎么办?

所以,最开始的时候一定有一个空窗期,其他公司会慢慢填进去。最开始起飞阶段不会是那么快的,我不认为Blink本身在一两个版本之内会看到那么大的改进。但之后会快很多,因为一下子这种内耗就少了很多,可以专注不少东西,最后越走越快。但第一个版本,会稍微慢一些,你可以先适应一下Chrome beta,它就是Blink的。你不会觉得有那么大的变化。作为浏览器的内核,大的变化反而不是好事,这是一项非常严谨的工作。

CSDN:你们这个游戏引擎的生态系统打算怎么个搞法?有什么思路?

罗志宇:把整个产业托起来是靠两种能力,一种是技术能力,让整个游戏可以玩;一种是渠道能力,让游戏可以赚钱。你所谓的生态系统不外乎这两个方面。比如说APP在苹果商店里,不外乎你可以用苹果的工具开发,iPhone上的体验非常好。再通过APP Store将应用卖出去,整个产业链就闭环了。优秀的开发者收益就越多,进而开发更好的游戏。用户就会在整个生态里享受到更好的游戏,付更多的钱,这个市场就起来了。

现在,欧朋的思路也是一样的。其实顺着这个方向讲的话,技术方面,如何让H5的体验最好,就是游戏引擎负责的事儿,它和浏览器会结成一体。渠道方面更简单了,我们在下半年会上线游戏中心,比如说你现在看到Opera里面有一个个小格子,里面就会出现一个游戏中心。你点进去就可以玩各种游戏了。Opera的用户非常多,我可以保证接入游戏的曝光度第二天会暴增。这个渠道本身也比较可观。我们去年年底,累计有1亿用户,今年预计将达到2.5亿。(责编/张宁)

    声明光雾山之窗登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。
编辑:admin ]