咨询邮箱 咨询邮箱:1947790376@qq.com 咨询热线 咨询热线:0371-56752222 微博 微信
在游戏服务器中如何划定边界?
发表日期:2017-09-13    来源:帝通科技http://www.9dm.cn    浏览次数:
  我们如何创建一个游戏服务器 ,允许无限制的自由移动和游戏在广阔的地图上没有明显的边界?
实施以地图为中心的游戏服务器模式的变体,将世界地图细分为跨越统一网格分布的较小区域图。
 游戏服务器的边界划定
无缝世界游戏服务器是基于以Map为中心的游戏服务器模式。
与以Map为中心的游戏服务器模式一样,创建两种服务器类型,区域服务器 和世界服务器。 区域服务器管理区域地图并 在其间传递播放器角色,以掩盖服务器边界的存在,创造无缝 世界的错觉。在世界服务器跟踪玩家角色的位置,并配合高层次跨区域活动。
 
服务器群集由许多通过单个中央世界服务器进程连接的区域服务器进程组成。使用分布式网络连接模式来管理客户端网络连接。
世界服务器
 
在全球服务器充当中央控制器区域服务器。它将区域地图分配给区域 服务器,并协调区域地图 和区域服务器之间玩家角色的移动。
 
在世界服务器是同时在虚拟世界和中玩家角色的位置,中央机关区域服务器 组成游戏服务器集群的工艺节点。当玩家角色在区域服务器之间移动时,世界服务器更新连接服务器 使用的路由数据,以便给定玩家角色的客户端消息到达正确的区域服务器。
 
在地图之间移动
 
以地图为中心的游戏服务器 模式指定当玩家的角色在虚拟世界中的地图之间移动时,角色的状态从旧的地图实例移动到新的地图实例 。该模式实现更一般的用例,其中字符在不是相邻区域映射的两个映射之间传播。
 
区域边界
 
当玩家角色穿越区域边界或与区域边界另一侧的游戏对象交互时,会出现更复杂的用例。这些用例是这种模式的关键动力。这种模式的目标是模拟一个巨大的连续世界,隐藏了世界真正只是较小地图的复合体的细节。
 
为了做到这一点,游戏必须使区域地图界限的运动和交互尽可能的流畅。理想情况下,这意味着按照重要性的顺序:
 
移动他们的角色跨区域边界时,玩家不会遇到任何滞后或陷阱。
玩家必须能够看到边界另一边的其他玩家角色,NPC和游戏对象。
玩家必须能够与边界另一边的其他玩家角色,NPC和游戏对象进行交互。在这里,互动是指通常在同一地图上的角色和游戏对象之间发生的游戏的子集。
横跨边界
 
为了支持跨区域地图边界移动玩家角色,您需要:
 
确定是否可以像常规的地图传输那样从永久存储(或缓存)加载字符数据。如果你能做得足够快,很棒。如果没有,那么...
实现对播放器角色和所有相关游戏状态的序列化的支持,通过线路发送到远程区域服务器,并在目标地图实例中反序列化。
相关的游戏状态通常包括装备的物品或可穿戴物品,像buff / debuff等持久的游戏效果。
作为经验法则,包括在游戏过程中必须立即可用于玩家角色或其他游戏对象的任何东西。
这必须在几十毫秒内几乎立即发生,以尽量减少滞后。
跨越区域边界需要在区域服务器之间几乎立即传输数据。
跨越区域边界需要在区域服务器之间几乎立即传输数据。
您还需要克服几个挑战:
 
如果您通过电线发送字符状态,当它到达时,它必须与通常从持久存储器加载的状态一致。您必须确定哪个副本是权威的,以及是否加载持久化的数据,或者只是保存传输的副本。时间重要,您必须调整转移后发生的任何状态更改,并尽快保存。出现这个错误是一些知名游戏中一些着名的“项目欺骗”攻击的原因。
你必须处理运动边缘情况和竞争条件。这些是复杂的,可能是无限的。示例包括玩家在同一边界上快速前后移动,试图跨越边界沿边移动,并试图在交叉点的多个地图之间移动。最明显的解决办法是限制运动和强加交易障碍以防止这些情况,但会增加延迟,打败这种模式的目的。
您必须决定是否允许NPC和其他AI控制的角色跨越地图边界。支持这可能会导致复杂性的爆炸式增长。不支持它会限制游戏玩法。在某些游戏中,这导致了人为控制的角色沿服务器边界排列​​的异常,因为它们可以跨越边界“查看”目标角色,但不能跟随它们。
看跨边界
 
支持玩家在区域地图边界上查看游戏对象的能力:
 
增强服务器可见性系统,将游戏对象包含在与该角色可见的玩家角色当前地图相邻的地图上。这是确定哪些游戏对象彼此可见的子系统。
这意味着 当游戏对象位于区域边界的某个可见性阈值内时 ,每个区域地图的区域服务器 必须向相邻地图的区域服务器发送位置,方向和状态更新消息。
反过来,这些相邻区域服务器必须在其可见性图中跟踪这些远程游戏对象,就好像它们是本地的,但是位于正常的地图范围之外。
跨越边界的游戏
 
允许玩家在区域地图边界之间与游戏对象交互:
 
实施将一个区域地图上的玩家角色(或其他游戏对象)发起的游戏事件发送到相邻区域地图区域服务器上的游戏对象的支持。
这应该建立在使用异步消息传递所有游戏事件的现有基础之上。如果存在的话,实现这个将会更容易。如果没有,你可能想重新考虑这样做。根据您对互动的定义,这里的工作范围可以从远程战斗到物品交易

本文链接:http://www.9dm.cn/industry/175.html转载请注明。
标签:游戏服务器,游戏服务器托管,服务器托管公司


上一篇:游戏服务器为什么有时候会崩溃? 下一篇:以地图为中心的游戏服务器如何配置