掌桥专利:专业的专利平台
掌桥专利
首页

一种游戏对象推送方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 19:32:07


一种游戏对象推送方法、装置、电子设备和存储介质

技术领域

本公开涉及计算机技术领域,特别是涉及一种游戏对象推送方法、一种游戏对象推送装置、一种电子设备和一种计算机可读存储介质。

背景技术

游戏场景中可能会存在成千上万个游戏对象,但是考虑到玩家客户端的设备性能并不足以同时支持创建数量如此之多的游戏对象,惯用做法是为玩家定义感兴趣区域(Area Of Interest,简称AOI),当且仅当游戏对象出现在玩家的感兴趣区域范围内时服务端才会将游戏对象的数据推送到该玩家的客户端,并在客户端创建对应的镜像实体。AOI推送机制设计的优劣很大程度上决定了玩家的游戏体验,优秀的AOI推送机制能够在保证游戏效果得到保障的同时进一步提升游戏流畅度。

传统的基于空间直线距离的AOI推送机制在游戏对象分布均匀、分布密度不高的场景下能够取得不错的效果,但是在游戏对象分布密度较高的场景下这种AOI推送机制会导致服务端推送大量的游戏对象到玩家客户端,造成玩家客户端超负荷。

此外,当玩家或其他游戏对象频繁移动时,这种AOI推送机制可能导致游戏对象频繁进出AOI范围,即玩家客户端会频繁的创建/销毁游戏对象,导致严重的性能开销。

发明内容

鉴于上述问题,提出了本公开实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种游戏对象推送方法和相应的一种游戏对象推送装置、一种电子设备,以及一种计算机可读存储介质。

本公开实施例公开了一种游戏对象推送方法,所述方法包括:

确定客户端的性能参数;其中,通过所述客户端操控玩家虚拟角色;

确定所述玩家虚拟角色的感兴趣区域及所述感兴趣区域中包含的游戏对象;

确定各所述游戏对象的推送优先级判别参数,并基于所述推送优先级判别参数从所述游戏对象中确定需推送的目标游戏对象;所述目标游戏对象的数量不大于所述客户端的性能参数所对应的游戏对象推送数量上限;所述推送优先级判别参数为用于确定游戏对象的推送优先级所采用的参数信息;

将所述目标游戏对象推送到所述客户端,以使所述客户端在所述感兴趣区域的游戏场景中显示所述目标游戏对象。

本公开实施例还公开了一种游戏对象推送装置,所述装置包括:

第一确定模块,用于确定客户端的性能参数;其中,通过所述客户端操控玩家虚拟角色;

第二确定模块,用于确定所述玩家虚拟角色的感兴趣区域及所述感兴趣区域中包含的游戏对象;

第三确定模块,用于确定各所述游戏对象的推送优先级判别参数,并基于所述推送优先级判别参数从所述游戏对象中确定需推送的目标游戏对象;所述目标游戏对象的数量不大于所述客户端的性能参数所对应的游戏对象推送数量上限;所述推送优先级判别参数为用于确定游戏对象的推送优先级所采用的参数信息;

推送模块,用于将所述目标游戏对象推送到所述客户端,以使所述客户端在所述感兴趣区域的游戏场景中显示所述目标游戏对象。

本公开实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述一种游戏对象推送方法。

本公开实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述一种游戏对象推送方法。

本公开实施例包括以下优点:

在本公开实施例中,可以确定客户端的性能参数,确定玩家虚拟角色的感兴趣区域及该感兴趣区域中包含的游戏对象,可以确定各游戏对象的推送优先级判别参数,通过推送优先级判别参数可以从多个游戏对象中确定出需要推送的目标游戏对象,其中,目标游戏对象的数量不大于客户端性能参数所对应的游戏对象推送数量上限,之后可以将确定出的目标游戏对象推送到客户端,从而可以使得客户端中创建游戏对象的数量不会超过设定的数量上限。通过采用上述方法,基于客户端性能参数的不同可以对应有不同的游戏对象推送数量上限,可以在游戏对象分布密度较高的场景下避免客户端由于需推送大量的游戏对象导致超负荷,对于性能较好的客户端可以设置较高的上限值,对于性能一般的客户端可以设置较低的上限值,可以有效保障各客户端用户的游戏体验。当游戏对象分布密集时,本方案依然能够根据推送优先级优先将对玩家来说更为“重要”的一部分游戏对象推送给客户端。

附图说明

图1是本公开实施例提供的一种游戏对象推送方法的步骤流程图;

图2是本公开实施例提供的另一种游戏对象推送方法的步骤流程图;

图3是本公开实施例的一种游戏场景示意图;

图4是本公开实施例提供的一种游戏对象推送装置的结构框图;

图5为本公开实施例提供的一种电子设备的结构框图。

