一种游戏数据处理方法、装置、设备及存储介质

文档序号:1896914 发布日期:2021-11-30 浏览:25次 >En<

阅读说明:本技术 一种游戏数据处理方法、装置、设备及存储介质 (Game data processing method, device, equipment and storage medium ) 是由 刘慧孟 于 2021-09-01 设计创作,主要内容包括:本申请提供一种游戏数据处理方法、装置、设备及存储介质,涉及计算机技术领域。该方法包括:确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景;根据目标虚拟场景对应的非玩家角色的信息,确定目标虚拟场景下各网格中待加载的目标非玩家角色的数据;根据目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程,目标进程用于加载所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据。应用本申请实施例,有限硬件资源(游戏服务器)的前提下,保证玩家有高质量的游戏体验。(The application provides a game data processing method, a game data processing device and a game data processing storage medium, and relates to the technical field of computers. The method comprises the following steps: determining a target virtual scene under the current visual field of the virtual character controlled by the player; determining data of target non-player characters to be loaded in each grid under the target virtual scene according to information of the non-player characters corresponding to the target virtual scene; and starting to run at least one target process according to the data volume corresponding to the data of the target non-player character to be loaded in each grid under the target virtual scene, wherein the target process is used for loading the data of the target non-player character to be loaded in each grid under the target virtual scene. By applying the embodiment of the application, the high-quality game experience of the player is ensured on the premise of limited hardware resources (game server).)

一种游戏数据处理方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种游戏数据处理方法、装置、设备及存储介质。

背景技术

NPC(Non-Player Character,非玩家角色)指的是游戏中不受玩家操纵的游戏角色,通常可分为剧情NPC、战斗NPC和服务NPC等,有时一种NPC可兼具多种功能,NPC作为游戏中不可缺少的一个重要角色,在对游戏剧情的推动、发展有很重要的作用。

目前,在大世界的游戏场景中,为了使玩家达到丰富的游戏体验,往往需要创建海量的NPC,即AI(Artificial Intelligence,人工智能)单位。当有大量的玩家同时通过多个逻辑服加入游戏时,游戏服务器集群中运行的进程需要加载的AI单位数量可达到上亿级别,那么如何在有限硬件资源的前提下,还可以保证玩家有高质量的游戏体验是当前亟待解决的问题。

发明内容

本申请的目的在于,针对上述现有技术中的不足,提供一种游戏数据处理方法、装置、设备及存储介质,可以在有限硬件资源的前提下,保证玩家有高质量的游戏体验。

为实现上述目的,本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供了一种游戏数据处理方法,该方法包括:

确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景;

根据所述目标虚拟场景对应的非玩家角色的信息,确定所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据;

根据所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程,所述目标进程用于加载所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

可选地,所述根据所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程,包括:

根据各进程的负载信息,确定至少一个初始进程;

根据所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量以及初始进程剩余的加载空间,启动运行所述至少一个初始进程中的至少一个目标进程。

可选地,所述方法还包括:

若所述目标进程中的第一目标进程的负载大于第一预设阈值,则将所述第一目标进程所加载的各网格中待加载的目标非玩家角色的数据中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至迁移进程中进行加载。

可选地,所述迁移进程为所述至少一个目标进程中的进程,所述迁移进程的负载小于所述第一预设阈值。

可选地,所述迁移进程为所述至少一个目标进程之外的进程;

所述将所述第一目标进程所加载的各网络中待加载的目标非玩家角色中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至迁移进程中进行加载,包括:

启动运行所述迁移进程;

将所述第一目标进程所加载的各网络中待加载的目标非玩家角色中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至所述迁移进程中进行加载。

可选地,所述方法还包括:

若所述目标进程中的多个第二目标进程的负载小于第二预设阈值,则将所述第二目标进程所加载的各网格中待加载的目标非玩家角色的数据合并至所述多个第二目标进程中的其中一个目标进程中进行加载。

可选地,所述确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景之前,所述方法还包括:

启动运行所述目标虚拟场景对应的管理进程,所述管理进程用于加载管理非玩家角色,所述管理非玩家角色用于监测所述虚拟角色是否进入所述目标虚拟场景。

可选地,所述根据所述目标虚拟场景对应的非玩家角色的信息,确定所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据,包括:

根据与所述管理非玩家角色关联的非玩家角色的标识信息,确定所述目标虚拟场景对应的非玩家角色的信息;

根据所述目标虚拟场景对应的非玩家角色的信息,确定所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

