王龍+李韜偉+楊振發
摘 要:電子游戲在近半個世紀發展過程中,成為了發展最迅速的行業之一。游戲引擎是縮短游戲開發周期、提高游戲研發效率的應用程序組件集合,包含多種功能模塊接口,是保證游戲開發質量的關鍵。通過分析游戲引擎的國內外研究現狀,剖析游戲引擎的組成原理,提出了游戲引擎的基本架構,分析了游戲引擎開發中繪制和事件雙驅動的運行流程機制,設計了游戲引擎評價分析因子,并結合實例進行了簡要說明,最后展望了游戲引擎的發展前景。
關鍵詞:電子游戲;游戲引擎;Unreal;CryEngine;Unity3D
DOIDOI:10.11907/rjdk.172317
中圖分類號:TP301
文獻標識碼:A 文章編號:1672-7800(2018)002-0005-03
0 引言
電子游戲從上世紀60年代出現以后,在短短的幾十年時間發展迅速,極大地推動了軟硬件行業發展。2013 年游戲《Grand Theft Auto V》(Rockstar 2014)發布的 24小時內,就為開發商創造了8億美元的收入[1-2]。無獨有偶,2016年游戲《王者榮耀》成為騰訊科技公司的最佳項目之一,為公司帶來豐厚的利潤與廣闊的市場空間。電子游戲已然成為當今時代一個現象級的產物,不僅能夠娛樂大眾,還推動了各個行業的發展,是經濟的重要組成部分之一[3]。
游戲引擎是縮短游戲開發周期、提高游戲研發效率的應用程序組件集合,包含多種功能模塊接口,是游戲開發質量的關鍵。游戲開發是多個工種合力完成的一項大型復雜的工程[7-9]。游戲引擎出現之前,需要各個領域的專家耗費大量時間與精力才能完成一個簡單的游戲。游戲引擎出現后,許多功能組件都進行了封裝,開發人員不再需要面對底層開發,不必從零開始,從而有效提高了游戲開發效率。
游戲引擎在最近幾年得到了快速發展,也成為互聯網用戶訪問搜索的熱點話題之一,圖1是游戲引擎的百度指數圖。百度指數是以大量網民在百度產生的互聯網行為數據為基礎,研究關鍵詞搜索趨勢、洞察網民興趣和需求、監測輿情動向等問題的數據分析平臺。百度指數能夠反映事物在大眾傳播和輿論中的影響力。游戲引擎的搜索趨勢圖顯示了游戲引擎受大眾關注的程度。游戲引擎自2011年后,整體發展比較平穩,15、16年出現過一次較大波動。具體而言,2014年雙核心顯卡成功問世,意味著普通PC已可以渲染、繪制更精致細膩的3D電子游戲畫面,因此游戲引擎引起了商業界、工業界和學術界的關注。2015年Unity3D多平臺游戲引擎Unity5正式對外發布,圖1 游戲引擎百度指數圖使獨立開發游戲變得越來越容易,一時間游戲引擎的概念再次被熱議。2016年為VR元年,VR受到了廣泛熱捧,游戲引擎也因此備受關注。
時至今日,游戲引擎的數量在世界范圍內有上百種,著名的有Unreal、CryEngine、Unity3D、Torque3D等[5-6]。不同的游戲引擎有著共同的框架結構,本文對游戲引擎的原理以及基本組成進行了研究,針對Unreal、CryEngine、Unity3D等最常用的游戲引擎展開分析,并對游戲引擎的發展作出展望。
1 游戲引擎基本架構
引擎在信息技術領域是指電子平臺上運行程序或系統的核心組件,開發人員利用游戲引擎能夠高效、便捷地設計和編寫程序需要實現的功能[6]。游戲引擎是信息技術領域常見的三大引擎之一,即搜索引擎、殺毒引擎和游戲引擎。游戲引擎常被比作汽車引擎,游戲者感受到的游戲場景、劇情、音樂、邏輯等猶如汽車之于用戶的速度、扭矩等,游戲引擎就是汽車的發動機,將游戲中的所有元素有序地組織在一起,為游戲提供強力支撐[10-11]。
游戲開發整個過程可以描述為,開發人員在計算機、音響、顯示器等硬件設備上,在程序開發環境下利用開發工具,將游戲場景與真實世界融合顯示給玩家,并針對情景設計游戲故事主題,以保證游戲的趣味性。因此,基于游戲引擎開發過程的思維角度,本文將游戲引擎架構設計為以下組成部分,如圖2所示。
游戲引擎框架包括4部分:硬件、開發、場景、游戲性,這4個部分共同作用實現游戲引擎,具體介紹如下:①硬件部分主要包括:I/O接口、聲音、網絡和圖形,此部分完成游戲引擎對硬件資源的管理與使用;②開發部分主要包括:開發環境、腳本解析、插件,為開發人員使用引擎、靈活裝配功能組件提供支持;③場景部分為兩部分:渲染引擎和物理引擎,這是游戲引擎最核心的部分。其中,渲染引擎還包括:光照、陰影、動畫、粒子特效等子系統,是游戲體現真實感、交互性的關鍵組成。物理引擎由兩部分組成:一是碰撞檢測部分,碰撞檢測是虛擬世界中模型與模型之間的物理關系,確保了虛擬場景中的模型不被“穿過”,提高了場景的交互真實感;二是物理模擬部分,包括重力、剛性物理、柔性物理,豐富了虛擬場景對真實世界的模擬;④游戲性部分主要包括:資源管理、場景管理、數學庫與人工智能(AI),該部分包括了游戲邏輯、關卡設計,是用戶游戲趣味性體驗的重要部分。
2 游戲引擎運行流程
游戲引擎運行在計算機、電子設備等硬件平臺上,通過引擎初始化啟動硬件資源,按照繪制流程運行游戲設計人員設計的代碼,實現游戲整個過程。游戲引擎目前已支持在多種不同平臺上運行,既可支持傳統的桌面平臺,也支持頁面牽引的網絡平臺;既支持桌面端的Windows系統和Mac系統,也支持移動端的Andriod系統和iPhone系統。不同平臺、不同系統運行略有差異,總體上都滿足如圖3所示的運行流程。
游戲引擎運行是按照場景繪制和事件觸發組織整個游戲過程。根據運行圖,流程包括兩部分:①場景繪制驅動運行,主要是指在游戲場景中光影發生強弱改變、視角發生移動、動畫產生新序列、粒子系統粒子正常衰減等造成的場景內容本身的變化,游戲引擎則會觸發重新繪制場景機制,運行程序;②事件驅動的場景變化,比如:輸入設備感知到用戶發生了向前移動的變化,以及場景模型碰撞被檢測、關卡切換等交互事件,同樣會引起運行程序啟動不同模塊。endprint
3 游戲引擎評價分析
游戲引擎經過幾十年的發展已有上百種產品,功能也越來越豐富、強大,涌現出了一系列優秀的游戲引擎,如:重量級的規模龐大的Unreal虛幻以及CryEngine;中量級易于快速掌握使用的Unity3D以及DOOM/Quake等。可以說對于任意一個新設計的游戲,它能實現什么樣的游戲效果,很大程度上依賴游戲引擎對它的支持。那么,如何評價眾多游戲引擎,本文給出以下幾個評價因素作為游戲引擎分析的依據,即:編輯器、第三方插件、SDK接口、場景繪制功能、硬件配置性能、平臺及市場占有率。
編輯器是開發人員的工具,“工欲善其事,必先利其器”,一個好的編輯平臺會大大縮短開發周期;對于第三方插件和SDK接口,當前在軟件方面集成優秀的庫與插件的效率遠遠高于自己開發,這是游戲引擎兼容能力的體現;場景繪制能力是檢驗游戲引擎的核心標準,是游戲最出彩的部分,包括場景光照、凹凸貼圖、水面、霧等高級效果是檢驗游戲引擎最直觀的標準;目前,隨著移動設備的快速發展,支持跨平臺發布游戲成為游戲引擎的最大需求;最后,市場占有率是能夠間接反映游戲引擎功能的一個指標,市場越熱其發展越快,功能也更新、更完善。
下面結合實例進行說明,如圖4所示,Unity3D在近幾年里,其百度搜索指數從2011年的與Unreal和CryEngine齊頭并進,到2017年已成為游戲引擎的一枝獨秀。事實上,這幾年Unity3D已多次進行了版本升級,構建了完備的功能,從過去簡單的游戲實現方式,發展成如今的場景繪制栩栩如生,可支持多傳感器交互以及Windows、iOS、strawberry、Andriod等多個平臺,同時支持網頁游戲的開發與制作的多樣化功能。功能的全面與完善帶來了良好的口碑,在市場上發展勁頭十足。
4 總結與展望
本文通過對游戲引擎現狀與原理的研究,提出了游戲引擎的基本架構,分析了利用游戲引擎開發游戲中繪制驅動和事件驅動的運行流程機制,設計了游戲引擎評價分析因子,并結合實例進行了簡要說明。游戲引擎是一系列計算機軟硬件的接口,隨著相關產業的發展,游戲引擎可支持在更多平臺上運行,游戲的開發周期也將大大縮短。此外,Unity3D作為一款中輕量級的游戲引擎,近年來在社區的經營推動下,獲得了快速發展,在場景渲染與交互方面表現極為突出,已適應在多種不同平臺下的開發,具有廣闊的應用前景。
參考文獻:
[1] 馬越.互聯網經濟估值研究[J].科技與企業,2016(1):19-20.
[2] 李金泰.電子游戲虛擬空間構成的理論研究[D].北京:清華大學,2015.
[3] 耿衛東.三維游戲引擎設計與實現[M].杭州:浙江大學出版社,2008.
[4] 陳啟祥,王長順.網絡游戲引擎中的同步技術研究[J].軟件導刊,2009,8(3):100-102.
[5] AZIZ E S S, CHANG Y, ESCHE S K, et al. Virtual mechanical assembly training based on a 3D game engine[J]. Computer-Aided Design and Applications, 2015,12(2):119-134.
[6] JACOBSON J, LEWIS M. Game engine virtual reality with CaveUT[J]. Computer, 2005,38(4):79-82.
[7] 王龍,任步春,等.基于Unity3D的FPS教育游戲研究與設計[J].軟件導刊,2016,15(11):79-81.
[8] CHEN L, HUANG X. Research and realization of building the three-dimensional runway of Unity3D game based on PSO algorithm[C].International Conference on Computer Science and Network Technology, 2016:452-456.
[9] 宣雨松.Unity 3D游戲開發[D].北京:人民郵電出版社,2012.
[10] EBERLY D H,EBERLY D H. 3D game engine design: a practical approach to real-time computer graphics[C].Morgan Kaufmann Publishers Inc,2006:1-6.
[11] ERICLENGYEL,倫吉爾,詹海生.3D游戲與計算機圖形學中的數學方法[M].北京:清華大學出版社,2016.endprint