歐朋CTO羅志宇:談Sphinx游戲引擎的前世今生

2013-08-21 16:21:03來源:CSDN作者:

2013年2月份Sphinx游戲引擎在西班牙巴塞羅那世界移動(dòng)通信大會(huì)上首次亮相,今年7月份該款游戲引擎開發(fā)者社區(qū)上線。最近,Sphinx游戲引擎已經(jīng)開放公測(cè)。我們可以看到,從今年2月份到現(xiàn)在,在Opera的大力推動(dòng)之下,Sph

2013年2月份Sphinx游戲引擎在西班牙巴塞羅那世界移動(dòng)通信大會(huì)上首次亮相,今年7月份該款游戲引擎開發(fā)者社區(qū)上線。最近,Sphinx游戲引擎已經(jīng)開放公測(cè)。我們可以看到,從今年2月份到現(xiàn)在,在Opera的大力推動(dòng)之下,Sphinx的發(fā)展速度很快,進(jìn)展很大,F(xiàn)在,合作游戲也已經(jīng)面市了。

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

羅志宇:因?yàn)樵贠pera里面,每一個(gè)項(xiàng)目程序員都自己取一個(gè)項(xiàng)目代號(hào)。Sphinx是個(gè)項(xiàng)目代號(hào),當(dāng)時(shí)沒有更合適的東西了,就拿出來了。當(dāng)時(shí)為什么取Sphinx呢?因?yàn)樗仟{身人面像,看起來是個(gè)人,其實(shí)是個(gè)獅子,因?yàn)槟銢]發(fā)現(xiàn)它看起來是個(gè)游戲引擎,其實(shí)它本質(zhì)上是個(gè)瀏覽器,它是承載一個(gè)HTML5游戲的快速瀏覽器而已,所以取這個(gè)名字。

\
圖:歐朋 CTO 羅志宇

CSDN:它是在哪個(gè)層面上的技術(shù)呢?瀏覽器是排版引擎和渲染引擎的結(jié)合體。Sphinx算是一個(gè)排版引擎?還是一個(gè)渲染引擎?

羅志宇:渲染引擎。這個(gè)游戲引擎可以打開百度、Google、新浪都可以打開。

CSDN:對(duì)于各種手機(jī)芯片,比如像Qualcomm、MTK沒有經(jīng)過優(yōu)化?

羅志宇:我們其實(shí)沒有對(duì)哪一家的廠商進(jìn)行優(yōu)化,我們還在和他們談。因?yàn)檎麄(gè)東西很奇怪的,行業(yè)里的競爭蠻激烈的,今天根高通講,你要是比MTK快的話,就跟你合作?明天跟MTK講你要是比高通快,我就和你合作?

其實(shí)行業(yè)內(nèi)現(xiàn)在看起來這方面芯片的差距蠻小的,沒有想象那么大,他們的性能差距小,競爭太激烈了。今天你出一個(gè)新東西,明天我一定要趕上來。所以整個(gè)Sphinx引擎,我們還沒有為專門的芯片做優(yōu)化。我們也覺得沒有這個(gè)必要,因?yàn)槟阋娺^為哪個(gè)游戲?yàn)樾酒鰞?yōu)化的嗎?沒有吧,其實(shí)沒有必要。但此后,如果說哪個(gè)廠商有推進(jìn)的話,我們也會(huì)繼續(xù)做下去。因?yàn)橐蚕胱龀鲆粋(gè)差異點(diǎn),但這塊的工作現(xiàn)在還沒開始。

CSDN:Sphinx引擎是通過什么方式做性能優(yōu)化的,能不能講具體實(shí)現(xiàn)的思路?

羅志宇:至于實(shí)現(xiàn)的思路蠻簡單的,因?yàn)橹八械臑g覽器可能更偏向于軟的方面。你要知道整個(gè)瀏覽器本身的性能進(jìn)化,和硬件加速不是同時(shí)進(jìn)行的。在工業(yè)里面,和硬件加速GPU同時(shí)演進(jìn)的是游戲。你經(jīng)常會(huì)看到游戲廠商,出個(gè)新游戲,需要很高的顯卡配置,大家就會(huì)去買新顯卡。出了新顯卡以后,游戲廠商一定會(huì)出一些新游戲。因此游戲本身和硬件加速是互相促進(jìn)的。

