天天看點

BigBox VR:多人聯機VR遊戲的10個開發建議

相比于單機遊戲,一款多人VR遊戲可能遇到更多挑戰,比如使用者基礎、運作速度、體驗感等等。在Quest帶領下,VR使用者人數持續增長,多人VR遊戲的春天似乎已經開始,VR吃雞遊戲《Population:One》上線Quest僅幾個月時間,營收就已經突破1000萬美元。

BigBox VR:多人聯機VR遊戲的10個開發建議

據青亭網了解,《Population:ONE》首發時的重新整理率達到72FPS,地圖面積1x1千米,支援24個玩家同時競技。實際上,72FPS是Quest 1的最高重新整理率,而Quest 2最高可提升至120FPS,是以未來該作是否将支援更高的重新整理率也值得期待。

有了足夠的使用者基礎後,那麼如何流暢、快速運作大規模的VR遊戲地圖,則曾為該作開發者BigBox VR緻力于解決的問題。在不久前舉行的FC大會期間,BigBox與Meta VR内容團隊的開發者關系工程師Cristiano Ferreira一起,分享了開發多人VR遊戲的建議和經驗,值得開發者們借鑒。

據悉,Ferreira主要負責幫助開發者提升VR遊戲的運作速度、流暢性,讓VR遊戲的重新整理率達到Quest标準。而《Population:One》美術與技術負責人Greg Chudecke,過去20年一直從事優化、編寫遊戲的引擎和工具,曾為PS 3、Gear VR開發遊戲。另一位Gabe Brown則是BigBox聯合創始人。

BigBox VR:多人聯機VR遊戲的10個開發建議

Brown表示:我們為Quest 1研發的VR遊戲原型,成為了後來《Population:ONE》更新疊代的基礎。在疊代過程中,我們總結了十項經驗:

1,Quest端渲染架構:基于圖塊的渲染架構TBR(Tile-based render)對比即時模式架構IMR(immediate mode rendering)

《Population:ONE》開發團隊的宗旨是,“根據硬體去優化,而不是與之對抗”。是以,為了在Quest一體機上流暢運作多人VR遊戲,該作采用了TBR渲染架構,好處是簡化了整個渲染流程,而且渲染品質高、節省算力、運作速度更快、降低散熱。

不過,TBR架構的渲染效果受到帶寬限制,是以顯存架構也需要基于圖塊,而不是實時運作完整的系統存儲。

IMR為一體式系統,每一幀都直接渲染、運作裝置顯存。而TBR則是僅渲染每一幀調用的像素,而且每一幀還會分成多個圖塊,分别渲染。TBR架構分為兩部分,即分塊和渲染。換句話說,TBR适用于移動裝置,而IMR則是傳統桌上型電腦采用的GPU架構。

2,降低Drawcall次數和渲染狀态變化(Setpasses),也與TBR渲染架構有關

Chudecke表示:渲染遊戲過程中每次Drawcall所需的時間不同,與渲染狀态的變化程度有關。為了減少渲染狀态變化,開發團隊采用了一種單一的着色器(Uber Shader)。此外,該作的光照模型僅采用一個定向光線。也就是說将畫面中的各種變量固定,這樣渲染狀态将隻有一次變化。

BigBox VR:多人聯機VR遊戲的10個開發建議

3,分層細節級别渲染系統(HLOD)

Chudecke表示:HLOD系統是在Quest上流暢運作大規模VR場景的關鍵。HLOD系統指的是,大規模網格模型組通常具備較少的細節,而單獨的網格模型則具有更多細節,是以前者drawcall次數更少。

而為了批量渲染大規模VR環境,開發者将遊戲的背景分成多個網格組(一次drawcall可替代每個獨立網格模組的drawcall次數),進一步降低drawcall,進而提升渲染效率。

此外,遠處的場景通常不那麼清晰,是以不需要渲染那麼多細節和色彩。換句話說,《Population:ONE》在VR玩家眼前用Uber着色器來渲染畫面細節,而遠處則隻用Uber着色器來渲染頂點。遠近不同程度的細節可以自然融合,就像是在現實生活中,人眼前的畫面比遠處要更清晰。

4,優化主線程:使用Burst Complier優化渲染流程,多線程渲染

将一些計算任務交給伺服器,然後串流至VR用戶端中,比如第三人稱角色動畫,以及手肘、手、頭部的反向動力學計算等等。不過,這種方案需要考慮到帶寬占用率。

《Population:ONE》采用了一個自定義的貼圖、粒子系統,該系統的特點是僅在GPU上運作,通過計算着色器來渲染。

5,将渲染任務配置設定給多幀圖像

Ferreira表示:Quest 1重新整理率足夠高,可達72Hz甚至高達90Hz。是以,或許可以将VR遊戲渲染任務配置設定給多個圖像幀。通常,VR遊戲的預設重新整理率在30-60fps之間,而大多數商用遊戲引擎預設每一幀圖像都更新。不過,開發者可以手動設定圖像更新頻率,比如每三幀更新一次等等。

在《Population:ONE》中,開發者盡量限制動态目标的更新率,也就是說每幀主線程的LOD(細節級别)變化限制在1到2次,以避免卡頓、延遲。此外,遊戲角色的更新頻率也根據距離有所變化,1公裡遠的角色比玩家附近的角色更新頻率更少,這樣的好處是節省帶寬,同時提升重新整理率。雖然不是每幀畫面都更新,但大多數肉眼難以察覺。

6,GPU執行個體化

BigBox VR:多人聯機VR遊戲的10個開發建議

一次Drawcall調用多種像素,好處是省去驅動驗證的時間。隻需要一組由多塊模型組成的網格就能渲染樹木、窗戶等物體。

BigBox VR:多人聯機VR遊戲的10個開發建議

7,嚴格控制記憶體占用率

Brown表示:為移動VR平台開發内容的另一個挑戰是,需要嚴格控制記憶體使用率。Quest采用了一種共享的記憶體模式,也就是說系統和圖形緩存都使用同一個存儲空間。是以,如果不嚴格控制記憶體占用率,VR遊戲将很快用盡VR一體機的緩存。

于是,BigBox利用Unity引擎的addressables架構來降低VR遊戲的記憶體占用率,原理是線上下異步載入資源,以控制載入、解除安裝資源的時間。Brown表示:addressables架構深度內建在《Population:ONE》角色、槍支的資産流程中。

8,避免後期特效渲染,這是出于對GPU存儲的考慮,而且TBR架構還得重新設定

同時,也不支援抗鋸齒、固定注視點渲染優化功能,視覺效果無法提升。

BigBox VR:多人聯機VR遊戲的10個開發建議

建議優化VR中移動時遮擋餘光視覺的陰影,即:從邊緣至視覺中心透光度逐漸增強,也就是說最邊緣完全不透光,而到了視覺中心陰影越來越透明,與中間的視覺自然過渡。不過,如果渲染這種效果的每一個像素成本較高,也許可以設定兩個網格,一個是純黑的,另一個半透明(去除中間注視點位置),兩個網格根據距離來調整中間透光區域的大小。

9,測試基準是關鍵

早期,為了測試《Population:ONE》的基準,BigBox邀請到18人測試這款遊戲,每天遊戲時長達8小時。為了減少測試時間,BigBox定制了18台用于測試遊戲的Quest 1(內建錄制遊戲過程的攝像頭),可以将基準測試時間降至20分鐘,是原來的五分之一。此外,BigBox還使用機器人來測試遊戲。

10,利用Oculus提供的RenderDoc來驗證VR遊戲渲染方式的有效性,優化應用

該工具為開發者提供多項驗證名額,包括圖塊熱圖、圖塊時間線、性能統計資料等等。參考:FB

繼續閱讀