可选地,所述方法还包括:

将多个所述目标非玩家角色的数据加入目标队列中,并从所述目标队列中按序读取各所述目标非玩家角色的数据进行加载。

可选地,所述方法还包括:

在所述目标非玩家角色退出所述玩家所操控的虚拟角色的视野时,降低所述目标非玩家角色的帧刷新频率。

可选地,所述方法还包括:

在所述目标非玩家角色退出所述玩家所操控的虚拟角色的视野的时长达到预设时长时,从所述目标进程中卸载所述目标非玩家角色的数据。

第二方面,本申请实施例提供了一种游戏数据处理装置,所述装置包括:

第一确定模块,用于确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景;

第二确定模块,用于根据所述目标虚拟场景对应的非玩家角色的信息,确定所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据;

启动运行模块,用于根据所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程,所述目标进程用于加载所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

可选地,所述启动运行模块,具体用于根据各进程的负载信息,确定至少一个初始进程;根据所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量以及初始进程剩余的加载空间,启动运行所述至少一个进程中的至少一个目标进程。

可选地,所述装置还包括:迁移装置;所述迁移装置,用于若所述目标进程中的第一目标进程的负载大于第一预设阈值,则将所述第一目标进程所加载的各网格中待加载的目标非玩家角色的数据中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至迁移进程中进行加载。

可选地,所述迁移进程为所述至少一个目标进程中的进程,所述迁移进程的负载小于所述第一预设阈值。

可选地,所述迁移进程为所述至少一个目标进程之外的进程;

相应地,所述迁移装置,还用于启动运行所述迁移进程;将所述第一目标进程所加载的各网络中待加载的目标非玩家角色中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至所述迁移进程中进行加载。

可选地,所述装置还包括:合并装置,所述合并装置,用于若所述目标进程中的多个第二目标进程的负载小于第二预设阈值,则将所述第二目标进程所加载的各网格中待加载的目标非玩家角色的数据合并至所述多个第二目标进程中的其中一个目标进程中进行加载。

可选地,所述启动运行模块,还用于启动运行所述目标虚拟场景对应的管理进程,所述管理进程用于加载管理非玩家角色,所述管理非玩家角色用于监测所述虚拟角色是否进入所述目标虚拟场景。

可选地,所述第二确定模块,还用于根据与所述管理非玩家角色关联的非玩家角色的标识信息,确定所述目标虚拟场景对应的非玩家角色的信息;根据所述目标虚拟场景对应的非玩家角色的信息,确定所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

可选地,所述装置还包括:加入装置;所述加入装置,用于将多个所述目标非玩家角色的数据加入目标队列中,并从所述目标队列中按序读取各所述目标非玩家角色的数据进行加载。

可选地,所述装置还包括:处理装置;所述处理装置,用于在所述目标非玩家角色退出所述玩家所操控的虚拟角色的视野时,降低所述目标非玩家角色的帧刷新频率。

可选地,所述装置还包括:卸载模块;所述卸载模块,用于在所述目标非玩家角色退出所述玩家所操控的虚拟角色的视野的时长达到预设时长时,从所述目标进程中卸载所述目标非玩家角色的数据。

第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述第一方面的游戏数据处理方法的步骤。

第四方面,本申请实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面的游戏数据处理方法的步骤。

本申请的有益效果是:

本申请实施例提供一种游戏数据处理方法、装置、设备及存储介质,该方法包括:确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景;根据目标虚拟场景对应的非玩家角色的信息,确定目标虚拟场景下各网格中待加载的目标非玩家角色的数据;根据目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程,目标进程用于加载所述目标虚拟场景下各网格中待加载的目标非玩家角色的数据。应用本申请实施例,根据玩家所操控的虚拟角色在当前视野下的目标虚拟场景与非玩家角色的信息(如非玩家角色的数量),确定出待加载的目标玩家角色的数据对应的数据量,由于虚拟角色的视野范围是有限的,进而可以从根据上减少待加载的非玩家角色的数量,并且从逻辑服的维度来说,各玩家所操控的虚拟角色在游戏场景中具有聚集特性,可以更大幅度的减少待加载的非玩家角色的数量,在此基础上,不仅可以减少目标进程的启动个数,并且还可以避免进程加载目标非玩家角色的数据出现过载的现象,也就是说,通过上述方式可以在有限硬件资源(游戏服务器)的前提下,保证玩家有高质量的游戏体验。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种游戏服务器进行负载均衡控制的场景示意图;