具体实施方式

为使本公开的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本公开作进一步详细的说明,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。

感兴趣区域常用于游戏开发领域,表示玩家客户端的感知范围,当游戏对象如怪物、建筑、NPC(non-player character,非玩家角色)等在玩家的AOI范围内时服务端才会将游戏对象的数据推送到玩家客户端并在客户端创建一个对应的镜像实体。

传统的AOI推送是基于空间距离进行推送的,例如如果游戏对象与玩家虚拟角色的空间距离不大于设定的距离阈值,表示该游戏对象处于AOI范围内,则可以将游戏对象推送给玩家客户端;对于已经在玩家客户端创建了镜像实体的游戏对象,如果该游戏对象与玩家虚拟角色的空间距离大于设定的距离阈值,表示该游戏对象超出了AOI范围,此时可以将镜像实体从玩家客户端销毁。

传统的基于空间直线距离的AOI推送机制在游戏对象分布均匀、分布密度不高的场景下能够取得不错的效果,但是在游戏对象分布密度较高的场景下这种AOI推送机制会导致服务端推送大量的游戏对象到玩家客户端,造成玩家客户端超负荷。

此外,当玩家或其他游戏对象频繁移动时,这种AOI推送机制可能导致游戏对象频繁进出AOI范围,即玩家客户端会频繁的创建/销毁游戏对象,导致严重的性能开销。

基于此,本公开涉及解决无论游戏对象在场景中是怎么分布、怎么移动都能有效地降低游戏对象在玩家客户端创建的数量和频率,并且不会明显影响玩家的游戏体验的问题。

本公开实施例,可以确定客户端的性能参数,确定玩家虚拟角色的感兴趣区域及该感兴趣区域中包含的游戏对象,可以确定各游戏对象的推送优先级判别参数,通过推送优先级判别参数可以从多个游戏对象中确定出需要推送的目标游戏对象,其中,目标游戏对象的数量不大于客户端性能参数所对应的游戏对象推送数量上限,之后可以将确定出的目标游戏对象推送到客户端,从而可以使得客户端中创建游戏对象的数量不会超过设定的数量上限。通过采用上述方法,基于客户端性能参数的不同可以对应有不同的游戏对象推送数量上限,可以在游戏对象分布密度较高的场景下避免客户端由于需推送大量的游戏对象导致超负荷,对于性能较好的客户端可以设置较高的上限值,对于性能一般的客户端可以设置较低的上限值,可以有效保障各客户端用户的游戏体验。当游戏对象分布密集时,本方案依然能够根据推送优先级优先将对玩家来说更为“重要”的一部分游戏对象推送给客户端。

参照图1,示出了本公开实施例提供的一种游戏对象推送方法的步骤流程图,具体可以包括如下步骤:

步骤101,确定客户端的性能参数。

其中,通过客户端操控玩家虚拟角色。

本公开实施例提供的一种游戏对象推送方法可以应用于游戏服务端,游戏服务器与游戏客户端通信连接,游戏客户端可以为各种终端设备,例如,智能手机、平板电脑、笔记本电脑、台式计算机、游戏机、智能音箱、智能手表等,但并不局限于此。

在本公开实施例中,可以确定客户端的性能参数。客户端的性能参数用于表征客户端性能的强弱程度。

步骤102,确定所述玩家虚拟角色的感兴趣区域及所述感兴趣区域中包含的游戏对象。

游戏中的每个对象(从角色和可收集物品到光源、摄像机和特效)都可以是游戏对象。

在本公开实施例中,可以确定玩家虚拟角色的感兴趣区域,并可以确定该感兴趣区域中包含的游戏对象。其中,游戏对象分别属于对应的类型,具体的,游戏对象的类型可以包括玩家类型、怪物类型和NPC类型。对于游戏对象的类型,可以根据实际需要进行设置,本公开实施例对此不加以具体限制。

步骤103,确定各所述游戏对象的推送优先级判别参数,并基于所述推送优先级判别参数从所述游戏对象中确定需推送的目标游戏对象。

其中,目标游戏对象的数量不大于客户端的性能参数所对应的游戏对象推送数量上限;推送优先级判别参数为用于确定游戏对象的推送优先级所采用的参数信息。其中,推送优先级用于确定推送的先后顺序。

游戏对象推送数量上限是指可推送的游戏对象的数量上限。对于不同的类型,可以分别具有对应的游戏对象推送数量上限。例如,对于玩家类型,游戏对象推送数量上限可以为A;对于怪物类型,游戏对象推送数量上限可以为B;对于NPC类型,游戏对象推送数量上限可以为C。也就是说,游戏对象的类型与游戏对象推送数量上限之间具有映射关系。

在本公开实施例中,客户端性能参数与游戏对象推送数量上限之间也具有映射关系,对于不同客户端的性能参数,可以对应设置不同的游戏对象推送数量上限。

