游戏开发 背包系统(随机属性物品)的数据存储
首先游戏开发不得不接触背包,而背包系统是一个游戏的核心。
这里我们之介绍一下我目前维护的游戏的背包数据的存储。在数据库是什么样的。
首先一件装备,他可以有固定数值,他也可以有其他随机数值。就比如原神的圣遗物,打本刷的圣遗物有着随机属性,正好我维护的游戏有类似的开发玩法。
数据库表
首先我们数据库中有一张表item表
这张表有着这么几个字段 roleid 、accontid(),背包类型,背包索引,有效时间等等。
| itemid | itemType | roleid | accontid | 背包类型 | 背包索引 | 有效时间 |
| 111 | 300 | 101 | 0 | roleEquip | 1 | |
| 222 | 400 | 1001 | acconEquip | 6 |
第一行表示,角色id101有着itemid为111的一件物品,这件物品的具体是(itemType)为300,在角色的roleEquip(角色装备背包)背包索引为1(比如我们游戏的背包是一行是5列,这个索引为1那么就表示这个物品在roleEquip的第一行第一列)如下列表
| 111 | ||||
第二个行数据也是一样只是换了账号id,是属于账号背包的。
| 222 | ||||
这里存着物品基本的背包位置,以及数据类型。
但是我们有着随机属性的物品这个怎么存着呢?
首先我们不止有item表,还有一个针对我说的随机属性装备的EquipAtt表
| itemid | AttID1 | 数值1 | AttID1 | 数值2 | ...... |
| 111 | 23 | 200 | 25 | 10 | |
我开始说一下逻辑。
首先这种有随机属性的物品他一般都是开盒子开出来的。或者给装备进行洗脸

就以我玩的游戏来举例子,这个洗练数据就可以存储在EquipAtt表内,将iEquipAtt的itemid设置为item表的itemid这样这两表就会关联在一起。
读取数据库
我们说一下怎么读取,首先玩家登录,DBsever数据先读取item表,将读取饿数据保存起来一个存在itemlist中,然后再去读EquipAtt表,然后将读取的数据根据itemid进行筛选将数据附加到itemlist中。
然后DBserver将整理好的数据返回给gameserver中,gameserver整理完毕在同步给客户端
然后客户端将数据进行一个展示。
当然这是提供一个思路,这是我入职并维护的游戏采取这个方式做的,其他游戏会有不同
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)