最近韓國很少有開發公司做遊戲的時候會一起做引擎,大多使用 Unreal、Cry,或是 Unity 等商業用引擎,因為開發引擎需要花費部短的時間,而且也很難趕上商用引擎的技術。
但 Maiet 於 7 月 5 號公測的《Z 奇兵》,以及即將推出的《
GunZ 2》,都是使用自製的「Real Space Engine 3.0」。
Maiet 開發遊戲已經超過 10 年,開發引擎也是一件當然的事情,由於 10 年前幾乎沒有商用引擎,所以每個開發公司都有自己的引擎,當時 Maiet 就已經開始發展引擎,他們相當自豪「Real Space Engine」不管是功能或便利性等方面,都不輸給商用引擎。
This Is Game 本次特別採訪了 Maiet 的引擎開發團隊,聽聽他們「開發引擎非常有趣,死都要繼續開發」的故事。
-
近起程式設計師鄭皓齊、尹宗文,遠處羅子英理事
■ 引擎是讓開發遊戲變得更容易的統合環境
TIG:《Z 奇兵》上周開始公測,感覺怎麼樣?
羅子英:第一天開始遊戲很穩定,一方面很安心,另一方面又很緊張,因為你不知道什麼時候會發生什麼事,所以沒辦法鬆懈下來。
TIG:公測之後引擎組要做什麼事?
羅子英:現在還只是剛開始而已,所以要做的事情很多,有一部分玩家還無法正常進行遊戲,必須要解決這個問題,除了這個之外,還要修正玩家回報的東西,以及強化穩定性。之後還要開發一些功能來強化特效,用在《Z 奇兵》跟《
GunZ 2》上。
TIG:從以前開始就非常好奇,到底遊戲引擎是什麼?
羅子英:簡單的說就是集合許多工具,讓設計遊戲變得更簡單的統合環境。
TIG:例如?
鄭皓齊:開發遊戲的時候,人物、地形、建築物等東西,有很多部分要手動製作或是再新增,引擎就是讓原本繁瑣的作業,輕點一下滑鼠就能快速開發的工具。
尹宗文:就像樂高一樣,累積越多,就能製作或表現更多東西,引擎就是能夠做出任何東西的工具,而遊戲就是樂高累積組合之後產生的成果。
羅子英:引擎支援大部分遊戲開發的相關作業,也可以用來製作繪圖工具,或是製造影子爆炸的特效。引擎設計師簡單來說,就是支援程式設計師,與美術設計師等開發團隊的「Supporter」。
Real Space Engine 3.0 的綜合編輯
影片 - 人物服裝即時變化工具
■ Real Space 是大開工程師方便之門的引擎
TIG:製作遊戲引擎要花多久時間?
羅子英:跟《Z 奇兵》開發時間合起來的話,大概花了六年,我們一起成長過來,意義相當深遠。
TIG:自製引擎 Real Space 的優點為何?
鄭皓齊:Real Space 主要是讓開發更方便一些,客戶端工程師用起來簡單,可以按照需求呈現想要的東西,也可以表現大部分美術設計師想要的效果。
我們認為,能夠幫遊戲內容設計人爭取時間,才能夠得出好的品質,所以我們觀察他們在哪些地方感到不便,做出一些適合的工具幫助他們用在遊戲上。以後也會與其他組合作,讓快速開發的功能能夠提升。
遊戲內容組解決之後,就會與美術設計師合作,增加一些功能,有時候設計組還會跑下來搗亂 (笑)。
特效製作工具也直接開發出來了
TIG:開發引擎的時候,哪些地方比較辛苦?有什麼難以實現的技術?
鄭皓齊:Real Space 引擎是以「延遲渲染」(Deferred Rendering) 為架構,相較於「正向渲染」(Forward Rendering) 能夠表現出比較多的光,而且光源處理速度也比較快。
但是延遲渲染對單獨渲染作業以及大量動態光源較為脆弱,因此有時候就算小心增加一些功能,還是會變成飽和狀態。
這種情況下,被要求要增加刷毛和皮膚陰影的時候,就會非常無奈,最後雖然還是成功了,不過要是再有類似的要求,我想會只會變得更難。
羅子英:要選擇什麼比技術層面要來得困難,引擎技術跟之前提到的渲染方式一樣,沒有所謂的好壞之分,所以現在該選什麼才能達到所要的要求,才是最難的事情。
就算做出了選擇,也很難決定要不要開發這個引擎技術,雖然知道開發了以後會用到,但是有時候時間或條件並不允許,而且有時候自己還會懷疑「現在做這個到底對不對」。
TIG:主要的大型公司都用 Unreal 等商用引擎,為什麼你們要開發引擎呢?
羅子英:以手機為例,就像保護套材質跟主機板一樣,玩家直接使用到的部分跟核心技術有一段距離。
遊戲也一樣,玩家直接體驗到的部分,有開發的人,也有寫內部邏輯的人,內部邏輯雖然不會直接表現在外觀上,但這個部分必須完整,開發玩家使用的遊戲內容才會比較簡單。
如果我們自己做引擎的話,可以確定整體過程中哪邊地方發生問題,進而解決它;但如果商用引擎發生問題,我們無法調控細節,必須要向開發公司詢問,所以在解決問題上會花費比較長的時間。
而且自製引擎可以調控的部分比較自由,開發技術的自信心與費用方面,對我們比較有利。
當然我們也知道,專業開發公司做的商用引擎品質比我們好,所以我們也在努力趕上他們。
TIG:有人從遊戲的繪圖,就能判斷引擎的好壞,到底引擎會影響繪圖多少?
鄭皓齊:引擎要完全表現所有用在遊戲上的繪圖,所以影響是 100%,繪圖品質要高,作為其後盾的引擎性能就要好才行,所以繪圖品質的差異,是根據引擎的極限來決定的。
羅子英:遊戲引擎的確對繪圖有很大的影響,引擎在性能上,做的好的地方雖然有其侷限,但做不出來的地方就沒有限界,所以就算是相同的引擎,繪圖品質還是會有多種差異。
像《Z 奇兵》跟《
GunZ 2》也都是用同樣的引擎開發,但遊戲氛圍完全不同,使用的方法也非常不一樣,雖說引擎百分百影響繪圖,但根據用的人不同,影響率也有可能變成 0%,結果還是要看美術設計師的功力怎麼樣。
TIG:最近工程師之間最熱的話題是什麼?
鄭皓齊:以前很關注最新技術,所以開發功能的時候,都會參考海外網站,但現在《Z 奇兵》公測了,開始比較留意穩定性的問題,《Z 奇兵》安定下來,《
GunZ 2》也推出之後,話題應該就會變成如何跟上潮流。
最近大家最常聊的應該女朋友,大部分的人都喜歡自己玩,或是跟程式設計組的人一起混,結果到最後大部分的人都沒有女朋友,大家都是好人,所以如果可以介紹女朋友的話,我們會非常感謝 (齊笑)。
■ 用我們的工具做出更好的遊戲的時候,會感到非常有意義
TIG:怎麼開始開發引擎的?
鄭皓齊:本來我是在客服組工作,跟程式設計一點關係都沒有,後來有一天我突然想開發遊戲,於是就開始鑽研程式設計。
學一學漸漸覺得,學習技術並開發比玩遊戲還有趣,之後為了開發遊戲,就了解到需要引擎,於是就將跑到轉換為引擎。
一開始我不是以引擎程式設計進入這家公司的,是經過遊戲內容、客戶端程式設計,之後跟其他程式設計師一起工作的時候也不斷鑽研引擎,最後才進到引擎組。
尹宗文:我也是從客戶端程式設計開始的,之後才想要開發引擎,轉換跑道。
開發遊戲內容跟客戶端的時候,不是只有設計程式而已,跟企劃人還有美術設計師的溝通也很重要,我自己跟程式設計師們說話沒什麼問題,但我很難跟其他部門的人溝通。
能夠跟程式設計師們一起工作跟聊天,也是我進入引擎的理由之一,說著說著,我好像只告訴大家程式設計師有多封閉,但你們千萬不要誤會,大家都是開朗的好人(笑)。
羅子英:兩千年的時候外製引擎進入韓國,開始產生了引擎的概念,但十幾年前我們開始製作遊戲的時候,沒有引擎的概念,就只開發一些工具來做遊戲,不過用自製引擎這件事情可以引起話題真的讓我很驚訝。
TIG:開發引擎什麼時候會覺得有意義?
鄭皓齊:我個人對視覺渲染這塊比較有興趣,所以光源或水的效果,能夠按照我自己希望來製作的時候,最有成就感,而且越難越有成就感。
做一個工具來減少浪費的開發時間的時候,我覺得非常有意義。例如,近處的人物雖然細節很精緻,但越遠的人物,就要簡化他的細節,而這是做降低遊戲負荷技術時的事情。
雖然這技術早就用在很多遊戲上,以前遠中近三種距離就要手做各種人物,真的會花上不少時間,後來我就做出一種工具,輸入近距離的人物,就會自動做出三種版本的人物,因為這個工具,後來的開發時間大幅減少,我覺得超有成就感的啦。
LOD 自動應用工具
尹宗文:引擎做出來的東西不是給玩家看的,而是幫助程式設計師,因為外表看不出來,所以一般都是程式設計師之間在讚賞我們,而不是玩家。
引擎用科學比喻的話就是純科學,雖然沒有直接影響遊戲,但卻會有間接長遠的影響,所以其他設計師用我們做的工具做出更高品質的遊戲時,我會感到非常滿足。
TIG:《Z 奇兵》裡最關注的部分是?
鄭皓齊:很多線上遊戲都必須專注在讀取及渲染,所以能夠圓滑移動,無延遲就是最重要的事情,因此我們比較在乎個別功能的最佳化,而不是強調單一效果。
萬一某部分的讀取時間過長,就會從三樓(《Z 奇兵》開發組)跑下來說讀取很慢,然後威脅他們不讓遊戲上市(笑)
TIG:《Z 奇兵》跟《GunZ 2》都用相同引擎開發,儘管如此,好像還是有些地方不一樣。
羅子英:《Z 奇兵》沒用到太多資源,所以有比較多限制,而《
GunZ 2》用的資源比較多,繪圖品質比較高,所以就算是相同的功能,限制也比較少,不過《Z 奇兵》的優點是,在寬闊的地圖上可以玩得比較順暢。
TIG:Unreal Engine 4 的模組已經公開了,請問你們有什麼想法?
鄭皓齊:這次的模組很厲害,是用 DirectX 11,幾年出了很多 DirectX 11 的書,但我們還在用 DirectX 9,所以沒辦法花太多時間去看一下,不過現在《Z 奇兵》也差不多上軌道了,是時候來好好研究一下。
尹宗文:看到模組的時候真的覺得品質很高,但韓國的引擎開發人數正顯凋零,實在是相當可惜,要是大環境能夠更適合開發引擎就好了。
羅子英:看到工具直接在遊戲上運行的畫面,或許 Unreal 引擎也開始加入快速開發的趨勢了,讓我覺得我們開發方向應該沒錯,現在實境表現幾乎已經到頂點了,所以能夠幫助美術設計師呈現多好的效果,似乎比較重要。
看到環境能夠變化各種物理效果和相互作用,還有加速顯卡的演算,這真的是非常厲害。
Texture 即時編輯
■ 引擎程式設計師加強國英數
TIG:遊戲裡面有很多物理效果,是不是工程師也要學很多物理學跟數學?
羅子英:公司有很多看物理和數學書的人,書架上就放著幾本,有一部分是只要會使用物理或數學公式就可以,但有些地方就必須要對物理有更深一層認識。
例如使用能夠讓物理效果更快速應用的工具的時候,就會有非常多參數像我們打招呼,有時候碰到不知道的慣性力學用語時,我就會卡在那邊,所以如果至少要求不錯的物理效果的話,還是需要一些基本的相關知識。
除此之外,每個月還要閱讀 Unreal 引擎的更新資料,學習新技術。我想活到老,學到老,就是引擎程式設計師的優點吧 (笑)。
鄭皓齊:以前做自由落體或推擠效果的時候,為了做出自然的掉落軌跡,還必須用到很多重力加速度的物理法則,以前學生時代的時候對物理沒什麼興趣,現在用電腦就能直接調整重力,明白物理是怎麼運作的,要是當年也這樣學的話,應該會比較有熱情。
TIG:如何建議嚮往開發引擎的人?
羅子英:要認真念國英數,特別是國文(笑),這不是在開玩笑,在程式設計組或跟其他組員溝通的時候,能夠簡潔地傳達意思非常重要,而且技術越深就需要越多的知識,大部分的編碼都存在於網路,所以 Google 一下就找的到,但是如果沒有相關知識的話,連找都無法找。
最主要的條件還是程式設計的能力,大概佔了 70~80% 左右,企劃越長所付出的精神就越重,所以人文學科的素養也不能放棄。
鄭皓齊:我自己做了許多小遊戲,自己動手製作了解這個功能如何做,那個功能如何實現,會比較好。
剛開始的時候看書學比較好,有一本經典書「Game Programming Gems」真的是非常經典,有必要的話可以精讀它。
TIG:Real Space 有商用化的打算嗎?
羅子英:沒有
TIG:為什麼?
羅子英:要商用化的話,除了開發能力之外,還需要其他的能力,目前我們沒有那種餘力,雖然有很多人要求我們商用化,但全部都回絕掉了,聽到的時候雖然很高興,但也只能敬謝不敏了。
TIG:以後有什麼規畫嗎?
短期之內想降低《Z 奇兵》的電腦硬體要求,實現無延遲,之後更新引擎,然後準備著手製作下一代引擎。
-
三位工程師還不習慣鏡頭,所以不斷覺得尷尬