瀏覽器從來都不會(huì)加入這種競賽。瀏覽器本身是非常晚的時(shí)候,可能是前幾年才加入到游戲行業(yè)中來。這導(dǎo)致大部分的移動(dòng)瀏覽器對(duì)硬件加速支持都相當(dāng)不好,F(xiàn)在應(yīng)該沒有一個(gè)瀏覽器是支持全硬件加速的,Chrome屬于半硬件加速。如果從技術(shù)上講的話,它屬于半硬件加速的過程。為什么呢?瀏覽器的第一設(shè)計(jì)原則,最高的設(shè)計(jì)原則,一定是可以更好的瀏覽網(wǎng)頁。然而看網(wǎng)頁和打游戲是矛盾的,這不是一套體系的東西。網(wǎng)頁可以是5000個(gè)像素可以卷10屏,游戲則完全不然。所以,整個(gè)游戲引擎是把設(shè)計(jì)的坐標(biāo)從網(wǎng)頁瀏覽,撥向了游戲。這樣它可以完全使用所有的硬件加速資源。我們現(xiàn)在所有渲染都是在GPU端運(yùn)算的。而在瀏覽器里面的話,現(xiàn)在最好的Chrome結(jié)構(gòu),也就在50%左右是在GPU端進(jìn)行的。很多情況下,只要任何一種異常情況發(fā)生,它就會(huì)回退到CPU端進(jìn)行渲染。

CSDN:那么它是OpenGL?

羅志宇:對(duì)OpenGL!也就是所謂的OpenGL ES,相當(dāng)于是和GPU進(jìn)行通訊的協(xié)議,這個(gè)其實(shí)是工業(yè)標(biāo)準(zhǔn)。在Android上面就是OpenGL ES。

CSDN:這個(gè)引擎最先開發(fā)的是哪個(gè)部分?比如您可能要出一個(gè)原型Demo,可能要給團(tuán)隊(duì)的領(lǐng)導(dǎo)演示它。那么最先著手做這個(gè)項(xiàng)目的時(shí)候,最先做的一塊是什么?然后又是從怎樣的情況下延展開來,完善周邊的支持和優(yōu)化?

羅志宇:其實(shí)這個(gè)技術(shù)是蠻奇怪的,這個(gè)技術(shù)如果從最初說起的話,不是從去年開始的。整個(gè)引擎的技術(shù)先進(jìn)行了驗(yàn)證,從2007年就開始了。2007年我在Opera總部的時(shí)候,整個(gè)技術(shù)已經(jīng)被驗(yàn)證過一次了。第一版是用在了Opera 移動(dòng)瀏覽器上面,然后這是第二版,所以,從Symbian時(shí)代就開始搞這個(gè)了。

你會(huì)發(fā)現(xiàn)一個(gè)很好玩的事情,如果你看Opera  mobile的發(fā)布史的話,它發(fā)了一個(gè)Opera mobile10  beta,然后就直接發(fā)Opera11正式版了,中間是沒有Opera10正式版的。那塊就是我做的,因?yàn)檫@種渲染技術(shù)引入之后,我們發(fā)現(xiàn)性能提升非常大,就不再發(fā)Opera10了。因?yàn)檎麄(gè)項(xiàng)目結(jié)構(gòu)都變了,就直接發(fā)Opera11。這也是第一個(gè)使用這種渲染技術(shù)的產(chǎn)品。

在同期產(chǎn)品里你可能記得很清楚,所有的瀏覽器在卷動(dòng)頁面的時(shí)候都會(huì)有花格子階段,這時(shí)瀏覽器在做渲染,如iPhone上面。實(shí)際上Opera11是沒有的。

就是說,頁面下面面有馬賽克一樣的方格,而后系統(tǒng)才慢慢填充過來。但Opera11不必有馬賽克,這就是我們渲染技術(shù)。這種渲染技術(shù),可以說是第一次在嘗試硬加速。這個(gè)技術(shù)本來已經(jīng)驗(yàn)證好了,所以今天的Sphinx開發(fā)其實(shí)沒有像你說的,從一個(gè)點(diǎn),像做實(shí)驗(yàn)一樣擴(kuò)散的過程。它更像是一個(gè)技術(shù)的演進(jìn),這個(gè)技術(shù)沉淀的時(shí)期是蠻長的。

