網易自研引擎Messiah的研發即将走進第九個年頭。
自研引擎或許是國内遊戲研發的一大技術痛點。
一方面因為目前市面上已經有幾款相對成熟且優質的商用引擎,大多遊戲廠商并不會在這「吃力又不讨好」的領域深究;另一方,自研引擎需要的技術力門檻相當高,并非投入大量資金就能立刻實現。
那麼,網易作為較早開始研究自研引擎的遊戲廠商,對于行業這一技術痛點有哪些不同的看法?他們自研引擎的技術又達到了何種水平?
本篇文章便邀請到網易Messiah自研引擎領銜者&網易互娛首席遊戲軟件設計專家趙钰琨,圍繞着網易自研引擎Messiah相關情況簡單聊了聊。
2020年,網易自研引擎Messiah推出
世界遊戲業領先的全平台動态全局光方案,
并已獲得專利
以下是經過整理的采訪内容:
01 為什麼要堅持自研引擎
堅持要做自研,這種想法是因什麼契機産生?
趙钰琨:我最早在學習編程的時候其實有這樣的一個感覺,前面有很多非常聰明的、非常偉大的計算機科學家,他們發明了各種算法、寫出了各種很牛的軟件。
剛開始學習做離線渲染的時候,我接觸到了比如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時代
02 “如果自己不革自己的命,
别人就會來革你的命”
聽說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的過程裡,我體會到最大的感悟并不是單純的技術,而是研發引擎這個過程,最重要的,并不是僅僅産出一個産品、一堆代碼,最重要的是這個研發過程培養了一個團隊、一系列技術專家、沉澱下來了一個良好的技術研發環境氛圍。
随着引擎研發成長的人,是網易遊戲引擎團隊中最大的碩果,人比代碼重要、比産品重要,有人才有這些可能性,代碼自己不會成長,人會;代碼不會自己變強,人會;代碼不會自己進化,人隻要給與足夠的空間和機遇,給養分,給時間,給試錯的機會,給動力,給回報,成長的空間是沒有止境的。
我們研發引擎一開始的初衷是為了解決技術短缺,後來逐步的變成解決人才短缺,再後來變成了我們培養了一個正向循環,一方面引擎的研發環境促進人成長、變強,另一方面人才變強了又促進叠代原有的引擎技術,讓引擎變得更先進。
所以團隊内部能達成這個叠代的共識,是因為大家都明白叠代是引擎的成長過程,也是自己的成長過程。
03 做真正made in China
的中國遊戲
你自己會怎麼定位Messiah這款引擎?
趙钰琨:可以說,Messiah是網易在技術突破上第一次野心勃勃的巨大嘗試,也是國内軟件研發曆史上一個巨大複雜軟件成功研發的裡程碑。
遊戲引擎的複雜度、耦合度、廣度、深度,都決定了它是除了操作系統以外,其中一種最複雜的軟件。其對執行效率有極端苛刻的要求,對前沿技術的落地注重、對産品直接支持面向用戶、同時也承接整個産業的工業化,同時面對用戶和生産者,既要運行時效率非凡也要生産時易用耐用。既要達到宣傳片裡的頂級畫面、也要在伸縮性上考慮極廣泛的用戶設備寬度。我認為這是極其苛刻的研發指标,僅亞于帶圖形用戶界面的操作系統。
這是第一次網易從零開始規劃一個面向十年甚至二十年後的引擎。在規劃的時候就提出需要從最底層開始解決根本性技術難題,并且貫徹始終,一直沒有偏差的執行研發戰略的引擎研發項目。
我們在第一行代碼寫下來的時候就堅持跨平台、原生多線程、并發執行、支持盡可能多的圖形API和操作系統、向主機看齊向移動兼容,務求一次研發所有平台都能跑起來一模一樣。
這種理念現在看起來是理所當然,而我最早構思Messiah的時候是2007年,成立項目的時候是2014年,當時這是大逆不道的破天荒的想法。很幸運我們堅持并一路走下來了,而且能做得到。
今年是2022年,8年過去了這個規劃看起來還剛剛能滿足目前的需求,證明我們8年前的想象力也僅僅足夠支撐至今,所以接下來我們需要更大膽、更具有想象力的規劃,去憧憬下一個8年後的未來。
同時Messiah也是一個非常極端的敏捷軟件開發的産物,在研發的同時就開始供應給在研項目,相互促進。
我們堅持精兵簡政策略,堅持隻采用極少量的頂尖研發人員、進行極高的叠代效率、以及非常迅速的響應,在很短的時間内支持了大量項目的開發、上線、運營。
在你看來,Messiah和市面上的商業引擎最大的區别體現在哪裡呢?
趙钰琨:我們和商業引擎是有非常大的不同。
首要的便是,自研引擎專注對内,所以我們很偏執地追求執行效率,隻有執行效率和能耗指标遠高于商業引擎,才能抵禦體量龐大的商業引擎。俗話說船小好掉頭,我們在采納新的技術架構上、以及适應新的硬件上,響應速度遠超商業引擎。
在一些核心問題的修改上,我們的決策速度也遠比商業引擎快、準、狠,所以Messiah最大的特點是,執行快、響應快、變化快。
當然,雖然Messiah研發即将走進第九個年頭,已經從一個簡陋的demo飛速成長為有能力支撐世界級品質、全平台發行的大型遊戲開發的成熟自研引擎,但我們也承認,Messiah至今依然有大量的不足,我們每天仍然面對很多反饋、很多珍貴的制作需求。
我們團隊中的每一個成員都正在努力改進,努力進步,希望有一天,屬于我們自己的引擎能夠矗立在世界遊戲技術之巅,大家能用上世界最頂尖的技術——我們自己開發出來的技術。
本文轉載自公衆号 網易遊戲互娛校園招聘 。
遊戲公司招聘季 | 人才市場殘酷現狀 | 工業化之戰
疫情下的上海圈 | 版号 | 二次元下個陣地
三七搶人 | 天美技術策劃 | 遊戲王
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!