概要设计说明书
项目名称:英雄达拉崩吧
小组名称:Scientific_ZEAL软工小分队
项目负责人:刘帅
小组成员:房渤萱 张赐 宋从智 冯惠妍
1.引言
1.1目的
本概要设计说明书目的在于明确说明我们团队所设计的游戏各功能的实现方式,指导团队进行编码,并解决实现该系统的程序模块设计问题。包括如何把该系统划分成若干个功能模块、决定各个功能模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
本说明书的预期读者为:游戏设计人员、开发人员、测试人员。
1.2范围
1.2.1系统目标
能做出基本功能相对完善RPG-战旗类游戏,并额外增添一些其他的游戏形式如解密、QTE等;拥有相对合理的背景、人物设定,故事剧情丰富完善又不缺乏新意。在游戏体验方面,整体游戏难度适中,主要以策略休闲为主。整个游戏系统结构功能相对稳定。
1.2.2主要软件需求
·该系统主要功能包括:
·系统初始化设置
·界面和地图设置
·游戏资料数据库设置
·游戏进程控制
·游戏存档
·战斗执行
1.2.3软件设计约束、限制
目前仅支持单机游戏形式,支持手柄进行游戏。
1.3缩写
(1)RPG:即Role-Playing-Game,角色扮演类游戏,在游戏中,玩家负责扮演这个角色在一个写实或虚构世界中活动。
(2)CG:即Computer Animation,游戏开场动画。
(3)HP、MP:即Health Point 和Mana Point,生命值和魔法值。当受到来自敌人的攻击时,生命值会减少,当生命值为0时,角色死亡;某些技能需要消耗一定量的魔法值。
(4)QTE:即Quick Time Event,快速反应事件的缩写,需要玩家在响应时间内迅速地反应,并按下某些按钮。
1.4术语
(1)回合:自己可以控制的时机,只有在自己的回合内才能控制自己的单位进行操作。
(2)攻击范围:攻击的最大限度范围,超过这个范围则判定无法攻击。
(3)行动力:每回合可以行走的最大距离。
(4)BUFF:即状态,分为增益BUFF和不良BUFF。
(5)HP药:恢复一定血量
(6)MP药:恢复一定魔法值
(7)BUFF药:根据类别强化自身某项能力
(8)血量:玩家能否继续玩游戏的标志,当某个单位血量为0时,该单位死亡。
(9)经济:以游戏中的金币为单位,可以通过金币购买装备、物品以及招募士兵。
(10)经验值:当玩家积累一定经验值后,玩家可以升级,通过升级可以获得各项属性的提升,以及解锁新的技能和装备。
1.5参考资料
[1]窦万峰.软件工程方法与实践[M].北京:机械工业出版社,2017.
1.6版本信息
具体版本信息如表所示。
修改编号 |
修改日期 |
修改后版本 |
修改位置 |
修改内容概述 |
3 |
2018-6-19 |
4.0 |
增加了外部文件结构、全局数据和程序结构等部分 |
对上一版本进行有关内容的补充 |
|
|
|
|
|
|
|
|
|
|
2.数据设计
本部分主要描述软件所涉及的外部数据的结构描述。
2.1数据对象和形成的数据结构
该游戏系统涉及的主要数据结构如下:
存档功能:用来记录玩家当前的游戏进度。其数据结构是一个顺序结构。
道具:用来各提升角色属性值,使角色成长。其数据结构是一个枚举类型。
敌人:角色在游戏中遇到的敌人怪物,打败后可获得经验和物品。其数据结构是一个顺序结构。
敌人经验值信息:击败相应敌人所获得的经验值。数据结构是一个顺序结构。
敌人掉落道具信息:击败相应敌人所获得的道具。数据结构是一个顺序结构。
系统信息:有关开始界面的相关音乐、背景设置。数据结构是一个顺序结构。
2.2文件和数据库结构
描述文件的数据结构或者库表的结构
2.2.1外部文件结构
包括游戏所需的插图、音乐、字体、保存文档、标志、各类数据文档(道具、敌人等)。该游戏主要的外部文件有:
l 背景音乐文档backgroundmusic.ogg
l 插图文档picture.png
l 游戏进度保存文档file.rpgsave
l 游戏标志icon.png
l 各类数据文档data.json
2.2.2全局数据
该游戏系统的全局变量有:
l 游戏进行时间Totaltime。
l 公共事件处理器PublicEventProcessor。
l 变量计数器VariableCounter。
2.2.3文件和数据交叉索引
背景音乐文档用在系统地图事件初始化功能中;
插图文档用在战斗事件功能中;
游戏进度保存文档用在读档功能中;
游戏标志文档用在数据库初始化功能中;
各类数据文档用在数据库初始化功能中。
3.体系结构设计
这一部分主要描述软件的逻辑组成接口,即软件结构图的绘制。
3.1数据和控制流复审
对需求规格说明或产品规格说明中要实现的功能进行归纳分析,对涉及的数据和控制流进行汇总和归并,为概要设计做准备。
一般对数据流图的精化分析包括两个方面的内容,一是审查整个数据流图,查看有没有遗漏的地方,并补充和完善;二是分析每一个数据流图,去掉一些细节的内容,这里去掉了外部用户。
根据需求分析文档中的活动图,补充一个总体数据流图,如图B-1所示
图B-1 总体数据流图
对部分数据流图的精化如下:
界面和地图设置精化的数据流图如图B-2、B-3所示。
图B-2 精化的界面设置数据流图
图B-3 精化的地图设置数据流图
游戏资料数据库设置精化的数据流图如图B-4、B-5、B-6所示。
图B-4 精化的人物设置数据流图
图B-5 精化的技能设置数据流图
图B-6 精化的道具设置数据流图
战斗执行精化的数据流图如图B-7所示。
图B-7 精化的战斗执行数据流图
3.2得出的程序结构
根据复审的数据流图,逐步得出软件的逻辑组成结构。利用优化思想,对软件结构图进行优化设计,得出模块层次结构适中的软件结构图。图B-8是优化过的达拉崩吧系统结构图。
图B-8 达拉崩吧系统结构图
4.界面设计
4.1人机界面规约
游戏菜单界面:该界面是用户点击进入游戏后的初始界面,该界面主要进行游戏的管理。主要包括以下几方面内容:
1、新游戏。即创建一个新的游戏记录,从最开始的地方体验整个游戏的剧情流程。
2、载入存档。即通过以保存的游戏记录打开游戏,继续上次的游戏流程。
3、游戏参数设置。主要设置音乐、音效等外部参数。
4、开发人员信息表。介绍游戏开发人员。
5、退出游戏。结束整个游戏进程。
普通剧情流程界面:该界面是玩家非战斗状况下的界面,该界面主要进行游戏剧情流程的发展以及场景地图的切换。主要包括以下几方面内容:
1、 任务的接受与交付。
2、 道具买卖与士兵招募
3、 地点探索
4、 场景地图切换
战斗界面:该界面是玩家进入战斗状态后的界面,在该界面中,玩家需要根据不同的战斗形式进行相应的战斗操作,击败敌人获得战斗胜利,之后结束战斗界面跳转到相应的剧情场面。由于本游戏的战斗形式多样化,具体的每一个战斗场面在后续设计中具体描述。此处仅给出相应的场面介绍,包括战棋战斗场面、RPG战斗场面、音游战斗场面等。
4.2人机界面设计规约
游戏菜单界面序列:启动游戏 — 启动新游戏 — 进入游戏 —(游戏存档)— 结束游戏。
启动游戏 — 载入存档 — 进入游戏 —(游戏存档)— 结束游戏
普通剧情流程界面与战斗界面的序列是交替执行的,由于游戏执行中玩家操作的选择性与多样性,导致没有固定的序列集。在此给出基本的执行序列片段:
进入游戏 — 任务接受 — 场景地图切换 — 地点探索 — 道具购买 — 士兵招募 — 场景地图切换 — 进入战斗 — 场景地图切换 — 交付任务 — …… — 结束游戏
5.接口设计
5.1外部接口设计
与外部系统或设备的连接关系和通信方式。
5.1.1外部数据接口
暂无。
5.1.2外部系统或设备接口
与外部接口仅仅是硬件的接口要求,鼠标、键盘和手柄的要求是USB接口连接。
5.2内部接口设计规约
内部接口是软件逻辑模块之间的调用接口。
5.2.1内部模块接口调用关系
内部模块的接口调用关系可参看图B-8,为了便于讨论,我们给每一个模块一个编号,并对结构图进一步进行优化。它们的接口调用关系如下。
图B-9 达拉崩吧系统结构图(带编号)
l 系统总模块:SceneManager.run
l 系统设置:ConfigManager.makeData
l 1.1界面设置:SceneManager.initGraphics
l 1.2地图设置:ImageManager.loadSystem
l 1.3游戏资料数据库设置:DataManager.setGameObjects
l 1.3.1人物设置:DataManager.figureSetting
l 1.3.1.1游戏角色设置:DataManager.actorSetting
l 1.3.1.2NPC设置:DataManager.npcSetting
l 1.3.2技能设置:DataManager.skillSetting
l 1.3.3道具设置:DataManager.itemSetting
l 1.3.3.1武器设置:DataManager.weaponsSetting
l 1.3.3.2防具设置:DataManager.armorsSetting
l 1.3.3.3特殊道具设置:DataManager.speciitemSetting
l 2.用户鼠标控制:TouchInput.isPressed
l 2.1游戏进程控制:BattleManager.processTurn
l 2.1.1战斗执行:BattleManager.startBattle
l 2.1.1.1 游戏存档:DataManager.saveGame
5.2.2接口数据结构
描述接口的每个参数数据结构、参数顺序和默认值。
主要数据结构有Managers、Window等。
6模块过程设计
6.1处理说明
游戏登录模块:负责玩家游戏的登录与载入。
系统初始化模块:设置基本的参数,对各个子系统模块进行初始化操作。
界面和地图设置模块:对过场动画,游戏界面,关卡地图等多方面内容进行设置。玩家在运行游戏后,可以依照剧情流程图中的顺序,详细查看每一个方面的细节内容。
游戏资料数据库设置模块:将游戏中所设计到的人物、技能、物品、任务、怪物等多种参数进行合理化配置。包括数值数据和图片数据。
事件响应、场景地图转换模块:对玩家当前所做出的动作做出相应的反应,如进行事件的控制、地图切换、战斗切换等。
战斗执行模块:对RPG、战棋等战斗模式进行设置,使玩家正常进行相应战斗。
存储模块:存储当前玩家所进行的游戏进度。
6.2接口描述
之后详细设计中补充。
6.3设计语言描述
本次游戏设计主要使用JavaScript、HTML语言进行描述。
6.4使用的模块
系统初始化模块在启动时,会初始化其他各个模块。
游戏登录模块在启动后,会调用其余的各个模块。
其余各个模块在游戏进行时,会相互调用。
6.5内部设计结构
之后详细设计中补充。
6.6注释/约束/限制
在具体代码中体现。
7.需求交叉索引
描述需求与模块的关系、存在交叉的部分,即共享模块的调用关系。
需求中游戏的启动需要系统初始化模块和游戏登录模块,只有这两个模块正常运行,游戏才能正常启动。
需求中游戏剧情流程的进行需要事件响应、场景地图转换模块的调用。
需求中战斗的执行需要战斗执行模块和事件响应、场景地图转换模块的调用。
8.测试部分
8.1测试方针
测试原则采用尽力全面测试、平静处理所遇到的各种问题。
测试策略采用集成测试的方式、主要测试功能与性能。
测试方法在设计初期对各模块采用白盒测试方式、在游戏设计后期进行黑盒测试方式。
8.2集成策略
策略:采用自底向上的增量式测试策略。
方案:对北侧模块进行分层,对同一层次上的并行进行,排出测试活动的先后关系。按时间线序关系,将软件单元集成为模块,并测试在继承过程中出现的问题。最终将各软件模块进行集成。
8.3特殊考虑
注意部分插件的初始化设置。
9.出错处理设计
程序在运行时主要会出现两种错误:1、由于输入信息,或无法满足要求时产生的错误,称为软错误。2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。
对于软错误,须在判断错误类型,再生成相应的错误提示语句,送到输出模块中。
对于硬错误,可在出错的相应模块中输出简单的出错语句,并将游戏重置,返回初始页面。
10.附录(包括特殊注解)
无