基于IOCP的MMOPRG网络游戏的DEMO实现---毕业论文.doc

上传人:滴答 文档编号:1273756 上传时间:2019-01-26 格式:DOC 页数:58 大小:3.28MB
下载 相关 举报
基于IOCP的MMOPRG网络游戏的DEMO实现---毕业论文.doc_第1页
第1页 / 共58页
基于IOCP的MMOPRG网络游戏的DEMO实现---毕业论文.doc_第2页
第2页 / 共58页
基于IOCP的MMOPRG网络游戏的DEMO实现---毕业论文.doc_第3页
第3页 / 共58页
基于IOCP的MMOPRG网络游戏的DEMO实现---毕业论文.doc_第4页
第4页 / 共58页
基于IOCP的MMOPRG网络游戏的DEMO实现---毕业论文.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、 本 科 毕 业 论 文 基于 IOCP 的 MMOPRG 网络游戏的 DEMO 实现 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 校外 指导教师: 校内 指导教师: 年 月 摘 要 本 毕业设计课题的目的 , 就是探索 网络游戏 的基本技术, 分 析和思考并 解决 网络游戏 中的关键技术难题 , 用 C+语言 在 Windows 平台上 实现一个具备基本 网 络 游 戏 功能的 游戏 项目 。在游戏中,玩家登录后能够在地图上自由走动、砍杀 怪物 提升 角色 等级 、 与其它玩家互动 聊天等, 玩家 可以见到其它玩家的所有动作 ,甚至攻击其它 角色 。 怪物

2、 有一定 的 智能 ,如果有玩家 进入它的敏感范围 ,则它 能够 自动 追踪 角色 并 进行攻击。 服务器架构是整个项目的关键, 经过一次较大的改进后,分为网络层、中间队列层、游戏逻辑层和数据层。网络层采用 windows 平台 上 性能最 好 的 IOCP完成端口网络模型 ,它分为三个模块,分别由 三个线程处理连接监听、数据读取和数据发送等操作。中间队列层将网络层和 游戏逻辑层完全分开,降低了两者之间的耦合度。游戏逻辑层实现 所有的游戏逻辑功能,包括两个模块,分别由两个线程负责网络数据包的处理和对怪物行走、攻击的控制。数据层实现游戏数据的持久化,采用 MySQL 数据库,使用官方提供的 My

3、SQL C API 实现数据库的读写功能。 客户端采用 MFC 中经典的 MVC 框架, 结合基于 Windows 消息机制的异步 I/O 模型,将鼠标键盘事件和网络数据的收发都溶入 MVC 框架中进行处理。View 层负责 界面的绘制 , 由 BMP 静态图 片管理模块和角色类模块共同完成,绘制技术采用 GDI+。 Model 层负责界面游戏逻辑的处理和与 服务器的数据通信 , 通信采用 Windows Socket API,并在收发数据的同时 进行 数据包的加密和解密。 关键词 : 网络游戏 ; 服务器架构 ; 客户端 实现 Abstract The objective of this g

4、raduation design subject is to explore basic technologies about MMORPG (Massive Multiplayer Online Role Playing Game) and solve several key problems, and then realize a project which has fundamental functions of a MMORPG using C+ programming language. In the game, players could walk around on the ma

5、p, kill monsters to improve level, and chat with other players. The monsters are smart enough to pursue players and attack them. Server architecture is the most important in the project. After a great improvement, its composed of network layer, middle queue layer, game logic layer and data layer. Ne

6、twork uses IOCP model, which has best performance on Windows platform. It has three models, using three threads handling connection listening, data sending and data receiving. Middle queue layer separates network layer and game logic layer, decreases their coupling. Game logic layer realizes all fun

7、ctions about game logic. It includes two models, using two threads to handle network data and to control monsters. Data layer realizes the data persistence using MySQL database and use MySQL C API to read and write data. The client uses MVC architecture, and WSAAsyncSelect network model. It can hand

8、le both mouse and keyboard event and network data event. View layer manages the display of client, composed of BMP static picture management layer and player class model. The drawing technology is GDI+. Model layer manages game logic and communication with server. It uses Windows Socket API to send