CSDN:我看宣傳冊(cè)上寫的是“共建HTML5游戲平臺(tái)”,這塊我能理解,但是后面有“共同開發(fā)專屬的SDK”、“免費(fèi)提供基礎(chǔ)的SDK”,這個(gè)方面是怎么做的?

羅志宇:因?yàn)镠TML5有兩種渠道推出來,一種渠道是瀏覽器渠道,你可以把這個(gè)網(wǎng)頁發(fā)出去放到瀏覽器里安裝,這個(gè)是一個(gè)非常傳統(tǒng)的頁游渠道,我輸入一個(gè)網(wǎng)址玩這個(gè)游戲。這塊是我們前面說的游戲平臺(tái),跟我們聯(lián)運(yùn)的模式。

但國內(nèi)來看,手機(jī)平臺(tái)有自己的特殊性,手機(jī)上面其實(shí)還有另外一個(gè)渠道——APP端游的渠道。我們這邊也支持,幫你利用端游的渠道發(fā)布。端游渠道一般都比較成熟,在國內(nèi)的游戲產(chǎn)業(yè)中渠道非常重要。

就像我問張哲,我說你們?yōu)槭裁匆鲚p度游戲?你們這個(gè)東西拿到普通技術(shù)也可以做,你們大公司也活得起的,為什么要做HTML5游戲呢?

所有我剛才說的HTML5的好處,其實(shí)講起來非常重要的一點(diǎn),從商業(yè)角度上有非常重要的一點(diǎn):做HTML5的游戲,最后都要有端游,在Sphinx上和端游沒有什么區(qū)別。端游我們可以推,然后我還多了一大批的網(wǎng)頁渠道,這樣只要我的渠道還在,只要我有用戶,我就可以賺錢。并且賺錢機(jī)會(huì)一定會(huì)比純端游要大。因?yàn)槎擞卫,向我這樣往網(wǎng)游推的,我也可以向端游這樣推。這就是為什么會(huì)有SDK——專屬SDK。我們可以幫助做HTML5業(yè)務(wù)的人,如果他們也想在端游層面推廣的話,我們可以幫它改成一個(gè)端游。游戲可以在瀏覽器里當(dāng)頁游制作,也可以用我們的工具把它變成端游,你的代碼不用重寫的,它可以同時(shí)讓你有兩大發(fā)布渠道。

\

CSDN:是不是可以這樣理解,頁游可以套個(gè)殼變端游。還能加友盟、Chatboost等這些SDK?

羅志宇:對(duì)!我們這邊做的東西更多是為開發(fā)者著想的,因?yàn)檎麄(gè)生態(tài)鏈?zhǔn)峭暾模瑔谓鉀Q技術(shù)上的問題是沒法解決生態(tài)的問題。我告訴你一個(gè)很好的技術(shù),開發(fā)者開發(fā)完以后,用那個(gè)技術(shù)開發(fā)出來的東西賺不到錢,他肯定不會(huì)用。

從上到下是一個(gè)很完整的閉環(huán)的過程,從技術(shù)的解決方案,到最后渠道推廣方案,整個(gè)完善的流程會(huì)讓開發(fā)者更容易接受。假如我現(xiàn)在不發(fā)一個(gè)SDK功能,開發(fā)者會(huì)說:我用了這個(gè)東西以后,我的渠道就只有網(wǎng)絡(luò)渠道,我不能解別的SDK,我不能往這些渠道推,那我盈利會(huì)差很多。我賺不到錢,我自己就死掉了,不要給我談技術(shù)了,我飯都吃不起。

我們幫開發(fā)者把渠道問題解決了,反過來可以促進(jìn)這個(gè)產(chǎn)業(yè)的發(fā)展,說到底我們是做平臺(tái)的,我們自己做游戲。我們所有的依托都是整個(gè)HTML5產(chǎn)業(yè)可以發(fā)展起來,我們才有飯吃。