图2为本申请实施例提供的一种游戏数据处理方法的流程示意图;

图3为本申请实施例提供的一种虚拟角色的视野范围的示意图;

图4为本申请实施例提供的另一种游戏数据处理方法的流程示意图;

图5为本申请实施例提供的再一种游戏数据处理方法的流程示意图;

图6为本申请实施例提供的又一种游戏数据处理方法的流程示意图;

图7为本申请实施例提供的一种游戏数据处理装置的结构示意图;

图8为本申请实施例提供的一种电子设备结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在对本申请实施例进行解释之前,首先对本申请的应用场景予以说明。本申请的应用场景具体可为:大量玩家同时通过多个逻辑服进入大世界游戏场景中,在游戏服务器集群需要加载上亿级别NPC情况下,对游戏服务器集群中各游戏服务器进行负载均衡控制的场景,即对游戏中NPC控制的场景。图1为本申请实施例提供的一种游戏服务器进行负载均衡控制的场景示意图,如图1所示,该场景中包括多个玩家101,玩家101所对应的游戏客户端与游戏服务器103相对应,游戏客户端为玩家提供本地服务的程序,可预先安装在各玩家101所持有的终端设备上,需要与游戏服务器103相互配合运行,其中,终端设备的具体形态可包括手机、平板电脑、台式电脑等,本申请不对其进行限定。该场景中还包括多个逻辑服102,各逻辑服102可支撑多个玩家101,位于同一个逻辑服102上的玩家101所操控的虚拟角色在大世界的游戏场景中是可见的,位于不同逻辑服102上玩家所操控的虚拟角色在大世界的游戏场景中是不可见的。

该场景中还包括游戏服务器集群100,游戏服务器集群100中可包括多个游戏服务器103,游戏服务器103与上述提到的游戏客户端对应,可安装在IDC(Internet DataCenter,互联网数据中心)中,为游戏客户端提供数据的转发与逻辑处理服务的软件程序。由于安装在玩家所持有的终端设备上的游戏客户端容易被破解而被利用作弊,所以在网络游戏,如MMORPG(Massive Multiplayer Online Role-Playing Game,大型多人在线角色扮演游戏)中,大多数的逻辑处理都在游戏服务器中进行计算。

每个游戏服务器103上可根据实际需求创建多个进程104,各进程104在创建完成后的初始状态均处于关闭状态,在需要加载游戏客户端发送的待处理数据时,可启动相应的进程104。进程104的启动管理由该场景中的负载均衡管理单元105负责,负载均衡管理单元105关联有各游戏服务器103中各进程104的负载信息,该负载信息可包括进程104对应的预设负载阈值以及当前所占用的负载信息。具体的,负载均衡管理单元105在接收到游戏客户端发送的NPC待处理数据时,可根据当前各进程的负载情况,按照下述本申请实施例的方式将NPC待处理数据分配至目标进程,进而目标进程以虚拟场景中的最小单位的地图实例(如网格)为维度,加载玩家101所操控的虚拟角色在当前视野下目标虚拟场景包括的各网格中的待加载的NPC数据,负载均衡管理单元105将加载后得到的NPC的数据反馈至对应的游戏客户端上,进而控制该目标虚拟场景中的各NPC进行相应的动作,如移动、战斗以及进行各种游戏操作。

需要说明的是,以玩家维度来说,一个玩家101所操控的虚拟角色的当前视野下的目标虚拟场景中所包括的待加载的NPC的数据可能会被加载到不同游戏服务器103对应的进程104中,也可能会被加载到同一个游戏服务器103对应的进程104中;以逻辑服的维度来说,一个逻辑服102上所支撑的各玩家101所操控的各虚拟角色的当前视野下的目标虚拟场景中所包括的待加载的NPC的数据可能会被加载到不同游戏服务器103对应的进程104中,也可能会被加载到同一个游戏服务器103对应的进程104中,本申请不对其进行限定。

如下可通过本申请实施例的方式对本申请提到的游戏中非玩家角色控制方法进行解释。图2为本申请实施例提供的一种游戏数据处理方法的流程示意图。如图2所示,该方法包括:

S201、确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景。

