CryEngine架構概覽

2021-08-25 08:19:08 字數 2242 閱讀 2484

這裡說的架構只是從大體上初略描述,以後還會繼續更新詳細的說明
從模組的分布上來看cryengine3和cryengine2沒有區別,其主要的dll從檔名就可以看出個大概:

這裡最有意思的是:

其中crysystem是引擎和外界互動的介面,從crysystem中可以獲取各個介面,例如:

igame* 遊戲框架;

inetwork* 網路介面;

irenderer* renderer介面;

iinput* input system,滑鼠鍵盤手柄等等

itimer* 計時器的各種介面;

iconsole 這個不是說console平台,而是引擎提供的命令列

iscriptsystem 指令碼系統,無需多言

i3dengine 3d引擎的介面,這個放到後面細說。

isoundsystem 聲音介面

imusicsystem **介面,**有theme、mood,沒有sound那樣的衰減等3d概念

iphysicalworld 物理世界的介面

imoviesystem 過場動畫

iaisystem ai系統

imemorymanager 記憶體管理器

ientitysystem entity系統,cryengine3的entity寫的著實精彩

icryfont 字型管理介面

icrypak pak管理介面,cryengine中使用的pak其實都是zip檔案

ilog 日誌,不要小看這個,cryengine中的日誌很好用

icmdline 解析command line

istreamengine 流介面

icharactermanager 人物管理器

ivalidator 用來檢查資源錯誤的介面

iframeprofilesystem 用於profile的介面,收集一幀中執行的資料

idiskprofiler 專門用於磁碟io的profile介面

inametable 名字管理器,cryengine中有乙個專門的名字類snameentry。

ibudgetingsystem 預算介面,這個很有意思。可以設定一些限制,例如視訊記憶體使用限制、fps限制、聲音使用的記憶體限制、占用的時間限制等等。

iflowsystem flow graph的介面

ianimationgraphsystem animationgraph

idialogsystem 對話系統

ihardwaremouse 主要用於ui中的滑鼠指標繪製

inotificationnetwork network通知介面

iplatformos 平台相關的介面,主要是讀取儲存

icryperfhud profile時顯示的hud

ifilechangemonitor 主要用於編輯器

ivisuallog 能夠顯示在螢幕的log,可以設定顏色字型等

isystemeventdispatcher 事件分發器,事件包括resize、level讀取等等

iprofilingsystem vtune profiling inte***ce

ithreadtaskmanager 執行緒任務管理器

iresourcemanager 管理讀入的level以及pak中的資源

imaterialeffects* 材質的聲音效果

iparticlemanager* 例子特效

ilocalmemoryusage* 區域性記憶體分配器

icodecheckpointmgr* 檢查**覆蓋的介面

iscaleformgfx* cryengine中整合scaleform的介面

從介面上來看i3dengine中是比較高層次的概念,例如讀入天空、讀入地形、讀入level、設定水面、海洋高度、設定太陽位置等等這些與繪製無直接關係的概念。

而irender中則不同,irender中操作的介面都是與渲染密切相關,例如網格、貼圖、設定xx矩陣、繪製***、設定shader引數、設定後處理引數等等。

當然這裡只列舉了少數介面,還有大量的介面並沒有列出來。

isystem中含有最常用的介面,isystem將這些介面呼叫**給相應的各個介面,相當於乙個門面或者說**。如果要進一步使用高階的功能可以從isystem中將相應的介面get出來直接操作。

OpenCart 架構概覽

opencart是乙個 設計精緻小巧的電子商務系統。written by iefreer founder of techbrood.com 1 mvc架構 opencart是基於mvc正規化的。model層負責獲取資料。和其他一些框架如cakephp相比,model的功能實現有限但簡潔,直接呼叫db...

pomelo架構概覽

pomelo之所以簡單易用 功能全面,並且具有高可擴充套件性 可伸縮性等特點,這與它的技術選型和方案設計是密不可分的。在研究大量遊戲引擎設計思路基礎上,結合以往遊戲開發的經驗,確定了pomelo框架的設計方案。node.js自身特點與遊戲伺服器的特性驚人的吻合。在node.js的官方定義中,fast...

SpringCloud整體架構概覽

目標 協調任何服務,簡化分布式系統開發。簡介構建分布式系統不應該是複雜的,springcloud對常見的分布式系統模式提供了簡單易用的程式設計模型,幫助開發者構建彈性 可靠 協調的應用程式。springcloud是在springboot的基礎上構建的,使開發者可以輕鬆入門並快速提高工作效率。spri...