首页> 中国专利> 游戏服务器集群系统及提高游戏空间服务方法

游戏服务器集群系统及提高游戏空间服务方法

摘要

本发明实施例提供一种游戏服务器集群系统,包括:数据服务器,用于存储游戏世界地图以及游戏状态数据,游戏世界地图包括若干个虚拟地图分片;实体服务,与数据服务器通信连接,用于存储至少一个虚拟地图分片以及与虚拟地图分片对应的游戏状态数据;若干个虚拟服务,与实体服务通信连接,并向实体服务发出数据同步请求,并判断实体服务能否在固定时间间隔内回应数据同步请求,当实体服务不能在固定时间间隔向虚拟服务发出数据同步回应,并且虚拟服务自身满足切换条件时,虚拟服务启动服务切换流程。本发明还提供一种提高游戏空间服务方法。

著录项

  • 公开/公告号CN105978746A

    专利类型发明专利

  • 公开/公告日2016-09-28

    原文格式PDF

  • 申请/专利权人 北京沐星科技有限公司;

    申请/专利号CN201610599554.7

  • 发明设计人 谢贤林;

    申请日2016-07-26

  • 分类号H04L12/24(20060101);H04L12/66(20060101);H04L29/06(20060101);H04L29/08(20060101);

  • 代理机构北京华智则铭知识产权代理有限公司;

  • 代理人陈向敏

  • 地址 100191 北京市海淀区知春路7号致真大厦C座五层502室

  • 入库时间 2023-06-19 00:34:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-01

    授权

    授权

  • 2016-10-26

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20160726

    实质审查的生效

  • 2016-09-28

    公开

    公开

说明书

技术领域

本发明实施例涉及游戏集群技术领域,尤其涉及一种游戏服务器集群系统及提高游戏空间服务方法。

背景技术

当前网络游戏在管理虚拟游戏世界空间信息时,通常采用分片分服的方式进行。即一个服务进程管理虚拟世界中一定区域范围的数据,并处理在该区域上发生的游戏事件。对于有些需要无缝连通的大型游戏世界,通常使用进程间通信的方式实现。现有的游戏引擎,比如Big World游戏引擎可以将游戏世界动态分片,并将游戏虚拟形象的空间相关模块进行独立。当进行动态分片或者相关模块独立之后,则需要进一步优化无缝游戏世界的平滑体验。比如,专利申请号为CN200610145026.0,发明创造名称为“无缝超大规模虚拟游戏世界平台”的发明专利申请,是使用了影子(agent)的概念,其主要特点是当玩家在游戏中的虚拟形象接近虚拟世界中当前所在区域的边界时,预先在边界另一区域的服务进程中创建该虚拟形象的同步复制(影子),并在虚拟形象跨越边界的一瞬间通过极小的通信命令实现影子与实际操作形象的地位互换从而实现玩家体感上的平滑过渡。

上述专利申请所公开的技术,主要应用于MMORPG等以虚拟形象为核心的游戏中,该技术在服务器集群中某些机器瘫痪,导致虚拟世界中某些区域无法正常工作,进而导致玩家的虚拟形象不可进入该区域,在一定程度上影响了游戏的体验。但对于策略类游戏,由于没有虚拟形象的设定,游戏内容也从玩家控制虚拟形象漫游,改为在公共可见的虚拟世界的某一个固定区域中,以第三人称视角的方式模拟建造与经营。对于这类游戏产品,虽然分 片分服的技术方案依然可用,但由于玩家依托虚拟空间进行游戏,所以随着玩家数量的增加,服务器集群规模也会不断增加,在硬件故障率不变的前提下,集群中瘫痪的机器数量也会逐渐增多,此时将无法实现平滑过渡,大大降低了游戏体验。

因此,本申请的发明人在进行深入研究后发现,现有游戏需要一种可靠性更高的游戏空间服务方案。

发明内容

