CN112402979B - 游戏数据处理方法、装置和电子设备 - Google Patents

游戏数据处理方法、装置和电子设备 Download PDF

Info

Publication number
CN112402979B
CN112402979B CN202011413470.2A CN202011413470A CN112402979B CN 112402979 B CN112402979 B CN 112402979B CN 202011413470 A CN202011413470 A CN 202011413470A CN 112402979 B CN112402979 B CN 112402979B
Authority
CN
China
Prior art keywords
game data
data
migration
cluster
game
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011413470.2A
Other languages
English (en)
Other versions
CN112402979A (zh
Inventor
朱保全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202011413470.2A priority Critical patent/CN112402979B/zh
Publication of CN112402979A publication Critical patent/CN112402979A/zh
Application granted granted Critical
Publication of CN112402979B publication Critical patent/CN112402979B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种游戏数据处理方法、装置和电子设备。其中,该方法包括:获取游戏数据,确定游戏数据属于的属性对象;其中,游戏数据包括第一游戏数据和第二游戏数据;属性对象包括固定对象和迁移对象;响应于针对游戏数据的数据迁移,迁移属于迁移对象的第一游戏数据;响应于玩家发送的交互数据,根据固定对象处理交互数据。该方式中,预先将游戏数据分为固定对象和迁移对象,只需要将迁移对象进行数据迁移,可以减少游戏数据迁移的消耗,降低玩家感受的延迟;在迁移过程中可以以固定对象作为通信节点进行通信,在游戏数据迁移的过程中玩家也可以简单地与其他玩家进行通信。

Description

游戏数据处理方法、装置和电子设备
技术领域
本发明涉及数据迁移技术领域,尤其是涉及一种游戏数据处理方法、装置和电子设备。
背景技术
随着强战斗类游戏的普及,游戏数据的迁移和玩家之间通信的延时将直接影响玩家的体验。玩家将进入游戏战斗的时间作为体验的基础,进入游戏战斗的时间越短,玩家具有越好的游戏体验。因此,游戏设计师需要设计良好的游戏架构,以在玩家在副本和主城等场景进行切换时提供更低的延时,从而提升游戏的口碑。一般来说,游戏服务器会将玩家的全部数据在不同的进程间进行迁移,即如果游戏数据在A进程上,副本申请在B进程上,那么在玩家进入副本时,游戏数据就会从A进程迁移到B进程上,然后再与客户端进行连接。
然而,上述方法存在以下缺点:1、在游戏数据量较大时,如果频繁地迁移游戏数据势必导致额外的消耗,数据越大迁移所需时间将越长,玩家因此会感受到较大的延迟;2、在游戏数据迁移的过程中如果玩家与其他玩家进行通信,需要额外的大量处理逻辑来保证游戏数据的完整性和通信的可靠性;3、如果频繁地迁移全部的游戏数据,难免出现迁移失败的情况,当迁移失败后处理的逻辑将比较麻烦。
发明内容
有鉴于此,本发明的目的在于提供一种游戏数据处理方法、装置和电子设备,以减少游戏数据迁移的消耗,降低玩家感受的延迟,在游戏数据迁移的过程中玩家也可以与其他玩家进行通信。
第一方面,本发明实施例提供了一种游戏数据处理方法,方法包括:获取游戏数据,确定所述游戏数据属于的属性对象;其中,所述游戏数据包括第一游戏数据和第二游戏数据;所述属性对象包括固定对象和迁移对象;所述固定对象表征非迁移所述第二游戏数据属于的属性对象,所述迁移对象表征迁移所述第一游戏数据属于的属性对象;响应于针对所述游戏数据的数据迁移,迁移属于迁移对象的所述第一游戏数据;响应于玩家发送的交互数据,根据所述固定对象处理所述交互数据。
在本发明较佳的实施例中,上述响应于针对所述游戏数据的数据迁移,迁移属于迁移对象的所述第一游戏数据的步骤,包括:响应于游戏过程中的移动事件和/或战斗事件,迁移属于迁移对象的所述第一游戏数据。
在本发明较佳的实施例中,上述根据所述固定对象处理所述交互数据的步骤,包括:根据所述固定对象确定通信节点,通过所述通信节点处理所述交互数据。
在本发明较佳的实施例中,上述根据所述固定对象确定通信节点的步骤,包括:确定所述固定对象对应的进程标识;根据所述进程标识确定通信节点。
在本发明较佳的实施例中,通过服务器迁移所述游戏数据;所述服务器包括固定对象集群、场景集群和副本战斗集群;其中,所述固定对象集群用于保存所述第二游戏数据,所述场景集群用于保存所述第一游戏数据;所述副本战斗集群用于处理玩家进行副本战斗的逻辑;上述迁移属于迁移对象的所述第一游戏数据的步骤,包括:将属于迁移对象的所述第一游戏数据由所述场景集群迁移至所述副本战斗集群。
在本发明较佳的实施例中,上述固定对象集群的第一进程负责调度所述第二游戏数据,所述场景集群的第二进程负责调度所述第一游戏数据;上述将属于迁移对象的所述第一游戏数据由所述场景集群迁移至所述副本战斗集群的步骤,包括:所述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据;响应于所述第一进程已获取到所述迁移对象的结束事件,触发所述第二进程销毁保存的所述第一游戏数据;将所述第一进程获取的第一游戏数据发送至所述副本战斗集群。
在本发明较佳的实施例中,上述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据的步骤,包括:所述第一进程向所述第二进程发送数据获取请求;其中,所述获取请求包含属于迁移对象的所述第一游戏数据的标识;所述第二进程响应所述数据获取请求,将所述第一游戏数据发送至所述第一进程。
在本发明较佳的实施例中,上述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据的步骤之后,所述方法还包括:将所述第一游戏数据存储于所述第一进程中。
在本发明较佳的实施例中,上述将所述第一进程获取的第一游戏数据发送至所述副本战斗集群的步骤之后,所述方法还包括:基于所述副本战斗集群保存的第一游戏数据更新所述第一进程保存的第二游戏数据。
在本发明较佳的实施例中,上述固定对象集群和所述场景集群预先与所述玩家的客户端通信连接;上述触发所述第二进程销毁保存的所述第一游戏数据的步骤之后,所述方法还包括:断开所述场景集群与所述玩家的客户端的通信连接;上述将所述第一进程获取的第一游戏数据发送至所述副本战斗集群的步骤之后,所述方法还包括:建立所述副本战斗集群与所述玩家的客户端的通信连接。
在本发明较佳的实施例中,上述建立所述副本战斗集群与所述玩家的客户端的通信连接的步骤,包括:所述第一进程向所述玩家的客户端发送连接请求,以使所述玩家的客户端建立与所述副本战斗集群的通信连接;其中,所述连接请求包括所述第一游戏数据保存在所述副本战斗集群的端口和地址。
在本发明较佳的实施例中,上述服务器的集群通过消息转发中间层与所述玩家的客户端建立通信连接。
第二方面,本发明实施例还提供一种游戏数据处理装置,所述装置包括:数据获取模块,用于获取游戏数据,确定所述游戏数据属于的属性对象;其中,所述游戏数据包括第一游戏数据和第二游戏数据;所述属性对象包括固定对象和迁移对象;所述固定对象表征非迁移所述第二游戏数据属于的属性对象,所述迁移对象表征迁移所述第一游戏数据属于的属性对象;数据迁移模块,用于响应于针对所述游戏数据的数据迁移,迁移属于迁移对象的所述第一游戏数据;数据通信模块,用于响应于玩家发送的交互数据,根据所述固定对象处理所述交互数据。
第三方面,本发明实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述的游戏数据处理方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述的游戏数据处理方法或上述的游戏数据处理方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种游戏数据处理方法、装置和电子设备,确定所述游戏数据属于的属性对象,其中,属性对象包括固定对象和迁移对象;在进行数据迁移时迁移属于迁移对象的所述第一游戏数据;并且可以根据所述固定对象处理玩家发送的交互数据。该方式中,预先将游戏数据属于的属性对象分为固定对象和迁移对象,只需要将属于迁移对象的所述第一游戏数据进行数据迁移,可以减少游戏数据迁移的消耗,降低玩家感受的延迟;在迁移过程中可以以固定对象作为通信节点进行通信,因此在游戏数据迁移的过程中玩家也可以与其他玩家进行通信。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种游戏数据处理方法的流程图;
图2为本发明实施例提供的另一种游戏数据处理方法的流程图;
图3为本发明实施例提供的一种游戏数据划分方式的示意图;
图4为本发明实施例提供的另一种游戏数据处理方法的流程图;
图5为本发明实施例提供的一种客户端连接Space集群示意图的示意图;
图6为本发明实施例提供的一种客户端连接Dungeon集群的示意图;
图7为本发明实施例提供的一种游戏数据迁移的时序示意图;
图8为本发明实施例提供的一种游戏数据处理装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,游戏服务器会将玩家的全部数据在不同的进程间进行迁移。如果频繁地迁移游戏数据势必导致额外的消耗,玩家因此会感受到较大的延迟;在游戏数据迁移的过程中玩家难以与其他玩家进行通信;如果频繁地迁移全部的游戏数据,难免出现迁移失败的情况,当迁移失败后处理的逻辑将比较麻烦。基于此,本发明实施例提供的一种游戏数据处理方法、装置和电子设备,该技术可以应用于服务端、客户端、电脑、手机、平板电脑等可以实现人机交互的设备上,尤其可以适用于游戏服务器中。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种游戏数据处理方法进行详细介绍。
本实施例提供了一种游戏数据处理方法,参见图1所示的一种游戏数据处理方法的流程图,该游戏数据处理方法包括如下步骤:
步骤S102,获取游戏数据,确定游戏数据属于的属性对象;其中,游戏数据包括第一游戏数据和第二游戏数据;属性对象包括固定对象和迁移对象;固定对象表征非迁移第二游戏数据属于的属性对象,迁移对象表征迁移第一游戏数据属于的属性对象。
游戏数据可以为玩家在游戏的过程中产生并保存在服务器或者客户端中的数据。例如:虚拟角色(如玩家角色)在进行战斗时的攻击数据或者受到伤害时的被攻击数据,虚拟角色的装备数据,虚拟角色在游戏场景中移动位置的数据、副本的非玩家角色属性数据、虚拟角色在游戏场景中的固定位置数据等,都可以是游戏数据。
获取游戏数据之后,可以确定游戏数据属于的属性对象。属性对象可以为一个逻辑上定义的类,本实施例中的属性对象包括固定对象和迁移对象。固定对象表征非迁移所述第二游戏数据属于的属性对象,即第二游戏数据如果属于固定对象,则第二游戏数据表征不需要进行迁移的数据。本实施例中的属性对象可以封装属性和方法,其中,上述方法为操作属性的类方法。
固定对象也可以称为Avatar对象。Avatar对象可以理解为与游戏中战斗无关的属性和方法的集合,将这些属性和方法构成一个对象即为Avatar对象。不动的数据是Avatar对象中的属性,并且在对象上提供方法对其操作。Avatar对象可以包含属性和方法。属性比如有等级、金钱等与战斗无关的属性,方法就是操作这些属性的类方法。
举例来说,第二游戏数据可以包括背包数据、成就数据、等级数据、商城相关的数据等与游戏战斗或者虚拟角色位置不相关的数据。即无论玩家控制的虚拟角色是否在进行战斗,是否切换副本或者切换主城,上述第二游戏数据一般不会变化,可以不进行数据迁移。
本实施例中的数据可以保存在服务器集群中,本实施例中的数据迁移可以是进程迁移,即数据从一个进程迁移至另一个进程,可以为数据从一个服务器集群迁移至另一个服务器集群中。不同的主城或者副本的数据可以保存在不同的服务器集群。如果虚拟角色从一个主城移动到另一个主城,则需要进行数据迁移。
举例来说,主城A的数据保存在服务器集群a中,副本B的数据保存在服务器集群b中,如果虚拟角色从主城A移动到副本B,则需要将与游戏战斗或者虚拟角色位置相关的数据进行数据迁移。其中,第二游戏数据由于与游戏战斗或者虚拟角色位置不相关,则可以不进行数据迁移。
迁移对象表征迁移所述第一游戏数据属于的属性对象,即第一游戏数据如果属于迁移对象,则第一游戏数据表征需要进行迁移的数据。
迁移对象也可以称为Soul对象,Soul对象可以理解为与游戏中战斗相关的属性和方法的集合,将这些属性和方法构成一个对象即为Soul对象。移动的数据是Soul对象中的属性,并且在对象上提供方法对其操作。Soul对象可以也包含属性和方法。比如与血量、战斗状态等与战斗相关的属性,和操作这些属性的类方法。
举例来说,第一游戏数据可以包括:虚拟角色(如玩家角色)的位置移动数据、复活点数据、buff(增益)的生效数据、虚拟角色攻击数据或者被攻击数据、虚拟角色的技能数据等需要与战斗或者虚拟角色位置相关的数据。当玩家控制的虚拟角色进入副本或者切换主城需要进行战斗时,上述第一游戏数据都会随着战斗随时变化,因此,上述第一游戏数据需要进行迁移的数据。
同样以虚拟角色从主城A移动到副本B为例,第一游戏数据由于与游戏战斗或者虚拟角色位置相关,则需要进行数据迁移。即将第一游戏数据从服务器集群a迁移到服务器集群b中。
在获取游戏数据之后,可以确定游戏数据属于的属性对象,将游戏数据划分为属于固定对象的第二游戏数据和属于迁移对象的第一游戏数据。其中,第二游戏数据可以不进行数据迁移,第一游戏数据需要进行数据迁移。
步骤S104,响应于针对游戏数据的数据迁移,迁移属于迁移对象的第一游戏数据。
确定游戏数据属于的属性对象之后,可以进行数据迁移。如果需要针对游戏数据进行数据迁移,可以只迁移属于迁移对象的第一游戏数据,不迁移属于固定对象的第二游戏数据。
例如,如果玩家控制的虚拟角色从游戏的主城进入了副本,此时数据需要由主城的服务器迁移至副本对应的服务器,可以理解为发生了针对所述游戏数据的数据迁移。第二游戏数据属于固定对象,则第二游戏数据可以不进行数据迁移;第一游戏数据属于迁移对象,则第一游戏数据需要进行数据迁移。
步骤S106,响应于玩家发送的交互数据,根据固定对象处理交互数据。
在数据迁移的过程中,第一玩家数据处于迁移状态(正在进行数据迁移的状态称为迁移状态),而第二玩家数据并不处于迁移状态。因此,可以将第二玩家数据作为通信节点与玩家的客户端进行通信,即根据固定对象处理交互数据。
通信节点也称为通信的不动点,通信的不动点是指玩家拥有的一个固定的地址,该地址不会随着位置的变化而变化,其他对象能够通过固定的地址找到该玩家。在数据迁移的过程中,玩家所有数据都会随着位置的变化而在不同进程间迁移,即玩家的通信地址也会变化,其他的对象要找到该玩家,与该玩家进行通信就显得比较困难。
在本实施例中由于第二游戏数据并不处于迁移状态,可以将第二游戏数据作为通信的不动点,处理玩家发送的交互数据。
通过以上的游戏数据分离(即确定游戏数据属于的属性对象),就能保证每次玩家登陆后第二游戏数据是固定不变的,不会随着游戏的深入及环境的切换而在进程之间迁移,这样就可以将第二游戏数据作为玩家通信的不动点,这个通信的不动点去创建环境相关的Soul对象,并将相关可靠消息通过第二游戏数据进行转发,将可以保证消息的可靠性。
需要说明的是,无论是否正在进行数据迁移,都可以将第二游戏数据作为通信的不动点进行通信。因为无论是否正在进行数据迁移第二游戏数据一定是不处于迁移状态的,随时可以作为不动点进行通信。而第一游戏数据在进行数据迁移时处于迁移状态,无法作为不动点进行通信。为了保证通信的稳定性,可以将第二游戏数据一直作为通信的不动点进行通信。
本发明实施例提供的一种游戏数据处理方法,确定所述游戏数据属于的属性对象,其中,属性对象包括固定对象和迁移对象;在进行数据迁移时迁移属于迁移对象的所述第一游戏数据;并且可以根据所述固定对象处理玩家发送的交互数据。该方式中,预先将游戏数据属于的属性对象分为固定对象和迁移对象,只需要将属于迁移对象的所述第一游戏数据进行数据迁移,可以减少游戏数据迁移的消耗,降低玩家感受的延迟;在迁移过程中可以以固定对象作为通信节点进行通信,因此在游戏数据迁移的过程中玩家也可以与其他玩家进行通信。
本实施例提供了另一种游戏数据处理方法,该方法在上述实施例的基础上实现;本实施例重点描述响应于针对所述游戏数据的数据迁移的具体实施方式。参见图2所示的另一种游戏数据处理方法的流程图,本实施例中的游戏数据处理方法包括如下步骤:
步骤S202,获取游戏数据,确定游戏数据属于的属性对象;其中,游戏数据包括第一游戏数据和第二游戏数据;属性对象包括固定对象和迁移对象;固定对象表征非迁移第二游戏数据属于的属性对象,迁移对象表征迁移第一游戏数据属于的属性对象。
本实施例中确定游戏数据属于的属性对象的过程,即对游戏数据进行数据分离的过程,将游戏数据划分为属于固定对象的第二游戏数据和属于迁移对象的第一游戏数据,以便于后续迁移第一游戏数据,不迁移第二游戏数据。
举例来说,获取的游戏数据包括游戏数据A、B、C,其中,游戏数据A是指背包内包含的道具数据,游戏数据B是指虚拟角色的所处的位置数据,游戏数据C是指虚拟角色携带的buff和debuff(减益)数据。其中,游戏数据B是与虚拟角色的位置相关的数据,游戏数据C是与虚拟角色进行战斗相关的数据,游戏数据A与虚拟角色的位置和虚拟角色进行战斗均不相关。因此,可以将游戏数据A作为第二游戏和数据,游戏数据B和游戏数据C作为第一游戏数据。
步骤S204,响应于游戏过程中的移动事件和/或战斗事件,迁移属于迁移对象的第一游戏数据。
需要进行数据迁移的事件至少包括游戏过程中的移动事件和战斗事件。其中,移动事件可以为玩家控制的虚拟角色进行了移动,这里的移动时间可以为玩家控制的虚拟角色通过移动更换了地图,例如:虚拟角色在主城之间移动,虚拟角色从主城进入副本等。战斗事件即虚拟角色进入了战斗,这里的战斗事件可以为玩家控制的虚拟角色进入不同的地图进行战斗,例如:虚拟角色进入副本进行战斗,或者虚拟角色从主城进入了野外进行战斗。
当至少发生游戏过程中的移动事件或战斗事件其中之一时,就可以进行数据迁移,例如:迁移属于迁移对象的第一游戏数据,不迁移属于固定对象的第二游戏数据。
本发明实施例提供的上述方法,可以将移动事件或战斗事件作为触发数据迁移的事件,如果发生了移动事件或战斗事件的至少其中之一,则可以进行数据迁移,在迁移的过程中可以只迁移第一数据,不迁移第二数据,从而减少游戏数据迁移的消耗,降低玩家感受的延迟。
步骤S206,响应于玩家发送的交互数据,根据固定对象处理交互数据。
在根据固定对象处理交互数据对交互数据进行处理时,可以根据固定对象确定一个进程作为通信节点,在该通信节点上处理交互数据,例如:根据所述固定对象确定通信节点,通过所述通信节点处理所述交互数据。
上述通信节点可以为一个单独的进程,用于转发、查询数据,其他的所有进程都可以方法该通信节点。通信节点可以为处理固定对象的进程,也可以为其他进程。以通信节点为处理固定对象的进程为例,可以通过下述步骤根据所述固定对象确定通信节点:确定所述固定对象对应的进程标识;根据所述进程标识确定通信节点。
进程标识可以包括ip(Internet Protocol,网际互连协议)地址和port(端口)。通过进程标识可以确定处理固定对象的进程,并将上述处理固定对象的进程作为通信节点。
例如,游戏数据A想要与游戏数据B进行数据交互,其中,游戏数据A既有属于固定对象的第二游戏数据Avatar A,又有属于迁移对象的第一游戏数据Soul A;游戏数据B既有属于固定对象的第二游戏数据Avatar B,又有属于迁移对象的第一游戏数据Soul B;并且,Avatar A和Avatar B分别在不同的进程中。
如果Soul A需要给Soul B发送消息,由于Avatar A和Avatar B是不动点,无需进行数据迁移,Avatar A和Avatar B可以将自己所在进程的(ip,port,自己的唯一标识)注册到一个通信节点X上,将通信节点X作为Avatar A和Avatar B通信的中介,如果Soul A和Soul B需要进行消息通信直接向对应的Avatar对象发送消息即可。而Soul对象之间的通信正是通过这种方式从Avatar对象上面进行转发。例如Soul A需要有消息发送到Soul B,转发关系可以是Soul A→Avatar A→通信节点X→Avatar B→Soul B。
此外,如果Avatar A和Avatar B想要进行通信,可以直接以通信节点X作为中介进行数据交互,转发关系可以是Avatar A→通信节点X→Avatar B。
本发明实施例提供的上述方法,在进行数据交互时,可以根据固定对象对应的进程标识确定通信节点,以该通信节点作为数据交互的不动点进行数据通信,无论游戏数据是否处于迁移状态均可以实现数据通信,从而提升通信的稳定性。
本实施例提供了另一种游戏数据处理方法,该方法在上述实施例的基础上实现;本实施例重点描述通过服务器迁移所述游戏数据的具体实施方式。服务器包括固定对象集群、场景集群和副本战斗集群;其中,所述固定对象集群用于保存所述第二游戏数据,所述场景集群用于保存所述第一游戏数据;所述副本战斗集群用于处理玩家进行副本战斗的逻辑。
本实施例可以通过服务器迁移玩家的游戏数据,可以预先将游戏数据划分为至少两部分:固定对象(也称为Avatar对象)和迁移对象(也称为Soul对象)。固定对象表征与玩家控制角色的位置和战斗无关的数据,例如:背包数据、成就数据、等级控制数据、商城购买数据等。迁移对象表征与玩家控制角色的位置和战斗有关的数据,例如:位置移动数据、复活点数据、buff(增益)的生效数据、战斗相关数据等。
Avatar对象主要负责与位置、战斗无关的逻辑,如背包数据、成就数据、等级控制、商城购买等逻辑,数据不会迁移,对象所在的进程除非重新登录,否则会保持不变,这样就能作为通信的不动点,在通信方面能够通过该对象进行转发,从而保证消息的可靠。因为不动的属性,客户端与Avatar对象的交互也比较简单,不需要考虑迁移时对象没有创建的临界条件。
Soul对象主要负责与位置、战斗等相关的逻辑,如位置移动、复活点、buff的生效、战斗相关数据等。这些数据都可能随着Soul的迁移而从一个进程到另一个进程。即Soul是动点,其他对象与Soul的通信不可靠,可以通过Avatar对象的这个不动点解决消息可靠性问题。
游戏数据分离的核心思想是:将迁移的数据最小化,从而减少迁移数据的序列化和反序列化的时间,最终减少迁移的时间。并提供通信的不动点,保证可靠消息的不丢失。
参见图3所示的一种游戏数据划分方式的示意图,图3表示一个玩家的服务器对象被分离成了Avatar对象和Soul对象两个部分,玩家当前在大世界中,所以Avatar对象在Avatar集群的进程上,Soul对象在Space集群的进程上,玩家背包等相关的操作会直接与Avatar对象进行交互,而移动等相关的操作直接与Soul对象进行交互。
除了划分游戏数据之外,可以预先将服务器划分为至少三种架构:固定对象集群、场景集群和副本战斗集群。其中,固定对象集群可以用于保存固定对象;在进入游戏副本之前,场景集群可以用于保存迁移对象;在进入游戏副本之后,副本战斗集群可以用于保存迁移对象。
具体来说,固定对象集群也可以称为Avatar(玩家)集群,可以负责玩家的登陆、游戏相关逻辑;场景集群也可以称为Space(大世界、主城)集群,是大世界、主城相关的集群;副本战斗集群也可以称为Dungeon(副本战斗)集群,可以负责玩家的战斗逻辑。
通过将服务器设置为至少3个架构,可以将服务器架构设计成集群,将相关的功能作物理隔离;通过将游戏数据划分为2个对象,可以分离游戏数据,从而保证通信的可靠性。
基于上述描述,参见图4所示的另一种游戏数据处理方法的流程图,本实施例中的游戏数据处理方法包括如下步骤:
步骤S402,获取游戏数据,确定游戏数据属于的属性对象;其中,游戏数据包括第一游戏数据和第二游戏数据;属性对象包括固定对象和迁移对象;固定对象表征非迁移第二游戏数据属于的属性对象,迁移对象表征迁移第一游戏数据属于的属性对象。
步骤S404,响应于针对游戏数据的数据迁移,将属于迁移对象的第一游戏数据由场景集群迁移至副本战斗集群。
当玩家进入副本进行战斗时,服务器可以响应游戏过程中的移动事件和/或战斗事件,将迁移对象(可以直接将第一游戏数据称为迁移对象,以下不再赘述)由场景集群迁移至副本战斗集群。
由于固定对象表征与玩家控制角色的位置和战斗无关的数据,则固定对象可以理解为与副本战斗并不相关,无需进行迁移。迁移对象表征与玩家控制角色的位置和战斗有关的数据,则迁移对象可以理解为与副本战斗相关,需要进行迁移。因此,本实施例中只需要迁移迁移对象,不需要迁移固定对象(可以直接将第二游戏数据称为固定对象,以下不再赘述),即将迁移对象由场景集群迁移至副本战斗集群。
在本实施例中的客户端包含固定对象集群、场景集群和副本战斗集群,固定对象集群主要运行与战斗无关的逻辑对象,场景集群主要运行大世界和主城的逻辑对象,副本战斗集群主要运行与副本相关的逻辑对象。
因此,固定对象可以保存于固定对象集群中,迁移对象可以在副本开始前保存于场景集群中。服务器可以将迁移对象由场景集群迁移至副本战斗集群。
为了进一步说明第一游戏数据由所述场景集群迁移至副本战斗集群的步骤,预先确定固定对象集群的第一进程负责调度所述第二游戏数据,所述场景集群的第二进程负责调度所述第一游戏数据,第一进程和第二进程可以通过步骤1-步骤3进行数据迁移:
步骤1,所述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据。
在本实施例中,服务器的集群包括若干个进程,可以通过进程保存、调度和处理游戏数据。例如:固定对象集群的第一进程可以负责调度固定对象,场景集群的第二进程可以负责调度迁移对象。
因此,第一游戏数据由场景集群迁移至副本战斗集群的步骤,可以理解为由固定对象集群的第一进程与场景集群的第二进程进行通信的步骤。例如,第一进程首先可以向第二进程发送数据获取请求,第二进程响应数据获取,将迁移对象发送至第一进程,可以通过步骤A1-步骤A2执行:
步骤A1,所述第一进程向所述第二进程发送数据获取请求;其中,所述获取请求包含属于迁移对象的所述第一游戏数据的标识。
第一进程想要获取迁移对象,可以与保存迁移对象的第二进程进行通信,即向第一进程向第二进程发送数据获取请求。数据获取请求需要包含第一进程想要获取的迁移对象的标识。例如:第一进程向第二进程发送的数据获取请求包含标识A,第二进程可以基于标识A确定标识A对应的迁移对象。
步骤A2,所述第二进程响应所述数据获取请求,将所述第一游戏数据发送至所述第一进程。
第二进程响应数据获取请求,可以根据数据获取请求的标识确定迁移对象,并将迁移对象发送至第一进程中。本实施例提供的上述方法,第一进程向第二进程发送的数据获取请求可以包含迁移对象的标识,以使第二进程根据该标识快速、准确地查找对应的迁移对象,并将该迁移对象发送至第一进程。
第一进程获取迁移对象后,可以将获取的迁移对象和固定对象存储于相同的地址,例如:将所述第一游戏数据存储于所述第一进程中。
将迁移对象存储于第一进程中,可以使迁移对象和固定对象存储于相同的地址,方便后续的查找。例如:玩家A如果想要获取自己的迁移对象,可以在存储玩家A的固定对象的第一进程中直接查找到玩家A的迁移对象,从而实现快速查找的目的。此外,迁移对象和固定对象存储于相同的地址,还无需记录迁移对象的存储地址,从而节约存储空间。
步骤2,响应于所述第一进程已获取到所述迁移对象的结束事件,触发所述第二进程销毁保存的所述第一游戏数据。
如果第一进程获取到已获取到迁移对象,则可以使第二进程销毁保存的迁移对象。因为迁移的目的是将迁移对象由场景集群发送至副本战斗集群,因此,迁移后的场景集群可以删除迁移对象。如果发生第一进程已获取到迁移对象的结束事件(即第一进程已经获取迁移对象),第二进程可以销毁保存的迁移对象,从而节约场景集群的存储空间。
步骤3,将所述第一进程获取的第一游戏数据发送至所述副本战斗集群。
第一进程获取迁移对象后,可以将迁移对象发送至副本战斗集群,具体来说,可以在副本战斗集群新建第三进程,将迁移对象保存至上述第三进程中,之后第一进程可以销毁保存的迁移对象,以节约固定对象集群的存储空间。
在完成迁移对象的数据迁移之后,玩家可以在副本进行战斗,战斗的过程中迁移对象可能存在修改,服务器可以根据修改的迁移对象更新固定对象,例如:基于副本战斗集群保存的迁移对象更新第一进程保存的固定对象。
在进行副本战斗的时候,玩家的客户端与副本战斗集群通信连接,而副本战斗集群与固定对象集群通信连接。因此,第三进程可以在玩家进行副本战斗的同时更新迁移对象,第一进程保存的固定对象可以根据副本战斗集群保存的迁移对象进行更新。
步骤S406,响应于玩家发送的交互数据,根据固定对象处理交互数据。
在迁移对象由场景集群迁移至副本战斗集群的过程中,迁移对象处于迁移状态,而固定对象并不处于迁移状态,而是继续保存在固定对象集群中。因此,可以将固定对象作为通信节点与玩家的客户端进行通信,即以固定对象作为玩家的通信节点处理玩家发送的交互数据。
在迁移对象进行迁移的过程中,固定对象可以保存有第三进程的迁移对象的端口和地址;因此,可以将固定对象数据作为通信节点进行数据交互,可以通过步骤B1-步骤B2执行:
步骤B1,第一进程接收交互数据。
玩家可以通过客户端向服务器发送交互数据,由于将固定对象作为玩家的通信节点,因此可以由第一进程接收交互数据。
步骤B2,如果交互数据属于迁移对象,第一进程将交互数据发送至迁移对象的端口和地址中。
第一进程的固定对象保存有迁移对象的端口和地址。如果交互数据属于迁移对象,则可以通过第一进程将交互数据发送至迁移对象的端口和地址中,以完成数据交互。如果交互数据属于固定对象,则可以在第一进程中的固定对象进行数据交互。
在数据迁移的不同时刻,服务器与玩家的客户端的通信连接状况可以并不相同,例如:在数据迁移前,玩家处于主城中,因此固定对象集群和场景集群预先与玩家的客户端通信连接。
在数据迁移中,由于迁移对象进行数据迁移,因此可以断开场景集群与玩家的客户端的通信连接,具体来说,可以在触发第二进程销毁保存的迁移对象的步骤之后,断开场景集群与玩家的客户端的通信连接。
在数据迁移完成后,玩家已经进入副本进行战斗,玩家的客户端可以建立与副本战斗集群的通信连接,具体来说,在将第一进程获取的迁移对象发送至副本战斗集群的步骤之后,建立副本战斗集群与玩家的客户端的通信连接。
在建立副本战斗集群与玩家的客户端的通信连接的步骤中,由于迁移过程中的固定对象集群与玩家的客户端保持通信连接,可以由固定对象集群的固定对象作为通信节点进行通信,例如:第一进程向玩家的客户端发送连接请求,以使玩家的客户端建立与副本战斗集群的通信连接;其中,连接请求包括迁移对象保存在副本战斗集群的端口和地址。
第一进程可以向玩家的客户端发送连接请求,连接请求包含述副本战斗集群的标识,该标识可以为副本战斗集群的端口和地址。客户端在接收到发送连接请求后,可以建立玩家的客户端与副本战斗集群的通信连接。
此外,服务器的集群一般通过消息转发中间层与玩家的客户端建立通信连接。参见图5所示的一种客户端连接Space集群示意图的示意图和图6所示的一种客户端连接Dungeon集群的示意图。
如图5和图6所示,Client表示客户端,用于指定一个游戏客户端,可以是任意平台。Gate表示消息转发中间层,客户端与Gate进行连接,有且只建立一条连接。Avatar集群表示主要运行玩家相关的不动的逻辑对象,比如升级、打造、背包、付费等不需要随位置变化的一些成长所需的逻辑。Space集群表示运行大世界、主城的集群对象,这部分主要涉及到玩家的随位置等动态变化的属性。Dungeon集群表示副本相关逻辑集群,副本会频繁的创建于销毁,所以单独分配集群,这部分也主要涉及到玩家的随位置、战斗等动态变化的属性。
图6从图5演进,表示玩家已经进入了副本中了,其中切换集群在服务器中的体现就只有Soul对象的切换,其中Soul对象会先从Space集群中销毁,与客户端断开了Soul对象的连接,然后在Dungeon集群中创建Soul对象,之后与客户端进行连接,而原来的Avatar对象不需要进行迁移,与客户端的通信连接也不会变化,即Avatar的状态是连续的。图5和图6展示了一次玩家进入副本时数据迁移的大致过程,能够清晰的看出,数据迁移将只针对玩家的部分数据,大大减少了迁移的数据量。
数据迁移过程中的时序可以参见图7所示的一种游戏数据迁移的时序示意图,如图7所示:
步骤401,Soul的迁移由通信的不动点Avatar对象发起,首先会去旧的Soul上拉取需要的持久化数据,Soul部分的数据也支持存储,但是会和Avatar对象的数据存储在一起。即Avatar对象上会有两部分数据,Avatar本身的数据和Soul需要存储的数据。
步骤402,Space集群上的Soul进行迁移数据的打包,一般主要是一些需要持久化的数据。此过程拉取迁移数据主要是为了同一玩家的Soul对象的状态连续性。
步骤403,Soul将打包好的迁移数据发送给对应的Avatar对象。
步骤404,Avatar对象将拉取到的Soul的数据进行分类,将其设置给对应的变量,方便之后的存储及新的Soul的创建。
步骤405,Avatar收到Soul的迁移数据后,会向Space上的Soul发起销毁流程,请求销毁对应进程上的Soul。
步骤406,Soul销毁的第一步会先将与client的连接进行断开,并销毁对应的client的Soul对象。
步骤407,Space上的Soul进行销毁。
步骤408,Soul销毁完成会通知对应的Avatar对象,为了保证数据的一致性,此时还会带上持久化的数据给Avatar对象。
步骤409,Avatar发起在Dungeon集群创建新的Soul,Soul对象的数据由旧Soul返回的迁移数据进行初始化。
步骤410,Soul进行对应的初始化,根据迁移数据恢复状态,如获得的buff状态等。
步骤411,Soul创建完成,初始化成功后会通知对应的Avatar对象,Avatar进行状态等数据的更新。
步骤412,Avatar带上Soul的进程ip和port等相关数据请求客户端连接Soul对象。
步骤413,Client连接到Soul进程,并创建对应的客户端Soul对象。
从图7最后可以很清楚地查看到整个过程的通信不动点是玩家的Avatar对象,它承担了发起迁移及与客户端的通信的角色。整个玩家角色的迁移过程也简化成了Soul对象的销毁和重建,需要迁移的数据量大大减少。而角色的Avatar对象保持不动,与客户端的连接也不会重建,这样能保证客户端的相关逻辑不会受到Soul迁移的影响。
当玩家结束副本之后,迁移对象可以由副本战斗集群迁移至场景集群,同样可以采用固定对象数据作为通信节点进行数据迁移,例如:将迁移对象由副本战斗集群迁移至场景集群。具体方法类似于上述实施例提供由场景集群迁移至副本战斗集群的方法,这里不再赘述。
本发明实施例提供的上述方法,可以解决游戏数据的迁移和通信问题,旨在降低玩家进入副本的延迟,以及保证通信的可靠性,给游戏玩家更好的用户体验。具有以下优势:
1)低延迟:游戏数据分离,需要迁移的数据将大大减少,从而迁移的时间将大大减少,进入大世界和副本的时间将对应的减少,保证了游戏更低的延时。
2)安全性:将数据分离,可以保证数据的安全,Avatar对象逻辑相关的数据很重要,不进行迁移将可以保证安全完整,而Soul对象频繁迁移有丢数据的风险,但是不会导致逻辑的致命问题,理论也可以自动恢复。
3)可靠性:因为有了Avatar对象这个通信不动点,系统中需要与玩家进行通信的对象将能够很好的找到对象,并发送消息,而不会存在因为迁移而丢消息的问题,让整个通信更加可靠。
4)开发效率高:将玩家的数据进行分离,这样可以将开发进行分离,战斗相关的开发和逻辑系统相关的开发将分离,让不用的开发相互分离,可以提高开发效率。
5)健壮性:数据分离和集群模式,能够更好的进行数据的隔离,提供更好的系统、数据的健壮性。
对应于上述方法实施例,本发明实施例提供了一种游戏数据处理装置,如图8所示的一种游戏数据处理装置的结构示意图,该游戏数据处理装置包括:
数据获取模块81,用于获取游戏数据,确定所述游戏数据属于的属性对象;其中,所述游戏数据包括第一游戏数据和第二游戏数据;所述属性对象包括固定对象和迁移对象;所述固定对象表征非迁移所述第一游戏数据属于的属性对象,所述迁移对象表征迁移所述第二游戏数据属于的属性对象;
数据迁移模块82,用于响应于针对所述游戏数据的数据迁移,迁移属于迁移对象的所述第一游戏数据;
数据通信模块83,用于响应于玩家发送的交互数据,根据所述固定对象处理所述交互数据。
本发明实施例提供的一种游戏数据处理装置,确定所述游戏数据属于的属性对象,其中,属性对象包括固定对象和迁移对象;在进行数据迁移时迁移属于迁移对象的所述第一游戏数据;并且可以根据所述固定对象处理玩家发送的交互数据。该方式中,预先将游戏数据属于的属性对象分为固定对象和迁移对象,只需要将属于迁移对象的所述第一游戏数据进行数据迁移,可以减少游戏数据迁移的消耗,降低玩家感受的延迟;在迁移过程中可以以固定对象作为通信节点进行通信,因此在游戏数据迁移的过程中玩家也可以与其他玩家进行通信。
上述数据迁移模块,用于响应于游戏过程中的移动事件和/或战斗事件,迁移属于迁移对象的所述第一游戏数据。
上述数据通信模块,用于根据所述固定对象确定通信节点,通过所述通信节点处理所述交互数据。
上述数据通信模块,用于确定所述固定对象对应的进程标识;根据所述进程标识确定通信节点。
通过服务器迁移所述游戏数据;所述服务器包括固定对象集群、场景集群和副本战斗集群;其中,所述固定对象集群用于保存所述第二游戏数据,所述场景集群用于保存所述第一游戏数据;所述副本战斗集群用于处理玩家进行副本战斗的逻辑;上述数据迁移模块,用于将属于迁移对象的所述第一游戏数据由所述场景集群迁移至所述副本战斗集群。
固定对象集群的第一进程负责调度所述第二游戏数据,所述场景集群的第二进程负责调度所述第一游戏数据;上述数据迁移模块,用于所述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据;响应于所述第一进程已获取到所述迁移对象的结束事件,触发所述第二进程销毁保存的所述第一游戏数据;将所述第一进程获取的第一游戏数据发送至所述副本战斗集群。
上述数据迁移模块,用于所述第一进程向所述第二进程发送数据获取请求;其中,所述获取请求包含属于迁移对象的所述第一游戏数据的标识;所述第二进程响应所述数据获取请求,将所述第一游戏数据发送至所述第一进程。
上述数据迁移模块,还用于将所述第一游戏数据存储于所述第一进程中。
上述数据迁移模块,还用于基于所述副本战斗集群保存的第一游戏数据更新所述第一进程保存的第二游戏数据。
固定对象集群和所述场景集群预先与所述玩家的客户端通信连接;上述数据迁移模块,还用于断开所述场景集群与所述玩家的客户端的通信连接;上述数据迁移模块,还用于建立所述副本战斗集群与所述玩家的客户端的通信连接。
上述数据迁移模块,还用于所述第一进程向所述玩家的客户端发送连接请求,以使所述玩家的客户端建立与所述副本战斗集群的通信连接;其中,所述连接请求包括所述第一游戏数据保存在所述副本战斗集群的端口和地址。
上述服务器的集群通过消息转发中间层与所述玩家的客户端建立通信连接。
本发明实施例提供的游戏数据处理装置,与上述实施例提供的游戏数据处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供了一种电子设备,用于运行上述游戏数据处理方法;参见图9所示的一种电子设备的结构示意图,该电子设备包括存储器100和处理器101,其中,存储器100用于存储一条或多条计算机指令,一条或多条计算机指令被处理器101执行,以实现上述游戏数据处理方法。
进一步地,图9所示的电子设备还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。
其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述游戏数据处理方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的游戏数据处理方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和/或装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (15)

1.一种游戏数据处理方法,其特征在于,所述方法包括:
获取游戏数据,确定所述游戏数据属于的属性对象;其中,所述游戏数据包括第一游戏数据和第二游戏数据;所述属性对象包括固定对象和迁移对象;所述固定对象表征非迁移所述第二游戏数据属于的属性对象,所述迁移对象表征迁移所述第一游戏数据属于的属性对象;所述固定对象表征与游戏中战斗无关的属性和方法的集合,所述迁移对象表征与游戏中战斗相关的属性和方法的集合;
响应于针对所述游戏数据的数据迁移,迁移属于迁移对象的所述第一游戏数据;
响应于玩家发送的交互数据,根据所述固定对象处理所述交互数据。
2.根据权利要求1所述的方法,其特征在于,响应于针对所述游戏数据的数据迁移,迁移属于迁移对象的所述第一游戏数据的步骤,包括:
响应于游戏过程中的移动事件和/或战斗事件,迁移属于迁移对象的所述第一游戏数据。
3.根据权利要求1所述的方法,其特征在于,根据所述固定对象处理所述交互数据的步骤,包括:
根据所述固定对象确定通信节点,通过所述通信节点处理所述交互数据。
4.根据权利要求3所述的方法,其特征在于,根据所述固定对象确定通信节点的步骤,包括:
确定所述固定对象对应的进程标识;
根据所述进程标识确定通信节点。
5.根据权利要求1所述的方法,其特征在于,通过服务器迁移所述游戏数据;所述服务器包括固定对象集群、场景集群和副本战斗集群;其中,所述固定对象集群用于保存所述第二游戏数据,所述场景集群用于保存所述第一游戏数据;所述副本战斗集群用于处理玩家进行副本战斗的逻辑;
迁移属于迁移对象的所述第一游戏数据的步骤,包括:
将属于迁移对象的所述第一游戏数据由所述场景集群迁移至所述副本战斗集群。
6.根据权利要求5所述的方法,其特征在于,所述固定对象集群的第一进程负责调度所述第二游戏数据,所述场景集群的第二进程负责调度所述第一游戏数据;
将属于迁移对象的所述第一游戏数据由所述场景集群迁移至所述副本战斗集群的步骤,包括:
所述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据;
响应于所述第一进程已获取到所述迁移对象的结束事件,触发所述第二进程销毁保存的所述第一游戏数据;
将所述第一进程获取的第一游戏数据发送至所述副本战斗集群。
7.根据权利要求6所述的方法,其特征在于,所述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据的步骤,包括:
所述第一进程向所述第二进程发送数据获取请求;其中,所述获取请求包含属于迁移对象的所述第一游戏数据的标识;
所述第二进程响应所述数据获取请求,将所述第一游戏数据发送至所述第一进程。
8.根据权利要求6所述的方法,其特征在于,所述第一进程获取所述第二进程保存的属于迁移对象的所述第一游戏数据的步骤之后,所述方法还包括:
将所述第一游戏数据存储于所述第一进程中。
9.根据权利要求6所述的方法,其特征在于,将所述第一进程获取的第一游戏数据发送至所述副本战斗集群的步骤之后,所述方法还包括:
基于所述副本战斗集群保存的第一游戏数据更新所述第一进程保存的第二游戏数据。
10.根据权利要求6所述的方法,其特征在于,所述固定对象集群和所述场景集群预先与所述玩家的客户端通信连接;
触发所述第二进程销毁保存的所述第一游戏数据的步骤之后,所述方法还包括:断开所述场景集群与所述玩家的客户端的通信连接;
将所述第一进程获取的第一游戏数据发送至所述副本战斗集群的步骤之后,所述方法还包括:建立所述副本战斗集群与所述玩家的客户端的通信连接。
11.根据权利要求10所述的方法,其特征在于,建立所述副本战斗集群与所述玩家的客户端的通信连接的步骤,包括:
所述第一进程向所述玩家的客户端发送连接请求,以使所述玩家的客户端建立与所述副本战斗集群的通信连接;其中,所述连接请求包括所述第一游戏数据保存在所述副本战斗集群的端口和地址。
12.根据权利要求5所述的方法,其特征在于,所述服务器的集群通过消息转发中间层与所述玩家的客户端建立通信连接。
13.一种游戏数据处理装置,其特征在于,所述装置包括:
数据获取模块,用于获取游戏数据,确定所述游戏数据属于的属性对象;其中,所述游戏数据包括第一游戏数据和第二游戏数据;所述属性对象包括固定对象和迁移对象;所述固定对象表征非迁移所述第一游戏数据属于的属性对象,所述迁移对象表征迁移所述第二游戏数据属于的属性对象;所述固定对象表征与游戏中战斗无关的属性和方法的集合,所述迁移对象表征与游戏中战斗相关的属性和方法的集合;
数据迁移模块,用于响应于针对所述游戏数据的数据迁移,迁移属于迁移对象的所述第一游戏数据;
数据通信模块,用于响应于玩家发送的交互数据,根据所述固定对象处理所述交互数据。
14.一种电子设备,其特征在于,所述电子设备包括:处理设备和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理设备运行时执行如权利要求1至12任一项所述的游戏数据处理方法。
15.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理设备运行时执行如权利要求1至12任一项所述的游戏数据处理方法的步骤。
CN202011413470.2A 2020-12-02 2020-12-02 游戏数据处理方法、装置和电子设备 Active CN112402979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011413470.2A CN112402979B (zh) 2020-12-02 2020-12-02 游戏数据处理方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011413470.2A CN112402979B (zh) 2020-12-02 2020-12-02 游戏数据处理方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN112402979A CN112402979A (zh) 2021-02-26
CN112402979B true CN112402979B (zh) 2023-11-17

