游戏开发中的道具管理

前言

在开发游戏的时候,咱们确定会处理道具,不管是多大的游戏都有道具。道具的管理方式也是多种多样。下面记录一下我我的在游戏开发中的道具管理方式。视频

道具的定义

道具的属性基本分为:

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 欢迎扫码关注公众号《微笑游戏》,浏览更多内容。

相关文章
相关标签/搜索