本发明的目的在于提供一种游戏服务器集群系统及提高游戏空间服务方法,以提供一种可靠性更高的游戏空间服务方案。

本发明实施例提供一种游戏服务器集群系统,包括:

数据服务器,用于存储游戏世界地图以及游戏状态数据,所述游戏世界地图包括若干个虚拟地图分片;

实体服务,与所述数据服务器通信连接,用于存储至少一个所述虚拟地图分片以及与所述虚拟地图分片对应的游戏状态数据;

若干个虚拟服务,与所述实体服务通信连接,并向所述实体服务发出数据同步请求,并判断所述实体服务能否在固定时间间隔内回应数据同步请求,当所述实体服务不能在固定时间间隔向所述虚拟服务发出数据同步回应,并且所述虚拟服务自身满足切换条件时,所述虚拟服务启动服务切换流程。

进一步的,还包括网关,与所述实体服务通信连接。

进一步的,一个所述实体服务和若干个所述虚拟服务组成一个空间服务,每一个空间服务管理一个虚拟地图分片。

进一步的,所述实体服务负责运行所述虚拟地图分片对应的游戏程序,所述虚拟地图分片包括多个地块。

进一步的,所述数据同步请求用于同步所述虚拟地图分片以及与所述虚拟地图分片对应的游戏状态数据。

本发明还提供一种提高游戏空间服务方法,包括:

实体服务向数据服务器获取游戏世界地图数据以及游戏状态数据;

虚拟服务向所述实体服务发出数据同步请求,并判断所述实体服务能否在固定时间间隔内回应数据同步请求;

当所述实体服务不能在固定时间间隔向所述虚拟服务发出数据同步回应,并且所述虚拟服务自身满足切换条件时,启动服务切换流程。

进一步的,所述启动服务切换流程具体包括:

所述虚拟服务及实体服务均转换为服务;

所有的所述服务竞争出现异常的所述实体服务对所述虚拟地图分片的全局唯一运行权;

获得运行权的所述服务转换为新的实体服务。

进一步的,还包括步骤:所述新的实体服务根据数据版本号更新数据。

进一步的,所述新的实体服务根据数据版本号更新数据的步骤具体包括:

所述新的实体服务从所述数据服务器下载数据版本号,并对比下载的所述数据版本号与切换前存储的数据版本号,如果所述下载的数据版本号比所述存储的数据版本号大,则更新所述新的实体服务的数据。

进一步的,所述获得运行权的服务向网关与所述数据服务器发出切换通知之后转换为所述新的实体服务;原实体服务转为所述服务之后,如果再向所述数据服务器发出操作请求,将会收到所述数据服务器返回的拒绝操作应答。

本发明实施例提供的技术方案对于现有技术中,在遇到异常时重启物理机或重启服务的方式而言,在重启期间不会导致在该虚拟地区的玩家不能正常进行游戏。从而弥补了目前游戏开发领域里对于这类服务的在容灾方面的空白。玩家通过与网关建立服务连接,避免了在服务切换时重新连接的步骤,使服务切换透明化。同时虚拟服务在实体服务正常运行时,便开始准备缓冲数据,当切换动作发生后,只需要矫正切换动作过程中产生的误差数据即可, 而不用重新加载全部状态,进而大幅度提升了性能,降低了用户的卡顿感。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图为本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的游戏服务器集群系统的结构图;

图2为本发明实施例提高游戏空间服务方法的流程图;

图3为本发明实施例启动服务切换流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例为本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的总体方案为:在游戏服务器集群系统设置有数据服务器,用于存储游戏世界地图以及游戏状态数据,游戏世界地图包括若干个虚拟地图分片;并设置有实体服务与数据服务器通信连接,用于存储至少一个虚拟地图分片以及与虚拟地图分片对应的游戏状态数据;以及设置若干个虚拟服务,与实体服务通信连接,并向实体服务发出数据同步请求,并判断实体服务能否在固定时间间隔内回应数据同步请求,当实体服务不能在固定时间间隔向虚拟服务发出数据同步回应,并且虚拟服务自身满足切换条件时,虚拟服务启动服务切换流程。具体方案如下:

