專訪網易Messiah自研引擎領銜者:“做真正made in China的遊戲”
本文轉載自“網易遊戲互娛校園招聘”
近期,遊戲引擎或將成為“下一個時代全世界最重要的底層工具之一”、“大國科技競爭另外一個關鍵技術”的說法一直保持著比較高的熱度,有人搖旗高呼“務必要抓住這個技術突破口”,也有人沮喪發言,認定“中國無自研引擎”,或“中國自研引擎實力太弱”。
本篇專訪邀請到網易Messiah自研引擎領銜者&網易互娛首席遊戲軟體設計專家趙鈺琨,希望通過對幾個核心命題的討論與交流,嘗試對“自研遊戲引擎”這回事做初步探討:
既然市面上已經有好幾款相對比較成熟的、大家覺得“好用”的商用引擎了,網易為什麼要“吃力不討好”再去做自研遊戲引擎?
數十年如一日地“吃力不討好”,意義在哪裡?
網易的自研引擎目前是怎麼樣的技術水平?未來何去何從?
以下是經過整理的採訪內容:
一、研發綜合實力的強橫,與巨大的技術沉澱
您有看到過最近討論度還挺高的“遊戲引擎或將成為‘下一個時代全世界最重要的底層工具之一’、‘大國科技競爭另外一個關鍵技術’”的說法嗎?
趙鈺琨:有看到過。從我自身的經歷和經驗來看,遊戲引擎不單只是代表了我們單純做遊戲產品的工業化實力,更重要的是,遊戲工業是整個影視工業和網際網路服務業結合的結晶,影視工業代表了離線計算的品質,網際網路服務代表了即時計算,要在實時的苛刻條件下提供無限接近於影視高質量的視覺聽覺綜合體驗、還是互動式的,這樣對技術的要求是非常高標準的。
能創造和研發出遊戲引擎,代表著研發綜合實力的強橫,也同時意味著有巨大的技術沉澱。
往近說工業化4.0有很多需要實時模擬模擬進行虛擬化深度學習的遊戲引擎運用場合,比如自動駕駛技術用虛擬世界進行學習,可以在遊戲引擎中同時模擬上百萬量車的自動駕駛狀況,而AI在這個情境下進行學習效率更高,還不需要真實的汽車和道路。往遠處說,祖克伯曾經推崇一本科幻小說《安德的遊戲》,內容講的是未來人類用遊戲訓練青少年控制和外星人戰鬥的飛船,最終打敗蟲族的故事,雖然聽起來很中二,但未來用AI或者遊戲模擬進行戰鬥及國防研發的可能性巨大。而遊戲引擎的研發提供了這種基礎工業的可能性和預先的技術儲備,是必不可少的。
所以圍繞著遊戲引擎研發所需要的圖形、物理、網路、AI、軟體硬體等一切技術,以及這些技術能無縫相容在一個框架內進行合作、融為一體,這種技術沉澱對未來科技競爭是非常關鍵的。
這些技術是核心,是命脈,不能寄望於別人、不能買、不能借、不能依託於開源或者授權,更不能被別人卡脖子,要牢牢掌握在我們自己的手裡,要能徹底地為我們自己所用,以發揮這些技術最大的威力。
堅持要做自研,這種想法是因為什麼契機產生的呢?
趙鈺琨:我最早在學習程式設計的時候其實有這樣的一個感覺,前面有很多非常聰明的、非常偉大的電腦科學家,他們發明了各種演算法、寫出了各種很牛的軟體。剛開始學習做離線渲染的時候,我接觸到了比如Ed Catmull發明的Stochastic Sampling演算法,以及他在Pixar研發的PhotoRealistic RenderMan這個渲染器,他們寫得非常棒。當時我問了自己一個問題:大家都是人,為什麼別人能寫出來我們寫不出來?我很強烈地覺得不服氣,既然人家可以做得那麼好,我們也是可以寫出(優秀的軟體)來的。所以我整個大學階段都在做一件事,就是嘗試寫一個能和RenderMan一較高下的離線渲染器。
後來我到了網易遊戲,我開始接觸遊戲引擎。在立項做這個自研引擎的時候,我們的想法就是,人家3A遊戲能做到跨平臺的、全平臺的、頂級的引擎,我們也都可以做到;人家能夠做到實時的、全域性光實時的動態全域性光,我們也都能做到;而且我們要做得更好、在更短的時間內做得比他們好。
簡單來說就是有點“不認輸”。
趙鈺琨:對,是這個意思沒有錯。我自己實際上也是一直在貫徹這個觀點,去推動網易的技術發展。在這個開發的過程裡面我覺得比較有意思的是,我們不斷地去挑戰,不斷地去努力,希望可以和那些已經站在頂尖的人們站在一起。
我們從用一個非常簡陋的demo在飯桌上用iPad mini 2給丁老闆演示、直到現在能夠支援上十數款產品在研發運營、乃至有《暗黑破壞神:不朽》這樣的世界頂級的、史詩級的專案採用的自研引擎,我一直貫徹Messiah每一行程式碼都是我們自己寫出來的,每一個功能都是我們親手製作研發打磨出來的。我們的這種不服氣、不認輸貫穿了整個研發過程的始終。
我希望同學們能加入到我們這樣的一個企業,在這樣的一種研發氛圍裡面,也能做出自己的東西,通過自己的能力去敢挑戰世界頂尖水平。
世界頂尖不是說要掛在嘴巴上,而是要做出來。
就網易自身而言,包括我們之前的《一夢江湖》《荒野行動》《王牌競速》,以及現在已經即將全球上線的《暗黑破壞神:不朽》,都已經能夠和世界頂尖的產品站在一起,依靠的也是我們自己一個字元一個字元敲出來的程式碼。
大概在2017年開始,我們陸陸續續有非常多的機會和各種世界頂尖研發團隊進行交流,甚至還有機會和業界傳奇遊戲歷史銷量前三製作人、第一個提出Deferred Shading的大牛、第一個提出Cascade Shadow Map的大牛這樣站在遊戲世界之巔的人進行對話,我自己感觸良多。
跟他們交流,給他們看到我們的技術,獲得他們的尊重、認可和讚許,他們還主動邀請我們進行更多更深入的溝通,甚至還有頂尖國外的製作人三番四次地想獲得使用我們引擎的授權來進行新遊戲的研發,我深切地感受到我們的技術真的開始摸到了世界頂尖水平。
二、“如果自己不革自己的命,別人就會來革你的命”
聽說Messiah每半年就要做一次大的系統重構,其中會涉及到不小的工作量吧?
趙鈺琨:自2014年以來,至今Messiah經歷了8年的持續研發迭代,成為一個橫跨移動、桌面、主機的全平臺次世代遊戲引擎,至2022年完成了8款大型產品的研發工作。目前正在研發的產品達數十款,涵蓋MMO、FPS、TPS、ARPG、賽車、體育競技等多個遊戲品類,引擎支援iOS、macOS、安卓、PC、Linux、PS4/PS5、Switch、XBox等幾乎所有的遊戲平臺。
架構與效率一直貫穿於整個引擎開發工作,我們相信良好的架構能提供足夠高的執行效率以及良好的擴充套件伸縮性。我們深信——“如果自己不革自己的命,別人就會來革你的命”,所以我們一直貫徹一個開發規則,每半年左右必須全面更新一個大型子系統框架,架構是引擎發展的命根子。
那這幾年裡,Messiah大概都經歷過哪些迭代變化呢?
趙鈺琨:大概2007年,在我最早剛剛開始構思和設計Messiah雛形的時候,PC業界正開始面對摩爾定律的“失效”,即晶片頻率的提升遇到瓶頸,Intel開始向多核心CPU發展,在超執行緒技術加持下平行計算日益提上議程。
我在剛剛加入網易的時候有幸參與了當時的一個XBox 360開發課程,其中一個很有趣的點就是360的CPU在安排計算指令的時候需要“湊”一對兒一對兒的指令,以加大並行度,否則單條計算指令會降低PowerPC晶片的效率。這個是我之前沒接觸過的領域,讓我大開眼界,也給了我靈感。後來我看到x86平臺也開始有這樣的趨勢,我深刻的感受到多核心計算一定是未來的重中之重,於是我理想中的遊戲引擎的樣子,應該是一個天生並行的架構,應該是一個像現實世界一樣多執行緒的架構,而不是傳統遊戲引擎——順序逐一更新計算——的架構。
為什麼是多執行緒?
趙鈺琨:Messiah剛研發的時候是2013年左右,當時是移動遊戲剛剛開始爆紅的時候,所有人都開始關注移動遊戲,所以大家都覺得要針對當時的移動晶片進行開發,要根據當時的移動平臺來設計。但是我斷定移動平臺必將走過PC平臺的每一步,將會復刻PC平臺的發展,包括CPU和GPU,他們將在很短的時間內變得一模一樣。所以我堅持Messiah的移動平臺版本也需要做多執行緒,多核心優化。在我們多執行緒剛出來的時候,不少人嘲諷,說我們不懂移動平臺,說Messiah的多執行緒架構一定會死得很難看。後來恰恰相反,更短時間內更高效率的計算、以及多核心分攤計算成本反而能降低核心頻率從而降低功耗,Messiah在移動平臺上出色的效率及功耗控制贏得了很多專案的良好口碑。
在2017年我們成功推出了《天下手遊》和《楚留香》(後更名為《一夢江湖》)以後,Messiah的架構迭代並沒有停止,我認為我們需要更進一步的推動架構發展,需要為5年甚至10年以後的產品打基礎做準備,於是我們又進一步的重構了整個多執行緒體系;2018年我們在支援了《荒野行動》這種可以做到無限大世界的遊戲架構以後,重構了整個渲染管線,引入了Frame Graph系統——比Unreal引入這套系統提早了兩年;2020年我們又再次大規模重構了多執行緒渲染系統,在PC上效率提高了10倍;2021年我們推出了Frame Graph 2.0;2022年我們迭代了多執行緒架構專門優化了大小核心排程,等等等等。
技術難度上,挑戰大嗎?
趙鈺琨:這些不斷一次又一次的近乎全面的重寫,非常困難,也很痛苦。指出別人的不足、糾正別人的錯誤是很容易的,很輕鬆的;推翻曾經的自己、否定曾經的自我是最困難,也是最痛苦的。但是我們就在這些一次又一次的自我否定中,伴隨著引擎技術的成長,我們引擎研發人員的知識、技術、經驗、得到了一次又一次的提高和昇華。不斷的挑戰和戰勝自己,是世界上最有意思的事情。現在我覺得戰勝別人沒什麼值得高興,戰勝自己才是最值得高興。
而在實際的重構工作中最最最痛苦的就是歷史遺留問題,但是我們一直堅持務必解決歷史遺留問題,不做任何妥協,一定要妥善處理。至今我們所有的產品都能順利的升級到引擎的最新版本,包括最早採用Messiah引擎的《天下手遊》。而且我們承諾絕不放棄任何一款產品,都一直支援他們的升級。給產品灌注生命力也是維持引擎成長的最大動力。若是產品不再升級引擎了,就證明引擎失去了和產品同步發展的優勢。
團隊內部怎麼看待這樣的架構迭代?
趙鈺琨:其實剛剛有提到,我期待的工作狀態,絕不是一個自己認為“還可以”的狀態,當然,這也是很多做技術的同學都天然會有的追求。如果你選擇程式設計師作為你的終身職業,然後進入到這個行業,以及進入到網易這樣的一家以自主研發為主的公司,我認為每一個同學更需要關注自己的一些能力,比如說學習能力。學習是非常重要的,它會貫穿你的整個職業生涯。我們不只是需要學習像學校裡面的一些理論知識,更重要的是要學習怎麼樣去做一個產品,怎麼樣去讓一項技術落地,然後怎麼樣去接觸新的東西,因為技術本身就是不斷在更新和迭代的。然後去把這些技術運用到我們的產品上面去產生具體的價值,然後讓所有人去享受到、玩到這些技術。
同時在研發Messiah的過程裡,我體會到最大的感悟並不是單純的技術,而是研發引擎這個過程,最重要的,並不是僅僅產出一個產品、一堆程式碼,最重要的是這個研發過程培養了一個團隊、一系列技術專家、沉澱下來了一個良好的技術研發環境氛圍。
隨著引擎研發成長的人,是網易遊戲引擎團隊中最大的碩果,人比程式碼重要、比產品重要,有人才有這些可能性,程式碼自己不會成長,人會;程式碼不會自己變強,人會;程式碼不會自己進化,人只要給與足夠的空間和機遇,給養分,給時間,給試錯的機會,給動力,給回報,成長的空間是沒有止境的。我們研發引擎一開始的初衷是為了解決技術短缺,後來逐步的變成解決人才短缺,再後來變成了我們培養了一個正向迴圈,一方面引擎的研發環境促進人成長、變強,另一方面人才變強了又促進迭代原有的引擎技術,讓引擎變得更先進。
所以團隊內部能達成這個迭代的共識,大家都明白迭代是引擎的成長過程,也是自己的成長過程。不斷的推翻和重建,讓程式碼更強大、讓技術更先進、也讓自己進步。不是一日復一日的重複勞動,而是不斷推翻殘舊的自我。當然我們也經歷了一個過程,一開始痛苦、煩躁,明明做好了的東西,還要再來一次,然後慢慢接受,也主動去思考哪裡做得不夠、再推翻、再重構——變得更好。
三、做真正made in China的中國遊戲
你自己會怎麼定位Messiah這款引擎?
趙鈺琨:可以說,Messiah是網易在技術突破上第一次野心勃勃的巨大嘗試,也是國內軟體研發歷史上一個巨大複雜軟體成功研發的里程碑。
遊戲引擎的複雜度、耦合度、廣度、深度,都決定了它是除了作業系統以外,其中一種最複雜的軟體。其對執行效率有極端苛刻的要求,對前沿技術的落地注重、對產品直接支援面向使用者、同時也承接整個產業的工業化,同時面對使用者和生產者,既要執行時效率非凡也要生產時易用耐用。一方面既要達到宣傳片裡的頂級畫面、也要在伸縮性上考慮極廣泛的使用者裝置寬度。我認為這是極其苛刻的研發指標,僅亞於帶圖形使用者介面的作業系統。
這是第一次網易從零開始規劃一個面向十年甚至二十年後的引擎。在規劃的時候就提出需要從最底層開始解決根本性技術難題,並且貫徹始終,一直沒有偏差的執行研發戰略的引擎研發專案。我們在第一行程式碼寫下來的時候就堅持跨平臺、原生多執行緒、併發執行、支援儘可能多的圖形API和作業系統、向主機看齊向移動相容,務求一次研發所有平臺都能跑起來一模一樣。這種理念現在看起來是理所當然,而我最早構思Messiah的時候是2007年,成立專案的時候是2014年,當時這是大逆不道的破天荒的想法。很幸運我們堅持並一路走下來了,而且能做得到。今年是2022年,8年過去了這個規劃看起來還剛剛能滿足目前的需求,證明我們8年前的想象力也僅僅足夠支撐至今,所以接下來我們需要更大膽、更具有想象力的規劃,去憧憬下一個8年後的未來。
同時Messiah也是一個非常極端的敏捷軟體開發的產物,在研發的同時就開始供應給在研專案,相互促進。我們堅持精兵簡政策略,堅持只採用極少量的頂尖研發人員、進行極高的迭代效率、以及非常迅速的響應,在很短的時間內支援了大量專案的開發、上線、運營。依靠的是相信技術、相信科學,一切問題用技術手段解決,儘量不留技術空白,歷史問題當下解決。快速開發,快速迭代,快速驗證,天下武功,唯快不破。
在你看來,Messiah和市面上的商業引擎最大的區別體現在哪裡呢?
趙鈺琨:們和商業引擎是有非常大的不同的,首要的便是,自研引擎專注對內,所以我們很偏執地追求執行效率,只有執行效率和能耗指標遠高於商業引擎,才能抵禦體量龐大的商業引擎。俗話說船小好掉頭,我們在採納新的技術架構上、以及適應新的硬體上,響應速度遠超商業引擎。在一些核心問題的修改上,我們的決策速度也遠比商業引擎快、準、狠,所以Messiah最大的特點是,執行快、響應快、變化快。
當然,雖然Messiah研發即將走進第九個年頭,已經從一個簡陋的demo飛速成長為有能力支撐世界級品質、全平臺發行的大型遊戲開發的成熟自研引擎,但我們也承認,Messiah至今依然有大量的不足,我們每天仍然面對很多反饋、很多珍貴的製作需求。我們團隊中的每一個成員都正在努力改進,努力進步,希望有一天,屬於我們自己的引擎能夠矗立在世界遊戲技術之巔,大家能用上世界最頂尖的技術——我們自己開發出來的技術。
近期,遊戲引擎或將成為“下一個時代全世界最重要的底層工具之一”、“大國科技競爭另外一個關鍵技術”的說法一直保持著比較高的熱度,有人搖旗高呼“務必要抓住這個技術突破口”,也有人沮喪發言,認定“中國無自研引擎”,或“中國自研引擎實力太弱”。
本篇專訪邀請到網易Messiah自研引擎領銜者&網易互娛首席遊戲軟體設計專家趙鈺琨,希望通過對幾個核心命題的討論與交流,嘗試對“自研遊戲引擎”這回事做初步探討:
既然市面上已經有好幾款相對比較成熟的、大家覺得“好用”的商用引擎了,網易為什麼要“吃力不討好”再去做自研遊戲引擎?
數十年如一日地“吃力不討好”,意義在哪裡?
網易的自研引擎目前是怎麼樣的技術水平?未來何去何從?
2020年,網易自研引擎Messiah推出世界遊戲業領先的全平臺動態全域性光方案,並已獲得專利
以下是經過整理的採訪內容:
一、研發綜合實力的強橫,與巨大的技術沉澱
您有看到過最近討論度還挺高的“遊戲引擎或將成為‘下一個時代全世界最重要的底層工具之一’、‘大國科技競爭另外一個關鍵技術’”的說法嗎?
趙鈺琨:有看到過。從我自身的經歷和經驗來看,遊戲引擎不單只是代表了我們單純做遊戲產品的工業化實力,更重要的是,遊戲工業是整個影視工業和網際網路服務業結合的結晶,影視工業代表了離線計算的品質,網際網路服務代表了即時計算,要在實時的苛刻條件下提供無限接近於影視高質量的視覺聽覺綜合體驗、還是互動式的,這樣對技術的要求是非常高標準的。
能創造和研發出遊戲引擎,代表著研發綜合實力的強橫,也同時意味著有巨大的技術沉澱。
往近說工業化4.0有很多需要實時模擬模擬進行虛擬化深度學習的遊戲引擎運用場合,比如自動駕駛技術用虛擬世界進行學習,可以在遊戲引擎中同時模擬上百萬量車的自動駕駛狀況,而AI在這個情境下進行學習效率更高,還不需要真實的汽車和道路。往遠處說,祖克伯曾經推崇一本科幻小說《安德的遊戲》,內容講的是未來人類用遊戲訓練青少年控制和外星人戰鬥的飛船,最終打敗蟲族的故事,雖然聽起來很中二,但未來用AI或者遊戲模擬進行戰鬥及國防研發的可能性巨大。而遊戲引擎的研發提供了這種基礎工業的可能性和預先的技術儲備,是必不可少的。
(圖片:網路)
所以圍繞著遊戲引擎研發所需要的圖形、物理、網路、AI、軟體硬體等一切技術,以及這些技術能無縫相容在一個框架內進行合作、融為一體,這種技術沉澱對未來科技競爭是非常關鍵的。
這些技術是核心,是命脈,不能寄望於別人、不能買、不能借、不能依託於開源或者授權,更不能被別人卡脖子,要牢牢掌握在我們自己的手裡,要能徹底地為我們自己所用,以發揮這些技術最大的威力。
堅持要做自研,這種想法是因為什麼契機產生的呢?
趙鈺琨:我最早在學習程式設計的時候其實有這樣的一個感覺,前面有很多非常聰明的、非常偉大的電腦科學家,他們發明了各種演算法、寫出了各種很牛的軟體。剛開始學習做離線渲染的時候,我接觸到了比如Ed Catmull發明的Stochastic Sampling演算法,以及他在Pixar研發的PhotoRealistic RenderMan這個渲染器,他們寫得非常棒。當時我問了自己一個問題:大家都是人,為什麼別人能寫出來我們寫不出來?我很強烈地覺得不服氣,既然人家可以做得那麼好,我們也是可以寫出(優秀的軟體)來的。所以我整個大學階段都在做一件事,就是嘗試寫一個能和RenderMan一較高下的離線渲染器。
(RenderMan渲染效果圖 | 圖片:網路)
後來我到了網易遊戲,我開始接觸遊戲引擎。在立項做這個自研引擎的時候,我們的想法就是,人家3A遊戲能做到跨平臺的、全平臺的、頂級的引擎,我們也都可以做到;人家能夠做到實時的、全域性光實時的動態全域性光,我們也都能做到;而且我們要做得更好、在更短的時間內做得比他們好。
簡單來說就是有點“不認輸”。
趙鈺琨:對,是這個意思沒有錯。我自己實際上也是一直在貫徹這個觀點,去推動網易的技術發展。在這個開發的過程裡面我覺得比較有意思的是,我們不斷地去挑戰,不斷地去努力,希望可以和那些已經站在頂尖的人們站在一起。
我們從用一個非常簡陋的demo在飯桌上用iPad mini 2給丁老闆演示、直到現在能夠支援上十數款產品在研發運營、乃至有《暗黑破壞神:不朽》這樣的世界頂級的、史詩級的專案採用的自研引擎,我一直貫徹Messiah每一行程式碼都是我們自己寫出來的,每一個功能都是我們親手製作研發打磨出來的。我們的這種不服氣、不認輸貫穿了整個研發過程的始終。
我希望同學們能加入到我們這樣的一個企業,在這樣的一種研發氛圍裡面,也能做出自己的東西,通過自己的能力去敢挑戰世界頂尖水平。
世界頂尖不是說要掛在嘴巴上,而是要做出來。
就網易自身而言,包括我們之前的《一夢江湖》《荒野行動》《王牌競速》,以及現在已經即將全球上線的《暗黑破壞神:不朽》,都已經能夠和世界頂尖的產品站在一起,依靠的也是我們自己一個字元一個字元敲出來的程式碼。
大概在2017年開始,我們陸陸續續有非常多的機會和各種世界頂尖研發團隊進行交流,甚至還有機會和業界傳奇遊戲歷史銷量前三製作人、第一個提出Deferred Shading的大牛、第一個提出Cascade Shadow Map的大牛這樣站在遊戲世界之巔的人進行對話,我自己感觸良多。
跟他們交流,給他們看到我們的技術,獲得他們的尊重、認可和讚許,他們還主動邀請我們進行更多更深入的溝通,甚至還有頂尖國外的製作人三番四次地想獲得使用我們引擎的授權來進行新遊戲的研發,我深切地感受到我們的技術真的開始摸到了世界頂尖水平。
新時代的3D手遊引擎Messiah帶來《一夢江湖》豐富而自由的捏臉3.0時代
二、“如果自己不革自己的命,別人就會來革你的命”
聽說Messiah每半年就要做一次大的系統重構,其中會涉及到不小的工作量吧?
趙鈺琨:自2014年以來,至今Messiah經歷了8年的持續研發迭代,成為一個橫跨移動、桌面、主機的全平臺次世代遊戲引擎,至2022年完成了8款大型產品的研發工作。目前正在研發的產品達數十款,涵蓋MMO、FPS、TPS、ARPG、賽車、體育競技等多個遊戲品類,引擎支援iOS、macOS、安卓、PC、Linux、PS4/PS5、Switch、XBox等幾乎所有的遊戲平臺。
架構與效率一直貫穿於整個引擎開發工作,我們相信良好的架構能提供足夠高的執行效率以及良好的擴充套件伸縮性。我們深信——“如果自己不革自己的命,別人就會來革你的命”,所以我們一直貫徹一個開發規則,每半年左右必須全面更新一個大型子系統框架,架構是引擎發展的命根子。
那這幾年裡,Messiah大概都經歷過哪些迭代變化呢?
趙鈺琨:大概2007年,在我最早剛剛開始構思和設計Messiah雛形的時候,PC業界正開始面對摩爾定律的“失效”,即晶片頻率的提升遇到瓶頸,Intel開始向多核心CPU發展,在超執行緒技術加持下平行計算日益提上議程。
我在剛剛加入網易的時候有幸參與了當時的一個XBox 360開發課程,其中一個很有趣的點就是360的CPU在安排計算指令的時候需要“湊”一對兒一對兒的指令,以加大並行度,否則單條計算指令會降低PowerPC晶片的效率。這個是我之前沒接觸過的領域,讓我大開眼界,也給了我靈感。後來我看到x86平臺也開始有這樣的趨勢,我深刻的感受到多核心計算一定是未來的重中之重,於是我理想中的遊戲引擎的樣子,應該是一個天生並行的架構,應該是一個像現實世界一樣多執行緒的架構,而不是傳統遊戲引擎——順序逐一更新計算——的架構。
為什麼是多執行緒?
趙鈺琨:Messiah剛研發的時候是2013年左右,當時是移動遊戲剛剛開始爆紅的時候,所有人都開始關注移動遊戲,所以大家都覺得要針對當時的移動晶片進行開發,要根據當時的移動平臺來設計。但是我斷定移動平臺必將走過PC平臺的每一步,將會復刻PC平臺的發展,包括CPU和GPU,他們將在很短的時間內變得一模一樣。所以我堅持Messiah的移動平臺版本也需要做多執行緒,多核心優化。在我們多執行緒剛出來的時候,不少人嘲諷,說我們不懂移動平臺,說Messiah的多執行緒架構一定會死得很難看。後來恰恰相反,更短時間內更高效率的計算、以及多核心分攤計算成本反而能降低核心頻率從而降低功耗,Messiah在移動平臺上出色的效率及功耗控制贏得了很多專案的良好口碑。
《一夢江湖》: 網易Messiah引擎大膽嘗試只在主機與PC端遊用到的渲染技術
在2017年我們成功推出了《天下手遊》和《楚留香》(後更名為《一夢江湖》)以後,Messiah的架構迭代並沒有停止,我認為我們需要更進一步的推動架構發展,需要為5年甚至10年以後的產品打基礎做準備,於是我們又進一步的重構了整個多執行緒體系;2018年我們在支援了《荒野行動》這種可以做到無限大世界的遊戲架構以後,重構了整個渲染管線,引入了Frame Graph系統——比Unreal引入這套系統提早了兩年;2020年我們又再次大規模重構了多執行緒渲染系統,在PC上效率提高了10倍;2021年我們推出了Frame Graph 2.0;2022年我們迭代了多執行緒架構專門優化了大小核心排程,等等等等。
技術難度上,挑戰大嗎?
趙鈺琨:這些不斷一次又一次的近乎全面的重寫,非常困難,也很痛苦。指出別人的不足、糾正別人的錯誤是很容易的,很輕鬆的;推翻曾經的自己、否定曾經的自我是最困難,也是最痛苦的。但是我們就在這些一次又一次的自我否定中,伴隨著引擎技術的成長,我們引擎研發人員的知識、技術、經驗、得到了一次又一次的提高和昇華。不斷的挑戰和戰勝自己,是世界上最有意思的事情。現在我覺得戰勝別人沒什麼值得高興,戰勝自己才是最值得高興。
而在實際的重構工作中最最最痛苦的就是歷史遺留問題,但是我們一直堅持務必解決歷史遺留問題,不做任何妥協,一定要妥善處理。至今我們所有的產品都能順利的升級到引擎的最新版本,包括最早採用Messiah引擎的《天下手遊》。而且我們承諾絕不放棄任何一款產品,都一直支援他們的升級。給產品灌注生命力也是維持引擎成長的最大動力。若是產品不再升級引擎了,就證明引擎失去了和產品同步發展的優勢。
團隊內部怎麼看待這樣的架構迭代?
趙鈺琨:其實剛剛有提到,我期待的工作狀態,絕不是一個自己認為“還可以”的狀態,當然,這也是很多做技術的同學都天然會有的追求。如果你選擇程式設計師作為你的終身職業,然後進入到這個行業,以及進入到網易這樣的一家以自主研發為主的公司,我認為每一個同學更需要關注自己的一些能力,比如說學習能力。學習是非常重要的,它會貫穿你的整個職業生涯。我們不只是需要學習像學校裡面的一些理論知識,更重要的是要學習怎麼樣去做一個產品,怎麼樣去讓一項技術落地,然後怎麼樣去接觸新的東西,因為技術本身就是不斷在更新和迭代的。然後去把這些技術運用到我們的產品上面去產生具體的價值,然後讓所有人去享受到、玩到這些技術。
同時在研發Messiah的過程裡,我體會到最大的感悟並不是單純的技術,而是研發引擎這個過程,最重要的,並不是僅僅產出一個產品、一堆程式碼,最重要的是這個研發過程培養了一個團隊、一系列技術專家、沉澱下來了一個良好的技術研發環境氛圍。
隨著引擎研發成長的人,是網易遊戲引擎團隊中最大的碩果,人比程式碼重要、比產品重要,有人才有這些可能性,程式碼自己不會成長,人會;程式碼不會自己變強,人會;程式碼不會自己進化,人只要給與足夠的空間和機遇,給養分,給時間,給試錯的機會,給動力,給回報,成長的空間是沒有止境的。我們研發引擎一開始的初衷是為了解決技術短缺,後來逐步的變成解決人才短缺,再後來變成了我們培養了一個正向迴圈,一方面引擎的研發環境促進人成長、變強,另一方面人才變強了又促進迭代原有的引擎技術,讓引擎變得更先進。
所以團隊內部能達成這個迭代的共識,大家都明白迭代是引擎的成長過程,也是自己的成長過程。不斷的推翻和重建,讓程式碼更強大、讓技術更先進、也讓自己進步。不是一日復一日的重複勞動,而是不斷推翻殘舊的自我。當然我們也經歷了一個過程,一開始痛苦、煩躁,明明做好了的東西,還要再來一次,然後慢慢接受,也主動去思考哪裡做得不夠、再推翻、再重構——變得更好。
三、做真正made in China的中國遊戲
你自己會怎麼定位Messiah這款引擎?
趙鈺琨:可以說,Messiah是網易在技術突破上第一次野心勃勃的巨大嘗試,也是國內軟體研發歷史上一個巨大複雜軟體成功研發的里程碑。
遊戲引擎的複雜度、耦合度、廣度、深度,都決定了它是除了作業系統以外,其中一種最複雜的軟體。其對執行效率有極端苛刻的要求,對前沿技術的落地注重、對產品直接支援面向使用者、同時也承接整個產業的工業化,同時面對使用者和生產者,既要執行時效率非凡也要生產時易用耐用。一方面既要達到宣傳片裡的頂級畫面、也要在伸縮性上考慮極廣泛的使用者裝置寬度。我認為這是極其苛刻的研發指標,僅亞於帶圖形使用者介面的作業系統。
這是第一次網易從零開始規劃一個面向十年甚至二十年後的引擎。在規劃的時候就提出需要從最底層開始解決根本性技術難題,並且貫徹始終,一直沒有偏差的執行研發戰略的引擎研發專案。我們在第一行程式碼寫下來的時候就堅持跨平臺、原生多執行緒、併發執行、支援儘可能多的圖形API和作業系統、向主機看齊向移動相容,務求一次研發所有平臺都能跑起來一模一樣。這種理念現在看起來是理所當然,而我最早構思Messiah的時候是2007年,成立專案的時候是2014年,當時這是大逆不道的破天荒的想法。很幸運我們堅持並一路走下來了,而且能做得到。今年是2022年,8年過去了這個規劃看起來還剛剛能滿足目前的需求,證明我們8年前的想象力也僅僅足夠支撐至今,所以接下來我們需要更大膽、更具有想象力的規劃,去憧憬下一個8年後的未來。
同時Messiah也是一個非常極端的敏捷軟體開發的產物,在研發的同時就開始供應給在研專案,相互促進。我們堅持精兵簡政策略,堅持只採用極少量的頂尖研發人員、進行極高的迭代效率、以及非常迅速的響應,在很短的時間內支援了大量專案的開發、上線、運營。依靠的是相信技術、相信科學,一切問題用技術手段解決,儘量不留技術空白,歷史問題當下解決。快速開發,快速迭代,快速驗證,天下武功,唯快不破。
在你看來,Messiah和市面上的商業引擎最大的區別體現在哪裡呢?
趙鈺琨:們和商業引擎是有非常大的不同的,首要的便是,自研引擎專注對內,所以我們很偏執地追求執行效率,只有執行效率和能耗指標遠高於商業引擎,才能抵禦體量龐大的商業引擎。俗話說船小好掉頭,我們在採納新的技術架構上、以及適應新的硬體上,響應速度遠超商業引擎。在一些核心問題的修改上,我們的決策速度也遠比商業引擎快、準、狠,所以Messiah最大的特點是,執行快、響應快、變化快。
當然,雖然Messiah研發即將走進第九個年頭,已經從一個簡陋的demo飛速成長為有能力支撐世界級品質、全平臺發行的大型遊戲開發的成熟自研引擎,但我們也承認,Messiah至今依然有大量的不足,我們每天仍然面對很多反饋、很多珍貴的製作需求。我們團隊中的每一個成員都正在努力改進,努力進步,希望有一天,屬於我們自己的引擎能夠矗立在世界遊戲技術之巔,大家能用上世界最頂尖的技術——我們自己開發出來的技術。
相關文章
- 專訪Docker大牛:Docker背後的真正引擎是ContainerdDockerAI
- 資本雄厚卻做不出真正的好遊戲,亞馬遜在遊戲領域中的艱難前行遊戲亞馬遜
- 網易有道自研RAG引擎QAnything升級,首次支援在Mac執行Mac
- 專訪騰訊北極光技術總監:自研引擎11年,我們只想創造「震撼」
- 網易遊戲是如何做測試的?遊戲
- be made of ,be made from , be made by , be made in 的區別
- 自研 PHP 框架 1.1_模板引擎PHP框架
- 網易投資上海月壤,持股14%,後者有恐怖遊戲《Karma》在研遊戲
- 新書《沒有"中國製造"的一年》(A Year Without "Made in China")新書
- Gopher China 2019 講師專訪 -小米高階研發工程師徐成選Go工程師
- Playstation now將新加入11款遊戲 《黑手黨3》領銜遊戲
- 又一大模型技術開源!網易有道自研RAG引擎QAnything正式開放下載大模型
- 我們自研的 Ice 規則引擎開源了
- “用自研引擎開發遊戲,是我們最傻也是最正確的決定”開發遊戲
- Gopher China 2021 講師專訪 — 曹春暉Go
- B站自研色彩空間轉換引擎
- Gopher China 2019 講師專訪 -百度資深研發工程師陳肖楠Go工程師
- 做專業領域領航者 佳能正式推出了Professional Print & Layout列印軟體
- 如何做一個真正牛X的開源專案
- AI研發者福利!谷歌推出資料集搜尋專用引擎Dataset SearchAI谷歌
- 土豪玩家首選 戰神領銜GTX980M遊戲本熱銷遊戲
- CODING —— 雲原生時代的研發工具領跑者
- Gopher China 2019 講師專訪 -晁嶽攀Go
- 網易互娛 遊戲研發 暑期實習面試面經遊戲面試
- 專訪《混沌銀河》開發者:做單機大戰略遊戲的傳火人遊戲
- 外媒專訪納德拉:一個不愛玩遊戲的CEO如何帶領微軟遊戲轉型?遊戲微軟
- JF資產爭做行業領先者行業
- 網易加碼佈局短影片領域:做垂直領域內容能否脫穎而出
- Gopher China 2019 講師專訪 -PingCAP 姚維GoPingCAP
- 日本遊戲工作室Grounding接受網易入股,將加強IP專案研發遊戲
- 5.5億研發支出,4個虛幻4專案,心動自研遊戲的未來與隱憂遊戲
- 做IT整合類大專案,真正成功交付並盈利的少之又少
- 獨立遊戲發行商 PLAYISM 負責人專訪:從採摘者到培育者遊戲
- 西安郵電陳莉君教授領銜,業界首個產學研 eBPF技術探索SIG成立!eBPF
- 《壞小孩》主角領銜 幽默風畫素敘事遊戲《長夢》現已發售遊戲
- [轉載]NoSQL領銜大資料時代的新技術SQL大資料
- 專訪《騎馬與砍殺》之父:從“土耳其牒販子”到“遊戲領主”遊戲
- 網易《天諭》攜手Unity引擎,引爆高品質遊戲市場Unity遊戲