一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟场景的流量处理方法、装置、电子设备及存储介质与流程

2021-09-10 22:05:00 来源:中国专利 TAG:计算机 数据处理 电子设备 装置 流量


1.本技术涉及计算机数据处理技术,尤其涉及一种虚拟场景的流量处理方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.基于图形处理硬件的显示技术,扩展了感知环境以及获取信息的渠道,尤其是虚拟场景的显示技术,能够根据实际应用需求实现受控于用户或人工智能的虚拟对象之间的多样化的交互,具有各种典型的应用场景,例如在军事演习仿真、以及游戏等的虚拟场景中,能够模拟虚拟对象之间的真实的对战过程。
3.在网络游戏中,通常给观战玩家提供观战模式,以观看正在进行中的对局,在观战模式下,观战玩家可以获取战斗玩家在对局中的竞技画面、具体对局角色的等级、装备信息等。
4.相关技术中,将观战玩家传送进战斗地图中,观战玩家与战斗玩家处于同一个地图,从而将战斗玩家的战斗状态变化同步至观战玩家,使得观战玩家同步观看战斗中的对局。但是,采用这种方法,在短时间内出现较多观战玩家时,会导致流量突增,影响战斗进程的稳定性。


技术实现要素:

5.本技术实施例提供一种虚拟场景的流量处理方法、装置、电子设备及计算机可读存储介质,实现战斗进程与观战进程的分离,提高战斗进程以及观战进程的稳定性。
6.本技术实施例的技术方案是这样实现的:
7.本技术实施例提供一种虚拟场景的流量处理方法,包括:
8.通过与虚拟场景的战斗地图关联的至少一个观察对象,监听所述战斗地图中的流量数据;
9.其中,运行所述虚拟场景的进程包括战斗进程以及区别于所述战斗进程的观战进程,所述战斗进程运行有所述战斗地图;
10.将监听到的所述流量数据同步至所述观战进程中的至少一个监听对象;
11.通过所述观战进程中的至少一个监听对象,将所述流量数据同步至与所述至少一个监听对象关联的观战客户端,以在所述观战客户端中呈现所述流量数据对应的虚拟场景。
12.上述技术方案中,所述将监听到的所述流量数据同步至所述观战进程中的至少一个监听对象,包括:
13.基于所述至少一个观察对象分别监听到的流量数据进行合并处理,得到合并后的所述流量数据;
14.将合并后的所述流量数据同步至与所述至少一个观察对象关联的监听对象。
15.上述技术方案中,所述通过与虚拟场景的战斗地图关联的至少一个观察对象,监
听所述战斗地图中的流量数据之前,所述方法还包括:
16.获取所述至少一个观察对象的关联对象;
17.当所述关联对象表征所述战斗地图中的地图网格时,将所述至少一个观察对象分别与所述战斗地图中的地图网格关联;
18.当所述关联对象表征所述战斗地图中的虚拟角色时,将所述至少一个观察对象分别与所述战斗地图中的虚拟角色关联。
19.上述技术方案中,所述获取所述至少一个观察对象的关联对象,包括:
20.当所述战斗地图中虚拟角色运动的频率大于频率阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;
21.当所述战斗地图中虚拟角色运动的频率小于或者等于所述频率阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
22.上述技术方案中,所述获取所述至少一个观察对象的关联对象,包括:
23.基于所述战斗地图中虚拟角色的战斗情况调用速率预测模型,得到所述战斗地图中虚拟角色的数量增长速率;
24.当所述虚拟角色的数量增长速率小于或者等于速率阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;
25.当所述虚拟角色的数量增长速率大于所述速率阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
26.本技术实施例提供一种虚拟场景的流量处理装置,包括:
27.监听模块,用于通过与虚拟场景的战斗地图关联的至少一个观察对象,监听所述战斗地图中的流量数据;其中,运行所述虚拟场景的进程包括战斗进程以及区别于所述战斗进程的观战进程,所述战斗进程运行有所述战斗地图;
28.第一同步模块,用于将监听到的所述流量数据同步至所述观战进程中的至少一个监听对象;
29.第二同步模块,用于通过所述观战进程中的至少一个监听对象,将所述流量数据同步至与所述至少一个监听对象关联的观战客户端,以在所述观战客户端中呈现所述流量数据对应的虚拟场景。
30.上述技术方案中,所述第一同步模块还用于基于所述至少一个观察对象分别监听到的流量数据进行合并处理,得到合并后的所述流量数据;
31.将合并后的所述流量数据同步至与所述至少一个观察对象关联的监听对象。
32.上述技术方案中,所述装置还包括:
33.关联模块,用于获取所述至少一个观察对象的关联对象;
34.当所述关联对象表征所述战斗地图中的地图网格时,将所述至少一个观察对象分别与所述战斗地图中的地图网格关联;
35.当所述关联对象表征所述战斗地图中的虚拟角色时,将所述至少一个观察对象分别与所述战斗地图中的虚拟角色关联。
36.上述技术方案中,当所述至少一个观察对象分别与所述战斗地图中的地图网格关联时,所述监听模块还用于通过与所述战斗地图中的地图网格关联的观察对象,获取所述战斗地图中的地图网格的事件数据;
37.当所述地图网格的事件数据发生更新时,获取所述地图网格最新的事件数据对应的流量数据。
38.上述技术方案中,当所述至少一个观察对象分别与所述战斗地图中的地图网格关联时,所述第一同步模块还用于获取所述至少一个观察对象分别监听到的流量数据的时间戳以及对应的地图网格坐标;
39.将所述时间戳相同、且所述地图网格坐标相邻的流量数据进行合并处理,得到合并后的所述流量数据。
40.上述技术方案中,当所述至少一个观察对象分别与所述战斗地图中的虚拟角色关联时,所述监听模块还用于通过与所述战斗地图中的虚拟角色关联的观察对象,获取所述战斗地图中的虚拟角色的事件数据;
41.当所述虚拟角色的事件数据发生更新时,获取所述虚拟角色最新的事件数据对应的流量数据。
42.上述技术方案中,当所述至少一个观察对象分别与所述战斗地图中的虚拟角色关联时,所述第一同步模块还用于获取所述至少一个观察对象分别监听到的流量数据的时间戳以及对应的虚拟角色在战斗地图中的坐标;
43.将所述时间戳相同、且所述对应的虚拟角色在战斗地图中的坐标相邻的流量数据进行合并处理,得到合并后的所述流量数据。
44.上述技术方案中,所述第一同步模块还用于获取所述战斗地图中处于激活状态的虚拟角色的数量;
45.当所述处于激活状态的虚拟角色的数量小于或者等于数量阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;
46.当所述处于激活状态的虚拟角色的数量大于所述数量阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
47.上述技术方案中,所述第一同步模块还用于当所述虚拟角色在战斗地图中分布均匀时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;
48.当所述虚拟角色在战斗地图中分布不均匀时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
49.上述技术方案中,所述第一同步模块还用于当所述战斗地图中虚拟角色运动的频率大于频率阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;
50.当所述战斗地图中虚拟角色运动的频率小于或者等于所述频率阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
51.上述技术方案中,所述第一同步模块还用于基于所述战斗地图中虚拟角色的战斗情况调用速率预测模型,得到所述战斗地图中虚拟角色的数量增长速率;
52.当所述虚拟角色的数量增长速率小于或者等于速率阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;
53.当所述虚拟角色的数量增长速率大于所述速率阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
54.上述技术方案中,所述第一同步模块还用于将合并后的所述流量数据存储至数据
合并队列中;
55.与所述至少一个观察对象关联的监听对象从所述数据合并队列中获取合并后的所述流量数据。
56.上述技术方案中,所述装置还包括:
57.调控模块,用于获取所述观战进程在总进程的占用比值,其中,所述总进程包括所述观战进程以及所述战斗进程;
58.基于所述占用比值对应的观战策略进行进程调控。
59.上述技术方案中,所述调控模块还用于当所述占用比值对应的观战策略为过载保护策略时,基于所述过载保护策略停止所述观战进程以及所述战斗进程;
60.当所述占用比值对应的观战策略为停止观战策略时,基于所述停止观战策略停止所述观战进程;
61.当所述占用比值对应的观战策略为停止加入观战策略时,基于所述停止加入观战策略停止加入新的观战客户端;
62.当所述占用比值对应的观战策略为缩小视野策略时,基于所述缩小视野策略缩减所述流量数据。
63.本技术实施例提供一种用于流量处理的电子设备,所述电子设备包括:
64.存储器,用于存储可执行指令;
65.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的虚拟场景的流量处理方法。
66.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的虚拟场景的流量处理方法。
67.本技术实施例具有以下有益效果:
68.通过与战斗地图关联的观察对象监听战斗地图的流量数据,并通过监听对象中转监听到的流量数据,从而将战斗进程与观战进程分离,提高战斗进程以及观战进程的稳定性,同时提高观战进程承载观战客户端的性能。
附图说明
69.图1是相关技术提供的将观战玩家传送至战斗地图的观战示意图;
70.图2是相关技术提供的将观战玩家传送至独立的观战地图的观战示意图;
71.图3是本技术实施例提供的虚拟场景的流量处理方法的应用模式示意图;
72.图4是本技术实施例提供的用于流量处理的电子设备的结构示意图;
73.图5a