图1为本发明实施例的游戏服务器集群系统的结构图。

本发明实施例的游戏服务器集群系统包括:网关100,实体服务200至20N,虚拟服务400至40N,虚拟服务500至50N,以及数据服务器300。

网关100与实体服务200至20N通信连接,实体服务200与虚拟服务400至40N通信连接,实体服务20N与虚拟服务500至50N通信连接。本发明实施例的通信连接,并非固定不变,其可在实体服务发生异常时,进行连接上的切换。

需要说明的是,实体服务与虚拟服务在硬件上可以是分别运行于独立的计算机,也可以运行于同一计算机,即实体服务与虚拟服务均由同一台计算机运行,此时实体服务与虚拟服务则变成了各自独立运行的进程。而且当实体服务与虚拟服务均由同一台计算机运行时,则实体服务与虚拟服务之间的通信连接,实质上是指进程之间的通信或者是程序调用。

本发明实施例中,每一个空间服务在服务器集群中有唯一的实体服务(Real Service)和若干个虚拟服务(Virtual Service),换而言之,一个实体服务和若干个虚拟服务组成一个空间服务。实体服务负责运行该虚拟地图分片对应的游戏程序,虚拟服务不运行游戏程序,但会定期向实体服务请求数据同步。数据同步请求用于同步所述虚拟地图分片以及与所述虚拟地图分片对应的游戏状态数据。

本发明实施例中,游戏世界地图是指游戏中虚拟的游戏世界地图,在游戏中是以无边界的形式呈现。在游戏中该虚拟地图分片可以为无限多个,每一个虚拟地图分片由多个地块组成,每一个虚拟地图分片分别由一个空间服务管理。

图2为本发明实施例提高游戏空间服务方法的流程图。

本发明实施例的提高游戏空间服务方法,包括步骤S101、S102、S103,以及S104。

S101:实体服务向数据服务器300获取游戏世界地图数据以及游戏状态 数据。

本发明实施例中,数据服务器300上存储游戏有世界地图以及游戏状态数据,所述游戏世界地图包括若干个虚拟地图分片;实体服务上存储至少一个虚拟地图分片以及与虚拟地图分片对应的游戏状态数据;

在将游戏世界地图分为多个虚拟地图分片之后,每一个分片均存储于数据服务器,每一个实体服务会向数据服务器发出操作请求,以获取对应的虚拟地图分片以及游戏状态数据。

S102:虚拟服务向实体服务发出数据同步请求,并判断实体服务能否在固定时间间隔内回应数据同步请求。

本步骤中的数据同步请求包括同步对应的虚拟地图分片以及游戏状态数据。

S103:当实体服务不能在固定时间间隔向虚拟服务发出数据同步回应,并且虚拟服务自身满足切换条件时,启动服务切换流程。

本发明实施例中,当实体服务不能在固定时间间隔向虚拟服务发出数据同步回应,则说明实体服务出现异常,比如宕机或载荷过大。

本步骤中的启动服务切换流程具体如图3所示为:

S1031:虚拟服务及实体服务均转换为服务;

当实体服务出现异常,则游戏服务器集群系统无法区分实体服务与虚拟服务的角色,虚拟服务及实体服务均转换为服务以开始竞争流程。

S1032:所有的服务竞争出现异常的实体服务对虚拟地图分片的全局唯一运行权;

本发明实施例中,由于每个实体服务对应连接有多个虚拟服务,所以当某一个实体服务出现异常时,可以只有跟该实体服务连接的虚拟服务才能竞争运行权,其它不跟该实体服务连接的虚拟服务不参与竞争运行权;