其中,在大世界的游戏场景(如MMORPG)中,为了使玩家达到丰富的游戏体验,往往需要创建海量的NPC,特别是在大量的玩家同时加入该类游戏时,往往需要创建多个逻辑服,逻辑服的个数与同时在线玩家的个数以及逻辑服所支撑的玩家的个数相关,位于同一逻辑服上的玩家所操控的虚拟角色是可见的,位于不同逻辑服上的玩家所操控的虚拟角色是不可见的。与多个逻辑服对应的游戏服务器集群中可包括有限个游戏服务器,如N个游戏服务器,每个游戏服务器有对应的标识,本领域技术人员可以理解的是,该标识可以采用符号、文字或者其他任意组合来进行表示。每个游戏服务器可预先创建有限个进程,如M个进程,游戏服务器的进程可用于加载游戏客户端发送的待处理的游戏数据,每个进程对应有各自的标识,需要说明的是,各游戏服务器对应的进程个数可相同,也可不相同,本申请不对其进行限定。

此处以其中一个逻辑服(目标逻辑服)所支撑的各玩家所操控的虚拟角色对应的待加载的NPC的数据来说,其他逻辑服所支撑的各玩家所操控的虚拟角色对应的待加载的NPC的数据类似。可根据NPC在大世界场景中的分布密度信息,将大世界场景划分为多个网格,大世界场景中的各网格大小可不相同,如可将NPC分布密度高的区域划分成一个大的网格,将NPC分布密度低的区域划分成一个小的网格,并且,大世界场景中网格的形状可为正方形、矩形等,本申请不对网格的形状进行限定。每个网格在大世界的游戏场景中对应有位置信息以及视野列表,其中,视野列表中包括与网格对应的虚拟角色数量以及非玩家角色数量,各玩家所操控的虚拟角色的视野范围可预先设置,其视野范围具体可为以虚拟角色当前所在的网格为中心,周围预设多个网格所组成的区域,可根据该区域的位置信息确定出各目标逻辑服所支撑的各玩家所操控的虚拟角色的当前视野下的目标虚拟场景。

此处以一个玩家所操控的虚拟角色为例进行说明,图3为本申请实施例提供的一种虚拟角色的视野范围的示意图,如图3所示,图3中为阴影状态的网格301为该玩家所操控的虚拟角色当前所在的游戏场景中的位置,根据预先设置的该玩家所操控的虚拟角色对应的视野范围(如9个网格),可确定出该虚拟角色当前视野下的目标虚拟场景302为这9个网格组成的区域。可以理解的是,不同虚拟角色对应的视野范围,即网格数可相同,也可不相同,本申请不对其进行限定。

需要说明的是,图3只是一种示例,本申请不对网格的大小及形状进行限定。

S202、根据目标虚拟场景对应的非玩家角色的信息,确定该目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

其中,与目标虚拟场景对应的区域包含有多个网格,每个网格相当于一个地图实例。在一种可实现的实施例中,进程以地图实例为最小单位进行加载,即同一个网格中的待加载的NPC的数据被加载在同一个进程中,所以此处以网格为维度进行说明。

目标虚拟场景对应的每个网格可对应有位置信息以及视野列表,其中,视野列表中包括与网格对应的虚拟角色的信息以及非玩家角色(NPC)的信息,在一种可实现的实施例中,虚拟角色的信息可包括虚拟角色的数量,非玩家角色的信息可包括非玩家角色的数量,此处主要以非玩家角色的信息为主进行说明,根据某个网格中非玩家角色的数量可确定出该网格中目标非玩家角色的数据。

可选地,非玩家角色的信息可包括非玩家角色的数量以及非玩家角色的权重,该权重用于表示非玩家角色对资源的需求程度,权重越大,代表着非玩家角色所需的资源就越多,即进程需要为权重越大的非玩家角色分配更大的资源空间以加载该非玩家角色对应的待处理数据。

举例来说,某个网格中包括目标非玩家角色A、目标非玩家角色B以及目标非玩家角色C,可统计出目标非玩家角色A的数量、目标非玩家角色B对应的数量、目标非玩家角色C对应的数量,进而可得到该网格中目标非玩家角色的总数量。在一种可实现的实施例中,根据该网格中目标非玩家角色的总数量、该网格对应的作战属性比例以及各作战属性对应的权重,可得到该网格中待加载的目标非玩家角色的数据对应的数据量。其中,该作战属性比例为参与作战的比例或者不参与作战的比例,具体的,首先根据该网格中目标非玩家角色的总数量以及参与作战的比例预计得出参与作战的目标非玩家的数量以及不参与作战的目标非玩家角色的数量,再根据参与作战的目标非玩家角色的数量以及参与作战权重确定出参与作战的目标非玩家角色对应的数据量,根据不参与作战的目标非玩家角色的数量以及不参与作战权重确定出不参与作战的目标非玩家角色对应的数据量,进而将参与作战的目标非玩家角色对应的数据量与不参与作战的目标非玩家角色对应的数据量相加,得到该网格中目标非玩家角色的数据对应的数据量。

