网络游戏的技术探索和初步实现---毕业答辩

上传人:wo7****35 文档编号:58156193 上传时间:2018-10-27 格式:PPTX 页数:16 大小:1.79MB
返回 下载 相关 举报
网络游戏的技术探索和初步实现---毕业答辩_第1页
第1页 / 共16页
网络游戏的技术探索和初步实现---毕业答辩_第2页
第2页 / 共16页
网络游戏的技术探索和初步实现---毕业答辩_第3页
第3页 / 共16页
网络游戏的技术探索和初步实现---毕业答辩_第4页
第4页 / 共16页
网络游戏的技术探索和初步实现---毕业答辩_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《网络游戏的技术探索和初步实现---毕业答辩》由会员分享,可在线阅读,更多相关《网络游戏的技术探索和初步实现---毕业答辩(16页珍藏版)》请在金锄头文库上搜索。

1、网络游戏的技术探索和初步实现 年 月 日,主要内容,四大关键技术的解决a.服务器端网络I/O模型的选择b.多人行走时服务器同步的解决方案和服务器地图中数据的管理c.客户端角色行走、攻击等动态动作的实现d.客户端绘图和网络I/O的协调处理 客户端架构 服务器架构,2,服务器端网络I/O模型的选择,“完成端口模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!”Windows 网络编程 完成端口(IOCP, I/O Completion Port)是Windows平台上的网络服务器程序设计的首选技术方案,它用有限

2、的线程,处理无限的连接客户。 用IOCP实现服务器的网络层,同时还要解决网络数据包的分包和合包的问题。,3,IOCP的原理和实现方法,4,IOCP的原理是:应用程序向Windows内核投递异步请求,当内核完成这些请求的时候,把这些请求的结果放入IOCP的队列中,在IOCP上等待的线程池会立即处理这些完成的结果。,多人行走时服务器同步的解决方案和服务器地图中数据的管理,网络游戏与单机游戏的功能区别:网络游戏要让所有的客户端都表现一致。 客户端如何定位角色,并向服务器报告角色本身的坐标变化。a.像素定位?b.“小格”定位? 服务器如何高效地转发角色的坐标变化信息:数据结构是关键。a.地图的“大格”

3、划分b.“大格”应该有多大呢?c.怪物追踪角色的扫描范围,5,客户端和服务器坐标定位示例图,6,客户端角色行走、攻击等动态动作的实现,界面实现的基础:GDI+技术,其中最重要的是Alpha Blending(混合)。利用alpha混合,指定填充颜色的透明度,实现人物、怪物与背景地图的结合。 用面向对象的思想,封装单个动作的一系列图片,使绘图模块不需要考虑图片选择的繁冗细节。,7,客户端绘图和网络I/O的协调处理,客户端的I/O模型:基于Windows消息机制的异步I/O模型 将网络数据事件作为窗口消息处理! 对客户端的MVC框架来讲,鼠标事件、键盘事件和网络事件都通过相同的方法处理:注册回调函

4、数,由MFC构架完成对函数的调用。 绘图和网络I/O都在MVC框架中完成,由框架来完成对它们的协调处理。,8,客户端架构,客户端以经典的MVC模型为核心,结合“基于Windows消息机制的网络异步I/O模型”,它的架构如图:,9,服务器架构的改进,第一代框架图:,10,服务器架构的改进,第二代框架图:,11,第二代框架的特点,增加了中间队列层,使网络层与游戏逻辑层完全分开,两者在各自的线程里独立运行,互不干扰,降低了两层之间的耦合度,减小了代码开发的难度。(1)网络层不用等待游戏逻辑层的执行。(2)如果有一层运行阻塞,不会影响到另一层。(3)不同层间的开发更加独立,不用考虑如何调用另一层的代码

5、。将网络层和游戏逻辑层内部划分成多个模块,每个模块有独立的线程,降低了不同模块之间的耦合度。,12,服务器各层的实现,网络层:采用IOCP完成端口技术,分为连接监听模块、数据接收模块和数据发送模块。(1)连接监听模块:负责监听客户端的连接。(2)数据接收模块:网络层的主要模块,负责数据包的接收,并处理数据包传输的分包和合包问题。这个模块根据服务器CPU的个数来调节工作线程数,从而利用IOCP的特性来提高服务器效率。(3)数据发送模块:从中间队列层读取数据,然后发送给客户端。 中间队列层:实现一个以数据包为元素的多线程安全的队列类,维护两个全局队列:数据包接收队列和数据包发送队列。,13,服务器

6、各层的实现,游戏逻辑层:服务器的核心层次,分为两个模块:数据处理模块和怪物控制模块(1)数据处理模块:处理客户端发来的所有类型的数据包,实现的功能主要有:(a)处理登录消息。(b)处理客户端角色坐标的变化消息。(c)处理对其它玩家信息请求消息。(d)处理攻击消息。(e)处理聊天消息。(f)处理玩家使用了某个物品的消息。,14,服务器各层的实现,(2)怪物控制模块:服务器通过“呼吸”的方式,按一定的节奏来控制地图上怪物的行走和攻击。它由一个每30毫秒就循环运行一次的线程来完成。处理方式如下:(a)判断一定范围内是否有玩家,如果有则行走到那个坐标。(b)如果怪物处于站立状态且周围3*3的小格范围内有玩家,则追踪距离最近的玩家,然后对其进行攻击。 数据层:数据层实现游戏数据的持久化,采用MySQL数据库,使用官方提供的MySQL C API完成对数据库的读取操作。,15,感谢各位评委老师!,16,谢谢!,感谢大家的掌声!,

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

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号