Family

ID=74776303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011413470.2A Active CN112402979B (zh) 2020-12-02 2020-12-02 游戏数据处理方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN112402979B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113082694B (zh) * 2021-03-01 2022-12-09 上海硬通网络科技有限公司 游戏模式切换方法、装置及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104582806A (zh) * 2012-08-24 2015-04-29 微软公司 游戏迁移
CN106648455A (zh) * 2016-09-14 2017-05-10 广东欧珀移动通信有限公司 一种数据迁移方法及移动终端
CN108780404A (zh) * 2016-03-16 2018-11-09 谷歌有限责任公司 远程访问数据的有效实时迁移
CN109011588A (zh) * 2018-10-16 2018-12-18 杭州电魂网络科技股份有限公司 游戏场景交互方法及装置
CN110354491A (zh) * 2019-08-05 2019-10-22 网易(杭州)网络有限公司 全球同服游戏系统、数据同步方法、电子设备及介质
CN110769907A (zh) * 2017-06-19 2020-02-07 索尼互动娱乐有限责任公司 用于安排视频游戏的游戏进行的方法和系统
CN111035932A (zh) * 2019-12-20 2020-04-21 网易(杭州)网络有限公司 游戏副本处理方法、装置、电子设备及存储介质
CN111190551A (zh) * 2020-01-04 2020-05-22 深圳猛犸电动科技有限公司 一种redis数据的迁移系统、迁移方法、装置及终端
CN111324596A (zh) * 2020-03-06 2020-06-23 腾讯科技(深圳)有限公司 数据库集群的数据迁移方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9781244B2 (en) * 2012-07-02 2017-10-03 Kevin Griffin Dual-mode eyeglasses

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104582806A (zh) * 2012-08-24 2015-04-29 微软公司 游戏迁移
CN108780404A (zh) * 2016-03-16 2018-11-09 谷歌有限责任公司 远程访问数据的有效实时迁移
CN106648455A (zh) * 2016-09-14 2017-05-10 广东欧珀移动通信有限公司 一种数据迁移方法及移动终端
CN110769907A (zh) * 2017-06-19 2020-02-07 索尼互动娱乐有限责任公司 用于安排视频游戏的游戏进行的方法和系统
CN109011588A (zh) * 2018-10-16 2018-12-18 杭州电魂网络科技股份有限公司 游戏场景交互方法及装置
CN110354491A (zh) * 2019-08-05 2019-10-22 网易(杭州)网络有限公司 全球同服游戏系统、数据同步方法、电子设备及介质
CN111035932A (zh) * 2019-12-20 2020-04-21 网易(杭州)网络有限公司 游戏副本处理方法、装置、电子设备及存储介质
CN111190551A (zh) * 2020-01-04 2020-05-22 深圳猛犸电动科技有限公司 一种redis数据的迁移系统、迁移方法、装置及终端
CN111324596A (zh) * 2020-03-06 2020-06-23 腾讯科技(深圳)有限公司 数据库集群的数据迁移方法、装置及电子设备

