這裡說的架構只是從大體上初略描述,以後還會繼續更新詳細的說明
從模組的分布上來看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...