游戏引擎
?????????? 關于游戲引擎
?
一.什么是游戲引擎?
??游戲引擎是指一些已編寫好的可編輯電腦游戲系統或者一些交互式實時圖像應用程序的核心組件。這些系統為游戲設計者提供各種編寫游戲所需的各種工具,其目的在于讓游戲設計者能容易和快速地做出游戲程式而不用由零開始。大部分都支持多種操作平臺,如Linux、Mac OS X、微軟Windows。游戲引擎包含以下系統:渲染引擎(即“渲染器”,含二維圖像引擎和三維圖像引擎)、物理引擎、碰撞檢測系統、音效、腳本引擎、電腦動畫、人工智能、網絡引擎以及場景管理。簡單來說,就是一種可視化游戲編輯器。是一個為運行某一類游戲的機器設計的能夠被機器識別的代碼(指令)集合。它像一個發動機,控制著游戲的運行。一個游戲作品可以分為游戲引擎和游戲資源兩大部分。游戲資源包括圖象,聲音,動畫等部分,列一個公式就是:游戲=引擎(程序代碼)+資源(圖象,聲音,動畫等)。游戲引擎則是按游戲設計的要求順序地調用這些資源。
?
二.著名的游戲引擎有哪些?
著名的MMOG專用商業引擎有:
EA DICE的****寒霜引擎、寒霜2引擎、寒霜3引擎。(戰地系列游戲作品就是采用此引擎)
BigWorld公司的BigWorld引擎。
Emergent公司的Gamebryo引擎。
EPIC公司的虛幻引擎、虛幻2引擎、虛幻3引擎、虛幻4引擎。
Crytek公司的Cry Engine 1引擎、Cry Engine 2引擎和Cry Engine 3引擎。(孤島危機系列、戰爭前線等)
Garage Games公司的Torque 3D引擎。
Hero公司的Hero Engine引擎。
北京目標軟件公司的OverMax引擎。
Quantumas引擎(國人開發)
Valve公司的Source Engine(起源引擎)
Infinity Ward工作室的IW 引擎。(其中有IW 2.0、IW 3.0、IW 4.0、IW 5.0版本,著名的使命召喚系列游戲作品就是采用此引擎,中文譯名無盡引擎)
幻影游戲引擎(國產,支持PC、IOS、Android的3D和2D游戲開發,也可以支持Web2D),支持程序語言:C++、Lua、VB、C#、易語言、Objective C、javascript。
搜狐暢游公司的黑火引擎
完美世界公司的Athena引擎
Unity Technologies開發的Unity3D引擎
日本SiliconStudio公司的Orochi 4(Mizuchi圖形引擎)(square-enix公司Gunslinger Stratos系列使用的引擎)
日本Square enix公司的Luminous(夜光引擎)(最終幻想15使用的引擎)
克羅地亞Croteam公司的Serious引擎(代表游戲為《英雄薩姆》、《英雄薩姆:第二次遭遇》),Serious II引擎(代表游戲為《英雄薩姆2》)
?
三.游戲引擎有哪些可實現功能?
??游戲引擎是一套由多個子系統共同構成的復雜系統,從建模、動畫到光影、粒子特效,從物理系統、碰撞檢測到文件管理、網絡特性,還有專業的編輯工具和插件,幾乎涵蓋了開發過程中的所有重要環節,以下就對引擎的一些關鍵部件作一個簡單的介紹。
首先是光影效果,即場景中的光源對處于其中的人和物的影響方式。游戲的光影效果完全是由引擎控制的,折射、反射等基本的光學原理以及動態光源、彩色光源等高級效果都是通過引擎的不同編程技術實現的。
其次是動畫,游戲所采用的動畫系統可以分為兩種:一是骨骼動畫系統,一是模型動畫系統,前者用內置的骨骼帶動物體產生運動,比較常見,后者則是在模型的基礎上直接進行變形。引擎把這兩種動畫系統預先植入游戲,方便動畫師為角色設計豐富的動作造型。
引擎的另一重要功能是提供物理系統,這可以使物體的運動遵循固定的規律,例如,當角色跳起的時候,系統內定的重力值將決定他能跳多高,以及他下落的速度有多快,子彈的飛行軌跡、車輛的顛簸方式也都是由物理系統決定的。
碰撞探測是物理系統的核心部分,它可以探測游戲中各物體的物理邊緣。當兩個3D物體撞在一起的時候,這種技術可以防止它們相互穿過,這就確保了當你撞在墻上的時候,不會穿墻而過,也不會把墻撞倒,因為碰撞探測會根據你和墻之間的特性確定兩者的位置和相互的作用關系。
渲染是引擎最重要的功能之一,當3D模型制作完畢之后,美工會按照不同的面把材質貼圖賦予模型,這相當于為骨骼蒙上皮膚,最后再通過渲染引擎把模型、動畫、光影、特效等所有效果實時計算出來并展示在屏幕上。渲染引擎在引擎的所有部件當中是最復雜的,它的強大與否直接決定著最終的輸出質量。
引擎還有一個重要的職責就是負責玩家與電腦之間的溝通,處理來自鍵盤、鼠標、搖桿和其它外設的信號。如果游戲支持聯網特性的話,網絡代碼也會被集成在引擎中,用于管理客戶端與服務器之間的通信。
也就是說,引擎相當于游戲的框架,框架搭好后,關卡設計師、建模師、動畫師只要往里填充內容就可以了。
?
四.開發一款游戲引擎需要用到哪些知識與技術?
??制作游戲引擎需要學習數學基礎,算法,圖形學,數據結構,數據庫,OpenGL/DirectX等圖形的API,以及C/C++技術。
總結
- 上一篇: 电能计量常用架构
- 下一篇: Keil5 EventRecorder