莉莉絲遊戲引擎渲染專家凱丁:從MMO到獨立遊戲,再到引擎技術
本文出自“莉莉絲遊戲”公眾號
凱丁,自2010年起加入騰訊北極光工作室,擔任《天涯明月刀》的客戶端開發及引擎開發工作,後從北極光離開,並於2017年回到騰訊,加入NExT工作室,開始獨立遊戲《只只大冒險》的孵化和製作。《只只大冒險》上線後獲得了IndieCade Europe 2019年觀眾選擇獎、Indie Prize Asia 2019年最佳遊戲設計以及IGF(獨立遊戲節)提名等眾多獨立遊戲獎項。
凱丁於2020年加入莉莉絲,擔任在研專案渲染組組長一職。
一、從MMO到獨立遊戲
瞭解到你從畢業起就進入遊戲行業了,還記得第一份工作麼?
當然。因為我本身就比較喜歡玩遊戲和做遊戲,大學畢業之後第一份工作首先加入了騰訊北極光工作室,有幸和一幫從育碧出來的骨灰級的遊戲業內人士共事,參與制作了《天涯明月刀》。剛進去時做了很多天刀內的輕功、尋路等 GPP (Gameplay Programming,遊戲性程式設計)相關的東西。由於我大學時期就在維護一個自研引擎,對遊戲引擎有比較強的執念,所以又轉去做引擎開發相關的工作了。
現在很多同學想轉引擎,但不一定有這麼順利了。
我覺得當時轉引擎不一定是一個很好的決定,不過確實在引擎團隊學到了很多東西。其實只要在遊戲開發這塊足夠深入,必定會觸達引擎的底層,而引擎也不光只有渲染。
但你後來還是選擇離開這個團隊,是因為什麼?
當時換工作沒有想得特別清楚吧,主要由於一些個人不成熟的原因選擇了離開,之後加入新公司又發現和預期相差比較大。好在之後一個偶然的機會,《龍之谷》的團隊正在搞優化相關的內容,有些記憶體問題沒搞定。他們線上上找到我,希望我幫忙看看記憶體的問題是否可以優化。之後我給了一些優化建議,於是他們邀請我一起做龍之谷專案。最後封閉開發了三四個月,順利把專案推上線,這段一開始不太符合預期的工作經歷有了不錯的結果。
從這之後我就開始思考我對遊戲的態度和追求的問題。以前我確實是一個比較執著於技術的人,後面發現,我做遊戲的原始驅動力並不是因為我喜歡遊戲引擎,而是我喜歡遊戲本身。正好騰訊NExT那個時候在搞獨立遊戲,對我來說比較有吸引力,就又回到騰訊,加入了NExT工作室。
所以你是因為獨立遊戲製作的機會再次回到騰訊的嗎?
是的。還有個原因是當時招了很多紐約大學畢業的人,可以認識不一樣的人,覺得還蠻有意思。他們肯定有在設計方面比較獨特的地方。之後確實遇到了一個小朋友,跟他一起合作孵化出一個非常有意思的東西,就是《只只大冒險》的原型。
當時NEXT內部有類似於Game Jam的比賽,有了想法之後我和那個小朋友合作,把想法用一個禮拜的時間做成Demo。基本玩法和機制確認後,差不多花了兩三天時間,做了一個完整的關卡出來。
兩三天,落地能力聽上去很強啊!
兩三天能落地,是在技術驗證過的基礎上才可以做到的。
最開始我們想做一個攀爬類的遊戲,類似於《人類一敗塗地》。然後我們去研究這個遊戲,以及類似的獨立遊戲,發現有一些很好玩的技術點。比如《人類一敗塗地》裡的人物是軟綿綿、很頹廢的感覺,這個人物的表現並不是靠動畫驅動,而是基於物理去驅動。有了這個前置的技術驗證,才有後面的關卡快速落地。
《人類一敗塗地》遊戲畫面
所以這個idea是怎樣變成《只只大冒險》的?
本身做物理遊戲,所有的物理引數都非常考驗設計師或者做Gameplay的人調手感的能力。我們也研究了其他類似的遊戲,比如《Gang Beasts(萌萌小人大亂鬥)》等,他們是用程式化的方式去生成動畫,我們一直在嘗試做類似的動畫系統。之後基於這個動畫系統衍生出來的玩法,做了一個類似於跳臺的遊戲。直到這個時候,我們的遊戲角色也還是人形,有兩個胳膊兩個腿的那種。最後是跟一個紐大的哥們在腦暴的時候,突然之間靈光一閃,打算把手砍掉不要了,不做人型。這樣設計控制起來很簡單,兩個搖桿就能操作,而且幾乎能做任何人型生物能做的事,跟傳統遊戲很不一樣。
《只只大冒險》遊戲畫面
專案正式開始製作後你主要負責什麼工作內容?
前期主要是設計層面的工作,玩法,以及一些技術方案,就是基於物理的動畫技術方案。中後期主要是程式為主了,負責一些效能框架Pipeline(管線)等,同時也包括跟美術和策劃配合,怎麼更好地讓他們工作。
二、獨立遊戲之美
對你來說獨立遊戲的魅力在哪裡?
大部分商業遊戲可能只能擴充技術邊界,但獨立遊戲可以擴充遊戲設計邊界。首先獨立遊戲可以把控更多,而不是單純的在某條工業化的管線下面擰螺絲。同時,獨立遊戲是思維的碰撞,跟他們一起工作,會了解他們的思維方式是怎樣的,可以學到很多。另外,最適合做獨立遊戲的是T型人才,T型人才是指這個人在遊戲開發的絕大部分領域都比較熟悉,且有一塊領域特別地深。
這段獨立遊戲的工作經歷中有沒有讓你覺得特別難忘的事情?
整體來說都比較難忘,因為在這之前做得都是商業專案。製作《只只大冒險》之後,我感受到獨立遊戲和商業遊戲的製作思路差異比較大——獨立遊戲完全是靠創意驅動,而非商業驅動。通常商業遊戲製作是玩法品類+劇情內容,劇情內容是非常重要的一環,玩法可能是成熟固定的。所以《只只大冒險》的製作思路完全是反的,需要優先想好玩法機制,故事和劇情內容則沒有那麼重要。這點可以參考任天堂的遊戲,幾乎沒有一點劇情上的概念,完全是純粹的玩法,且玩法是很有意思的。
《只只大冒險》Tap Tap評分
這種不同遊戲在開發思路上的差異,具體在工作中是怎樣體現的?
我覺得獨立遊戲的團隊需要更能快速驗證,這一點非常重要,不能有需求就接,按部就班地按照這個需求一步步做下去。獨立遊戲需要能快速地驗證這個遊戲到底好不好玩。當然,獨立遊戲開發也分階段,我們的遊戲真正開始鋪量也就三四個月,前面那段時間基本上在做原型驗證,思考該做什麼樣的關卡。
三、一件很特別的事兒
是什麼契機讓你加入莉莉絲的?
當時做完《只只大冒險》,整個NExT的方向開始逐漸偏離獨立遊戲,我就開始看外面的機會了。我選專案有一個非常重要的因素,就是看這個團隊是不是在做一件很特別的事。我對自己職業方向的選擇和定位是——要麼完全把關做獨立遊戲,要麼就是這個專案組在做一件很特別的事,當初NExT的獨立遊戲專案就是這樣吸引到我的。如今莉莉絲也一樣,因為我所在的專案很特別。
差不多2020年終的時候,我對莉莉絲還在瞭解階段,但我一看就覺得這是個很有前景的方向。當時有好幾個團隊都在做類似的專案,最後選擇莉莉絲是因為我在這中間挑選了個人覺得相對靠譜和優秀的團隊。
所在遊戲內燈光渲染截圖
你目前主要負責什麼工作內容?
主要負責渲染。我剛加入莉莉絲時,整個專案渲染的能力嚴重不足,美術生產流程也有問題。很多東西不是資料驅動,流程不夠自動化,需要美術理解的東西過多。所以我們團隊在這一年建立起一套相對完善且有前瞻性的渲染管線,而且這個管線未來會對內開放給公司所有專案。另外,美術基於Lowpoly(低多邊形,一種復古未來派風格設計)製作的生產流程也有比較大的問題,當美術要升級迭代時,就要對所有資料進行一次升級,這非常不合理。
這是當時你剛加入時遇到的比較大的問題嗎?
對,當時進組後第一件事就是升級美術的Lowpoly流程。當然,之後由於我們整體的渲染風格變化,這個流程被替換成更工業化的流程,不過依然無縫嵌在這個流程裡。
對我來說,跟美術、策劃友好地合作是一件非常重要的事情,程式上做很多事情其實是為了避免美術或者策劃出錯。用一個可能不太好聽的比喻——我們工作的出發點首先要預設他們會出錯,所以一定要從程式上避免他們出錯,這樣可以最大程度地做到效率提升。
你加入專案後通過拉通整個渲染管線,使得遊戲整個品質有了較大的提升。能不能談談具體做了一些什麼迭代,才有現在的呈現效果?
這個管線就是LitRenderPipeline(縮寫LitRP,L代表 lilith , lighting),整合了很多特性的同時也考慮了相容性,比如多光源、高質量陰影。同時我們放棄使用Lightmap(一種離線烘培到貼圖的靜態全域性光照技術),轉而使用更合適專案的Volumtric GI(一種基於球諧的全域性光照技術)系統,用於提高全域性光照效果,又能方便美術,甚至玩家使用。
光照效果優化前後對比圖
這個事情對你來說挑戰大麼?
整體難度不是很大,主要是要耐心地一步步推進,這其中最難的可能是做Pipeline要考慮很多相容性。比如說之前做獨立遊戲,只考慮 PC 或者主機,做起來就很容易,但手遊的硬體和 PC 不太一樣。而且現階段專案面向東南亞多一點,所以使用者機型比較差。最開始搞LitRP時候要解決的重要問題之一是多光源。多光源的方案也是儘可能適配到OpenGL 3.0的機型。基本上海外的機器能跑起來,可能慢一點,但不至於不支援。
目前你所在的專案已經開啟了海外買量測試,對你來說現階段還存在什麼問題麼?
現在渲染最大問題,主要是後續資源的統一性。對於我們這樣的產品來說,資源統一非常重要。我們選用技術的時候,基本上是考慮和這個專案的合適程度,而不是去堆高階的技術。技術只有合不合適,沒有所謂的高不高階。比如說Lightmap,GI方案裡肯定是Lightmap效果最好。但對我們專案,尤其在之後要面向玩家這類非專業開發者的時候,Lightmap的烘培時間過長,要求其對技術的理解要比較深入,所以最後選擇了Volumetric GI的方案。我們明年可能會在專案中落地的GPU Driven(一種可以通過在GPU端處理裁剪,發起繪製命令等特性來大幅減少CPU端的Drawcall數量,從而提升整體效率的技術)也是基於上面的觀點, 考慮到玩家可能會往場景裡面塞很多的mesh ,沒辦法做很好的優化,而GPU Driven能很好的解決這個問題。
四、是遊戲開發者,更是熱愛者
聽說你特別喜歡玩遊戲。
我是“任豚”(任天堂遊戲粉絲),特別喜歡任天堂的遊戲,馬里奧系列應該是我最喜歡的,還有《塞爾達傳說:梅祖拉的面具》N64那版也特別喜歡。總的來說我比較偏愛玩法、機制比較巧妙的遊戲。現在反而對3A遊戲興趣不大,不是說3A遊戲品質不夠好,只是在我看來有些敘事或者場面做的很巨集大很漂亮的遊戲,我會想為什麼不乾脆直接拍電影?玩起來有點累。
我打遊戲的歷史也比較長,從GBA(GAME BOY ADVANCE,是任天堂公司於2001年3月21日發售的第二代行動式遊戲機)時期就愛上了遊戲,那時候手機還是黑白的,突然看到一個有彩色畫面的機器,畫面還特別棒,就被吸引了。
聊下來我發現你對自己的定位其實並不是一名技術人員,而是遊戲製作人,可以這麼說嗎?
可以這麼說。我認為光追求技術沒用,技術最終也要有一個落地的地方。我自己首先非常熱愛遊戲,同時也喜歡鑽研技術,但技術最終要在遊戲裡落地的話不能只鑽研技術,其他方面也要懂。所以我對組員的要求是要 T 要 P 還要 A(技術、策劃、美術)。別人提過來的需求,最好自己先過一遍,不能拿起來就做。
我認為優秀的技術人員也是一個很好的產品經理。首先有些技術人員可能本身就面向使用者,比如有些做Gameplay很棒的程式設計師,最後的路徑是成為製作人。即便有些技術崗位不直接面向使用者,而是面向組內,那麼組內的成員也一樣是你的使用者。所以產品意識是衡量一個技術人員綜合能力非常重要的一環。
感覺你的專案經歷都挺順利的,有沒有什麼對你來說真正很困難的事情?
對我來說真正困難的,可能是學會如何與不同的人交流,如何去主動推動專案,如何轉變自己對引擎的執念,如何讓團隊作戰而不是單兵作戰。這些都是在觀念發生變化,合作物件發生變化,職位發生變化時會遇到的困難,對我來說這些困難比實實在在遇到技術問題要難處理許多。
你平時會做哪些個人提升?
遊戲設計方面我會看一些推特上各種獨立遊戲的設計,會多接觸一些遊戲, Steam上的獨立遊戲基本都會玩。引擎方面會看看GDC(Game Developers Conference,遊戲開發者大會)的視訊以及一些論文。
其實我之前還維護了一個小小的玩具引擎,從大學開始就一直在做,完全是自己開發。早期沒有什麼引擎可以參考,尤其是開源的。當時開源引擎好像只有Ogre(一種遊戲製作引擎),我就參考著它是怎麼做的,然後往裡面加一些自己的東西。工作後發現之前寫的東西還比較青澀,很多設計理念很落後,又持續做了改進。
怎麼會想到要自己去做一個引擎的?
我和程式設計的緣分其實開始的挺早的,初中機緣巧合,在老師的推薦下去了一個程式競賽,那時候就開始接觸程式設計。加上我也挺喜歡玩遊戲,當時就覺得遊戲好神奇,它能把那些畫面變成我能操控著去動的。之後高中我開始萌生要做遊戲的想法,進大學後順理成章選了計算機專業。那時候就給自己定好了方向——我以後一定要做遊戲!所以我做引擎也是為了做遊戲,當時還用這個小引擎做了個小遊戲上線。
最後,對各位想做引擎,做技術的遊戲熱愛者們,有沒有什麼想說的話?
我覺得入行前得問一下自己——到底是想做遊戲還是想做技術?做遊戲和做技術給的建議是不同的方向。整體來說,新人做Gameplay也是有好處的,不要一開始就奔著去搞引擎、搞渲染,尤其是喜歡遊戲的人。
我給自己畫了個圈,這個圈是遊戲領域的知識圈,如果我想做遊戲,就必須把這個知識圈給擴大,而技術是我的出發點。以技術為原點,慢慢的發現我還得了解更多的技術,還得了解美術想的是什麼,還得了解策劃,這些層面的知識都要去一一去擴寬。不過最重要的還是得知道自己的目標是什麼,想做牛逼的技術還是牛逼的遊戲產品。知道自己喜歡什麼,想追求什麼,真正熱愛的是什麼,才能少走彎路。
來源:莉莉絲遊戲
相關文章
- 從技術到工具再到落地,Pivotal多位技術專家詳解Greenplum
- 專訪《劍與遠征:啟程》技術團隊:在莉莉絲,從另一種維度“卷”技術
- 卡牌遊戲從來都不是莉莉絲的護城河遊戲
- 瀏覽器引擎、渲染引擎與JavaScript引擎的區別瀏覽器JavaScript
- 深入解析基於 Flutter 的 Web 渲染引擎「北海 Kraken 」技術原理FlutterWeb
- 從Coding Fan到真正的技術專家(轉載)
- 服務端渲染到前端渲染,再到“服務端渲染”服務端前端
- 瀏覽器渲染引擎瀏覽器
- GCanvas 渲染引擎介紹GCCanvas
- 莉莉絲入局雲遊戲領域,800萬美元領投雲遊戲技術平臺念力科技遊戲
- InnoDB儲存引擎——Checkpoint技術儲存引擎
- 莉莉絲三度牽手胖布丁,獨立遊戲的市場化道路該怎麼走?遊戲
- 瀏覽器之渲染引擎瀏覽器
- 技術選型之Docker容器引擎Docker
- 遊戲與遊戲引擎遊戲引擎
- 天美F1引擎專家:如何利用PCG技術加速大世界地形生產?
- javascript遊戲引擎JavaScript遊戲引擎
- 遊戲ai引擎遊戲AI
- FlutterUI 呼叫系統渲染引擎-13FlutterUI
- 瀏覽器核心渲染:重建引擎瀏覽器
- 莉莉絲胡睿:技術創新表達方式,展現中華文化魅力
- Lynx技術分析-JS引擎擴充套件技術基礎JS套件
- openGauss儲存技術(二)——列儲存引擎和記憶體引擎儲存引擎記憶體
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- MongoDB技術分享:WiredTiger儲存引擎MongoDB儲存引擎
- MySQL技術內幕:InnoDB儲存引擎MySql儲存引擎
- 如何使用遊戲引擎進行實時渲染和內容建立遊戲引擎
- 從 HTTP 到 HTTPS 再到 HSTSHTTP
- 從HTTP到HTTPS再到HSTSHTTP
- 中重度遊戲出海,莉莉絲分享如何破圈增長?遊戲
- 融資數千萬美元后,這家創業公司將要和莉莉絲合作開發雲原生遊戲創業遊戲
- 跨平臺渲染引擎之路:bgfx分析
- 聊聊介面渲染引擎——UIEngine的前世今生UI
- 淺析渲染引擎與前端優化前端優化
- 遊戲引擎架構遊戲引擎架構
- 觀點|阿里資深技術專家:優秀的資料庫儲存引擎應具備哪些能力?阿里資料庫儲存引擎
- 從Java程式設計師到架構師,從工程師到技術專家,迷茫之路如何點亮Java程式設計師架構工程師
- 從小白到專家 PG技術大講堂 - Part 2:PG原始碼安裝原始碼