「遊戲引擎」究竟是什麼

2021-09-30 09:23:59 字數 1249 閱讀 1343

我們可以把遊戲的引擎比作賽車的引擎

大家知道,引擎是賽車的心臟,決定著賽車的效能和穩定性,賽車的速度、操縱感等都是建立在引擎的基礎上的。遊戲也是如此,玩家所體驗到的劇情、關卡、美工、**、操作等內容都是由遊戲的引擎直接控制的,它把遊戲中的所有元素**在一起,在後台指揮它們同時、有序地工作。簡單地說,引擎就是「用於控制所有遊戲功能的主程式,從計算碰撞、物理系統和物體的相對位置,到接受玩家的輸入,以及按照正確的音量輸出聲音等等。

無論是2d遊戲還是3d遊戲,無論是角色扮演遊戲、即時策略遊戲、冒險解謎遊戲或是動作射擊遊戲,都有這樣一段起控制作用的**。

經過不斷的進化,如今的遊戲引擎已經發展為一套由多個子系統共同構成的複雜系統,從建模、動畫到光影、粒子特效,從物理系統、碰撞檢測到檔案管理、網路特性,還有專業的編輯工具和外掛程式,幾乎涵蓋了開發過程中的所有重要環節。

以下就對引擎的一些

關鍵部件

作乙個簡單的介紹

首先是光影效果,即場景中的光源對處於其中的人和物的影響方式。遊戲的光影效果完全是由引擎控制的,折射、反射等基本的光學原理以及動態光源、彩色光源等高階效果都是通過引擎的不同程式設計技術實現的。

其次是動畫,目前遊戲所採用的動畫系統可以分為兩種:一是骨骼動畫系統,一是模型動畫系統,前者用內建的骨骼帶動物體產生運動,比較常見,後者則是在模型的基礎上直接進行變形。引擎把這兩種動畫系統預先植入遊戲,方便動畫師為角色設計豐富的動作造型。

引擎的另一重要功能是提供

物理系統,這可以使物體的運動遵循固定的規律,例如,當角色跳起的時候,系統內定的重力值將決定他能跳多高,以及他下落的速度有多快,子彈的飛行軌跡、車輛的顛簸方式也都是由物理系統決定的。

碰撞探測是物理系統的核心部分,它可以探測遊戲中各物體的物理邊緣。當兩個3d物體撞在一起的時候,這種技術可以防止它們相互穿過,這就確保了當你撞在牆上的時候,不會穿牆而過,也不會把牆撞倒,因為碰撞探測會根據你和牆之間的特性確定兩者的位置和相互的作用關係。

渲染是引擎最重要的功能之一,當3d模型製作完畢之後,美工會按照不同的面把材質貼圖賦予模型,這相當於為骨骼蒙上**,最後再通過渲染引擎把模型、動畫、光影、特效等所有效果實時計算出來並展示在螢幕上。渲染引擎在引擎的所有部件當中是最複雜的,它的強大與否直接決定著最終的輸出質量。

引擎還有乙個重要的職責就是負責玩家與電腦之間的溝通,處理來自鍵盤、滑鼠、搖桿和其它外設的訊號。如果遊戲支援聯**性的話,網路**也會被整合在引擎中,用於管理

客戶端與伺服器之間的通訊。

Bundle 究竟是什麼?

bundle用於場景 在我印象中比較深刻的是,一般用於activity之間傳遞數值,也用於handler傳送訊息,如下 intent intent new intent bundle bundle new bundle bundle.putstring key value intent.putext...

分析EOF究竟是什麼

eof僅僅是一種狀態或者說條件,需要觸發。read呼叫遇到檔案結尾,觸發該條件,結果將返回0。針對eof,對於標準輸入裝置,普通檔案,管道檔案,網路套接字檔案是read如何觸發呢?下面程式將說明 server.c 是socket套接字服務端,目的為了網路套接字檔案是read如何觸發測試用的。serv...

分析EOF究竟是什麼

eof僅僅是一種狀態或者說條件,需要觸發。read呼叫遇到檔案結尾,觸發該條件,結果將返回0。針對eof,對於標準輸入裝置,普通檔案,管道檔案,網路套接字檔案是read如何觸發呢?下面程式將說明 server.c 是socket套接字服務端,目的為了網路套接字檔案是read如何觸發測試用的。serv...