1、 本 科 毕 业 论 文 大型网络游戏系统 A large-scale network game system 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年 月 摘要 通过完成 对 一款 大型 网络游戏进行 系统 架构 设计 、流程 与时序 设计 、 类结构与接口交互 设计、 数据库 设计以及实现了相关 代码 , 学习 了 编写系统详细策划书的方法 , 以及 了解了 计算机图形学的相关知识。 本文讨论了国 内网络游戏 的发展历程,调查了当今 网络游戏 市场在中国互联网市场中所占有的比例。介绍了 该 大型 网络游戏 游戏系统的历史背景以及 用户
2、的游戏体验 。 本文的 主要内容 包括 :( 1) .通过研究 OGRE 图像渲染引擎的底层实现流程和使用方法,并在其的基础上封装了一套集成游戏场景中各个功能 模块 的 系统 架构。这套架构对 场景 中每种功能进行了 建模,抽象出相关 功能模块;然后 通过策略模式 记录 了各个模块的渲染流程和 关键 帧 的 事件 ,最终由一个主框架 代理所有子模块的 渲 染。因此 可以轻松地加入和删除每个 渲染系统 ,能够轻易地完成 各个三维场景、效果的 加载、 切换 和卸载 ,进而 达到了设计目的 ;( 2) .本文解决了游戏中从 客户端注册向导和客户端 场景 同服务器的通信问题,独立设计了相应的BS 网络
3、架构 和套接字连接池概念 ,为 该游戏 以后的设计 和稳定运行 奠定了基础 ;( 3) . 对 3D 图形图像学、 OGRE 的底层实现方式、灰度图的实现原理碰撞检测原理以及 A*寻路算法都相应的介绍。特别是对 OGRE 渲染部分的底层源码进行了剖析,并按仿照相应的流程进行了模仿,揭开了一些 OGRE 神秘的面纱。 关键字: 网络游戏 ; OGRE;图形学;服务器; BS 架构 ;套接字连接池 Abstract In order to finish A large-scale network game system, I designed sequences diagram, class st
4、ructure and interface and database. At last, I learnt how to write the detailed planning book, and get the knowledge of computer graphics . The paper describes the development process and the prospects of online games in China. And give some ideas of the history and the players experience for this g
5、ame. Now Let discuss the main contents of this article: Firstly, I create an open main framework for the game, through the study of the source code from the Objected-oriented Graphics Engine. The framework is based on OGRE render system. In order to make sure that all of the subsystems could be simp
6、ly inserted in the frame, I used Strategy Pattern, Proxy Pattern to design the system, and separated of all objects which you can see or not ,then designed a class for each. Abstract out of the various categories of common ground as a parent class, then get a clear class diagram. After that, when I
7、need to switch scene, I could delete last scene directly, and apply for a new scene, and throw it to the main frame. Secondly, this article solved the problem of the data exchange between the register wizard and the server, and between client scene and the server。 At the same time, it put forward “s
8、ocket connect pool” concept, to insure the stability of the server. Thirdly, the article brief introduce some concepts about 3D Graphics render principle, OGRE underlie implementations, gray scale principle and A* algorithm。 .Especially the bottom part of OGRE rendering system analysis, this article
9、 will reveal the mystery. Key words: Online games; OGRE; graphics; server; BS framework; socket connect pool;目录 第一章 引言 . 1 1.1 研究背景 . 1 1.2 游戏体验和历史背景 . 2 1.3 系统实现的三大基本模 块简介 . 3 第二章 模型与主要技术介绍 . 5 2.1 名词解释 . 5 2.2 主要技术概要 . 6 2.2.1 引擎介绍 .6 2.2.2 游戏引擎的组成 .7 2.2.3 三维底层渲染技术 .8 2.2.4 灰度图原理 .9 2.2.5 自动寻路系统与
10、 A*算法介绍 .11 2.2.6 OGRE 底层渲染函数 startRendering 研究 . 12 2.2.7 角色动画在 Ogre 中使用研究 . 14 2.2.8 OGRE 地形图实现介绍 . 15 2.2.9 AABB 包围盒技术介绍 . 16 第三章 系统设计 . 17 3.1 系统组织架构 . 17 3.1.1 地图编辑器功能模块介绍 . 17 3.1.2 声音系统简介 . 18 3.1.3 粒子编辑器 . 19 3.1.4 人物模型系统 . 20 3.1.5 网络交互模块 . 20 3.1.6 游戏运行模块简介 . 20 3.1.7 碰撞检测简介 . 21 3.1.8 自动寻
11、 路系统简介 . 21 3.1.9 AI 模块简介 . 21 3.1.10 即时聊天系统简介 . 22 3.1.11 攻击效果计算系统简介 . 22 3.1.12 地图加载功能简介 . 23 3.2 客户端向导设计 . 23 3.3 游戏客户端的设计 . 24 3.3.1 客户端游戏创建流程设计 . 24 3.3.2 客户端渲染主框架设计 . 26 3.3.3 游戏主场景渲染的设计 . 30 3.3.4 主角一帧活动渲染流程 . 33 3.3.5 NPC 一帧活动渲染流程设计 . 38 3.4 服务器端设计 . 39 3.4.1 服务器向导设计 . 39 3.4.2 服务器架构设计 . 41
12、3.4.3 服务器网络连接设计 . 43 3.5 服务器数据库 . 51 第四章 测试与部署 . 53 4.1 服务器 . 53 4.2客户端 . 54 第五章 总结与提高 . 55 5.1 总结 . 55 5.2 提高 . 55 参考文献 . 57 致谢 . 59 演武 Online大型网络游戏系统 6 Contents Chap I Introduction . 1 1.1 Background. 1 1.2 The game experience and the historical background . 2 1.3 The three basic modules of the ga
13、me system . 3 Chapter II Model and the main technical presentations . 5 2.1 Glossary. 5 2.2 Technical Summary . 6 2.2.1 Game engine introduced . 6 2.2.2 Composed of 9 game engine . 7 2.2.3 Underlying three-dimensional rendering of . 8 2.2.4 Grayscale Principle . 9 2.2.5 Automatically find its way sy
14、stem and A * algorithm introduced. 11 2.2.6 OGRE rendering function startRendering of the underlying . 12 2.2.7 OGRE topographic map to achieve Introduction. 15 2.2.8 AABB bounding box describes. 16 Chapter III System . 17 3.1 Systems Organization . 17 3.1.1 Map editor function module description .
15、17 3.1.2 Sound System Introduction . 18 3.1.3 Particle Editor . 19 3.1.4 People Model System . 20 3.1.5 Network interaction module. 20 3.1.6 Introduce of the game running module . 20 3.1.7 Introduce Collision Detection . 21 3.1.8 Automatically find its way Introduction . 21 3.1.9 AI Module Descripti
16、on . 21 3.1.10 Introduce real-time chat system . 22 3.1.11 Introduce Attack Effect computing systems . 22 3.1.12 Introduce map load function . 23 3.2 Client Design Guide . 23 3.3. Game client design . 24 3.3.1 The client created the game design process . 24 3.3.2 Design of the main frame of the clie
17、nt rendering . 26 3.3.3 The design of the main game scene rendering . 30 3.3.4 Lead an activity rendering process. 33 3.3.5 NPC a rendering process design activities, . 38 3.4 Server-side design. 41 3.4.1 Server Wizard Design . 43 3.4.2 Server architecture . 43 3.4.3 Server network connection design
18、 . 45 3.5 Server database . 51 Chapter IV Experiments and Results Analysis . 53 4.1 Server . 53 4.2 Client . 54 Chapter V Summary and Outlook . 55 5.1 Summary. 55 5.2 Outlook. 55 References . 57 Acknowledgements. 59 第一章 引言 1 第一章 引言 1.1 研究背景 互联网在 20 世纪下 半叶兴起。由互联网兴起所引发的数字化、信息化和全球化的革命正以迅捷的速度广泛影响着人们的社会生
19、活, 全方位的改变着人类社会的面貌 ,并且 预示着人类已步入“网络社会”这一全新社会形态。在“网络社会 ”中,人们的生活 、工作、学习、娱乐等都不可避免的与网络相关。计算机技术、网络技术、通信技术的不断发展,刺激了“网络社会”同经济学领域的应用融合、产业融合以及市场融合。由此催生出了一个 网络大产业 网络游戏。 网络游戏结合了声光、幻想、动作等因素,让玩家在游戏的虚拟空间中可以全然地、毫无估计的展现及自我释放。网络游戏除了提供给玩家休闲和娱乐的功能外,也透过游戏经营着玩家特殊的人际关系,获得各种不同的需求满足,体验着各种真实的情感。 作为中国新兴的 IT 产业,网络游戏在 2000 年开始被大
20、量引进中国市场,并随 后开辟了中国网络游戏产 业的纪元。自传奇,魔力宝贝,石器时代等国外网络游戏掀起了巨大的市场利益后,国内的 网络游戏 企业也如雨后春笋般出现。梦幻西游,大话西游,征途,问道等 2.5D 游戏迅速火爆起来,带来了巨大的经济利益 ,网络游戏作为一种娱乐方式进入了人们的生活。 。与此同时,网易、巨人、盛大等熟悉的字眼理所当然的进入了世人眼中。 根据中国互联网中心 2009 年 1月公布的第二十三次中国互联网络发展状况统计报告显示,截止 2008 年底,中国网民规模达到 2.98 亿人,其中,网络游戏用户比例从 2007 年的 59.3%提升至2008 年的 62.8%。这一位 置
21、截止到 2008 年底,中国网络游戏用户已达 1.87 亿人。艾瑞咨询报告指出, 2008 年中国网游市场规模为 30.4 亿美元,约占全球网络游戏市场总收入的 27%,排名第二,美国则以 29%位居榜首,韩国一 21%排名第三。我国网络游戏市场规模直逼美国,在全球列为第二,占有极大地市场份额。 可见,我国的网络游戏吸引着越来越多的人参与,平均每 10 位网民中就有超过 6位是网络游戏用户,网络游戏已经成为人们现实社会生活中不可忽略的一部分。并且引起了学术界人士的极大兴趣。针对网络游戏产业中各种不正当竞争 演武 Online大型网络游戏系统 2 手段对运营商和玩家造成的危害 和损失的情况,已经
22、有国内学者采用产业组织理论中的经典分析方法 SCP 范式来分析我国的网游产业,重点分析产业中的不正当行为(私服、外挂等问题),同时采用博弈论工具探究如果有效地址网游中的不正当行为的方法,为我国网游产业的监督提供一个新的视角 1。 1.2 游戏体验和历史背景 在互联网深入人们生活的今天,娱乐交流已经成为大家生活中必不可少的元素。虚拟世界已经从当初的军用模拟战争操作系统,逐渐发展成为步入千家万户的集休闲、娱乐、交流、交易、学习于一体的网络系统。当今社会中有谁不看新闻,有谁不炒股,有谁不看小说 ,有谁不交流,有谁不想放松?作为工作之余的网络游戏,为大众搭建了一个交流,益智,休闲,娱 乐的虚拟世界。玩
23、家可以在其中体会动人的故事情节,感受扣人心弦的 紧张剧情,完成各式各样的任务,调配各种属性,适应不同的生存环境,制作各种装备,制作美食,酿制药酒,体会团队合作的重要,欣赏炫丽的技能效果,感受消灭敌人的荣耀,体验社会冷暖;玩家永远不知道下一刻有什么惊喜在等着他:是生存、还是死亡;是赚取大量的经验、还是获得可观数目的金钱;是久等不遇的奇珍异兽,还是平常无奇的敌人;是防御超强的盔甲、战帽,还是垂涎已久的朗基努斯之 枪;是艳羡已久的美人,还是眼红抱拳的仇人;是绝世武功,还是遇到了指点迷津的师傅;是摆摊卖货,还是去集市淘金 该游戏 以十七世纪的中国历史为背景,讲述民族英雄郑成功传奇的一生。游戏中穿插明末
24、清初的正史记录,作为游戏的支线任务。游戏中郑成功先后与清军,西南 蛮夷 士兵以及荷兰海军作战,最终攻占南京、收复了台湾,成为了民族英雄。本文所介绍的系统主要完成“将领”之间的对战功能,是一个支线任务,也是一个独立的游戏,同 时可以对“将领” 进行测试。玩家们需要控制各自的将领,在武将战场上杀敌制胜。“武将”战场上会不定时随机出现 各种武器装备,补给品,军需用品,和临时技能等武将消耗品,玩家可以依靠这些消耗品配合有利的地形进行伏击和叫阵。但是取得胜利最终的还是要依靠玩家的等级,装备,技能以及团队合作等因素。“将领”们的等级来自常规对战,也就是在主线游戏中培养起第一章 引言 3 来的角色参数。角色
25、参数依靠玩家的升级,完成主线和支线任务的奖励,以及杀敌时幸运的获得对方掉落的宝物等而增长。 1.3 游戏系统实现的三大基本模块简介 网络游戏重点在网络通信,网络部分将使用 MFC 的网络 套接字 类 CSocket 和CAsyncSocket 进 行可靠的网络数据传输,双方会直接 发送和接受一个类 ,然后根据类中的命令变量来提取相应的成员; 数据的主要部分为数据库模块,数据库主要采用 ado 实现连接。而客户端也要存贮部分大量玩家的数据,这里主要采用 MDB 的方式存储; 游戏的根本在于画面 场景 的实现。游戏画面部分采用 OGRE 图像渲染引擎,在引擎中采取 DirectX 作为底层渲染库。通过引擎管理场景地形,人物模型,粒子效果,碰撞检测,分页等复杂图形和物理功能 。