资源描述
重庆理工大学毕业论文 基于java的手机游戏服务端开发的设计与实现 毕业设计(论文)题目 基于Java的手机游戏服务端 的设计与实现 完整源代码68661508 二级学院 计算机科学与工程 专 业 软件工程 班 级 班 学生姓名 学号 指导教师 职称 副教授 时 间 2014年 6月10号 摘 要IAbstractII1 绪论11.1选题背景和研究意义11.2国内外手机游戏的现状21.2.1欧美游戏市场:21.2.2国内手机游戏市场:31.3本人所做的工作42需求分析52.1系统概述52.2功能需求62.2.1功能总体描述62.2.2玩家试玩游戏概述72.2.3玩家创建游戏角色概述92.2.4玩家建造建筑操作概述102.2.5玩家升级建筑概述122.2.6玩家切换地图操作概述132.2.7玩家帐号设置操作概述152.2.8玩家招募士兵操作概述162.2.9玩家城市布防操作概述172.2.10玩家升级美人操作概述192.2.11玩家宠幸美人操作概述202.3性能需求213 系统设计233.1系统总体结构23u 系统功能设计24u 系统类图设计243.2功能详细设计253.2.1玩家试玩功能设计253.2.2创建角色功能设计273.2.3建筑建造功能设计293.2.4建筑升级功能设计313.2.5招募士兵功能设计333.2.6城墙布防功能设计353.2.7宠幸美人功能设计373.3数据库的设计383.4功能总结394 系统实现404.1游戏网络通信的实现404.1.1实现原理404.1.2网络通信实现404.2游戏协议解析的实现404.2.1实现原理404.2.2协议解析实现414.3游戏登录逻辑的实现414.3.1实现原理414.3.2游戏登录实现424.3.3游戏登录实现效果424.4游戏创建角色逻辑的实现424.4.1实现原理424.4.2游戏创建角色实现424.4.3游戏创建角色实现效果434.5游戏建筑建造的实现434.5.1实现原理434.5.2建筑建造的实现434.5.3建筑建造实现效果444.6游戏建筑升级的实现444.6.1实现原理444.6.2建筑升级的实现444.6.3建筑升级实现效果444.7游戏招募士兵的实现454.7.1实现原理454.7.2招募士兵的实现454.7.3招募士兵实现效果454.8游戏城墙布防的实现454.8.1实现原理454.8.2城墙布防的实现464.8.3城墙布防实现效果464.9游戏宠幸美人的实现464.9.1实现原理464.9.2宠幸美人的实现464.9.3宠幸美人实现效果474.10游戏数据库的实现475 系统测试495.1系统测试总体实现495.1.1系统测试的目的495.1.2游戏系统测试的方案495.1.3游戏测试的范围495.2游戏测试设计505.3测试环境505.4测试记录506 结语57致谢59参考文献60附录61硬件要求61软件要求及部署步骤61摘 要中国移动互联网的发展在2014年已经达到了一个前所未有的顶峰,但不可否认的是,目前在移动互联网上最为直接也最为有效的盈利手段就是手机游戏。短短几年时间,中国手机游戏的市场规模便已超过200亿人民币(每年)。华尔街日报曾报道2013年手机游戏收益增幅将达55%,并在2015年仍将超过50%。报道还指出中国智能手机覆盖率将在2013年突破50%大关,这意味着今年智能手机安装量将增长将近4.25亿次。有次可见,手机游戏在未来是一个飞速膨胀的盛筵。本项目是以“战国时期诸侯割据,各自为政,只为问鼎中原”为背景的策略类手机游戏,在游戏中,玩家通过占领、掠夺、攻击其他玩家获得资源,升级建筑,学习技能,招募士兵,与其他玩家争夺资源,或组成联盟对抗,游戏集策略、养成发展、合作于一身,为玩家创造一个战火纷飞的战国时代。该游戏以锻炼和提高游戏者的运筹帷幄的能力、观察能力、对大局的把握能力,以及对资源合理利用的能力,真正做到了在游戏中,对现实社会中资源的有效利用的判断思维能力,更好的为大局着想的决断思维。它要求游戏者思考游戏策略,培养灵敏的思维,学习假设、判断的能力,提高挫折耐受力,建立自信培养耐心。随着手机游戏的快速发展,越来越多的游戏玩家想要更精致的,更耐玩的,并且更平等的手机游戏。本项目开发的是IOS系统的策略类游戏,画面精美,游戏玩法多样,辅以激动人心的音乐,让玩家如在战国时般身临其境。本文就手机游戏的起源与发展着手,简单介绍手机游戏的国内外研究现状、本课题的关键逻辑、以及软件开发各个步骤。关键字:策略网游 手机游戏 发展前景AbstractThe development of Chinas mobile Internet has reached an unprecedented peak in 2014. But there is no denying that the mobile phone game is the most direct and effective means of profit in the mobile Internet at present . Just a few years ,Chinas mobile game the size of market has more than 20 billion yuan a year. The Wall Street journal reported that mobile game earnings growth of 55% in 2013 , and in 2015 will remain more than 50%. The report also pointed out that Chinas smartphone coverage will be above 50% in 2013 , which means that the smartphone installations will jump by nearly 425 million times this year.Thus it can be seen ,Mobile games is a rapidly expanding lords in the future.This project is based on the warring states period governors regime, fragmented, only won the central plains as the background of strategy type of mobile phone games . In the game, players with other players compete for resources, or form a coalition against by occupation, plunder, attack other players get resources, upgrade the construction, learning skills, to recruit soldiers. The game set strategy, development and cooperation in a form and to create a war-torn era of the warring states period for the players.The game to exercise improve the ability of command and observation and grasp the overall situation from a player ,at the same time ,help improve the ability of reasonable utilization of resources .In the game to improve critical thinking skills,really did to use the real social resources efficiently, better thinking to make decisions in the interests of the big picture. It requires that the players think the game strategy, develop agile thinking, learning hypothesis, judgment ability, and improve the frustration tolerance, cultivate patience for building self-confidence. With the rapid development of mobile phone games, more and more game players want more delicate, more resistant to play, and more equal mobile games. Of the development of this project is the IOS strategy game, the screen fine, gameplay variety, complementary with the exciting music, let players like during the warring states period of the scene.In this paper, the origin and development of mobile phone games, simply introduces the research status quo of mobile phone games, the key to this subject logic, and the steps of software development.The key words: Strategy games Mobile phone games Development prospectIII1 绪论1.1选题背景和研究意义1972年,第一台在酒吧里的大型游戏机因投币过多而瘫痪,(这预示着人们对电子游戏的狂热之情)。此后,游戏产业以惊人的速度在全球的范围内扩张。迅猛的发展速度,较低的成本和丰厚的利润,使游戏市场竞争激烈,让世界各国的游戏厂商都在为占据更广大游戏市场进行激烈的竞争。游戏在移动终端上的发展,也在呈现出几何式增长的势头。1997年,“贪吃蛇”入驻诺基亚6110,自此,手机开始成为一大游戏平台。开始了像素游戏时代,诺基亚旗下发布的手机乃至后来的塞班系统,开始了第一批手机游戏的辉煌时代。21世纪初,与Java和塞班时代,Gameloft公司一枝独秀,所开发的手机游戏“打飞机”(雷霆战纪)与赛车游戏风靡世界。2008年,芬兰公司Rovio开发的手机游戏“愤怒的小鸟”上线,简单的触屏操作加上逼真的物理引擎,让“怒鸟”击中了每一个智能手机用户,目前,“愤怒的小鸟”及后来的多个版本,全球累计下载量已接近20亿次。2009年,美国PopCap公司发布的“植物大战僵尸”,向日葵与豌豆还有僵尸的形象人尽皆知,如今的“植物大战僵尸2”也收到了广大植物迷的喜爱。2013年,“植物大战僵尸”的用户接近3亿,其树立了手机塔防游戏的标杆。2010年,HalfBrick Studios旗下的“水果忍者”上线。该游戏发布时恰逢智能手机的爆发期,所以成为了许多用户的启蒙手机游戏。“水果忍者”在发布后2年内获得超过3亿次的下载。2011年,迪士尼发布益智类手机游戏“鳄鱼小顽皮爱洗澡”。这款游戏在八十多个国家的苹果应用商店中荣登排行榜榜首,堪称手机益智类游戏中的旗舰作品。2012年,只有8个人的美国手游公司Imangi Studios发布“神庙逃亡”,一年后累计用户数突破5亿,“神庙逃亡”的成功,让动作酷跑类手机游戏进入了新的发展时期。2013年,中国最大的游戏公司腾讯发布“部落守卫战”,创造性的将塔防玩法和策略与模拟经营元素整合在一起,在国内手游市场掀起塔防狂潮。“部落守卫者”加入了英雄培养、关卡战役等其他的娱乐元素,成为了一种新型的RPG塔防在线游戏,让短生命力的单机塔防类游戏在游戏持续性上有了质的飞跃。2014年,众多手机精品游戏脱颖而出:结合动作与卡牌的新型模式的“刀塔传奇”;Q版卡通回合制手游“秦时明月”;Q版三国类卡牌游戏“放开那三国”;还有那“最星星”的跑酷类手游“来自星星的我”等等。不管是大公司制作的精美优质游戏,还是个人或小团队制作的小型手机游戏(比如:像素鸟(flappy bird)和神庙逃亡(Temple Run),在不同程度上都反映出了如今智能手机用户对手机游戏的热爱,所以,手机游戏作为一种手机中的必需品而存在,让用户无时无刻享受到游戏带来的愉悦和快感。1.2国内外手机游戏的现状2012年,我国手机游戏的用户规模数为1.39亿,在手机网民中的使用率为33.2%,比2011年增长了3.0个百分点。近几年来,网络游戏网民规模增长缓慢,网民使用率不断下降。尤其是电脑端,发展放缓,根据中国互联网数据调查平台数据,相比2012年1月,2012年12月游戏对战平台的日均活跃人数从1.39亿下降至1.35亿,人均单日使用时间从12分20秒下降至8分38秒。与之相对的,在2012年随着智能手机的普及和移动互联网的发展,手机游戏用户规模增长较快,为游戏产业注入新的活力。目前市场上流行的各大手机游戏基本均出自国外的游戏研发公司。但这从另一方面说明手机游戏发展前景明朗,在这一领域,大家都是新手,机遇均等化程度较高,中小型的游戏研发公司若抓住机遇,“逆袭”也并非不可能。资料显示,手机游戏行业的竞争才刚刚开始,行业的格局也才初具雏形。国内外手机游戏现状对比:1.2.1欧美游戏市场:在国外,手机游戏正在经历一个黄金发展时期。日本是游戏产业最发达的国家,早在几年前,日本的手机游戏业就已经蓬勃发展起来。就拿全球最大的手机Java游戏霸主宫路武来说,从他2000年创办手机游戏公司开始,只花了4年时间,就在日本这个全球最大的手机游戏市场建立了霸业,实现年营收2300万美元的奇迹。虽然美国相对于日本及一些欧洲国家,在手机Java游戏方面的发展相对滞后,但是在2003年,其手机游戏市场的收入也已经达到1600万美元。目前的手机游戏数量众多,但是质量和内容无法满足现有玩家需求,国内手机游戏开发商自主开发能力与国外开发商相比相对薄弱。目前日、韩、欧美等地开发的游戏几乎占据了中国手机游戏市场的80%。据相关统计数据显示,手机游戏开发商在我国已经有上千家,但真正上规模的也不过数十家。目前常见的手机平台有Android,windows phone,IOS。孰优孰劣没有绝对的界限,终端的多样性阻碍了手机游戏的移植。终端性能不高降低了用户体验与使用需求,成为手机游戏业务发展的主要障碍。1.2.2国内手机游戏市场:中国有着近3亿的手机用户,即使只有10%的用户,每月只下载一款游戏,也足以使其形成一个规模庞大的产业。但是目前仅有不足1%的用户下载过手机游戏,这使得这块被无数人看好的市场并没有达到和人们预期相吻合的水平。人们似乎更容易接受移动其他的增值业务(比如短信、彩铃业务等),而对手机游戏的认知度却相当低。手机游戏业务呈现快速增长的势头,成为一座名副其实的金矿。手机游戏市场的巨大诱惑,让网游巨头们不再淡定。随着2013年Q1财报的公布,我们不难发现,腾讯、网易、巨人、完美等传统端游大企业的移动游戏战略已经浮现水面,并有全力挥师手游之势。与移动设备领域一样,中国手机游戏运营商也呈现多元化格局,游戏巨头腾讯掌握了22%的中国市场份额。这种分层结构为开发者呈现了许多合作机遇,中国移动控制了17%的手机游戏市场份额,与全球600多家手机游戏开发商达成了合作。而第三大游戏运营商中国电信,市场份额则是8%。我国的手机网络游戏正在经历一个付费模式的转变,今后会像现在的大部分PC网游一样,仅在游戏过程中享受高级服务时才需要付费。这样的模式对游戏提供商和平台推广商来说是一个双赢与合作的新模式。但这样的商业模式仍处在摸索之中。在日本,游戏企业在开发新的游戏前会做深入的市场调研,进行出色的策划,再研究开发出一款精美的游戏,进行包装和大幅度宣传后,投入运营,在运营过程中充分发掘游戏的价值、延长游戏的生命周期、带来长远的利润。在运营过程中,通常采用一开始免费试玩,用户满意后才会付费继续进行游戏的模式,收费方式一般采取包月或一次性支付,收费说明清晰,没有隐形费用。未来我国手机游戏市场的增值空间巨大,其盈利模式也会多样化。1.3本人所做的工作1 分析游戏需求2 搭建游戏服务器框架3 完成游戏业务的逻辑4 完成游戏对内存数据库操作的逻辑5 完成游戏服务端对数据存储的逻辑6 运用软件测试理论,进行游戏测试7 与同事联调进行游戏实际运行时的测试8 记录并且分析游戏测试结果9 修正软件缺陷,增强游戏体验感10 游戏完成后,撰写设计报告2需求分析2.1系统概述该策略游戏-战国七雄-问鼎主要针对IOS系统手机网游市场商业化运行设计制作而成。制作以保证游戏安全性、可靠性、稳定性,以及增加更多的游戏乐趣性。因为游戏是以“C+客户端”+“Java服务端”来制作(本人主要从事Java服务端的游戏逻辑,数据存储与更新,数据库的操作以及编码工作),我将以服务端的角度,解释玩家玩游戏的过程与逻辑。玩家在点击游戏图标后,正式进入游戏,最开始时为登录模块,玩家通过点击“登录”直接进入游戏,服务端在此时生产玩家唯一表示符(uid),并生成玩家试玩帐号(服务端控制),并将玩家试玩帐号进行储存。试玩帐号生成后,玩家进行创建角色功能,服务器检测玩家帐号的有效性并判断玩家所创建的角色角色名是否重名,并对玩家所拥有的城市、建筑、资源、兵种等信息进行初始化。玩家在创建角色后,进入所拥有的城市,看到的是全部的建筑(已建造和为建造的),在资源足够的情况下,可以对资源进行建造以及升级,服务端对玩家建造和升级的请求做资源逻辑的判断:资源是否足够、主建筑等级是否足够等,然后将资源扣除,建筑建造或升级。玩家在游戏中,可以将试玩帐号绑定自己的邮箱,在进入游戏时进行邮箱帐号的手动登录,没一个ios设备只能建立3个游戏帐号(包括试玩帐号)。玩家在游戏时遇到问题,也可以通过“联系我们”来提交遇到的BUG或者提更好的建议。在游戏之初不进行游戏帐号的注册,是因为直接试玩更能带来玩家的体验,进入游戏就注册会流失很大一部分没有耐心和嫌操作麻烦的游戏玩家。这也是越来越多游戏采用试玩的原因之一。游戏后面还有更加复杂的系统:道具系统、战斗系统、技能系统等等,游戏还在研发初期阶段,但值得期待。游戏名:战国七雄-问鼎上线平台:app Store2.2功能需求2.2.1功能总体描述玩家可在本游戏中进行试玩体验,创建角色选择,城市建筑的建造,建筑的升级,野外地图与世界地图的切换等,服务端可以对玩家的操作进行验证,对执行逻辑,执行数据和执行结果的判断与下发,与客户端联调进行游戏的初步体验。玩家在进入游戏后,会有系统发放的统一的资源,在对玩家城市建筑进行建造和升级时,会扣除相应的资源数,这都是后台服务端做逻辑处理和数值运算。也就是本系统的工作。玩家在游戏中绑定邮箱帐号后,可以在登录时使用邮箱帐号登录。玩家在建造兵营后,可以根据兵营不同等级,招募不同的士兵,进行战斗前的兵力招募工作。玩家在有兵力的情况下,可以对城墙进行布防,可以实现最基本的防御性力量。系统功能总体用例图如图2-1所示:图2-1.系统功能总体用例图系统参与者:游戏玩家。系统具有一下功能:1) 登录试玩操作:在玩家第一次进入游戏时,没有注册操作,直接进入试玩操作。2) 创建角色操作:玩家在试玩操作后,进行游戏角色(即君主)的创建。3) 建造建筑操作:玩家对自己城市中没有修建的建筑进行建造操作。4) 建筑升级操作:玩家对自己城市中已建造的建筑进行建筑升级操作。5) 地图切换操作:玩家对城市地图、野外地图、世界地图间进行转换查看。6) 玩家帐号设置操作:玩家在游戏中可以进行邮箱绑定。7) 招募士兵操作:玩家对兵营中士兵进行招募。8) 城墙布防操作:进行防御行操作。9) 升级美人操作:对后宫美人进行升级。10) 宠幸美人操作:对后宫美人进行宠幸。2.2.2玩家试玩游戏概述进入游戏初,客户端获取服务端下发的服务器列表,玩家试玩已经确定了所在服务器;服务端由客户端读取的ios设备唯一识别码和服务端自动生成的唯一标识符uid组合构成游戏试玩帐号,存储以便玩家以后做邮箱绑定操作。玩家试玩游戏操作用例图如图2-2:图2-2 玩家试玩游戏操作用例图玩家试玩游戏操作用例的详细描述如表2-1所示:表2-1 玩家试玩游戏操作用例描述用例玩家试玩游戏操作用例编号1活动者游戏玩家目的获得进入游戏的试玩账户简述玩家通过点击“登录”按钮,执行试玩请求输入客户端发送IOS设备唯一标识码与命令编号输出服务端像客户端下发试玩请求的结果前提条件设备为IOS系统,并且是第一次在该设备上玩此游戏主事件流 活动者动作系统响应游戏玩家点击“登录”按钮系统在服务端生成是试玩帐号,发送成功结果,客户端跳转到创建角色界面异常事件IOS设备唯一标识符未获取后置条件无2.2.3玩家创建游戏角色概述玩家在试玩操作后,服务端下发游戏国家列表(共7个国家,玩家可自由选择自己所喜欢的国籍,国家无强弱之分),客户端向服务端发送创建角色的:国家ID,头像ID(男女之分),性别ID玩家账户唯一标识UID,服务器ID以及玩家游戏名等数据,服务端得到数据后对UID进行逻辑判断,UID存在并匹配时即验证成功,同时还对游戏玩家名称进行验证,如果检测到数据库有同样的名称,则返回错误信息,由客户端弹窗提示名称重复,反之,进行数据的存储和玩家城市建筑、资源以及兵种等等的初始化。玩家创建游戏角色操作用例图如图2-3:图2-3 玩家创建游戏角色操作用例图玩家创建游戏角色操作用例的详细描述如表2-2所示:表2-2 玩家创建游戏角色操作用例描述用例玩家创建游戏角色操作用例编号2活动者游戏玩家目的生成游戏角色(君主)简述玩家选择自己喜爱的国籍,头像,性别,姓名等,点击创建按钮输入客户端向服务端发送玩家选择的国籍ID,头像ID,性别,姓名等信息输出服务端向客户端下发成功与否前提条件该试玩帐号在游戏中没有创建过角色,如果创建,则直接向客户端返回角色信息主事件流 活动者动作系统响应游戏玩家选择好头像、国籍、姓名等信息后,点击“创建”按钮系统在服务端生成君主初始化信息,并初始化城市、建筑等信息,发送成功结果,客户端跳转到城市界面(玩家拥有的城市)异常事件角色名重复后置条件无2.2.4玩家建造建筑操作概述游戏中,建筑不是初始化存在的(主要建筑“宫殿”以1级存在,城墙以及会盟台以1级存在,其他建筑都是未修建状态,需要玩家有足够的资源和一定的宫殿等级才能建造),玩家在建造建筑时,消耗一定的资源和必需品。服务端负责游戏所有的逻辑判断和数据的验证,所以,服务端会将客户端发来的建筑请求进行判定,判断资源的数量是否足够,判断主建筑宫殿等级是否达到要求。如果成功,就返回成功信息和修改后的建筑等级(未修建为0级)以及资源剩余数,如果不成功,返回错误信息:“资源不足”或者“宫殿等级不足”等错误信息提示。玩家建造建筑操作用例图如图2-4:图2-4 玩家建造建筑操作用例图玩家建造建筑操作用例的详细描述如表2-3所示:表2-3 玩家建造建筑操作用例描述用例玩家建造建筑操作用例编号3活动者游戏玩家目的将未建造的建筑进行建造简述玩家在进入自己城市后,对城市中没有修建的建筑进行建造输入客户端向服务端发送需要建造的城市ID,建筑ID等信息输出服务端向客户端下发成功与否前提条件1.建筑没有被建造;2.宫殿等级达到一定等级;3.资源达到建造的需求主事件流 活动者动作系统响应游戏玩家点击“建造”按钮系统在服务端对建筑建造所需要的宫殿等级和资源进行逻辑判定,成功则返回客户端成功信息。异常事件建筑资源不足,建筑已经建造等后置条件无2.2.5玩家升级建筑概述游戏中,建筑是可以升级的,宫殿建筑是其他所有建筑的基础建筑,只有当宫殿建筑达到某种等级时,其他建筑才能建造,当已经建造的建造进行升级时,也需要宫殿建筑达到某种等级,所以,客户端发送来建筑升级的请求时,服务端将判断:1,宫殿等级是否达到建筑升级的要求;2,建筑是否已经达到了最高等级,是则不进行建筑升级;3,升级建筑所需的资源是否达到要求。建筑升级后,服务端将执行的结果下发客户端,信息有:执行操作的成功与否、建筑升级后等级、剩余的资源数以及下一等级升级所需的资源数等,以便客户端将数据显示给用户。玩家升级建筑操作用例图如图2-5:图2-5 玩家升级建筑操作用例图玩家升级建筑操作用例的详细描述如表2-4所示:表2-4 玩家建造建筑操作用例描述用例玩家升级建筑操作用例编号4活动者游戏玩家目的将已建造的建筑进行升级操作简述玩家在建造建筑后,为了达到某些技能或者效果,对建筑进行升级操作输入客户端向服务端发送需要升级建筑的城市ID,建筑ID等信息输出服务端向客户端下发成功与否前提条件1.建筑已经建造;2.宫殿等级达到一定等级;3.资源达到建造的需求主事件流 活动者动作系统响应游戏玩家点击“升级”按钮系统在服务端对建筑升级所需要的宫殿等级和资源进行逻辑判定,成功则返回客户端成功信息。异常事件建筑资源不足,宫殿等级不足后置条件无2.2.6玩家切换地图操作概述游戏的背景为战国时期,诸侯割据,中原分为7个国家和一个周天子朝(没有国土,仅仅一座城)。世界地图分布有服务端下发的7个国家的都城信息;野外地图有创建的NPC村落,以供玩家攻打获取资源,还有玩家的城市坐标等,以供玩家进行玩家之间的掠夺性战争,服务端自动生成NPC资源村落,资源村落坐标固定,等级有不同,适合不同等级玩家占领和开发。城市地图主要是玩家城市的信息,由14个建筑构成。各个地图的信息将由客户端进行保存,在将执行操作时,发送请求进行操作的验证。玩家切换地图操作用例图如图2-6:图2-6 玩家切换地图操作用例图玩家切换地图操作用例的详细描述如表2-5所示:表2-5 玩家切换地图操作用例描述用例玩家切换地图操作用例编号5活动者游戏玩家目的玩家在世界地图、野外地图、城市地图间进行切换简述玩家为了获取某些信息,在世界地图、野外地图、城市地图间进行切换输入客户端发送切换地图请求输出初始化地图信息,客户端保存前提条件各个地图信息的完整性,实时性主事件流 活动者动作系统响应游戏玩家点击“切换”图标系统在服务端对地图间切换进行地图信息的初始化下发。异常事件数据的不完整性后置条件无2.2.7玩家帐号设置操作概述玩家在游戏中可以进行邮箱绑定,使邮箱覆盖试玩帐号,作为玩家手动输入的帐号信息。玩家在游戏中进行绑定邮箱操作,是将试玩帐号生成玩家帐号的唯一途径。玩家帐号设置操作用例图如图2-7:图2-7 玩家帐号设置操作用例图玩家帐号设置操作用例的详细描述如表2-6所示:表2-6 玩家帐号设置操作用例描述用例玩家“帐号设置”操作用例编号6活动者游戏玩家目的玩家将试玩帐号绑定为正式邮箱帐号简述玩家在游戏中通过邮箱绑定,对帐号进行设置,使试玩帐号编程玩家自己的邮箱帐号输入玩家帐号唯一标识UID,邮箱帐号,帐号密码输出成功与否前提条件帐号唯一标识存在,邮箱帐号和密码长度限制主事件流 活动者动作系统响应游戏玩家执行“绑定邮箱”系统在服务端对试玩帐号进行修改,将试玩帐号更改为邮箱帐号,返回成功标识异常事件数据长度问题后置条件无2.2.8玩家招募士兵操作概述玩家在建造兵营后,可以进行士兵的招募。士兵分为:步兵、弓箭手、骑兵、战车。在兵营达到不同等级后,会自动解锁不同兵种,玩家可以根据自己的资源情况,进行士兵的招募,实现战斗前兵力的储备。兵种在创建游戏角色时进行了初始化,在客户端查看兵种信息时,会根据兵营的等级,自动解锁不同的兵种,解锁后的兵种才可以进行招募。玩家招募士兵用例图如图2-8:图2-8 玩家招募士兵操作用例图玩家招募士兵操作用例的详细描述如表2-7所示:表2-7 玩家招募士兵操作用例描述用例玩家“招募士兵”操作用例编号7活动者游戏玩家目的玩家进行兵种的招募,实现兵力储备简述玩家在兵营等级足够、资源等级足够的情况下,可以进行兵种的招募。可招募兵种与兵营等级有关,可招募兵种数量与资源有关。输入招募的兵种id、招募的兵种数量输出返回招募士兵的成功或者失败信息前提条件兵营等级是前提条件主事件流 活动者动作系统响应游戏玩家执行“招募”系统在服务端对招募士兵请求的判断检测:对兵种可招募的检测,对招募兵种所需资源的检测等。异常事件网络延迟后置条件无2.2.9玩家城市布防操作概述玩家在招募士兵后,可以对城墙建筑进行防御性布兵。前提条件是兵营已经修建,兵种数量不为0。城墙作为防御性建筑,可以对城墙进行布防。城墙布防的士兵由城市拥有的士兵构成,城市有士兵时,要进行布防操作才可以进行防御。没有进行布防操作时,就算城市有士兵,也不会进行防御操作。玩家招募士兵用例图如图2-9:图2-9 玩家城墙布防操作用例图玩家城墙布防操作用例的详细描述如表2-8所示:表2-8 玩家城墙布防操作用例描述用例玩家“城墙布防”操作用例编号8活动者游戏玩家目的玩家进行兵种的配置,进行防御型操作简述玩家在兵种数量大于0时,可以进行城市防御的兵力布置,兵力信息由城市兵营获取,进行防御性兵力布置在城墙建筑上操作。输入兵种方阵id,兵种方阵存储的兵种id,兵种id的数量。输出返回城墙布防的成功或者失败信息前提条件已经招募士兵是前提条件主事件流 活动者动作系统响应游戏玩家执行“城墙布防”系统在服务端对城墙进行防御性布置兵力,将已经招募士兵进行配置,存放在兵种方阵里面。异常事件网络延迟后置条件无2.2.10玩家升级美人操作概述玩家在升级后宫建筑后,会自动解锁美人。游戏中美人系统是根据现在游戏玩家心理而设定的一个系统。后宫等级越高,解锁的美人也就越多,正所谓“后宫佳丽三千”,但游戏中美人只有不足10人之数。玩家升级美人用例图如图2-10:图2-10 玩家升级美人操作用例图玩家升级美人操作用例的详细描述如表2-9所示:表2-9 玩家升级美人操作用例描述用例玩家“升级美人”操作用例编号9活动者游戏玩家目的玩家对后宫中美人进行升级,消耗资源和特定的物品,促进消费简述建筑里有后宫,后宫里有美人,美人可以给玩家带来不一样的满足感。所以美人等级越高以及解锁更多的美人,是促进游戏经济消费的一个点。输入美人ID输出返回升级美人的成功或者失败信息前提条件后宫建筑已经修建并且达到某个等级主事件流 活动者动作系统响应游戏玩家执行“升级美人”操作系统在服务端对客户端传入升级美人操作进行校验,对美人是否解锁、资源是否足够进行校验,并对升级美人进行资源扣除操作异常事件网络延迟后置条件无2.2.11玩家宠幸美人操作概述玩家在升级后宫建筑后,会自动解锁美人。解锁美人后,就得到等级为1的美人。得到美人后就可以对美人进行宠幸操作。宠幸美人消耗特定的消耗品。玩家宠幸美人用例图如图2-11:图2-11 玩家宠幸美人操作用例图玩家宠幸美人操作用例的详细描述如表2-10 所示:表2-10 玩家宠幸美人操作用例描述用例玩家“宠幸美人”操作用例编号10活动者游戏玩家目的玩家对后宫中美人进行宠幸,消耗资源和特定的物品,促进消费简述宠幸美人可以给玩家带来不一样的满足感,是促进游戏经济消费的一个点。输入美人ID输出返回宠幸美人的成功或者失败信息前提条件后宫建筑已经修建并且已经解锁美人主事件流 活动者动作系统响应游戏玩家执行“宠幸美人”操作系统在服务端对客户端传入宠幸美人操作进行校验,对美人是否解锁、资源是否足够进行校验,并对宠幸美人进行资源扣除操作异常事件网络延迟后置条件无2.3性能需求本游戏为网络运行设计制作,一款好的游戏必须具备出色的性能。游戏有丰富的游戏模块,有完整的登录模块,建造木块,以及以后的战斗模块,美人系统模块,装备道具模块以及技能模块等。游戏丰富有趣,辅以背景音乐,让玩家如临其境,感受战火纷飞的战国时代。游戏设计与编码时,着重考虑游戏的安全性,即数据的安全(被拆包,被篡改等),游戏资源的安全(后期图片素材的加密等)等;稳定性,即运行时的资源占用,不引发设备黑屏,不闪退等。游戏对数据流量要求比较大,要求网络比较高,但是考虑到现在3G乃至4G网络的传输速率、现在流量的廉价以及wifi的普及,这个问题已经不再是一个问题。游戏最初版本为IOS版本,所以,对设备的要求比较高。因为iPhone5s以及IOS7.1系统的发布,以及下半年iPhone6的发布,IOS系统配置都在不断提高,但是考虑到iPhone4以及iPhone4s仍然有许多人在使用的情况下,游戏将做iPhone4及iPhone4s的960X640分辨率适配,以及iPhone5和iPhone5s的1136X640分辨率的适配。在ios系统版本上,考虑到IOS系统在4.3以上每个版本都有人在使用,为了更好的适配所有系统,IOS系统版本要求仅为IOS4.3或者更高版本,iPhone 3GS不在考虑之内。3 系统设计3.1系统总体结构系统设计是软件生命周期中一个重要的环节,设计的好坏直接影响想到系统的实现和系统的可用性。游戏服务器后台管理,更多的工作是与客户端交互,处理客户端提交的请求,返回客户端需要的信息,并处理事件的逻辑,比如对请求能否执行的判定,对资源进行扣除,对请求结果的存储等等。游戏按照模块进行开发编码,过程中对每个模块进行测试,确保了模块功能的完整性和正确性。游戏模块在开发初期分成了很多小模块,比如:注册模块、创建角色模块、建筑模块以及其他模块。注册模块功能较少,功能比较单一。建筑模块是目前最大的模块,因为游戏以建筑的培养为基础,有了足够的资源才能去玩其他的功能,而资源这是由建筑提供。游戏中的建筑有14个:。在建筑的基础上,有的建筑赋予了独特的功能:兵营能够招募士兵,太学能够升级某些技能,后宫能够培养美人,还能宠幸美人,城墙能够布防等等特殊的功能。游戏未开发的模块也比较多,战斗模块、战役模块、论战系统、联盟系统等等,因为开发时间的紧张,游戏距离商用还有一段时间,不过其他功能都在一步一步的实现和完善中。游戏系统具体的结构图如下图3-1所示:u 系统功能设计图3-1 系统结构图u 系统类图设计3.2功能详细设计3.2.1玩家试玩功能设计图3-2-1玩家试玩功能类图在玩家试玩功能中主要涉及到SerDemoPeocess、RequestData、ResponseData、GameUserRedis、Protocalable类,系统通过RequestData类得到客户端发送的请求,SerDemoProcess类处理玩家试玩请求,将处理结果通过ResponseData类返回给客户端。这样就进行了试玩操作的数据传输。GameUserRedis负责对试玩帐号数据的保存,存储在内存数据库Redis中。试玩功能顺序图:图3-2-2玩家试玩功能顺序图试玩功能顺序图描述:1. 客户端在采集到玩家执行试玩操作的数据后,将玩家的IOS设备唯一标识码,用数据包的格式,通过socket传递给服务端2. 服务端在得到请求信息后,解析数据包,得到玩家IOS设备唯一标识码3. SerDemoPeocess类得到唯一标识码后,进行试玩逻辑的判断4. 判断信息结果构成数据包5. 试玩数据保存在Redis中6. 数据包传递给客户端,客户端得到信息后执行响应的判断和操作3.2.2创建角色功能设计图3-2-3玩家创建角色功能类图在创建角色功能模块中主要涉及到的类有:SerCreatPlayer类(主要逻辑操作类)、SerBuildingInit类(建筑初始化类)、RequestData、ResponseData、SerMonarchRedis、Protocalable类。系统通过RequestData类得到客户端发送的请求,SerCreatPlayer类处理玩家创建角色请求,将处理结果通过ResponseData类返回给客户端。SerCreatPlayer在处理客户端请求的时候,同时进行资源初始化、建筑初始化、已经兵种初始化等操作。SerMonarchRedis负责对角色信息数据的保存,存储在内存数据库Redis中。创建角色功能顺序图:图3-2-4玩家创建角色功能顺序图创建角色功能顺序图描述:1. 客户端在得到玩家进行创建角色请求后,采集玩家创建角色信息(角色名、性别、国别以及头像等信息),向服务器端发送创建角色信息2. 通过数据包解析,服务器得到传递的数据3. 服务端对传递的信息进行校验处理(比如判断角色国别、判断角色名称重复等操作校验)。4. 服务器在创建角色时,将初始化玩家的其他信息(建筑信息、兵种信息、后宫美人信息以及其他必备的信息)。5. 服务端将创建角色的结果信息构成数据包6. 将角色信息保存在Redis中7. 服务端将结果数据传递给客户端3.2.3建筑建造功能设计图3-2-5玩家建造建筑功能类图在建造建筑功能模块中主要涉及到的类有:SerBuildingBuild类(主要逻辑操作类)、RequestData、ResponseData、SerBuildingRedis、Protocalable类。系统通过RequestData类得到客户端发送的请求,SerBuildingBuild类处理玩家建造建筑请求,将处理结果通过ResponseData类返回给客户端。SerBuildingBuild在处理客户端请求后,对玩家资源、建筑等信息进行校验,符合要求就进行建造处理。不符合就返回失败信息。SerBuildingRedis负责将建造建筑后的信息保存到Redis中。建造建筑功能顺序图:图3-2-6玩家建造建筑功能顺序图建造建筑功能顺序图描述:1. 玩家执行建造建筑请求时,客户端采集玩家建造建筑需要的信息(建筑ID等),向服务端发送建造建筑请求2. 通过数据包解析,服务器得到传递的数据3. 服务端对传递的信息进行校验处理(如玩家建筑是否建造、资源是否足够等信息)4. 服务端将建造建筑的结果信息构成数据包5. 将建造建筑信息保存到Redis中6. 服务端将结果数据传递给客户端3.2.4建筑升级功能设计图3-2-7玩家升级建筑功能类图在升级建筑功能模块中主要涉及到的类有:SerBuildingUpdate类(主要逻辑操作类)、RequestData、ResponseData、SerBuildingRedis、Protocalable类。系统通过RequestData类得到客户端发送的请求,SerBuildingUpdate类处理玩家升级建筑请求,将处理结果通过ResponseData类返回给客户端。SerBuildingUpdate在处理客户端请求后,对玩家资源、建筑等信息进行校验,符合要求就进行升级处理。不符合就返回失败信息。SerBuildingRedis负责将建筑升级后的信息保存到Redis中。升级建筑功能顺序图:图3-2-8玩家升级建筑功能顺序图升级角色功能顺序图描述:1. 玩家执行升级建筑请求时,客户端采集玩家升级建筑需要的信息(建筑ID等),向服务端发送升级建筑请求2. 通过数据包解析,服务器得到传递的数据3. 服务端对传递的信息进行校验处理(如玩家建筑是否建造、资源是否足够、建筑等级是否已满等信息)4. 服务端将升级建筑的结果信息构成数据包5. 升级建筑信息保存到Redis中6. 服务端将结果数据传递给客户端3.2.5招募士兵功能设计图3-2-9玩家招募士兵功能类图在招募士兵功能模块中主要涉及到的类有:SerBarracksEnlist类(主要逻辑操作类)、RequestData、ResponseData、SerTroopsRedis、Protocalable类。系统通过RequestData类得到客户端发送的请求,SerBuildingUpdate类处理玩家招募士兵请求,将处理结果通过ResponseData类返回给客户端。SerBarracksEnlist在处理客户端请求后,对玩家资源信息、兵种信息等进行校验,符合要求就进行士兵招募操作。不符合就返回失败信息。SerTroopsRedis负责将招募士兵后的信息保存到Redis中。招募士兵功能顺序图:图3-2-10 玩家招募士兵功能顺序图招募士兵功能顺序图描述:1. 玩家执行招募士兵请求时,客户端采集玩家招募士兵需要的信息(招募的兵种ID,招募的兵种数量),向服务端发送招募士兵请求2. 通过数据包解析,服务器得到传递的数据3. 服务端对传递的信息进行校验处理(如玩家兵种是否解锁、资源是否足够、数量是否过大等信息)4. 服务端将招募士兵的结果信息构成数据包5. 招募士兵信息保存到Redis中6. 服务端将结果数据传递给客户端3.2.6城墙布防功能设计图3-2-11 城墙布防功能类图在城墙布防功能模块中主要涉及到的类有:SerTroopsDefense类(主要逻辑操作类)、RequestData、ResponseData、SerTroopsPhalanxRedis、Protocalable类。系统通过RequestData类得到客户端发送的请求,SerTroopsDefense类处理玩家城墙布防请求,将处理结果通过ResponseData类返回给客户端。SerTroopsDefense在处理客户端请求后,对玩家资源信息、兵种信息等进行校验,符合要求就进行城墙布防操作。不符合就返回失败信息。SerTroopsPhalanxRedis负责将招募士兵后的信息保存到Redis中。城墙布防功能顺序图:图3-2-12 玩家城墙布防功能顺序图城墙布防功能顺序图描述:1. 玩家执行城墙布防请求时,客户端采集玩家城墙布防需要的信息(各个方阵的ID,方阵对应的兵种以及兵种对应的数量),向服务端发送城墙布防请求2. 通过数据包解析,服务器得到传递的数据3. 服务端对传递的信息进行校验处理(如玩家兵种是否解锁、资源是否足够、方阵id是否正确等信息)4. 服务端将城墙布防的结果信息构成数据包5. 城墙布防信息保存到Redis中6. 服务端将结果数据传递给客户端3.2.7宠幸美人功能设计图3-2-13 宠幸美人功能类图在宠幸美人功能模块中主要涉及到的类有:SerBeautyPatronize类(主要逻辑操作类)、RequestData、ResponseData、SerBeautyRedis、Protocalable类。系统通过RequestData类得到客户端发送的请求,SerBeautyPatronize类处理玩家宠幸美人请求,将处理结果通过ResponseData类返回给客户端。SerBeautyPatronize在处理客户端请求后,对玩家资源信息、兵种信息等进行校验,符合要求就进行宠幸美人操作。不符合就返回失败信息。SerBeautyRedis负责将宠幸美人后的信息保存到Redis中。宠幸美人功能顺序图:图3-2-14 玩家宠幸美人功能顺序图宠幸美人功能顺序图描述:1. 玩家执行宠幸美人请求时,客户端采集玩家宠幸美人需要的信息(美人ID、建筑ID等),向服务端发送宠幸美人请求2. 通过数据包解析,服务器得到传递的数据3. 服务端对传递的信息进行校验处理(如美人是否解锁,宠幸次数是否最大等信息)4. 服务端将宠幸美人的结果信息构成
展开阅读全文