乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

Jim Ivon是紐約遊戲工作室Labrodex的CEO,這個工作室成立於2016年,從成立之初就決定投身於VR遊戲的研發之中。目前,Labrodex正致力於開發一款包含RPG探險元素的VR科幻射擊遊戲。在製作這款遊戲的過程中,Labrodex遇到了許多VR遊戲開發者遇到過的共同問題,這支團隊是怎樣處理這些問題的呢?

Ivon在遊戲網站80lv撰文分享了Labrodex團隊在VR遊戲開發中的心得,尤其是在遊戲中的環境構造這方面,如何利用現有資源快速完成短期目標?如何達到性能平衡,儘量保持幀率?如何優化團隊效率?Labrodex的經驗或許能為後來的開發者提供一些幫助。

一試霜刃:結合3A級的遊戲元素和獨立遊戲工作室的創造力

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

Labrodex工作室現在正在同時進行幾個項目,其中最重要的是一個RPG和探險元素的VR科幻射擊遊戲。我們目前還沒有向公眾正式發佈關於這個遊戲的消息,不過近期會放出一些細節宣傳。我們對於Labrodex內部項目的目標一直都是,不僅是要創作好遊戲,而且是要圍繞有深度的原創IP創造全新的遊戲宇宙。

在工作室創立之初,我們就希望能夠結合3A工作室的優點和小而美的獨立工作室特有的創造力、靈活度和速度。所以,在我們第一個項目的計劃中,我希望能夠納入3A級的元素,包括聘請知名的獲獎作曲家為遊戲創作獨特的音樂,我們還聘請了《紐約時報》暢銷科幻作家來為遊戲撰寫前傳小說。小說的結尾就是遊戲劇情開始的地方,小說將會在今年秋天發行,這能給遊戲打下優秀的故事基礎。

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

在我們的遊戲中,作為發生地的城市本身也是一個核心要素。我們聘請了世界知名的建築概念藝術家來設計主要建築和城市標誌。我們將他的設計在VR中重現出來,最後的效果非常好。

遭遇挑戰:性能,最基礎也是最艱難的部分

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

最大的挑戰是如何在擬真遊戲表現與顯示性能上達到平衡。最開始的時候,我們團隊想創造一個儘量真實、身臨其境的可交互VR世界。這給遊戲開發帶來了難以想象的困難,因為要達到足夠擬真的世界,對物品的品質、材質、材料和光照都有相當的要求。這些要求和VR所需求的性能要求結合起來,讓開發環境變得十分艱難。

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

現在,已經有了很多非常不錯的VR作品,我們希望能夠在這些作品的經驗之上進行開發。我們的目標是做出一個真實可信、內容豐富的故事,能夠將玩家引入故事之中,我們希望我們的作品能夠推動VR的發展再向前邁進一步。我現在能夠透露的一點是,在我們的遊戲裡,玩家不需要通過傳送或者按鍵、點擊這樣的操作,也能夠進行長距離的移動。我們創造了一種我們覺得很有趣也很自然的移動方式。

提升複雜度:將劇情和關卡設計相結合

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

在我們的遊戲中,故事深度是一個重要的因素,所以VR正是這款遊戲的絕佳體裁。當你看著這些建築,這些機械,甚至是遊戲裡的boss時,VR能夠給你無與倫比的真實感。從一開始我們的劇情團隊和遊戲設計團隊就是同步的,我們做每一件事都是雙管齊下,這不僅非常有趣、令人激動,而且無疑對關卡設計在劇情上的流暢度有很大幫助。每個關卡都是根據當前的任務和那一關的外觀來規劃的。

不過,我們也發現了一個問題,就是VR會把設計中的瑕疵更突出地表現出來。在顯示器上可能根本看不出來的問題在VR上明顯得讓人頭痛。我們花了一些時間才調整好總體的關卡設計指導。我們做了無數個測試關卡,試用了各種外觀、高度、關卡規模,來測試怎麼樣能使內容更有可信度。不知多少次,一個場景在屏幕上看著很完美,但到了VR裡就不一樣了。

