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