3
本文作者: 小芹菜 | 2015-11-10 14:10 |
【編者按】知乎上有用戶提問:用Android系統(tǒng)做出的游戲主機(jī)為何與XBOX、PS的游戲體驗(yàn)相去甚遠(yuǎn)?雖然這幾年看到不少國內(nèi)外廠商都在嘗試開發(fā)Android游戲主機(jī),但實(shí)際體驗(yàn)卻遠(yuǎn)不如傳統(tǒng)游戲主機(jī)XBOX、PS,即使曾被給予厚望的OUYA也最終慘淡收場。那么,Android系統(tǒng)作出的游戲主機(jī)體驗(yàn)真的如此嗎?本文作者為斧子科技CEO王峰,對此,他根據(jù)自身實(shí)踐經(jīng)驗(yàn)提出了不同的看法,作為這個(gè)行業(yè)的從業(yè)者,即便是一家之言,也有其值得反思的地方,希望本文能給游戲玩家們一個(gè)參考。
隨著我們斧子科技計(jì)劃推出“戰(zhàn)斧”電視游戲主機(jī)的消息逐漸被大家所關(guān)注,關(guān)于我們采用Android系統(tǒng)做游戲主機(jī)是否合適的討論也越來越多。目前市場上基于Android系統(tǒng)做游戲主機(jī)的公司,基本上是將目前的Android移動游戲直接移植到電視平臺上,而市面上鮮有優(yōu)質(zhì)的移動游戲,可以很好地支持專業(yè)電視游戲平臺上的產(chǎn)品表現(xiàn),所以這一大批Android游戲盒子基本沒有獲得市場成功,沒有能力對市場上現(xiàn)有或者潛在專業(yè)主機(jī)游戲玩家產(chǎn)生拉動。
游戲主機(jī)產(chǎn)品的成敗,除去必須要考慮的游戲機(jī)性能和硬件體驗(yàn)外,很大的程度上是靠優(yōu)質(zhì)游戲內(nèi)容來帶動的。斧子科技在創(chuàng)辦之初就是奔著專業(yè)電視游戲主機(jī)方向去的,所以我們直接在目前XBOX和PS平臺級的合作廠商中尋找專業(yè)主機(jī)游戲內(nèi)容,把它們移植到我們自己開發(fā)的基于Android系統(tǒng)的平臺環(huán)境上來。但很多人對基于Android系統(tǒng)運(yùn)行的游戲主機(jī)抱有很多質(zhì)疑,針對這些問題,我將我在斧子科技硬件設(shè)計(jì)、系統(tǒng)軟件以及游戲移植等研發(fā)團(tuán)隊(duì)過去一年里摸索和實(shí)踐中形成的看法,做一個(gè)簡要地整理,分享出來,與諸位探討。
其實(shí),Android和PS4、Steam所采用同的OS一樣,也是基于Linux內(nèi)核開發(fā)的操作系統(tǒng),能夠很好地完成CPU調(diào)度、內(nèi)存管理和其他硬件資源的管理等OS最基本的任務(wù)。衡量其作為專業(yè)游戲主機(jī)的OS是否靠譜,就要從對圖形API的支持能力、應(yīng)用執(zhí)行效率以及系統(tǒng)環(huán)境的兼容性和穩(wěn)定性三個(gè)方面考慮。具體觀點(diǎn),我們在下文細(xì)說。
一、首先來談?wù)勍婕易顬殛P(guān)心、直接影響游戲畫質(zhì)的圖形API問題
圖形API代表了不考慮硬件限制的情況下,理論最高畫面水平。例如我們用Microsoft DirectX 9的API,就算用現(xiàn)在性能最好的顯卡,也不可能做出一個(gè)Microsoft DirectX 11的畫面出來。
很多人對Android的圖形API規(guī)格上還停留在OpenGL ES 2.0的時(shí)代,由于OpenGL ES 2.0 API的限制,使圖形芯片的特性無法得到發(fā)揮。這個(gè)期間,主流的商業(yè)游戲引擎不得不放棄一些高級渲染技術(shù)。
2014年11月,Google發(fā)布的Android 5.0開始支持 OpenGL ES 3.1+AEP,2015年8月份SIGGRAPH 2015圖形大會上,Khronos組織正式發(fā)布了新一代的OpenGL ES 3.2移動圖形規(guī)范,支持渲染多個(gè)緩沖區(qū),有了浮點(diǎn)、深度、頂點(diǎn)等紋理格式和新版本的GLSL著色語言,還增加了引擎開發(fā)人員期待已久的MSAA Render To Texture。
我們回顧一下,在2014年Google IO大會上,UE4引擎在搭載了NVIDIA Tegra K1芯片的Android設(shè)備上的表現(xiàn),就有了以下四點(diǎn)明顯進(jìn)步:
1.得益于支持渲染到多個(gè)緩沖區(qū),引擎采用了延遲渲染技術(shù),能夠支持更多的實(shí)時(shí)動態(tài)光照,同時(shí)有了MSAA Render To Texture,GBuffer的鋸齒問題能夠更有效地解決。
2. 有了浮點(diǎn)紋理的支持,HDR效果的實(shí)現(xiàn)更加方便。
3. 深度紋理的支持,讓紋理陰影實(shí)現(xiàn)更快速,留出更多的空間提升陰影質(zhì)量。
4. 人物角色材質(zhì)精細(xì),采用多層細(xì)節(jié)紋理、法線貼圖和環(huán)境貼圖讓金屬質(zhì)感表現(xiàn)得更好。
商業(yè)引擎方面,現(xiàn)在常用的游戲引擎如Unity、Unreal等對Android也是非常的友好。如自帶打包工具鏈、提供運(yùn)行時(shí)性能消耗分析等功能。
另外,NVIDIA的Tegra K1和X1直接支持跨平臺的圖形程序接口OpenGL 4.4,對游戲開發(fā)商來說跨平臺移植門檻和成本都會降低。
二、再來看受到不少玩家質(zhì)疑的Android執(zhí)行效率低、跑不了好游戲這個(gè)問題
執(zhí)行效率指的是軟件能不能百分百發(fā)揮出硬件應(yīng)有的能力。如果效率低,硬件的性能只能用出一半,那么同樣的畫面,原來能有40FPS,可能現(xiàn)實(shí)就只能跑到20FPS。
手機(jī)上一般的App由于對性能要求不高,為了開發(fā)方便,更多使用Java,由于Java虛擬機(jī)的存在,性能是受到一定的影響。
但是,對于性能要求高的應(yīng)用,特別是游戲,都不會大量使用Java虛擬機(jī),而通過NDK直接調(diào)用原生C/C++的庫、代碼和圖形API,所有的游戲引擎包括Unity、Unreal都是這樣。這種類型的應(yīng)用執(zhí)行效率并不低,與游戲在PS、XBOX或者PC的系統(tǒng)下運(yùn)行表現(xiàn)并無區(qū)別。
所以,只要硬件性能帶得動,Android不會成為問題。
有人要問了,既然Android執(zhí)行效率并不低,為什么現(xiàn)在大家看到的Android手游畫面質(zhì)量都普遍不高呢?
一方面是因?yàn)槭钟伍_發(fā)商需要盡可能多適配中低端手機(jī),加大潛在受眾的量。另一方面是手游要考慮手持設(shè)備耗電量和發(fā)熱的問題,畫面做的好但是只能玩幾分鐘然后設(shè)備就發(fā)燙沒電,這是不能接受的。
而且,由于目前手游生命周期都比較短,絕大部分開發(fā)商出于商業(yè)上的考慮,不會花大量時(shí)間精力去把畫面做到極致,不符合投入產(chǎn)出比。
所以不能用目前看到的手游圖形質(zhì)量去衡量一個(gè)專門為了TV Console所適配的特定硬件產(chǎn)品的圖形表現(xiàn)能力。
這也是為什么我們“戰(zhàn)斧”游戲主機(jī)暫時(shí)將精力集中于引進(jìn)和移植專業(yè)主機(jī)游戲內(nèi)容,而不會在這個(gè)階段就引進(jìn)原生移動游戲的技術(shù)原因之一。
在移動端,Android系統(tǒng)的穩(wěn)定性和兼容性一直都飽受爭議,那么在游戲主機(jī)平臺是否也會出現(xiàn)類似問題呢?
三、在游戲主機(jī)平臺,Android系統(tǒng)如何?
操作系統(tǒng)的穩(wěn)定性兼容性,影響游戲主機(jī)的運(yùn)行流暢程度,是作為操作系統(tǒng)給用戶帶來的直觀感受之一。
在移動端,Android系統(tǒng)表現(xiàn)出的不穩(wěn)定和兼容性問題并不是Android系統(tǒng)軟件設(shè)計(jì)的問題,而是受Android生態(tài)系統(tǒng)的碎片化和開放性影響,加上Android陣營的開源體系(開源給任何硬件開發(fā)商,授權(quán)開發(fā)商做任意改動)造成的Android系統(tǒng)在移動終端表現(xiàn)不穩(wěn)定。
Google的 Android系統(tǒng)對所有硬件廠商開放,每年基于Android的硬件數(shù)不勝數(shù),硬件設(shè)計(jì)都不一樣,廠商還各種深度定制自己的ROM,而且系統(tǒng)不會強(qiáng)制升級,要做到軟件兼容性好是非常難的。質(zhì)量不能保證的軟件裝得多了系統(tǒng)穩(wěn)定性也就不能保證了。
相反,做硬件出身的Apple,他們采用的生態(tài)系統(tǒng)更為封閉,每年2到3款硬件且系統(tǒng)環(huán)境相似度非常高,系統(tǒng)只升不降,所有軟件只能從其獨(dú)有的官方商城下載,所以穩(wěn)定性更高。
游戲機(jī)行業(yè)跟手機(jī)不一樣,生態(tài)是個(gè)閉環(huán)的,不管是微軟、索尼還是任天堂,都只能在自己的硬件上玩在自己平臺上發(fā)行的游戲。主機(jī)平臺硬件型號比Apple更少,游戲主機(jī)系統(tǒng)軟件版本目前也是強(qiáng)制升級,保證不會有硬件和系統(tǒng)的碎片化問題。主機(jī)平臺游戲數(shù)量比iOS App Store里應(yīng)用的數(shù)量都要少,能夠保證每一款主機(jī)平臺上的游戲都經(jīng)過充分的測試和檢查和優(yōu)化。
所以,雖然“戰(zhàn)斧”游戲機(jī)基于Android系統(tǒng),但我們所建立的生態(tài),更類似于蘋果iOS、微軟XBOX及索尼PlayStation那樣的閉環(huán)生態(tài),即每款游戲都需要經(jīng)過游戲主機(jī)硬件軟件大量優(yōu)化和嚴(yán)格測試,系統(tǒng)行為也為游戲機(jī)深度定制優(yōu)化。沒有用戶在主機(jī)上安裝大量的各種安卓應(yīng)用,就不會有Android系統(tǒng)在移動設(shè)備上所出現(xiàn)的兼容性和穩(wěn)定性的問題。
最后,我們談?wù)勧槍ndroid游戲主機(jī)的游戲優(yōu)化問題
大家常常把已經(jīng)面世的Android游戲主機(jī)(一系列的盒子,包括華為、中興、OUYA 等)不盡人意的游戲體驗(yàn)問題,簡單歸結(jié)成Android系統(tǒng)的問題,實(shí)在是一個(gè)不小的認(rèn)知誤區(qū)。但實(shí)際上,游戲內(nèi)容的移植和優(yōu)化才是真正影響了Android游戲主機(jī)的游戲體驗(yàn)的關(guān)鍵所在。
我們目前已經(jīng)團(tuán)隊(duì)在著手游戲優(yōu)化方面的工作,一方面靠我們自己的技術(shù)力量,一方面靠我們的內(nèi)容合作伙伴。我們也在繼續(xù)加大投入,這方面的人才,大部分都在一線的PC游戲公司的技術(shù)隊(duì)伍里,要對熟悉系統(tǒng)底層和游戲引擎,非常難找。
熟悉游戲主機(jī)的都知道,主機(jī)硬件性能是比不上同期頂配的PC的,但是由于游戲的優(yōu)化很到位,所以整體表現(xiàn)能力上并不遜色。游戲移植過程中的優(yōu)化工作,都包括哪些呢?
下面舉些關(guān)于游戲優(yōu)化工作的例子。
在資源利用方面,有些游戲不能把多核CPU盡量都用起來,負(fù)載都集中在1、2個(gè)進(jìn)程里,部分CPU忙不過來,達(dá)不到理想的游戲體驗(yàn),部分CPU空載,造成資源浪費(fèi)。對游戲進(jìn)行優(yōu)化后,系統(tǒng)可以更加合理地分配資源,調(diào)動出最佳的CPU性能,從而改善游戲體驗(yàn)。
在優(yōu)化繪制方面,如果多使用紋理圖集,并盡量將相同類型物體集中一次性繪制,可以顯著降低對底層圖形程序接口的調(diào)用,進(jìn)而提高游戲效率。
而將文本格式轉(zhuǎn)化為二進(jìn)制、用最佳貼圖壓縮格式、壓縮網(wǎng)格體和動畫數(shù)據(jù)等則可以減少游戲加載時(shí)間。
當(dāng)然,游戲優(yōu)化的難度不低,不僅依賴游戲優(yōu)化團(tuán)隊(duì)對系統(tǒng)底層和硬件的充分了解,還需要耗費(fèi)大量的時(shí)間和人力。尤其是國際上3A級別的大作,或者是使用自研的、對Android沒有良好支持的引擎所開發(fā)的游戲作品更加如此。再加上傳統(tǒng)主機(jī)游戲開發(fā)商和開發(fā)團(tuán)隊(duì)一般不熟悉Android,所以成功引進(jìn)和移植一款3A大作到Android游戲主機(jī)是非常困難的,需要得到游戲大廠認(rèn)可和雙方大量的資源投入,針對Android游戲主機(jī)的硬件配置對游戲進(jìn)行優(yōu)化。我們曾披露的同日本光榮特庫摩公司(KT)之間的戰(zhàn)略合作,就屬于這個(gè)范疇。
這是我們目前面臨的最大挑戰(zhàn)之一。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。