在許多遊戲的宣傳文案中,總是可以在其中看到本作是由 Unity 或 Unreal 等遊戲引擎開發的訊息,好像搬出了這些名詞就會讓遊戲變得很厲害!對於這些有著帥氣名字的的開發工具,是否真如其名,有了它就可以如催油門般的一路展開遊戲的開發之路呢?以下將來簡單地向玩家介紹遊戲引擎這玩意兒。
-
Unreal Engine 4 開發介面
遊戲引擎簡介
根據維基百科上的描述,遊戲引擎可被簡單敘述為「一些已編寫好的可編輯電腦遊戲系統或者一些互交式實時圖像應用程式的核心組件」。但其實概觀一點的來看,遊戲引擎就是一個程式庫,負責幫助團隊處理所有遊戲開發相關的事宜。
在 1980 年代之前,遊戲業界並沒有像 Unity 這樣廣泛通用的開發工具,往往都是由遊戲公司的程式人員自主開發類似的套件來製作遊戲。當時間推進到 1990 年代後,當時最著名的第一人稱射擊遊戲《
德軍總部 3D》、《
毀滅戰士》與《
戰慄時空》均是出自於知名開發者 John Carmack 設計的遊戲引擎上,倡導開源軟體的他在當時大方地釋出《
雷神之鎚》等作品的原始碼,成為早期推動遊戲引擎發展的重要人物。
《德軍總部 3D》遊戲畫面
現在的遊戲引擎五花八門,如專門打造 3A 遊戲的 Unreal 引擎,或是橫跨多平台,在手機遊戲製作上相當受到開發者歡迎的 Unity,這些引擎都包含了圖形、聲音、特效、編輯器等製作遊戲所需用到的一切工具,並讓開發者可能夠在可視化的環境中工作。
用 Unreal 畫面「一定」就會比較好嗎?
許多廠商往往都會標榜自己使用了 Unreal 引擎打造,並保證帶來絢麗的遊戲畫面,但用了看似比較「高級」的遊戲引擎,真的就會如此順利嗎?那可不一定。
相較於 Unity 這樣「平易近人」的遊戲引擎,Unreal 從一開始就是瞄準欲打造 3A 級遊戲的專案而生,因此在軟體的調校上較為優秀,許多功能也得要使用者具備程式撰寫能力才能完成,相較於 Unity 來說較難上手。但也因為這些先天條件的不同,相同的美術素材進入遊戲引擎內進行所謂的二次加工後,出來的效果並不盡相同。
舉例來說,Unreal 引擎內建的全局照明解算器 Lightmass 可幫助開發者進行畫面光影的渲染,開發者只要在場景中添加發光體便能產出細緻的陰影效果,玩家若是有玩過《
無盡之劍》系列作品,便能感受到整個遊戲世界光影變化的細緻度。
Unity 雖然是一套方便好用、強調容易上手的引擎,但伴隨而來的代價便是許多東西都是固定好的模組,較難由開發者來進行最佳化。從上述的例子來看,開發者用 Unity 一樣可以實現類似的畫面效果,但可能必須先在外部用其他渲染軟體實現類似的效果,再將完整運算好的成果導入開發專案中,或是尋找資源商店看有沒有類似的工具可以套用,相對費時。
總結以上,可以發現 Unreal 確實有較先進的渲染功能,但也不是萬能的,如果本來的美術素材品質就很差,或是開發者不夠了解引擎的架構,即使使用 Unreal 也可能做出比 Unity 更差的畫面。
終極解決方案 - 自製引擎
使用商業引擎固然省時便利,但這些開發套件並不是開源的工具,工程師沒辦法掌握到引擎的架構,因此若是碰到原廠無法支援的技術問題時,通常就會造成專案延宕。此外,當有些效果商用引擎無法做到時,自製引擎就成為了資深工程師的可行選項。
其中 Qubit Games 的 Owen 在 3D 遊戲引擎的開發上有著 20 年的經驗,不僅曾參與 PC、XBOX、PS2、Dreamcast、GBA、Mobile 等平台的引擎以及遊戲開發工作,更曾在 AMD 擔任圖形工程師時協助 Epic Games 最佳化 Unreal Engine 3。
Owen 自豪地表示先前參與開發的 《魔武爭鋒》可說是台灣第一款 XBox 自製遊戲
談到自製引擎的原因,Owen 表示由於先前在加拿大任職於 AMD 時經常接觸最新的圖形技術,因此便開始在下班後著手開發自製引擎 LynxEngine。Owen 指出這個引擎的特色在於可運算 3D 立體像素(Voxel),這一點透過市面上的商用引擎較難實現。
由於是自製引擎,因此 Owen 很容易進行遊戲畫面的最佳化,像是《
像素戰機》就可在 iPhone 5 上做到每秒運算 32 萬個多邊型,並維持在 60 FPS 的效能。此外由於熟悉引擎的所有架構,因此若是發生問題也容易解決,相同的狀況若是發生在商用引擎上,可能就得繞道而行。
Owen 表示,其實許多國外開發者使用第三方引擎只是為了省時間,不是不會自己做,像是一些玩家熟悉的國外知名遊戲如《
戰地風雲 1》、《
正當防衛》、《
潛龍諜影》系列,或是 Blizzard 開發的眾多遊戲都使用自製引擎開發的。
跨平台作品《潛龍諜影 5:幻痛》使用了自製引擎 FOX Engine 開發
《戰地風雲 1》也是由 EA Dice 自行打造的 Frostbite 引擎開發
如何才能精進對於遊戲引擎的了解?
在現在這個時代由於工具太過便利,即使是業界的開發者也不一定充分了解電腦以及遊戲引擎的架構,在這種狀況下很難對遊戲進行最佳化,遇到問題的話也需要耗費更多的時間去處理。對於未來希望能夠掌握遊戲引擎開發遊戲的玩家,Owen 認為電腦圖學與電腦硬體架構這兩門學科得好好認真學習。
關於電腦圖學的部分,其實就是各種玩家時常聽到數學理論,例如線性代數、矩陣運算等,如果要把渲染的效果做好,更會使用到微積分等學科。
但硬體架構就很難從學校中學習到了,如今的硬體進步速度飛快,在學校很難學習到外界的最新技術,尤其是圖形處理器(GPU)每隔一小段時間就來個大突破,即使是像 Owen 這樣的資深工程師,都必須要經常補充知識充實自己才行。話雖如此,若是有心在這個領域精進的學生,像是計算機概論這樣的學科,也得好好了解打好基礎,才有辦法了解新的事物。