遊戲開發中的道具管理

前言

在開發遊戲的時候,咱們確定會處理道具,不管是多大的遊戲都有道具。道具的管理方式也是多種多樣。下面記錄一下我我的在遊戲開發中的道具管理方式。視頻

道具的定義

道具的屬性基本分爲:

ID、類型、數量、圖標、名稱、等重要信息,還有描述、激活狀態、購買此道具的消耗道具等其餘信息。
不過在配置和傳遞數據時最重要的屬性仍是ID,類型和數量這3個。blog

  1. ID:也就是道具的惟一標識接口

  2. 類型:用於區分道具所在的數據表遊戲

  3. 道具的數量: 能夠是擁有的數量,也能夠是須要的數量。
    不論在配置數據的時候仍是在傳遞數據的時候,都須要填寫這三個信息。若是直接使用[id,type,num]的形式傳遞和配置數據也是沒有問題的。不過我更喜歡將ID和類型合併,這樣在傳遞和配置數據的時候只須要設置兩個數值就能夠 了,例如[ID,num]。
    而ID中是帶有類型信息的,好比10001,能夠用前兩位表明類型,能夠標識99-10 + 1 個類型。後邊的三位標識道具的ID,能夠標識999個道具,若是不夠用本身在擴大位數便可。那麼咱們在配置數據的時候就能夠這樣填寫。
    image.png
    這裏的62表明一種類型的道具,10002是我定義的視頻廣告。
    image.png
    也就是說62002這個道具是須要用廣告開啓後纔可使用。因此道具纔有激活狀態這個屬性,這個能夠有也能夠沒有的東西,仍是根據本身的項目而定了。內存

道具管理

以上是定義一個道具的數據格式、配置和使用方式。那麼這麼多道具應該如何管理呢?遊戲開發

. 各模塊管理器 :

負責管理本身的道具,好比增刪改查,統一實現一個接口。開發

. 全局道具管理器:

負責統籌管理,能夠有兩種方式配置

  1. 好比一個活動模塊,可能發放各類類型的道具,這些道具屬於不一樣的模塊,這個時候全局道具管理器就會經過類型找到模塊管理器處理相關邏輯,也就是爲何各模塊管理器要實現一個同一的接口的緣由了。各模塊之間也能夠經過這個全局道具管理器進行交互。
  2. 這個全局道具管理器也能夠不調用各模塊,而是直接調用存檔數據,而後讓各模塊本身監聽數據的變化作對應的處理。

建議

建議只有一個,就是不要把不一樣類型的數據放到一個數據表中。由於你們都知道的,道具都是有些共同屬性的,那索性把武將,武器,等等一些列有相同屬性的道具都放到一個表中吧!這樣作有幾個問題:二維碼

  1. 將同一種類型的東西放到兩個表中維護,增長了維護難度。
  2. 將不一樣類型的數據放到一個表中,若是我須要配置武器數據,還要先向下拉一百或者幾十行略過武將的數據,這也是在增長維護難度。
  3. 程序在組織模型的時候須要從兩個配置數據中獲取,增長了複雜度。
  4. 因爲將各模塊用的數據都放到了一塊兒,那麼只能是做爲共有數據一塊兒加進內存,並且不能刪除。
    因此仍是建議同種類型的數據就放到一個表中維護就能夠了。

結語

以上是我我的對於道具管理的一些理解,主要仍是對於多人開發而語言,但願有不一樣意見的同窗在下方留言,一塊兒交流。程序

長按下方二維碼,關注《微笑遊戲》公衆號,獲取更多精彩內容。

image 歡迎掃碼關注公衆號《微笑遊戲》,瀏覽更多內容。

相關文章
相關標籤/搜索