H5遊戲框架設計

-前言-

**以下內容均是個人的一些小想法**

-正文-

當我們寫出了一套自己的遊戲框架之後,我們就能在以後每次開發新項目的時候,快速複用以往的經驗積累。一個框架的好處就是複用性,在開發一個新項目的時候,能快速專注於新遊戲的業務邏輯。我們在寫遊戲框架的時候,應滿足MVC設計思想,做到邏輯分離。這樣,在我們開發項目的時候,功能與功能直接的耦合就能降到相對較低的水平,我們更能協作開發。

首先作爲一個MVC的框架,應該包括,Control模塊,View模塊,Data模塊(Model),每一個功能模塊由一個Manager去管理持有這三個模塊,從而形成一個功能的基礎。

Control模塊可以獲取得到View中的界面,也可以獲取得到Data中的數據。

這三個模塊在Manager初始化時也應該存在一定先後順序。應該首先初始化數據模塊——>界面模塊——>控制器模塊,在釋放的時候則順序相反。

每一個功能模塊都是一個Manager,這個Manager則持有相關邏輯,界面,數據等對象。

Control模塊

一個功能模塊可以包含多個Control,每個Control可能處理的事情都不一樣,可能是對界面某個地方做處理,只要我們分得夠細,Control也就可以有很多個。只是說有沒有這個必要性而已。

View模塊

View模塊同樣也可以多個,View裏面一般持有控制對象的原始圖元數據等,都會暴露接口,提供給Control控制

Data模塊

Data模塊是存儲這個模塊對應的數據,生命週期是模塊初始化到模塊卸載期間,對應的我們遊戲一般存在的玩家數據等全局數據,生命週期更短。

框架能力及分級

框架在設計之初都會進行層次分級,哪個粒度的結構處理哪個粒度的事情,這樣一層一層的最終到我們的業務邏輯。

首先,我們程序一般入口爲Main函數,這時候我們就可以啓動我們框架。

一般一個框架最基礎要包括如下能力:

  • 遊戲數據管理(DataModule)
  • UI管理(2D界面的管理能力)
  • 網絡通信(http通信,WebSocket通信)
  • 遊戲業務邏輯的管理
  • 平臺化

這上面有些是遊戲引擎提供的,我們只需要做一點封裝,比如Laya本來就有Pool(資源池),我們只需要在上層邏輯封裝Pool實現自己的資源池即可。

以上可以基本形成一個遊戲框架的結構。一個GameCenter可以由很多模塊組成,不止上面圖上所列舉的,不過也要保證模塊之間的粒度是儘量相同的。

上面每個模塊中可能又包含很多具體的功能對象。以下爲一個MVC框架的設計

上面的MVCable就是最開始我們所說的Manager,持有Control、View、Data對象

-結語-

我們設計的框架不可能滿足任何場景,有時遇到需要修改的時候,就需要作出一定修改。另外MVC的設計思路也不是沒有缺點,在第一次接觸你框架的人多數都不是很懂,因爲MVC的設計一般是比較繞的,代碼也比較散,不過等你熟悉了這套設計思路之後,就會知道寫代碼是多麼的絲滑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章