图5b是本技术实施例提供的虚拟对象的移动处理方法的流程示意图;
74.图6是本技术实施例提供的与地图网格关联的示意图;
75.图7是本技术实施例提供的与虚拟角色关联的示意图;
76.图8

图10是本技术实施例提供的流量合并的示意图;
77.图11是本技术实施例提供的框架示意图;
78.图12是本技术实施例提供的流量冗余的示意图;
79.图13是本技术实施例提供的不同网格中的观战玩家流量同步的示意图;
80.图14是本技术实施例提供的消息合并与共享的示意图;
81.图15是本技术实施例提供的观战策略的示意图。
具体实施方式
82.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
83.在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
84.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
85.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
86.1)网络游戏(online game):也称在线游戏,指多名游戏玩家透过计算机、互联网进行交互娱乐的电子游戏。
87.2)大型多人在线角色扮演游戏(mmorpg,multiplayer online role

playing game):一种按游戏人数分类出来的网络游戏。在mmorpg中,玩家都可扮演一个或多个虚拟角色,并控制该虚拟角色在游戏中虚拟世界的活动与行为。
88.3)虚拟场景:利用设备输出的区别于现实世界的场景,通过裸眼或设备的辅助能够形成对虚拟场景的视觉感知,例如通过显示屏幕输出的二维影像,通过立体投影、虚拟现实和增强现实技术等立体显示技术来输出的三维影像;此外,还可以通过各种可能的硬件形成听觉感知、触觉感知、嗅觉感知和运动感知等各种模拟现实世界的感知。
89.4)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
90.5)客户端:终端中运行的用于提供各种服务的应用程序,例如游戏客户端(game client)等、军事演习仿真客户端。其中,游戏客户端指与游戏服务器相对应,并为游戏玩家提供本地服务的程序,需要与游戏服务端互相配合运行,游戏服务端(game server)指为游戏客户端提供数据计算、校验、存储和转发功能的服务软件程序。
91.6)虚拟角色:虚拟场景中可以进行交互的各种形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等。该虚拟角色可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟角色,每个虚拟角色在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
92.例如,该虚拟角色可以是通过客户端上的操作进行控制的用户角色,也可以是通过训练设置在虚拟场景对战中的人工智能(ai,artificial intelligence),还可以是设置在虚拟场景互动中的非用户角色(npc,non

player character)。例如,该虚拟角色可以是在虚拟场景中进行对抗式交互的虚拟人物。例如,该虚拟场景中参与互动的虚拟角色的数量可以是预先设置的,也可以是根据加入互动的客户端的数量动态确定的。
93.以射击类游戏为例,用户可以控制虚拟角色在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在陆地上中跑动、跳动、爬行、弯腰前行等,也可以控制虚拟角色在海洋中游泳、漂浮或者下潜等,当然,用户也可以控制虚拟角色乘坐虚拟载具在该虚拟场景中进行移动,例如,该虚拟载具可以是虚拟汽车、虚拟飞行器、虚拟游艇等,在此仅以上述场景进行举例说明,本技术实施例对此不作具体限定。用户也可以控制虚拟角色通过虚拟道具与其他虚拟角色进行对抗式的交互,例如,该虚拟道具可以是手雷、集束雷、粘性手雷等投掷类虚拟道具,也可以是机枪、手枪、步枪等射击类虚拟道具,本技术对虚拟道具的类型不作具体限定。
94.7)进程:一个具有一定独立功能的程序(关于某个数据集合的一次运行活动)。它是操作系统动态执行的基本单元,在操作系统中,进程既是基本的分配单元,也是基本的执行单元。其中,进程包括观战进程和战斗进程,观战进程和战斗进程都运行于地图之中,观战进程表示处理观战玩家的各种视角切换等代码,战斗进程表示处理战斗玩家对战、血量扣除等大量战斗状态的代码。
95.8)观察模式:一种行为模式,当一个对象的状态发生变化时,能够自动通知其他关联对象,以自动刷新对象状态。观察模式为关联对象提供一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。
96.其中,观察模式包括观察对象以及监听对象,其中,观察对象是战斗进程中创建的实例对象,用于管理战斗逻辑所需要的各种内存资源,并监听战斗进程中战斗地图的状态事件(流量数据);监听对象是观战进程中创建的实例对象,用于管理观战逻辑所需要的各种内存资源,并接收观察对象发送过来的状态事件,并转发状态事件至观战客户端。
97.9)区块链:包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
98.在网络游戏中,通常给观战玩家提供观战模式,以观看正在进行中的对局,在观战模式下,观战玩家可以获取战斗玩家在对局中的竞技画面、具体对局角色的等级、装备信息等,观战玩家从旁观看战争、战斗、竞赛,观战玩家自己不参与战斗。相关技术中,实现观战模式有以下两种方案:
99.方案一、如图1所示,将观战玩家101(对应的实例对象)传送进战斗地图实例102中,观战玩家与战斗玩家103(对应的实例对象)处于一个地图,战斗玩家的状态变化将同步至观战玩家,由于战斗地图中的有战斗玩家的状态流量数据(包括移动包和技能包),观战玩家可以直接接收状态流量数据,然后基于状态流量数据呈现游戏画面。这种方案每张战斗地图大概支持两百人观战,但这种方案会出现很多观战玩家聚集在一起。当观战玩家大量聚集,从服务器的角度来说,移动包和技能包的广播量随着观战人数上升而呈二次方增长,对中央处理器(cpu,central processing unit)和网络都会造成压力,需要配合应用某些优化策略(例如有损服务)来减小压力;从客户端的角度来说,人数太多导致渲染复杂,为了流畅性需要降低画面质量(渲染时战斗玩家可以屏蔽观战玩家的流量数据,从而只基于战斗玩家的流量数据进行渲染)。因为观战玩家而影响了战斗玩家的比赛,有点顾此失彼。
100.方案二、如图2所示,采用地图纬度分离,将观战玩家201和战斗玩家202分离,为观战玩家专门提供一个观战地图,而战斗玩家在战斗地图中,然后将战斗玩家的状态变化同步至观战玩家,为了减少观战延迟,将观战地图和战斗地图创建在同一个进程(一个进程包
括一个战斗地图和多个观战地图)中。这种方案缩减了同一张地图中的人数,减少同步流量,避免观战玩家影响战斗地图中的战斗逻辑,其中,由于观战人数远大于战斗人数,需要大量观战地图容纳观战人数(一个观战地图可以容纳多个观战玩家)。但是,同一个进程能容纳的地图有限,对于决赛观战来说,观战人数很多,进程无法创建足够的地图让玩家观战,严重影响体验。
101.综上,方案一的实现简单,但是观战玩家会影响战斗地图中的战斗逻辑,容易产生错误,其次同一张战斗地图人数增多,增加了观战玩家的视野同步流量;方案二能够减少了流量消耗,不会对战斗地图中的战斗逻辑造成影响,但是观战人数受限于进程所能创建的地图数量,影响观战人数上限。
102.为了解决上述问题,本技术实施例提供一种虚拟场景的流量处理方法、装置、电子设备和计算机可读存储介质,能够实现战斗进程与观战进程的分离,提高战斗进程以及观战进程的稳定性。下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备,车载终端)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
103.为便于更容易理解本技术实施例提供的虚拟场景的流量处理方法,首先说明本技术实施例提供的虚拟场景的流量处理方法的示例性实施场景,虚拟场景可以完全基于终端输出,或者基于终端和服务器的协同来输出。
104.在一些实施例中,虚拟场景可以是军事演习仿真中所呈现的画面,用户可以在虚拟场景中,通过属于不同团队的虚拟对象来模拟战局、战略或战术,对于军事作战的指挥有着很大的指导作用。
105.在一些实施例中,虚拟场景可以是供游戏角色交互的环境,例如可以是供游戏角色在虚拟场景中进行对战,通过控制虚拟对象的行动可以在虚拟场景中进行双方互动,从而使用户能够在游戏的过程中舒缓生活压力。
106.在一个实施场景中,参见图3,图3是本技术实施例提供的虚拟场景的流量处理方法的应用模式示意图,应用于终端(示例性示出战斗终端400

1以及观战终端400

2)和服务器200,适用于依赖服务器200的计算能力完成虚拟场景计算、并在终端输出虚拟场景的应用模式。
107.以形成虚拟场景100的视觉感知为例,服务器200进行虚拟场景相关显示数据的计算并发送到终端,终端依赖于图形计算硬件完成计算显示数据的加载、解析和渲染,依赖于图形输出硬件输出虚拟场景以形成视觉感知,例如可以在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;对于虚拟场景的形式的感知而言,可以理解,可以借助于终端的相应硬件输出,例如使用麦克风输出形成听觉感知,使用振动器输出形成触觉感知等等。
108.作为示例,战斗终端400

