毕业设计论文游戏数据库服务器设计.doc
《毕业设计论文游戏数据库服务器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文游戏数据库服务器设计.doc(37页珍藏版)》请在三一办公上搜索。
1、重庆大学本科学生毕业设计(论文) 目录II重庆大学本科学生毕业设计(论文) 目录目 录摘 要IABSTRACTII1 绪 论11.1 课题研究背景11.2 课题研究意义22 系统需求分析42.1 需求概述42.2 数据库系统需求42.3 用户用例分析53 系统设计83.1 MySQL概述83.2 数据库概念设计83.3 数据库逻辑设计144 系统难点技术分析与设计194.1 系统架构设计与分析194.2 将MySQL C API封装成易于使用的数据库接口274.2.1 MySQL C API 概述274.2.2 封装C API295 系统实现336 工作总结和结论36致 谢37参 考 文 献3
2、8III重庆大学本科学生毕业设计(论文) 1 绪论1 绪 论1.1 课题研究背景随着网络的普及,网络游戏已经成为大家耳濡目染的新生事物。网络游戏从出现到现在发展的时间很短,但是起发展速度却非常之快。现在,可以说网络游戏已经成为人们休闲、娱乐的有效方式。网络游戏必须依托于互联网进行、可以多人同时参与的游戏,通过人与人之间的互动达到交流、娱乐和休闲的目的。一般的网络游戏都是采用客户/服务器模式的体系结构(见图1.1),包括客户机程序、服务器程序、数据库服务器。图1.1 网络游戏体系结构网络游戏都是采用如下的方式运行: 有一个或多个游戏服务器启动特定游戏服务。 游戏者到游戏网站下载客户端程序并且申请
3、游戏账号ID。然后启动客户端程序,通过网络协议连接游戏服务器。 客户端程序负责处理客户端显示和操作界面,具有简单的逻辑处理功能,同时负责接收发送与服务器端交互的数据包。 服务器程序负责处理服务器端逻辑、游戏逻辑、客户之间的网络信息传递,以及数据库之间的数据读取保存工作。同时服务器端还要承担客户端数据的接受转发工作。 网络游戏常常用到网络协议有适用于Internet的TCP/IP协议、适用于局域网的IPX协议。网络游戏程序的开发一般采用Microsoft Visual C+作为编译环境,分为客户端程序和服务器端程序。客户端程序主要负责显示用户界面,为用户提供赏心悦目的操作界面,通过客户端与服务器
4、之间的网络传递数据,实现了多人协同游戏的目的。在开发网络游戏时,首先要建立底层的网络通信类,利用网络通信类连接构建客户服务器之间的TCP/IP连接,然后在该连接的基础上利用自己设定的协议进行客户端登录、进入大厅、开始游戏、换房间等操作。在以上协议的基础上,同时在服务器端还需要和数据库服务器交互,用于读取或保存客户信息(如客户积分。密码。个人资料等数据)。在网络游戏中,数据库主要用来保存用户资料,包括用户注册信息、用户游戏资料以及其他设置资料。1本项目就是对网络游戏数据库系统的设计。网络游戏的服务器端在处理大量的客户资料时,必然要使用数据库进行大量数据的永久存储,所以在网络游戏的开发中数据库的设
5、计也是很重要的环节。1.2 课题研究意义网络游戏的服务器端在处理大量的客户资料时,必然要使用数据库进行大量数据的存储和查询,服务器在数据库中保存客户注册信息、客户积分信息、客户设置信息等信息。同时因为游戏服务器一般采用多服务器,所以多台游戏服务器同时连接一台数据库服务器,进行客户数据的查询和修改,并且保持客户数据的同步。在客户注册用户、登录服务器、保存游戏结果、退出游戏时游戏服务器都必须和数据库服务器进行交互,查询和保存客户资料;当同时有大量用户同时游戏时,所以必须保证数据库服务器的性能,以免造成数据库处理缓慢导致游戏服务器停止响应的后果。现在的网络游戏,数据越来越多,越来越复杂。合理地组织这
6、些数据,并为服务器提供便于操作的接口,从而实现快速的数据访问是一个非常重要的工作。数据库技术为开发人员提供了一个良好的平台。至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。1本项
7、目使用的是基于MySQL创建的数据库,还使用了MySQL提供的一个C语言的API,使用该API的功能进行连接管理、实施查询、处理结果集等内容。为服务器提供操作数据库的函数接口。通过该课题的研究,能使我了解MySQL相关知识,加深对数据库相关知识的认识,掌握了网游服务器数据库的开发流程与方法。锻炼并提升自己的能力,丰富自己的专业知识。为以后就业打下良好基础。35重庆大学本科学生毕业设计(论文) 2 系统需求分析2 系统需求分析2.1 需求概述在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围和定义时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在
8、这个过程中,系统分析员和软件工程师确定顾客的需要。 只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析主要是解决软件产品应该达到的各项功能和非功能要求,即用户要求做什么。软件需求分析工作是软件开发与用户紧密配合。充分交换意见,系统在广大的相关人群中谋取平衡与折衷,最终达到相互谅解的过程。需求分析是从用户最初的非形式化需求到满足用户要求的软件产品的映射过程。它实际上是一个对用户意图不断进行揭示和判断的过程,其目的在于细化、精华软件的作用范围,确定拟开发软件的功能和性能、约束、环境。需求分析工作是软件生存期中重要的一步,也是决定性的一步。软件需求分析工作是一个不断认识和逐步细化的
9、过程。该过程将软件计划阶段所确定的软件范围(工作域)逐步细化到可详细定义的程度,并分析各种不同的软件元素,然后为这些元素找到可行的解决方法。42.2 数据库系统需求本阶段主要任务就是:调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。数据库系统主要完成登录服务器,大厅服务器,游戏服务器,数据库服务器与数据库之间的交互。其主要分为两大块:登录服务器与数据库的交互,大厅服务器与数据库的交互。系统需求大致可叙述为: 用户通过游戏客户端软件登陆游戏服务器,服务器通过传递过来的用户、密
10、码到数据库中验证,如果验证通过即可登录游戏,否则提示用户、密码错误。 通过验证后,从数据库中读取出用户的个人资料如账号名,同时读取用户的游戏资料如积分、等级、金钱等参数。 用户选择游戏大厅进行游戏。在大厅可进行查收礼物、购买物品、配置自己物品等操作。操作完成后,程序调用数据库接口保存用户相应信息。 在用户一局游戏结束后,用户的游戏信息会改变。程序调用数据库接口保存用户游戏信息,如胜率变化、积分等资料。2.3 用户用例分析在网络游戏中的用户用例根据功能分为3个包,分别为显示包、操作包、设置包。显示包主要包括客户端显示游戏界面的和现实图形等功能,以及显示游戏中的玩家信息的图标、游戏中的游戏大厅和显
11、示游戏信息等。操作包主要是客户端的游戏操作,包括用户登录游戏、离开游戏、进入大厅、更换大厅等。设置包主要包括游戏者的设置信息以及其他功能。下面列出了与数据库系统相关的用例。 显示包:包括以下用户用例:显示用户信息,显示大厅信息。(如图2.1)图2.1 显示包用户用例显示包用户用例介绍如下:1) 显示用户信息:显示在线用户状态,包括用户积分等各种数据,以及用户当前状态等。2) 显示大厅信息:显示游戏大厅信息,包括人数等。同时可用于维护大厅信息。 操作包:包括以下用户用例:登录游戏、退出游戏、选择大厅、更换大厅、激活物品、丢弃物品、购买物品、赠送礼物、接收礼物、丢弃礼物。(如图2.2)图2.2 操
12、作包用户用例操作包用户用例介绍如下:1) 登录:用户启动登录器,输入账号、密码进行登录。如果通过验证即成功登陆,否则提示重新输入并验证。2) 选择大厅:登录后,用户可以选择大厅进行游戏。进入大厅时验证账号、密码以及生成的验证码三项。如果通过验证即成功进入大厅,否则提示重新选择并验证。3) 更换大厅:用户在大厅中可选择更换大厅。更换大厅时,重新产生验证码。并再次检验账号、密码、验证码三项。如果通过验证即成功更换大厅,否则提示重新操作并验证。4) 激活物品:用户在查看物品界面可以激活自己未使用的物品。激活成功则提示激活成功,否则提示重新操作。5) 丢弃物品:用户在查看物品界面可以丢弃自己的物品。成
13、功即提示成功消息,否则提示重新操作。6) 购买物品:用户在购买物品界面可以为自己购买物品。成功即提示成功消息,否则提示重新操作。7) 赠送礼物:用户在礼物界面可将自己的物品赠送给他人。成功即提示成功消息,否则提示重新操作。8) 接收礼物:用户在礼物界面可选择接收别人赠送的礼物。成功即提示成功消息,否则提示重新操作。9) 丢弃礼物:用户在礼物界面可选择丢弃别人赠送的礼物。成功即提示成功消息,否则提示重新操作。10) 退出:用户退出游戏。之前产生的验证码会被删除。重庆大学本科学生毕业设计(论文) 3 系统设计3 系统设计3.1 MySQL概述MySQL是一个高性能、多线程、多用户、建立在客户-服务
14、器结构上的RDBMS,专门为了速度和稳定性而设计。在过去的几年中,它已经成为线上和线下适合于数据库驱动的应用程序最受欢迎的RDBMS之一。现今,有超过400万的网站建立、使用并且配置了基于MySQL的应用程序,而且网站的数量每天都在增加。它得到了像Sony,Xerox,HP和NASA这样的公司或组织的积极使用。简而言之,它无处不在,它的应用将会变得更广泛。我们不难发现这样急速增长的原因。相对于像Oracle和Microsoft SQL Server一样的更商业化、非开放源代码的系统来说,快速、健壮和友好的数据库引擎、高级的数据管理和恢复工具、不断改进的特性合集、遵守现有的SQL标准、友好的商业
15、许可原则,都是促成MySQL成为可实施的选择因素。MySQL的较低总体拥有成本和更稳定、更安全的系统特性,使越来越多的企业吧它们的系统移植到MySQL,并且收获着MySQL开放源代码带来的效益。MySQL始终围绕三个基本原则而设计,它们是:性能、可靠性和容易使用。严格按照这些准则产生了一个价格便宜而富有特色、适应标准而容易扩展、速度快而效率高的RDBMS,使MySQL成为开发者和管理者建立、维护和配置复杂应用程序的完美工具。今天,MySQL的主要应用程序出现在网络舞台上,这并不令人吃惊。随着网站以及基于Web对分布式应用程序变得越来越复杂,有效管理数据来改善处理效率、降低响应时间和提高用户的全
16、面技能就变得越来越重要了。因此,我们迫切需要一个速度快、性能稳定和安全的数据库(可以非常省心地配置和使用它,并且为将来的发展奠定坚实的基础)。很多原因让MySQL正合需要。经过证实的记录让它的可靠性和寿命得到保证,开放源代码的根本能够确保迅速调整缺陷和性能持续增强大周期(更不必提及较低的总体拥有成本);对不同编程语言和技术的可移植性和支持,使它适合多种应用程序。2基于MySQL的以上优点,我们选择MySQL做为该网络游戏的数据库管理系统。3.2 数据库概念设计概念设计:对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。
17、这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。6根据需求,我们可设计出如下的表: Account:存储用户账号信息(如图3.1)。用户注册账号时产生这些信息
18、,每局游戏结束后将更新相应信息。用户可在游戏大厅中相应界面看到这些信息。图3.1 表Account属性1) AccountId:用户账号id;2) UserName:用户名字;3) Password:用户密码;4) Experience:用户经验;5) Money:用户金钱;6) Level:用户等级;7) CurShipAccessId:用户当前战舰id。 Thing:存储用户道具信息(如图3.2)。用户买入、接收道具以及对道具进行各种操作时,这些数据将更新。用户可在游戏大厅中相应界面看到这些信息。图3.2 表Thing属性1) ThingId:用户物品id;2) AccountId:用户物
19、品所属用户id;3) ThingType:用户物品类型;4) bBind:用户物品是否绑定;5) bInstalled:用户物品是否激活;6) ActiveTime:用户物品有效时间;7) AccessId:用户物品在本地角本数据库表中的id;8) ShipAccessId:用户战舰在本地脚本数据库表中的id。 HSGCVerifyCode:临时存储用户登陆验证信息(如图3.3)。用户登录时产生这些信息,用于用户进入、更换大厅时使用,用户退出游戏后,产生的这些信息将被删除。图3.3 表HSGCVerifyCode属性1) HSGCVerifyCodeId:登录验证Id;2) AccountId
20、:登录用户的Id;3) VerifyCode:验证码。 Gift:存储用户礼物信息(如图3.4)。用户赠送礼物时,会产生相应信息,被赠送用户会在相应界面看到这些信息。图3.4 表Gift属性1) GiftId:礼物的id;2) AccountId:接收礼物用户的id;3) ThingType:礼物类型;4) Benefactor:送礼物的用户;5) DescText:礼物附带的描述以上表都是在游戏过程中与用户交互时生成的此外,还有本地脚本数据库中的表(后缀为Access代表为本地数据库里的表),但这些表不在设计范围中,故不做详述。它们包括: ShipAccess:存储游戏中战舰的信息(如图3.
21、5)。图3.5 表ShipAccess属性 RoleAccess:存储游戏中角色的信息(如图3.6)。图3.6 表RoleAccess属性 GunAccess:存储游戏中战舰上武器的信息(如图3.7)。图3.7 表GunAccess属性 ItemAccess:存储游戏中物品的信息(如图3.8)。图3.8 表ItemAccess属性 EmplaceAccess:存储战舰位置信息(如图3.9)。图3.9 表EmplaceAccess属性后缀为Access代表为本地数据库里的表以上表的实体关系(如图3.10):图3.10 实体关系图3.3 数据库逻辑设计逻辑设计:主要工作是将现实世界的概念数据模型设
22、计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。6在数据库概念设计完成之后,我们可进行数据库逻辑设计。 创建数据库ocean。在MySQL Command Line Client中执行如下命令:CREATE DATABASE ocean;执行完毕后,数据库ocean创建成功。(如图3.11)图3.11 数据库ocean 然后连接数据库ocean。在MySQL Command Line Client中执行如下命令:USE ocean;执行完毕后,提示数据库连接成功。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 游戏 数据库 服务器 设计

链接地址:https://www.31ppt.com/p-4864969.html