自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

游戲引擎是什么?游戲引擎的層級架構(gòu)

移動開發(fā) Android
游戲引擎,是一組完整的解決方案,能夠在保持一定彈性的原則下,提供最大程度的功能性與便利性。除了包含繪圖引擎的功能之外,可能也會包含播放音樂音效的音效引擎、判斷物理碰撞行為的物理引擎等其他功能面的元件。

游戲程式的領(lǐng)域中,最常聽到的專有名詞,可以說是非 Game Engine(游戲引擎)莫屬了。聽起來是個(gè)很炫很酷的名詞,但其實(shí)游戲引擎一詞經(jīng)常被過度泛稱與誤用。所謂的游戲引擎架構(gòu),由低階 (Low-Level) 至高階 (High-Level) 可細(xì)分為以下三個(gè)層級 (Layer)

  • 繪圖 API(例如:DirectX 與 OpenGL)
  • 繪圖引擎(例如:OGRE、Renderware 與 Gamebryo)與其他引擎
  • 游戲引擎(例如:Unreal 與 Torque)

繪圖 API,負(fù)責(zé)掌管程式與硬體間的溝通,將硬體層的功能與特徵抽象化,提供一組標(biāo)準(zhǔn)化的介面供程式設(shè)計(jì)者使用。目前 DirectX 與 OpenGL 已成為業(yè)界兩大標(biāo)準(zhǔn)。此層級屬于繪圖底層的規(guī)格化與標(biāo)準(zhǔn)化,有利于引擎與游戲開發(fā)者以及整個(gè)業(yè)界的發(fā)展,使開發(fā)者可以專注在更具體與游戲相關(guān)的引擎架構(gòu)上,而不會受制于各家廠商不同硬體實(shí)做內(nèi)容所產(chǎn)生的限制。

繪圖引擎,將底層的繪圖 API 包裝成與實(shí)做無關(guān)的介面,甚至能夠提供數(shù)種不同平臺的繪圖 API 以供跨平臺開發(fā)使用,更進(jìn)一步的為程式設(shè)計(jì)者帶來許多的功能性以及便利性。使用繪圖引擎對于開發(fā)者來說***的益處,就是可以使用以繪圖 API 建構(gòu)起來的各種繪圖架構(gòu)與技術(shù),例如 Scene Graph 架構(gòu)、空間分割、資源管理、光影處理等等。

游戲引擎,則是一組完整的解決方案,能夠在保持一定彈性的原則下,提供***程度的功能性與便利性。除了包含繪圖引擎的功能之外,可能也會包含播放音樂音效的音效引擎、判斷物理碰撞行為的物理引擎等其他功能面的元件。相較于單純的繪圖引擎,一個(gè)完整的游戲引擎,更需要提供許多的編輯器與工具,例如地形編輯器、人物動作編輯器等等。而游戲引擎與美術(shù)設(shè)計(jì)軟體(例如 3ds Max)的整合性也相當(dāng)重要;如果引擎內(nèi)含強(qiáng)大的編輯工具與外掛輸出程式,不僅能為程式開發(fā)者節(jié)省時(shí)間,為企畫與美術(shù)設(shè)計(jì)者帶來便利性,更能夠降低人為錯(cuò)誤的發(fā)生率,進(jìn)一步加速游戲的開發(fā)流程。

除了上述的繪圖 API、繪圖引擎與游戲引擎層級之外,還有一個(gè)稱為游戲框架 (Game Framework) 的層級。在軟體開發(fā)的領(lǐng)域中,所謂的 Framework 是指一個(gè)在軟體系統(tǒng)中可重復(fù)利用的設(shè)計(jì)。與游戲相關(guān)的著名框架系統(tǒng)有用來開發(fā) Xbox360 游戲的 XNA Framework 與微軟大力推行的 .NET Framework??蚣芟到y(tǒng)需要能在提供現(xiàn)成實(shí)做版本的情況下,同時(shí)保留具有彈性且可擴(kuò)充的介面,以期達(dá)到框架的可重復(fù)利用性。

