发明内容
为此,本发明提供网络游戏中跨服务器用户匹配方法及装置,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了网络游戏中跨服务器用户匹配方法,该方法在第一服务器中执行,第一服务器与多个第二服务器相连,方法包括步骤:当接收到客户端用户的战斗请求时,从与其连接的多个第二服务器中随机选取一个第二服务器,读取所选取的第二服务器的用户列表;从用户列表中查找与请求战斗的用户同等级的用户,作为匹配的对手推送给客户端用户;根据匹配对手的用户ID,获取用户的战斗力参数,一并推送给客户端用户;其中,用户列表关联存储用户ID和用户等级。
可选地,在根据本发明的网络游戏中跨服务器用户匹配方法中,还包括步骤:每隔预定时间检测所述第一服务器是否与至少一个第二服务器保持连接;若是,则记录与其连接的第二服务器的IP信息到服务器列表。
可选地,在根据本发明的网络游戏中跨服务器用户匹配方法中,还包括步骤:当有第二服务器初始化时,第一服务器接收该第二服务器的注册信息,更新服务器列表。
可选地,在根据本发明的网络游戏中跨服务器用户匹配方法中,从用户列表中查找同等级的用户,作为匹配的对手推送给第一服务器的步骤还包括:若没有查找到同等级的用户,则查找比所请求用户等级低预定级数的用户,作为匹配的对手。
可选地,在根据本发明的网络游戏中跨服务器用户匹配方法中,,还包括:若没有查找到等级低预定级数的用户,则查找比所请求用户等级高预定级数的用户,作为匹配的对手。
可选地,在根据本发明的网络游戏中跨服务器用户匹配方法中,还包括:若没有找到匹配的对手,则选取另一个与其连接的第二服务器进行查找,直到匹配到对手为止。
可选地,在根据本发明的网络游戏中跨服务器用户匹配方法中,用户等级是用户在网络游戏中经验值的统计。
根据本发明的另一个方面,提供了网络游戏中跨服务器用户匹配装置,该装置布置在第一服务器上,第一服务器与多个第二服务器相连,装置包括:连接管理模块,适于接收客户端用户的战斗请求、并且与多个第二服务器保持连接、以及推送匹配的对手及其战斗力参数给所述客户端用户;信息获取模块,适于从与第一服务器连接的多个第二服务器中随机选取一个第二服务器,获取所选取的第二服务器的用户列表,还适于根据匹配到的对手的用户ID,获取用户的战斗力参数;列表存储模块,适于关联存储用户ID和用户等级作为用户列表;以及匹配对手模块,适于从用户列表中查找与请求战斗的用户同等级的用户,作为匹配的对手。
可选地,在根据本发明的网络游戏中跨服务器用户匹配装置中,连接管理模块还适于每隔预定时间检测第一服务器是否与至少一个第二服务器保持连接;列表存储模块还适于在检测到保持连接的第二服务器时,记录该第二服务器的IP信息到服务器列表。
可选地,在根据本发明的网络游戏中跨服务器用户匹配装置中,连接管理模块还适于接收初始化的第二服务器的注册信息;以及列表存储模块还适于根据注册信息,更新服务器列表。
可选地,在根据本发明的网络游戏中跨服务器用户匹配装置中,匹配对手模块还适于在没有查找到同等级的用户时,查找比所请求用户等级低预定级数的用户,作为匹配的对手。
可选地,在根据本发明的网络游戏中跨服务器用户匹配装置中,匹配对手模块还适于在没有查找到等级低预定级数的用户时,查找比所请求用户等级高预定级数的用户,作为匹配的对手。
可选地,在根据本发明的网络游戏中跨服务器用户匹配装置中,匹配对手模块还适于在没有找到匹配的对手时,选取另一个与其连接的第二服务器进行查找,直到匹配到对手为止。
可选地,在根据本发明的网络游戏中跨服务器用户匹配装置中,用户等级是用户在网络游戏中经验值的统计。
根据本发明的网络游戏中跨服务器用户匹配方案,在游戏平台中记录游戏用户的数据,跨服务器为用户匹配合适的对手进行战斗,以提升用户的游戏体验。
进一步地,为保证匹配的精准,就需要提供完整、全面的用户数据,相比于现有方案中,在有新服务器加入时,老服务器并不能直接获取新服务器上存储的用户数据,而是等新服务器与老服务器一起停机维护配置参数时,才将新服务器的用户数据发送给老服务器,不能及时地分享游戏平台中的用户数据;本方案直接采用新服务器主动向已知老服务器注册的方式,这样,老服务器就可以获取新服务器IP,不用停机就能够获取到新服务器上的用户数据,实现了动态地增加服务器。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是图示根据一个实施例的网络游戏中跨服务器用户匹配系统环境100的网络示图。除了其他组件,该系统环境100包括第一服务器110、网络120、多个第二服务器130和客户端140。在其它实施例中,在系统环境100中可以存在更少、附加或不同的组件。根据一种实现方式,该系统中至少存在一个第一服务器110和一个第二服务器130,并且可以有多个客户端140通过网络与第一、第二服务器相连接。
服务器可以提供应用相关服务,诸如应用集成的社交联网或者数据收集和分析。虽然第一服务器110和第二服务器130都被描绘成单个实体,但是第一服务器110和第二服务器130的功能可以分散在多个计算设备、计算集群或数据中心中,并且第一服务器110和第二服务器130的组件可以驻留在多个地理位置中。
客户端140通过网络120与第一、第二服务器进行通信。网络120可以包括本领域公知的标准通信技术和协议的任何组合。例如,可以通过诸如以太网、802.11、CDMA、3G、4G或数字订户线(DSL)这样的链接技术来通过网络120进行通信。网络120可以支持多个联网协议,包括超文本传输协议(HTTP)、传输控制协议/因特网协议(TCP/IP)或者文件传输协议,并且通过网络120传送的任何数据可以利用诸如传输层安全性(TLS)、安全套接字层(SSL)和因特网协议安全(IPsec)这样的技术来进行加密。
下面将介绍网络游戏中跨服务器用户匹配方案的详细过程。
根据本发明的一种实施方式,第一服务器110上存储有服务器列表,记录与其相连的多个第二服务器130,包括它们的IP信息。然后为保证数据的实时性,第一服务器110每隔预定时间就调用检查服务器列表函数check_server_list,检测有哪些第二服务器130与第一服务器110相连,代码如下所示:
其中,通过check_all_node执行具体逻辑,check_all_node代码如下:
根据本发明的实施例,当有新的第二服务器130与第一服务器110连接时,在第二服务器130初始化时,就向第一服务器110发送注册信息:mod_war_page,spawn_node,第一服务器110继而将新加入的第二服务器130的IP信息写入服务器列表,更新服务器列表。
这样,第一服务器110在不用停机维护配置参数的情况下,就可以获取到新增加的第二服务器IP信息,进而获取到新第二服务器上的用户数据,实现了动态地增加服务器。
当用户通过客户端140向第一服务器110发送战斗请求时,第一服务器110响应于该战斗请求,从与其连接的多个第二服务器130中随机选取一个第二服务器,读取所选取的第二服务器的用户列表。例如,第一服务器110执行下面语句随机跨服务器:Node=lists:nth(Index,ServerList)。
根据一种实现方式,所有服务器上都存储有用户列表,以记录本服务器中游戏用户的相关数据,在本实施例中,关联存储本服务器中的用户ID和用户等级。其中,用户等级是用户在该网络游戏中经验值的统计,具体说,用户在游戏中打怪、做任务等都会累积一定的经验值,当经验值到达某一值时,用户等级就会提升。所以,用户等级是用户在游戏中反应用户实力的一个指标。
第一服务器110从读取的用户列表中查找与请求战斗的用户相匹配的对手,然后推送给客户端140的用户。根据本发明的实施例,匹配的规则是:
①先在用户列表中查找同等级的用户,作为匹配的对手;
②当没有查找到同等级的用户时,查找比所请求用户低一个等级的用户,作为匹配的对手;若还是没有找到,则继续查找更低一级的用户作为匹配的对手;
③如果上述都没有找到符合条件的用户,则查找比所请求用户高一个等级的用户,作为匹配的对手;若还是没有找到,则继续查找更高一级的用户作为匹配的对手;
④如果上述都还是没有找到符合条件的用户的话,第一服务器110重新从服务器列表中随机选取另一个第二服务器130,重新按上述①②③步进行查找匹配;
⑤最后,若查找还是无结果,则第一服务器110返回本服务器,在本服务器的用户列表中查找一个符合条件的用户,作为匹配的对手。
例如,在某一个第二服务器130中查找符合条件的用户时,执行的逻辑如下:
再如,跨服务器获取失败则在本服务器获取用户信息的实现代码示例如下:
其中R代表了游戏用户的数据,当查找到符合条件的用户时,匹配成功,返回该用户的数据R。
上述匹配的规则主要是基于如下的考虑:在游戏中,为游戏用户推送和自己等级相同或者相近的对手,具体地,当没有等级相同的对手时,优先考虑推送低一等级的对手,也就是推送一个稍微弱一点的对手给游戏用户,以增加游戏用户的信心。并且,优先考虑跨服务器的用户,能够增加用户在玩游戏中的新鲜感。
另外,第一服务器110在将匹配的对手推送给客户端用户的同时,会根据匹配对手的用户等级查找与之关联的用户ID,然后根据用户ID临时获取该用户的战斗力和攻击防御生命值等战斗力参数,一并推送给客户端用户,用于后续的战斗计算。
这样的话,能够及时获取用户在此刻的战斗力参数,并且不用在服务器中一直保存游戏用户的战斗力参数等数据,能够有效地节约服务器内存。
图2示出了根据本发明一个实施例的网络游戏中跨服务器用户匹配方法200的流程图。
该方法始于步骤S210,当第一服务器110接收到客户端140的用户的战斗请求时,从与其连接的多个第二服务器130中随机选取一个第二服务器130,读取所选取的第二服务器130的用户列表。其中,用户列表中关联存储用户ID和用户等级。用户等级是用户在该网络游戏中经验值的统计,具体说,用户在游戏中打怪、做任务等都会累积一定的经验值,当经验值到达某一值时,用户等级就会提升。所以,用户等级是用户在游戏中反应用户实力的一个指标。
根据本发明的实施例,第一服务器110每隔预定时间检测其是否与至少一个第二服务器130保持连接;若是,则记录与其连接的第二服务器130的IP信息到服务器列表。
并且,当有新的第二服务器130与第一服务器110连接时,第一服务器110接收该第二服务器130的注册信息,更新服务器列表。
随后在步骤S220中,从该用户列表中查找与请求战斗的用户同等级的用户,作为匹配的对手推送给客户端用户。
根据本发明的实现方式,当没有查找到同等级的用户时,查找比所请求用户等级低预定级数的用户,作为匹配的对手;若没有查找到等级低预定级数的用户,则查找比所请求用户等级高预定级数的用户,作为匹配的对手;若还是没有找到匹配的对手,则选取另一个与其连接的第二服务器130进行查找,直到匹配到对手为止。在本实施例中,一般预定级数选取两级。
随后在步骤S230中,根据所查找到的匹配对手的用户ID,获取用户的战斗力参数,一并推送给客户端130的用户,以便于后续的战斗计算。
图3示出了根据本发明一个实施例的网络游戏中跨服务器用户匹配装置300的示意图。该装置300包括:连接管理模块310、信息获取模块320、列表存储模块330、以及匹配对手模块340。
连接管理模块310适于保持第一服务器110与第二服务器130和客户端140之间的连接。当连接管理模块310接收到客户端用户的战斗请求时,发送指令给与之耦接的信息获取模块320。
根据本发明的实施例,连接管理模块310还适于每隔预定时间检测第一服务器110是否与至少一个第二服务器130保持连接。列表存储模块330适于在检测到保持连接的第二服务器130时,记录该第二服务器130的IP信息到服务器列表。
并且,当有新的第二服务器130加入到该系统环境100中时,连接管理模块310还适于接收初始化的第二服务器130的注册信息;列表存储模块330还适于根据所述注册信息,更新服务器列表。
信息获取模块320适于从与第一服务器110连接的多个第二服务器130中,也就是服务器列表中随机选取一个第二服务器130,获取所选取的第二服务器130的用户列表。
其中,用户列表存储在每一个服务器上,在第一服务器110中,列表存储模块330还适于关联存储用户ID和用户等级作为用户列表。用户等级是用户在该网络游戏中经验值的统计,具体说,用户在游戏中打怪、做任务等都会累积一定的经验值,当经验值到达某一值时,用户等级就会提升。所以,用户等级是用户在游戏中反应用户实力的一个指标。
匹配对手模块340适于从所获取的用户列表中查找与请求战斗的用户同等级的用户,作为匹配的对手。
基于前文所述,根据本发明的匹配规则,匹配对手模块340还适于在没有查找到同等级的用户时,查找比所请求用户等级低预定级数(例如,预定级数选二级)的用户,作为匹配的对手;或者,在没有找到匹配的对手时,选取另一个与其连接的第二服务器130进行查找,直到匹配到对手为止。
而后信息获取模块320还适于根据匹配到的对手的用户ID,获取用户的战斗力参数。
最后,由连接管理模块310推送匹配的对手及其战斗力参数给所述客户端用户。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
A6、如A5所述的方法,还包括:若没有找到匹配的对手,则选取另一个与其连接的第二服务器进行查找,直到匹配到对手为止。A7、如A1-6中任一项所述的方法,其中,用户等级是用户在所述网络游戏中经验值的统计。
B13、如B12所述的装置,其中,匹配对手模块还适于在没有找到匹配的对手时,选取另一个与其连接的第二服务器进行查找,直到匹配到对手为止。B14、如B8-13中任一项所述的装置,其中用户等级是用户在所述网络游戏中经验值的统计。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。