实现一个无缝的世界服务器

无缝服务器由 世界节点、一个代理和一个登录服务器组成

美工需要建立过渡区域来连接两个区域,不让玩家觉得一下从热带变成了霜冻地区,也在这个区域加载下个地图需要的信息与资源。

无缝世界中出现的几种不同类型的服务器:
1 远程控制器:接受客户的连接,并发送ok'给代理服务器。
2 代理服务器:无缝世界与游戏服务器的桥梁。
3 登录服务器:验证用户。
4 节点服务器:管理世界的一个区域。
5 世界管理器:把世界的区域分布到节点服务器中,管理所有节点服务器。

远程控制器-管理服务器的启动

     代理服务器等待一个特殊的数据包,包含“上线”的命令,精确的控制代理服务器上线时间。
     启动的条件:确定登录服务器已经启动、世界管理器把世界区域发送给节点服务器。

代理服务器

如果不希望把游戏架构暴露给世界地图服务器,那么有一种方式就是,所有的通信都通过一个代理服务器,让他进行转发。 在实际实现中,可能希望有很多代理服务器来分担负载,客户端可以连接到一个重定向器,根据负载与延迟来决定应该使用哪个代理服务器。

当代理服务器收到一个来自未知客户端的连接时,就会把它转发给登录服务器进行验证,一旦用户通过验证,登录服务器就会通知客户所在的代理服务器和客户所在的节点服务器。

登录服务器

登录服务器负责处理客户的验证,得到玩家位置信息,找到正确的节点服务器,并且进行连接,

节点服务器

节点服务器是无缝世界最主要的承担者。 为了管理跨边界的交互,节点服务器不仅需要管理它负责的世界区域,还需要知道其他的世界区域,我们把它叫做边界区域, 这个边界,虽然属于其他服务器,但也需要节点服务器告诉管理器已经接近其他节点服务器的区域。

为了实现无缝加载,需要让同一个对象同时出现在两个服务器上,所以必须引入代理对象的概念,它是一个服务端对象, 表示在另一个节点服务器对象的分身。 边界区域的最小面积至少是玩家认知半径的大小,以避免两个在不同边界的玩家看到不同的东西。 1 性能考虑。对于共有的物体,比如星星,太阳灯,应该使用全局管理,而不是节点服务器。 2 邻居。节点服务器可以从世界管理器知道它的邻居。

世界管理器

世界管理服务器负责把世界分割成不同的管理区域,并把这些区段交给不同的节点服务器。当世界管理器分发好所有的世界区域后,就会发送一个消息给远程控制器,告诉世界已经分布好了,避免还没准备好久接收了玩家的连接。

世界管理器的另一个任务是处理登录服务器和节点服务器的请求,当玩家从一个区域切换到另一个区域,需要切换节点服务器,世界管理器也负责这部分的处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值