Network Game - Network Communication Model 2
来源:互联网 发布:电脑淘宝网页打不开 编辑:程序博客网 时间:2024/06/05 03:50
General Process(一般过程)
网络游戏与单机游戏有一个很显著的差别,就是网络游戏除了一个供操作游戏的用户界面平台(如单机游戏)外,还需要一个用于连接所有用户,并为所有用户提供数据服务的服务器,从某些角度来看,游戏服务器就像一个大型的数据库,提供数据以及数据逻辑交互的功能。让我们来看看一个简单的网络游戏模型执行流程:
客户机:
Login()// 登入模块
{
初始化游戏数据;
获取用户输入的用户和密码;
与服务器创建网络连接;
发送至服务器进行用户验证;
...
等待服务器确认消息;
...
获得服务器反馈的登入消息;
if( 成立 )
进入游戏;
else
提示用户登入错误并重新接受用户登入;
}
Game()// 游戏循环部分
{
绘制游戏场景、人物以及其它元素;
获取用户操作输入;
将用户的操作发送至服务器;
...
等待服务器的消息;
...
接收服务器的反馈信息;
switch( 服务器反馈的消息数据 )
{
case 本地玩家移动的消息:
{
if( 允许本地玩家移动 )
客户机处理人物移动;
else
客户机保持原有状态;
}
break;
case 其他玩家/NPC的移动消息:
{
根据服务器的反馈信息进行其他玩家或者NPC的移动处理;
}
break;
case 新玩家加入游戏:
{
在客户机中添加显示此玩家;
}
break;
case 玩家离开游戏:
{
}
break;
...
其它消息类型处理;
...
default:
break;
}
}
Exit()// 游戏结束
{
发送离开消息给服务器;
...
等待服务器确认;
...
得到服务器确认消息;
与服务器断开连接;
释放游戏数据;
离开游戏;
}
服务器:
Listen() // 游戏服务器等待玩家连接模块
{
...
等待用户的登入信息;
...
接收到用户登入信息;
分析用户名和密码是否符合;
if( 符合 )
{
发送确认允许进入游戏消息给客户机;
把此玩家进入游戏的消息发布给场景中所有玩家;
把此玩家添加到服务器场景中;
}
else
{
断开与客户机的连接;
}
}
Game() // 游戏服务器循环部分
{
...
等待场景中玩家的操作输入;
...
接收到某玩家的移动输入或NPC的移动逻辑输入;
// 此处只以移动为例
进行此玩家/NPC在地图场景是否可移动的逻辑判断;
if( 可移动 )
{
对此玩家/NPC进行服务器移动处理;
发送移动消息给客户机;
发送此玩家的移动消息给场景上所有玩家;
}
else
发送不可移动消息给客户机;
}
Exit() // 游戏服务=器结束
{
接收到玩家离开消息;
将此消息发送给场景中所有玩家;
发送允许离开的信息;
将玩家数据存入数据库;
注销此玩家在服务器内存中的数据;
}
}
- Network Game - Network Communication Model 2
- Network Game - Network Communication Model 1
- Network Game - Network Communication Model 3
- Network Game - Network Communication Model 4
- Network Game - Network Communication Model 5
- Electronic Communication Network - ECN
- vehicle network communication chord
- Communication over the network
- User Login and network communication
- neural network model
- Social Media Network Model
- Java Network Game Programming
- game network papers
- Wireless Network Security (Signals and Communication Technology)
- Top Journals of Computer Network & Wireless Communication
- [network]
- NETWORK
- Network
- the Struts dispatcher cannot be found. 在struts2中出现的问题
- SecureCRT 5.0序列号
- 将string转换为DateTime
- .net图片处理相关
- JSP编码以及乱码解决总结
- Network Game - Network Communication Model 2
- cookie生成和访问的简单逻辑
- Asp.net window.open弹出子窗体,刷新主窗体
- 一个DSP程序员应具备的素质
- GridView1设置序列号
- Android开发之GSM驱动模块详细分析(一)
- mysql怎样查询当月的定单数?
- Network Game - Network Communication Model 3
- myeclipse5.5.1开发webService