General Process(一般过程) 网络游戏与单机游戏有一个很显著的差别,就是网络游戏除了一个供操作游戏的用户界面平台(如单机游戏)外,还需要一个用于连接所有用户,并为所有用户提供数据服务的服务器,从某些角度来看,游戏服务器就像一个大型的数据库,提供数据以及数据逻辑交互的功能。让我们来看看一个简单的网络游戏模型执行流程: } break; ... 其它消息类型处理; ... default: break; } } Exit()// 游戏结束 { 发送离开消息给服务器; ... 等待服务器确认; ... 得到服务器确认消息; 与服务器断开连接; 释放游戏数据; 离开游戏; } 服务器: Listen() // 游戏服务器等待玩家连接模块 { ... 等待用户的登入信息; ... 接收到用户登入信息; 分析用户名和密码是否符合; if( 符合 ) { 发送确认允许进入游戏消息给客户机; 把此玩家进入游戏的消息发布给场景中所有玩家; 把此玩家添加到服务器场景中; } else { 断开与客户机的连接; } } Game() // 游戏服务器循环部分 { ... 等待场景中玩家的操作输入; ... 接收到某玩家的移动输入或NPC的移动逻辑输入; // 此处只以移动为例 进行此玩家/NPC在地图场景是否可移动的逻辑判断; if( 可移动 ) { 对此玩家/NPC进行服务器移动处理; 发送移动消息给客户机; 发送此玩家的移动消息给场景上所有玩家; } else 发送不可移动消息给客户机; } Exit() // 游戏服务=器结束 { 接收到玩家离开消息; 将此消息发送给场景中所有玩家; 发送允许离开的信息; 将玩家数据存入数据库; 注销此玩家在服务器内存中的数据; } } |
Network Game - Network Communication Model 2
最新推荐文章于 2024-08-05 12:04:08 发布