banner
Olimi

Olimi

SCUT 小菜鸡
github
bilibili

3D遊戲引擎入門課程1——概述

寫在前面#

本專欄內容均為學堂在線慕課《3D 遊戲引擎架構設計基礎》中的內容。個人將其轉化成文字和圖片的版本(個人更加喜歡文字版本的教程,閱讀速度更快很多),方便查閱。
原課程鏈接:3D 遊戲引擎架構設計基礎
本文由整份的 word 文檔轉化而來,可選擇閱讀整份文檔(轉化成的 web 專欄閱讀起來感覺會更加舒服)。鏈接放到最後。

導圖#

課程思維導圖:
在這裡插入圖片描述
大圖查看鏈接:高清版
因此,本專欄將根據導圖的索引,分為 7 個章節。

索引#

概述#

遊戲引擎概述#

定義:如果把遊戲開發中的核心基礎功能獨立抽象出來,供遊戲開發者調用,這樣的組件被稱為遊戲引擎。使用遊戲引擎開發遊戲,能夠提高遊戲的開發效率和質量。在早期的遊戲開發中,設計者們逐步地、不斷地抽取出遊戲設計的公共組件,將這些功能抽象化、模塊化,形成了遊戲引擎。隨著遊戲開發的不斷成熟,遊戲引擎的功能已經越來越強大。

image
其中開源的遊戲引擎包括,Unreal Engine 4,OGRE,Panda3D 等,流行的商業遊戲引擎包括,Unity 等。下文將主要通過 OGRE 和 Panda3D 進行举例。

遊戲引擎框架概述#

遊戲引擎的需求分析,即遊戲引擎應該包含的功能。

其中環境需求包括:

  • 目標硬件

  • 設備驅動

  • 操作系統

  • 第三方軟件包和中間件

  • 支撐引擎的平台獨立層

功能需求包括:

  • 引擎的核心基礎模塊

  • 引擎資源管理

  • 引擎場景管理和圖形渲染

  • 角色動畫

  • 聲音

  • 物理和碰撞檢測

  • 人工智能

  • 圖形用戶界面 GUI

  • 腳本處理等

遊戲引擎的設計原則包括:功能完善(多),運行效率高(快),性能穩定(好),同時具備良好的擴展性。

遊戲引擎的架構設計,應將以下內容按照一定的方式組合在一起:

  • 基礎平台的支撐組件

  • 第三方的基礎庫:數據運算、圖形處理、數據結構等

  • 引擎功能(如上面功能需求所述)

遊戲引擎層次化組織架構:

在這裡插入圖片描述
在這裡插入圖片描述

功能遊戲#

功能遊戲的分類:
在這裡插入圖片描述

遊戲引擎中的設計模式#

創建型模式:

  • 單例模式:系統中只存在一個實例,一般是全程存在的。

  • 抽象工廠模式:為創建若干個有關聯的工廠類提供接口,是抽象類,無需指定具體類。

  • 工廠模式:提供若干個有關聯對象的接口,是具體類,可以實例化。

結構性模式:

  • 適配器模式:將一個類的接口轉換成所希望的另外一個類的接口。讓原本因接口不兼容而不能一起使用的那些類可以一起工作。通過該模式可以為第三方的基礎庫定義統一的接口。

行為性模式:

  • 迭代器模式:順序訪問一個聚合對象中的各個元素,但不需要了解該對象的內部表示。

  • 觀察者模式:由多個觀察者對象同時監聽某個主體,當主體對象發生變化時,通知所有的觀察者,並做成響應。

  • 訪問者模式:將一些操作封裝,並施加於某種數據結構元素上,當修改封裝的操作時,不會影響被施加的數據結構,即可以將不穩定的方法和穩定的數據結構隔離。如,將渲染算法封裝為訪問者模式的類,可將方法和數據隔離,如果某個數據結構的某個算法發生改變,則只需要修改算法,而不影響數據結構的元素。

文檔鏈接#

[金山文檔] 3D 遊戲引擎基礎.doc

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。