在閱讀各種游戲介紹的時候我們常常會碰見“引擎”(Engine)這個單詞,引擎在游戲中究竟起著什么樣的作用?它的進化對于游戲的發展產生了哪些影響?希望下面這篇文章能為大家釋疑。以希望能夠幫助一些剛進入游戲行業的小菜,和未進入游戲行業的大菜們!
一、什么是引擎
我們可以把游戲的引擎比作賽車的引擎,大家知道,引擎是賽車的心臟,決定著賽車的性能和穩定性,賽車的速度、操縱感這些直接與車手相關的指標都是建立在引擎的基礎上的。游戲也是如此,玩家所體驗到的劇情、關卡、美工、音樂、操作等內容都是由游戲的引擎直接控制的,它扮演著中場發動機的角色,把游戲中的所有元素捆綁在一起,在后臺指揮它們同時、有序地工作。簡單地說,引擎就是“用于控制所有游戲功能的主程序,從計算碰撞、物理系統和物體的相對位置,到接受玩家的輸入,以及按照正確的音量輸出聲音等等。”
可見,引擎并不是什么玄乎的東西,無論是2D游戲還是3D游戲,無論是角色扮演游戲、即時策略游戲、冒險解謎游戲或是動作射擊游戲,哪怕是一個只有1兆的小游戲,都有這樣一段起控制作用的代碼。經過不斷的進化,如今的游戲引擎已經發展為一套由多個子系統共同構成的復雜系統,從建模、動畫到光影、粒子特效,從物理系統、碰撞檢測到文件管理、網絡特性,還有專業的編輯工具和插件,幾乎涵蓋了開發過程中的所有重要環節,以下就對引擎的一些關鍵部件作一個簡單的介紹。首先是光影效果,即場景中的光源對處于其中的人和物的影響方式。游戲的光影效果完全是由引擎控制的,折射、反射等基本的光學原理以及動態光源、彩色光源等高級效果都是通過引擎的不同編程技術實現的。
其次是動畫,目前游戲所采用的動畫系統可以分為兩種:一是骨骼動畫系統,一是模型動畫系統,前者用內置的骨骼帶動物體產生運動,比較常見,后者則是在模型的基礎上直接進行變形。引擎把這兩種動畫系統預先植入游戲,方便動畫師為角色設計豐富的動作造型。引擎的另一重要功能是提供物理系統,這可以使物體的運動遵循固定的規律,例如,當角色跳起的時候,系統內定的重力值將決定他能跳多高,以及他下落的速度有多快,子彈的飛行軌跡、車輛的顛簸方式也都是由物理系統決定的。
碰撞探測是物理系統的核心部分,它可以探測游戲中各物體的物理邊緣。當兩個3D物體撞在一起的時候,這種技術可以防止它們相互穿過,這就確保了當你撞在墻上的時候,不會穿墻而過,也不會把墻撞倒,因為碰撞探測會根據你和墻之間的特性確定兩者的位置和相互的作用關系。
渲染是引擎最重要的功能之一,當3D模型制作完畢之后,美工會按照不同的面把材質貼圖賦予模型,這相當于為骨骼蒙上皮膚,最后再通過渲染引擎把模型、動畫、光影、特效等所有效果實時計算出來并展示在屏幕上。渲染引擎在引擎的所有部件當中是最復雜的,它的強大與否直接決定著最終的輸出質量。
引擎還有一個重要的職責就是負責玩家與電腦之間的溝通,處理來自鍵盤、鼠標、搖桿和其它外設的信號。如果游戲支持聯網特性的話,網絡代碼也會被集成在引擎中,用于管理客戶端與服務器之間的通信。
通過上面這些枯燥的介紹我們至少可以了解到一點:引擎相當于游戲的框架,框架打好后,關卡設計師、建模師、動畫師只要往里填充內容就可以了。因此,在3D游戲的開發過程中,引擎的制作往往會占用非常多的時間,《馬科斯·佩恩》的MAX-FX引擎從最初的雛形Final Reality到最終的成品共花了四年多時間,LithTech引擎的開發共花了整整五年時間,耗資700萬美元,Monolith公司(LithTech引擎的開發者)的老板詹森·霍爾甚至不無懊悔地說:“如果當初意識到制作自己的引擎要付出這么大的代價的話,我們根本就不可能去做這種傻事。沒有人會預料得到五年后的市場究竟是怎樣的。”
正是出于節約成本、縮短周期和降低風險這三方面的考慮,越來越多的開發者傾向于使用第三方的現成引擎制作自己的游戲,一個龐大的引擎授權市場已經形成。
文章來源:
http://ly-weiwei.blog.163.com/blog/static/729752832008112812746161