服務器端代碼目前並沒有密切關註。
客戶端的總體描述如下:
UI系統CEGUI UI基本系統
CEGUI渲染器
Expat XML parser依賴於CEGUI,所以估計寫手不愛用。
FreeType2跨平臺,開源的字體渲染器用來畫中文。
編寫luaPlus腳本
3D顯示引擎Ogre是壹款開源高效的渲染引擎。最新的食人魔是1.7.2。
用於沖突檢測的操作碼是開源的,占用的內存較少。可以考慮bullet,ODE或者其他(壹般根據實際需要選擇)。
天龍的碰撞檢測似乎只是簡單的碰撞盒檢測。
TinyXML的解析工具遊戲中使用的XML解析器,目前用RapidXML其實可以更小。
音樂& amp音效FMOD SDK就夠了,不過OPENAL也是不錯的選擇。
WX系統
WXClient動作運營管理包括聊天、物品、生活技能等等,其實都是針對圖標運營的。
光標鼠標指針管理(還附帶了許多命令)
數據庫客戶端使用內存數據庫實現WXEngine中DB的定義,包括查找、獲取、打開文件的功能,TLBB_DBC。可以確定的是,雖然叫武俠,但是留下了天龍的影子。
數據池統壹管理遊戲中的所有數據,包括UI、TeamOrGroup等。裏面有壹個CModelShowInUI類(奇怪的是,這個類不應該放在這裏吧?)
事件遊戲事件處理程序,分為事件隊列和慢處理事件隊列,值得參考!!!采用註冊事件處理程序的方式,參數非常靈活!
FakeObject用於ui上顯示的對象(這裏作為壹個管理器類)。
Helper用luaPlus導出,並構建壹個幫助系統窗口。
輸入輸入類
接口是整個遊戲的外部接口控制類。所有外部模塊都需要通過這個接口來控制遊戲的數據和控制,作為腳本調用類型。
網絡消息的處理
對象邏輯基類Object與顯示無關,當然是派生出可以顯示的類型!和遊戲中特定對象類型。
程序遊戲流程,登錄,角色選擇,角色創建,等待進場,MMO遊戲主流程,登錄服務器。
資源文件各種鼠標。cur文件。
腳本腳本系統管理器,繼承自引擎的腳本環境,調用腳本。
聲音
源文件tWinMain在這裏2
可變配置參數系統
世界場景區域ZONE,Scene,世界管理器,尋路等功能,壹個ZONE的大小正好是壹個屏幕的大小,Zone構成了場景。
WXCore
碰撞碰撞檢測主要涵蓋了ogre的骨骼模型的處理方法。
特效系統
額外的附加模型類型模型定義
SkeletonMesh(疑似廢棄)Dobject_NT包裝了Ogre::Entity,可以掛在SceneNode上。
使用SkeletonMeshUrl作為存儲Dobject_NT的存儲格式。
LogicModel渲染層與客戶端的結合層,在不調用渲染層代碼的情況下,利用渲染層實現了客戶端對場景中動態對象的需求。
OgreExt對Ogre的擴展和渲染。
後置濾鏡3D圖片效果,後置濾鏡
ResourceSystem Ogre的文件系統,用於整體讀取和加載文件系統。
頭文件& amp& amp源文件可渲染對象層基本可渲染及其子類
地形實現及其管理編輯和優化
WX::對象繼承boost::enable_shared_from_this。
XercescParser在這裏找到了另壹個XML解析庫。
Wx:: acroobj,Wx:: actor object,Wx:: logicmodeobject要仔細閱讀,找出原理。
場景基類,管理,序列化,編輯等方法
wx引擎光標
數據庫
調試用的Debuger?但是沒見過用在什麽地方。是為了劇本嗎?
例外包括Xzip的壓縮目錄...當然,它還包括拋出異常的定義,崩潰報告假對象,gfx,helper,input。
數學、個人資料、腳本、聲音
時間、UI、util和變量函數的虛擬類,當然也有具體的類。等待繼續排序分析2
內核TDKernel管理類註冊和插件信息CEGUISystem和WXRender都繼承自TDNode(以及對應TDNode的TDClass)並通過插件添加到內核(待驗證)。
TDNode設置核心節點類,類似於樹,方便在內核中組織數據。
TDClass節點定義壹個類,並根據類名取所定義的類的名稱。類似於MFC,建立了自己的類鏈。重要的是幾個類定義實現了自動初始化tClass的宏。順便也實現了CreateObject函數。
遊戲動作
數據池
事件2
連接
目標
世界
WXNetPackets戰鬥營地數據結構表,技能和效果數據表記錄結構,數據表通用管理閱讀器有模板數據管理器。
數據庫TLBB_DBC.h定義了服務器客戶機通用的DBC數據庫文件類。
整個遊戲的通用定義,GameStruct。
GameUtil方便函數,CRC校驗,鎖,二進制轉換成字符串DB等等。
隨機函數,類型,腳本命令結構,技能數據管理,玩家狀態2。
重要數據包定義
頭文件& amp& amp源文件基本都是利用Packet在Common\Net中的具體情況來實現Packet->;執行數據包定義的實現
WXRender相機3種相機
WXEngine中基於渲染層對象基類tEntityNode的對象RFObject
RFObj繼承了RFObject對WX::Object使用的包,在WX::Object的數據中放入了自己的指針。
RFObj _ actor、rfobj _ model和rfobj _ static都繼承自rfobj figure、動態模型和靜態模型2。
RFObj_Actor的原設計應該是用了SkeletonMesh.h中的Dobject_NT,但實際上並沒有關聯。WXLogicModel解釋為替換原來的Dobject 2。
頭文件& amp& amp源文件DebugPanel包括調試信息和HitObjectPanel (strike信息?)
RenderSystem集成了環境對象、渲染後過濾管理和核心系統。加載資源有很多技巧。
ResourceProvider系統內部使用Ogre的資源組管理器進行統壹管理判斷。ResourceLoadListener用於分析腳本時查找詳細錯誤,它是scriptparsinglistener:public orge::ResourceLoadListener真的很強大。
RFFakeObjectManager是UI顯示模型的呈現層的管理器。
TerrainGrid地形網格可以渲染物體。
WXObj_ProjTex WXObj投影紋理,包括選擇環、陰影點和足跡。