後來我們採取了這樣的做法:對於那些關鍵物品,做好最基礎的模型後就放到VR環境檢查,然後再進行下一步的製做。由於VR目前的性能要求,這意味著在設計之初就要考慮好物品的材質、物品在遠處和近處觀呈現的不同外觀。

比如說,人物角色在屏幕上和在VR中就有所不同。為了避免重新調整的潛在麻煩,我們在VR環境中檢查模型之後才會進行接下來的進一步工作,這樣一來開發進度得以加快。畢竟,當模型在VR裡顯示和屏幕上完全不同,沒有什麼比不得不從頭返工更糟心的了。

我們也仍然在繼續進化,繼續學習。每天我們都會遇到新的挑戰,忙得不可開交,我們想要保留那些讓人驚豔的元素,思考哪些部分是重要的,哪些部分是多餘的。甚至一些很小的變化,比如增加一個靜態光源,就可能改變最終的表現。

合理利用付費資源,優化團隊效率

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

我們在2016年十二月和2017年一月花了很多精力做第一個demo,那時我們對這款遊戲還只有一個比較粗糙的想法。一月初我們聘請了我們的執行出品人,他有超過20年的3A作品開發經驗。他看了我們當時的進度後,我們商量,想在GDC(Game Developers Conference,遊戲開發者大會)上展示遊戲的一個片段。當時人員已經到齊了,那是我們作為一個新團隊面臨的第一個挑戰,我們能夠在兩個半月的開發時間內做出遊戲的基本原型,並且表達出我們想要的感覺嗎?

GDC上的這個demo是用Unity做的,我們設定了一個非常緊張的日程,希望能夠按時完成。這個demo是一個室外遊戲關卡,要表現移動機制和沉浸感等這個遊戲獨特的一些元素。這個demo有配音、有複雜的動畫、特效、任務和很酷的AI,從我們遇到的一些企業方的反饋來看,評價非常正面,這些企業包括微軟、索尼、Valve和Twitch等等。可以說,每次有人來體驗我們的遊戲,從他戴上頭盔的那一刻起,我就會在心中默默祈禱,希望他玩得開心。

GDC之後,我們當然還有非常多的工作要完成。我們完成了GDC之前的計劃,也就是完成一個能夠表達我們遊戲精髓的遊戲片段。

為了趕上GDC,我們需要團隊專注在遊戲的核心內容上,那麼那些次要的內容就要尋找別的方式來完成。當時很大的一個障礙就是,我們設置的玩家出生點是一個屋頂,在這個屋頂的四周,我們需要一個搭建好的城市模型。但在那個時候,我們還只有十個人。我不能把這些人手都拿去做這個城市模型,我決定去找找TurboSquid(一個3D模型庫)裡有沒有現成的可以用到遊戲裡的模型。

由於我們是一個VR遊戲,所以我們要確定使用的模型足夠精細,要達到相應的材質和材料要求,即使在VR頭顯裡看也很合適。找了幾個科幻主題的建築模型包之後,我讓我們的關卡設計師去看裡面的細節,確定能不能使用。

TurboSquid很好的一點就是你能看到他們提供的模型的很多細節,你能很清楚的看出它們是否適用你的遊戲,模型的面數有多少,材質貼圖貼好沒,附帶什麼地圖,是不是已經解包,有沒有動畫,包括什麼格式的文件。我們付費買下了一部分內容,決定在遊戲裡試試看這個建築包。只用了幾個小時,我們就得到了計劃中想要的城市背景,這省去了我們好幾周的開發時間,幫我們按時趕上了GDC。

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

從GDC回來之後,我們轉向了虛幻引擎,重新制作遊戲內容。在正式遊戲裡,我們還是希望我們的每一個模型都是獨特的、原創的,是由我們團隊組建創造的,包括demo裡的那些建築也是如此。

在VR中,我們測試了許多不同的想法,讓關卡構造和遊戲的視覺表現相和諧。比如說,我們想測試,當鏡頭和玩家綁定時,鏡頭在城市空間中移動的效果。這只是測試,沒必要再搭建一個全新的城市,我們可以再利用當時在TurboSquid買的建築模型,快速地搭建出一個城市背景。在這些小型的測試中,這個做法為我們節約了很多時間和成本。

確定適當的場景規模,用遊戲人物做尺子

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

