最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
3D战斗游戏之数据库篇1
最近心血来潮,打算做一个基于Cocos2d-x的3D游戏。由于项目摊子铺得较大,涉及的内容千头万绪。为了整理思路,我决定先从数据库部分开始说起。在我看来,游戏的核心要素包括数据、规则、操作控制和动画展现,而数据库作为游戏最基础的组成部分,理应作为第一步进行探讨。
数据库设计流程
不同的人或公司在进行数据库设计时,会采用不同的流程。由于这只是一个用于娱乐的项目,我没有遵循过于严格的流程。我直接绘制了草图,构建了一个大致的框架,然后逐个功能模块进行完善,后续再根据实际情况进行调整。
总体草图与数据载入流程
总体草图
首先展示总体草图(此处虽未给出实际草图,但后续会围绕其逻辑展开说明)。
数据载入流程
1. 用户登录
用户登录时,系统会查询 user_info 表,核对用户输入的 username 和 password。验证通过后,根据唯一的 userid,结合用户的点击操作,系统会分别从 wepon(武器)、task(任务)、BB(宝宝)、user_space(个人空间)、skill(技能)等表中查询用户拥有的武器、任务、宝宝、技能以及个人空间的装备等信息,然后根据查询结果执行下一步操作。
2. 任务选择与场景载入
如果用户选择执行一个任务,系统会从 task 表中根据用户所选任务的唯一 taskID,到 Scene 表中找出该任务所需的场景信息并载入。Scene 表的详细结构包含当前场景的介绍、背景模型、灯光设置、进场摄像机特写等一系列数据。系统读取这些数据后,会按照数据库的指定构建出一个3D场景。
3. 场景元素构建——BOSS信息查询
场景构建完成后,包含一个通过 scene_bg3dm 调入3D模型生成的背景模型,并设置好了灯光。接下来需要确定BOSS的信息。首先,scene_boss_list 表用于记录一个场景中使用的BOSS信息,该表通过 SceneID 与 Scene 表进行关联。通过查询该表,我们可以获得场景中BOSS的清单以及出场时间等信息。
确定了BOSS清单后,我们还需要了解每个BOSS的具体属性,如级别、动作、携带的技能和武器、装备等。这可以通过 bossID 到 boss 表、bossAction 表、bossSkill 表等一系列相关表中进行查询,从而为每个BOSS配齐出场属性。此时,BOSS就携带着完整的属性数据,等待在场景中被召唤。
以上描述的是一条支线的数据流程。实际上,用户可以选择多种支线,操作多个表,在UI上表现为装备升级、宝宝培养、技能升级、个人空间布置等功能。从数据库的角度来看,游戏底层的逻辑其实并不复杂。
数据安全考虑
基于数据安全的考虑,数据库应采用加密存储方式,关键数据应依靠服务器端进行存储和查询。如果所有数据都存放在本地,那么这款游戏只能作为单机游戏运行。
需要说明的是,以上内容只是我在开发当前游戏时的初步设想,重点在于提供一种设计思路。