在本公开实施例中,可以确定各游戏对象分别对应的推送优先级判别参数,并根据该推送优先级判别参数从多个游戏对象中确定出需推送的目标游戏对象。作为一种示例,可以根据该推送优先级判别参数对游戏对象进行推送优先级排序,将推送优先级高的游戏对象优先确定为目标游戏对象。其中,确定出的目标游戏对象的数量不超过客户端性能参数所对应的游戏对象推送数量上限。

步骤104,将所述目标游戏对象推送到所述客户端,以使所述客户端在所述感兴趣区域的游戏场景中显示所述目标游戏对象。

在本公开实施例中,在确定出目标游戏对象之后,即可以将目标游戏对象的数据推送到(游戏)客户端,客户端即可以根据获取到的数据在感兴趣区域的游戏场景中显示目标游戏对象。其中,玩家虚拟角色的感兴趣区域通常与客户端的屏幕尺寸范围保持一致,有些情况下会大于客户端的屏幕尺寸范围。

综上,在本公开实施例中,基于客户端性能参数的不同可以对应有不同的游戏对象推送数量上限,可以在游戏对象分布密度较高的场景下避免客户端由于需推送大量的游戏对象导致超负荷,对于性能较好的客户端可以设置较高的上限值,对于性能一般的客户端可以设置较低的上限值,可以有效保障各客户端用户的游戏体验。当游戏对象分布密集时,本方案依然能够根据推送优先级优先将对玩家来说更为“重要”的一部分游戏对象推送给客户端。

参照图2,示出了本公开实施例提供的另一种游戏对象推送方法的步骤流程图,具体可以包括如下步骤:

步骤201,确定客户端的性能参数。

其中,通过客户端操控玩家虚拟角色。

在本公开一种可选的实施例中,性能参数包括性能等级,步骤201中确定客户端的性能参数,具体可以包括如下子步骤:

子步骤S11,确定所述客户端的设备参数。

子步骤S12,基于所述设备参数确定所述客户端所属的所述性能等级。

在本公开实施例中,客户端可以为各种终端设备,终端设备具有对应的设备参数,设备参数可以用于衡量终端设备的性能水平。因此,可以确定客户端的设备参数,然后可以根据该设备参数确定客户端所属的性能等级。

在本公开一种可选的实施例中,性能等级越高,对应的游戏对象推送数量上限越大。对于分属高中低性能等级的设备玩家,各自的游戏体验都能得到有效的保障。

在本公开一种可选的实施例中,性能参数包括性能分值,可以基于客户端的设备参数确定该客户端对应的性能分值,并基于性能分值确定性能等级。例如,可以对各种设备参数进行加权平均计算,获得该客户端对应的性能分值。

在本公开一种可选的实施例中,设备参数包括设备型号、CPU型号和GPU型号中的一种或多种,子步骤S12中基于所述设备参数确定所述客户端所属的所述性能等级,具体可以包括如下子步骤:

基于所述设备型号、所述CPU型号、所述GPU型号中的一种或多种,以及预先建立的设备参数与性能等级的映射关系,确定所述客户端所属的所述性能等级。

在本公开实施例中,可以预先建立设备型号与性能等级的映射关系,CPU型号与性能等级的映射关系以及GPU型号与性能等级的映射关系,根据建立的映射关系确定客户端所属的性能等级。

在一种具体实施方式中,可以先查阅预先建立的设备型号与性能等级的映射关系中是否存在针对客户端的设备型号;如果存在针对客户端的设备型号,则可以将与该设备型号对应的性能等级确定为客户端所属的性能等级;如果不存在针对客户端的设备型号,则可以查阅预先建立的CPU型号与性能等级的映射关系中是否存在针对客户端的CPU型号;如果存在针对客户端的CPU型号,则可以将与该CPU型号对应的性能等级确定为客户端所属的性能等级;如果不存在针对客户端的CPU型号,则可以查阅预先建立的GPU型号与性能等级的映射关系中是否存在针对客户端的GPU型号;如果存在针对客户端的GPU型号,则可以将与该GPU型号对应的性能等级确定为客户端所属的性能等级;如果不存在针对客户端的GPU型号,则可以将预设的性能等级确定为客户端所属的性能等级。

在本公开一种可选的实施例中,各游戏对象分别属于对应的类型,具体5还可以包括如下子步骤:

基于预先建立的性能等级与游戏对象推送数量上限的映射关系,确定对于不同类型的所述游戏对象,所述客户端分别对应可推送的游戏对象推送数量上限。

由于已经预先建立了性能等级与游戏对象推送数量上限的映射关系,即0可以基于确定的性能等级,以及性能等级与游戏对象推送数量上限的映射关

