游戏一般会存在大量的数据(小游戏除外),最典型的就是各种界面、活动和任务的配置。当然网络游戏还是会存在大量的联网数据,但这不是我们今天讨论的内容。这些游戏数据可以直接写在游戏的程序中,但是这种做法并不好,如果将游戏数据直接写在程序中会出现以下问题;
由于种种问题,就出现了游戏数据库。当然游戏中使用的数据库并不一定需要像mysql
这样需要SQL
查询的。对于简单的游戏,比如我们的框架游戏使用的仅仅是几张表而已。当然如果真的是有大量数据库的游戏,可以使用sqlite
,当然它的数据库应该很大的时候才使用。最好是可以2种方式一起使用。
我们现在只讨论使用表的情况
。
Excel
游戏的数据库其实就是一系列简单的数据表,所以我们使用Excel作为游戏数据库工具。Excel是一种非常强大的电子表格工具,会的人应该很多,而且应该是游戏策划必备技能。我们可以把游戏很多的固定的数据方便的写进Excel中。
当然这只能作为游戏的原始资源,我们可以把Excel放到<游戏包>/origins/
目录下。
由于现在数据库使用Excel编辑的,但是在游戏中我们最好不要直接使用Excel文件,不必要而且效率也很低。其实当前框架中我们使用的是把Excel文件转换为JSON格式的文件。
JSON文件如果太大加载不是很慢吗?
这个问题完全不用担心,我们提到了JSON优化问题,在打包阶段可以把数据库JSON文件完全转换为lua或者luac文件,这样可读性和效率都兼顾到了。
不考虑使用sqlite
)数据库模块本质上就是几张表。它通过监听游戏索引模块,根据每个游戏包的加载和卸载来合并各个游戏包的数据库表。
数据库模块是一个单例,其本身就是数据库,我们只需要通过传统的方式就可以使用数据库中的值。例如;
dbMgr.configs.spmax -- 获得数据库 - 配置表 - 谋略最大值
dbMgr
数据库对象configs
configs表spmax
spmax键这样就引用了数据库中的指定值,是不是很简单。
在当前框架中数据库模块在CocosGame/game/main/src/app/main/modules/database/
文件夹中。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。