此外,由于游戲產(chǎn)業(yè)的蓬勃發(fā)展,專注于開發(fā)繪圖引擎與游戲引擎的公司也越來越多,于是出現(xiàn)了一個(gè)新興的專有名詞稱之為 Middleware(中介軟體)。中介軟體是用來提供某特定層面的功能性元件,目的在于節(jié)省游戲開發(fā)的時(shí)程與風(fēng)險(xiǎn),包含像是繪圖引擎、物理引擎、人工智慧引擎、音效引擎等等都可以算是中介軟體的一種。目前也有中介軟體開發(fā)廠商,提供包含伺服器端與客戶端程式在內(nèi),開發(fā) MMO 游戲的完整解決方案。

在游戲程式開發(fā)中,最困難的關(guān)鍵點(diǎn)往往在于各層級間的橋接與溝通部分。對于各個(gè)層級,開發(fā)者需要盡可能使它們達(dá)到彼此獨(dú)立不相依的情況,減少各層級之間的耦合性,在這樣的設(shè)計(jì)模式之下,才有利于達(dá)到元件化、層級化的高度可再利用游戲引擎。簡而言之,也就是將介面與實(shí)做分離的設(shè)計(jì)概念。在最理想的情況下,希望能夠?qū)?strong>引擎框架的泛用程式碼與和特定游戲相關(guān)的程式碼兩部分完全分離而治,以期達(dá)到在引擎相關(guān)程式碼變動最少的情況之下,能夠提供給不同的游戲程式碼來使用。

游戲引擎所提供的功能,就像是玩樂高玩具一樣,我們可以使用積木箱里各種不同形狀的基本積木,組合出夢想藍(lán)圖中的巨大模型。這些基本積木就像是游戲引擎中的各種元件,可以根據(jù)不同游戲?qū)0傅牟煌枨?,取出合適的積木元件拼湊組合成為一個(gè)完整的游戲。而這個(gè)從積木組成模型的步驟,則需要一個(gè)規(guī)格化、標(biāo)準(zhǔn)化的程序,使得「組裝」這個(gè)動作,變得很直覺易懂,無論未來積木的內(nèi)容材料是否有改變,都不會對使用者造成太大的影響。積木的「組裝」動作就像是程式的「介面」一樣,任意變動積木的組合方法或是介面的使用方法,都會造成使用者的困擾與不便,并且大幅降低復(fù)制使用經(jīng)驗(yàn)的可能性。

然而在真正的開發(fā)過程中,我們可能會發(fā)現(xiàn),要達(dá)成各層獨(dú)立、介面實(shí)做分開是非常不容易的任務(wù)。特別是在程式架構(gòu)不良的情況下,會使得日漸龐大的游戲程式碼層層交疊、錯(cuò)綜盤根,就像是地基不穩(wěn)卻又拼命往上加蓋的高樓一樣搖搖欲墜。因此正如設(shè)計(jì)模式書中的設(shè)計(jì)思維所述:應(yīng)該著力于將「變動」與「不變動」的部分抽離分開,分別封裝「變動」與「不變動」的概念,才能夠?qū)⑦M(jìn)行變動時(shí)所需耗費(fèi)的心力降至***。

責(zé)任編輯:徐川 來源: net
相關(guān)推薦

2015-07-06 17:12:31

游戲開發(fā)引擎cocos游戲引擎

2015-07-06 17:36:17

Cocos游戲開發(fā)引擎

2011-07-18 11:07:12

iPhone 游戲 引擎

2011-07-18 10:53:09

2011-07-18 12:29:10

2011-07-18 11:23:29

iPhone 游戲 動畫

2011-07-18 11:39:58

iPhone 游戲 引擎

2013-04-07 14:36:19

手機(jī)游戲手機(jī)游戲引擎

2014-07-15 10:34:14

Android游戲引擎

2014-04-20 22:07:31

手游引擎社交

2015-07-08 16:38:10

Cocos游戲引擎

2010-09-30 13:48:10

J2ME游戲引擎

2014-09-25 11:25:19

游戲引擎架構(gòu)設(shè)計(jì)

2014-02-20 10:35:14

JavaScript游戲引擎

2011-05-31 15:45:38

Android 游戲引擎 開源

2014-07-17 11:10:19

Android開源游戲引擎

2015-08-27 16:35:10

Unity游戲引擎Linux

2013-06-07 13:20:16

Android開發(fā)開源游戲引擎游戲開發(fā)

2014-03-04 14:33:03

開源引擎開源游戲項(xiàng)目

2012-12-24 08:46:50

iOSUnity3D
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號