S203、根据目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程,目标进程用于加载目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

其中,游戏服务器集群中的各游戏服务器上可预先创建有多个进程,各进程的初始状态可均为关闭状态,在接收到启动指令后,可启动该启动指令对应的目标进程。

在接收到游戏客户端发送的进入目标虚拟场景的指令时,可首先计算出该目标虚拟场景下各网格中待加载的目标非玩家角色的数据,若某个网格中存在多个目标非玩家角色,那么可根据各目标玩家角色的数据得到待加载的总数据,将该总数据对应的数据量作为该网格的数据量。

在一种可实现的实施例中,首先根据各游戏服务器的负载以及服务器负载阈值,过滤掉超过负载阈值的游戏服务器,即过滤掉这些游戏服务器下的各进程,然后再根据未超过负载阈值的游戏服务器下各进程的负载与各进程负载阈值,确定出未超过进程负载阈值的进程,将未超过进程负载阈值的进程作为目标进程,最后再根据目标进程的进程负载阈值以及加载各网格的数据所需资源将各网格的数据加载到对应的目标进程中,各网格的数据所需资源与各网格的数据对应的数据量相对应,可以理解的是,网格的数据对应的数据量越大时,该网格的数据所需的资源就越多。目标进程对所加载的数据(即目标非玩家角色的数据)进行处理后,反馈至对应的游戏客户端上,以控制对应的目标非玩家角色进行游戏操作。

综上所述,本申请实施例所提供的游戏数据处理方法,根据玩家所操控的虚拟角色在当前视野下的目标虚拟场景与非玩家角色的信息(如非玩家角色的数量),确定出待加载的目标玩家角色的数据对应的数据量,由于虚拟角色的视野范围是有限的,进而可以从根本上减少待加载的非玩家角色的数量,并且从逻辑服的维度来说,各玩家所操控的虚拟角色在游戏场景中具有聚集特性,可以更大幅度的减少待加载的非玩家角色的数量,在此基础上,不仅可以减少目标进程的启动个数,并且还可以避免进程加载目标非玩家角色的数据出现过载的现象,也就是说,通过上述方式可以在有限硬件资源(游戏服务器)的前提下,可以保证玩家有高质量的游戏体验。

图4为本申请实施例提供的另一种游戏数据处理方法的流程示意图。可选地,如图4所示,上述根据目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程,包括:

S401、根据各进程的负载信息,确定至少一个初始进程。

S402、根据目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量以及初始进程剩余的加载空间,启动运行至少一个初始进程中的至少一个目标进程。

其中,各进程的负载信息可包括各进程当前的负载信息以及进程负载阈值,各进程当前的负载信息可以理解为各进程当前所占对应游戏服务器中CPU(CentralProcessing Unit,中央处理器)的资源占用情况,进程负载阈值可以理解为每个进程预先设置对应的负载阈值。在一种可实现的实施例中,可将各进程当前的负载信息与所对应的进程负载阈值进行比较,确定出当前的负载信息小于所对应的进程阈值的初始进程,当初始进程为多个时,各初始进程可属于同一个游戏服务器,也可属于不同游戏服务器,本申请不对其进行限定。

在确定出各初始进程后,可根据各初始进程的当前的负载信息与所对应的进程负载阈值确定出剩余的加载空间,进而以网格为维度,根据各从初始进程对应的剩余加载空间以及目标场景下各网格中待加载的目标非玩家角色的数据对应的数据量,即目标非玩家角色的数据对应的所需加载空间,匹配出对应的进程,将所匹配的进程可称为目标进程,需要说明的是,本申请不对目标进程的数量进行限定。将匹配的网格标识与目标进程标识相关联,那么可将具有关联关系的网格中的各待加载的目标非玩家角色的数据加载在对应标识的目标进程中,即启动运行目标进程。

可选地,该方法还可以包括:若目标进程中的第一目标进程的负载大于第一预设阈值,则将该第一目标进程所加载的各网格中待加载的目标非玩家角色的数据中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至迁移进程中进行加载。