1运行战斗客户端410

1(例如网络版的游戏应用,车载终端的游戏应用),通过连接游戏服务器(即服务器200)与其他用户进行游戏互动,战斗终端400

1输出战斗客户端410

1的虚拟场景100,其中包括目标虚拟对象110和虚拟对象120,目标虚拟对象110可以是战斗玩家控制的游戏角色,即目标虚拟对象110受控于真实玩家,将
响应于真实玩家针对按钮(包括摇杆按钮、攻击按钮、防御按钮等)的操作而在虚拟场景中操作,例如当真实用户向左移动摇杆时,目标虚拟对象将在虚拟场景中向左部移动,还可以保持原地静止、跳跃以及使用各种功能(如技能和道具);虚拟对象120可以是在虚拟场景中的障碍物,例如,目标虚拟对象110可以通过移动摇杆按钮130绕过虚拟对象120进行移动,从而避免穿过障碍物,影响虚拟场景中人机交互的可靠性。
109.其中,观战终端400

2运行观战客户端410

2(例如网络版的游戏应用,车载终端的游戏应用),通过监听对象选择战斗客户端410

1的视角,并通过连接游戏服务器(即服务器200)同步战斗客户端410

1的虚拟场景,即服务器200通过与虚拟场景100的战斗地图关联的观察对象,监听战斗地图中的流量数据(例如目标虚拟对象110绕过虚拟对象120进行移动等状态变化),将监听到的流量数据同步至观战进程中的监听对象,通过监听对象将流量数据同步至观战客户端410

