遊戲移植Switch平臺要注意什麼?《DARQ》開發者分享實戰經歷
雖然跨平臺移植的成本不小,但是過來人都表示物有所值。隨著任天堂 Switch 持續火熱(全球銷量超過 7 千 8 百萬),Switch 也成為了移植遊戲的首選平臺。我們有幸請到了恐怖主題的動作冒險解謎遊戲《DARQ》的開發者,Wlad Marhulets,來講述自己的開發經歷。
《DARQ》曾榮獲 2015 年 Steam 綠光最受歡迎的十大遊戲之一,以小男孩 Lloyd 在一場逼真惡夢中的冒險為主軸,遊戲營造了陰森、詭異的氛圍,在正式釋出之前就吸引了眾多玩家。
在歷經五年的長跑後,Wlad Marhulets 成功地將《DARQ》搬上了 PC、Xbox One、Xbox Series X、PlayStation 4、PlayStation5,以及最近的 Nintendo Switch 這幾個主要主機平臺。整個開發和搬運過程非常艱難,但 Marhulets 憑藉自己的韌性、樂觀精神、周圍好友及 Unity 的支援,終於與全球各種平臺的玩家分享了自己的作品。
與我們分享一下創作《DARQ》的故事吧,你是一開始就計劃把它搬到多個平臺上嗎?
Wlad Marhulets:我最初接觸遊戲開發是在 2015 年。那時我剛畢業,從事電影作曲的工作,有一次難得地出現了一個月的空檔期,於是我決定利用這段時間發展一個新愛好。在此之前我從未接觸過遊戲製作,在下載了 Unity 之後,我立馬入坑了,並在一個月後就完成了一個遊戲原型。
在一個朋友的鼓勵下,我做了一支預告片放到 Steam 綠光(Steam 的初創鼓勵計劃 Steam Greenlight)上。起初並沒有很高的期待,但《DARQ》出乎意料地成為了 Steam 綠光投票前十的遊戲,我當即決定把愛好當作事業來試一試。當時並沒有在遊戲主機上發售的計劃,一部分原因是我都不知道自己能不能做出個成品來,與我而言,所有東西都得從零學起。當然,這個過程是十分充實的。
這款遊戲花了 3 年半的時間完成,開發期間有多家發行商找上我,我都覺得不太合適,於是決定在 19 年自行發售,以 PC 玩家為主要目標玩家。直到 20 年我才遇到了合適的發行商,這才將遊戲搬上了主機。遊戲現在不僅支援 PC,還支援 Nintendo Switch、PS5、PS4、Xbox Series X|S 和 Xbox One,未來還將發售實體版。
為什麼選擇 Unity 來開發呢?
Wlad Marhulets:我曾經在為獨立遊戲《A Cat’s Manor》作曲時,很驚訝地發現這款高質量的遊戲完全由單人開發,這點讓我非常吃驚,也因此知道了 Unity。隨著《DARQ》開發的推進,官方詳細的程式設計教程和隨問隨答、親切友善的開發者社群給我提供了很大幫助。現在我正與一支頗具規模的團隊製作第二款遊戲,大家也都在用 Unity。Unity 引擎改變了我的生活,我是它的忠實粉絲。
你在為多平臺移植遊戲時,都遇到過哪些困難?
Wlad Marhulets:拋開技術問題不談,開發過程中最麻煩的一點是在全球疫情下的跨時區協作。我們團隊散佈在波蘭、芬蘭和加州,相互之間使用Slack聊天軟體來溝通、跟進專案進度。
另一個難題在於統一遊戲在各平臺上的觀感,因為各平臺的渲染方法有些許差異,最後我們還是手動調整了明亮度、對比度、色飽和度、色調以及光照。我們還遇到了由於浮點精度不同而造成的渲染瑕疵:比如一塊四邊形放在另一塊上方稍微偏移的位置,在 PC 端可以正確地渲染出來,但在主機上會出現閃爍現象。於是我們不得不通過手動調整位置來解決此類問題。
你為什麼決定將遊戲搬上 Switch?
Wlad Marhulets:Switch 是粉絲們呼聲最高的一個平臺,同時也是我自己在玩的主機。把《DARQ》搬上 Switch 是個順理成章的決定,也使我的夢想成真。
介紹下你的 Switch 移植經歷吧。
Wlad Marhulets:《DARQ》使用了大量的實時體積光、滿是 FMOD 音訊事件的音效、反向動力學和大型預製件,所有這些都需要時間載入。這些系統在高配置 PC 上可能不會造成效能問題,但在 Switch 上就不行了,我們必須找出新穎的優化方案才能讓《DARQ》流暢執行。
這裡最主要的挑戰是儘量在不犧牲畫面效果的前提下實現穩定的 30 幀。優化的大部分時間都花在了開銷“高昂”的體積光和陰影投射上。還有解決過多 FMOD 事件同時觸發產生的音訊瑕疵,遊戲裡的謎題不能在小屏上清楚顯示,必須要調整攝像機角度才行等問題。UI 也同樣需要調整,許多圖示和文字必須適當放大來方便玩家檢視。最後,為了迎合 Switch 的操作慣例,我們還修改了移植版的操作方式,把動作按鈕分配到了“A”鍵上。
你是怎麼解決這些挑戰的呢?
Wlad Marhulets:首先,我列出了幾個非必要的陰影投射物和體積光,為求原汁原味,我將兩者的數量刪去了約 25%。我還重新設計了 FMOD 的腳步音效系統,減少了執行所需的事件與音訊通道,原先包含多條音訊軌道的事件被壓縮到了一條軌道,除此之外還有很多關於音訊的優化。
在反向動力學方面,系統會在每一幀上執行,這在 PC 上並不會有什麼影響,但在 Switch 上,我們就要為不犧牲太多畫面效果而充分利用起 Switch 的硬體效能。在大型預製件方面(如整個關卡),我們採用了非同步載入的方法,並用一條進度條來跟蹤載入進度。所有這些,外加上降低精靈圖集解析度,實現了可觀的效能提升。
在移植過程中,有沒有讓你感到特別驕傲的技術成就?
Wlad Marhulets:讓《DARQ》可以在 Switch 上保留許多實時光源和陰影投射物,這些優化工作讓我感到特別驕傲。值得一提的是,《DARQ》內的幾何形並未作改動,這對一款以精美環境為賣點的遊戲意義巨大。起初我以為一定要減去模型的面數,結果卻不需要,模型仍舊保持著相同的細節程度。在所有移植版中,我敢說 Switch 版本在優化方面是最為出色的。
對那些想要移植 Switch 平臺的工作室,你有什麼經驗可以分享嗎?
Wlad Marhulets:主要有以下幾點:
首先,程式碼的結構必須要有條理,必須遵循一條命名規則。我移植時就因程式碼不連貫吃了苦頭。這個問題在大型專案中更常見,多名程式設計可能各為其主,做不到風格統一。同時,為了保證編輯器內的每個場景都能執行,我們要縮減註釋,用描述性語言來命名類、方法和介面的做法可以省去註釋,加快開發速度。為了避免出現有上千行程式碼的“巨無霸”,我們可以按邏輯拆分程式碼,儘量避免依賴(形成所謂的麵條式程式碼)。
其次,使用 Profiler 分析器分析紋理記憶體,用精靈圖集讓物件共享紋理。這種方法可以減少繪製呼叫,幫助實現穩定幀率。
最後,Switch 這類手持裝置體積較小,因此 UI 需要適當地進行調整,原先適用於 PC 的字型和 UI 需要重新調整大小。
如果讓你重來一次,有哪些地方的做法會不一樣呢?
Wlad Marhulets:我一定會更早地入坑 Unity!
不過說真的,我自覺非常幸運,一路上雖然犯了很多錯,但並不感到後悔,我從每一次錯誤中學到了很多。我做夢都沒有想到《DARQ》能有一天與《末日餘生 2》、《死亡擱淺》、《無主之地3》、《使命召喚:現代戰爭》等其他 3A 大作一起獲得提名。小島秀夫(主導開發了世界上第一款戰術諜報動作遊戲《合金裝備》,是全世界最知名的遊戲製作人及日本遊戲界的標誌性人物之一)是我童年的英雄,能與他競爭我雖敗猶榮!
我對每一位將《DARQ》推向成功的人都心懷感激,我要感謝的人實在太多了:感謝 Unity 團隊自始自終的支援,感謝 Scott Millard(Feardemic 的董事總經理)、Piotr Babieno(Feardemic 母公司 Blobber Team 的 CEO)和 Joni Lappalainen(Dreamloop Games 的 CEO)。
來源:Unity官方平臺
原文:https://mp.weixin.qq.com/s/xo9knVgeDstrH6eV9gvVSw
相關文章
- 《DARQ》開發者:我為什麼拒絕平臺獨佔?
- 如何搭建直播平臺?直播平臺搭建需要注意什麼?
- 在一款遊戲發售的背後,開發者到底經歷了什麼?遊戲
- 大資料分析平臺建設需要注意什麼大資料
- Charilaos Kalogirou:分享將iOS遊戲移植到Android平臺的注意要點iOS遊戲Android
- Linux系統是什麼?親身自學經歷分享Linux
- 《不可思議之夢蝶》專案從PC版移植到Nintendo Switch經驗分享
- 智慧經營平臺還能用來幹什麼?
- 分享我成為GDE(Google開發者專家)的經歷Go
- 一臺不能Switch的 Switch Lite,憑什麼要玩家買單?
- 手遊折扣平臺app排行前十 什麼平臺玩遊戲折扣大APP遊戲
- 【知識分享】什麼是伺服器租用需要注意什麼伺服器
- 面對遊戲移植,Switch的效能還有得“榨”嗎?遊戲
- 平臺是什麼
- 什麼是平臺?
- 微軟為獨立遊戲開發者提供平臺微軟遊戲開發
- 線上教育網站原始碼如何搭建網校平臺,需要注意什麼?網站原始碼
- 國內策略遊戲這20年來經歷了什麼?遊戲
- 堅決與惡意網站作鬥爭,分享實戰經歷(轉)網站
- 雲平臺分散式儲存池建立實施經驗分享分散式
- 智慧經營平臺到底是幹什麼用的?
- 自媒體全平臺運營需要注意什麼?這幾點很重要!
- 【知識分享】伺服器為什麼要測壓需要注意什麼伺服器
- 什麼是平臺工程?
- 跨行零實戰怎麼寫簡歷上的工作經驗
- 經驗分享:iOS平臺設計規範iOS
- Uber微服務實戰經驗分享微服務
- 分享:兩年兩度升級資料庫,我們經歷了什麼資料庫
- ubuntu移植到嵌入式平臺Ubuntu
- JVM筆記 -- JVM經歷了什麼?JVM筆記
- GM到GMP,Golang經歷了什麼?Golang
- 過來人分享:遊戲開發者創業需要注意的五件事遊戲開發創業
- 雲平臺是什麼?知名雲平臺有哪些?
- 想入職阿里的Java開發者必看,阿里巴巴面試官實戰經驗分享!阿里Java面試
- IGListKit 實戰經驗分享調研
- 雲平臺與架構應用實戰分享免費公開課架構
- TAPTAP憑什麼在眾多遊戲平臺中脫穎而出APT遊戲
- 平臺運維團隊面臨的主要挑戰是什麼?運維