网络游戏通讯模型

网络游戏通讯模型

ID:14333594

大小:58.00 KB

页数:17页

时间:2018-07-28

网络游戏通讯模型_第1页
网络游戏通讯模型_第2页
网络游戏通讯模型_第3页
网络游戏通讯模型_第4页
网络游戏通讯模型_第5页
资源描述:

《网络游戏通讯模型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、网络游戏通讯模型初探序言  网络游戏,作为游戏与网络有机结合的产物,把玩家带入了新的娱乐领域。网络游戏在中国开始发展至今也仅有3,4年的历史,跟已经拥有几十年开发历史的单机游戏相比,网络游戏还是非常年轻的。当然,它的形成也是根据历史变化而产生的可以说没有互联网的兴起,也就没有网络游戏的诞生。作为新兴产物,网络游戏的开发对广大开发者来说更加神秘,对于一个未知领域,开发者可能更需要了解的是网络游戏与普通单机游戏有何区别,网络游戏如何将玩家们连接起来,以及如何为玩家提供一个互动的娱乐环境。本文就将围绕这三个主题来给大家讲述一下网络游戏的网络互

2、连实现方法。网络游戏与单机游戏  说到网络游戏,不得不让人联想到单机游戏,实际上网络游戏的实质脱离不了单机游戏的制作思想,网络游戏和单机游戏的差别大家可以很直接的想到:不就是可以多人连线吗?没错,但如何实现这些功能,如何把网络连线合理的融合进单机游戏,就是我们下面要讨论的内容。在了解网络互连具体实现之前,我们先来了解一下单机与网络游戏它们各自的运行流程,只有了解这些,你才能深入网络游戏开发的核心。现在先让我们来看一下普通单机游戏的简化执行流程:Initialize()//初始化模块{ 初始化游戏数据;}Game()//游戏循环部分{ 绘

3、制游戏场景、人物以及其它元素; 获取用户操作输入; switch(用户输入数据) {  case移动:  {   处理人物移动;  }  break;  case攻击:  {   处理攻击逻辑:  }  break;  ...  其它处理响应;  ...  default:   break; } 游戏的NPC等逻辑AI处理;}Exit()//游戏结束{ 释放游戏数据; 离开游戏;}  我们来说明一下上面单机游戏的流程。首先,不管是游戏软件还是其他应用软件,初始化部分必不可少,这里需要对游戏的数据进行初始化,包括图像、声音以及一些必备的数

4、据。接下来,我们的游戏对场景、人物以及其他元素进行循环绘制,把游戏世界展现给玩家,同时接收玩家的输入操作,并根据操作来做出响应,此外,游戏还需要对NPC以及一些逻辑AI进行处理。最后,游戏数据被释放,游戏结束。网络游戏与单机游戏有一个很显著的差别,就是网络游戏除了一个供操作游戏的用户界面平台(如单机游戏)外,还需要一个用于连接所有用户,并为所有用户提供数据服务的服务器,从某些角度来看,游戏服务器就像一个大型的数据库,提供数据以及数据逻辑交互的功能。让我们来看看一个简单的网络游戏模型执行流程: 客户机:Login()//登入模块{ 初始化

5、游戏数据; 获取用户输入的用户和密码; 与服务器创建网络连接; 发送至服务器进行用户验证; ... 等待服务器确认消息; ... 获得服务器反馈的登入消息; if(成立)  进入游戏; else  提示用户登入错误并重新接受用户登入;}Game()//游戏循环部分{ 绘制游戏场景、人物以及其它元素; 获取用户操作输入; 将用户的操作发送至服务器; ... 等待服务器的消息; ... 接收服务器的反馈信息; switch(服务器反馈的消息数据) {  case本地玩家移动的消息:  {   if(允许本地玩家移动)    客户机处理人物移

6、动;   else    客户机保持原有状态;  }   break;  case其他玩家/NPC的移动消息:  {   根据服务器的反馈信息进行其他玩家或者NPC的移动处理;  }  break;  case新玩家加入游戏:  {   在客户机中添加显示此玩家;  }   break;  case玩家离开游戏:  {   在客户机中销毁此玩家数据;  }   break;  ...  其它消息类型处理;  ...   default:   break; }}Exit()//游戏结束{ 发送离开消息给服务器; ... 等待服务器确认; 

7、... 得到服务器确认消息; 与服务器断开连接; 释放游戏数据; 离开游戏;}服务器:Listen()  //游戏服务器等待玩家连接模块{ ... 等待用户的登入信息; ... 接收到用户登入信息; 分析用户名和密码是否符合; if(符合) {  发送确认允许进入游戏消息给客户机;   把此玩家进入游戏的消息发布给场景中所有玩家;  把此玩家添加到服务器场景中; } else {  断开与客户机的连接; }}Game() //游戏服务器循环部分{ ... 等待场景中玩家的操作输入; ... 接收到某玩家的移动输入或NPC的移动逻辑输入;

8、 //此处只以移动为例 进行此玩家/NPC在地图场景是否可移动的逻辑判断; if(可移动) {  对此玩家/NPC进行服务器移动处理;  发送移动消息给客户机;  发送此玩家的移动消息给场景上所有玩家; }

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。