9、and receive data, and at the same time, it encrypts and decrypts data package. Keywords: Online Game; Server architecture; Client implementation 目录 第一章 引言 . 1 第二章 网络游戏关键技术的思考和解决 . 4 2.1 服务器端网络 I/O 模型的选择 . 4 2.1.1 Windows 平台上常见的 I/O 模型 . 4 2.1.2 I/O 完成端口模型的原理和实现 . 7 2.2 多人行走时服务器同步的解决方案和服务器地图中数据的管理 .

10、8 2.2.1 客户端坐标变化信息的发送 . 9 2.2.2 服务器地图中数据的管理 . 10 2.3 客户端角色行走、攻击等动态动作的实现 .11 2.4 客户端绘图和网络 I/O 的协调处理 . 13 第三章 系统总体设计 . 14 3.1 系统概述及功能 . 14 3.1.1 开发背景 . 14 3.1.2 总体目标 . 15 3.1.3 功能需求 . 15 3.1.4 非功能需求 . 17 3.2 架构设计和模块划分 . 18 3.2.1 服务 器第一代架构 . 18 3.2.2 服务器第二代架构 . 20 3.2.3 客户端构架和模块划分 . 20 3.3 软、硬件配置 . 22 第

11、四章 系统详细设计 . 23 4.1 消息协议的制定 . 23 4.1.1 消息类型 . 23 4.1.2 消息内容结构体的定义 . 25 4.1.3 数据包的加密和解密 . 26 4.2 服务器 . 27 4.2.1 网络层 . 28 4.2.2 中间队列层 . 31 4.2.3 游戏逻辑层 . 32 4.2.4 数据层 . 35 4.3 客户端 . 39 4.3.1 客户端的执行流程 . 39 4.3.2 客户端 MVC 框架的具体实现 . 40 4.3.3 图片资源的封装 . 43 4.3.4 角色类的设计和实现 . 44 第五章 服务器和客户端运行效果演示 . 45 第六章 总结 .

12、49 致谢 . 51 参考文献 . 50 Content Chapter 1 Introduction. 1 Chapter 2 How to solve key technology problems . 4 2.1 Choice of network I/O model of server . 4 2.1.1 Different Win32 network I/O models . 4 2.1.2 Theory and implementation of I/O completion port . 7 2.2 Synchronization of all clients and manag

13、ement of map data onserver. 8 2.2.1 Data exchange between client and server . 9 2.2.2 management of map data . 10 2.3 Realization of player walking on client .11 2.4 Drawing on client and Handling I/O operation. 13 Chapter 3 System overall design. 14 3.1 System profiler and function. 14 3.1.1 Develo

14、pment background . 14 3.1.2 Overall objective . 15 3.1.3 Functional requirements. 15 3.1.4 Non-functional requirements . 17 3.2 Sytem architecture and module division . 18 3.2.1 First generation architecture of server . 18 3.2.2 Second generation architecture of server . 20 3.2.3 Architecture and mo

15、dule division of client . 20 3.3 Software and hardware configuration . 22 Chapter 4 System detail design . 23 4.1 Design of message protocol . 23 4.1.1 Message type. 23 4.1.2 Definition of message struct . 25 4.1.3 Encrypt and decrypt of data package . 26 4.2 Server . 27 4.2.1 Network Layer . 28 4.2

16、.2 Middle queue layer. 31 4.2.3 Game logic layer . 32 4.2.4 Data layer . 35 4.3 Clinet . 39 4.3.1 Work flow of client . 39 4.3.2 Implementaion of MVC model . 40 4.3.3 encapsulation of pictures. 43 4.3.4 Design and Implementaion of player class . 44 Chapter 5 System testing and the running results .