其中,该第一预设阈值与上述提到的进程负载阈值相关联,一般小于该进程负载阈值,该第一预设阈值小于该进程负载阈值的程度可根据实际情况进行设置,本申请不对其进行限定。各网格中待加载的目标非玩家角色的数据所需的加载空间会随着目标虚拟场景下玩家所操纵的虚拟角色与各目标非玩家角色之间的关联关系变化。举例来说,假设前一时刻,该目标虚拟场景下的玩家操控的虚拟角色与某个网格中的多个目标非玩家角色处于非战斗状态,而当前时刻,该玩家操控的虚拟角色与该网格中的多个目标非玩家角色处于战斗状态,那么第一目标进程加载当前时刻该网格中待加载的目标非玩家角色的数据所需的加载空间会比前一时刻加载该网格中待加载的目标非玩家角色的数据所需的加载空间要大,即第一目标进程加载当前时刻该网格的数据(待加载的目标非玩家角色的数据)会占用较多的CPU资源。

当判断出第一目标进程的负载大于第一预设阈值时,则需要从第一目标进程中迁移出某个目标网格中待加载的目标非玩家角色的数据,其中,目标网格可为该玩家所操控的虚拟角色对应的该目标虚拟场景下的网格,也可以为属于同一逻辑服的其他玩家所操控的虚拟角色对应的目标虚拟场景下的网格,还可以为属于不同逻辑服的其他玩家所操控的虚拟角色对应的目标虚拟场景下的网格,并且,目标网格的个数可以为一个,也可以为多个,本申请不对目标网格的数量进行限定,只要保证第一目标进程的负载小于第一预设阈值即可。

可选地,该迁移进程可为至少一个目标进程,并且该迁移进程小于上述提到的第一预设阈值。

在一种可实现的实施例中,可根据除第一目标进程的各目标进程当前的负载信息与第一预设阈值,对各目标进程进行排序,确定出当前的负载信息小于该第一阈值的目标进程作为迁移进程,其中,需要说明的是,本申请不对迁移进程的数量进行限定。

可以看出,当前一时刻负载小于第一预设阈值的目标负载,由于游戏场景中的虚拟角色与非玩家角色之间的游戏操作变化,变为负载大于第一预设阈值的目标负载时,可将原先属于该目标负载的目标非玩家角色的数据动态迁移至迁移进程中,这样可以保证该目标进程的性能,避免该目标进程所对应的玩家在游戏客户端感受到卡顿的现象。

图5为本申请实施例提供的再一种游戏数据处理方法的流程示意图。可选地,如图5所示,该迁移进程为至少一个目标进程之外的进程,上述将第一目标进程所加载的各网络中待加载的目标非玩家角色中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至迁移进程中进行加载,包括:

S501、启动运行迁移进程;

S502、将第一目标进程所加载的各网络中待加载的目标非玩家角色中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至该迁移进程中进行加载。

其中,若游戏服务器集群中还存在有初始状态为关闭状态的进程时,那么可根据初始状态为关闭状态的各进程预先分配的CPU资源信息以及目标网格中待加载的目标非玩家角色的数据所需的加载空间信息,确定能够作为迁移进程的初始状态为关闭状态的进程。可将作为迁移进程的初始状态为关闭状态的进程进行启动运行,然后将目标网格中待加载的目标非玩家角色的数据加载在对应的迁移进程中。

可选地,该方法还可以包括:若目标进程中的多个第二目标进程的负载小于第二预设阈值,则将第二目标进程所加载的各网格中待加载的目标非玩家角色的数据合并至多个第二目标进程中的其中一个目标进程中进行加载。

其中,该第二预设阈值与上述提到的进程负载阈值相关联,一般小于该进程负载阈值,该第二预设阈值小于该进程负载阈值的程度可根据实际情况进行设置,本申请不对其进行限定。上述提到的负载均衡管理单元可按照预设的频率对各目标进程的负载进行检测,可将负载小于第二预设阈值的目标进程作为第二目标进程,根据各第二目标进程的负载与第二预设阈值之间的偏差,可将偏差值最大的第二目标进程作为主第二目标进程,若该主第二目标进程所剩的加载空间能够将多个其他第二目标进程所加载的各网格中待加载的目标非玩家角色的数据均加载,且该主第二目标进程的负载还小于第一预设阈值,那么可将多个其他第二标进程上所加载的各网格中待加载的目标非玩家角色的数据合并至该主第二目标进程;若该主第二目标进程无法将其他第二目标进程所加载的数据全部进行记载,那么可按照上述描述的方式从其他第二目标进程中确定第二个主第二目标进程,需要说明的是,本申请不对主第二目标进程的数量进行限定。