現(xiàn)在我們的做法都是想把整個(gè)產(chǎn)業(yè)先做起來,讓更多的人進(jìn)來,更多人認(rèn)為這個(gè)技術(shù)是存在的,更多的人把瀏覽器視作一個(gè)平臺(tái),我們做平臺(tái)才有意義,我們做的平臺(tái)才能夠壯大,才能夠繁榮。所以,這些東西都是為開發(fā)者做的,讓他們可以走進(jìn)來,發(fā)展起來,多賺錢。然后我們才能跟著他們一起賺錢,就是這么簡單。

CSDN:那你們的引擎盈利的模式是賣license嗎?

羅志宇:這個(gè)引擎在外面打包,你可以在我們的網(wǎng)絡(luò)上打包,打包是不要錢的,免費(fèi)的,拿去隨便用就可以了。如果你要在瀏覽器里發(fā)布,那瀏覽器就是一個(gè)渠道。比如說用戶到瀏覽器里面來,推個(gè)網(wǎng)址給他。以后我們也會(huì)有游戲中心,如果用戶進(jìn)到游戲中心里,瀏覽器就是一個(gè)渠道了,我可以把你的游戲放到游戲中心里去,給你推薦到TOP10中去。我們的瀏覽器有上千萬的用戶,我可以讓你在明天被幾千萬用戶看到。我們可以按照游戲用戶分成、流量分成都可以。我們是做渠道的,我們是給你帶用戶的。

如果我們需要幫你把SDK全部打好。這種合作要看量級(jí),這是純粹商務(wù)合作了,如果你賺很多錢的話,我希望你可以分我一點(diǎn)。如果你沒賺錢的話,先不跟你分成。這種東西都是純商務(wù)上的一些談判了。我們自己的態(tài)度是蠻簡單的,不指望這個(gè)東西能賺錢。要賺錢的話一定賺最終用戶錢,不是叢開發(fā)者身上賺錢。

CSDN:未來會(huì)有一些UI編輯器或關(guān)卡編輯器,這些東西會(huì)豐富起來嗎?

羅志宇:我們是做底層引擎的,游戲引擎分兩種,cocos2d引擎其實(shí)是更廣義上的引擎,它分成兩個(gè)部分,一個(gè)是引擎中渲染技術(shù),而UI編輯系統(tǒng)屬于框架范疇的,我們做的是下面的引擎。我們和cocos2d也有合作關(guān)系。我們不是那么擔(dān)心動(dòng)畫編輯器,因?yàn)閯e人會(huì)做。我們從最底層核心去解決渲染的問題。他們是從框架上解決這個(gè)問題,受益的都是游戲開發(fā)者。

CSDN:今年歐朋為HTML5的普及,都做了哪些事情?或者說哪些事情你們覺得是難點(diǎn)?

羅志宇:今年歐朋在HTML5會(huì)更實(shí)際一點(diǎn),歐朋自己今年內(nèi)核會(huì)改變,這個(gè)業(yè)界都知道的。會(huì)支持Blink內(nèi)核,這和Google是一樣的。本身Opera對(duì)Blink內(nèi)核有一些優(yōu)化。你看Blink在Opera里面跑分是高于平均水平的。我們?cè)趨⑴c一些Blink開發(fā)HTML5的推進(jìn)工作,這是瀏覽器層面的工作。

另外是解決實(shí)際問題,像Sphinx這個(gè)引擎很明顯的是要解決HTML5性能的問題。讓游戲跑足30fps,咱們先把速度提上來,讓它達(dá)到可玩的水平,讓HTML5真的有競爭力,讓它能賺到錢。

CSDN:Blink這塊您能多談?wù)剢?它的時(shí)間點(diǎn)或者現(xiàn)在的進(jìn)展程度?

羅志宇:Blink更多是Opera總部在做,因?yàn)閮?nèi)核開發(fā)是我們和總部一起在做的。Blink開發(fā)研究應(yīng)該是從Chrome  28開始。Chrome的發(fā)布周期應(yīng)該是一致的,六個(gè)星期一次。

同時(shí),現(xiàn)在你下的Opera mobile15已經(jīng)支持Blink了,以后的迭代速度也會(huì)6個(gè)星期一次,如果到Chrome 29的話,Opera對(duì)應(yīng)的版本是v16。

