網易開年第一款MMO,《天諭》手遊背後的技術究竟有多強?
在MMO表現技術不斷拉高標準的競爭環境下,網易選擇Unity作為《天諭》手遊的開發引擎,讓低端裝置也能實現雲層、海底、植被等資源的高效渲染,最終呈現出高品質的美術表現。此次採訪主旨為了解網易是如何利用Unity引擎功能,完成移動端美術技術的硬品質呈現。
以下為工作室的採訪分享,葡萄君整理:
能簡單介紹一下《天諭》手遊和它的開發背景嗎?
網易天諭手遊:《天諭》手遊由網易雷火遊戲事業部開發,目前旗下游戲主要為《天諭》端遊等MMORPG型別的產品。《天諭》端遊於2011年3月立項的,並於2015年6月正式上線運營,上線初期便打破了30萬人同時線上的記錄。目前端遊仍保持穩定長線運營,積累下一批核心玩家。
因此在2016年8月,我們決定正式立項《天諭》手遊,選擇Unity引擎圍繞「 日月生息」、「萬物有靈」、「一見傾心」和「肆意冒險」的設計思路,打造一款業界標杆級的MMORPG手遊。
《天諭》手遊是一款以東方幻想為主題的MMORPG遊戲,遊戲為玩家打造出能夠在雲海穿梭飛翔探索的世界,並且有豐富的職業選擇、高難度副本挑戰,以及高自由度捏臉系統,帶給玩家獨特的開放世界遊戲體驗。
《天諭》手遊已於2021年1月8日全平臺公測,我們期望遊戲能帶給玩家不一樣的遊戲體驗,同時也希望天諭IP能夠不斷壯大,帶給玩家更多不同型別的遊戲作品。
遊戲採用的無縫大世界是眾多亮點之一,可以分享下它的實現方式嗎?
網易天諭手遊:專案場景需求是大場景(2500 x 2500),遠視距(標誌物件2000米),場景豐富(日月升息, 萬物有靈,大量三級物件)。引擎原生的單場景機制會造成場景資源佔用記憶體過大,面數、drawcall壓力大,多圖載入耗時長等問題。
我們嘗試過使用引擎提供的多場景機制,遇到了一些難以規避的問題。不過在此基礎上,引擎也為我們提供了一些大場景的製作思路,並實現了大場景流式載入方案。
製作階段,我們給美術人員提供多人編輯工具,一個大場景可以分給若干人員,每人負責一塊。製作完成後合併為一個大場景進行打光烘焙,提升製作效率。
場景製作完成之後,我們會根據場景中物件的大小、類別、重要程度等資訊,給每個物件計算一個推薦視距,美術人員可以在此基礎上對特殊物件視距進行調整。
之後我們將大場景匯出成配置檔案和物件prefab,配置檔案裡面記錄每個物件的資源路徑、座標、旋轉、scale等資訊。這個過程中,我們會根據物件的視距,對它們做分層和分塊處理,並結構化儲存在配置檔案中,以提高執行時編輯場景物件的效率。
執行時,系統會根據主角位置的變化,去計算當前需要載入/解除安裝的物件,並分幀進行加解除安裝操作,以保證只有玩家周圍可以看到的物件在記憶體中,而離玩家較遠的物件可以及時解除安裝。
這樣就基本解決了前面提到記憶體佔用大、面數、drawcall高、切圖時間長等問題。在此基礎上,我們還做了一些其他工作,來優化流式載入中的效果和效能,包括:
- 遮擋剔除優化面數,drawcall
- Texture Streaming優化貼圖記憶體
- 機型適配, 畫質分級,整體縮放場景視距
- 使用LOD優化面數、記憶體
- 定製SRP Batch方案最優化渲染狀態切換開銷,優化drawcall開銷
- 場景靜態物件No GameObject化的優化例項化耗時
- 合理的快取和資源總量控制,優化記憶體和例項化耗時
- 採用Vulkan技術降低功耗開銷
遊戲中採用了Unity最新的DOTS技術的JobSystem多執行緒管理器來實現魚群的效果,可以分享下JobSystem的使用經驗以及使用前後的資料對比嗎?
網易天諭手遊:Unity的DOTS在多執行緒開發的易用性和安全性方面提供了保障,《天諭》手遊藉此開發了多種魚群生態行為和優化演算法,實現了40餘種、8000多條,不同魚群生態的海底效果。
我們在iPhone6s 單worker執行緒跑5000條魚的情況下,按照耗時能達到理論上250幀 ,在核心數更多的手機上,可以有更加優秀的效能表現。Unity的DOTS確實為更底層的效能提升提供了可能性,是一個革命性的技術。
以下是iphone 6s上5000條魚可以跑250幀的耗時分佈:
《天諭》手遊實現了對遊戲效能優化高要求的千人同屏玩法,可以分享一下專案組的效能優化經驗嗎?
網易天諭手遊:首先,我們要非常感謝Unity技術團隊每個月來專案組駐場,持續為專案提供效能分析和優化服務,畢竟優化這件事不是一蹴而就的。
群戰在客戶端上做過的的優化主要包括:
- 熱點程式碼(比如戰鬥邏輯、位置同步等)本地化,降低CPU消耗;
- 加入了特效分級和總量控制機制,限定同屏特效的數量和消耗;
- AI人數加入邏輯個數限制和模型顯示數量限制,以及模型LOD分級,從邏輯和渲染兩個方面控制人物消耗;
- 動畫邏輯制定了分幀和總量控制系統,減少瞬時卡頓;
- 合理的特效、動畫、角色模型等的快取邏輯;
- 實現遊戲動態解析度方案,自動根據特效的播放量進行解析度的動態改變,降低功耗。
遊戲中的次世代渲染技術也是一大亮點,手機端的雲海渲染方式可以分享下嗎?
網易天諭手遊:為了構建幻想的立體海天大世界,我們實現了很多次時代渲染技術。手機遊戲的渲染技術的難點是必須對所有已經在PC和主機上使用的渲染技術進行深度優化和方案改進。
比如雲海使用在手機上實現超高品質的可造型、可穿行、可隨24小時天氣變換的雲海效果。
首先,通過多張3D Texture儲存雲的形態,美術可通過模型和曲線的形式編輯雲海,實現任意造型。
我們使用Ray Marching做雲海的繪製。
為了流暢性,我們做了很深度的效能優化,比如使用Sphere Tracing降低步進、使用Jittering 解決取樣率不足的問題,使用Mixed Resolution Rendering降低Fragment的渲染開銷,使用TAA降噪。在萬米高空、層雲多疊、資源爆炸的情況下,在非常低端的手機上,依然可以流暢的體驗雲海效果。
TAA前:
TAA後:
海量魚群、海底水體以及超大規模植被的渲染工作,也是開發者比較關注的點,可以分享這些如何在Unity引擎中實現嗎?
網易天諭手遊:魚群渲染主要是採用Unity DOTS進行比較深度的效能優化,可以實現海量的魚群渲染。
海底的渲染我們通過模擬水體吸收光的特性,定製了特殊的霧效和螢幕後期處理方案。讓整體的色彩氛圍能夠符合水下的感受。
另外,海中還有很多特殊的光影效果,比如焦散、海面射入海底的光線散射、水中漂浮物。我們也實現了定製化的渲染方案,讓整體的海底氛圍感能夠得到比較好的表現。
超大規模植被的渲染主要的挑戰來自於渲染效能的壓力,我們幾乎每個大地圖都規劃大量的植被,比如蘇瀾的花海、盈川的草海。它的優化可以從幾個方面來做:
- 降低Overdraw開銷,一個是儘量減少PS的開銷,我們幾乎把所有的光影計算都放在VS來完成,這樣PS的開銷就特別小;
- 比較好的LOD方案,我們一般會做3級LOD,在切換LOD的時候做一定的隨機切換保證過渡的平滑性,通過LOD方案可以降低面數和Overdraw;
- 因為數量特別多,遮擋剔除也是需要按照塊來進行層級的剔除,這樣能夠減少遮擋剔除帶來的計算開銷;
- 另外,草海花海這種數量特別多的資源需要特殊的儲存方式來用最小的檔案大小來記錄每個草的位置和旋轉資訊。
你們是否考慮在移動平臺上加入光線追蹤的功能?
網易天諭手遊:我們會在遊戲後續的版本迭代中加入光追的功能,未來可以針對各類不規則表面的玻璃曲面、鏡面、盔甲、水面,實現非常真實的反射效果。
你們在為《天諭》手遊做引擎選型時,是如何考慮的?
網易天諭手遊:Unity具有非常好的開發者基礎,這讓我們可以快速在專案立項之初組建一隻經驗豐富的研發團隊。開發的過程中,Unity方便易用、迭代速度快,可以大幅降低大型遊戲的開發成本,並且成本可控。
新版Unity釋出了DOTS和SRP功能。DOTS是一個革命性的技術,對大規模的角色物件模擬提供了更深度的優化。SRP則提供了定製引擎渲染管線更便捷的方案,降低了很多我們渲染定製的工作量。另外SRP的渲染效能也比老的內建渲染管線有很大的提升,是一個非常有價值的技術。
其次,Unity中國區提供了全面的效能優化支援和技術美術支援,有一批固定的工程師長期跟隨駐紮在我們的專案現場。Unity官方在很多方面會提前給出開發建議,節約了專案組探索嘗試的時間成本。
這兩年Unity在工具鏈上也提供給開發者更多便利的開發工具,比如收集崩潰資料的Backtrace及自動化效能測試工具UPR,讓我們可以安心使用全套工具鏈,把精力放在開發高品質遊戲本身。
來源:遊戲葡萄
原文:https://mp.weixin.qq.com/s/9V9AvaCwtQeezXKNxjhbVA
相關文章
- 【轉載】《天諭》全新PBR技術曝光
- 「我在淘天做技術」雙11背後的營銷技術體系
- 背後支援著 Instagram 的開源技術
- 微博春晚背後的技術故事
- 網易《天諭》攜手Unity引擎,引爆高品質遊戲市場Unity遊戲
- Google DNS劫持背後的技術分析GoDNS
- 深挖谷歌 DeepMind 和它背後的技術谷歌
- JDV背後的技術-助力618
- 無人駕駛汽車背後的技術
- 瞭解Instagram背後的技術
- TGDC | 探索人臉藝術背後的技術
- Redis網路模型究竟有多強Redis模型
- 百度技術開放日即將開啟 揭祕春晚紅包背後的技術
- ChatGPT 背後核心技術的白話版ChatGPT
- 張鎮昌分享《天諭》手遊設計理念——迴歸RPG初心
- 崩潰的一天,西安一碼通崩潰背後的技術問題。
- ChatGPT強勢爆紅,背後的技術原理是?一文輕鬆搞懂!ChatGPT
- 在技術應用程式“強大”的背後,這是事物無盡的計劃
- EVE手遊聯動中國航天背後,藏著網易對“社會責任”的新思考
- 全球第一款UE4回合手遊背後,是一支死磕品類十幾年的團隊
- 視訊直播秒開背後的技術與優化經驗優化
- MMO手遊如何長期運營?網易《光明大陸》兩週年之際提供三點新思路
- 前端技術選型及背後思考前端
- 人臉識別背後:可怕的不是技術
- GIFTO背後區塊鏈技術的分類區塊鏈
- 滴滴AR實景導航背後的技術
- 揭祕.NET Core剪裁器背後的技術
- 詳解Windows 11背後的技術創新Windows
- 手遊多開檢測新招式,阻止手遊外掛滿天飛
- 上線即登免費榜TOP1 《天諭》手遊憑藉哪些差異化特色成為“開年爆款”?
- 7 天開發後臺系統技術小結
- 直播預告 | “大淘寶技術論壇”太好逛了,背後的技術分享
- 《青春有你2》全民pick背後的投票技術
- 聊聊人像摳圖背後的演算法技術演算法
- 《深空之眼》口型動畫背後的技術支援動畫
- 深入解讀Service Mesh 背後的技術細節
- 解析波士頓Handle機器人背後的技術機器人
- Facebook移動端照片預覽背後的技術