系,确定对于不同类型的游戏对象,客户端分别对应可推送的游戏对象推送数量上限。

对终端设备进行性能分级,对不同性能等级可以分别设定不同种类型游戏对象的推送数量上限。例如,对于第一性能等级的终端设备,属于玩家类5型的游戏对象的推送数量上限为A,属于怪物类型的游戏对象的推送数量上

限为B;而对于第二性能等级的终端设备,属于玩家类型的游戏对象的推送数量上限为A1,属于怪物类型的游戏对象的推送数量上限为B1。

步骤202,确定所述玩家虚拟角色的感兴趣区域及所述感兴趣区域中包含的游戏对象。

0可以确定玩家虚拟角色的感兴趣区域,并可以确定位于该感兴趣区域范

围内的游戏对象。

步骤203,确定各所述游戏对象的推送优先级判别参数。

推送优先级判别参数为用于确定游戏对象的推送优先级所采用的参数信息。

5在本公开实施例中,推送优先级判别参数包括等级参数、距离参数、角度参数中的一种或多种,推送优先级判别参数还可以包括距离调整参数,可以分别确定各游戏对象的推送优先级判别参数。

在本公开一种可选的实施例中,步骤203中确定各所述游戏对象的推送优先级判别参数,具体可以包括如下子步骤:

子步骤S21,计算所述游戏对象与所述玩家虚拟角色之间的空间距离,并将所述空间距离确定为所述游戏对象对应的所述距离参数。

子步骤S22,获取所述玩家虚拟角色的视野范围,并确定所述游戏对象与所述视野范围中线位置之间的夹角,将所述夹角确定为所述游戏对象对应的所述角度参数。

子步骤S23,确定所述游戏对象上一次离开/进入所述客户端的感兴趣区域距当前时刻的时间间隔,基于所述时间间隔确定赋予所述游戏对象的所述距离调整参数。

等级参数用于衡量游戏对象的等级。在具体实施中,绝大多数游戏对象对应的等级参数默认为0,个别特殊的游戏对象如Boss怪或者其他需要优先显示的游戏对象的等级参数可以设置大于0。

距离参数用于衡量游戏对象与玩家虚拟角色之间的空间距离。可以计算游戏对象与玩家虚拟角色之间的空间距离,并将该空间距离确定为该游戏对象对应的距离参数。

角度参数用于衡量游戏对象在玩家虚拟角色的视野方向。可以获取玩家虚拟角色的视野范围,并确定游戏对象与视野范围中线位置之间的夹角,将该夹角确定为游戏对象对应的角度参数。

距离调整参数用于在计算确定优先级参数的过程中对距离参数进行调整,进而调整对应的游戏对象在感兴趣区域中的推送优先级。

距离调整参数可以包括惩罚参数与奖励参数,是对频繁进出客户端感兴趣区域的游戏对象额外赋予的参数信息,用于降低客户端频繁创建/销毁游戏对象的性能开销。其中,惩罚参数用于对频繁进出客户端感兴趣区域的游戏对象进行惩罚,奖励参数用于对频繁进出客户端感兴趣区域的游戏对象进行奖励。可以确定游戏对象上一次离开/进入客户端的感兴趣区域距当前时刻的时间间隔,并基于时间间隔确定赋予该游戏对象的距离调整参数。

在本公开一种可选的实施例中,子步骤S23中基于所述时间间隔确定赋予所述游戏对象的所述距离调整参数,具体可以包括如下子步骤:

若所述游戏对象上一次离开所述客户端的感兴趣区域距当前时刻的时间间隔小于预设的第一时间间隔阈值,则将第一距离数值确定为赋予所述游戏对象对应的所述惩罚参数,以通过在所述距离参数的基础上叠加所述惩罚参数降低所述游戏对象在所述感兴趣区域中的推送优先级。

若所述游戏对象上一次离开所述客户端的感兴趣区域距当前时刻的时间间隔不小于所述预设的第一时间间隔阈值,则不在所述距离参数的基础上叠加所述惩罚参数。

若所述游戏对象上一次进入所述客户端的感兴趣区域距当前时刻的时间间隔小于所述预设的第一时间间隔阈值,则将第二距离数值确定为赋予所述游戏对象对应的所述奖励参数,以通过在所述距离参数的基础上减去所述奖励参数提高所述游戏对象在所述感兴趣区域中的推送优先级。

若所述游戏对象上一次进入所述客户端的感兴趣区域距当前时刻的时间间隔不小于所述预设的第一时间间隔阈值,则不在所述距离参数的基础上减去所述奖励参数。