可以理解的是,若目标进程的负载小于第二预设阈值,那么证明该目标进程存在浪费的加载空间,将多个负载较低的第二目标进程上所加载的数据合并至一个主第二目标进程上时,可以空出更多的空闲进程,将这些空闲进程可分配至更繁忙的逻辑服,可以理解的是,更繁忙的逻辑服是指所支撑的玩家数量增多,或者该逻辑服下的游戏场景中开启了特定玩法,吸引了大量的玩家加入该游戏场景中,进而会产生大量的目标非玩家角色的数据。也就是说,可以让玩家数量较多的逻辑服占据更多的进程,使玩家数量较少的逻辑服占据较少的进程,从而达到负载均衡的目的。

可选地,上述确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景之前,该方法还可以包括:启动运行目标虚拟场景对应的管理进程,管理进程用于加载管理非玩家角色,管理非玩家角色用于监测虚拟角色是否进入目标虚拟场景。

其中,可根据上述描述可知,游戏场景由多个网格组成,多个相邻的网格可组成游戏场景中的某个虚拟场景。假设游戏场景被分为多个固定的虚拟场景,对于每个虚拟场景来说,其上分配的非玩家角色可分为两类,如用于监测虚拟角色是否进入虚拟场景的非玩家角色,即管理非玩家角色,以及与管理非玩家角色相关联的其他非玩家角色,举例来说,一个管理非玩家角色可关联有10个其他非玩家角色。

以其中一个目标虚拟场景来说,在玩家所操控的虚拟角色与目标虚拟场景之间的距离满足第一距离条件时,可启动运行该目标虚拟场景对应的管理进程,该管理进程可为上述提到的目标进程,管理进程可加载管理非玩家角色的数据,在该目标虚拟场景中创建该管理非玩家角色,通过该管理非玩家角色监测该虚拟角色与该目标虚拟场景之间的距离是否满足第二距离条件,若满足第二距离条件,证明该虚拟玩家进入了该目标虚拟场景中。随后启动加载与管理非玩家角色相关联的其他非玩家角色的数据的进程,该进程可为上述提到的管理进程。可以看出,通过分布式加载数据的方式,可以降低进程需要同时加载的非玩家角色的数量,避免进程出现超负载的现象。

图6为本申请实施例提供的又一种游戏数据处理方法的流程示意图。可选地,如图6所示,上述根据目标虚拟场景对应的非玩家角色的信息,确定目标虚拟场景下各网格中待加载的目标非玩家角色的数据,包括:

S601、根据与管理非玩家角色关联的非玩家角色的信息,确定目标虚拟场景对应的非玩家角色的信息。

S602、根据目标虚拟场景对应的非玩家角色的信息,确定目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

其中,作为管理非玩家角色的非玩家角色属于一种静止的非玩家角色,也就是说,管理非玩家角色不会主动攻击玩家所操控的虚拟角色,也不会反击玩家所触控的虚拟角色,所以预先将管理非玩家角色创建完成后,随后可不需要对管理非玩家角色的数据进行处理。

管理非玩家角色可关联有多个非玩家角色,多个非玩家角色的数量集合可组成该目标虚拟场景上的总非玩家角色的数量,当然,一个目标虚拟场景也可对应多个管理非玩家角色,本申请不对其进行限定。

与目标虚拟场景对应的区域包含有多个网格,管理非玩家角色位于其中一个网格上,该管理非玩家角色将监测到该虚拟角色进入该目标虚拟场景的监测结果发送至上述提到的负载均衡管理单元,该负载均衡管理单元根据该监测结果确定与该管理非玩家角色相关联的非玩家角色标识信息,根据非玩家角色标识信息确定非玩家角色的数量。以网格为维度来说,可根据每个网格上的非玩家角色的数量确定出目标虚拟场景下各网格中待加载的目标非玩家角色的数据,启动加载与管理非玩家角色相关联的其他非玩家角色的数据的进程,该进程可为上述提到的管理进程。

可选地,该方法还包括:将多个目标非玩家角色的数据加入目标队列中,并从该目标队列中按序读取各目标非玩家角色的数据进行加载。