当然在其它实施例中,也可设置为其它虚拟服务也可以竞争不与直接连接的实体服务的竞争权,此时如果不跟该实体服务连接的虚拟服务参与了竞 争运行权,则优先将运行权赋予直接连接的虚拟服务,只有在直接连接的虚拟服务均不符合切换条件时,才将运行权赋予不直接连接的虚拟服务。

本发明实施采用如下竞争算法竞争对地图分片的全局唯一运行权。

游戏服务器集群系统中的每个服务均有一个数值型的身份识别(ID)编号,且互不重复。该服务包括实体服务和虚拟服务。

游戏服务器集群系统处于正常运行状态时,实体服务与虚拟服务的角色是可区分的,此时实体服务与虚拟服务之间的每一次数据同步会被计数,因此同步计数值越大代表数据越新。

游戏服务器集群系统无法区分实体服务与虚拟服务的角色时,则整个集群系统由正常运行状态,进入竞争状态。

在竞争状态下:

游戏服务器集群系统中的每个服务,首先将自身设为预期实体服务并向其它服务广播自己的ID编号和同步计数值,并将自己的ID编号和同步计数值加入备选实体服务列表;然后进入以下循环流程:

每个服务接收其它服务发送的广播信息;

每个服务依次判断对方的同步计数值与ID编号;

如果对方的同步计数值大于当前预期实体服务的同步计数值,则将对方的同步计数值和ID编号加入备选实体服务列表;如果对方的同步计数值等于当前预期实体服务的同步计数值,则进一步判断对方的ID编号是否大于当前预期实体服务的ID编号,如果大于则将对方的同步计数值和ID编号加入备选实体服务列表。需要说明的,本发明实施例中,每个服务均保存有一张备选实体服务列表,每一张备选实体服务列表均保存有其它服务的被选择数量。

当出现被选数量最多的服务第一次超过游戏服务器集群系统中所有的服务数量的一半,则被选数量最多的服务成为实体服务,并结束竞争流程;如果当前被选数量最多的服务没有超过游戏服务器集群系统中所有的服务数量的一半,则将该被选数量最多的服务设置为预期实体服务,进入下一次竞争 流程。

S1033:获得运行权的服务转换为新的实体服务。

本发明实施例中,获得运行权的服务向网关100与数据服务器300发出切换通知之后转换为新的实体服务。原实体服务转为服务之后,如果再向数据服务器300发出操作请求,将会收到数据服务器300返回的拒绝操作应答。

S104:新的实体服务根据数据版本号更新数据。

具体而言,新的实体服务从数据服务器300下载数据版本号,并对比下载的版本号与切换前存储的数据的版本号,如果下载的数据版本号比存储的数据版本号大,则需要更新实体服务的数据,以保证游戏的顺畅运行;如果下载的数据版本号等于或者小于存储的数据版本号,则不需要更新实体服务的数据。

总而言之,本发明实施例具有如下有益效果:

由于游戏中的整个游戏世界地图,会随着玩家数量增加不断扩大,因此本发明通过将面积无限大的游戏世界地图由多个空间服务集群(也就是由多个实体服务和多个虚拟服务)协同管理,当集群中一个或多个空间服务不可用时,可快速切换至另一个可用的虚拟服务继续工作,由于空间服务本身是有状态服务,存在较大量的缓存数据以提高性能,新的实体服务在接替工作时,可减少状态恢复的时间,从而提升用户体验。

所以通过以上分析可知,本发明对于现有技术中,在遇到异常时重启物理机或重启服务的方式而言,在重启期间不会导致在该虚拟地区的玩家不能正常进行游戏。从而弥补了目前游戏开发领域里对于这类服务的在容灾方面的空白。玩家通过与网关100建立服务连接,避免了在服务切换时重新连接的步骤,使服务切换透明化。同时虚拟服务在实体服务正常运行时,便开始准备缓冲数据,当切换动作发生后,只需要矫正切换动作过程中产生的误差数据即可,而不用重新加载全部状态,进而大幅度提升了性能,降低了用户的卡顿感。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号