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

成都創(chuàng)新互聯(lián)是專業(yè)的黃陵網(wǎng)站建設公司,黃陵接單;提供成都網(wǎng)站設計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行黃陵網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
- 繪圖 API(例如:DirectX 與 OpenGL)
- 繪圖引擎(例如:OGRE、Renderware 與 Gamebryo)與其他引擎
- 游戲引擎(例如:Unreal 與 Torque)
繪圖 API,負責掌管程式與硬體間的溝通,將硬體層的功能與特徵抽象化,提供一組標準化的介面供程式設計者使用。目前 DirectX 與 OpenGL 已成為業(yè)界兩大標準。此層級屬于繪圖底層的規(guī)格化與標準化,有利于引擎與游戲開發(fā)者以及整個業(yè)界的發(fā)展,使開發(fā)者可以專注在更具體與游戲相關的引擎架構上,而不會受制于各家廠商不同硬體實做內(nèi)容所產(chǎn)生的限制。
繪圖引擎,將底層的繪圖 API 包裝成與實做無關的介面,甚至能夠提供數(shù)種不同平臺的繪圖 API 以供跨平臺開發(fā)使用,更進一步的為程式設計者帶來許多的功能性以及便利性。使用繪圖引擎對于開發(fā)者來說***的益處,就是可以使用以繪圖 API 建構起來的各種繪圖架構與技術,例如 Scene Graph 架構、空間分割、資源管理、光影處理等等。
游戲引擎,則是一組完整的解決方案,能夠在保持一定彈性的原則下,提供***程度的功能性與便利性。除了包含繪圖引擎的功能之外,可能也會包含播放音樂音效的音效引擎、判斷物理碰撞行為的物理引擎等其他功能面的元件。相較于單純的繪圖引擎,一個完整的游戲引擎,更需要提供許多的編輯器與工具,例如地形編輯器、人物動作編輯器等等。而游戲引擎與美術設計軟體(例如 3ds Max)的整合性也相當重要;如果引擎內(nèi)含強大的編輯工具與外掛輸出程式,不僅能為程式開發(fā)者節(jié)省時間,為企畫與美術設計者帶來便利性,更能夠降低人為錯誤的發(fā)生率,進一步加速游戲的開發(fā)流程。
除了上述的繪圖 API、繪圖引擎與游戲引擎層級之外,還有一個稱為游戲框架 (Game Framework) 的層級。在軟體開發(fā)的領域中,所謂的 Framework 是指一個在軟體系統(tǒng)中可重復利用的設計。與游戲相關的著名框架系統(tǒng)有用來開發(fā) Xbox360 游戲的 XNA Framework 與微軟大力推行的 .NET Framework。框架系統(tǒng)需要能在提供現(xiàn)成實做版本的情況下,同時保留具有彈性且可擴充的介面,以期達到框架的可重復利用性。
此外,由于游戲產(chǎn)業(yè)的蓬勃發(fā)展,專注于開發(fā)繪圖引擎與游戲引擎的公司也越來越多,于是出現(xiàn)了一個新興的專有名詞稱之為 Middleware(中介軟體)。中介軟體是用來提供某特定層面的功能性元件,目的在于節(jié)省游戲開發(fā)的時程與風險,包含像是繪圖引擎、物理引擎、人工智慧引擎、音效引擎等等都可以算是中介軟體的一種。目前也有中介軟體開發(fā)廠商,提供包含伺服器端與客戶端程式在內(nèi),開發(fā) MMO 游戲的完整解決方案。
在游戲程式開發(fā)中,最困難的關鍵點往往在于各層級間的橋接與溝通部分。對于各個層級,開發(fā)者需要盡可能使它們達到彼此獨立不相依的情況,減少各層級之間的耦合性,在這樣的設計模式之下,才有利于達到元件化、層級化的高度可再利用游戲引擎。簡而言之,也就是將介面與實做分離的設計概念。在最理想的情況下,希望能夠將引擎框架的泛用程式碼與和特定游戲相關的程式碼兩部分完全分離而治,以期達到在引擎相關程式碼變動最少的情況之下,能夠提供給不同的游戲程式碼來使用。
游戲引擎所提供的功能,就像是玩樂高玩具一樣,我們可以使用積木箱里各種不同形狀的基本積木,組合出夢想藍圖中的巨大模型。這些基本積木就像是游戲引擎中的各種元件,可以根據(jù)不同游戲專案的不同需求,取出合適的積木元件拼湊組合成為一個完整的游戲。而這個從積木組成模型的步驟,則需要一個規(guī)格化、標準化的程序,使得「組裝」這個動作,變得很直覺易懂,無論未來積木的內(nèi)容材料是否有改變,都不會對使用者造成太大的影響。積木的「組裝」動作就像是程式的「介面」一樣,任意變動積木的組合方法或是介面的使用方法,都會造成使用者的困擾與不便,并且大幅降低復制使用經(jīng)驗的可能性。
然而在真正的開發(fā)過程中,我們可能會發(fā)現(xiàn),要達成各層獨立、介面實做分開是非常不容易的任務。特別是在程式架構不良的情況下,會使得日漸龐大的游戲程式碼層層交疊、錯綜盤根,就像是地基不穩(wěn)卻又拼命往上加蓋的高樓一樣搖搖欲墜。因此正如設計模式書中的設計思維所述:應該著力于將「變動」與「不變動」的部分抽離分開,分別封裝「變動」與「不變動」的概念,才能夠將進行變動時所需耗費的心力降至***。
分享名稱:游戲引擎是什么?游戲引擎的層級架構
轉載源于:http://fisionsoft.com.cn/article/coidejg.html


咨詢
建站咨詢
