Intel:如何支持Cocos引擎
在近日召開的Cocos 2014 開發(fā)者大會(huì)(秋季)上,負(fù)責(zé)Web引擎的研發(fā),以及H5標(biāo)準(zhǔn)推廣和增強(qiáng)的Intel軟件技術(shù)經(jīng)理余枝強(qiáng)先生就開發(fā)者們比較關(guān)心的問(wèn)題,在大會(huì)現(xiàn)場(chǎng)接受了媒體的訪問(wèn)。
問(wèn):能介紹一下這個(gè)引擎本身和Cocos之間的一些合作點(diǎn)在哪?
余枝強(qiáng):先從游戲領(lǐng)域說(shuō)起,游戲的運(yùn)行邏輯上分幾個(gè)層次,最上面是游戲的程序本身,下面是游戲引擎,如果是Web程序的話,底下還有一層,稱之為Web引擎,支撐的是HTML5相關(guān)規(guī)范的支持,還有運(yùn)行的支持, Crosswalk 屬于Web引擎這一層。從上到下,開發(fā)者用HTML5開發(fā)游戲在最上面,然后是游戲引擎的API,包括通用的游戲邏輯封裝,音頻、視頻、圖形等再往下就是Web引擎,去支持H5里面各種各樣的標(biāo)簽(比如DOM/CSS/WebGL/等)以及Javascript代碼這些需要Web引擎的支持。最后再往下就是操作系統(tǒng)中相應(yīng)的Driver,以及硬件的芯片(CPU/GPU/等)、各種整合在一起。
Cocos引擎有幾個(gè)系列,比如Cocos2d-x (c++) , Cocos2d-x JS Binding, Cocos2d-html5等. 我們和Cocos2d-html5有較強(qiáng)的互補(bǔ)關(guān)系?;贖TML5把游戲封裝好,游戲需要用到比較前沿完整的HTML5功能的時(shí)候,就需要Web引擎來(lái)支撐。目前的現(xiàn)狀是,現(xiàn)有的Web引擎(現(xiàn)有的瀏覽器以及Webview組件),在H5的功能和性能上都有各自的不足,我們的Web引擎-Crosswalk就是為了解決這個(gè)問(wèn)題,提供較為完整的H5支持以及較好的性能,同時(shí)不斷的優(yōu)化和增強(qiáng),涉及跟Cocos合作方面,我們還會(huì)針對(duì)游戲,尤其是利用Cocos2d-Html5 API的這種場(chǎng)景專門做針對(duì)性的優(yōu)化。游戲還是有些特性的,針對(duì)這些特性,我們會(huì)在引擎方面做優(yōu)化。
當(dāng)用戶玩一個(gè)游戲時(shí),其實(shí)整個(gè)流程是需要軟硬件配合,現(xiàn)在硬件在日新月異不斷往前發(fā)展,進(jìn)展很快。比如單指令多數(shù)據(jù)并行指令(SIMD),硬件多核等,如何把這些能力給Web開發(fā)者使用,這也是Web引擎要解決的領(lǐng)域。我們?cè)谶@方面做了一些拓展,希望通過(guò)和Cocos的合作,讓HTML5游戲開發(fā)者不但可以用到很豐富的H5功能,同時(shí)也可以充分的利用到硬件的特性,以及針對(duì)性的優(yōu)化?,F(xiàn)在市面上很多HTML5游戲引擎都只用到HTML5的一個(gè)子集,我們希望看到一個(gè)全集,去開發(fā)更加精美強(qiáng)大的HTML5 游戲。我們希望可以解決這些問(wèn)題。
問(wèn):您的意思是否如果我是一個(gè)開發(fā)者,想開發(fā)一個(gè)H5的游戲,就必須要用到這個(gè)引擎?
余枝強(qiáng):HTML5本身包括很多功能,很多API(DOM/CSS/WebAudio/WebGL/WebRTC/GamePad/等等)。目前市面上的H5游戲引擎,(包括Cocos2D-js),只包含了H5一個(gè)子集(主要是圖形方面)。如果一個(gè)游戲只用到很小部分的API,不涉及到DOM/CSS/其他H5 API等,就可以不需要Web引擎,直接調(diào)到下面(一般是通過(guò)一個(gè)簡(jiǎn)化的Javascript引擎再加上一些Javascript Binding的API)。如果想用到豐富的HTML5功能,一個(gè)完整的Web引擎就繞不過(guò),必須用Web引擎。
舉個(gè)例子,如果我們把一個(gè)完整的游戲比作汽車,汽車有跑車、一般汽車,決定汽車跑得多快、多好,引擎是決定因素。在H5領(lǐng)域,Web引擎相當(dāng)于汽車?yán)锩娴囊妗?/p>
問(wèn):Cocos相當(dāng)于什么?
余枝強(qiáng):Cocos2d-JS模塊可以認(rèn)為是一個(gè)子集,某種程度上也可以說(shuō)是這個(gè)HTML5子集的引擎。如果要用到HTML5的全集功能,就必須要一個(gè)Web引擎來(lái)支撐。如果只是選一個(gè)子集,那是另外一條路線,H5很多功能相當(dāng)于丟掉了。所以我們跟客戶合作時(shí)說(shuō),現(xiàn)在很多H5游戲蠻多是在子集上,大家針對(duì)子集就跑起來(lái)了,但是H5有很多豐富的標(biāo)準(zhǔn)的API,還有很多好用的HTML5軟件庫(kù),這些想完整跑得非常好的話,就需要類似Crosswalk 這種Web引擎來(lái)支撐。
問(wèn):我和一些開發(fā)者聊過(guò)很多人都跟我說(shuō)H5的性能完全無(wú)法和NativeApp(原生應(yīng)用)相提并論的,所以他們可能并不是很看好這一塊。
余枝強(qiáng):這是一個(gè)很好的問(wèn)題,也是我們想盡力解決的問(wèn)題。H5直觀上來(lái)說(shuō)跟原生應(yīng)用相比多了一個(gè)中間層,性能打了個(gè)折扣,同時(shí)從API方面來(lái)看也是相對(duì)有所不足,但是Web引擎以及相應(yīng)HTML5框架演進(jìn)和發(fā)展非常快,這塊差距在不斷縮小。性能方面相對(duì)需要更多的努力。舉個(gè)例子,在游戲方面尤其是復(fù)雜的游戲,有些非常經(jīng)典的例子,比如說(shuō)1000個(gè)精靈同時(shí)在屏幕上以各種形式運(yùn)動(dòng),還有粒子系統(tǒng),實(shí)現(xiàn)各種效果,比如煙霧彈出來(lái)的動(dòng)畫效果這些情況下,目前的Web引擎很難達(dá)到原生應(yīng)用類似的體驗(yàn)。比如說(shuō)Chrome內(nèi)核,它在H5引擎里面是比較領(lǐng)先的 ,但是對(duì)上述兩個(gè)例子的處理速度還不到原生應(yīng)用的一半。Cocos里面提供了相應(yīng)的測(cè)試用例。我們針對(duì)游戲這種情況做了優(yōu)化,和Cocos引擎里面相關(guān)的代碼做了一些深度整合,包括在我們引擎做針對(duì)性優(yōu)化之后,初步的實(shí)驗(yàn)結(jié)果是:對(duì)1000個(gè)精靈的例子,性能可以提高50%,當(dāng)然比原生程序(C++)慢20%-30%,但已經(jīng)比較接近了;對(duì)粒子系統(tǒng)那個(gè)例子(煙霧效果),基本可以達(dá)到和原生程序一樣的性能。我們還有更多的優(yōu)化在進(jìn)行中。游戲這種特殊產(chǎn)品,結(jié)合游戲引擎和Web引擎,我們做一些全棧式優(yōu)化,這里還有很多機(jī)會(huì)可以做。性能差異目前是存在的,但不代表這個(gè)東西不可以逾越。而且根據(jù)目前的試驗(yàn)結(jié)果,我們有信心通過(guò)針對(duì)性地優(yōu)化,讓W(xué)eb引擎的性能進(jìn)一步提升,有能力去支撐重度游戲。。
另一方面也是Intel的優(yōu)勢(shì),Intel包括芯片、系統(tǒng)性能優(yōu)化,并行處理都有比較強(qiáng)的技術(shù)積累。,現(xiàn)在手機(jī)CPU 一發(fā)布經(jīng)常都是4核、8核,GPU 更是多核,CPU還有類似SIMD(單指令多數(shù)據(jù))的并行處理能力。這些能力目前在H5游戲領(lǐng)域基本都沒有用到,我們正在在Web引擎里加一些支持,可以把4核、8核或幾十個(gè)核以及SIMD這些能力銜接在一起發(fā)揮出來(lái),讓性能得到進(jìn)一步的飛躍。,這也是我們另外一個(gè)優(yōu)勢(shì)。Web現(xiàn)在趕超非常明顯。
我們前段時(shí)間做了一件事情,騰訊有個(gè)Web前端團(tuán)隊(duì) (AlloyTeam)做了個(gè)開源圖形處理庫(kù),這是基于H5開發(fā)的,可以方便的利用HTML5實(shí)現(xiàn)一些圖形處理,比如粗糙效果/木雕效果等這些效果的處理,在臺(tái)式機(jī)上性能還可以,而在在移動(dòng)端需要4、5秒,有些復(fù)雜情況的處理(比如木雕效果)甚至需要40、50秒,這樣的性能根本沒辦法在移動(dòng)端使用。。我們用了并行技術(shù)優(yōu)化后,在Crosswalk上可以達(dá)到2倍-20倍性能提升。原本木雕效果是40秒以上才能完成,優(yōu)化后只需2秒左右。而且這樣的優(yōu)化是在引擎以及Javascript庫(kù)這層實(shí)現(xiàn)的,對(duì)開發(fā)者比較透明,上層的HTML5程序無(wú)需修改就可以體驗(yàn)到性能提升。對(duì)開發(fā)者很簡(jiǎn)單。
我們可以看到,目前情況下一些看來(lái)用HTML5不可能實(shí)現(xiàn)的事情,通過(guò)這些些優(yōu)化之后,突然變得可能了。我相信這塊會(huì)有很多機(jī)遇在打開。如果大家聽了上午的演講,可以感覺到基于Web的開發(fā)正在慢慢崛起。通過(guò)軟硬件結(jié)合,通過(guò)在Web引擎領(lǐng)域不斷的創(chuàng)新和推動(dòng),我相信HTML5能做很多事情,到時(shí)候希望有更多的實(shí)例展示給大家。我們也希望跟游戲引擎、游戲開發(fā)者一起有更多的合作。
Web語(yǔ)言很靈活,導(dǎo)致高效的程序不容易寫,需要更多優(yōu)化,如果看到一個(gè)游戲性能很差,問(wèn)題可能會(huì)發(fā)生在很多層次,可能是Javascript寫的不好,沒有對(duì)Web引擎很好了解的話很容易中招,也有可能是游戲引擎不夠高效,也有可能是Web引擎的性能問(wèn)題。通過(guò)不同層面的優(yōu)化,會(huì)慢慢得到很大的改觀,而且會(huì)做越來(lái)越多的事情。希望和大家一起努力推動(dòng)HTML5前行。
Cocos 2014開發(fā)者大會(huì)(秋季)是Cocos開發(fā)者平臺(tái)的第九次會(huì)議,秋季大會(huì)的主題為“Great or nothing”。觸控科技將在大會(huì)中正式發(fā)布了“Cocos開發(fā)者平臺(tái)”,并宣布與多個(gè)國(guó)際巨頭的戰(zhàn)略合作。作為本屆大會(huì)的重頭戲,Cocos開發(fā)者平臺(tái)將一體化整合開發(fā)者生態(tài)圈,Cocos Engine工作流可為開發(fā)者提供“創(chuàng)意→游戲上線→收入提升”過(guò)程中所需的全套產(chǎn)品與服務(wù),包含暢思廣告平臺(tái)、Cocos Play、AnySDK等重要戰(zhàn)略級(jí)產(chǎn)品。