17、45 Chapter 6 Summarize . 49 Acknowledgement . 51 References . 50 基于 IOCP 的 MMOPRG 网络游戏的 DEMO 实现 1 第一章 引言 在网络高度发展的今天,网络游戏已经成为互联网上最受欢迎的休闲娱乐方式之一,玩游戏甚 至成为一些人生活的一部分。游戏就是一个虚拟世界,在这个虚拟世界里,玩家通过自己的努力不断成长,渐渐变得强大,能够挑战更有难度的怪物,能够不断超越过去的自己。同时在这个虚拟世界中,玩家能够认识很多人,交一些兴趣相投的朋友,一起杀怪做任务升级、聊天交流,讨论游戏里的点点滴滴,也能交流现实生活中的一些想法 。当

18、然这个虚拟世界里,也会有恩怨有仇人,为了报仇,为了比别人更强大,就努力练级,提高自己的等级,期待早 点了结恩怨。这就有点像武侠里的虚拟世界,恩怨情仇,快意江湖。 人都有交流和娱乐的需求,在网络游戏的虚拟世界里, 来自全国甚至全球各地的 各种各样的 人相聚在同一张地图上, 一切美妙的事情都可能发生 。 现实中不能达到的成功,可以在游戏里 顺利 实现 , 现实中无法超越的自我 形象 ,可以在游戏里 自由 重塑, 现实中四处受阻的交流欲望,可以在游戏中 尽情 宣泄, 现实中无法经历的传奇,可以在游戏中自己演绎 网络游戏就是一个虚拟世界。虽然网络游戏不是从来就有的,但虚拟世界却伴随着人类的思维 产生

19、。当我们还是小孩的时候,常常缠着大人们讲故事,童话里就是一个虚拟世界。当我们回忆过去的时候,大脑里也产生了一个虚拟世界。当我们憧憬未来的时候,呈现在脑中的是虚 拟的未来世界。我们看武侠小说、言情小说,为之或慷慨激昂,或之潸然泪下,就是受到里面的虚拟世界的影响。 有人说 , 人活着就是为了充实自己的内心 世界,而现实世界只有一个,当这个现实世界无法给人带来足够丰富的内容里,我们就需要 构造 一些 虚拟世界,讲神话童话 科幻 故事、写 武侠言情悲剧喜剧 小说、拍电影电视剧动画片 等等 ,这些虚拟的世界都能充实我们的内心,让我们的生活更加丰富 精彩 , 可以 想象 ,如果没有这些,我们的现实生活将多

20、么无趣单调 , 我们的内心世界也会空泛贫瘠。 网络游戏 所构建的虚拟世界,相比于众多其它 虚拟世界, 它更 完整、 更 真 实 、更接近现实世界 。 它有完整的社会体系、经济结构、价值标准、 生存 环境 、成长体系,玩家在其中演绎自己的生命轨迹,不像小说故事电影那样,虚拟世界确定基于 IOCP 的 MMOPRG 网络游戏的 DEMO 实现 2 时, 里面 发生的所有事情都已经确定,在网络游戏中,玩家自己的行为决定自己的 发展 ,也可能决定整个虚拟世界的 变化 。所以这个虚拟世界能够带给人更丰富更全面的内心体验。 以上 论述 的是 从哲学层次上 对网络游戏 存在意义 的认识, 确定了这一点,我们

21、就可以安心地来 看待 、 分析 、 讨论 网络游戏的 产业现状和技术 问题 了。 现在, 网络游戏已经成为一个发展迅速的产业, 2008 年网络游戏实际销售收入达 183.8 亿元人民币,比 2007 年增长 76.6,为电信、 IT 等行业带来直接收入 478.4 亿元。 2008 年中国网络游戏市场规模为 207.8 亿元,同比增长 52.2%。在网络游戏的快速发展中,民族原创网络游戏已连续 4 年成为市场主导。 2008年,总计有 15 家网络游戏企业自主研发的 33 款网络游戏作品进入海外市场,实现收益 7074 万美元。走红海外的游戏当中,都大量运用了中国文化元素。网络游戏收入规模已