要保持合適的場景規模是我們從一開始就非常注意的事情。不同於一般的第一人稱設計遊戲,在VR中玩家會獲得完全的環繞感。這就使得恰當的場景規模非常重要。我們發現的關鍵方法是根據現實世界的尺寸來設計遊戲裡的場景規模。這意味著要能夠在遊戲引擎裡實際地測量物體。

用Unreal,你可以點擊正視圖圖標來測量物體,選擇合適的視角,放大或者縮小,按住鼠標中鍵拖動,就能看到Unreal單位的測量結果。我們用這個方法測量了所有的人物模型,確保他們和現實世界裡保持相同的尺寸。這一步很簡單,但卻能使接下來的環境設計輕鬆很多。先測量你的遊戲角色,保證他們和現實世界裡尺寸相匹配,接下來就能用人物尺寸來估測遊戲中的其他物品。這個在確定遠處物體的真實度時特別好用。

提升優化效率:不要等到最後,做一步檢查一步

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

這是我們目前為止經歷最艱難的過程。在優化VR內容這方面,我們經歷的試煉和挫折可以寫好幾篇文章了。我們最快學到的一課就是,隨著進度要持續查看項目的VR適配情況、並且存檔。可能有好幾十次,一個模型、特效或者動畫在屏幕上看著好好的,編輯器裡跑得也很順暢,但是一拿到VR上,完了,跑不動。

乾貨!國外Labrodex開發者談VR遊戲場景構建與開發流程心得

現在,我們每做一個改動,或者增加一個新內容,我們都立刻存檔。我們會檢查新版本和之前版本的每一個參數變化。幀率,延遲,繪製調用(draw calls),光照密度(lightmap density),著色器複雜性(shader complexity),屏幕圖像還有其他所有的東西。我們記錄下這些結果,在測試新版本的時候對照這些參數。

隨著團隊參與這個項目的人越來越多,我們發現記錄這些關卡存檔非常的有用,畢竟有時候,你只是調整一個簡單的粒子特效,就會給VR裡的顯示性能帶來災難性的影響。

要讓整個遊戲在持續的90fps幀率下運行也帶來了額外的挑戰。在VR裡設計一個關卡的時候,我們儘量考慮到方方面面。我們和關卡設計師討論了無數次,關於怎麼樣設計特定的地形來最大化資源利用,減少調用,限制掉幀。

我們花了非常多的時間和精力,深入地思考怎麼樣能夠使遊戲關卡和模型不僅“看上去很酷”,而且真正表現出VR的特性,我們應當如何以VR的思路來設計遊戲。比如說,我們正在做基於地形的遮擋剔除(occlusion culling),會把故事意圖也考慮在內,作為一種劇情和關卡結合的策略。

在設計VR遊戲時,要儘可能地全面考慮。我們在所有特效上都考慮了LOD(Levels of Detail,多細節層次)嗎?給所有的模型都設置了嚴格的LOD嗎?有沒有設置自定義碰撞匣來避免不必要的性能負擔?是不是以模塊化的方式來設計?但是也記得不要太模塊化。我們有沒有根據是否可見來合併特定的動作?也沒有調整好光照密度?是否儘量避免了光源的移動?還有,當然了,存檔,存檔,存檔。

我們能給VR開發者同行最重要的建議可能是,只要發現掉幀,立刻停下你在做的任何事情,去找出掉幀的原因。一旦開始二次映射,你會立刻從90fps降到45fps。可能有時候幀數只掉了一點點,但是為了避免幀數不穩,引擎可能會降低你的平均幀數來避免峰值。所以,只要幀數下降,立刻去找出原因。通常來說很大概率都是你最新加上去的那個東西導致的。

最開始我們喜歡先做著,等“最後再來一起優化!”。但這是個大錯誤,因為有幾百件因素都在影響著性能。事實證明要從幾百個部分中找出一個原因根本做不到,太可怕了。我們最後只好從零重建了整個關卡,把內容一個一個加回去,每加一個就存檔一次,最後終於發現了問題區域。一旦你達到了90fps,盡一切努力保持住這個幀率。相信我,這個做法會讓整個團隊感謝你的。


分享到:


相關文章: