服务器负载预测和高级性能度量
1.优先权权益
2.本技术要求2019年3月15日提交的标题为“服务器负载预测和高级性能度量(server load prediction and advanced performance measures)”的第62/819,461号美国临时专利申请的优先权和权益,所述美国临时专利申请出于所有目的以其全文引用的方式并入本文中。
技术领域
3.本公开涉及分配用于在线游戏的资源,且更具体地,使用来自用户互动的信息构建人工智能(ai)模型,并使用所述ai模型预测资源使用率并分配用于在线游戏的资源。
4.发明背景
5.在线游戏,尤其是大型多玩家在线(mmo)游戏由大量用户经由分布在广泛地理区域的计算机网络同时访问。因此,mmo游戏需要大量的资源协调来执行mmo游戏的游戏逻辑,以便为用户提供满意的玩游戏体验。为了确保位于不同地理位置的用户访问在线游戏,使用云游戏系统的资源在游戏云上执行在线游戏。用户能够连接到在云游戏系统的一个或多个服务器上执行的在线游戏。在游戏云上执行在线游戏的优势在于集中了执行游戏所需的资源。然而,随着同时玩在线游戏的用户数量增加,云游戏系统资源日益紧张,从而难以为在线游戏用户提供满意的服务质量。
6.为了防止资源紧张并确保用户拥有最佳的玩游戏体验,云游戏系统可能会过度分配比实际所需更多的资源。这些资源价格昂贵且需求量很大。因此,过度分配资源会导致因有些资源仍然闲置且未得到充分利用而带来不必要的资源浪费,并导致产生不必要的费用。由于很难确定对此类资源的需求,因此在云游戏系统上以最佳方式分配资源极其复杂。
7.正是在这种情况下,产生本公开的实施方案。
技术实现要素:8.本公开的实施方案涉及用于为云游戏系统执行的游戏调配系统资源的系统和方法。通过使用资源分配模型来识别和调配系统资源,所述资源分配模型提供关于何时启动特定游戏的实例以及何时按比例增加或减少资源以允许执行特定游戏的实例的信息。通过采用机器学习算法建立并训练资源分配模型。云游戏系统的服务器处理从不同游戏的多个用户接收的在线互动,以生成和训练资源分配模型。在线互动可以包括游戏中互动和游戏外(即,游戏之外的)互动,例如社交媒体互动等。在云游戏系统的服务器内执行的资源使用率预测引擎处理在线互动,以识别与其中讨论的游戏相关的社交主题,确定在线互动中不同社交主题的出现顺序和频率以识别讨论特征,并对从在线互动中识别的讨论特征进行分类,以及生成预测的游戏使用的模型。资源使用率预测引擎(本文中简称为“预测引擎”)基于预测的游戏使用来识别和调配资源。当接收到当前在线互动时,资源使用率预测引擎处理当前在线互动以识别讨论特征,使用讨论特征预测游戏使用,并与预测的游戏使用成比例地提供资源。
9.用当前在线互动更新模型。当接收到后续在线互动时,访问模型以识别对资源调配的调整,并与预期的使用率尖峰成比例地主动按比例增加或减少游戏的资源量。
10.在线互动包括游戏中互动和游戏外互动,例如游戏之外的用户的社交媒体互动。除了确定游戏的使用率需求外,预测引擎还确定预期出现使用率尖峰的地理位置和/或可能需要满足预期的使用率尖峰的特定子系统。例如,资源分配模型可以用于确定是否需要按比例增加或减少处理核心、图形处理器、存储器、存储装置、通信带宽等以满足预期的尖峰。
11.预测引擎内的机器学习算法使用从云游戏系统的游戏中互动和游戏外互动收集的多个游戏的多个用户的在线互动来生成资源分配模型。资源分配模型预测游戏使用,以便可在一个或多个地理位置的一个或多个数据中心调配用于游戏的适当资源。当接收到额外的在线互动时,预测引擎处理额外的在线互动并更新资源分配模型。更新后的资源分配模型识别对预测的游戏使用的调整,所述调整和与预期的使用率尖峰成比例地调整资源调配相关。
12.在一个实施方式中,公开了一种用于为云游戏系统执行的游戏调配资源的方法。所述方法包括访问多个用户的在线互动。在线互动与包括游戏的社交主题相关。多个用户中的一个或多个从在线社交交流访问在线互动。处理在线互动,以对从在线社交交流中获得的讨论特征进行分类。使用经过分类的讨论特征生成预测的游戏使用的模型。基于访问和处理的在线互动随时间推移更新模型。在数据中心调配用于游戏的资源,其中调配包括通过访问模型识别资源调配中的调整。调整包括当模型基于当前在线互动指示多个用户将出现预期的使用率尖峰时,在数据中心处增加用于游戏的资源量。资源的调配与预期的使用率尖峰成比例。
13.在一些实施方式中,在线社交交流包括游戏中互动或游戏外互动。游戏外互动包括社交媒体互动或在游戏外提供的其它互动。
14.在一些实施方式中,使用在线互动中的关键字识别社交主题。
15.在一些实施方式中,对讨论特征进行分类包括对用户生成的在线互动执行关键字分析,以识别与社交主题相关的关键字。在线互动中的关键字的分布用于定义讨论特征。确定用户在在线互动之后执行的与游戏相关的活动,并且基于关键字的分布和在游戏中执行的活动对讨论特征进行分类。分类用于确定游戏的使用率尖峰。
16.在一些实施方式中,在线互动由多个用户在访问游戏之前提供。模型是使用从在线互动中识别的讨论特征和与多个用户在在线互动之后执行的游戏相关的活动来更新的。
17.在一些实施方式中,通过识别将出现使用率尖峰的地理位置并在与所述地理位置相关联的数据中心处调配游戏资源来调配游戏资源。
18.在一些实施方式中,识别在数据中心针对预期的使用率尖峰所需的资源的特定子系统,并且在数据中心与预期的使用率尖峰成比例地调配特定子系统。
19.在一些实施方式中,根据要执行的游戏实例的数量来调配资源,其中实例的数量与预期的使用率尖峰成比例。
20.在一些实施方式中,预测游戏使用包括将当前在线互动中的讨论特征的出现模式与模型中的对应模式相关联。模型中的模式用于将讨论特征映射到预测游戏使用的输出。
21.在另一实施方式中,公开一种用于调配游戏资源的在云游戏系统上执行的资源使
用率预测引擎。所述资源使用率预测引擎包括互动分析器、模型训练器、使用率尖峰预测器和资源分配代理。互动分析器被配置成从多个用户的在线社交交流访问在线互动,并处理与游戏相关的在线互动,以对从在线社交互动获得的讨论特征进行分类。模型训练器被配置成使用经过分类的讨论特征生成预测的游戏使用的模型。模型训练器进一步被配置成基于随时间推移访问和处理的在线互动更新模型。使用率尖峰预测器被配置成访问模型,并使用模型的经过分类的讨论特征预测游戏使用。资源分配代理被配置成通过访问模型以识别资源调配中的调整来在数据中心调配用于游戏的资源。当模型基于当前在线互动指示可能出现预期的使用率尖峰时,调整识别在数据中心增加用于游戏的资源量。资源分配代理被配置成与预期的使用率尖峰成比例地调配用于游戏的资源。
22.通过以下结合附图进行的通过举例说明本公开的原理的详细描述,本公开的其它方面将变得显而易见。
附图说明
23.通过参考结合附图进行以下描述可以最好地理解本公开。
24.图1示出根据本公开的一个实施方式的用于调配资源的云游戏系统的简化物理视图。
25.图2示出根据本公开的一个实施方式的用于调配游戏资源的在云游戏服务器内执行的资源使用率预测引擎的简化框图。
26.图3示出根据本公开的一个实施方式的单个游戏或多个游戏的使用率需求随时间变化的曲线图。
27.图4示出根据本公开的一个实施方式的用于执行在线游戏并通过云游戏网络向一个或多个客户端装置提供游戏数据帧的云游戏系统的系统图。
28.图5示出根据本公开的一个实施方式的用于使用资源分配模型调配在线游戏资源的方法的流程操作。
29.图6示出根据本公开的一个实施方式的用于使用模型训练器构建和训练资源分配模型(人工智能(ai)模型)的实例服务器计算装置的组件。
具体实施方式
30.尽管以下详细描述包含用于说明的许多具体细节,但本领域的普通技术人员将了解,对以下细节的许多变化和修改都在本公开的范围内。因此,下文描述的本公开的各个方面的阐述对遵循本说明书的权利要求不失一般性也不施加限制。
31.一般来说,本公开的各种实施方式描述了用于实施机器学习算法以使用从访问在云游戏系统上执行的不同游戏的多个用户获得的在线互动来构建资源分配模型(即,人工智能模型)的系统和方法。使用资源分配模型来预测游戏使用,并且确定多个用户将出现预期的使用率尖峰并及时分配资源以成功执行游戏实例。在线互动包括游戏中互动以及游戏外互动。在一些实施方式中,游戏中互动可以包括用户在从云游戏系统访问游戏时由用户提供的互动。例如,可以在游戏的游戏玩法期间或在云游戏系统中可用的不同游戏的游戏玩法期间提供游戏中互动。游戏外互动可以在游戏之外提供,在一些实施方式中可以在云游戏系统之外提供,并且可以包括社交媒体互动或者其它形式的互动,包括但不限于使用
用户可用的任何互动工具(例如,应用程序等)提供的网络日志、电子邮件、文本消息等。
32.用户可以在云游戏系统上设置其用户账户,以使用户能够访问其中可用的各种应用程序和/或游戏。云游戏系统可以提供一个或多个互动工具,例如游戏中或游戏间消息传递工具等,以供用户在玩一个或多个游戏期间或在观看一个或多个玩家的游戏玩法期间彼此互动。在一些实施方式中,互动工具可以向用户提供选择性地与用户社区的成员或其社交联系人或访问云游戏系统的所有用户共享互动的选项。在设置用户账户期间或之后,在一些实施方式中,用户可以将他们的一个或多个社交媒体账户和/或其它互动应用程序账户链接到他们在云游戏系统上的用户账户,以便用户在访问云游戏系统来玩游戏或观看游戏时可以使用互动工具与其它用户互动。通过链接,云游戏系统可以访问通过社交媒体应用程序或其它互动应用程序提供的用户在线互动。
33.由多个用户生成的在线互动存储在社交后历史数据存储库中,所述社交后历史数据存储库可由云游戏系统访问,并用于生成资源分配模型。资源分配模型提供的信息用于识别每个在线互动中讨论的不同主题,识别与在线互动相关联的游戏,确定不同游戏在线互动中不同主题的出现模式以定义讨论特征,并对从在线互动中获得的讨论特征进行分类。当从多个用户获得当前在线互动时,资源分配模型用于将由当前在线互动中社交主题的出现模式定义的讨论特征与资源分配模型中的相应模式相关。相关性将与资源分配模型中社交主题的相关模式相对应的讨论特征映射到预测游戏的游戏使用的输出。在一些情况下,当事件发生或针对游戏调度(例如,流行游戏的新版本发布、促销、竞争等)时,用户的在线互动可能会出现尖峰。这些互动是在访问游戏进行游戏玩法之前提供的。在线互动之后可能会有一些用户访问游戏进行游戏玩法。处理此类互动尖峰和用户在互动之后与游戏相关的活动并生成资源分配模型。资源分配模型中提供的信息可以用于预测游戏使用。当从一些用户(即尚未访问游戏的用户)接收到当前在线互动时,处理当前在线互动以识别由在线互动中社交主题的顺序和分布定义的讨论特征。访问资源分配模型以确定预测的游戏使用,使得可以在数据中心与预测的游戏使用成比例地调配游戏资源。在当前在线互动指示预期的使用率尖峰时,通过在数据中心与预期的使用率尖峰成比例地增加用于游戏的资源量来调整为游戏调配的资源。
34.例如,在线互动可能与正在发布或计划发布到云游戏系统的游戏的新版本相关,并且讨论的社交主题可能与和特定游戏相关联的发布事件相关。讨论特征可能对应于社交主题、社交主题分布的频率和顺序、社交主题的上下文等。随着发布事件日期的临近,可能会检测到在线互动中的尖峰。基于在当前在线互动中识别的讨论特征并基于互动尖峰,可以使用资源分配模型来预测出现游戏的预期的使用率尖峰的可能性。可以与预期的使用率尖峰成比例地调配资源,以便在提供在线互动的用户访问游戏进行游戏玩法的情况下,有足够的资源可用于服务访问请求。
35.根据多个用户提供的在线互动和从多个用户中的一些用户检测到的在线互动之后的游戏选择活动来确定预测的游戏使用。在从多个用户中的一些用户接收到选择游戏进行游戏玩法的请求之前,使用资源分配模型从多个用户中的一些用户的当前在线互动确定预期的使用率尖峰。预测引擎与正在执行的游戏的实例数量成比例地主动调配资源,以预期多个用户中的一些用户将选择游戏进行游戏玩法。另外,响应于来自多个用户中的一些用户的所表达兴趣,使用当前在线互动进一步训练资源分配模型以调整预测的游戏使用。
36.传统的系统资源调配方式导致云游戏系统(cgs)对系统资源过度分配或分配不足,因为在cgs处检测到对此类资源的需求时,正在调配资源。这导致资源浪费或对用户不必要的延迟,因为系统资源是根据当前需求调配的。通过基于当前表示对游戏感兴趣(由多个用户中的一些用户为游戏提供的当前在线互动确定)的用户数量和使用来自多个用户的互动生成的资源分配模型中提供的信息来预测游戏的使用率需求,并及时调配用于游戏的资源,可以实现系统资源的优化利用并丰富用户体验。例如,基于资源分配模型中提供的信息并基于为游戏收集的当前在线互动,云游戏系统可以预测何时预期游戏的使用率尖峰,并在预期用户将访问游戏进行游戏玩法之前响应性地提前调配资源。
37.资源分配模型还可以用于确定预期使用率尖峰的特定地理位置,以便特定游戏的多个实例可以在位于特定地理位置或与特定地理位置相关联的数据中心中实例化,并且此类实例化在接收到使用游戏进行游戏玩法的任何请求之前完成。
38.在对本发明实施方案的一般理解下,现在将参考各种附图描述各种实施方式的实例细节。
39.图1提供了根据一个实施方式的用于为特定游戏调配实例和资源的云游戏系统300的概述。多个用户装置100通过网络200(例如互联网)访问云游戏系统(cgs)300、社交媒体应用程序和其它互动应用程序。用户装置可以正从不同地理位置访问cgs 300。如图1所示,用户装置ud
11
、ud
12
、ud
13
等正在从地理位置1、ud
21
从地理位置2,ud
31
、ud
32
、ud
33
、ud
34
等从地理位置3访问cgs 300,以此类推。用户装置(即,客户端装置)可以是具有处理器、存储器、具有lan、有线、无线或5g通信能力并且是便携式或非便携式的任何类型的客户端计算装置。例如,客户端装置可以是智能手机、移动装置、平板计算机、台式计算机、个人计算机,或包括具有便携式外形的监视器或触摸屏的混合型或其它数字装置。
40.具有5g通信能力的客户端装置可以包括能够连接到5g网络的移动装置。在一个实施方式中,5g网络是数字蜂窝网络,其中服务区域被划分为多个“小区”(即,小地理区域)。在移动装置处生成的模拟数据被数字化,并使用可在地理上分离的小区中重用的频率信道作为无线电波传输到小区内的本地天线。本地天线通过高带宽光纤或其它类似无线通信连接到互联网和电话网络。5g网络能够以更高的数据速率传输数据,因为它们使用更高频率的无线电波进行通信,从而提供了更低的网络延迟。
41.客户端装置可以运行操作系统并包括通过网络200提供对cgs300中的服务器上可用的各种应用程序(app)的访问的网络接口,或者可以是具有网络接口以与提供计算功能的服务器通信的瘦客户端。用户可以使用用户账户访问cgs 300,并选择cgs 300处可用的在线游戏进行游戏玩法,其中游戏玩法由用户使用客户端装置中提供的控制选项或使用以通信方式连接到客户端装置的控制器来控制。
42.在一些实施方式中,各种应用程序(例如,在线游戏)可以在云游戏系统的一个或多个服务器上远程执行,并且来自正在执行的应用程序的数据通过网络200流式传输到客户端装置。在其它实施方式中,在线游戏可以在客户端装置上本地执行,并且来自正在执行的在线游戏的元数据通过网络200传输到服务器以影响游戏状态。用户提供的在线互动被用作训练数据,用于生成和训练人工智能(ai)模型,用于预测游戏使用,并用于在接收访问在线游戏进行游戏玩法的请求之前为在线游戏提供实例和资源。
43.云游戏系统(cgs)300包括分布在不同地理位置的后端服务器302的网络,并且被
配置成执行一个或多个在线游戏应用程序和/或其它互动应用程序的实例。后端服务器302可以是游戏或应用服务器,所述游戏或应用服务器被配置成执行一个或多个游戏/互动应用程序的一个或多个实例。为了简单起见,将参考执行在线游戏应用程序的游戏服务器,但本文公开的实施方式可以扩展到任何其它互动应用程序。游戏服务器可以是云游戏系统中可用的任何类型的服务器计算装置,包括但不限于独立服务器、作为服务器场或数据中心的一部分的服务器等。此外,游戏服务器可以管理一个或多个虚拟机,所述虚拟机支持在主机上为用户执行在线游戏实例的游戏处理器。
44.由云游戏服务器302执行的在线游戏可以是大规模多玩家在线(mmo)游戏,并且云游戏服务器302可以包括以通信方式连接到在线游戏的游戏逻辑的多玩家分布式游戏引擎。一般来说,游戏引擎是软件层,所述软件层用作游戏(例如,mmo游戏)的基础并提供用于开发在线游戏的框架。游戏引擎提取执行每个游戏所需的常见相关任务(即游戏引擎任务)的细节,同时在线游戏开发者提供游戏逻辑,所述游戏逻辑提供如何玩在线游戏的细节。游戏引擎框架包括多个可重用组件,用于处理使在线游戏充满活力的在线游戏的多个功能部分(即,核心特征)。游戏引擎处理的基本核心特征可以包括物理学(例如碰撞检测、碰撞响应、轨迹、基于重力的物体移动、摩擦等)、图形、音频、人工智能、脚本、动画、网络、流媒体、优化、存储器管理、线程、本地化支持等等。可重用组件包括用于处理针对在线游戏识别的核心特征的过程引擎。
45.在线游戏的游戏玩法过程中,游戏引擎管理在线游戏的游戏逻辑,收集从不同客户端装置接收的用户输入并将其传输到游戏逻辑,管理游戏引擎的功能部分的分配和同步,从而以最佳方式处理由游戏逻辑生成的游戏数据,并生成游戏数据帧,所述游戏数据被传输回客户端装置进行渲染。当前可用的各种游戏引擎提供不同的核心功能,并且可以基于可用于执行在线游戏的功能选择适当的游戏引擎。
46.游戏逻辑分析用户输入,基于用户输入影响在线游戏的游戏状态,管理玩在线游戏的每个用户的所保存数据,并生成游戏数据,所述游戏数据在mmo游戏会话期间流式传输到用户的不同客户端装置之前由分布式游戏引擎处理。游戏状态识别在线游戏在特定点的整体状态,并受每个玩家(即,参与游戏的游戏玩法的用户)的游戏玩法的复杂性影响。每个用户保存的数据包括用户为在线游戏提供的任何游戏定制。使用由游戏逻辑提供的游戏状态的多玩家分布式游戏引擎能够将对象和角色重叠/插入到参与mmo游戏会话的玩家的每个游戏环境中。在一些实施方式中,可以基于游戏逻辑的配置方式在服务器或多个服务器上执行游戏的每个实例的游戏逻辑。
47.除了向mmo游戏提供用户输入之外,用户还可以在mmo游戏的游戏玩法过程中彼此交流。分布式游戏引擎除了在游戏的游戏玩法过程中管理核心特征的分配外,还管理多个用户的在线互动。基于用户设置其游戏账户和互动应用程序账户的方式,使用在线游戏和/或分布式游戏引擎可用的互动工具生成在线互动。分布式游戏引擎将在线互动存储在不同的数据存储库中,并使其可用于生成和训练ai模型。
48.在一些实施方式中,互动工具由游戏引擎,或游戏逻辑或游戏服务器提供,以允许用户在每个用户的在线游戏环境中彼此互动。在替代实施方式中,游戏引擎或游戏服务器可以提供对社交媒体的互动工具或其它互动应用程序的访问,以允许玩mmo游戏或观看mmo游戏的用户彼此互动和/或与在线游戏环境之外正在玩或不在玩mmo游戏的其它用户互动。
通过不同互动工具/应用程序提供的在线互动以及影响不同游戏的游戏状态的不同游戏的游戏玩法数据由分布式游戏引擎收集并存储在不同的数据存储库中。
49.例如,在云游戏服务器302上执行的分布式游戏引擎可以在不同的数据存储库中存储和检索与游戏玩法和用户互动相关的不同数据,仅举几例,例如社交媒体互动数据存储库304、在线互动数据存储库306、用户数据历史数据存储库308。分布式游戏引擎可以与社交媒体互动数据存储库304交互,以存储和检索由多个用户(例如,玩家或非玩家)使用互动工具生成的游戏外互动。游戏外互动包括玩家(即,玩在云游戏系统中可得的在线游戏的用户)与玩家的社交联系人之间的社交媒体互动(即,在游戏环境之外使用社交媒体应用程序工具生成的互动),其中社交联系人可以是玩相同游戏、玩不同游戏的其它玩家或非玩家(例如,观众或其它用户)。在一些实施方式中,游戏外互动可以包括由社交媒体工具以外的互动工具生成的其它互动。例如,游戏外互动可以在玩游戏的游戏玩法的玩家/观看游戏的游戏玩法的观众和作为用户社区的一部分的其它用户之间生成为电子邮件、文本消息、网络日志等,其中互动是使用其它互动工具生成的。在一些实施方式中,用户可以通过将用户的社交媒体账户或其它互动账户链接到云游戏系统中的其用户账户来提供对用户的社交媒体和其它在线互动的访问。
50.此外,分布式游戏引擎可以存储并从在线互动数据存储库306检索在用户访问在线游戏以观看或玩时在游戏环境中由用户生成的游戏中互动。如果用户(即观众)正在观看玩家的游戏玩法,则互动可能是观众与玩家之间的互动。此类游戏中互动是使用游戏中提供的互动工具生成的。
51.在一些实施方式中,游戏引擎和游戏逻辑实例分布在不同地理位置的多个服务器上。分布式游戏引擎可以本地和并行地处理由游戏逻辑生成的游戏数据和由用户在相应地理位置生成的在线互动,并与云游戏系统300内的其它服务器同步游戏数据和在线互动。以此方式,分布式游戏引擎允许更快地且高效地处理游戏数据和在线互动。响应于在游戏的游戏玩法过程中提供的用户输入,从游戏逻辑输出并由游戏引擎实例处理的游戏数据被同步、组装、编码并流式传输到不同的客户端装置以进行渲染。游戏引擎内的同步引擎可以用于将游戏数据的分布同步到不同服务器以进行处理,并管理服务器之间经过处理的游戏数据的路由。经过处理的在线互动用于训练用于预测游戏使用的资源分配模型。生成的资源分配模型可以在第一服务器上维护,并使用从不同服务器接收的更新进行训练。
52.分布式游戏引擎或游戏逻辑可以将不同用户在不同地理位置玩的所有游戏的游戏玩法数据和游戏状态存储在用户数据历史数据存储库308中。当用户在cgs 300玩在线游戏时,在线游戏的游戏逻辑使用用户在游戏玩法过程中提供的用户输入来影响在线游戏的游戏状态。游戏状态提供了在线游戏的游戏玩法的复杂性,并用于识别用户度量和游戏状态度量。响应于用户输入,确定在线游戏的游戏状态并将其更新到用户数据历史数据存储库308,以便在线游戏的游戏状态可以在中心位置供分布式游戏引擎使用。在一些实施方式中,游戏状态可以包括游戏id、游戏名称、游戏角色、游戏属性、游戏对象、游戏对象属性、游戏对象状态、图形重叠等。游戏的游戏状态还可以包括服务器网络中的每个服务器的用于执行游戏实例并传达游戏数据的每个装置或模块或系统组件的状态,其中装置或模块或系统组件的状态可以包括cpu、gpu、存储器的状态、寄存器值、程序计数器值、可编程dma状态、dma缓冲数据、音频芯片状态、cd
‑
rom状态、使用的通信带宽、分配的通信带宽等。
53.除了包括在游戏状态中的游戏相关数据之外,游戏状态还可以包括玩不同在线游戏或观看不同在线游戏的用户的用户保存数据。例如,用户(即,玩家或非玩家(即,观众))的用户保存数据可以包括用户的用户配置文件和用户相关信息、用户对游戏对象的定制、专业水平、玩家类型、游戏工具/奖金/积分/现金/赢取的奖励的量、玩在线游戏或观看在线游戏的时间量、克服挑战的次数、克服每个挑战的尝试次数等。游戏状态还可以包括随机生成的特征或ai重叠或游戏复杂性,这些有助于理解与在线游戏的游戏玩法相关联的游戏细节。
54.另外,分布式游戏引擎可以与游戏标题数据存储库310、游戏事件数据存储库312等互动,以检索由例如游戏开发者、游戏推广者、游戏组织者等不同游戏标题处理程序提供的游戏相关数据。分布式游戏引擎可以将可供访问cgs 300的用户使用的所有游戏的标题和游戏逻辑存储在游戏标题数据存储库310中。游戏标题数据存储库310中包括的游戏逻辑可以用于在不同地理位置的一个或多个数据中心执行游戏的游戏实例。
55.游戏事件数据存储库312可以是这样的存储库:记录每个游戏已发生的不同事件、不同游戏计划发生的事件、此类事件的细节,例如此类事件已发生或计划发生的天数和时间、此类事件的频率等。与游戏事件相关的信息可以根据从游戏开发者、游戏推广者、事件组织者或从用户(即,玩家或非玩家)或从任何其它来源获得的信息进行更新。可能针对在线游戏计划的一些实例事件可以包括新发布事件、新(版本)发行、促销、竞赛等。事件的实例仅作为实例提供且不应视为限制性的。
56.游戏引擎从不同的数据存储库中检索和使用信息,以确定用户提供的与游戏、其中讨论的社交主题相关的在线互动数量、确定在线互动中社交主题的频率和分布模式以定义讨论特征,并使用讨论特征生成资源分配模型。在一个或多个用户访问在线游戏进行游戏之前从一个或多个用户生成的在线社交交流访问在线互动。当一个或多个用户于在线互动之后选择游戏进行游戏玩法活动时,使用与游戏玩法活动相对应的数据更新资源分配模型。资源分配模型中提供的信息可以用于预测游戏使用。例如,资源分配模型可以用于确定在线互动中的哪些讨论特征(即,社交主题的出现和出现模式)以用户访问游戏进行游戏玩法结束。当从其它用户接收到当前在线互动时,游戏引擎内的资源使用率预测引擎(或简称为“预测引擎”)302a用于识别在当前在线互动中发生的讨论特征,并将其与资源分配模型中的相应讨论特征相关联,以确定当前在线互动的讨论特征是否转化为游戏的游戏玩法。基于来自资源分配模型的确定,预测引擎302a可以在用户选择游戏进行游戏玩法之前,提前根据提供当前在线互动的用户容易地预测游戏的预期的使用率尖峰。使用资源分配模型确定预期的使用率尖峰可以用于按比例增加或减少为游戏调配的资源。
57.除了预测使用率尖峰之外,预测引擎302a还识别预测出现此类使用率尖峰的特定地理位置。基于预测的使用率尖峰信息,资源分配代理302b向地理位置中的相应地理位置中的数据中心发送信号,以响应地在对应一个或多个服务器中调配在线游戏实例,并动态地调整一个或多个服务器处或数据中心中的相关资源,以实现在线游戏实例的成功执行。由预测引擎302a生成的信号协助资源分配代理302b对在线游戏实例的实例化进行本地化,并将资源调配到预测使用率需求尖峰的特定地理位置。另外,预测引擎还可以指示需要在特定地理位置调配资源的哪些子系统,以便仅在特定地理位置调配所指示的资源子系统而不是所有资源,调配所有资源可能导致昂贵资源的浪费。在接收到用户对在线游戏的游戏
玩法的任何请求之前,提前完成资源中的特定资源的本地化调配,从而确保资源的最佳使用和及时调配资源供用户使用。
58.图2示出资源使用率预测引擎(即,预测引擎)302a内的不同模块引擎/逻辑,其用于预测云游戏系统内可用游戏的使用率尖峰,并在接收到对游戏的游戏玩法请求之前提前响应地提供足够的游戏实例和系统资源。实例的调配和系统资源的调整是通过基于从一组用户接收到的当前在线互动和在资源分配模型中提供的信息预期所述一组用户对游戏的使用率尖峰来完成的。预期在在线互动之后,游戏实例和系统资源将由所述一组用户用于进行游戏玩法而进行调配。
59.资源分配模型使用从游戏中和游戏外互动识别的讨论特征构建,所述游戏中和游戏外互动从不同用户提供的不同游戏的在线社交交流访问。预测引擎302a内的一些引擎包括互动分析器314、模型训练器316、使用率尖峰预测引擎318和使用率识别器引擎320。
60.分布式游戏引擎收集多个用户的在线社交交流并将其提供给互动分析器314。在线社交交流可以包括例如使用社交媒体工具提供的游戏外互动。互动分析器314分析由分布式游戏引擎提供的在线互动以定义讨论特征。在线互动在一个或多个存储库中维护,并提供给互动分析器314以定义讨论特征。在分析期间,互动分析器314识别在其中讨论的社交主题,并使用社交主题的频率和分布来定义讨论特征。讨论特征用于构建资源分配模型。在一些实施方式中,在线社交交流可以包括使用由一个或多个游戏的游戏逻辑,或游戏服务器或游戏引擎提供的一个或多个互动工具在游戏环境内生成的游戏中互动。在其它实施方式中,在线社交交流可以包括使用例如社交媒体工具、电子邮件工具、网络日志工具、文本消息工具等互动工具在游戏环境之外提供的游戏外互动。用户可以通过将其社交媒体账户或互动应用程序账户链接到云游戏系统上的对应用户账户,提供对用于生成游戏外互动的互动工具的访问和对提供游戏外互动的在线社交交流的访问。
61.互动分析器314通过对用户生成的每个在线互动的内容执行关键字分析来识别在线互动的社交主题和上下文。在线互动可以与单个游戏或多个游戏相关。上下文可以识别游戏中发生的一个或多个事件(例如,新的发布、促销、竞争等)。在线互动内社交主题的频率和分布用于识别讨论特征,这些讨论特征可以用于衡量用户对相应游戏的明示或暗示兴趣。讨论的上下文和所识别的讨论特征可以用于确定互动是否有利于游戏。例如,包括对游戏的正面注释/评论的互动可以指示相应用户对游戏表达兴趣。在替代实例中,互动可以包括指示用户打算为游戏执行的特定动作的讨论,例如在其客户端装置上访问或加载特定游戏应用程序的明确意图等,并且此类明确意图可以与游戏中计划发生的特定事件(例如,新的发布、新的促销、竞争等)相关。
62.互动分析器314使用讨论特征来预测游戏的活跃用户和资源使用率。例如,活跃用户特征可以基于表达对玩游戏感兴趣的用户数量或讨论游戏的用户数量或访问cgs 300以加载游戏应用程序的客户端版本的用户数量。表达对游戏感兴趣的用户可以由相应用户提供的好评/评论确定。因此,通过分析在线互动和讨论特征的上下文,互动分析器314能够正确地衡量活跃用户。互动分析器314使用从在线互动中识别的各种社交主题和讨论特征来生成向量,所述向量随后用于构建资源分配模型。
63.从在线互动确定的活跃用户数量和游戏的游戏类型可以用于确定游戏的资源使用率特征。资源使用率可以取决于游戏类型和表达对游戏感兴趣的活跃用户类型。例如,对
于mmo游戏和/或高强度游戏和/或图形密集型游戏,与单玩家游戏和/或低强度游戏相比,资源使用率较高。高资源使用率可能是由于要生成和传输到客户端装置的数据量导致。类似地,与需求不高的游戏相反,基于表达对游戏玩法感兴趣的活跃用户数量而需求较高的游戏(mmo游戏或单用户游戏)可能具有较高的资源使用率。此外,表达对游戏的游戏玩法感兴趣的用户的资源使用率可以不同于表达对玩家的后续游戏玩法感兴趣的观众的资源使用率。因此,可以基于表达对游戏感兴趣的用户的数量和类型以及游戏的类型来确定资源使用率,并且互动分析器314具有足够的内置逻辑来通过分析在线互动容易地衡量资源使用率。
64.在一些实施方式中,互动分析器314可以对从在线互动识别的每个社交主题和每个讨论特征(例如,社交主题的频率和分布)赋予权重,并且考虑社交主题和讨论特征的相应权重而生成游戏向量,其中讨论特征识别包括在相应在线互动中的社交主题的上下文。在一些实施方式中,从在线互动生成的向量可以包括零和一的束,其中每个零或一对应于在线互动中识别的社交主题或讨论特征。例如,互动分析器314可以对与用户发起的与在线游戏相关的特定动作相关的讨论特征(例如,下载在线游戏、启动游戏控制台、讨论发行事件等)赋予权重一。沿着类似的线路,当在线互动中讨论的特定游戏是特定游戏类型(例如,mmo游戏、或高强度游戏、或计算密集型游戏、或具有大量图形的游戏等)时,互动分析器314可以对其赋予一,并且当游戏类型是不同的游戏类型(例如,单人游戏(例如,第一人称射击游戏)或较低强度游戏或包含较少图形的游戏等)时,对其赋予零。类似地,互动分析器314还可以包括活动以及相应用户在包括讨论特征中的特定讨论特征的在线互动之后执行此类活动的时间。例如,互动分析器314可以在用户选择游戏以在尖峰时间进行游戏玩法时赋予一,在用户选择游戏以在非尖峰时间进行游戏玩法时赋予零,在用户选择游戏进行游戏玩法时赋予一,以及在用户选择游戏以观看其它用户的游戏玩法时赋予零等。从在线互动的讨论特征中识别的这些预期或表达的用户兴趣用于确定特定游戏的活跃用户和资源使用率(即使用率需求)。由多个用户的在线互动生成的向量识别从在线互动识别的讨论特征内的社交主题(即,关键字)的出现模式。应注意,在线互动可以由玩家、玩家的社交联系人、玩家社区、观众或其它用户生成,其中一些在线互动可以在使用游戏期间生成,而其它在线互动可以在使用游戏之前生成。
65.除了从在线互动识别各种特征之外,互动分析器314还可以响应于相应在线游戏中某些事件的发生以及执行此类活动的时间范围,基于生成在线互动之后用户执行的活动来识别每个在线游戏的活动状态314b。这些活动包括选择游戏进行游戏玩法、选择游戏以遵循玩家的游戏玩法、继续游戏的游戏玩法等。例如,当用户生成游戏的在线互动并随后选择游戏进行游戏玩法或遵循另一用户的游戏玩法时,互动分析器314检测用户的此类活动,并使用所述活动来生成游戏的活动状态314b,并将其与用户的在线互动相关联。游戏的活动状态314b可以基于用户生成的在线互动,并且可以包括游戏的游戏标识符、为游戏提供在线互动的用户的用户标识符、在线互动之后选择游戏进行游戏玩法的用户的用户标识符,在线互动之后选择游戏进行游戏玩法的时间,在线互动与游戏玩法活动之间的时间间隔。
66.互动分析器314还指定一个或多个预定义资源分配准则314c。在一些实施方式中,预定义资源分配准则可以指定何时需要向上或向下调整系统资源的特定游戏和/或特定子
系统的实例数量。例如,资源分配准则可以指定在应调配资源之前使用率尖峰的可接受预定义百分比、在可以按比例增加或减少资源之前每个资源上的可接受负载、调配资源的可接受速度等。因此,当预测的使用率尖峰超过现有使用率需求预定义百分比时,可能需要向上或向下调整游戏的系统资源和/或实例的数量。与活跃用户和资源使用率314a、游戏的活动状态314b以及资源分配准则314c相关的特征一起形成训练数据,模型训练器316使用所述训练数据来生成和训练资源分配模型。训练数据的上述数据组件仅作为实例提供,并且也可以考虑其它类型的游戏相关数据组件来训练资源分配模型316b。
67.预测引擎302a内的模型训练器316使用机器语言算法(具有人工智能)来生成用于预测cgs 300中的游戏的游戏使用的资源分配模型。生成的资源分配模型使用讨论特征进行训练,所述讨论特征来自随着时间的推移从用户接收的在线互动。在一些实施方式中,用于生成和训练资源分配模型的在线互动与游戏相关。在其它实施方式中,用于生成和训练资源分配模型的在线互动来自多个游戏。生成的资源分配模型用于预测每个游戏的使用,以便可以将适当的信号传输到资源分配代理,以响应地按比例增加或减少相应游戏的实例数量以及不同类型的资源,使得游戏实例可以在cgs 300处有效地执行。此外,资源分配模型可以用于识别需要调配资源的特定地理位置和/或需要响应于使用率需求而按比例增加或减少的特定资源子系统,并且传输到资源分配代理的信号可以与特定地理位置中的预测的游戏使用成比例地调配资源/实例或特定资源子系统。
68.机器学习算法使用分类器引擎(即分类器)316a来生成和训练资源分配模型316b。分类器316a用于填充资源分配模型316b的互连节点网络内的各种节点,其中每个节点与从为在线互动生成的向量识别的不同讨论特征相关。建立节点之间的相互关系,以理解游戏讨论特征中包括的社交主题模式的复杂性,从而识别满足为每个在线游戏定义的资源分配准则的不同使用率输出。不同的输出遵循资源分配模型的不同关系路径。
69.预定义分类器以识别和分类在线互动的特定讨论特征,以满足在线游戏的资源分配准则。用于构建和训练资源分配模型的分类器学习识别讨论特征的复杂性(即,社交主题的出现频率和模式),并确定这些讨论特征对满足针对在线游戏定义的资源分配准则的结果的影响。分类器可以使用与在线游戏相关或与多个游戏相关的在线互动来理解讨论特征的复杂性。因此,讨论特征被更新到互连节点层内的节点,并且互连节点用于识别满足资源分配准则的输出。为了简单起见,将关于用游戏的讨论特征填充资源分配模型的节点来论述讨论特征的各种实施方式。然而,可以将实施方式扩展到在填充资源分配模型的节点时包括多个游戏的讨论特征。分类器使用来自多个用户的累积讨论来开发和训练模型。
70.如前所述,资源分配准则可以指定调配资源的可接受使用率需求百分比、在可以按比例增加或减少资源之前每个资源上的可接受负载、调配资源的可接受速度等。资源分配模型可以针对不同资源分配准则识别不同输出。从资源分配模型中识别的输出是针对在游戏在线互动中识别的讨论特征中定义的社交主题模式。特定游戏的主题模式和互动数量指示用户对特定游戏的明示或暗示兴趣,这可以用于预测游戏的使用率尖峰。
71.机器学习算法使用从在线互动中识别的各种讨论特征作为资源分配模型节点的输入,使用随时间推移从不同用户接收的在线互动中识别的讨论特征逐步更新节点,并调整输出以满足资源分配准则。因此,机器学习算法通过使用多个用户的在线互动的初始集构建模型来使用强化学习增强模型,学习从在线互动中识别的讨论特征的复杂性以及如何
将其用于预测游戏使用,并使用随时间推移接收的用户持续在线互动来强化学习和增强模型。增强的模型用于调整游戏使用的预测。调整后的输出指示随着时间的推移,对于提供在线互动的用户的游戏,很可能出现预期的使用率尖峰。调整后的输出涉及对要为游戏调配的资源的调整,其中对资源的调整与根据随时间推移接收的在线互动确定的预期的使用率尖峰成比例。
72.预定义每个分类器316a以识别从不同用户的在线互动中识别的讨论特征中的特定讨论特征并进行分类。分类器被配置成基于社交主题的频率和分布对讨论特征进行分类,利用从随时间推移提供的社交交流中获得的持续在线互动来调谐模型,以确定社交主题的分布(即,出现模式)如何与用户在持续在线互动之后选择游戏进行游戏玩法相关,识别用户提供的游戏在线互动与用于游戏玩法活动的游戏的用户选择之间的时间跨度。讨论特征与用于游戏玩法的游戏选择之间的相关性确定游戏的预测的使用需求。
73.应注意,游戏的使用需求的变化可以基于事件,或者可以基于可以是主题性的、时间性的使用率,基于游戏的流行性,或者可以基于任何其它准则。应注意,并非所有的使用需求预测都需要增加针对游戏调配的资源量。在一些实施方式中,预测游戏使用所需的资源可能比已经调配的资源少。在此类实施方式中,预测的使用需求将指示此类改变,使得资源分配代理302b能够与预测的使用需求成比例地按比例减少调配的资源。使用需求的变化可以从用户生成的在线互动进行预测。可以基于已经表达对游戏感兴趣的活跃用户的数量、游戏的类型、要生成和/或传输的游戏数据的量、活动的类型等来确定满足预测的使用需求的资源使用率。例如,允许玩家玩游戏所需的资源类型和数量与允许用户查看或跟踪玩家的游戏玩法所需的资源类型和数量不同。当玩家玩高强度游戏时,玩家希望以最小的延迟和高分辨率提供游戏数据,以便玩家制定下一步行动策略并提供输入。因此,为玩家提供游戏数据可能所需的资源可以包括快速处理器、高分辨率gpu、用于流式传输游戏数据的快速通信连接和高带宽通信等。另一方面,低强度游戏或观众的资源使用可能率不需要此类资源。
74.当从尚未访问游戏的多个用户接收到游戏的当前在线互动时,模型训练器316使用包括在训练数据中的当前在线互动的讨论特征,并将所述讨论特征与资源分配模型中的对应讨论特征相关联,以识别满足资源分配准则的对应输出。然后,使用资源分配模型的输出来考虑从用户接收的当前在线互动(即,来自用户的累积互动),以确定提供当前在线互动的用户是否可能预期在游戏中出现使用率尖峰。应注意,经由在线社交交流接收到的用户进行的当前在线互动是在从用户接收任何选择活动之前由用户提供的。基于预期的使用率尖峰,可以及时调配所需的资源(即,特定子系统),并且在用户访问游戏进行游戏玩法之前基于预测的游戏使用完成此类调配。然后使用当前在线互动进一步训练资源分配模型。训练通过强化学习来增强资源分配模型。
75.预期使用率尖峰可能仅出现在某些地理位置。为了确定哪个地理位置可能预期将出现使用率尖峰,将从游戏的当前在线互动识别的训练数据转发到预测引擎302a内的使用率尖峰预测器318以预测游戏使用需求。使用率尖峰预测器318使用根据资源分配模型确定的针对在游戏训练数据中识别的当前在线互动的预测游戏使用来确定游戏的预测游戏使用的潜在原因。如果预测的游戏使用对应于针对游戏计划发生的事件,则使用率尖峰预测器318内的基于事件的预测器318a用于识别资源分配模型316b中对应于事件的输出,其中
所识别的输出满足针对游戏定义的资源分配准则314c。通过将讨论特征中社交主题的出现模式与资源分配模型中与事件相关的对应讨论特征相关联,确定预测的游戏使用。如前所述,资源分配准则314c可以指示何时需要针对预测的游戏使用(即,使用率需求)调配资源。来自资源分配模型的输出可以指示提供当前在线指示的用户可能对事件出现使用率尖峰并指示需要被调配以服务于事件的使用率尖峰的资源量。预测引擎可以与使用率尖峰成比例地调配资源量。
76.另一方面,如果预测的游戏使用与事件不对应,则预测的游戏使用可能与基于使用率的需求相关。基于使用率的预测器318b用于将从为游戏生成的当前在线互动中获得的讨论特征与分配模型中的对应讨论特征相匹配。基于使用率的预测器318b使用分配模型316b中匹配的讨论特征到满足游戏的资源分配准则314c的对应预测使用输出的映射。从分配模型316b识别的预测的使用输出用于预测游戏的使用率尖峰。基于针对游戏预测的使用率尖峰,预测引擎与预测的的使用率尖峰成比例地调配必要的资源。
77.因此,使用率尖峰预测器使用来自cgs 300可用的多个游戏的历史在线互动和特定游戏的当前在线互动的信息来预测特定游戏的使用率需求。历史在线互动和当前在线互动包括游戏中互动和游戏外互动两者。除了预测特定游戏的使用率需求之外,使用率尖峰预测器还可以识别当用户访问特定游戏进行游戏玩法活动时需要在其中调配实例和资源以便可供用户使用的时间段。
78.图3示出基于时间的曲线图,所述曲线图识别根据从cgs 300可用的在线社交交流中获得的用户在线互动确定的资源使用率需求。图3所示的基于时间的曲线图示出使用用户提供的游戏在线交互且从资源分配模型识别的一个地理位置中游戏的资源使用率需求的时间变化。基于时间的图形也可以由不同游戏在不同时间范围内的在线互动生成。由于游戏的使用率需求会基于用户兴趣而随时间变化,因此预测游戏使用中的尖峰并在预期用户将使用系统资源时在此类预测的尖峰之前调整系统资源,这允许云游戏系统高效地管理资源,同时丰富用户的玩游戏体验。当预测游戏使用中的尖峰并调配资源以满足预测的尖峰时,预测引擎302a考虑当前正在执行的游戏实例的数量、当前可用于游戏玩法的实例的数量、预测会出现使用率尖峰的地理位置中各种系统资源的当前状态,并适当地调配实例和资源,以便足够的实例和资源可用于有效地运行游戏实例。
79.参考图3,在曲线图t1中,基于从游戏的多个用户的游戏中互动和游戏外互动收集的在线互动,示出游戏的使用率需求保持在正常水平,直到达到尖峰的点a,然后使用率需求下降到正常水平。尽管参考单个游戏,但是应注意,可以基于多个游戏来确定对资源的使用率需求,且因此可以考虑多个游戏的在线互动来生成曲线图。在曲线图t2中,示出使用率需求在点b处达到尖峰,之后示出使用率需求下降到正常水平,然后示出在点c处再次上升且继续到点d,之后示出使用率需求下降到正常水平。使用率需求的下降和上升可能是由于游戏中发生的某一事件,也可能只是由于访问游戏的用户数量增加。使用率需求的增加需要大量的资源。图3的曲线图示出不同时间下系统资源使用率需求的尖峰以及使用率需求尖峰之间的时间间隔(例如,点b与点c之间的时间间隔)。在曲线图t3中,示出使用率需求首先在点e处达到尖峰,之后示出使用率需求下降到正常水平,然后示出从点f到点g达到尖峰,之后示出下降到正常水平。类似地,在tn中,示出使用率需求在点h处达到尖峰并一直保持到点i,之后示出下降到正常水平,仅在点j处再次达到尖峰并持续到点k,之后使用率需
求逐渐减少。图3的曲线图中识别的不同尖峰可能是由于游戏中不同用户(即玩家、观众)执行的单个活动(例如,游戏玩法活动)或不同活动(例如,游戏玩法活动、游戏观看活动等)造成的。互动分析器314使用在线互动识别游戏的讨论特征,并生成游戏的对应向量,所述向量识别讨论特征,并且在一些实施方式中,使用不同讨论特征的权重。游戏的所识别向量用于生成分配模型,所述分配模型用于预测游戏的游戏使用。通过从用户接收的持续在线互动调谐资源分配模型并调整输出。调整后的输出可能指示提供持续在线互动的用户对游戏的预期的使用率尖峰。
80.预期预测的游戏使用转化为用户对游戏的实际使用,这种预测的游戏使用可以用于及时地为游戏调配实例和资源。通过以下方式进行的这种类型的调配允许有效地管理系统资源:通过将从当前在线互动中识别社交主题模式的讨论特征与资源分配模型中的对应讨论特征相匹配来预测游戏的游戏使用。及时调配为用户提供最佳的玩游戏体验,同时确保昂贵的系统资源不会闲置。
81.预测引擎302a内的使用率识别器320用于进一步确保在cgs300内何时何地需要时分配正确类型和数量的系统资源。使用率识别器320从使用率尖峰预测器318接收预测的使用信息,并提取游戏的资源使用率特异性。例如,使用率识别器320可以识别将出现预期的使用率尖峰的一个或多个地理位置,和/或可以识别满足预期的使用率尖峰所需的特定子系统。识别地理位置确保系统资源仅在将出现使用率尖峰的地理位置进行调配,而不是在所有地理位置进行调配,在所有地理位置进行调配可能导致昂贵资源的浪费。类似地,识别子系统确保调配所需类型和数量的系统资源以满足使用率尖峰,而不是调配所有子系统,调配所有子系统也可能导致资源浪费。例如,对于计算密集型游戏,需要强大的cpu而不是gpu。对于图形密集型游戏,需要强大的gpu而不是cpu。使用率识别器320内的地理位置识别器320a用于识别预测使用率需求的地理位置。类似地,子系统识别器320b用于识别满足使用率需求所需的子系统。将来自使用率识别器320的信息提供给资源分配代理302b。
82.资源分配代理302b使用由使用率识别器320提供的信息来识别地理位置以及在所识别地理位置所需的系统资源(包括特定子系统)的类型和数量,以满足针对游戏预测的使用率尖峰。然后,资源分配代理302b查询资源调度器以获得在预测使用率需求的所识别地理位置处的系统资源的当前状态,包括子系统的当前状态。资源分配代理302b向与所识别地理位置相关联的一个或多个数据中心发送信号,以基于由使用率尖峰预测器318识别的预期的使用率尖峰执行游戏实例并调配系统资源的特定子系统。资源分配代理302b在向数据中心发送信号时可以遵循“弹性计算”概念,其中信号可以按比例增加或减少系统资源中的某些系统资源以满足游戏的预测的使用率需求。实例和系统资源的调配在预期用户通过访问游戏来使用实例和/或系统资源时执行,并且在接收特定游戏的任何选择活动之前完成。
83.在一些实例实施方式中,可以使用各种类型的服务器,可以在所述服务器上实例化游戏引擎,以构建用于预测特定游戏的使用率需求的资源分配模型。服务器可以是物理服务器。物理服务器可以是独立服务器,也可以是云游戏系统内数据中心的一部分。数据中心中的服务器可以是数据中心内的独立服务器或机架的一部分,其中每个机架包含多个服务器计算装置。物理服务器包括用于执行游戏引擎的必要资源,例如操作系统、存储器、微处理器。游戏引擎的功能部分存储在存储器中,使用微处理器处理,并由操作系统管理。
84.在一个实施方式中,为了更快地处理在线互动,可以在作为cgs300内的单个数据中心的一部分的不同服务器上并行执行分布式游戏引擎的实例。此配置有效地工作,因为数据可以在数据中心内的不同服务器之间交换,而不会有太多延迟。在替代实施方式中,执行分布式游戏引擎实例的cgs 300的多个服务器可以是地理上分布的多个数据中心的一部分。在此类实施方式中,从在线互动的分析产生的使用率特征在不同服务器中的服务器之间交换,以便能够以快速有效的方式进行分析。在一些实施方式中,即使游戏引擎的实例分布在不同数据中心之间,也可以在cgs 300内的一个中央服务器中维护资源分配模型,以便在训练资源分配模型时提供一致性。
85.在一些实施方式中,服务器可以是云游戏系统内的虚拟机,所述虚拟机被配置成利用主机的虚拟层可用的硬件资源,支持使用多个游戏的在线互动来训练资源分配模型。虚拟机还可以包括一个或多个应用程序(例如,一个或多个在线游戏应用程序),所述应用程序可以由操作系统使用主机的虚拟化层(即,虚拟层)可用的硬件资源执行。
86.在一些其它实施方式中,用于生成和训练资源分配模型的服务器可以是云容器的一部分,所述云容器允许例如在线游戏应用程序的应用程序及运行在线游戏应用程序所需的其所有依赖项、库和配置文件与应用程序一起使用容器中分配的资源运行应用程序而捆绑到虚拟容器中。容器在没有完整操作系统的情况下运行,因此提供了操作系统级虚拟化。
87.在一些实施方式中,用户可以从世界任何地方连接到云游戏系统的在线游戏应用程序。在线游戏应用程序通过在分布在世界各地的不同数据中心的不同服务器上启动多个游戏实例来实现这种连接。分布式游戏引擎从服务器网络收集在线游戏的游戏玩法期间在相应客户端装置处生成的用户输入数据,并使用网络模型中的任何网络模型将游戏数据帧返回到相应客户端装置。可以用于在本技术中描述的云游戏系统的服务器之间进行通信的网络模型的一些实例包括tcp/ip网络模型或基于国际标准化组织(iso)的开放系统互连(osi)网络架构。分布式服务器之间的数据处理和通信可以遵循多个现有协议中的任何协议。iso模型包括一组应用程序层(应用程序层、表示层、会话层)和数据流层(传输层、网络层、数据链路层和物理层)。应用程序层被配置成识别传输和接收实体,以相应实体理解的方式在传输实体与接收实体之间传递例如在线游戏的应用程序的数据,以及以最小的数据丢失管理和同步传输实体与接收实体之间的通信。数据流层被配置成确定数据传输是否应以顺序或并行路径执行,所述路径是将数据打包、将打包数据组装成帧以及沿着优选路线传输数据帧所遵循的协议。应注意,上文提及的描述仅提供用于通过在线游戏的服务器网络传达数据的iso模型的概述,并且本领域的技术人员理解各个层的作用的更精细细节,因此不进行更详细的描述。
88.图4示出根据本公开的一个实施方式支持收集用户互动以更新训练数据并使用更新的训练数据构建和/或训练用于预测在线游戏的使用率需求的资源分配模型的实例cgs 300a的概述。具体地,系统图300a使得能够访问和玩存储在云游戏系统(cgs)300中的视频游戏。一般来说,云游戏系统cgs 300可以是通过网络200运行以支持多个玩家通过对应游戏玩法来玩在线游戏应用程序的云计算系统。在线游戏中(游戏中互动)或游戏外(游戏外互动)提供的玩家和/或用户之间的在线互动用作构建和/或训练资源分配模型的训练数据。在线互动可以使用在线游戏中提供的互动工具提供,或者可以使用例如社交媒体应用程序、电子邮件应用程序、文本消息应用程序等互动应用程序提供的互动工具提供。在线互
动可以是包括与在线游戏相关的社交主题的对话或讨论,并且可以呈消息、网络日志、电子邮件、社交媒体互动等形式。
89.具体地,系统300a包括cgs 300、一个或多个社交媒体提供商240和客户端装置100,所有这些都经由网络200(例如,互联网)连接。与多个用户相关联的多个客户端装置可以连接到网络200以访问由cgs 300和社交媒体提供商240提供的服务。用户可以是跟踪特定玩家或在线游戏的游戏玩法的玩家或观众。
90.在一个实施方案中,云游戏系统300包括游戏服务器205、视频记录器271、标签处理器273、以及包括用户配置文件管理器的账户管理器274、游戏选择引擎(即,游戏选择器)275、游戏会话管理器285、用户访问逻辑280、网络接口290以及社交联系管理器295。cgs300还可以包括多个存储系统,例如游戏状态存储库、用户账户、用户数据历史数据存储库等,这些存储系统通常可以存储在数据存储库260中。其它游戏存储系统可以包括游戏代码存储库261、记录的游戏存储库262、标签数据存储库263、视频游戏标题存储库264(其类似于图1和2的游戏标题数据存储库310)、游戏事件数据存储库(图1和2中的312)、在线互动数据存储库(图1和2中的306)、社交媒体和其它游戏外互动数据存储库(图1和2中的304)以及游戏网络用户存储库265。在一个实施方案中,cgs 300是可以提供在线游戏应用程序、服务、游戏相关数字内容以及系统、应用程序、用户和社交网络之间的互连性的系统。cgs 300可以经由网络接口290通过社交联系管理器295与用户装置100和社交媒体提供商240通信。社交联系管理器295可以被配置成关联一个或多个朋友。在一个实施方案中,每个社交媒体提供商240包括显示用户社交网络联系的至少一个社交图245。
91.玩家(即,用户)能够经由游戏会话管理器285访问cgs 300提供的服务。例如,账户管理器274允许玩家对cgs 300上的游戏标题进行认证和访问。账户管理器274存储关于用户(玩家、观众)的信息,并管理每个用户的用户配置文件。用户信息可以由账户管理器274用于认证目的。另外,用户拥有的游戏标题可以由账户管理器274管理。例如,存储在游戏标题存储库264中的视频游戏可供拥有或提供有对这些视频游戏的访问权的用户使用。
92.在一个实施方案中,用户可以通过网络200上的连接借助于客户端装置100访问cgs 300和社交媒体提供商240提供的服务。客户端装置100可以包括有线或无线、便携式或非便携式的具有处理器和存储器的任何类型的装置。在一个实施方案中,客户端装置100可以呈智能电话、平板计算机或以便携式外形提供触摸屏功能的混合机的形式。一个实例性客户端装置可以包括运行操作系统的便携式手机装置,并且具备对可以通过网络200获得并在本地便携式装置(例如,智能电话、平板计算机、膝上型计算机、台式计算机等)上执行的各种应用程序(app)的访问。
93.客户端装置100包括显示器132,所述显示器充当用户发送输入命令236和显示从cgs 300和社交媒体提供商240接收的数据和/或信息135的界面。显示器132可以被配置成触摸屏,或通常由平板显示器、阴极射线管(crt)提供的显示器,或能够渲染显示器的其它装置。替代地,客户端装置100可以使其显示器132与装置分离,类似于台式计算机或膝上型计算机。
94.在一个实施方案中,客户端装置100被配置成与cgs 300通信以使用户(玩家)能够玩视频游戏。例如,玩家可以经由游戏选择引擎275选择(例如,通过游戏标题等)游戏标题数据存储库264中可用的视频游戏。启用所选视频游戏,并且加载视频游戏的实例以供游戏
服务器205在cgs 300上执行。在一个实施方案中,游戏玩法主要在cgs 300中执行,使得客户端装置100将从cgs 300接收游戏视频帧135的流,并且用于驱动游戏玩法的用户输入命令236被传输回cgs300。从流式游戏玩法接收的视频帧135在客户端装置100的显示器132上渲染。
95.在一个实施方案中,在玩家选择要玩的可用游戏标题之后,玩家可以通过游戏会话管理器285发起所选游戏标题的游戏会话。游戏会话管理器285首先访问数据存储库260中的游戏状态存储库,以检索玩家(对于所选游戏)所玩的最后一个会话的所保存游戏状态(如果有),使得玩家可以从先前的游戏玩法停止点重新开始游戏玩法。一旦识别了恢复或开始点,游戏会话管理器285可以通知游戏服务器205中的游戏执行引擎从游戏代码存储库261执行所选游戏标题的游戏代码。在发起游戏会话后,游戏会话管理器285可以经由网络接口290将游戏视频帧135(即,流式视频数据)传递到客户端装置,例如客户端装置100。
96.在游戏玩法期间,游戏会话管理器285可以与游戏服务器205、视频记录器271中的记录引擎以及标签处理器273通信,以生成或保存游戏玩法或游戏玩法会话的记录(例如,视频)。在一个实施方案中,游戏玩法的视频记录可以包括在游戏玩法过程中输入或提供的标签内容以及其它游戏相关元数据。标签内容也可以经由快照保存。游戏玩法的视频记录以及与所述游戏玩法相对应的任何游戏度量可以保存在记录的游戏存储库262中。任何标签内容可以保存在标签数据存储库263中。
97.在游戏玩法期间,游戏会话管理器285可以与游戏服务器205通信,以传递和获取用于影响视频游戏的对应游戏玩法结果的用户输入命令236。玩家输入的输入命令236可以从客户端装置100传输到cgs 300的游戏会话管理器285。输入命令(例如,控制器输入或用户输入)236包括用于驱动游戏玩法的输入命令和用户互动输入,例如标签内容(例如,文本、图像、视频记录剪辑等)。游戏输入命令以及任何用户玩游戏度量(用户玩游戏的时长等)可以存储在游戏网络用户存储库中。选择与视频游戏的游戏玩法相关的信息可以用于启用用户可用的多个特征。
98.因此,在各种实施方案中,本公开描述了系统和方法,所述系统和方法实施机器学习(也称为深度学习)算法以使用从执行支持一个或多个游戏玩法的在线游戏应用程序实例的服务器网络收集的训练数据来构建资源分配模型,以及使用经过训练的资源分配模型来提供与在线游戏应用程序和/或在线游戏应用程序的游戏玩法相关的各种功能。
99.如前所述,资源分配模型是使用互连节点网络构建的。每个节点从作为资源分配模型的输入提供的在线互动中识别的讨论特征中学习一些信息。通过互连在网络内的不同节点之间交换知识。资源分配模型的讨论特征输入激活网络中的一组初始节点。这组初始节点又激活其它节点,从而将从一个节点学到的关于游戏输入的知识传播到下一个节点。在其它节点上重复此激活处理,从而在知识的基础上构建以提供输出。输出表示作为训练数据提供的给定组讨论特征的预期或预测结果,所述训练数据还包括游戏的活动状态和资源分配准则,所述训练数据用于训练输入以获得满足不同资源分配准则的输出。然后,将资源分配模型的输出与从用户接收到的当前在线互动一起使用以预测游戏的游戏使用,从而可以在预期通过选择游戏提供在线互动的用户将使用资源的情况下提前调配资源。对资源分配模型进行训练,以使用不同讨论特征来学习不同资源分配准则的使用率需求,并识别满足游戏使用率需求可能所需的每种可能的资源配置。因此,当向资源分配模型提供来自
从游戏的多个用户的在线社交互动中获得的在线互动的一组讨论特征(例如,社交主题、社交主题的集群、社交主题的频率等)时,资源分配模型可以提供最符合为游戏定义的资源分配准则的输出。
100.资源分配模型可以通过各种机器学习(即ai)算法生成,包括深度学习(即机器学习)、强化学习、监督学习、无监督学习、半监督学习、增量学习、基于奖励的学习等。以上列出的ai算法类型仅出于说明而给出且并不是详尽的或限制性的。在一些实施方式中,使用神经网络生成资源分配模型,其中所述网络由多层互连节点组成。网络的每一条边都被赋予权重,并且当输入数据(即讨论特征)从输入层传递到输出层时,应用一组计算规则。机器学习算法内的优化算法(例如,梯度下降算法等)可以使用讨论特征的不同部分作为模型的可变参数,并以最小化可变参数中的损失的方式调谐可变参数。因此,机器学习算法使用资源分配模型的多层神经网络中的讨论特征来学习讨论特征的复杂性及其对输出的影响。
101.分类器用于识别讨论特征的不同部分以填充资源分配模型的不同节点,并将与输入节点相关联的给定一组讨论特征链接到特定输出。经过训练的资源分配模型用于确定游戏的当前资源分配,基于从多个用户获得的当前在线互动来预测游戏的使用率需求(即,游戏使用),方法是通过获取给定成功准则的资源分配模型的输出,并应用当前在线互动来确定提供当前在线互动的用户是否可能预期出现使用率尖峰。基于所述确定,可以弹性地按比例调整针对游戏分配的资源,以便为游戏提供足够的资源,以预期在提供在线互动的用户访问游戏进行游戏玩法时将使用这些资源。
102.图5示出根据一个实施方式的调配用于在线游戏的资源的方法的实例流程操作。所述方法开始于操作510,其中访问与游戏相关的多个用户的在线互动。在线互动包括与游戏相关的社交主题。从包括游戏中互动和游戏外互动的在线社交交流访问在线互动。可以在用户选择游戏之前由用户提供在线互动。游戏外互动可以包括社交媒体互动或使用互动工具提供的其它类型的在线互动。如操作520所示,处理在线互动。所述处理包括对在线互动的内容执行关键字分析,以识别社交主题并定义讨论特征。基于社交主题的顺序和/或上下文对讨论特征进行分类。基于社交主题、社交主题的出现频率、社交主题的出现模式、讨论社交主题的互动次数、社交主题的上下文(例如,与社交主题相关的好评或差评/评论等)等定义讨论特征。基于讨论的社交主题和在线互动中社交主题的出现模式,对讨论特征进行分类。
103.如操作530中所示,使用经过分类的讨论特征生成资源分配模型。所述模型包括多个互连节点,并且讨论特征中的不同讨论特征用于填充不同的节点。节点之间的相互关系用于理解游戏讨论特征中包括的社交主题模式的复杂性,以识别满足针对游戏定义的资源分配准则的不同使用率输出。社交主题和社交主题的出现模式用于预测游戏使用。使用随时间推移接收到的在线互动不断训练游戏使用。
104.如操作540中所示,在数据中心调配用于游戏的资源。资源的调配包括访问资源分配模型以识别对资源调配的任何调整。基于对调配的调整,在数据中心调配的游戏资源量可以增加。当模型指示多个用户的动作将出现预期的使用率尖峰并且指示可能是基于从多个用户接收到的当前在线互动时,可以对调配进行调整。需要调配的资源量的增加是通过将当前在线互动的讨论特征与资源分配模型中的对应讨论特征相关联来确定的。使用相关讨论特征,识别映射到相关讨论特征的资源使用率输出。此资源使用率输出指示待调配的
资源需要增加以满足预期的使用率尖峰的量。
105.资源的调配可以包括调配游戏的多个实例,并与根据当前在线互动预期的使用率尖峰成比例地按比例增加用于执行实例的资源。实例和资源的调配在从用户接收对游戏的任何选择请求之前完成,并且在预期当用户访问游戏以执行活动(例如游戏玩法活动)时用户将使用实例和资源的情况下完成。一旦调配资源,当前在线互动就用于进一步训练资源分配模型。当从用户接收到额外在线互动时,经过训练的资源分配模型用于预测游戏的游戏使用。
106.可以以软件、硬件、固件或其任何组合提供预测引擎。预测引擎被配置成使用通过多个用户的在线社交交流提供的在线互动、监视多个用户的活动,并预测用户活动中的尖峰。通过预测用户活动的尖峰和相关联服务器负载,可以提前按比例增加资源。预测引擎还被配置成检查不同的尖峰触发(例如,游戏事件,例如游戏的新发行、促销、竞争等,或预测游戏使用率,例如识别先前负载尖峰以预测当前负载、预测用户将对负载、社会讨论等分组),并与预期的资源负载需求成比例地按比例增加资源。可以从游戏中活动和游戏外活动中收集预期的资源负载需求。例如,社交媒体信号以及用户之间的通信(游戏中和游戏外)可以用于预测尖峰。所建立的模型有助于预测满足预期的尖峰所需的资源类型。
107.图6示出可以用于执行本公开的各种实施方案的方面的实例服务器装置600的组件。例如,图6示出根据本公开的一个实施方案的实例性服务器系统,所述服务器系统具有适于训练能够执行与在线游戏和/或在线游戏的游戏玩法相关的各种功能的ai模型的硬件组件。此框图示出装置600,所述装置可以包括或可以是个人计算机、服务器计算机、游戏控制台、移动装置或其它数字装置,其中每一个都适合于实践本发明的实施方案。替代地,装置的功能可以在物理服务器或虚拟机或容器服务器中实施。装置600包括用于运行软件应用程序的中央处理单元(cpu)602和任选地操作系统。cpu 602可以由一个或多个同质或异质处理核心组成。
108.根据各种实施方案,cpu 602是具有一个或多个处理核心的一个或多个通用微处理器。其它实施方案可以使用具有微处理器架构的一个或多个cpu实施,所述微处理器架构专门适用于配置用于深度学习、内容分类和用户分类的应用程序的高度并行和计算密集型应用程序,例如媒体和互动娱乐应用程序。例如,cpu 602可以被配置成包括ai引擎,所述ai引擎被配置成支持和/或执行关于提供与在线游戏和/或在线游戏的游戏玩法相关的各种功能(例如,预测)的学习操作。深度学习引擎可以包括建模器120,所述建模器被配置用于构建和/或训练ai模型,所述ai模型被配置成提供与在线游戏和/或在线游戏的游戏玩法相关的各种功能。此外,cpu 602包括分析器140,所述分析器被配置用于生成和训练ai模型。经过训练的ai模型响应于特定一组用户的输入提供输出,其中输出取决于经过训练的ai模型的预定义功能。经过训练的ai模型可以用于确定将在游戏玩法过程中实施的资源分配,以满足针对在线游戏定义的成功准则。分析器140被配置成执行与在线游戏和/或在线游戏的游戏玩法相关的各种功能,包括针对给定输入(例如,控制器输入、游戏状态数据、成功准则)分析来自经过训练的ai模型160的输出,并提供响应。
109.存储器604存储供cpu 602使用的应用程序和数据。存储器606为应用程序和数据提供非易失性存储和其它计算机可读介质,并可包括固定磁盘驱动器、可移动磁盘驱动器、快闪存储器装置和cd
‑
rom、dvd
‑
rom、蓝光、hd
‑
dvd或其它光学存储装置,以及信号传输和存
储介质。用户输入装置608将来自一个或多个用户的用户输入传达到装置600,装置600的实例可以包括键盘、鼠标、操纵杆、触摸板、触摸屏、画面或视频记录器/摄像机、游戏控制器和/或麦克风。网络接口614允许装置600经由电子通信网络与其它计算机系统通信,并且可以包括通过局域网和例如互联网的广域网的有线或无线通信。音频处理器612适于根据由cpu 602、存储器604和/或存储装置606提供的指令和/或数据生成模拟或数字音频输出。装置600的组件,包括cpu 602、存储器604、数据存储装置606、用户输入装置608、网络接口610和音频处理器612经由一个或多个数据总线622连接。
110.图形子系统613进一步与数据总线622和装置600的组件连接。图形子系统613包括图形处理单元(gpu)616和图形存储器618。图形存储器618包括用于存储输出图像的每个像素的像素数据的显示存储器(例如,帧缓冲器)。图形存储器618可以与gpu 616集成在相同的装置中,作为单独的装置与gpu 616连接,和/或在存储器604内实施。像素数据可以直接从cpu 602提供给图形存储器618。替代地,cpu 602向gpu 616提供定义所需输出图像的数据和/或指令,gpu 616根据所述数据和/或指令生成一个或多个输出图像的像素数据。定义所需输出图像的数据和/或指令可以存储在存储器604和/或图形存储器618中。在一个实施方案中,gpu 616包括用于根据定义几何结构、照明、着色、纹理、运动和/或场景的摄像机参数的指令和数据生成输出图像的像素数据的3d渲染功能。gpu 616可以进一步包括能够执行着色器程序的一个或多个可编程执行单元。在一个实施方案中,gpu 616可以在ai引擎内实施以提供额外的处理能力,例如用于ai或深度学习功能。
111.图形子系统613周期性地从图形存储器618输出图像的像素数据,以在显示装置610上显示或由投影系统640投影。显示装置610可以是能够响应于来自装置600的信号显示视觉信息的任何装置,包括crt、lcd、等离子体和oled显示器。例如,装置600可以向显示装置610提供模拟或数字信号。
112.应理解,可以使用本文公开的各种特征将本文定义的各种实施方案组合或组装成特定实施方式。因此,所提供的实例只是一些可能的实例,而不限于通过组合各种元素来定义更多实施方式而可能的各种实施方式。在一些实例中,一些实施方式可以包括较少的元素,而不偏离所公开的或等效的实施方式的精神。
113.本公开的实施方案可以通过各种计算机系统配置来实践,包括手持式装置、微处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等。本公开的实施方案还可以在分布式计算环境中实践,其中任务由通过有线或无线网络链接的远程处理装置执行。
114.考虑到上述实施方案,应理解,本公开的实施方案可以采用涉及存储在计算机系统中的数据的各种计算机实施的操作。这些操作是需要对物理量进行物理处理的操作。本文描述的构成本公开实施方案一部分的任何操作都是有用的机器操作。本公开实施方案还涉及用于执行这些操作的装置或设备。所述设备可以为所需目的而专门构造,或者所述设备可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体地,各种通用机器可以与根据本文的教导编写的计算机程序一起使用,或者更方便地构造更专用的设备来执行所需的操作。
115.本公开还可以实现为计算机可读介质上的计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,之后可以由计算机系统读取数据。计算机可读介质的实
例包括硬盘驱动器、网络附接的存储装置(nas)、只读存储器、随机存取存储器、cd
‑
rom、cd
‑
r、cd
‑
rw、磁带以及其它光学和非光学数据存储装置。计算机可读介质可以包括分布在网络耦合计算机系统上以便以分布式方式存储和执行计算机可读代码的计算机可读有形介质。
116.虽然方法操作是按特定顺序描述的,但应理解,可在操作之间执行其它辅助管理操作,或者可以调整操作使其在稍微不同的时间进行,或者可以在允许以与处理相关联的各种间隔进行处理操作的系统中分布操作,只要是以期望的方式执行重叠操作的处理。
117.尽管为了清楚理解的目的已经对前述公开进行了一些详细描述,但是显而易见的是,可以在所附权利要求的范围内实践某些改变和修改。因此,本发明的实施方案将被视为说明性而非限制性的,并且本公开的实施方案不限于本文给出的细节,而是可以在所附权利要求的范围和等效物内进行修改。