我們和米哈遊技術總監弋振中聊了聊《原神》在PS5上的技術追求
前不久,米哈遊推出了《原神》的PS5版本,這款產品也成了國內第一批登入PS5的遊戲。根據官方公開的資訊,《原神》主機團隊基於Unity引擎針對PS5的機能開發了遊戲的圖形庫、定製了檔案載入系統等,使得遊戲能夠在穩定性、畫面精度、表現力等方面再次拔高水準。
值得注意的是,去年11月米哈遊技術總監弋振中曾分享,在遊戲上線一年半之前, 主機平臺的開發僅有弋振中一人從零開始攻堅,但最終《原神》實現了PC、主機、移動多端同時上線的目標。而按照上線後開始籌備算起(事實上可能更早),PS4到PS5版本的跨越僅經歷了8個月左右的時間。
近期的一次採訪中,弋振中告訴葡萄君,能夠實現這個速度,一方面得益於整個專案的技術積累、團隊配合還有Unity官方技術團隊的大力支援,另一方面也需要針對開放世界跨平臺的命題,建立合理的製作思路和流程。
目前市場上,多端正在成為更多國內廠商的討論話題,甚至有不少大體量產品已經在制定類似原神的跨平臺策略。與此同時,如Unity的商業引擎也在不斷跟進跨平臺開發和次世代主機的技術趨勢,包括針對Xbox Series X和PS5平臺的開發。
據瞭解Unity最新版本已經支援如SSD、DualSense控制器、高階視訊模式等次世代主機新功能。此外,Unity也在與索尼積極合作,計劃將更多PS5新功能新增到下一個Unity版本,比如光線追蹤、虛擬紋理,共享二進位制包等。而且得益於遊戲引擎跟次世代主機平臺的同步開發,如米哈遊等廠商,也能更順利地在第一時間釋出次世代主機的遊戲。
當然除了滿足使用者和專案的追求,弋振中還透露,支援次世代主機對米哈遊還有另一層意義:與最新的技術發展趨勢接軌。如今,跨過這一門檻的《原神》,已經進入開發的奔跑期。
01、開放世界拼的是「技術全面性」
葡萄君:你是怎麼進入遊戲行業的?
弋振中:我大學時比較喜歡玩遊戲,大三的時候大家都在準備考研,而我看了一本叫做《Doom啟示錄》的書,講的是關於John Carmack(id Software聯合創始人、程式設計大神)的故事,這讓我覺得做遊戲很酷,於是開始學習遊戲程式設計。
研究生畢業之後,我到了育碧上海,當時加入了《End War》(末日戰爭,Xbox 360/PS3/PC)的專案,算是正式進入遊戲行業。後來輾轉加州的Zindagi Games、紐約的Avalanche Studios,以及西雅圖的微軟Xbox,2019年才回到國內。
葡萄君:回國以後為什麼選擇了米哈遊?
弋振中:之前的工作都是在積累技術,在微軟那段工作時間的後半段,因為職業規劃微軟給我進行了研發負責人的培訓,培訓之後就是帶專案,不過在微軟節奏慢一些,所以還沒帶過團隊。不過技術、經驗方面的積累已經夠了。
那時候覺得,如果有自己的團隊,或許能讓自己的能力放大,對專案的貢獻更高。然後在跟國內朋友的交流裡,我感到國內遊戲行業在不斷地變大,而且在國外也能時不時聽到國內公司的聲音。所以基於個人事業上面的考慮就決定回國發展。
不過在這之前我都沒關注過米哈遊,是朋友介紹才認識的。但接觸之後發現,一方面技術同事很踏實,而且很有激情,另一方面創始人蔡浩宇的個人魅力很強,有眼光、有魄力,所以聊完以後,我對米哈遊的印象立刻變得很好。
葡萄君:聊過幾次以後決定加入米哈遊的?
弋振中:兩三次,基本一拍即合。我也特別感謝公司的信任,畢竟把這麼大專案的主機開發交給我這種沒有帶團隊經驗的人。
葡萄君:你加入米哈游到《原神》上線只間隔一年半,要從頭把主機版做出來,這個挑戰有多大?
弋振中:時間確實緊,而且我們對質量的要求也比較高。但我們也有一個清晰的認識「不可能一步登天」,所以必須在力所能及的範圍之內追求更好,總體上壓力確實大。
策略上講,一開始的時候,我們的目標集中在幾個方面:第一,先把環境搭起來;第二,讓遊戲跑起來,除了要驗證自己的遊戲新加的功能,另外還要準備後面的ChinaJoy、TGS等等會展的內容;第三,組建團隊,因為不可能只靠我一個人來做這件事。
定好思路以後,就需要對專案各個方面瞭解清楚,快速制定一個規劃,再往後就是按部就班根據現有的資源制定優先順序,一步步去完成每個版塊的目標。
葡萄君:當時你對主機版的預期有多高?
弋振中:從純技術角度,不考慮市場和其他因素來說,我們的目標是達到平均水平以上的質量。說實話,《原神》的美術和各方面的表現都挺不錯,所以不希望主機版做出來以後在主機平臺上的表現拖後腿,所以更多想把一些好的東西融入進來,從而拔高遊戲品質。
葡萄君:剛開始搭建底層環境的時候,只有你一個人。
弋振中:是的。
葡萄君:你更傾向於招什麼畫像的人才?
弋振中:對一個技術人員,第一看重的是基本功。我們並不強求招多少年經驗的人,更多看你的工作經驗和你表現出來的能力是不是能夠匹配,以及你表現出來的能力,是不是能夠和我們的團隊契合,滿足我們的日常開發,當然有經驗更好啦。
另外,對於遊戲技術的熱情和對遊戲的熱情也很重要,我們非常歡迎來自全球的開發人員,我們團隊氛圍非常棒,大家都熱愛遊戲開發,願意互相學習,希望有更多的新鮮血液能加入我們。
葡萄君:不斷有人加進來以後,大家在不同階段怎麼配合?
弋振中:團隊搭建是個持續化的過程,人越多,想做的越多,就會永遠處於「發現有更多事情要去做」的狀態,所以一個人也要跑、十個人也得有十個人的做法。具體方式每個公司都會有自己的風格,從我們內部來說,就是一個優先順序和配合的問題。
經過考察以後,我制定了路線圖,會把遊戲階段性的目標、我們現有的資源和時間,以及能實現的功能和內容列出來,排好優先順序,由高到低去做。這時候人員、資源、任務都會不斷加進來,那麼就把沒有資源的任務,排到相對靠後的節點去做。
葡萄君:屬於偏傳統3A遊戲的模式?
弋振中:嚴格來說算是米哈遊獨有的風格吧。
葡萄君:現在團隊擴大以後,你自己的工作範疇有哪些變化?
弋振中:這涉及角色轉換的問題,我不再是一個單純的開發人員,尤其團隊規模大了之後,一個人要扮演多個角色。
首先,還是要寫程式碼;其次,我也會和美術團隊做溝通,來提升和監控美術的品質;再次,我還會和其他的團隊做溝通,因為我要負責監控整個主機平臺各方面的綜合品質;最後還會兼顧一些別的角色,比如像現在這種採訪,這也是一個新的角色。
雖然事情會變多,但扮演不同角色會獲得不同的視野,從不同的角度看待這個專案,對我個人來說也是一種提升。
葡萄君:技術團隊和其他團隊之間怎麼保證配合流暢?
弋振中:首先,感謝一下專案的各個團隊,大家都非常配合我們。本來像《原神》這種多平臺的專案,遊戲規模比較大,開發壓力也很大,而針對主機平臺的開發,相當於額外增加了很多工作量。
而且我這個人要求比較多,不停去建議能不能改這個,能不能改那個,但他們都很配合。所以換句話說,「凡是能夠提升遊戲品質的東西,大家都很願意配合」的意識,是團隊之間高效配合的一個關鍵點。
其次,我們很多溝通都是通過一個標準化、流程化的方式來進行的,這樣能夠大幅度減少溝通上的成本。《原神》的團隊規模很大,要做的東西很多,所以不可能每一件事情都當成特例來跟大家討論,那麼這些部分的問題,就儘量做到標準化、流程化。
比如不管是美術還是技術,要實現一個想法,都需要提出一個需求,然後經過稽核、評估、技術驗證、實現,最後驗收。這套流程也會隨著遊戲規模越來越大、團隊越來越複雜,而不斷地進化。
最後,PM團隊,他們是非常厲害的一幫人,他們在這中間會起到團隊管理,幫助大家改善團隊交流的角色。
02、「多平臺思維」將越來越重要
葡萄君:跨平臺開發會遇到哪些典型的困難?
弋振中:對於一個跨平臺專案,你在做很多東西的時候,都要有一個跨平臺的思想。
首先,看待專案開發的出發點,都要以跨平臺的角度去考慮。比如加一個功能,不是單純加一個東西、加一個feature進去,因為一旦涉及多平臺之後,開發的複雜度會成倍數地增加。
其次,除了做決策要考慮更多以外,後期也不能單純依靠人力來驗收。自動化配套的驗收機制也要跟上,這方面我們也是出於不停學習、成長的過程中。
葡萄君:大家都覺得做開放世界很難,從技術角度來說,具體難在哪兒?
弋振中:開放世界對技術全面性的要求更高,取巧的點更少。因為在玩法上,遊戲沒辦法限制玩家如何去玩這個遊戲,它不像一些傳統遊戲,可以用取巧的模式去做,比如知道玩家到不了某些區域,那麼資源上就可以節省,但開放世界就沒法這麼限制。
葡萄君:每個地方都要雕琢,所以才叫做技術的全面性。
弋振中:對,他的自由度會導致你必須考慮到更多的情況,然後因為不能取巧,所以開放世界需要的技術點,其實都擺的很明顯。那麼要做開放世界,首先就必須把該解決的問題全部解決;其次對我們來說,因為要走長線運營的模式,所以必須持續不斷地給遊戲做提升,給技術做迭代。
葡萄君:舉個例子來說,當你面對一個技術點的時候怎麼思考它的全面性?
弋振中:比如說我們對遊戲光影的改造,就像我之前分享的時候說,我們在主機上面相當於把整套光影重新寫了一遍。光影的改造一方面是技術的改造,一方面也是需要資源配合,這就涉及到多平臺的東西。
手機端也是需要有改造的,不過採取的技術路線和主機不一樣,但是製作資源的時候我們會盡量讓多平臺使用同一套資源,這些資源應該怎麼樣能夠通過我們各種各樣的配置、策略,來滿足不同平臺、不同技術對他的需求。這就是我們要思考的方向。
葡萄君:所有內容的製作都需要優先考慮多平臺的問題嗎?
弋振中:應該說技術實現層面、遊戲資源製作層面要更多的去考慮多平臺的差異性,在玩法上我們要保持一致性。比如要做一個玩法,那麼玩法不太需要考慮多平臺的問題,但要製作一些其他的素材,可能就得考慮,尤其是單純的畫面表現相關的資源。而重要的是在開發初期就要統一大家的多平臺思維,避免後期因為意見差異導致製作出問題。
葡萄君:這是主機版技術團隊和其他所有開發成員都要具備的思維?
弋振中:對,所有的人都需要具備多平臺的思維。而且今後跨的平臺會越來越多,多平臺思維的重要性也會越來越高。
葡萄君:多平臺思維會影響你們在立項時對引擎的選擇嗎?
弋振中:會,Unity的跨平臺做得挺好,因為它對平臺的支援很全面。Unity也是一個很靈活的引擎,不管是應用層面的靈活性還是底層的架構方面的清晰簡潔,都是能夠極大提升我們開發效率。這些方面都是我們在評估一個引擎的時候會去重點考慮的。同時,Unity團隊對我們的支援也非常積極。
葡萄君:這次《原神》推出PS5版本對整個團隊來說有多重要?
弋振中:從開發的角度講,增加一個新的平臺,首先是增大了工作量,但除此之外,對開發者來說,藉助這件事我們能更好地跟進遊戲技術的發展趨勢。因為,大量的海外遊戲開發人才主要的工作平臺還是主機,很多技術的迭代、發展、演化也出現在主機平臺上。《原神》跟次世代主機平臺接軌,對於我們今後更新技術、發展技術都有很大幫助。
葡萄君:PS5版大概籌備了多久?
弋振中:在《原神》上線以後,我們第一時間是修復了暴露出來的一些比較緊急的問題,版本穩定後我們就開始進行PS5的開發了。不過內部很早就決定要上PS5,整體也是一個逐漸規劃的過程。
葡萄君:相比PS4版本的開發,做PS5版本思路和挑戰有什麼不同?
弋振中:PS4到PS5的普遍挑戰是,如何更好地理解硬體,把它的特別性發揮出來,這也是我們長期規劃上的命題。
對《原神》自身來講,內容製作上沒有特別大的不同,但是從開發的角度來說,由於完全由我們自己來實現跨平臺,所以穩定性和完成度測試會更嚴謹,工作量也會更大,畢竟要確保它在面對玩家時是可玩的、不會因為各種Bug影響體驗。
葡萄君:簡單講講《原神》從PS4到PS5的開發過程吧。
弋振中:PS5的硬體為體驗《原神》提供了一個理想的平臺,這也是為什麼我們想要儘快將PS5版本帶給玩家。PS4版本穩定以後,一部分同時會繼續跟進現有的版本做迭代、開發、優化,提升穩定性,另外幾個同事跟我一起轉到PS5版本的開發。
第一步是把遊戲在PS5上的框架搭建起來,我們完整實現了遊戲對PS5平臺的支援,包括重做圖形庫、定製檔案載入系統。
第二步,更多開發成員會加入進來,針對PS5做大量的工作,包括大家看到的4K畫質、載入時間、細節表現、LOD和貼圖,以及一些特效的實現和針對PSN新功能的適配等等。
葡萄君:重做圖形庫的工作量具體有多大?
弋振中:開發的工作量確實不小。PS5的圖形庫和大家比較熟知的DX12、Vulkan相比更加底層,技術上除了要支援引擎、支援遊戲的各種圖形特性之外,還要做很多類似PC驅動層的事情。
比如PC的驅動層會進行資料保護,狀態跟蹤等工作,通過更保守的方式提高GPU的執行穩定性。而在PS5上和硬體的對話更加直接,這些東西全部要自己來做。要處理某項功能,就要收集各種各樣的狀態、資料,然後自己把這些資料組織好以後,再通過對PS5提供的底層API呼叫直接扔給PS5的硬體。
這樣的方式當然更加高效,但是也幾乎沒有保護。一旦資料不對,PS5就當場崩給你看。傳給硬體的這些資料的記憶體管理,資源回收,CPU/GPU同步也都需要自己完成。而且PS5才剛推出,配套的開發環境也並不成熟,需要自己琢磨的地方很多。
葡萄君:這麼誇張。
弋振中:對,所以PS5圖形庫的開發,需要對硬體的瞭解達到一定程度。當時我花了差不多兩個月的時間寫了第一版,再讓同事跟我一起debug和進一步完善。如果沒有圖形庫,遊戲畫面出不來,其他模組做好之後也沒辦法驗證,所以它的優先順序是最高的。由於圖形庫開發量確實比其他模組更大一些,那段時間我們壓力也比較大,容易掉頭髮。
葡萄君:定製檔案載入系統的考量又是?
弋振中:《原神》的開放世界,相比其他特定品類,載入上會吃虧一些,因為它不是線性的載入邏輯。所以縮短載入時間能有效提高玩家體驗,免去等待的過程。SSD本身的硬體特性就很強了,讀取非常快,我們再定製一個載入系統,就能夠更進一步放大它的特性。
難點在於我們遊戲執行時需要讀取的檔案往往分散而且比較小,所以就涉及「如何把讀取的命令有效地組織起來」的問題,讓硬體能夠更有效去發揮SSD的功能,載入得更快。與此同時,檔案快速載入進來時,CPU如何小心地處理這些檔案轉換成遊戲執行需要的資料,也是影響效能的一個因素。我們需要結合PS5提供的一套API來設計和實現我們的檔案載入系統。
因為開發量比較大,時間也緊,所以我們把檔案載入系統也放在了比較高的優先順序。而由於這個功能完全靠我們自己寫,在比較細節的地方,實現起來的自由度也更大,程式碼把控性也更高。
葡萄君:記得有玩家對比過,PS5版的平均載入時間是不到3秒,比PS4版快很多。
弋振中:可以做個對比,在PS5上用相容模式跑PS4版的《原神》,這個模式就會比PS4版自己跑快很多,而這更多是利用SSD硬體特性實現的。
如果再用相容模式和PS5原生版做對比,你會發現PS5版還能再快幾秒鐘,這幾秒換算成百分比,效能提升就非常驚人了。這也是我們覺得值得花精力定製檔案載入系統的關鍵。
其實最近1.5版本之後,我們又更新了一個1.51的補丁,會大幅度提升遊戲在PS4和PS5上的幀數、縮短載入時間、減少延遲響應,這些細節後續都會不斷優化。
03、永遠走在「追求品質的路上」
葡萄君:在之前的技術分享裡,你提到主機版的開發涉及大量技術上的取捨,做PS5版的時候呢?
弋振中:取捨的核心,就是我們在有限的資源下面,如何更好地去提升遊戲的品質,畢竟當時時間人力限制都大,不過即便時間和人力充足了,你始終會追求更高的品質,想做更好的東西。所以實際開發還是需要取捨。
一個比較新的例子是,PS5的光線追蹤和SSD特性是大家比較關注的地方。做PS5版時,我們希望玩家儘快玩到原生PS5版《原神》,這個前提下,我們認為光線追蹤如果要做,確實能對光影產生改變,但對於《原神》這個風格的遊戲,一定要讓技術融合到美術風格里。
如果僅僅把光追做出來,當成炫技放到遊戲裡,鑑於《原神》的美術風格以及我們需要投入的資源來看,很難在短期內對遊戲品質做到比較大的提升。所以我們會很慎重地對待光影的改造,會反覆跟美術磨合來決定如何做。尤其是對場景複雜的部分,這個迭代的時間會更長。因此我們決定不急於實現光線跟蹤,而是把有限的資源投入在價效比更高的地方。
相比之下,在資源有限的情況下,用定製化檔案載入系統能更好地發揮SSD效能,能夠提供更好的遊戲體驗,那就值得優先做。
葡萄君:還看到PS5版對LOD、材質精度都拔高了要求。
弋振中:畢竟開放世界需要更多的細節來填充,對我們來說,也希望《原神》的大世界在PS5上有更多的細節呈現。
於是我們增大了LOD,這確實會增加DrawCall,增加三角形的數量,會在CGU和GPU端都給我們帶來壓力。除了LOD以外,在PS5原生版上面,我們也是提升了場景、角色還有特效的貼圖精度,讓畫面顯得更加細膩、更加有質感。這些也會增加GPU的開銷,
但同時我們也在不斷優化、調整LOD策略,所以目前來看能保持一個平衡的狀態,後續也會持續優化,給玩家提供最好的遊戲體驗。
葡萄君:你們在PS4版本就對渲染管線做了很多改造,PS5版本有新的改造嗎?
弋振中:目前我們基本沿用了PS4版本的渲染管線,因為這些放到PS5上也能夠滿足遊戲大部分情況下的畫面表現。不過因為PS5有更強的硬體效能,所以我們在後續也會不斷對整個渲染管線做提升,嘗試做出更好的畫面表現。
葡萄君:相當於PS5版本也是搭建好第一步的框架。
弋振中:對,現在就是剛開始的階段。PS5版本只是一個開始而已,《原神》是長線運營的遊戲,所以後續還會推出更多新的特性。
葡萄君:這次PS5版本里,你個人最喜歡的部分是什麼?
弋振中:除了快速載入,慶雲頂的體積雲特效,我也比較喜歡,如果仔細些,還能看到其他一些地城裡也用到了類似的技術。慶雲頂的特效經過畫質的提升和效能的優化,所以在畫面表現足夠好的同時,在PS5上開銷也比較少。既能提高畫面表現,又不用對效能做太大妥協,這就很棒。
葡萄君:慶雲頂特效做起來有挑戰嗎?
弋振中:相對還好,當然它也用到一些比較巧妙的思路,尤其是優化方面,細節上今後再找機會具體分享。
葡萄君:什麼情況下你們會挑戰技術的上限和新的技術點?
弋振中:《原神》畢竟是一個上線的專案,最高優先順序一是提高遊戲穩定性和效能表現,另一個是給玩家更多的內容、提高遊戲可玩性。所以在考慮問題的時候,這兩點都會作為前提,擺在很重要的位置,這個基礎上要加什麼東西,就看各個團隊的需求,如果有就走流程去實現。
葡萄君:那麼你目前比較關心哪些技術發展趨勢和新的動態?
弋振中:PS5版相對而言,因為時間緊張,主要是我們自己在做,長期來看,Unity的新技術我們肯定都願意學習,包括2020和2021的很多新特性,比如新的地形系統、後處理方面的改進、資產管理的系統性改進等等。
我之前跟Unity美國團隊交流的時候,也對這些部分比較感興趣,他們對未來遊戲技術發展趨勢的見解也很受用。
葡萄君:現在各家廠商的技術競爭都在加劇,你對這個趨勢的感受是?
弋振中:競爭帶來的技術進步肯定是一件好事情。我們整個團隊都非常熱衷於去了解新的技術,提升自己,這是一個持續的過程,我們也希望其他的公司團隊能夠跟我們多做交流。
葡萄君:如今開放世界產品越來越多,你們會有被追趕的壓力嗎?
弋振中:我們的重心還是在服務團隊想法的方向上,更多的壓力還是來自於「如何滿足大家的需求」。
葡萄君:很多廠商會覺得米哈遊的技術壁壘很高,你怎麼看技術壁壘?
弋振中:就我們團隊而言,大家並沒有太關注技術壁壘這件事情,思考更多的是「作為一個技術開發團隊如何更好地服務遊戲專案」。我們提升技術、瞭解新技術發展的意義還是在於,讓公司這幫很喜歡遊戲、喜歡製作遊戲的同事,能夠更少的受到技術的束縛,更自由地去發揮,做更好玩的遊戲。
來源:遊戲葡萄
原文:https://mp.weixin.qq.com/s/5n8n1TqQlyAj4XpxVONt4Q
相關文章
- 米哈遊弋振中:從手機走向主機,《原神》主機版渲染技術分享
- 《原神》技術總監弋振中:怎樣製作一款暢銷全球的跨平臺遊戲?遊戲
- 當我們在聊 RN 時,我們在聊什麼 | 技術點評
- 找公司 CTO 聊了聊,原來技術總監需要這些能力!
- 我們是否應當剋制對新技術的追求?
- 新來個技術總監,禁止我們使用Lombok!Lombok
- “我是技術總監,你幹嘛總問我技術細節?”
- 反思~我們是否應當剋制對新技術的追求?
- 我們和《魔獸世界》遊戲總監聊了聊正式服的現狀和未來遊戲
- 技術總監
- 是我們控制著技術,還是技術控制著我們?
- CTO、技術總監和技術經理有啥區別?
- CTO,技術總監和技術經理有啥區別?
- 技術總監和CTO的區別(一)
- 學技術我們其實在學什麼?
- 如何打造一款火遍國內外的自走棋手遊?我們跟《戰歌競技場》的美術和程式聊了聊
- 今年 Build 大會,我們就想跟開發者單純地聊技術UI
- 當我們說要繼續做技術,我們在說什麼?
- [譯] 我們採用 GraphQL 技術的經驗:營銷技術活動
- 我們來聊聊技術債務
- 技術管理進階——技術總監的第一要務
- 戴爾技術總監:虛擬技術將解放Linux(轉)Linux
- 雲端計算技術便捷我們的工作
- 我拒絕參加你們的技術面試面試
- 我們Pikacode公司的技術選型
- websocket技術,實現單聊和群聊Web
- 你不懂技術,如何領導我們
- 這家被Google收入麾下的獨立遊戲團隊,我們在深圳跟他們聊了聊Go遊戲
- 現如今的技術浪潮中,我們到底該做些什麼?
- 歡迎加群,聊副業、聊技術
- 就聊聊不少小IT公司的技術總監
- 關於自然語言對話的技術挑戰和應用前景,來自這六大廠的一線技術負責人聊了聊
- 我的技術心病
- 快速技術成長:提煉和總結專案中的技術重難點
- 我們為什麼要技術寫作
- 我們應該如何對待技術信仰?
- 測試設計技術 - 我們需要嗎?
- 專訪騰訊北極光技術總監:自研引擎11年,我們只想創造「震撼」