在本公开实施例中,如果游戏对象上一次离开客户端的感兴趣区域距当前时刻的时间间隔小于预设的第一时间间隔阈值,则可以将第一距离数值确定为游戏对象对应的惩罚参数,通过在距离参数的基础上叠加惩罚参数降低该游戏对象在感兴趣区域中的推送优先级。如果游戏对象上一次离开客户端的感兴趣区域距当前时刻的时间间隔不小于预设的第一时间间隔阈值,则不对该游戏对象进行惩罚,可以不在该距离参数的基础上叠加惩罚参数。

如果游戏对象上一次进入客户端的感兴趣区域距当前时刻的时间间隔小于预设的第一时间间隔阈值,则可以将第二距离数值确定为游戏对象对应的奖励参数,通过在距离参数的基础上减去奖励参数提高该游戏对象在感兴趣区域中的推送优先级。如果游戏对象上一次进入客户端的感兴趣区域距当前时刻的时间间隔不小于预设的第一时间间隔阈值,则不对该游戏对象进行奖励,可以不在距离参数的基础上减去奖励参数。

在具体实施中,如果上次离开玩家客户端的感兴趣区域的时间与当前时间的间隔比较小,则需要尽量避免立即让该游戏对象再次进入玩家客户端的感兴趣区域,因此可以通过设置惩罚参数来降低它的推送优先级。如果上次进入玩家客户端的感兴趣区域的时间与当前时间的间隔比较小,则需要尽量避免立即让该游戏对象离开玩家客户端的感兴趣区域,因此可以通过设置奖励参数来提高它的推送优先级。这样做的目的是尽可能降低在感兴趣区域边界的游戏对象频繁进出感兴趣区域的频率。

步骤204,比较各所述游戏对象的等级参数,获得表示等级高低的第一比较结果,将所述第一比较结果中等级高的游戏对象优先确定为所述目标游戏对象。

在本公开实施例中,可以比较各游戏对象的等级参数,获得对应的第一比较结果,可以根据第一比较结果对各游戏对象进行排序,将等级高的游戏对象优先确定为目标游戏对象。

步骤205,对于属于同一等级的所述游戏对象,采用该游戏对象对应的所述距离参数、所述角度参数进行运算,得到该游戏对象对应的优先级参数,比较各所述游戏对象的优先级参数,获得表示优先级高低的第二比较结果,将所述第二比较结果中优先级高的游戏对象优先确定为所述目标游戏对象。

对于属于同一等级的游戏对象,设计了一种优先级比较方式,即可以采用该游戏对象对应的距离参数、角度参数进行运算,得到该游戏对象对应的优先级参数,比较各游戏对象的优先级参数,获得对应的第二比较结果,可以根据第二比较结果对各游戏对象进行排序,将优先级高的游戏对象优先确定为目标游戏对象。

游戏场景构建了对应的坐标系,游戏场景中的所有游戏对象都需要统一遵守该坐标系,它标注了游戏对象在游戏场景中的唯一方向位置信息。在该坐标系下,可以确定游戏对象对应距离参数和角度参数。

其中,确定出的目标游戏对象的数量不超过客户端性能参数所对应的游戏对象推送数量上限。

在本公开一种可选的实施例中,步骤204中采用该游戏对象对应的所述距离参数、所述角度参数进行运算,得到该游戏对象对应的优先级参数,具体可以包括如下子步骤:

采用该游戏对象对应的所述距离参数、所述角度参数和/或所述距离调整参数进行运算,得到该游戏对象对应的所述优先级参数。

在本公开实施例中,还可以引入距离调整参数确定游戏对象对应的优先级参数。

通过设置距离调整参数来确定游戏对象的优先级参数。这样做的目的是尽可能降低在感兴趣区域边界的游戏对象频繁进出感兴趣区域的频率,从而可以降低客户端的性能开销。

在本公开一种可选的实施例中,采用该游戏对象对应的所述距离参数、所述角度参数和/或所述距离调整参数进行运算,得到该游戏对象对应的所述优先级参数,具体可以包括如下子步骤:

若所述角度参数不大于预设的角度参数阈值且该游戏对象不具有对应的所述距离调整参数,则将所述距离参数确定为该游戏对象对应的所述优先级参数。

若所述角度参数不大于所述预设的角度参数阈值且该游戏对象具有对应的所述距离调整参数,则将所述距离参数叠加或减去所述距离调整参数后获得的数值确定为该游戏对象对应的所述优先级参数。

若所述角度参数大于所述预设的角度参数阈值且该游戏对象不具有对应的所述距离调整参数,则对所述角度参数对应的弧度值进行幂运算,以及对所述距离参数进行幂运算,将获得的两个幂运算结果相乘后与所述距离参数求和后得到的数值确定为该游戏对象对应的所述优先级参数。

若所述角度参数大于所述预设的角度参数阈值且该游戏对象具有对应的所述距离调整参数,则对所述角度参数对应的弧度值进行幂运算,以及对所述距离参数进行幂运算,将获得的两个幂运算结果相乘后与所述距离参数求和,将求和得到的和值叠加或减去所述距离调整参数后获得的数值确定为该游戏对象对应的所述优先级参数。

在本公开实施例中,如果角度参数不大于预设的角度参数阈值且该游戏对象不具有对应的距离调整参数,则可以将距离参数直接确定为该游戏对象对应的优先级参数;如果角度参数不大于预设的角度参数阈值且该游戏对象具有对应的距离调整参数,则可以将距离参数叠加或减去距离调整参数后获得的数值确定为游戏对象对应的优先级参数。

如果角度参数大于预设的角度参数阈值且该游戏对象不具有对应的距离调整参数,则可以对角度参数对应的弧度值进行幂运算,以及对距离参数进行幂运算,将获得的两个幂运算结果相乘后与距离参数求和后得到的数值确定为该游戏对象对应的优先级参数;如果角度参数大于预设的角度参数阈值且该游戏对象具有对应的距离调整参数,则可以对角度参数对应的弧度值进行幂运算,以及对距离参数进行幂运算,将获得的两个幂运算结果相乘后与距离参数求和,将求和得到的和值叠加或减去距离调整参数后获得的数值确定为游戏对象对应的优先级参数。

其中,优先级参数对应的数值越大,对应的优先级越低。

可以理解,优先级参数由三个因素决定:其一是距离参数;其二是角度参数;其三是距离调整参数。

在具体实施中,对于第一人称视角游戏,当游戏对象处于玩家虚拟角色的视野范围内,即该游戏对象对应的角度参数不大于45度时,可以直接将距离参数确定为优先级参数,或者将距离参数叠加或减去距离调整参数后获得的数值确定为优先级参数。

当游戏对象不处于玩家虚拟角色的视野范围内,即该游戏对象对应的角度参数大于45度时,则需要给距离参数和距离调整参数额外叠加上角度参数对应的弧度值的平方乘以距离参数的1.5次方,具体公式可以如下所示:

优先级参数=距离参数±距离调整参数+rad(角度参数)

这个公式可以使得处于玩家视野范围内以及距离玩家近的游戏对象具有更高的优先级。

可以理解,本公开实施例中游戏对象的推送优先级由等级参数和优先级参数共同决定。

参照图3所示,为本公开实施例的一种游戏场景示意图,该游戏可以为第一人称视角游戏,以玩家虚拟角色所在位置为圆心形成的圆形范围为玩家虚拟角色的感兴趣区域,图中游戏对象采用Ei(等级参数,角度参数,距离参数)表示。由图可知,E3不处于感兴趣区域范围内不予考虑,E1、E2、E4和E10处于感兴趣区域范围内且处于玩家虚拟角色的视野范围内,E5、E6、E7、E8和E9处于感兴趣区域范围内但不处于玩家虚拟角色的视野范围内。假设E10上一次离开客户端的感兴趣区域的时间距当前时刻尚未超过设定值,那么需要给E10设置惩罚参数,赋值第一距离数值,假设为100。

根据本公开的技术方案可以确定每个游戏对象的推送优先级Priority:

在视野范围内(两条虚线范围内)的游戏对象,即游戏对象对应的角度参数不大于45度,等级参数和优先级参数具体为:

Priority(E1)=(0,950+0)=(0,950);

Priority(E2)=(0,500+0)=(0,500);

Priority(E4)=(0,800+0)=(0,800);

Priority(E10)=(0,900+100)=(0,1000)。

不在视野范围内的游戏对象,即游戏对象对应的角度参数大于45度,等级参数和优先级参数具体为:

