資源描述:
《讓你徹底明白什么叫游戲引擎》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、在閱讀各種游戲介紹的時(shí)候我們常常會碰見“引擎”(Engine)這個(gè)單詞,引擎在游戲中究竟起著什么樣的作用?它的進(jìn)化對于游戲的發(fā)展產(chǎn)生了哪些影響?希望下面這篇文章能為大家釋疑。以希望能夠幫助一些剛進(jìn)入游戲行業(yè)的小菜,和未進(jìn)入游戲行業(yè)的大菜們!一、什么是引擎我們可以把游戲的引擎比作賽車的引擎,大家知道,引擎是賽車的心臟,決定著賽車的性能和穩(wěn)定性,賽車的速度、操縱感這些直接與車手相關(guān)的指標(biāo)都是建立在引擎的基礎(chǔ)上的。游戲也是如此,玩家所體驗(yàn)到的劇情、關(guān)卡、美工、音樂、操作等內(nèi)容都是由游戲的引擎直接控制的,它扮演著中場發(fā)動機(jī)的角色,把游戲
2、中的所有元素捆綁在一起,在后臺指揮它們同時(shí)、有序地工作。簡單地說,引擎就是“用于控制所有游戲功能的主程序,從計(jì)算碰撞、物理系統(tǒng)和物體的相對位置,到接受玩家的輸入,以及按照正確的音量輸出聲音等等?!笨梢?,引擎并不是什么玄乎的東西,無論是2D游戲還是3D游戲,無論是角色扮演游戲、即時(shí)策略游戲、冒險(xiǎn)解謎游戲或是動作射擊游戲,哪怕是一個(gè)只有1兆的小游戲,都有這樣一段起控制作用的代碼。經(jīng)過不斷的進(jìn)化,如今的游戲引擎已經(jīng)發(fā)展為一套由多個(gè)子系統(tǒng)共同構(gòu)成的復(fù)雜系統(tǒng),從建模、動畫到光影、粒子特效,從物理系統(tǒng)、碰撞檢測到文件管理、網(wǎng)絡(luò)特性,還有專業(yè)
3、的編輯工具和插件,幾乎涵蓋了開發(fā)過程中的所有重要環(huán)節(jié),以下就對引擎的一些關(guān)鍵部件作一個(gè)簡單的介紹。首先是光影效果,即場景中的光源對處于其中的人和物的影響方式。游戲的光影效果完全是由引擎控制的,折射、反射等基本的光學(xué)原理以及動態(tài)光源、彩色光源等高級效果都是通過引擎的不同編程技術(shù)實(shí)現(xiàn)的。其次是動畫,目前游戲所采用的動畫系統(tǒng)可以分為兩種:一是骨骼動畫系統(tǒng),一是模型動畫系統(tǒng),前者用內(nèi)置的骨骼帶動物體產(chǎn)生運(yùn)動,比較常見,后者則是在模型的基礎(chǔ)上直接進(jìn)行變形。引擎把這兩種動畫系統(tǒng)預(yù)先植入游戲,方便動畫師為角色設(shè)計(jì)豐富的動作造型。引擎的另一重要
4、功能是提供物理系統(tǒng),這可以使物體的運(yùn)動遵循固定的規(guī)律,例如,當(dāng)角色跳起的時(shí)候,系統(tǒng)內(nèi)定的重力值將決定他能跳多高,以及他下落的速度有多快,子彈的飛行軌跡、車輛的顛簸方式也都是由物理系統(tǒng)決定的。碰撞探測是物理系統(tǒng)的核心部分,它可以探測游戲中各物體的物理邊緣。當(dāng)兩個(gè)3D物體撞在一起的時(shí)候,這種技術(shù)可以防止它們相互穿過,這就確保了當(dāng)你撞在墻上的時(shí)候,不會穿墻而過,也不會把墻撞倒,因?yàn)榕鲎蔡綔y會根據(jù)你和墻之間的特性確定兩者的位置和相互的作用關(guān)系。渲染是引擎最重要的功能之一,當(dāng)3D模型制作完畢之后,美工會按照不同的面把材質(zhì)貼圖賦予模型,這相
5、當(dāng)于為骨骼蒙上皮膚,最后再通過渲染引擎把模型、動畫、光影、特效等所有效果實(shí)時(shí)計(jì)算出來并展示在屏幕上。渲染引擎在引擎的所有部件當(dāng)中是最復(fù)雜的,它的強(qiáng)大與否直接決定著最終的輸出質(zhì)量。引擎還有一個(gè)重要的職責(zé)就是負(fù)責(zé)玩家與電腦之間的溝通,處理來自鍵盤、鼠標(biāo)、搖桿和其它外設(shè)的信號。如果游戲支持聯(lián)網(wǎng)特性的話,網(wǎng)絡(luò)代碼也會被集成在引擎中,用于管理客戶端與服務(wù)器之間的通信。通過上面這些枯燥的介紹我們至少可以了解到一點(diǎn):引擎相當(dāng)于游戲的框架,框架打好后,關(guān)卡設(shè)計(jì)師、建模師、動畫師只要往里填充內(nèi)容就可以了。因此,在3D游戲的開發(fā)過程中,引擎的制作往
6、往會占用非常多的時(shí)間,《馬科斯·佩恩》的MAX-FX引擎從最初的雛形FinalReality到最終的成品共花了四年多時(shí)間,LithTech引擎的開發(fā)共花了整整五年時(shí)間,耗資700萬美元,Monolith公司(LithTech引擎的開發(fā)者)的老板詹森·霍爾甚至不無懊悔地說:“如果當(dāng)初意識到制作自己的引擎要付出這么大的代價(jià)的話,我們根本就不可能去做這種傻事。沒有人會預(yù)料得到五年后的市場究竟是怎樣的?!闭浅鲇诠?jié)約成本、縮短周期和降低風(fēng)險(xiǎn)這三方面的考慮,越來越多的開發(fā)者傾向于使用第三方的現(xiàn)成引擎制作自己的游戲,一個(gè)龐大的引擎授權(quán)市場已
7、經(jīng)形成。二、引擎的進(jìn)化曾經(jīng)有一段時(shí)期,游戲開發(fā)者關(guān)心的只是如何盡量多地開發(fā)出新的游戲并把它們推銷給玩家。盡管那時(shí)的游戲大多簡單粗糙,但每款游戲的平均開發(fā)周期也要達(dá)到8到10個(gè)月以上,這一方面是由于技術(shù)的原因,另一方面則是因?yàn)閹缀趺靠钣螒蚨家獜念^編寫代碼,造成了大量的重復(fù)勞動。漸漸地,一些有經(jīng)驗(yàn)的開發(fā)者摸索出了一條偷懶的方法,他們借用上一款類似題材的游戲中的部分代碼作為新游戲的基本框架,以節(jié)省開發(fā)時(shí)間和開發(fā)費(fèi)用。根據(jù)馬老先生的生產(chǎn)力學(xué)說,單位產(chǎn)品的成本因生產(chǎn)力水平的提高而降低,自動化程度較高的手工業(yè)者最終將把那些生產(chǎn)力低下的手工業(yè)
8、者淘汰出局,引擎的概念就是在這種機(jī)器化作業(yè)的背景下誕生的。每一款游戲都有自己的引擎,但真正能獲得他人認(rèn)可并成為標(biāo)準(zhǔn)的引擎并不多??v觀九年多的發(fā)展歷程,我們可以看出引擎最大的驅(qū)動力來自于3D游戲,尤其是3D射擊游戲。盡管像Infinity這樣的2D引擎也有著相當(dāng)久