最近業(yè)界開始玩那種敏捷開發(fā),6個(gè)星期是穩(wěn)定輸出,一次就把版本號(hào)加一。Chrome也一樣,Chrome的內(nèi)部號(hào)也是28、29、30這樣迭代。它不會(huì)做2.8、2.9這樣的東西,是28、29這樣一直往前走。最開始的時(shí)候大家不是很適應(yīng),以后大家就都適應(yīng)了。

CSDN:Blink的優(yōu)勢(shì)顯現(xiàn)出來了嗎?比較輕量級(jí)會(huì)不會(huì)讓速度會(huì)更快點(diǎn)?

羅志宇:Blink本身現(xiàn)在還不到看到那么多好處,因?yàn)樗鼊倓偡种С鰜恚沒有太多的東西可以改進(jìn)。

Blink本身很有意思。我自己的理解,像是Webkit這樣的開源軟件的發(fā)展,一定會(huì)互相牽扯,大家一定有不同的興趣。比如蘋果要開發(fā)這個(gè)東西,Google開發(fā)那個(gè)東西,搞到最后大家會(huì)互相拖,F(xiàn)在大家覺得整個(gè)工程的內(nèi)耗太大了,這就是為什么Google要分出來一個(gè)Blink。它分出來以后就會(huì)發(fā)現(xiàn),比如說以前所有圖形渲染部分可能都是蘋果做的。那你分出來以后沒有辦法做圖形渲染了,怎么辦?

所以,最開始的時(shí)候一定有一個(gè)空窗期,其他公司會(huì)慢慢填進(jìn)去。最開始起飛階段不會(huì)是那么快的,我不認(rèn)為Blink本身在一兩個(gè)版本之內(nèi)會(huì)看到那么大的改進(jìn)。但之后會(huì)快很多,因?yàn)橐幌伦舆@種內(nèi)耗就少了很多,可以專注不少東西,最后越走越快。但第一個(gè)版本,會(huì)稍微慢一些,你可以先適應(yīng)一下Chrome  beta,它就是Blink的。你不會(huì)覺得有那么大的變化。作為瀏覽器的內(nèi)核,大的變化反而不是好事,這是一項(xiàng)非常嚴(yán)謹(jǐn)?shù)墓ぷ鳌?/p>

CSDN:你們這個(gè)游戲引擎的生態(tài)系統(tǒng)打算怎么個(gè)搞法?有什么思路?

羅志宇:把整個(gè)產(chǎn)業(yè)托起來是靠兩種能力,一種是技術(shù)能力,讓整個(gè)游戲可以玩;一種是渠道能力,讓游戲可以賺錢。你所謂的生態(tài)系統(tǒng)不外乎這兩個(gè)方面。比如說APP在蘋果商店里,不外乎你可以用蘋果的工具開發(fā),iPhone上的體驗(yàn)非常好。再通過APP Store將應(yīng)用賣出去,整個(gè)產(chǎn)業(yè)鏈就閉環(huán)了。優(yōu)秀的開發(fā)者收益就越多,進(jìn)而開發(fā)更好的游戲。用戶就會(huì)在整個(gè)生態(tài)里享受到更好的游戲,付更多的錢,這個(gè)市場(chǎng)就起來了。

現(xiàn)在,歐朋的思路也是一樣的。其實(shí)順著這個(gè)方向講的話,技術(shù)方面,如何讓H5的體驗(yàn)最好,就是游戲引擎負(fù)責(zé)的事兒,它和瀏覽器會(huì)結(jié)成一體。渠道方面更簡單了,我們?cè)谙掳肽陼?huì)上線游戲中心,比如說你現(xiàn)在看到Opera里面有一個(gè)個(gè)小格子,里面就會(huì)出現(xiàn)一個(gè)游戲中心。你點(diǎn)進(jìn)去就可以玩各種游戲了。Opera的用戶非常多,我可以保證接入游戲的曝光度第二天會(huì)暴增。這個(gè)渠道本身也比較可觀。我們?nèi)ツ昴甑,累?jì)有1億用戶,今年預(yù)計(jì)將達(dá)到2.5億。

關(guān)鍵詞:歐朋Sphinx游戲引擎

贊助商鏈接: