首页> 中国专利> 用于在视频游戏中模仿玩家玩游戏的定制的模型

用于在视频游戏中模仿玩家玩游戏的定制的模型

摘要

公开了以旨在模仿特定玩家将如何控制角色或实体的方式训练机器学习模型以控制视频游戏中的游戏中角色或其他实体的系统和方法。可以获得与特定玩家无关地训练的通用行为模型,并且然后基于所观察的特定玩家的玩游戏定制所述通用行为模型。定制训练过程可以包括冻结通用模型中的层或层次的至少一个子集,然后生成使用所述特定玩家的玩游戏数据训练的一个或多个附加的层或层次。

著录项

说明书

相关申请的交叉引用

本申请要求享有于2019年7月2日提交的第16/460,871号美国专利申请的权益,所述美国专利申请的全部内容据此通过引用并入本文。

背景技术

视频游戏常常包括玩家控制的角色和非玩家角色(NPC)二者。传统上玩家通过经由游戏控制器(诸如具有按钮的控制器、方向垫、操纵杆和/或其他物理控制机构)、键盘、鼠标、触摸屏或其他输入设备提供的命令来控制视频游戏中的他的或她的玩家控制的角色。多玩家游戏常常使得多个远程定位的玩家能够以协作的方式——诸如在同一团队、党派、氏族或其他分组上——一起玩。多玩家游戏可以附加地或替代地包括单独地或者作为团队与其他玩家竞争的玩家。

除了玩家控制的虚拟实体或角色之外,许多视频游戏还包括软件控制的虚拟实体或角色。在视频游戏中,这些软件控制的或以编程方式控制的角色有时可以被称为计算机玩家、网上机器人(bot)、人工智能(“AI”)单元、AI角色或非玩家角色(NPC)。NPC可以被编程为以对人类玩家显得逼真的方式响应于游戏中刺激(诸如涉及其他NPC或玩家控制的角色的游戏中动作或事件)。传统上,作为游戏开发过程的一部分,通常预先编程用于给定的NPC的行为。

发明内容

本公开内容的系统、方法和设备各自具有若干创新方面,其中没有一个方面单独担负本文所公开的所有期望属性。

在一些实施方案中,一种系统可以包括数据存储器,所述数据存储器存储与一个或多个视频游戏相关联的通用玩家行为模型,其中所述通用玩家行为模型被配置为提供待在多个玩游戏情形中的每个中执行的游戏中动作的指示。所述系统还可以包括计算系统,所述计算系统与所述数据存储器电子通信并且被配置为执行计算机可读指令,所述计算机可读指令将所述计算系统配置为:从所述数据存储器检索所述通用玩家行为模型,其中在检索之前已经基于一个或多个玩家的玩游戏数据而与第一玩家的玩游戏数据无关地训练了所述通用玩家行为模型,并且所述通用玩家行为模型是包括多个层的机器学习模型;获得所述第一玩家的玩游戏数据,其中该玩游戏数据标识在视频游戏中的多个游戏状态中的每个游戏状态下由所述第一玩家执行的游戏中动作;将所述通用玩家行为模型中的所述多个层的至少一个子集指定为待在与所述第一玩家相关联的定制模型中使用的冻结层;基于所述第一玩家的所述玩游戏数据生成用于所述定制模型的一个或多个定制层,其中所述一个或多个定制层至少部分地依赖于所述通用玩家行为模型的所述冻结层,以预测在至少一个或多个游戏状态下将由所述第一玩家执行的游戏中动作;以及存储与所述第一玩家相关联的经训练的定制模型,其中所述经训练的定制模型包括所述一个或多个定制层并且还包括或依赖于所述通用玩家行为模型的所述冻结层,其中所述经训练的定制模型被配置为接收关于所述视频游戏的游戏状态的数据作为输入并且输出待在所述视频游戏中执行的自动化动作。

上文的计算机系统可以具有以下特征中的一个、全部或任何组合。所述计算系统可以是视频游戏控制台系统、移动电话、平板设备或个人计算机中之一。所述计算系统可以具有足够的处理能力来训练所述一个或多个定制层,但是处理能力不足以充分训练具有所述通用玩家行为模型的复杂性级别的模型。当被提供有未出现在所述第一玩家的所述玩游戏数据中的输入游戏状态时,在所述经训练的定制模型中使用所述冻结层可以使得所述经训练的定制模型能够确定待输出的自动化动作。所述通用玩家行为模型可以是第一深度神经网络,其中所述经训练的定制模型是包括比所述第一深度神经网络更多的层的第二深度神经网络。所述第二深度神经网络中的大多数层可以是来自所述第一深度神经网络的冻结层,并且所述一个或多个定制层可以包括与所述第一深度神经网络的原始输出层不同的新的输出层。所述计算系统还可以被配置为至少将与所述第一玩家相关联的所述定制模型的所述一个或多个定制层提供给第二玩家的第二计算系统,以使在所述第二计算系统上操作的游戏应用程序模仿所述第一玩家的玩游戏。

在一些实施方案中,一种计算机实施的方法可以包括:在包括计算机硬件的计算机系统的控制下,所述计算机系统被配置有计算机可执行指令,所述计算机可执行指令:获得通用玩家行为模型,其中基于视频游戏的多个玩家的玩游戏数据训练所述通用玩家行为模型,其中所述通用玩家行为模型被配置为提供待在多个玩游戏情形中的每个中执行的游戏中动作的指示;获得第一玩家的玩游戏数据,其中所述玩游戏数据标识在所述视频游戏中的多个游戏状态中的每个游戏状态下由所述第一玩家执行的游戏中动作,其中所述第一玩家不是与所述通用玩家行为模型的训练相关联的所述多个玩家中的一个;将所述通用玩家行为模型的多个部分并入与所述第一玩家相关联的定制模型,其中所述多个部分每个包括所述通用玩家行为模型中的一个层或层次;基于所述第一玩家的所述玩游戏数据生成用于所述定制模型的一个或多个定制部分,其中生成所述一个或多个定制部分包括训练所述定制模型以预测在特定游戏状态下将由所述第一玩家执行的游戏中动作,并且其中所述训练包括反复地更新所述一个或多个定制部分,而不改变并入所述定制模型的所述通用玩家行为模型的所述多个部分;以及将所述训练之后的所述定制模型存储为与所述第一玩家相关联的经训练的定制模型,其中所述经训练的定制模型包括所述一个或多个定制部分并且还包括或依赖于所述通用玩家行为模型的所述多个部分,其中所述经训练的定制模型被配置为接收关于所述视频游戏的游戏状态的数据作为输入并且输出待在所述视频游戏中执行的自动化动作。

上文的计算机实施的方法还可以包括以下特征中的一个、全部或任何组合。所述通用玩家行为模型可以是深度神经网络,并且所述通用玩家行为模型的所述多个部分中的每个可以是所述深度神经网络中的一个不同的层。所述通用玩家行为模型可以是可堆叠模型,其中所述通用玩家行为模型的所述多个部分中的每个是所述可堆叠模型中的一个不同的层次。所述经训练的定制模型可以被配置为,在所述经训练的定制模型被提供第一游戏状态作为输入的给定的实例中:确定所述一个或多个定制部分中的一个层次是否能够预测至少具有阈值置信度的与所述第一游戏状态相关联的第一自动化动作;以及基于所述一个或多个定制部分中的所述层次预测至少具有阈值置信度的所述第一自动化动作,导致在所述视频游戏中执行所述第一自动化动作,而不在所述给定的实例中考虑所述通用玩家行为模型的任何部分。

在其他实施方案中,上文的方法可以包括基于使用生成对抗模仿学习训练的鉴别器更新用于所述定制模型的所述一个或多个定制部分,以奖励对所述鉴别器显得是所述第一玩家的动作的所述定制模型的输出。在另一个实施方案中,所述方法可以包括:接收由第二玩家对所述视频游戏中的角色的选择以在所述视频游戏的实例中表现得好像所述角色在所述第一玩家的控制下;以及响应于所述选择,导致所述角色执行由与所述第一玩家相关联的所述定制模型确定的在所述视频游戏的所述实例内的动作。

在一些实施方案中,一种非暂时性计算机可读存储介质可以具有存储在其上的计算机可读指令,当所述计算机可读指令被执行时,所述计算机可读指令配置计算系统以执行操作。所述操作可以包括:获得通用玩家行为模型,其中所述通用玩家行为模型被配置为提供待在视频游戏中的多个玩游戏情形中的每个中执行的游戏中动作的指示;获得第一玩家的玩游戏数据,其中所述玩游戏数据标识在所述视频游戏中的多个游戏状态中的每个游戏状态下由所述第一玩家执行的游戏中动作;将所述通用玩家行为模型的多个部分并入与所述第一玩家相关联的定制模型,其中所述多个部分每个包括所述通用玩家行为模型中的一个层或层次;基于所述第一玩家的所述玩游戏数据生成用于所述定制模型的一个或多个定制部分,其中生成所述一个或多个定制部分包括训练所述定制模型以预测在特定游戏状态下将由所述第一玩家执行的游戏中动作,其中所述训练不更改并入所述定制模型的所述通用玩家行为模型的所述多个部分中的至少一个子集;以及将所述训练之后的所述定制模型存储为与所述第一玩家相关联的经训练的定制模型,其中所述经训练的定制模型包括所述一个或多个定制部分并且还包括或依赖于所述通用玩家行为模型的所述多个部分,其中所述经训练的定制模型被配置为接收关于所述视频游戏的游戏状态的数据作为输入并且输出待在所述视频游戏中执行的自动化动作。

上文的计算机可读介质还可以包括以下特征中的一个、全部或任何组合。所述操作还可以包括生成多个定制模型,所述多个定制模型中的每个被配置为模仿不同玩家的玩游戏,其中所述多个定制模型中的每个包括所述通用玩家行为模型的彼此相同的部分。所述操作还可以包括追踪在与实际玩家竞争者对抗的玩游戏中由所述多个定制模型中的每个控制的角色在所述视频游戏中的角色成功。所述操作还可以包括在所述多个定制模型中生成模型的排名,其中所述排名指示实际玩游戏中的模型的至少一个子集中的每个的相对的游戏中成功。所述操作还可以包括执行所述视频游戏内的训练环境,其中所述训练环境呈现用于玩家交互的简化的游戏状态,并且其中基于从具有所述训练环境的所述第一玩家接收的控制输入采集用于生成用于所述定制模型的所述一个或多个定制部分的训练数据。在所述训练环境内呈现的游戏状态的复杂性随着时间的过去增加。所述经训练的定制模型可以包括决策树、马尔可夫模型或深度神经网络中的至少一个。

尽管本文公开了某些实施方案和实施例,但是发明主题超出具体公开的实施方案中的实施例,扩展到其他替代实施方案和/或用途,以及其改型和等同物。

附图说明

在整个附图中,重复使用附图标记来指示引用的元件之间的对应关系。提供附图是为了例示本文所描述的主题的实施方案,而不是限制其范围。

图1例示了用于实施使得能够训练和使用玩家特定的定制行为模型的玩家模仿系统的一个或多个实施方案的联网计算环境的一个实施方案。

图2例示了图1的联网计算环境内的示例数据流。

图3是根据一些实施方案的、用于生成用于模仿特定玩家的游戏中行为的定制玩家行为模型的例示性方法的流程图。

图4提供了被训练以模仿通用玩家的多层机器学习模型和被训练以模仿特定玩家的对应的个性化多层机器学习模型的例示性视觉表示。

图5提供了被训练以使用多个堆叠层次来模仿通用玩家的可堆叠模型和使通用可堆叠模型个性化以模仿特定玩家的对应的定制层次的例示性视觉表示。

图6例示了可以实施本公开内容的各方面的计算设备的一个实施方案。

具体实施方式

本公开内容的各方面涉及以旨在模仿特定玩家将如何控制角色或实体的方式训练机器学习模型或AI代理以控制视频游戏中的游戏中角色或其他实体。在不具有覆盖在给定的视频游戏内可能遇到的潜在地非常大量的不同的游戏状态的针对该特定玩家的大量的多样的玩游戏数据的情况下,训练可信地模仿某个玩家的玩游戏的这样的定制行为模型是困难的。此外,使用除本文所描述的那些技术之外的替代技术训练这样的模型可能需要超出一般的游戏玩家的计算系统的计算机处理能力,该计算系统常常是客户端侧游戏控制台系统、个人计算机、智能电话或其他玩家设备。本公开内容的各方面提供了模型训练解决方案,所述模型训练解决方案可以导致许多不同的充分训练的定制行为模型,与许多用以定制行为模型开发的替代方法相比,所述充分训练的定制行为模型每个以较少的玩家所需的时间(诸如在采集特定玩家的训练数据期间)和较少的所需的计算机处理时间来仿效或模仿不同玩家的玩法。

例如,根据一个实施方案,可以在一大组训练数据(诸如针对特定视频游戏在许多不同玩家的玩会话中记录的玩游戏数据)上在潜在地计算昂贵的训练过程中训练综合的通用玩家行为模型或AI代理。此通用模型的至少一些部分然后可以被冻结,使得那些部分中的信息(诸如特定规则、权重和/或取决于模型的类型的其他数据)在随后的个性化阶段或特定最终用户训练过程期间将不被更改或毁坏。然后可以关于特定玩家的玩游戏数据训练附加的层或层次,以定制通用模型以效仿特定玩家的行为而不是通用或典型玩家的玩法。本文所描述的方法可以使得能够以如下方式生成定制的玩家特定的行为模型:其中该定制的模型通过特定玩家的相对少的个人训练数据(诸如,通过依赖于针对尚未在个性化训练数据中观察到的游戏状态的通用行为)最初是可用的,但是该定制的模型在对玩家的玩游戏的进一步观察期间朝向特定玩家的行为收敛。此外,在一些实施方案中,如本文所描述的,这些增长的或附加的层或层次的训练可以完全地发生在客户端设备(诸如玩家的游戏控制台系统或个人计算机)上。

本文所描述的玩家定制的模型可以被用来控制作为非玩家角色(NPC)的游戏中角色或实体。在如本文所描述的定制的行为模型的控制下的NPC可以以效仿或仿效特定实际玩家的玩法的方式在视频游戏中表现。根据本公开内容的各方面,可以基于学习过程在一个或多个玩游戏会话期间动态地构建用于特定玩家的模型,所述学习过程分析玩家响应于各种游戏状态所采取的控制命令或动作。当如本文所描述的玩家模仿系统确定它应控制给定的游戏实例中的特定角色时,诸如应那个玩家或另一个玩家的请求,经训练的玩家模仿模型可以由玩家模仿系统使用以基于当前游戏状态效仿控制或动作,所述控制或动作对那个玩家和/或其他玩家显得是若给定的玩家(在给定的玩家上特定模型被训练或被个性化)正在控制给定的角色时他将做的控制或动作。

如本文所使用的,游戏状态通常可以指关于游戏在给定的快照时刻的状态的数据,并且可以包括不同的信息,这取决于游戏的类型和在计算机存储器中表示游戏的环境的方式。游戏状态信息可以包括游戏数据,诸如角色状态、角色动作、环境状态、关于游戏中的对象和/或角色的位置信息、关于游戏中的角色和/或对象的非位置信息、速度、方向、健康和其他属性、游戏模式、级别和/或与游戏应用程序的运行时间状态相关联的其他信息。例如,对在虚拟世界中交互的潜在地许多虚拟角色(诸如玩家控制的角色和NPC二者)中的每个,游戏状态信息可以包括角色位置、角色定向、当前角色动作、属性和/或对游戏应用程序的状态有贡献的其他信息。游戏状态信息可以包括连续地改变的动态状态信息(诸如角色移动位置)和静态信息(诸如游戏内的游戏级别或地图的标识)。在一些实施方案中,游戏状态信息的至少一部分可以定期被更新,诸如每秒多次。在一些实施方案中,游戏状态信息可以在基于事件的基础上被更新。在一些实施方案中,游戏状态信息可以在个体玩家计算系统与服务器之间被异步地维持,该服务器定期向玩家计算系统发送关于反映各种其他玩家的游戏中动作的游戏状态信息的更新。

图1例示了用于实施使得能够训练和使用玩家特定的定制行为模型的玩家模仿系统的一个或多个实施方案的联网计算环境的一个实施方案。环境100包括网络108、玩家计算系统102、一个或多个其他玩家计算系统103和交互式计算系统120。为了简化讨论并且不限制本公开内容,图1仅例示了一个交互式计算系统120,尽管可以使用多个系统。

交互式计算系统120可以包括应用程序主机系统122、一个或多个数据存储器124和玩家模仿系统130。玩家模仿系统130可以与数据存储器124和/或与应用程序主机系统122通信,以获取与游戏应用程序相关联的数据、训练玩游戏行为模型和提供在游戏应用程序内的自动化游戏控制,如本文所讨论的。玩家模仿系统130可以附加地或替代地通过网络108与玩家计算系统102和/或一个或多个其他玩家计算系统103通信。尽管仅例示了一个网络108,但是可以存在多个不同网络和/或分布式网络。现在下文将更详细地描述图1中所例示的各种系统和其他部件,包括它们之间的交互或通信。

在所例示的实施方案中,交互式计算系统120包括应用程序主机系统122、数据存储器124和玩家模仿系统130。这些系统可以彼此通信。例如,玩家模仿系统130可以在采集训练数据中与应用主机系统122通信以训练用于模仿玩家行为的通用和/或定制模型。在一些实施方案中,玩家模仿系统130可以从应用程序主机系统122中的一个或多个获得与游戏应用程序相关联的数据(诸如游戏状态信息)并且可以将效仿的控制数据提供给一个或多个应用程序主机系统122。应用程序主机系统122可以与数据存储器124通信以执行和/或托管(host)游戏应用程序。在某些实施方案中,交互式计算系统120可以被认为是游戏服务器,该游戏服务器利用各种玩家计算系统(诸如玩家计算系统102和103)提供用于由玩家玩的单玩家或多玩家视频游戏的基于网络的支持。

应用程序主机系统122可以被配置为执行在玩家计算系统102上操作的游戏应用程序104和/或交互式计算系统120上的主机应用程序(未例示)的一部分。在某些实施方案中,应用程序主机系统122可以代替执行游戏应用程序104和/或主机应用程序的一部分或除了执行游戏应用程序104和/或主机应用程序的一部分之外,执行另一个应用程序,该另一个应用程序可以在游戏应用程序104的玩游戏会话的执行期间补充游戏应用程序104和/或与游戏应用程序104交互。至少部分地基于与玩家计算系统上的一个或多个游戏应用程序交互的应用程序主机系统执行的游戏的实例在本文中可以指游戏的托管实例。下文描述了关于应用程序主机系统的另一些细节。

交互式计算系统120可以使得多个玩家或计算系统能够访问游戏应用程序104和/或主机应用程序的一部分。在一些实施方案中,由交互式计算系统120的应用程序主机系统122执行的游戏应用程序104的部分可以创建持续虚拟世界。此持续虚拟世界或虚拟环境可以使得一个或多个玩家能够以同步方式和/或异步方式与虚拟世界交互以及彼此交互。在一些情况下,交互式计算系统120可以创建或托管持续虚拟世界的多个实例。一组玩家可以被分配给持续虚拟世界的一个实例或可以访问持续虚拟世界的一个实例,而另一组玩家可以被分配给持续虚拟世界的另一个实例或可以访问持续虚拟世界的另一个实例。在一些游戏中,一组玩家可以在虚拟世界的同一实例内协作地彼此交互,诸如在体育视频游戏的实例内被放置在同一团队上,或在各种类型或种类的游戏中的任何一个中在竞赛、任务、探索、战役或其他协作模式下被分组在一起。

在一些实施方案中,应用程序主机系统122可以执行用于执行游戏环境的各个方面的主机系统。例如,在一个实施方案中,游戏应用程序104可以是竞争性游戏,诸如第一人称射击游戏或体育游戏,并且主机应用程序系统122可以提供用于托管多玩家游戏实例的专用主机服务,或可以便于由玩家计算设备托管的游戏实例的创建。游戏实例内玩家之间的游戏中交互可以根据被玩的游戏的类型广泛地变化。例如,在一个游戏中一组玩家可以协作地一起工作以建立虚拟城市,而在另一个游戏中玩家可以被放置到试图在战斗模拟中互相射击的竞争双方中。本公开内容的各方面可以在几乎任何种类的视频游戏中提供益处,诸如射击游戏(诸如第一人称或第三人称射击游戏)、生存游戏、冒险游戏、体育游戏、平台游戏、角色扮演游戏、模拟游戏、策略游戏、赛车游戏等。

如本文将进一步详细描述的,玩家模仿系统130可以与其他系统通信以生成通用玩家行为模型、生成用于一个或多个特定玩家的定制玩家玩游戏模型、以及使用配置的玩家模仿模型效仿玩家的控制。玩家模仿系统130可以包括用于实施本文所描述的各种功能的一个或多个系统、子系统或部件。例如,玩家模仿系统130可以包括训练环境部件132、AI代理管理部件132、定制玩游戏建模系统136和通用玩游戏建模系统138。这些示例系统或部件并不意在是限制性的,并且玩家模仿系统130可以包括比所例示的或所描述的更少的或更多的系统或部件。

训练环境部件132可以生成视频游戏内的训练环境的实例,该训练环境的实例可以被呈现给玩家计算系统102的玩家以用于在用于针对给定的游戏的玩家模仿模型的训练阶段期间进行交互。如下文将进一步描述的,该训练环境可以呈现简化的游戏状态和/或渐进地更复杂的游戏状态以采用课程学习方法来训练该模型。在由训练环境部件132生成的训练环境内交互或玩时玩家的输入的控制命令和/或相关联的游戏中动作可以被记录并且存储用于模型训练。

通用玩游戏建模系统138和定制玩游戏建模系统136可以分别负责生成通用玩家行为模型和个性化玩家行为模型。下文将更详细地描述由玩游戏建模系统136和138提供的功能。AI代理管理部件132可以执行与定制或个性化玩家行为模型或AI代理相关联的各种管理、排名、记分、追踪和其他特征。例如,AI代理管理部件132可以在许多玩家计算系统上追踪游戏中不同AI代理的成功(诸如获胜率和各种游戏中统计),使得玩家能够搜索或浏览待与之对抗或协作地玩的AI代理,和/或与在其他玩家的游戏实例中一个玩家的定制模型的使用有关的其他特征。

玩家模仿系统130以及它的各种系统或部件可以分布在多个计算系统上。玩家模仿系统130的各种系统可以彼此通信以获得、分析和生成数据。虽然各种系统被例示为交互式计算系统120和/或玩家模仿系统130的一部分,但是将理解,每个系统的功能可以由不同或多个计算系统或设备实施。此外,单个系统可以实施本文被描述为由彼此通信的多个系统提供或实施的功能。类似地,在其他实施方案中,被描述为由交互式计算系统120的玩家模仿系统130提供的功能可以代替地被实施在玩家计算系统102处。

玩家模仿系统130可以包括模型数据存储器145。数据存储器145可以被配置为存储通用玩家模仿模型和/或定制玩家模仿模型或行为模型,诸如被训练为接收游戏状态作为输入并且输出在给定的游戏状态下真实玩家将做的预测动作或控制命令的模型。玩家模仿模型将在下文被更详细地描述,并且可以包括一个或多个通用模型和一个或多个玩家特定的模型。数据存储器145可以分布在多个计算设备(参见例如图6中的计算设备10)上。在一些实施方案中,数据存储器145可以是数据可以在不同位置存储在其中的基于网络的存储系统。

交互式计算系统120可以包括数据存储器124。数据存储器124可以被配置为存储由其他系统获取的数据,诸如,例如,遥测数据、视频数据、游戏状态信息、用户数据等。在一些实施方案中,数据存储器124可以存储与视频游戏出版商、游戏平台提供商或其他服务相关联的用户账户数据,所述用户账户数据使得用户能够在多个不同的视频游戏中维持偏好、虚拟角色、化身、成就和/或其他数据。例如,数据存储器124中的账户标识符数据可以由玩家模仿系统130使用以将存储的玩家模仿模型与特定玩家的账户相关联。数据存储器124可以分布在多个计算设备(参见例如图6中的计算设备10)中。在一些实施方案中,数据存储器124可以是数据可以在不同位置存储在其中的基于网络的存储系统。

玩家计算系统102和其他玩家计算系统103中的每个可以由不同用户(诸如视频游戏的不同玩家)控制。玩家计算系统102可以包括用于通过通信网络108建立通信的硬件部件和软件部件。例如,玩家计算系统102可以被配备有便于经由一个或多个网络(例如,互联网或内联网)通信的联网装备和网络软件应用程序(例如,网络浏览器)。玩家计算系统102可以具有各种各样的本地计算资源,诸如中央处理单元和架构、存储器(memory)、大容量存储装置(storage)、图形处理单元、通信网络可用性和带宽等。此外,玩家计算系统102可以包括任何类型的计算系统。例如,玩家计算系统102可以包括任何类型的计算设备,诸如台式计算机、膝上型计算机、游戏应用程序平台、游戏控制台系统、虚拟现实系统、增强现实系统、电视机顶盒、电视(例如,互联网电视)、网络使能的售货亭(network-enabled kiosk)、汽车控制台设备、计算机化器具、可穿戴设备(例如,具有计算功能的智能手表和眼镜)以及无线移动设备(例如,智能电话、PDA、平板计算机等),仅举几个例子。

在一些实施方案中,玩家计算系统102可以包括下文描述的部件或实施方案中的一个或多个。在一些实施方案中,个体其他玩家计算系统103可以包括与玩家计算系统102类似的部件,尽管也可以具有差异(例如,一个玩家可以从移动设备玩给定的游戏,而另一个玩家可以在台式计算机或游戏控制台系统上玩同一游戏)。

玩家计算系统102以及其他玩家计算系统103中的每个可以能够执行一个或多个游戏应用程序104,该游戏应用程序104可以本地地存储和/或执行和/或在分布式环境中存储和/或执行。通常,在本地地执行的游戏应用程序104中,游戏不依赖或不利用外部计算系统(例如,交互式计算系统120)来执行游戏应用程序。在一些实例中,可本地执行的游戏可以与外部服务器通信,以检索与该游戏相关联的信息,诸如游戏补丁、游戏身份验证、云保存、定制虚拟角色数据、用户账户数据或其他特征。在分布式游戏应用程序中,玩家计算系统102可以执行游戏的一部分,并且交互式计算系统120或交互式计算系统120的应用程序主机系统122可以执行游戏的另一部分。例如,该游戏可以是大型多玩家在线角色扮演游戏(MMORPG),该大型多玩家在线角色扮演游戏包括由玩家计算系统102和103中的每个执行的客户端部分和由一个或多个应用程序主机系统122执行的服务器部分。对于目前的讨论,游戏应用程序104的类型可以是可本地地执行的游戏、分布式应用程序或包括在玩家计算系统102上执行的一部分和在应用程序主机系统122中的至少一个上执行的一部分的应用程序。

玩家计算系统102和其他玩家计算系统103可以包括定制模型部件105。定制模型部件105在图1中被例示为游戏应用程序104的一部分,但是在其他实施方案中可以被包括在单独的应用程序、插件或其他形式中。定制模型部件105可以负责基于本地玩家的游戏中行为训练行为模型的定制层或层次。玩家计算系统102处的定制模型部件105和玩家模仿系统130的定制玩游戏建模系统136可以提供类似的功能,使得在给定的实例中使用或甚至在给定的实施方案中存在仅它们中的一个。例如,对定制模型的训练将在客户端侧上(诸如在玩家计算系统102处)发生的实例可以包括采用定制模型部件105,而在服务器侧上对定制模型的训练可以涉及采用定制玩游戏建模系统136。

玩家计算系统102可以包括数据存储器126。数据存储器126可以被配置为存储与一个或多个游戏应用程序104相关联的数据、与由交互式计算系统120为玩家维持的账户相关联的本地账户数据、玩游戏历史数据、和/或其他游戏相关的或账户相关的数据。在一些实施方案中,数据存储器126可以可选地存储用于特定玩家的定制玩家模仿模型数据的本地副本,以使得玩家能够本地地对抗他自己的先前版本、自动播放(auto-play)单玩家游戏的一部分和/或在不存在与交互式计算系统120的网络连接时用于其他用途。数据存储器126可以附加地包括对预先训练的通用玩家行为模型(该预先训练的通用玩家行为模型最初可能已经由玩家模仿系统130生成)的存储,一个或多个定制模型可能依赖或引用该预先训练的通用玩家行为模型。数据存储器126可以附加地存储其他玩家的定制行为模型,诸如使得特定玩家能够与表现得像玩家的特定朋友或众所周知的玩家的NPC对抗或协作地玩的模型。数据存储器126可以分布在多个计算设备(参见例如图6中的计算设备10)中。

尽管上文单独地描述了各种系统,但是应注意,这些系统中的一个或多个可以组合在一起。例如,所述系统中的一个或多个可以由同一计算设备(参见例如图6中的计算设备10)执行,或由与图1中所例示的不同的计算系统执行。在一些实施方案中,玩家模仿系统130可以在与玩家计算系统102相同的计算设备上被执行。另一方面,一个或多个系统可以由多个计算设备执行。例如,玩家模仿系统130的一部分或子系统可以由玩家计算系统102实施,而另一部分或子系统可以由服务器实施。

图2例示了图1的联网计算环境内的示例数据流。为了便于例示,图2的数据流未指定所例示的部件或系统之间的个体通信是通过网络还是在单个计算系统或设备内是本地的。虽然在图1中例示了并且上文描述了一个示例网络布置,但是将理解,图1中被例示为单个计算系统的一部分的部件或子系统(诸如玩家模仿系统130的系统和部件)代替地可以相对于彼此远程地定位。类似地,在一些实施方案中,图1中被例示为彼此网络通信的其他系统(诸如玩家计算系统102和玩家模仿系统130)可以在单个计算系统上被一起操作,或可以彼此直接本地通信而不是通过网络通信。

如图2中所例示的,在步骤(1)处,利用玩家计算系统103中的至少一些的玩家可以经由应用程序主机122玩一个或多个托管游戏,这包括应用程序主机系统122实时地接收在玩家玩托管游戏实例时由玩家输入的游戏中动作或控制命令。替代地或附加地,在步骤(1)处,玩家计算系统103中的至少一些可以向交互式计算系统120提供关于相应的玩家计算系统处的先前的或最近的玩游戏会话的遥测数据。例如,在玩家计算系统103上操作的游戏应用程序或相关联的软件可以由交互式计算系统120的操作者配置为在个体玩家计算系统处本地地记录某些用户玩游戏数据(诸如由玩家执行的游戏中动作以及对应的游戏状态数据),然后诸如在分批过程中,将玩游戏数据和/或其他遥测数据上传或以其他方式提供给交互式计算系统120。

利用玩家计算系统103中的一个的个体玩家可能正在玩在线多玩家游戏应用程序,该在线多玩家游戏应用程序被配置为与应用程序主机系统122通信以接收实时地受正在执行它们自己的该游戏程序的副本的其他玩家计算系统103影响的共享游戏状态信息。因此,应用程序主机系统122可以使得多玩家游戏中的其他玩家能够与利用玩家计算系统102的玩家与虚拟世界的同一实例交互,并且可以不断地更新在不同玩家计算系统中当前共享的游戏状态,以反映玩家中的每个的交互(以及程序化(programmatic)环境改变、NPC操作等)。

玩家控制命令可以包括例如沿着第一轴线(诸如向上/向下)的或提供给第一操纵杆(诸如左操纵杆)的方向输入、沿着第二轴线(诸如向左/向右)提供的或提供给第二操纵杆(诸如右操纵杆)的第二方向输入、按钮(诸如A、B、X、Y、Z、左前按键(left bumper)、右前按键(right bumper)、启动、选择、连按(turbo)、鼠标点击和手指敲击等)是否被按压以导致视频游戏中的单元或角色执行分配的动作、和/或其他输入数据。玩家控制命令可以通过各种输入设备和输入格式中的任何一种来提供,诸如通过控制器、通过鼠标和键盘、通过语音命令、通过触摸屏、通过手势等。在其他实施方案中,实际的按钮按压、鼠标点击、手势或其他信息可以由本地地位于相应的玩家计算系统处的游戏应用程序处理,并且可以被转化为游戏中动作(例如,虚拟角色开枪或向左转90度、玩家选择在某些游戏中地图坐标处部署军队等),其中此游戏中动作或玩家输入的其他结果作为玩家控制命令被提供给应用程序主机系统。

在步骤(2)处,交互式计算系统120可以将接收的或采集的各个玩家的各种玩游戏数据和/或遥测数据存储在数据存储器124中。在一些实施方案中,这可以包括对于数百或甚至数千个不同玩家的数千个游戏实例中的每个存储遥测数据或游戏交互数据。接下来,在步骤(3)处,在数据存储器124中存储的玩游戏数据的全部或子集可以被选择作为用于训练通用玩游戏模型的训练数据。例如,在通用模型意在模仿平均的玩家的玩游戏的实施方案中,一组平均的或接近平均的(诸如在平均以下或以上的某个百分比阈值内)玩家的实际玩游戏历史可以被选择作为训练数据(其中该平均可以是关于获胜率或对于玩家追踪的任何其他游戏中度量或统计)。在其他实施方案中,可以从特定玩家的游戏会话记录所选择的训练数据,诸如专门出于训练通用模型的目的而玩游戏的专家级玩家,诸如通过特意地试图以经训练的通用行为模型所期望的适当的技术水平来玩。

接下来,在步骤(4)处,通用玩游戏建模系统138可以基于所选择的训练数据训练通用玩家行为模型。根据该实施方案,为了通用玩家行为模型所采用的模型或算法的类型可以变化。例如,模型可以包括一个或多个决策树、马尔可夫模型、卷积神经网络、深度神经网络、各种学徒学习算法、逆强化学习算法、对抗网络(诸如生成对抗模仿学习)和/或基于所观察的玩家的行为对行为建模的其他方法。通常通用模型可以被训练以学习玩家在各种游戏情形或游戏状态下倾向于采取的控制命令或游戏中动作。因此,作为训练的结果,模型可以被配置为预测真实玩家可能在给定的游戏状态下执行的游戏中动作。

例如,在篮球视频游戏中,通用模型可以通过训练过程学习游戏状态,在所述游戏状态下,典型玩家倾向于输入控制命令以使游戏中虚拟角色传球、投篮、在特定方向上奔跑、执行特定移动、跳跃以阻止投篮、冲刺等。在此实施例中,可能由模型考虑的相关游戏状态信息可以包括数据,诸如队友和对方团队的角色所位于的位置(二者都在虚拟球场上并且相对于彼此)、一节和/或游戏中剩余的时间、团队之间的当前分数差异、投篮时限钟上剩余的时间、剩余的犯规等。用于捕获游戏状态信息的实施例,包括虚拟世界中角色的相对定位,以及训练机器学习模型来效仿人类玩家,被描述于2018年5月21日提交的并且题为“ARTIFICIAL INTELLIGENCE FOR EMULATING HUMAN PLAYSTYLES”的第15/985,347号美国专利申请中,所述美国专利申请的全部内容据此通过引用并入本文。

一旦已经生成了通用玩家行为模型,就可以在步骤(5)处将该模型存储在模型数据存储器145中。在步骤(6)处,在特定玩家(在此实施例中利用玩家计算系统102)期望在某个稍后的时间点训练定制行为模型的时间处或在该时间之前,可以从模型数据存储器145检索经训练的通用模型,并且将该经训练的通用模型从玩家模仿系统130提供给玩家计算系统102。游戏应用程序104然后可以被配置为部分地基于包括在游戏应用程序104内的或由玩家计算系统102结合该游戏应用程序的执行而以其他方式执行的定制模型部件105的使用来定制用于特定玩家的通用模型。通用模型的定制或个性化可以包括冻结或以其他方式防止通用模型的层或层次中的至少一些的毁坏或改变,同时建立反映所观察的特定玩家的玩法与通用模型中所捕获的行为的偏离的附加的层或层次。下文将关于图3-图5进一步描述这些定制层或层次的生成。

在步骤(9)处,被生成以捕获特定玩家的独特的游戏行为的定制层或层次可以被本地地存储在玩家计算系统102处,和/或可以被提供给玩家模仿系统130用于存储。例如,在一些实施方案中,模型数据存储器145可以存储大量不同的经训练的定制模型,所述经训练的定制模型每个已经关于不同玩家的所观察的玩游戏而被训练。在一些实施方案中,玩家可以能够与其他玩家共享他训练过的模型,以使得其他玩家可以与他的虚拟版本对抗(例如,与表现得类似于给定的玩家将控制该角色的方式的NPC对抗)。在一些实施方案中,玩家模仿系统130可以追踪在与实际玩家竞争者对抗的玩游戏中由多个定制模型中的每个控制的角色在视频游戏中的角色成功,并且可以基于模型的游戏中成功或表现生成AI代理或相关联的模型的排名。

给定的个性化的、经训练的模型可以被用于各种各样的目的。例如,该模型可以被用来自动地接管对由在游戏中期失去网络连接或其他控制能力的玩家先前控制的角色的控制,如在2019年3月27日提交的并且题为“AUTOMATED PLAYER CONTROL TAKEOVER IN AVIDEO GAME”的第16/367,139号美国专利申请中进一步描述的,美国专利申请的全部内容据此通过引用并入本文。附加地或替代地,玩家可以选择经训练的模型作为AI代理以与她自己对抗(例如,通过加载她自己的先前经训练的模型来与表现得类似于她的在前的训练数据的NPC对手对抗练习)或与她自己玩(例如,通过加载她的定制的经训练的模型中的一个定制的经训练的模型来控制游戏实例中的她的NPC队友中的一个)。在一些实施方案中,玩家可以使她的定制模型与其他玩家可共享,这可以提供一种与冠军或特别熟练的玩家如他们在过去执行的或当前执行的那样对抗练习的方式,或一种使得玩家的虚拟版本能够在玩家不在时在比赛或竞赛中与朋友一起玩或与朋友对抗的方式。

虽然已经关于其中玩家计算系统102本地地执行游戏应用程序104并且通过在玩家计算系统处本地地实施定制模型部件105来将通用模型个性化的实施方案描述了图2,但是在其他实施方案中,利用玩家计算系统102训练定制模型的玩家可以玩游戏的托管实例。例如,可以经由应用程序主机系统122采集用于定制模型开发的训练数据,并且可以由玩家模仿系统130的定制玩游戏建模系统136生成模型的定制层。

图3是根据一些实施方案的、用于生成用于模仿特定玩家的游戏中行为的定制玩家行为模型的例示性方法300的流程图。在一些实施方案中,方法300可以全部地或部分地由游戏应用程序104、玩家模仿系统130、玩家计算系统102、交互式计算系统120或其他应用程序部件或模块实施。尽管任何数目的系统可以全部地或部分地实施方法300,但是为了简化讨论,将关于玩家计算系统102的特定部件(诸如定制模型部件105)描述方法300。在其他实施方案中,类似的方法可以由玩家模仿系统130实施,诸如由定制玩游戏建模系统136实施。

例示性方法300在块302处开始,在此定制模型部件105可以获得用于视频游戏的经充分训练的玩家行为模型,其中该模型是使用除第一玩家之外的一个或多个玩家的玩游戏数据训练的通用模型。如上文关于图2先前所描述的,可以从玩家模仿系统130接收通用模型,该玩家模仿系统130可能已经使用大量历史玩家行为数据训练了通用模型,以学习如何以可信地仿效或效仿通用或平均质量的玩家(或任何其他期望的技术水平的玩家,取决于所选择的训练数据)的方式控制游戏中角色。如本文其他地方所讨论的,预先训练的通用模型可以具有各种类型,包括基于规则的可堆叠层次、决策树、深度神经网络、马尔可夫模型和/或其他。

在块304处,定制模型部件105可以收集第一玩家的玩游戏数据,其中该玩游戏数据标识在各种各样的游戏状态中的每个游戏状态下由第一玩家执行的游戏中动作。在一些实施方案中,所收集的玩游戏数据通常可以包括:对特定游戏中动作的记录,所述特定游戏中动作是在特定游戏状态下玩家导致游戏中的玩家控制的角色采取的特定游戏中动作(例如,当其他角色在该环境中的某些位置、在游戏中剩余一定时间和具有某一分数时,玩家导致篮球游戏中的角色从虚拟球场上的某个位置做三分跳跃投篮尝试);和/或由玩家输入的实际控制命令(例如,在特定游戏状态期间,在某一时间玩家按压游戏控制器上的“A”按钮)。所收集的玩游戏数据可以包括在玩家正常地玩视频游戏时(例如,不在特定的游戏中训练环境中)记录的玩游戏数据,和/或可以包括在游戏中的虚拟训练环境中采集的玩游戏数据,该虚拟训练环境由游戏开发者设计,以相对于在正常的玩游戏中记录的玩游戏数据提高用于定制模型的训练数据的质量。

在提供训练环境用于玩家与视频游戏交互的实施方案中,游戏应用程序104可以生成训练环境的实例,所述实例被呈现给玩家计算系统102的用户以在针对特定玩家的定制模型开发的训练阶段期间用于交互。该训练环境可以呈现简化的游戏状态,所述简化的游戏状态被设计为当在该训练环境中玩时基于玩家控制输入或命令采集训练数据。例如,在篮球视频游戏中,其中典型的游戏中环境包括十个游戏中角色(例如,五对五游戏在两个团队中的每个上包括五个角色),该训练环境可以呈现简化的状态或沙盒状态,在所述状态下,仅存在的角色是玩家控制的角色和单个AI控制的或NPC队友。

一旦在第一简化的游戏状态下已经观察到训练数据,该训练环境就可以逐渐呈现越来越复杂的游戏状态用于玩家交互,诸如在呈现典型的游戏状态(例如五对五)之前,从一对一移动到二对二、三对三、和/或其他简化的状态。呈现的游戏状态可以包括玩家以执行某些动作为任务的演习或其他场景。相应地,训练可以利用允许训练模型以在学习更复杂的任务之前学习简单的任务的机器学习中的课程学习方法。

在块306处——该块可以发生在在块304处收集玩游戏数据之前或之后,定制模型部件105可以指定通用模型中的层次或层的至少一个子集以被重复使用为意在效仿所观察的第一玩家的行为的定制模型中的冻结层或层次。如本文中所使用的,冻结特定层或层次可以指在待被训练的新模型中重复使用现有模型的给定的层次或层,但是在用于新模型的训练过程中将那些重复使用的层次或层指定为静态的或不可变的。例如,在神经网络中,冻结一个层可以包括在随后的训练期间将一层节点、它们的从前一层传入的连接以及它们的相关联的权重指定为固定的或锁定的。作为另一个实施例,对于基于规则的模型——该基于规则的模型可以包括可堆叠模型、决策树或其他结构,冻结一个层可以包括将包括在给定的层次内的特定规则、权重和/或逻辑指定为不可变的(例如,不可以从该模型删除或移除该规则,尽管新的定制层次和相关联的规则可以最终优先于冻结层次,如下文将讨论的)。

如下文将关于图4和图5讨论的,在定制模型中被指定为冻结的或以其他方式重复使用的通用模型的具体的层或层次可以根据在给定的实施方案中使用的建模的类型而变化。例如,在通用模型是深度神经网络的一些实例中,通用模型的除节点或神经元的最后一层以外的所有层都可以被重复使用和冻结以用于定制模型训练。在另一个实施方案中,诸如关于下文讨论的可堆叠模型,从定制模型中的重复使用指定的冻结层次可以包括整个通用模型。

在块308处,定制模型部件105可以基于所收集的第一玩家的玩游戏数据生成用于定制模型的一个或多个定制层或层次,其中所述定制层或层次将与通用模型的冻结层或层次结合使用。如下文将关于图4和图5讨论的,用于定制模型的新的层或层次可以采取不同的形式并且相对于冻结的通用层或层次具有不同的相对位置或优先性,这取决于实施方案和模型类型。例如,可以将一个或多个新的输出层添加到深度神经网络,使得新的层具有从通用模型的最后一个冻结层的节点传入的连接(其可以被认为是“后缀”实施方案)。在其他实施方案中,诸如下文描述的可堆叠模型,可以在通用层次之前或优先于通用层次生成或添加一个或多个新的层次(其可以被认为是“前缀”实施方案)。

对定制模型的训练通常可以包括将从玩家观察的训练输入数据(上文在块304处所收集的)提供给初始定制模型(其最初可以包括冻结层或层次,连同将在训练过程中被修改的一个或多个未训练的层或层次),以及采用各种各样的机器学习方法,这取决于模型的形式和实施方案。在一些实施方案中,输入训练数据可以包括与在玩游戏期间的许多快照时刻中的每个处的游戏状态相关联的特征,连同在那些时刻中的每个处由玩家输入的游戏中动作或控制命令的指示。在深度神经网络的实施例中,训练数据可以逐渐地调整与新添加的定制层相关联的连接和权重,而来自通用模型的较早的冻结层保持不变。在一些实施方案中,训练定制模型可以包括采用奖励最大化技术,诸如使用生成对抗模拟学习(GAIL)来奖励定制行为模型的行为,在GAIL建模内被训练的鉴别器将定制行为模型的行为标记为玩家的动作(与AI角色的人工动作相反)。在其他实施方案中,可以使用其他形式的强化学习来改进定制模型。

在一些实施方案中,训练定制模型可以包括更新马尔可夫模型,以对于给定的游戏状态或类似的游戏状态反映更新的玩家行为统计。例如,可以鉴于特定的输入训练数据来更新该模型,以反映比先前玩家将在类似的未来游戏状态下执行给定的动作或命令的可能性更高的可能性(例如,当在防守上并且在球场的某一部分上站立在投篮者的某一距离内时跳跃以阻挡投篮的可能性)。不同的模型或模型类型可以具有应用于游戏状态的各种水平的量化、舍入或提取,对于所述游戏状态,规则被存储和/或被提供作为训练数据。例如,游戏状态可以在该模型中被非常广泛地标识,诸如“在游戏时钟上还剩一秒时持球”,或更具体地,诸如“在防守上、防卫持球的对手、具有五次犯规、团队领先5分以上、站立在半场附近”等。

在块310处,一旦对定制模型的至少一个初始训练已经发生,定制模型部件105就可以存储用于效仿第一玩家的玩游戏的经训练的定制模型,其中该定制模型包括或依赖于通用模型的冻结层或层次。因为冻结层应保留在训练通用模型中学习的重要行为,所以该定制模型可以是在训练中在早期可使用的,而不会由于缺乏定制训练数据因而模型遇到未知的游戏状态或以其他方式选择不寻常的游戏中动作。因此,虽然定制模型可以在较长的训练时期内朝向像特定玩家那样表现缓慢地收敛更多,但是训练可以随着时间的过去递增地发生,而无需在适合于实际的游戏中使用以控制NPC之前达到特定的阈值。

在一些实施方案中,在块310处,仅定制层或层次被存储,具有对定制层或层次建立在其上的通用模型的引用或关联,使得可以关于相同通用模型存储多个定制模型,而不在不同的模型上反复地存储相同的冻结通用层或层次。在其他实施方案中,定制模型可以被存储为单个完整模型,包括来自通用模型的冻结层或层次。一旦定制模型被本地地存储和/或被提供回另一个系统,诸如用于在模型数据存储器145中远程存储,例示性方法300就在块312处结束。

图4提供了被训练以模仿通用玩家的多层机器学习模型410和被训练以模仿特定玩家的对应的个性化多层机器学习模型420的例示性视觉表示。在一个实施方案中,模型410可以是深度神经网络。例如,通用模型410的1到N层中的每个可以包括许多节点或神经元,所述节点或神经元可以具有如下边缘或连接,所述边缘和连接具有与前一层的节点或神经元相关联的权重,如在机器学习领域中已知的。第一层N可以接收来自输入层412A的输入,并且最后一个隐藏层N可以包括到输出层418A的一个或多个连接。在通用模型被训练之后,在所例示的实施方案中,通用模型410的隐藏层1到N可以被冻结并且被保留用于在训练待被训练以效仿特定玩家的行为的个性化模型420中的重复使用。

在训练个性化模型420中,可以在输入层412B与第一冻结层1之间生成边缘,并且可以生成一个或多个新的层(在所例示的实施例中其包括层N+1)。可以通过上文所讨论的定制训练阶段来学习与新的层相关联的边缘和权重,其中由输出层418B提供最终输出(诸如待被执行的预测的游戏中动作)。

图5提供了被训练以使用多个堆叠层次来模仿通用玩家的可堆叠模型510(在该图中被称为通用可堆叠模型)和使通用可堆叠模型个性化以模仿特定玩家的对应的定制层次(在该图中被称为定制可堆叠模型的定制层次和通用可堆叠模型的组合使用)的例示性视觉表示。虽然图5提供了具有通过相继的层次的单个线性检查路径的通用模型的实施例,但是应理解,本文所描述的定制行为建模特征的各种优点可能不特定于任何特定的模型类型。例如,如上文所讨论的,在其他实施方案中,如本文所描述的玩家模仿模型可以采取其他形式,诸如决策树、马尔可夫模型、各种集成学习方法、深度神经网络和/或对行为建模或控制视频游戏中的AI或NPC实体的其他方法。因此,下文关于图4描述的例示性实施例不应被解读为限制可以在定制通用玩家行为模型中采用的AI或行为模型的类型。

如图5中所例示的,当前游戏会话数据可以被提供作为到经训练的通用可堆叠模仿模型510的输入。当前游戏会话数据可以包括,例如,当前正在玩的游戏的游戏状态数据、玩家输入、采取的动作、虚拟环境数据和/或可以影响在给定的游戏中情形下玩家对命令或动作的选择的任何其他游戏数据。通用模型可能先前已经被训练成以仿效、效仿或模仿在许多所观察的玩家的历史玩游戏数据中典型的玩家行为的方式来控制游戏中角色。在训练中使用的训练数据和在给定的实例中提供的游戏状态输入数据二者可能首先已经具有对所接收的原始游戏会话数据的应用量化、压缩、舍入或其它操纵。

如图5的通用可堆叠模型510的视觉表示中所示出的,该通用模型是可堆叠模型,在该可堆叠模型中,较高优先级的动作或状态已经被存储在在该模型中首先被检查的较低编号的层次中。例如,层次1可以暗指非常可能超越较低层次处的其他游戏状态因素或规则的游戏状态因素或规则(例如,如果玩家的角色正从近距离被射击,那可以是确定进行奔跑的响应动作的足够的游戏状态信息,即使该玩家的角色之前在特定的当前地图位置从未被射击过,或该玩家的角色当在当前地图位置时通常不奔跑)。如所例示的,考虑到当前游戏状态和与层次1相关联的规则或游戏状态信息,通用模型可以首先确定玩家将执行与层次1相关联的特定动作的置信度分数。如果该置信度分数满足阈值,则该通用模型可以停止继续进行通过多个层次,并且可以输出在层次1处确定的动作。

否则,通用模型510可以继续进行通过其多个层次,将当前游戏状态向下传递到每个相继的可堆叠层次直到确定具有满足阈值的置信度分数的动作。如果达到通用模型510的最后一个层次(在图5中被标识为层次N)并且该最后一个层次无法基于当前游戏状态确定动作,则可以确定默认动作或回退动作。在一些实施方案中,回退动作可以是不做任何事情或继续任何先前的动作(例如,如果虚拟角色已经正在行走,则在当前方向上保持行走)。在其他实施方案中,当给定的通用模型不具有建议的动作时,通用模型510可以将游戏状态信息传递到不同的模型(未例示)以确定动作。

如图5中进一步例示的,定制可堆叠模型520可以包括(类似于通用定制模型510)许多层次,所述层次被示出为层次c1到层次cN。定制层次可能已经被生成,以便捕获所观察的特定玩家(对该特定玩家定制模型被训练)的玩家行为与在通用模型的层次中捕获的行为之间的差异。在此实例中,在开始创建在通用模型510的层次上建立的定制层次c1到cN的定制训练过程之前,通用模型510可能已经使它的层次冻结或锁定。

在针对特定玩家的训练过程期间更新定制可堆叠模型520可以包括向模型反复地添加新的堆叠或层次,所述新的堆叠或层次每个基于训练数据中的给定的所观察的游戏状态包括新的规则。此方法可以实时地实现模型的迭代建立,而不是实施模型的完全重新训练。在如下一些实例中:其中在定制训练阶段期间新观察的来自玩家的游戏中动作或控制命令没有大幅偏离通用模型的对典型玩家在给定的游戏状态下将如何表现的预测,可以依赖通用模型来处理给定的游戏状态,而不创建任何新的定制层次。

经训练的定制模型520的使用可以涉及接收输入数据,诸如游戏的实时实例内的当前游戏状态信息,迭代检查通过定制层次(例如,层次c1到层次cN),直到定制层次在动作中具有足够的置信度以作为对游戏中的表现的回报为止,如果有的话。如果定制模型520的所有层次都未能确定对于给定的输入游戏状态数据而待在游戏中执行的动作(例如,在定制训练数据中尚未观察到输入游戏状态,或者已经观察到输入游戏状态但是在训练中确定响应玩家动作没有大幅偏离通用模型510),则输入游戏状态数据可以被传递到通用可堆叠模型510以如上文所讨论的那样被处理。

图6例示了根据本公开内容的计算设备10的一个实施方案。计算设备10的其他变型可以代替本文明确呈现的实施例,诸如移除部件或向计算设备10添加部件。计算设备10可以包括游戏设备、智能电话、平板计算机、个人计算机、膝上型计算机、智能电视、汽车控制台显示器、服务器等。计算设备10也可以分布在多个地理位置。例如,计算设备10可以是一群基于云的服务器。在一些实施方案中,玩家计算系统102可以包括图6中所例示的部件中的一个或多个,而在其他实施方案中,交互式计算系统120可以包括图6中所例示的部件中的一个或多个。

如所示出的,计算设备10包括处理单元20,该处理单元20与计算设备10的其他部件以及计算设备10的外部部件交互。包括与游戏介质12通信的游戏介质读取器22。游戏介质读取器22可以是能够读取光盘(诸如CD-ROM或DVD)的光盘读取器,或能够从游戏介质12接收和读取数据的任何其他类型的读取器。所述计算设备中的一个或多个可以被用来实施本文所公开的系统中的一个或多个。

计算设备10可以包括分立的图形处理器24。在一些情况下,图形处理器24可以内置在处理单元20内。在一些这样的情况下,图形处理器24可以与处理单元20共享随机存取存储器(RAM)。替代地或附加地,计算设备10可以包括与处理单元20分立的独立图形处理器24。在一些这样的情况下,图形处理器24可以具有与处理单元20分立的RAM。计算设备10可以是手持游戏应用程序设备、专用游戏控制台计算系统、通用膝上型计算机或台式计算机、智能电话、平板计算机、汽车控制台或其他合适的系统。

