【六六互联】长期出售【美国抗投诉服务器】【欧洲抗投诉服务器】【亚洲抗投诉服务器】

大世界体系中它是不应该存在的服务器(如跨服服务器

大世界体系中它是不应该存在的服务器(如跨服服务器)

传统MMORPG服务器架构

传统MMORPG服务器组简化示意

为便于理解,图中未涉及登录、充值、DB 缓存/存储和跨服相关的服务器,是因为在无缝大世界的实现中这些服务要么已有已经成熟的解决方案( 如DB相关)、要么其技术复杂度完全和是否大世界正交(如登录和充值服务),要么在大世界体系中它是不应该存在的服务器(如跨服服务器)。

为保持服务器名称与其内涵统一,故对图1中服务器的功能边界说明如下

Gate Server : 网关服务器,它的主要功能为接受客户端连接、客户端/其它服务器之间的消息透传及对外网隔离游戏功能服务器。客户端只需要知道Gate Server的地址并和它进行通信,游戏功能服务器亦如是。

World Server: 世界服务器,它的主要功能分为两部分,非游戏场景相关逻辑功能(如社交系统、聊天、部分社交任务等等)和游戏场景服务器的管理功能(场景服务器发现、健康检查、启动/关闭等)

Zone Server : 游戏场景服务器 ,它的主要功能为游戏除World Server负责外的所有功能,如角色移动与位置同步、技能战斗、AI、寻路、大部分任务系统功能等。

这儿需要说明的是,Zone 0和 Zone N分管的是不同的游戏场景或游戏服务副本,这些场景之间有明确的边界,游戏角色在地图边界的一边完全不会感知到边界另一边的游戏角色和游戏内容,即不同Zone服务器上的玩家之间彼此之间的场景玩法及位置等信息完全隔离。

如下图所示,游戏地图共分为6个Zone (A~F),其中Zone A中有玩家a(标红),它的热区范围(AOI)被蓝色圆圈所覆盖。

在经典MMORPG服务器架构中,因为Zone之间的隔离性,玩家a只看到了蓝色圈中变蓝的那些玩家,他看不到Zone A之外其它Zone中被AOI实际位置所覆盖的玩家,如位于Zone C中的玩家b。当玩家从跨越Zone的边界,他就会从原来Zone的玩家视野中消失,进而出现在新进入Zone的玩家视野,即一个玩家不可能同时出现在两个Zone玩家的视野,故两个Zone上的玩家之间也不可能发生战斗。

当游戏存在M个区服的时候,简化的服务器架构

抛开运营商业策略的原因,传统MMORPG之所以在技术层面需要分区分服,其主要原因有:

AOI范围内的计算和消息复杂度和该范围内所覆盖的Entity(包括玩家)的个数的平方成正比

单台游戏服务器硬件所能提供的计算量、网络带宽、存取IO速率有限,故其只能容纳有限数量的Entity仿真

故其策略是预估单个区服和单地图可容纳的人数上限,把玩家隔离在不同的区和不同的地图服务器以保证游戏体验的流畅性。

经典游戏服务器架构的优点:

部署简单,进程数量少,按MMO的区服容纳人数标准,上述服务器进程除了网关、付费、DB服外大多可以部署在一台物理机上,容易做到一键发布。

开发门槛低,游戏场景服务器功能高度内聚,游戏主体逻辑可运行在单线程顺序环境下,不需要考虑复杂异步通信和多线程的不确定性

部分无状态服务器(Gate , Pay ,Login)或对延迟不敏感的服务器(World)虽然在架构上是单点,但扩展为高可用的分布式服务器的成本和难度很低。

大世界体系中它是不应该存在的服务器(如跨服服务器)

独立Zone用于跨服的功能易于实现——在Server Group之间加上跨服消息转发的服务器即可以实现相关功能

配合游戏运营过程中的合区功能易于实现,在角色及道具ID生成和玩家可输入的唯一标示(如角色名,公会名等)时候把区服信息纳入考虑或做为标识头的一部分即可解决运营中后期数据合区时DB表项冲突的绝大部分问题。