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