2,观战客户端410

2基于流量数据呈现对应的虚拟场景100,例如目标虚拟对象110绕过虚拟对象120进行移动。
110.在一些实施例中,电子设备可以通过运行计算机程序来实现本技术实施例提供的虚拟场景的流量处理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,例如游戏app;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的游戏小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
111.本技术实施例可以借助于云技术(cloud technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
112.云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
113.作为示例,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、以及智能手表等,但并不局限于此。终端以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
114.在一些实施例中,多个服务器可组成为一区块链,而服务器200为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本技术实施例提供的虚拟场景的流量处理方法所相关的数据(例如流量处理的逻辑、监听的流量数据等)可保存于区块链上。
115.参见图4,图4是本技术实施例提供的用于流量处理的电子设备的结构示意图,以电子设备为服务器为例进行说明,图4所示的电子设备包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。电子设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中
将各种总线都标为总线系统440。
116.处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
117.用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
118.存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450例如包括在物理位置上远离处理器410的一个或多个存储设备。
119.存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器450旨在包括任意适合类型的存储器。
120.在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
121.操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
122.网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
123.呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
124.输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
125.在一些实施例中,本技术实施例提供的虚拟场景的流量处理装置可以采用软件方式实现,图4示出了存储在存储器450中的虚拟场景的流量处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:监听模块4551、第一同步模块4552、第二同步模块4553、关联模块4554以及调控模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
126.如前,本技术实施例提供的虚拟场景的流量处理方法可以由各种类型的电子设备实施,例如服务器。参见图5a,图5a是本技术实施例提供的虚拟对象的移动处理方法的流程示意图,结合图5a示出的步骤进行说明。
127.在下面步骤中,虚拟角色可以在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在地面上中跑动、跳动、爬行、弯腰前行,还可以与其他虚拟角色进行对抗式交互等。其中,虚拟角色可以是战斗玩家通过客户端上的操作进行控制的用户角色,例如
在虚拟场景中进行对抗式交互的虚拟人物,还可以是设置在虚拟场景互动中的非用户角色等。
128.其中,战斗地图是在战斗进程中创建的实例,用于呈现虚拟场景,例如战斗地图中有场景、建筑、虚拟角色等物体。
129.其中,运行虚拟场景的进程包括战斗进程以及区别于战斗进程的观战进程,战斗进程与观战进程相互独立,战斗进程运行有战斗地图,观战进程创建有监听对象。其中,观战进程表示处理观战玩家的各种视角切换等代码,战斗进程表示处理战斗玩家对战、血量扣除等大量战斗状态的代码。监听对象是观战进程中创建的实例对象,用于管理观战逻辑所需要的各种内存资源,并接收观察对象发送过来的状态事件,并转发状态事件至观战客户端。
130.在步骤101中,通过与虚拟场景的战斗地图关联的至少一个观察对象,监听战斗地图中的流量数据。
131.其中,流量数据即流量包,表征战斗地图中发生的状态事件,流量包包括移动包、技能包以及视野包,例如移动包包括虚拟角色在该虚拟场景的运动事件,即从天空中自由下落、滑翔或者打开降落伞进行下落、在地面上中跑动、跳动、爬行、弯腰前行等,技能包包括虚拟角色释放的技能、以及技能的状态等,视野包包括真实玩家控制虚拟角色所在视野中的虚拟场景,例如虚拟角色能看到的山水、障碍物、对手等。
132.在一些实施例中,通过与虚拟场景的战斗地图关联的至少一个观察对象,监听战斗地图中的流量数据之前,获取至少一个观察对象的关联对象;当关联对象表征战斗地图中的地图网格时,将至少一个观察对象分别与战斗地图中的地图网格关联;当关联对象表征战斗地图中的虚拟角色时,将至少一个观察对象分别与战斗地图中的虚拟角色关联。
133.例如,在观察对象监听流量数据前,判断观察对象的关联对象,该关联对象可能是战斗地图中的虚拟角色,也可能是战斗地图中的地图网格(即将战斗地图划分为多个地图网格),当关联对象为战斗地图中的地图网格时,将至少一个观察对象分别与战斗地图中的地图网格关联,后续通过与战斗地图的地图网格关联的至少一个观察对象,监听战斗地图的地图网格所产生的流量数据;当关联对象表征战斗地图中的虚拟角色时,将至少一个观察对象分别与战斗地图中的虚拟角色关联,后续通过与战斗地图的虚拟角色关联的至少一个观察对象,监听战斗地图的虚拟角色所产生的流量数据。
134.在一些实施例中,当至少一个观察对象分别与战斗地图中的地图网格关联时,通过与虚拟场景的战斗地图关联的至少一个观察对象,监听战斗地图中的流量数据,包括:通过与战斗地图中的地图网格关联的观察对象,获取战斗地图中的地图网格的事件数据;当地图网格的事件数据发生更新时,获取地图网格最新的事件数据对应的流量数据。
135.例如,在观察对象与战斗地图中的地图网格关联前,将战斗地图划分为多个地图网格,其中划分粒度与观战进程负相关,当观战进程越空闲时,战斗地图的划分粒度就越细,以充分利用进程,提高观战的效果,能够看到更多的战斗细节。其中,战斗地图中的每个地图网格可以分别与观察对象关联,还可以是战斗地图中的部分地图网格与观察对象关联,当某部分地图网格在一段时间内并未产生流量数据时,则说明该部分地图网格处于空闲状态,即可以取消该部分地图网格与观察对象的关联。
136.如图6所示,观察对象1与战斗地图中的地图网格601关联、观察对象2与战斗地图
中的地图网格602关联、观察对象3与战斗地图中的地图网格603关联,观察对象实时获取战斗地图中的地图网格的事件数据(实时发生的事件,例如虚拟角色拾取该地图网格中的虚拟道具等事件),当地图网格601的事件数据发生更新时,则观察对象1获取地图网格601最新的事件数据对应的流量数据。
137.在一些实施例中,当至少一个观察对象分别与战斗地图中的虚拟角色关联时,通过与虚拟场景的战斗地图关联的至少一个观察对象,监听战斗地图中的流量数据,包括:通过与战斗地图中的虚拟角色关联的观察对象,获取战斗地图中的虚拟角色的事件数据;当虚拟角色的事件数据发生更新时,获取虚拟角色最新的事件数据对应的流量数据。
138.例如,在虚拟角色与战斗地图中的地图网格关联前,将战斗地图中的每个虚拟角色分别与观察对象关联,还可以是战斗地图中的部分虚拟角色与观察对象关联,当某部分虚拟角色在一段时间内并未产生流量数据时,则说明该部分虚拟角色处于空闲状态或者击杀状态,即可以取消该部分虚拟角色与观察对象的关联。
139.如图7所示,观察对象1与战斗地图中的虚拟角色701关联、观察对象2与战斗地图中的虚拟角色702关联、观察对象3与战斗地图中的虚拟角色703关联,观察对象实时获取战斗地图中的虚拟角色的事件数据(实时发生的事件,例如该虚拟角色拾取虚拟道具、从地面飞跃至跳台等事件),当虚拟角色701的事件数据发生更新时,则观察对象1获取虚拟角色701最新的事件数据对应的流量数据。
140.在一些实施例中,获取至少一个观察对象的关联对象,包括:获取战斗地图中处于激活状态的虚拟角色的数量;当处于激活状态的虚拟角色的数量小于或者等于数量阈值时,将战斗地图中的虚拟角色作为至少一个观察对象的关联对象;当处于激活状态的虚拟角色的数量大于数量阈值时,将战斗地图中的地图网格作为至少一个观察对象的关联对象。
141.例如,在观察对象监听流量数据前,可以基于战斗地图中处于激活状态的虚拟角色的数量判断观察对象的关联对象,当处于激活状态的虚拟角色的数量小于或者等于数量阈值时,说明战斗地图中处于激活状态的虚拟角色比较少,观战玩家需要观看的虚拟角色的画面也比较少,不会因为虚拟角色影响战斗进程,因此可以将战斗地图中的虚拟角色作为观察对象的关联对象;当处于激活状态的虚拟角色的数量大于数量阈值时,说明战斗地图中处于激活状态的虚拟角色比较多,观战玩家需要观看的虚拟角色的画面也比较多,可能会影响到战斗进程,因此可以将战斗地图中的地图网格作为观察对象的关联对象。
142.在一些实施例中,获取至少一个观察对象的关联对象,包括:当虚拟角色在战斗地图中分布均匀时,将战斗地图中的虚拟角色作为至少一个观察对象的关联对象;当虚拟角色在战斗地图中分布不均匀时,将战斗地图中的地图网格作为至少一个观察对象的关联对象。
143.例如,在观察对象监听流量数据前,可以基于虚拟角色在战斗地图中分布判断观察对象的关联对象,当虚拟角色在战斗地图中分布均匀时,说明虚拟角色存在战斗地图的各个位置,为了能够准确跟踪虚拟角色的视角,可以将战斗地图中的虚拟角色作为观察对象的关联对象;当虚拟角色在战斗地图中分布不均匀时,说明虚拟角色集中在战斗地图的某些位置,为了解决战斗人数过多导致流量冗余的问题,可以将战斗地图中的地图网格作为观察对象的关联对象。
144.在一些实施例中,获取至少一个观察对象的关联对象,包括:当战斗地图中虚拟角色运动的频率大于频率阈值时,将战斗地图中的虚拟角色作为至少一个观察对象的关联对象;当战斗地图中虚拟角色运动的频率小于或者等于频率阈值时,将战斗地图中的地图网格作为至少一个观察对象的关联对象。
145.例如,在观察对象监听流量数据前,可以基于战斗地图中虚拟角色运动的频率判断观察对象的关联对象,当战斗地图中虚拟角色运动的频率大于频率阈值时,说明虚拟角色的运动轨迹比较广泛,在战斗地图的各个位置都可能存在虚拟角色,为了能够准确、高效地跟踪虚拟角色的视角,可以将战斗地图中的虚拟角色作为观察对象的关联对象;当战斗地图中虚拟角色运动的频率小于或者等于频率阈值时,说明虚拟角色的运动轨迹比较集中,为了解决战斗人数过多导致流量冗余的问题,可以将战斗地图中的地图网格作为观察对象的关联对象。
146.在一些实施例中,获取至少一个观察对象的关联对象,包括:基于战斗地图中虚拟角色的战斗情况调用速率预测模型,得到战斗地图中虚拟角色的数量增长速率;当虚拟角色的数量增长速率小于或者等于速率阈值时,将战斗地图中的虚拟角色作为至少一个观察对象的关联对象;当虚拟角色的数量增长速率大于速率阈值时,将战斗地图中的地图网格作为至少一个观察对象的关联对象。
147.例如,通过速率预测模型对战斗地图中虚拟角色的战斗情况(例如每个虚拟角色的血量、技能状态、持有虚拟道具的级别等)进行增长速率预测处理,得到战斗地图中虚拟角色的数量增长速率,当虚拟角色的数量增长速率小于或者等于速率阈值时,说明未来一段时间内,战斗地图中的虚拟角色比较少,可以将战斗地图中的虚拟角色作为观察对象的关联对象;当虚拟角色的数量增长速率大于速率阈值时,说明未来一段时间内,战斗地图中的虚拟角色比较多,避免无法及时反馈虚拟角色在段时间内的激增,可以预先将战斗地图中的地图网格作为观察对象的关联对象,以使观察对象与地图网格关联。其中,速率预测模型可以为经过训练的神经网络模型,神经网络模型可以是基于战斗情况样本以及标记的数量增长速率训练得到的。
148.在步骤102中,将监听到的流量数据同步至观战进程中的至少一个监听对象。
149.例如,当观察对象监听到流量数据后,观察对象将监听到的流量数据同步至观战进程中的至少一个监听对象,从而避免观战进程与战斗进程有交叉部分,观战逻辑影响到战斗逻辑。
150.参见图5b,图5b是本技术实施例提供的虚拟场景的流量处理方法的流程示意图,图5b示出图5a的步骤102可以通过步骤1021

步骤1022实现:在步骤1021中,基于至少一个观察对象分别监听到的流量数据进行合并处理,得到合并后的流量数据;在步骤1022中,将合并后的流量数据同步至与至少一个观察对象关联的监听对象。
151.例如,至少一个观察对象分别监听到的流量数据之间可能存在重复的部分,该重复的部分造成流量冗余,从而影响进程的进度。为了解决流量冗余的问题,对至少一个观察对象分别监听到的流量数据进行合并处理,以删除重复的流量数据,并将合并后的流量数据同步至与至少一个观察对象关联的监听对象,进而基于缩减的流量数据以加快流量数据的传输过程。
152.在一些实施例中,当至少一个观察对象分别与战斗地图中的地图网格关联时,基
于至少一个观察对象分别监听到的流量数据进行合并处理,得到合并后的流量数据,包括:获取至少一个观察对象分别监听到的流量数据的时间戳以及对应的地图网格坐标;将时间戳相同、且地图网格坐标相邻的流量数据进行合并处理,得到合并后的流量数据。
153.例如,当观察对象与战斗地图中的地图网格关联时,由于相邻的地图网格产生的流量数据(包括视野包)存在部分重叠,因此获取监听到的流量数据的时间戳以及对应的地图网格坐标,将时间戳相同、且地图网格坐标相邻的流量数据进行合并处理,以删除重复的流量数据,并将合并后的流量数据同步至与至少一个观察对象关联的监听对象,以实现流量包的合并和共享,大大降低了流量同步的开销。
154.如图8所示,观察对象1与战斗地图中的地图网格601关联、观察对象2与战斗地图中的地图网格602关联、观察对象3与战斗地图中的地图网格603关联,则在同一时刻监听到的地图网格601、地图网格602、地图网格603产生的流量数据存在部分重叠,将监听到的地图网格601、地图网格602、地图网格603的流量数据进行合并,以删除重复的流量数据,并将合并后的流量数据同步至与至少一个观察对象关联的监听对象,以实现流量包的合并和共享,大大降低了流量同步的开销。
155.在一些实施例中,当至少一个观察对象分别与战斗地图中的虚拟角色关联时,基于至少一个观察对象分别监听到的流量数据进行合并处理,得到合并后的流量数据,包括:获取至少一个观察对象分别监听到的流量数据的时间戳以及对应的虚拟角色在战斗地图中的坐标;将时间戳相同、且对应的虚拟角色在战斗地图中的坐标相邻的流量数据进行合并处理,得到合并后的流量数据。
156.例如,当观察对象与战斗地图中的虚拟角色关联时,由于相邻的虚拟角色产生的流量数据(包括视野包)存在部分重叠,因此获取监听到的流量数据的时间戳以及对应的虚拟角色在战斗地图中的坐标,将时间戳相同、且对应的虚拟角色在战斗地图中的坐标相邻的流量数据进行合并处理,以删除重复的流量数据,并将合并后的流量数据同步至与至少一个观察对象关联的监听对象,以实现流量包的合并和共享,大大降低了流量同步的开销。
157.如图9所示,观察对象1与战斗地图中的虚拟角色701关联、观察对象2与战斗地图中的虚拟角色702关联、观察对象3与战斗地图中的虚拟角色703关联,则在同一时刻监听到的虚拟角色701、虚拟角色702、虚拟角色703在战斗地图中的坐标相邻,则监听到虚拟角色701、虚拟角色702、虚拟角色703产生的流量数据存在部分重叠,将监听到的虚拟角色701、虚拟角色702、虚拟角色703的流量数据进行合并,以删除重复的流量数据,并将合并后的流量数据同步至与至少一个观察对象关联的监听对象,以实现流量包的合并和共享,大大降低了流量同步的开销。
158.在一些实施例中,将合并后的流量数据同步至与至少一个观察对象关联的监听对象,包括:将合并后的流量数据存储至数据合并队列中;与至少一个观察对象关联的监听对象从数据合并队列中获取合并后的流量数据。
159.如图10所示,基于至少一个观察对象分别监听到的流量数据进行合并处理,得到合并后的流量数据后,将合并后的流量数据存储至数据合并队列中,与至少一个观察对象关联的监听对象通过队列先进先出的特性从数据合并队列中获取合并后的流量数据,从而基于队列的特征及时获取实时的流量数据。
160.在步骤103中,通过观战进程中的至少一个监听对象,将流量数据同步至与至少一
个监听对象关联的观战客户端,以在观战客户端中呈现流量数据对应的虚拟场景。
161.例如,当观察对象监听到流量数据后,观察对象将监听到的流量数据同步至观战进程中的监听对象,并通过监听对象将流量数据同步至与监听对象关联的观战客户端,从而避免观战进程与战斗进程有交叉部分,观战逻辑影响到战斗逻辑,提高战斗进程以及观战进程的稳定性,基于关联的至少一个监听对象中转流量数据,以提高观战进程承载观战客户端的性能。
162.在一些实施例中,获取观战进程在总进程的占用比值,其中,总进程包括观战进程以及战斗进程;基于占用比值对应的观战策略进行进程调控。
163.例如,观战进程在总进程的占用比值为观战进程在中央处理器(包括观战进程、战斗进程等进程)占用率,当观战进程在总进程的占用比值比较高时,说明观战进程占用中央处理器比较多,中央处理器主要处理观战进程,因此对应不同的中央处理器处理压力选择不同的策略,以保证服务器的稳定。
164.在一些实施例中,当占用比值对应的观战策略为过载保护策略时,基于过载保护策略停止观战进程以及战斗进程;当占用比值对应的观战策略为停止观战策略时,基于停止观战策略停止观战进程;当占用比值对应的观战策略为停止加入观战策略时,基于停止加入观战策略停止加入新的观战客户端;当占用比值对应的观战策略为缩小视野策略时,基于缩小视野策略缩减流量数据。
165.如图15所示,当占用比值达到100%时,采用过载保护策略,以停止观战进程以及战斗进程,对中央处理器所处理的进程进行调整;当占用比值达到90%时,采用停止观战策略,以停止观战进程;当占用比值达到80%时,采用停止加入观战策略,以停止加入新的观战客户端;当占用比值达到70%时,采用缩小视野策略,以缩减流量数据的大小。
166.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
167.在网络游戏中,通常给观战玩家提供观战模式,以观看正在进行中的对局,在观战模式下,观战玩家可以获取战斗玩家在对局中的竞技画面、具体对局角色的等级、装备信息等,观战玩家从旁观看战争、战斗、竞赛,观战玩家自己不参与战斗。
168.相关技术的实现观战模式中,观战玩家会影响战斗地图中的战斗逻辑,容易产生错误,其次同一张战斗地图人数增多,增加了观战玩家的视野同步流量;观战人数受限于进程所能创建的地图数量,影响观战人数上限。
169.为了解决上述问题,本技术实施例提出一种虚拟场景的流量处理方法,通过观察对象代理方案解决了观战逻辑对战斗逻辑的影响问题(即观战进程对战斗进程的影响),解决观战人数受限于进程与地图的承载问题,引入消息合并方案,缓解了大量观战人数造成的流量同步问题。
170.下面具体说明本技术实施例提出的虚拟场景的流量处理方法:
171.如图11所示,观察对象可以关联到战斗地图中的各种实体上(比如战斗中的虚拟角色),监听实体上产生的事件(流量数据),并转发给注册的监听对象(观战进程中创建的实例对象,用于管理观战逻辑所需要的各种内存资源)。监听对象(agent)接收来自观察对象的事件,并将事件发送给客户端(即观战玩家),客户端可以通过切换关联的监听对象以切换观战视角。一个观察对象可以注册多个监听对象,是一对多的关系,监听对象被创建在另外的观战进程(gamesvr)上,gamesvr的数量可以根据观战人数进行调整,以承载足够多
的监听对象,避免影响战斗进程(battlesvr)的cpu和网络性能,从而将战斗逻辑和观战逻辑分离,保证战斗玩家不会受到观战人数的影响,保证战斗体验。
172.如果每个战斗玩家都关联1个观察对象,那么战斗人数增多,观察对象也会随之增多,最终会导致观察对象同步至监听对象的网络流量剧增,如图12所示,3个战斗玩家中,有2个战斗玩家位置非常接近,那么观战玩家在观战这两名位置接近的战斗玩家所控制的虚拟角色时,观战玩家所看到的视野基本是相同的,即视野包(pkg)(流量包包括视野包、移动包、技能包等)是一样的,如果依然每个战斗玩家挂载1个观察对象,那么会导致视野同步流量的冗余。
173.为了解决视野同步流量的冗余的问题,本技术实施例通过将冗余的流量合并,以优化网络性能。下面具体说明流量合并的方案:
174.首先,本技术实施例将战斗地图划分为3*3的正方形网格,即战斗地图划分为9个网格,本技术实施例并不局限于3*3的正方形网格,每个观察对象不是挂载于战斗玩家上,而是挂载于战斗玩家所处的网格,其中,观察对象挂载于游戏角色的方案适用于战斗人数比较少的场景,观察对象挂载于网格的方案是为了解决战斗人数过多导致流量冗余的问题。
175.因此,如果大量的战斗玩家集中在一个网格中,只需要1个观察对象挂载于大量的战斗玩家集中的一个网格,观战玩家即可在观战大量的战斗玩家的对战画面。如图13所示,战斗玩家为actor_list,假设这些战斗玩家集中在两个网格中,每个观察对象挂载于战斗玩家所处的网格,那么同一时刻,同步的视野包只有两个,分别为pkg1和pkg2,根据战斗玩家所处的网格,分别同步两个视野包即可,解决战斗人数过多导致流量冗余的问题。
176.例如,处于两个网格相接处的战斗玩家,虽然被两个不同的观察对象所挂载,但是这两个战斗玩家对应的视野包也是相似的,因此可以对这部分流量进行优化。如图14所示,3个观察对象挂载的网格彼此接近,涉及到3个观察对象(observer),在消息缓存中,将3个观察对象的流量包提取出来,将相似的流量包进行合并并删除重复的流量包,然后将合并删除后的流量包存放于数据合并队列中,实现流量包的合并和共享,大大降低了流量同步的开销。
177.如图14所示,每个网格上挂载的观察对象将网格中的流量包各自缓存在自己的缓存队列中,观战进程从缓存队列中逐个提取流量包,对比每个流量包的网格标识gridid(每个网格都有唯一的标识,用于表示唯一身份)、流量包产生的时间戳。将时间戳相同的、网格标识相邻的流量包进行合并并删除重复的数据,只保留1个流量包,然后放入数据合并队列,其中数据合并队列以时间戳进行排序。
178.为了防止观战人数无限增多,尤其在决赛期间,观战人数相比平时陡增,对观战进程(gamesvr)在cpu(包括观战进程、战斗进程等进程)占用率统计,如图15所示,不同的占用率将触发不同的观战策略,当cpu占用率到达100%时,会触发过载保护;当cpu占用率到达90%时,会触发停止观战策略,直接停止观战系统;cpu占用率达到80%,将禁止新的观战玩家进入观战系统;当cpu占用率达到70%时,降低视野范围,从而减小视野包的大小。不同的压力选择不同的策略,以保证服务器的稳定。
179.综上,本技术实施例提出一种虚拟场景的流量处理方法具有以下有益效果:
180.1)通过观察对象代理方案将战斗逻辑和观战逻辑分离,解决了观战逻辑对战斗逻
辑的影响问题,保证战斗玩家不会受到观战人数的影响,保证战斗体验;
181.2)解决观战人数受限于进程与地图的承载问题,提高观战人数上限;
182.3)引入消息合并方案,实现流量包的合并和共享,大大降低了流量同步的开销,缓解了大量观战人数造成的流量同步问题。
183.至此已经结合本技术实施例提供的电子设备的示例性应用和实施,说明本技术实施例提供的虚拟场景的流量处理方法,下面继续说明本技术实施例提供的虚拟场景的流量处理装置455中各个模块配合实现虚拟场景的流量处理的方案。
184.监听模块4551,用于通过与虚拟场景的战斗地图关联的至少一个观察对象,监听所述战斗地图中的流量数据;其中,运行所述虚拟场景的进程包括战斗进程以及区别于所述战斗进程的观战进程,所述战斗进程运行有所述战斗地图;第一同步模块4552,用于将监听到的所述流量数据同步至所述观战进程中的至少一个监听对象;第二同步模块4553,用于通过所述观战进程中的至少一个监听对象,将所述流量数据同步至与所述至少一个监听对象关联的观战客户端,以在所述观战客户端中呈现所述流量数据对应的虚拟场景。
185.在一些实施例中,所述第一同步模块4552还用于基于所述至少一个观察对象分别监听到的流量数据进行合并处理,得到合并后的所述流量数据;将合并后的所述流量数据同步至与所述至少一个观察对象关联的监听对象。
186.在一些实施例中,所述装置还包括:关联模块4554,用于获取所述至少一个观察对象的关联对象;当所述关联对象表征所述战斗地图中的地图网格时,将所述至少一个观察对象分别与所述战斗地图中的地图网格关联;当所述关联对象表征所述战斗地图中的虚拟角色时,将所述至少一个观察对象分别与所述战斗地图中的虚拟角色关联。
187.在一些实施例中,当所述至少一个观察对象分别与所述战斗地图中的地图网格关联时,所述监听模块4551还用于通过与所述战斗地图中的地图网格关联的观察对象,获取所述战斗地图中的地图网格的事件数据;当所述地图网格的事件数据发生更新时,获取所述地图网格最新的事件数据对应的流量数据。
188.在一些实施例中,当所述至少一个观察对象分别与所述战斗地图中的地图网格关联时,所述第一同步模块4552还用于获取所述至少一个观察对象分别监听到的流量数据的时间戳以及对应的地图网格坐标;将所述时间戳相同、且所述地图网格坐标相邻的流量数据进行合并处理,得到合并后的所述流量数据。
189.在一些实施例中,当所述至少一个观察对象分别与所述战斗地图中的虚拟角色关联时,所述监听模块4551还用于通过与所述战斗地图中的虚拟角色关联的观察对象,获取所述战斗地图中的虚拟角色的事件数据;当所述虚拟角色的事件数据发生更新时,获取所述虚拟角色最新的事件数据对应的流量数据。
190.在一些实施例中,当所述至少一个观察对象分别与所述战斗地图中的虚拟角色关联时,所述第一同步模块4552还用于获取所述至少一个观察对象分别监听到的流量数据的时间戳以及对应的虚拟角色在战斗地图中的坐标;将所述时间戳相同、且所述对应的虚拟角色在战斗地图中的坐标相邻的流量数据进行合并处理,得到合并后的所述流量数据。
191.在一些实施例中,所述第一同步模块4552还用于获取所述战斗地图中处于激活状态的虚拟角色的数量;当所述处于激活状态的虚拟角色的数量小于或者等于数量阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;当所述处于激活状
态的虚拟角色的数量大于所述数量阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
192.在一些实施例中,所述第一同步模块4552还用于当所述虚拟角色在战斗地图中分布均匀时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;当所述虚拟角色在战斗地图中分布不均匀时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
193.在一些实施例中,所述第一同步模块4552还用于当所述战斗地图中虚拟角色运动的频率大于频率阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;当所述战斗地图中虚拟角色运动的频率小于或者等于所述频率阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
194.在一些实施例中,所述第一同步模块4552还用于基于所述战斗地图中虚拟角色的战斗情况调用速率预测模型,得到所述战斗地图中虚拟角色的数量增长速率;当所述虚拟角色的数量增长速率小于或者等于速率阈值时,将所述战斗地图中的虚拟角色作为所述至少一个观察对象的关联对象;当所述虚拟角色的数量增长速率大于所述速率阈值时,将所述战斗地图中的地图网格作为所述至少一个观察对象的关联对象。
195.在一些实施例中,所述第一同步模块4552还用于将合并后的所述流量数据存储至数据合并队列中;与所述至少一个观察对象关联的监听对象从所述数据合并队列中获取合并后的所述流量数据。
196.在一些实施例中,所述装置还包括:调控模块4555,用于获取所述观战进程在总进程的占用比值,其中,所述总进程包括所述观战进程以及所述战斗进程;基于所述占用比值对应的观战策略进行进程调控。
197.在一些实施例中,所述调控模块4555还用于当所述占用比值对应的观战策略为过载保护策略时,基于所述过载保护策略停止所述观战进程以及所述战斗进程;当所述占用比值对应的观战策略为停止观战策略时,基于所述停止观战策略停止所述观战进程;当所述占用比值对应的观战策略为停止加入观战策略时,基于所述停止加入观战策略停止加入新的观战客户端;当所述占用比值对应的观战策略为缩小视野策略时,基于所述缩小视野策略缩减所述流量数据。
198.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的虚拟场景的流量处理方法。
199.本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的虚拟场景的流量处理方法,例如,如图5a

图5b示出的虚拟场景的流量处理方法。
200.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd

rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
201.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其
可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
202.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
203.作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
204.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