Priority(E5)=(0,200+0+1.31

Priority(E6)=(1,450+0+1.88

Priority(E7)=(0,750+0+2.36

Priority(E8)=(0,20+0+3.14

Priority(E9)=(0,200+0+2.36

对感兴趣区域范围内的游戏对象进行排序得到:

E6、E2、E4、E8、E1、E10、E5、E9、E7,假设上述游戏对象均属于怪物类型,对应的游戏对象推送数量上限为5,则最终E6、E2、E4、E8和E1会被推送到玩家客户端。

在本公开一种可选的实施例中,为了提高算法效率,并不会对感兴趣区域范围内的所有游戏对象都计算推送优先级,而是会提前用剪枝策略挑选出一定数量(数量大于游戏对象推送数量上限)与玩家虚拟角色空间距离最近的游戏对象,在挑选候选者时可以依次尝试获取以玩家虚拟角色为中心的r1、r2、r3、r4、r5为底面半径的圆柱范围内的游戏对象,直到数量超过阈值或者范围超过感兴趣区域范围,这种获取圆柱范围内特定类型的游戏对象的已有算法效率是非常高的,通过这种剪枝策略可以避免大量多余的计算。

步骤206,将所述目标游戏对象推送到所述客户端,以使所述客户端在所述感兴趣区域的游戏场景中显示所述目标游戏对象。

在本公开实施例中,在确定出目标游戏对象之后,即可以将目标游戏对象的数据推送到(游戏)客户端,客户端即可以根据获取到的数据在感兴趣区域的游戏场景中显示目标游戏对象。

综上,在本公开实施例中,基于客户端性能参数的不同可以对应有不同的游戏对象推送数量上限,可以在游戏对象分布密度较高的场景下避免客户端由于需推送大量的游戏对象导致超负荷,对于性能较好的客户端可以设置较高的上限值,对于性能一般的客户端可以设置较低的上限值,可以有效保障各客户端用户的游戏体验。当游戏对象分布密集时,本方案依然能够根据推送优先级优先将对玩家来说更为“重要”的一部分游戏对象推送给客户端。

此外,在本公开中,由于不同种类型所对应的游戏对象推送数量上限不同,不同种类型之间的游戏对象的推送互不影响。

在本公开中,对玩家客户端的终端设备设备进行性能分级,对不同性能等级分别设定玩家、怪物、NPC等类型的游戏对象推送数量上限,设备性能等级越高对应的游戏对象推送数量上限越大;

不同类型的游戏对象的推送互不影响,如玩家与怪物的推送互不影响;同类型的游戏对象根据推送优先级进行排序,优先推送高推送优先级的游戏对象直到推送数量达到对应的游戏对象推送数量上限;

推送优先级的定义为(等级参数,优先级参数),即先比较等级,等级越高推送优先级越高,同等级再比较优先级参数,优先级参数越小优先级越高,对应的推送优先级越高。优先级参数的具体数值与游戏对象跟玩家视野范围中线位置之间的夹角、与玩家的空间距离、上一次离开/进入客户端的感兴趣区域距当前时刻的时间间隔(具体可表现为上一次加入/退出推送列表距今的时间间隔)这三个变量有关。当游戏对象越靠近玩家视野范围中线位置、与玩家空间距离越近、上一次加入/退出推送列表到现在经历的时间越久则该自定义的优先级参数越小。

本方案带来的有益效果:在游戏对象分布密集的情况下,极大减少了客户端创建游戏对象的数量,大幅降低了开销;在玩家/游戏对象频繁移动时,有效降低了客户端游戏对象创建/销毁的频率;在大幅优化客户端性能的同时,高中低终端玩家的游戏体验都能得到有效保障。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开实施例所必须的。

参照图4,示出了本公开实施例提供的一种游戏对象推送装置的结构框图,具体可以包括如下模块:

第一确定模块401,用于确定客户端的性能参数;其中,通过所述客户端操控玩家虚拟角色;

第二确定模块402,用于确定所述玩家虚拟角色的感兴趣区域及所述感兴趣区域中包含的游戏对象;

第三确定模块403,用于确定各所述游戏对象的推送优先级判别参数,并基于所述推送优先级判别参数从所述游戏对象中确定需推送的目标游戏对象;所述目标游戏对象的数量不大于所述客户端的性能参数所对应的游戏对象推送数量上限;所述推送优先级判别参数为用于确定游戏对象的推送优先级所采用的参数信息;

推送模块404,用于将所述目标游戏对象推送到所述客户端,以使所述客户端在所述感兴趣区域的游戏场景中显示所述目标游戏对象。

在本公开实施例中,所述推送优先级判别参数包括等级参数、距离参数、角度参数中的一种或多种,所述第三确定模块,包括;

比较子模块,用于比较各所述游戏对象的等级参数,获得表示等级高低的第一比较结果,将所述第一比较结果中等级高的游戏对象优先确定为所述目标游戏对象;

运算及比较子模块,用于对于属于同一等级的所述游戏对象,采用该游戏对象对应的所述距离参数、所述角度参数进行运算,得到该游戏对象对应的优先级参数,比较各所述游戏对象的优先级参数,获得表示优先级高低的第二比较结果,将所述第二比较结果中优先级高的游戏对象优先确定为所述目标游戏对象。

在本公开实施例中,所述推送优先级判别参数还包括距离调整参数,所述运算及比较子模块,包括:

运算及比较单元,用于采用该游戏对象对应的所述距离参数、所述角度参数和/或所述距离调整参数进行运算,得到该游戏对象对应的所述优先级参数。

在本公开实施例中,所述第三确定模块,包括:

计算子模块,用于计算所述游戏对象与所述玩家虚拟角色之间的空间距离,并将所述空间距离确定为所述游戏对象对应的所述距离参数;

获取及确定子模块,用于获取所述玩家虚拟角色的视野范围,并确定所述游戏对象与所述视野范围中线位置之间的夹角,将所述夹角确定为所述游戏对象对应的所述角度参数;

第一确定子模块,用于确定所述游戏对象上一次离开/进入所述客户端的感兴趣区域距当前时刻的时间间隔,基于所述时间间隔确定赋予所述游戏对象的所述距离调整参数。

在本公开实施例中,所述距离调整参数包括惩罚参数与奖励参数,所述第一确定子模块,包括:

第一确定单元,用于若所述游戏对象上一次离开所述客户端的感兴趣区域距当前时刻的时间间隔小于预设的第一时间间隔阈值,则将第一距离数值确定为赋予所述游戏对象对应的所述惩罚参数,以通过在所述距离参数的基础上叠加所述惩罚参数降低所述游戏对象在所述感兴趣区域中的推送优先级;

第二确定单元,用于若所述游戏对象上一次离开所述客户端的感兴趣区域距当前时刻的时间间隔不小于所述预设的第一时间间隔阈值,则不在所述距离参数的基础上叠加所述惩罚参数;

第三确定单元,用于若所述游戏对象上一次进入所述客户端的感兴趣区域距当前时刻的时间间隔小于所述预设的第一时间间隔阈值,则将第二距离数值确定为赋予所述游戏对象对应的所述奖励参数,以通过在所述距离参数的基础上减去所述奖励参数提高所述游戏对象在所述感兴趣区域中的推送优先级;

第四确定单元,用于若所述游戏对象上一次进入所述客户端的感兴趣区域距当前时刻的时间间隔不小于所述预设的第一时间间隔阈值,则不在所述距离参数的基础上减去所述奖励参数。

在本公开实施例中,所述运算及比较单元,包括:

第一确定子单元,用于若所述角度参数不大于预设的角度参数阈值且该游戏对象不具有对应的所述距离调整参数,则将所述距离参数确定为该游戏对象对应的所述优先级参数;

第二确定子单元,用于若所述角度参数不大于所述预设的角度参数阈值且该游戏对象具有对应的所述距离调整参数,则将所述距离参数叠加或减去所述距离调整参数后获得的数值确定为该游戏对象对应的所述优先级参数;

第一运算及确定单元,用于若所述角度参数大于所述预设的角度参数阈值且该游戏对象不具有对应的所述距离调整参数,则对所述角度参数对应的弧度值进行幂运算,以及对所述距离参数进行幂运算,将获得的两个幂运算结果相乘后与所述距离参数求和后得到的数值确定为该游戏对象对应的所述优先级参数;

第二运算及确定单元,用于若所述角度参数大于所述预设的角度参数阈值且该游戏对象具有对应的所述距离调整参数,则对所述角度参数对应的弧度值进行幂运算,以及对所述距离参数进行幂运算,将获得的两个幂运算结果相乘后与所述距离参数求和,将求和得到的和值叠加或减去所述距离调整参数后获得的数值确定为该游戏对象对应的所述优先级参数。

在本公开实施例中,所述性能参数包括性能等级,所述第一确定模块,包括:

第二确定子模块,用于确定所述客户端的设备参数;

第三确定子模块,用于基于所述设备参数确定所述客户端所属的所述性能等级。

在本公开实施例中,所述设备参数包括设备型号、CPU型号和GPU型号中的一种或多种,所述第三确定子模块,包括:

第五确定单元,用于基于所述设备型号、所述CPU型号、所述GPU型号中的一种或多种,以及预先建立的设备参数与性能等级的映射关系,确定所述客户端所属的所述性能等级。

在本公开实施例中,各所述游戏对象分别属于对应的类型,所述装置还包括:

第四确定模块,用于基于预先建立的性能等级与游戏对象推送数量上限的映射关系,确定对于不同类型的所述游戏对象,所述客户端分别对应可推送的游戏对象推送数量上限。

综上,在本公开实施例中,基于客户端性能参数的不同可以对应有不同的游戏对象推送数量上限,可以在游戏对象分布密度较高的场景下避免客户端由于需推送大量的游戏对象导致超负荷,对于性能较好的客户端可以设置较高的上限值,对于性能一般的客户端可以设置较低的上限值,可以有效保障各客户端用户的游戏体验。当游戏对象分布密集时,本方案依然能够根据推送优先级优先将对玩家来说更为“重要”的一部分游戏对象推送给客户端。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本公开实施例还提供了一种电子设备,如图5所示,包括:处理器501、存储器502及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述一种游戏对象推送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本公开实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述一种游戏对象推送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本公开实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本公开实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本公开实施例是参照根据本公开实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本公开实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语5仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求

或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且

还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或0者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”

限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本公开所提供的一种游戏对象推送方法、一种游戏对象推送装置、一种电子设备和一种计算机可读存储介质,进行了详细介绍,本文中应用了5具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用

于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

技术分类

06120115940505