计算设备10还包括用于使能输入/输出的各种部件,诸如I/O 32、用户I/O 34、显示I/O 36和网络I/O 38。I/O 32与存储元件40交互,并且通过设备42与可移动存储介质44交互,以为计算设备10提供存储。处理单元20可以通过I/O 32通信以存储数据,诸如游戏状态数据和任何共享数据文件。除了存储装置40和可移动存储介质44之外,还示出了计算设备10包括ROM(只读存储器)46和RAM 48。RAM 48可以被用于频繁存取的数据,诸如当正玩游戏时。

用户I/O 34被用来在处理单元20和用户设备(诸如游戏控制器)之间发送和接收命令。在一些实施方案中,用户I/O 34可以包括触摸屏输入。触摸屏可以是电容性触摸屏、电阻性触摸屏或被配置为通过来自玩家的触觉输入来接收用户输入的其他类型的触摸屏技术。显示I/O 36提供被用来显示来自正玩的游戏的图像的输入/输出功能。网络I/O 38被用于网络的输入/输出功能。可以在游戏的执行期间——诸如当正在线玩游戏或正在线访问游戏时——使用网络I/O 38。

通过显示I/O 36产生的显示输出信号包括用于在显示设备上显示由计算设备10产生的视觉内容的信号,所述视觉内容诸如是图形、用户界面、视频和/或其他视觉内容。计算设备10可以包括被配置为接收通过显示I/O 36产生的显示输出信号的一个或多个集成显示器。根据一些实施方案,通过显示I/O 36产生的显示输出信号也可以被输出到计算设备10外部的一个或多个显示设备。

计算设备10还可以包括可以与游戏一起使用的其他特征,诸如时钟50、闪存52和其他部件。音频/视频播放器56也可以被用来播放视频序列,诸如电影。应理解,可以在计算设备10中设置其他部件,并且本领域技术人员将理解计算设备10的其他变型。

程序代码可以被存储在ROM 46、RAM 48或存储装置40(其可以包括硬盘、其他磁性存储装置、光学存储装置、其他非易失性存储装置或这些的组合或变型)中。程序代码的一部分可以被存储在可编程的ROM(ROM、PROM、EPROM、EEPROM等),程序代码的一部分可以被存储在存储装置40中,和/或被存储在可移动介质上,所述可移动介质诸如是游戏介质12(其可以是CD-ROM、盒带、存储器芯片等,或可以是根据需要通过网络或其他电子通道获得的)。通常,程序代码可以被发现嵌入在有形的非暂时性信号承载介质中。

随机存取存储器(RAM)48(并且可能是其他存储装置)可用于根据需要存储变量以及其他游戏和处理器数据。使用RAM 48并且RAM保持在应用程序的执行期间生成的数据,并且RAM的部分还可能保留用于帧缓冲区、应用程序状态信息和/或需要或可用于解译用户输入和生成显示输出的其他数据。通常,RAM 48是易失性存储装置,并且当计算设备10关闭或丢失电力时,RAM 48内存储的数据可能丢失。

当计算设备10读取游戏介质12并且提供应用程序时,可以从游戏介质12读取信息并且将所述信息存储在存储器设备(诸如RAM 48)中。此外,来自存储装置40、ROM 46、经由网络访问的服务器(未示出)或可移动存储介质44的数据可以被读取并且加载到RAM 48中。尽管数据被描述为在RAM 48中查找,但是应理解,数据不必须被存储在RAM 48中,并且可以被存储在处理单元20可访问的其他存储器或可以被分布在几个介质(诸如游戏介质12和存储装置40)之间。

应理解,根据本文所描述的任何具体实施方案不一定可以实现所有的目标或优点。因此,例如,本领域技术人员将认识到,某些实施方案可以被配置为以实现或优化如本文所教导的一个优点或一组优点而不一定实现如本文可能教导或暗示的其他目标或优点的方式操作。

本文所描述的所有过程均可以体现在软件代码模块中并且经由软件代码模块完全自动化,所述软件代码模块由包括一个或多个计算机或处理器的计算系统执行。代码模块可以被存储在任何类型的非暂时性计算机可读介质或其他计算机存储设备中。一些或所有所述方法可以以专用的计算机硬件来实施。

根据本公开内容将明了除本文所描述的那些之外的许多其他变型。例如,根据实施方案,本文所描述的算法中的任何一个的某些动作、事件或功能可以以不同的顺序执行,或可以被添加、合并或完全被省略(例如,对于算法的实行而言,并非所有描述的动作或事件都是必需的)。此外,在某些实施方案中,动作或事件可以被同时执行,例如,通过多线程处理、中断处理或多个处理器或处理器内核被同时执行或在其他并行架构上被同时执行,而不是被顺序地执行。此外,不同的任务或过程可以由可以一起运行的不同机器和/或计算系统来执行。

结合本文所公开的实施方案描述的各种例示性逻辑块和模块可以由机器实施或执行,所述机器诸如是处理单元或处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、独立门或晶体管逻辑、独立硬件部件或被设计成执行本文所描述的功能的其任何组合。处理器可以是微处理器,但在替代方案中,处理器可以是控制器、微控制器或状态机,其组合等。处理器可以包括被配置为处理计算机可执行指令的电路。在另一个实施方案中,处理器包括执行逻辑操作而不处理计算机可执行指令的FPGA或其他可编程器件。处理器还可以被实施为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器连同DSP内核或任何其他这样的配置。虽然本文主要关于数字技术描述了处理器,但是处理器还可以包括主要是模拟性的部件。例如,本文所描述的信号处理算法中的一些或全部可以被实施在模拟电路或混合模拟和数字电路中。计算环境可以包括任何类型的计算机系统,包括但不限于:基于微处理器的计算机系统、大型计算机(mainframe computer,主机计算机)、数字信号处理器、便携式计算设备、设备控制器或器具内的计算引擎,仅举几个例子。

除非另外特别说明,否则条件性用语,诸如“能(can)”、“可(could)”、“可能(might)”或“可以(may)”等,应在上下文中如通常所使用的被理解为表达:某些实施方案包括某些特征、要素和/或步骤,而其他实施方案不包括所述的某些特征、要素和/或步骤。因此,这样的条件性用语通常并不意在暗示:特征、要素和/或步骤以任何方式是一个或多个实施方案所需要的,或一个或多个实施方案必定包括用于判定--在具有或不具有用户输入或提示的情况下--这些特征、要素和/或步骤是否被包括在任何具体实施方案中或是否要在任何具体实施方案中执行的逻辑。

除非另外特别说明,否则析取性(disjunctive)用语,诸如短语“X、Y或Z中的至少一个”,应在上下文中如通常所使用的被理解为表示:项、术语等可以是X、Y或Z,或它们的任何组合(例如,X、Y和/或Z)。因此,这样的析取性用语通常并不意在并且不应当暗示,某些实施方案需要至少一个X、至少一个Y或至少一个Z均存在。

在本文所描述的和/或在附图中所描绘的流程图中的任何过程描述、要素或块均应被理解为潜在地表示包括用于实施过程中的特定逻辑功能或要素的一个或多个可执行指令的代码模块、代码段或代码部分。在本文所描述的实施方案的范围内包括替代的实施方式,在所述替代的实施方式中,要素或功能可以被删除、不按照所示出的或讨论的顺序执行,包括大体上同时执行或以颠倒的顺序执行,这取决于所涉及的功能,如本领域技术人员会理解的。

除非另外明确说明,否则冠词,诸如“一个(a)”或“一(an)”,通常应被解释为包括一个或多个所描述的项。相应地,诸如“被配置成……的设备”之类的措辞意在包括一个或多个所叙述的设备。这样的一个或多个所叙述的设备还可以被共同配置为执行所陈述的叙述项(recitation)。例如,“被配置为执行叙述项A、B和C的处理器”可以包括结合被配置为执行叙述项B和C的第二处理器工作的、被配置为执行叙述项A的第一处理器。

应强调,可以对上述实施方案做出许多变型和修改,这些变型和修改的要素应被理解为在其他可接受的实施例之中。所有这样的修改和变型都意在被包括在本文中在本公开内容的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号