追蹤
兔子也會的遊戲設計
關於部落格
一個推廣XNA與OGRE的園地,當然還有其他關於遊戲設計的主題,歡迎有興趣的同好交流指教
  • 104824

    累積人氣

  • 0

    今日人氣

    0

    追蹤人氣

基於OGRE的遊戲框架─Orz

Tookit代表通用的工具。
這個部分和具體遊戲結構無關,使一些通用的工具模塊。
目前包括,ID管理,單件管理,有限狀態機,消息系統,插件管理,計時器,異常工具。
以後還會陸續加入其他實用工具。
至於如何使用,以及什麼時候使用並沒有任何限制,根據你的需要可以隨意搭配。

Framework代表遊戲框架。
這個部分提供了遊戲的結構建議,目前只有一套框架,以後可能會陸續增加(也可用戶自己定制開發)。
目前提供的框架遵守邏輯和系統嚴格分離,其系統可以在編譯期動態擴展以及配置子系統(參考Controller_Base中使用),通過SystemInterface接口控制調用。各子系統通過單件模式調用。系統通過計時器更新邏輯組件。
其邏輯組件依賴使用了兩個Tookit中提供的工具,一個是ID管理器,一個是消息系統。這兩個分別是指針和方法的備用替代品(在需要解耦合的情況下使用)。
邏輯主要分為Theater(代表遊戲大廳),Director(代表遊戲邏輯),Scene(代表場景),Actor(代表遊戲實體)。
其中Theater在任何進程中只有一個類型的實例,負責調度子遊戲,它可以擁有若干個Director(遊戲管理),但是同一時間最多激活其中一個Director。Theater和Director就可以完整地實現遊戲。Scene和Actor建議在需要擴展的時候再使用。否則會增添開發複雜度。
所有這些邏輯組件通過GameFactories工廠來創建。邏輯可以運行時配置(相對於系統編譯期配置)。

然後是MVC部分

其中View主要是對其他庫根據其複雜度的封裝或者適配,使用中可自行擴展,可以參考View_OGRE3D來實現對其他庫的適配工作。只要實現一個單件的管理器,可以選擇實現update,init和shutdown函數,並在Controller中配置。

Controller是一個組裝工廠,主要負責配置系統和邏輯,並把兩個聯繫在一起。這裡建議為某類項目單獨實現自己的控制器。比如ActiveX潛入網頁,機頂盒,Wx組件等(以上全部曾經有相應實現項目)。

Model端是提供動態配置邏輯的模塊,這裡不是純粹的Model,還包含一部分特定的View調用,所以你可以看到在Model裡面直接調用View中的函數和方法。所以這裡的Model並不純粹。(我曾經嘗試過嚴格把Model和View分離,不過這樣帶來的工作複雜度是相當大的。)


綜上所述Orz設計中包含以下思想:
1、好的程序庫是大量的工具加上簡單的框架
2、遊戲框架中系統和邏輯盡量分離
3、在保持開發容易的前提下盡量採用MVC設計模式。
相簿設定
標籤設定
相簿狀態