22、经远远超过传统的三大娱乐内容产业 电影票房、电视娱乐节目和音像制品发行的收入,已经成为中国互联网经济发展的 “ 火车头 ” 之 一。新闻出版总署实施 “ 中国民族网络游戏出版工程 ” 5 年来,我国网络游戏原创力量稳步发展,实现了从以进口代理外国游戏为主转变为以自主创新为主,使中国文化元素的原创网络游戏成为市场主导, “ 中国创造 ” 已经成为我国民族网络游戏出版产业的核心竞争力。 2008 年,我国网络游戏研发公司已达 131 家,研发专业人员达 24768 人,自主研发网络游戏总数达 286 款,较 2007 年增长了 14.4;自主研发网络游戏实际销售收入达 110.1 亿元人民币,比

23、2007 年增长了 60.0,占我国网络游戏出版市场总收入的 59.9。我国原创网络游 戏已经连续 4 年牢固占据市场的主导地位。 1 从以上的数据可以看出,网络游戏产业已经成为规模巨大的娱乐产业,而自主研发 正是提高核心竞争力的根本方法。目前国产网络游戏总体质量已经提高了很多,虽然和美国、韩国一些国家的网络游戏巨头相比,还有一段距离,但相信在不久的将来, 只要我们这代人努力奋斗、不断创新,总会有机会超越它们, 以五千 年 的文明为 文化 基础, 将国产网络游戏推向全球的巅峰。 而本毕业设计论文,正是朝这个目标迈向的第一步。 本毕业设计课题的目的,就是分析和思考网络游戏的基本关键技术。通过分析

24、,找出网络游戏实现 的细节过程和技术需求,比如角色 在地图上行走 的实现 细基于 IOCP 的 MMOPRG 网络游戏的 DEMO 实现 3 节 ,服务器管理大量的 Socket 连接、处理地图上的大量数据,客户端实现角色动作的平滑显示等 。通过思考,找出相应的解决方法。然后用 C+在 Windows平台上尝试 实现,最终做出一个具备网络游戏基本功能的项目产品。 开发网游本是件很复杂的事,往往需要几十人,包括策划、管理、美术、程序、音乐、测试等人员的共同努力, 耗时几个月甚至几年的时间, 才有可能开发出一款可以运营的网游 2。 而本毕业设计项目,是一个人从零开始,在不参考实习所在公司的网游技术

25、情况下,从游戏策划开 始,独立分析和思考技术解决方案,制定消息协议,同时开发服务器和客户端, 最终成功完成了项目。 虽然和真实网络游戏相比,本项目实现的功能少得可怜, 少得甚至让开发者怀疑能不能将所有的功能演示 10 分钟,但想到这几个月来,思考的艰辛、设计的困惑、编码的难度 和 调试的诡异 ,都历历在目,所谓付出就有收获,相信本项目还是对得起这个毕业设计课题的,而经过这个项目的磨练,相信以后在工作中,能够很快领悟 、 掌握 和发展 公司 已有 的 网络游戏开发 技术, 并在团队中找到 自己合适的位置,与队友一起并肩奋战 ,开发出国产网络游戏的 经典之作 。 当然,这 些只是 期 望,美好的

26、期 望。当前的 严峻的 任务 就 是 ,如何把这几个月来的思考和实践 梳理好, 写成文字,做 成一篇优秀的真实的 毕业设计 论文。 论文 应该 主要描述项目开发过程中对技术问题的思考和相应的解决方法,而对开发工具、开发环境介绍不多,因为开发语言是 C+,开发环境是 Windows 平台,使用的数据库是 MySql,服务器程序使用的是 Windows API,客户端使用的是 MFC里的 MVC 框架和部分 Windows API,这些都是最常见的人人熟知的东西,所以就不用单独用一章“ 系统相关技术概述 ”来讲述这些知识点了。 论文内容的安 排顺利,按照开发者实际的开发过程,首先叙述对几个关键技术问题的思考和得出的解决方案,然后第三章开始描述整个项目的总体设计,包括服务器的架构设计和客户端的实现方法,而第四章则详细论述总体设计下的具体 实现。总体设计只是模糊的模块划分方式,具体的实现却有多种可能,所以第四章就描述了服务器架构的二种实现,取个好听的名字就是,第一代架构和第二代架构。 第六章对本项目 做一个总结,自我分析项目开发过程中存在的问题和项目做完后的收获,同时展望 国产 网络游戏的美好未来 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。