其中,以一个目标进程来说,可预先将该目标进程待加载的各目标非玩家角色的数据放到一个全局的目标队列中,设置每帧加载预设数量个非玩家角色的数据,直至该目标进程将待加载的各目标非玩家角色的数据加载完毕,这样可以避免游戏客户端的游戏界面上出现画面卡顿的现象。

可选地,该方法还包括:在目标非玩家角色退出玩家所操控的虚拟角色的视野时,降低该目标非玩家角色的帧刷新频率。

其中,玩家所操控的虚拟角色可根据游戏任务在游戏场景中移动,在移动的过程中,之前在该虚拟角色视野范围内的目标非玩家角色会逐渐退出该虚拟角色的视野,当某个目标非玩家角色退出该虚拟角色的视野时,可降低进程加载该目标非玩家角色的数据的频率,即降低该目标非玩家角色的刷新频率,这样可以将该进程对应CPU资源留给加载在该虚拟角色视野范围内的目标非玩家角色的数据。

可选地,该方法还包括:在目标非玩家角色退出玩家所操控的虚拟角色的视野的时长达到预设时长时,从目标进程中卸载目标的数据。

其中,当某个目标非玩家角色退出该虚拟角色的视野时长达到预设时长(如5S),可直接将目标进程中所加载的目标非玩家角色的数据剔除,这样可以降低进程所加载的数据量,避免进程出现超载的现象。

图7为本申请实施例提供的一种游戏数据处理装置的结构示意图。如图7所示,该装置包括:

第一确定模块701,用于确定玩家所操控的虚拟角色的当前视野下的目标虚拟场景;

第二确定模块702,用于根据目标虚拟场景对应的非玩家角色的信息,确定该目标虚拟场景下各网格中待加载的目标非玩家角色的数据;

启动运行模块703,用于根据目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量,启动运行至少一个目标进程。

可选地,启动运行模块703,具体用于根据各进程的负载信息,确定至少一个初始进程;根据目标虚拟场景下各网格中待加载的目标非玩家角色的数据对应的数据量以及初始进程剩余的加载空间,启动运行至少一个初始进程中的至少一个目标进程。

可选地,该装置还包括:迁移装置;该迁移装置,用于若目标进程中的第一目标进程的负载大于第一预设阈值,则将第一目标进程所加载的各网格中待加载的目标非玩家角色的数据中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至迁移进程中进行加载。

可选地,迁移进程为至少一个目标进程中的进程,迁移进程的负载小于第一预设阈值。

可选地,迁移进程为至少一个目标进程之外的进程;

相应地,该迁移装置,还用于启动运行迁移进程;将第一目标进程所加载的各网络中待加载的目标非玩家角色中的至少一个目标网格中待加载的目标非玩家角色的数据迁移至迁移进程中进行加载。

可选地,该装置还包括:合并装置,该合并装置,用于若目标进程中的多个第二目标进程的负载小于第二预设阈值,则将各第二目标进程所加载的各网格中待加载的目标非玩家角色的数据合并至多个第二目标进程中的其中一个目标进程中进行加载。

可选地,启动运行模块703,还用于启动运行目标虚拟场景对应的管理进程,管理进程用于加载管理非玩家角色,管理非玩家角色用于监测虚拟角色是否进入目标虚拟场景。

可选地,第二确定模块702,还用于根据与管理非玩家角色关联的非玩家角色的标识信息,确定目标虚拟场景对应的非玩家角色的信息;根据目标虚拟场景对应的非玩家角色的信息,确定目标虚拟场景下各网格中待加载的目标非玩家角色的数据。

可选地,该装置还包括:加入装置;该加入装置,用于将多个目标非玩家角色的数据加入目标队列中,并从目标队列中按序读取各目标非玩家角色的数据进行加载。

可选地,该装置还包括:处理装置;该处理装置,用于在目标非玩家角色退出玩家所操控的虚拟角色的视野时,降低目标非玩家角色的帧刷新频率。

可选地,该装置还包括:卸载模块;该卸载模块,用于在目标非玩家角色退出玩家所操控的虚拟角色的视野的时长达到预设时长时,从目标进程中卸载目标非玩家角色的数据。

上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

图8为本申请实施例提供的一种电子设备结构示意图。如图8所示,该电子设备可以包括:处理器801、存储介质802和总线803,存储介质802存储有处理器801可执行的机器可读指令,当电子设备运行时,处理器801与存储介质802之间通过总线803通信,处理器801执行机器可读指令,以执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。

可选地,本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:虚拟场景中障碍物的消除方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类