Also Published As

Publication number Publication date
CN112402979A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
US11110347B2 (en) Game server switching method, apparatus, and system
US8480498B2 (en) Synchronizing mission progress in cooperative games
US9223599B1 (en) Client-side server for client-side scripting languages
US8414396B2 (en) Game system, game apparatus, storage medium storing game program, and game controlling method
US8449398B2 (en) Secure, parallel, and independent script execution
US20080090659A1 (en) Virtual world event notification from a persistent world game server in a logically partitioned game console
WO2019105395A1 (zh) 对象操作的处理、对象操作数据的生成方法及计算机设备
US10729975B1 (en) Network connection selection processing system
CN111111215A (zh) 游戏匹配方法、装置、服务器及可读存储介质
JP2003529826A (ja) 第1のコンピュータ上のプログラムをサーバ上のプログラムと同期化するための方法および装置、コンピュータ読出し可能な記憶媒体およびコンピュータプログラム要素
CN109731330B (zh) 画面的显示方法和装置、存储介质、电子装置
CN111744177B (zh) 游戏数据处理方法和装置、存储介质和电子设备
US20140019528A1 (en) Validation of device activity via logic sharing
CN112402979B (zh) 游戏数据处理方法、装置和电子设备
CN110711380A (zh) 一种状态处理方法和相关装置
CN110113414B (zh) 一种管理副本的方法、装置、服务器及存储介质
CN113398580B (zh) 游戏场景的生成方法及装置、存储介质、电子装置
AU2021385098A1 (en) Method and apparatus for generating special effect in virtual environment, device, and storage medium
CN112221148B (zh) 一种游戏技能释放状态同步方法、服务器及可读存储介质
CN113680050A (zh) 游戏请求的处理方法、装置、计算机设备及可读存储介质
EP2350852A1 (en) Use of dynamic bounded regions to improve the scalability of decentralised online environments
CN105245558B (zh) 支持虚拟在线的应用程序运行方法、系统、服务器
CN115253311A (zh) 一种棋牌游戏跨服务器战斗方法、设备及介质
CN109529332A (zh) 一种游戏场景运动状态切换方法、装置、服务器及终端
CN112153420B (zh) 场景切换系统、方法、服务器和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant