CCP談《Gunjack2》開發過程中藍圖使用及優化性能技巧
在VR發展的初期,很少有3A級開發者比CCP Games更早關注投入其中。4月24日,上海CCP Games主管Alex Riviere以及技術總監 William RavaineUnreal Open Day活動。活動上二人分享了《Gunjack2》開發過程中對於性能考量、優化、藍圖以及音頻使用的技巧。
Alex Riviere強調了空間音頻對於塑造遊戲沉浸感的重要性,在Gunjack2加入了大量語音。這些語音不僅僅用於故事的傳達,同時也用於遊戲的反饋。他們以此來引導玩家進行轉向或者改變操作,將注意力瞄準到正確的目標上。
William Ravaine分享通過合適的工具來對性能進行把控,包括FPS Chart來查看性能數據,Finding Bottlenecks和napdragon Profiler來觀測渲染情況。此外其還提到了一些節約性能和開發費用的小技巧。
藍圖的設計理念是將系統寫進代碼中,在藍圖中對它們進行延展,且適用於一些高級的邏輯流程。二人認為在代碼中使用核心功能,容易成型,進行重構和調試,並得到所需要的效果。
以下是演講內容,VRZINC整理有刪減:
Alex Riviere:我們團隊希望能夠讓大家提供這樣一款基於移動平台、低成本且隨時可以玩的遊戲,而Gunjack也是我們最為暢銷的VR遊戲之一。
先給大家看下Gunjack2的開發流程。遊戲採用混戰式的模式,一共9個月的開發流程,20個開發者,包括我自己、設計、程序、美術、音頻等等。前四個月做概念和原形,5個月的時間真正進行內容製作。於去年12月1號發布遊戲,發售後的兩個月不斷升級和增加新的內容,包括多人模式。
加入多人模式增加重玩性
William Ravaine:在Gunjack1中我們將視角和駕駛艙進行了鎖定,目的是不會在射擊的時候阻礙玩家的視線。而在Gunjack2中我們選擇用控制器瞄準敵人進行射擊,玩家獲得更好的臨場感和沉浸感。
與此同時,我們對遊戲系統進行了擴充,加入了Power-UP系統,玩家在遊戲過程當中可以積累能量點數。通過控制器進行滑動選擇三種不同的技能。此外我們在戰鬥中加入了交互設計,敵方一些導彈攻擊我們可以實現反彈效果。
為了在Gunjack2中提供更好的重玩性,我們也引入了一些在線元素,加入即時生存的任務,例如每一天玩家都可以參與到生成的挑戰任務中,與五位玩家一起競爭最高分。每一周我們都會生成一個系列的任務鏈,而且難度不斷增加,相當於小型的戰役模式。玩家在完成任務後可解鎖新的Power-UP,同時遊戲支持全球排名榜和成就系統。
用語音來實現敘事和引導
Alex Riviere:由於我們在玩法上面存在一些限制,所以我們加入了任務之間的過場動畫。每一個任務都有這樣的動畫,動畫會將下一個任務的背景介紹給玩家。
此外我們還加入了很多的語音,通過劇情式的語音形式,任務之中玩家會收到來自指揮官的無線電語音,用通訊連接的形式在界面上面顯示出來,可以看到說話人的頭像。
這些語音不僅僅用於故事的傳達,同時也用於遊戲的反饋。我們以此來引導玩家進行轉向或者改變操作,將注意力瞄準到正確的目標上。
選擇合適的工具進行性能分析來達到性能目標
William Ravaine:我們做Gunjack1的時候,主要針對是Google Pixel和Pixel XL機型。我們目標是達到60幀,1080的解析度,這樣在安卓系統中的持續模式相當於一個性能分析的模式。除了可以持續進行測試外,同時不過熱處理器。
通過我們的VRSDK可以進行各種的設置,包括能夠進行非同步投影,來減少視覺延遲感。之前在我們的設備之上測試出來每幀大概3毫秒的樣子,然而真正每幀的時間大概有7毫秒的時間,而且一開始的時候,我們是沒有辦法得到最終的硬體規格。因此我們也是比較保守定義了性能的預算,50-60個的多邊形,120 Draw Calls的調用。
我們使用了單向動態光源,而不是靜態的光源。我們希望紋理的大小小於1K,便是實現更好的壓縮效果。此外我們沒有做任何後處理的效果,因為這樣會大幅提高運行成本。
我們通過性能分析達到我們的性能目標,常用的工具是FPS Chart。如果一個敵人向你瞄準或者有一個轉換的戰鬥場景,會有更多的內容在這張表上面出現。其它一些性能的數據,是在每一個任務完成之後出現的。通過這張圖可以非常清楚的發現問題所在之處,而且在資料庫中我們可以時常查看性能相關數據。
我們可以通過一個非常有用的工具來看到具體性能水準是什麼樣的,但還需要更多的細節才能夠找出來性能方面的問題。因此我們還使用了Finding Bottlenecks和napdragon Profiler,來觀測渲染的建立。
玩遊戲的時候會出現溫度很高的情況,防止設備被損害,會把CPU和GPU降低,這叫SoC Throttling。低性能的狀態下,特別是在VR環境中,需要去比較兩種文檔數據。比如在做優化工作時,需要比較建模數據之前和建模之後的情況。保證用戶可以在不同情況進入並且進行體驗。
可持續模式就是我前面提到的,能夠提供很大的幫助,隨著時間的推移越穩定。如果設備用的時間長了,實際溫度高了。將設備關閉一個小時左右,它就可以恢復了。
一些維護性能的小技巧
在手機上如果驅動量過大,可能導致Gunjack2的效果不好。因此我們採用了一個動態的方法,同樣的事情在同樣的時間發生,這在移動手機上的使用非常重要。
在對物體的渲染過程中我們會分別進行,其中有一些非常低的解析度和透明度,基本上人們不會注意到它。
為了省錢,我們在對駕駛艙進行了渲染的過程中,在屏幕上會有大面積的天空出現。此外為了避免比較大的費用,我們需要將一些角色進行回收而不是毀滅。
這是一個非常簡單的技術,但需要注意的是,遊戲開發人員在重新使用這些角色的時候,需要適當使用,而且可能會出現程序方面的漏洞。在我們的這些戰役當中,有時候會有一些船是無敵艦。
藍圖和音頻使用的注意點
藍圖是非常方便、有效的工具,我們在原型和預測的結果端都進行了使用。但我們認為兩者的使用應該是不同的,在預測階段不一樣,如果濫用藍圖的話反而會導致困難的出現。
藍圖的設計理念是將系統寫進代碼中,在藍圖中對它們進行延展,換句話說我們支持的是核心功能在代碼中使用,這樣它容易成型,進行重構和調試,然後得到所需要的效果,因此藍圖也適合一些高級的邏輯流程。
在Gunjack中,藍圖的教材是由我們一個設計方設計,每一個教材都有非常獨特的要求,所以藍圖特別適用我們這樣的情況。我們還在UI邏輯中使用了藍圖。同時針對資料庫我們基本上要進行密碼設計,然後設置一層、藍圖一層,保證這個數據有合適的組件,能對各種各樣的事件進行反應,比如著火這樣的事情。
我們在通關藍圖上還使用了一些自定義的物體或者素材,讓玩家以不同的方式來完成每個任務,類似如何實時完成任務,視角應該如何保持等等。
Alex Riviere:最後,為什麼說音頻對於Gunjack2非常重要?VR最大的優勢在於沉浸感,但想要讓玩家身臨其境,我們發現需要通過各式各樣的信息包圍他們的感官。正如之前提到,除了視覺,用戶需要更多感官的感知。空間音頻是我們在開發Gunjack2中營造身臨其境感的重要方式,甚至有玩家會跟著音樂一起歌唱。


※蘋果獲新3D UI專利 支持VR頭顯眼控交互
※百度高管解讀財報:凈利17.77億元 陸奇要加強AI創新
※松禾資本董事總經理司文敏:打鐵還需自身硬 創業團隊做到各領域前列才能吸引資方關注
※RealMax主辦「AR計算產業生態大會」在上海成功舉辦
※暴風發布第一季度報告:暴風魔鏡季度銷量60萬台 同比增長229%
TAG:VRZINC |
※使用 Visual Studio Code 搭建 C/C+開發和調試環境
※SecureCRT埠轉發功能的使用
※Cobalt Strike中DNS隱蔽隧道的利用,以及使用DLP進行檢測
※使用CoreRT將.NET Core發布為Native應用程序
※Polymake公司使用Warp-Free技術製造出3D列印纖維材料——尼龍CoPA
※Valve 使用深度學習識別 CSGO 的作弊者;Android Studio 3.1 正式發布
※使用C#開發Android應用之WebApp
※使用 Docker 容器化 Django Web 應用
※Sumerian VR開發工具向公眾開放使用
※使用 BenchmarkDotnet 測試代碼性能
※C4D—Symmetry Clamp的安裝和使用
※使用TensorFlow,Kafka和MemSQL進行實時機器學習
※Tiger5G談生活 篇十七:相當符合國內使用環境的設定:EraClean Fresh 新風機 使用體驗
※Github上線使用BCH的打賞機器人GitCash
※三星Gear S2智能手表現可與Gear VR搭配使用
※Sketchbox:會畫圖就能使用的AR建模應用
※DiskShadow使用大全 基於IOCs的防禦
※Google Cloud TPU向公眾開放使用
※使用 Angular CLI 搭建項目
※新版本 Nike Air Presto「The Ten」諜照曝光,設計師使用 Supreme 單品打造沙發 | HB Daily