游戏软件设计说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXXXX游戏软件设计说明
1引言
1.1标识
本文档是棋牌游戏XXXXXXXXXXXX游戏软件设计说明文档,阅读对象是产品开发,测试和维护人员。
1.2围
本文档包括软件产品的系统设计和详细设计两大部分,系统设计部分主要描述产品的模块划分,相互依赖关系和交互接口,详细设计部分通过包图、类图、状态图等描述系统功能的具体实现方法和流程。
1.3定义和缩写
1.“本软件”或“本产品”指:
(1)XXXXXXXXXXXX游戏软件V1.0。
(2)相关的说明性书面材料、说明书以及电子文档(如果有的话)。
(3)XXXXXX公司许可您使用的本软件的相关的更新程序,或者修改版(如果有的话)。
2.“使用”指对本软件安装、设置或者以其他方式对本软件做功能性使用。
3.“用途”指您使用本软件的限制和围。
4.“XXXXXXXXXXXX游戏软件”缩写“XXXXXXXXXXXX”。
2参考献文
【1】软件设计说明:Survivor之新客栈软件设计说明来源于docin.。
3 结构设计
3.1 服务端模块分解
XXXXXXXXXXXX服务端共分为四个模块:游戏棋盘模块(Chessboard),棋盘服务模块(ChessboardSink2pSuper)游戏桌子模块(TableFrameSink),游戏服务器管理模块
(GameServerManager )。
图 3-1-1-1 服务端模块划分
3.1.1 模块1 游戏棋盘模块 说明
本模块定义了棋子数组和各个子的走法,包括车、马、炮这几个特殊棋子的走法和吃子规则(CanRookMove 、CanHorseMove 、CanCannonEat )并提供一个对外部游戏判断棋子是否可行可吃的总接口Action ,针对车、马、炮这三个特殊的棋子,还分别提供了SearchRookPath 、 SearchHorsePath 、SearchCannonEatPath 这三个搜寻可走路径的函数
3.1.2 模块 2 棋盘服务模块 说明
本模块接手了模块3的功能,定义了服务端游戏控制流程,包括游戏初始化、等待、属性、开始游戏,游戏结束和结算,分别有各自的控制逻辑和交互界面。
3.1.3 模块 3 游戏桌子模块 说明
本模定义了棋盘服务的建立,使用棋盘服务控制游戏流程。
3.1.4模块 4游戏服务器管理模块 说明
本模块定义了服务端的建立,主要成员函数包括:创建游戏桌(CreateTableFrameSink )。
3.2 客户端模块分解
XXXXXXXXXXXX 客户端共分四个模块:游戏对话框模块(GameClientDlg ),游戏视图模块(CGameView ),游戏棋盘模块(ChessboardView ),猜拳模块(GuessView )
图 3-2-1-1 客户端模块划分
3.2.1 模块 1游戏对话框模块 说明
本模块定义了客户端游戏控制流程,如:游戏设置(OnGameOptionSet )用于功能设置,网络消息(OnGameMessage )用于发送用户游戏消息,游戏场景(OnGameSceneMessage )用于发送游戏过程状态
3.2.2 模块 2 游戏场景模块 说明
本模块定义了游戏进行时的场景,游戏场景包括区域的绘制、场景信息贴图,走棋动画。
3.2.3 模块 3游戏逻辑模块 说明
本模块定义了棋子数组和各个子的走法,包括车、马、炮这几个特殊棋子的走法和吃子规则(CanRookMove 、CanHorseMove 、CanCannonEat )并提供一个对外部游戏判断棋子是否可行可吃的总接口Action ,针对车、马、炮这三个特殊的棋子,还分别提供了SearchRookPath 、 SearchHorsePath 、SearchCannonEatPath 这三个搜寻可走路径的函数
3.2.4 模块4猜拳模块说明
本模块定义了猜拳游戏场景的渲染,猜拳动画,用于决定哪个玩家先行棋
3.3全局数据结构说明
3.3.1 常量
(1) 服务端常量
WORD g_wGamePlayer; //游戏人数WORD g_wGameMode; //游戏模式
ITableFrame * m_pITableFrame; //框架接口const tagGameServiceOption * m_pGameServiceOption; //配置参数static const enStartMode m_GameStartMode; //开始模式ChessboardSink * m_pChessboardSink; //棋盘服务(服务端的网络消息处理和其他变量都交给棋盘服务)
棋盘服务常量:
static const BYTE m_cbBuyPropsBaseCoin[5]; //购买道具的基数static const BYTE m_cbPropsLimitBuyCount[5]; //限制购买道具数量 (2) 客户端常量
CGameView * g_pGameView; //游戏视图CGuessView * g_pGuessView; //猜拳视图
3.3.2 变量
(1) 服务端变量(棋盘服务变量)
所在类:ChessboardSink2pSuper
Chessboard2pSuper m_chessboard; //棋盘LONG m_lPropsCostCoin[5]; //道具花费LONG m_lBuyPropsCoin[2]; //各个玩家购买道具的金币数bool m_isBoughtProps[2][5]; //玩家是否购买了某个道具BYTE m_cbBoughtPropsCount[2][5]; //购买了某个道具的数量BYTE m_cbFreePropsCount[2][5]; //玩家获得某个免费道具的数量WORD m_wBeLimitedCount[2]; //玩家被人使用了禁锢道具的数量BYTE m_cbPeepCount[2]; //玩家使用马灯的数量PEEP *m_pPeep[2]; //玩家拥有的马灯结构(包括透视周围三颗棋子的坐标) WORD m_wFreePropsUsedCount[2][5]; //免费道具使用数量bool m_isUsedBoughtProps[2]; //是否使用了购买的道具WORD m_wBuyPropsUsedCount[2][5]; //购买道具使用数量WORD m_wBeUsedPropsCount[2][5]; //被道具作用次数