游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1904|回复: 2

关于玩家跳转地图的程序设计

[复制链接]

2

主题

7

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-7-9 16:29:00 | 显示全部楼层 |阅读模式
服务器架构大概如下:
玩家客户端直连GATEWAY服务器,简称GW;
SCENE服务器也就是地图服务器,每个SCENE进程运行几个地图;
几个SCENE运行了游戏的所有地图;
GW要和每个SCENE连接;
所有SCENE要和一个唯一的服务器MANAGER连接,MANAGER知道所有的地图信息;

比如SCENE1进程运行了两张地图A和B;
SCENE2运行了地图C;

玩家在地图A,要跳到地图C,怎么处理呢?

方案:
  当客户端点击了跳转点,会从SCENE1发出跳转请求给MANAGER,MANAGER于是询问SCENE2,假如成功(SCENE2有响应,并且人数未满),MANAGER将玩家数据结构发给SCENE2,并同时通知SCENE1删除玩家数据结构;

感觉应该有不少地方没考虑清楚啊,此时客户端又是怎么表现呢?大家给些建议吧。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20515
发表于 2010-7-9 18:47:00 | 显示全部楼层

Re:关于玩家跳转地图的程序设计

客户端应该不需要知道跳转scene

还有角色数据问题,数据是放在scene,还是有专门的管理服务器,这个需要你思考下。

2

主题

7

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2010-7-12 10:33:00 | 显示全部楼层

Re:关于玩家跳转地图的程序设计

sea_bug: Re:关于玩家跳转地图的程序设计

客户端应该不需要知道跳转scene

还有角色数据问题,数据是放在scene,还是有专门的管理服务器,这个需要你思考下。

对的,客户端不需要。 服务器检测到这是个跳转点,所以SCENE1发出跳转请求给MANAGER;
角色数据放在SCENE进程分配的内存;
所以牵涉到从原SCENE1将数据转移到SCENE2;

我觉得可以在请求跳转发起时,设置玩家状态,这样SCENE1的逻辑循环就不会处理该玩家;

若MANAGER发现SCENE2可用,通知SCENE1,于是把玩家数据发来,传给SCENE2;
此时,SCENE1上删除角色数据,成功;

若scene2不可用,通知SCENE1,提示跳转失败,将玩家恢复到正常状态,仍然留在SCENE1。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-8 10:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表