背景技术:
视频游戏应用程序近年在普及性和复杂性方面均有所增加。与过去的游戏应用程序相比,现今的游戏应用程序更具特色,并且有时可能更难进行调试(debug,排错)。游戏开发者可以使用从游戏测试者和其他系统获得的错误(bug,缺陷、漏洞)报告来检测和诊断游戏应用程序内的游戏过程(gameplay,玩游戏、游戏可玩性)问题或错误。即使在有错误报告的情况下,可能也难以识别和测定(replicate)游戏应用程序内的错误。因此,游戏开发者可能花费大量的努力和时间来诊断并试图修复游戏应用程序中的错误。
技术实现要素:
本公开内容的系统、方法和设备各自具有若干创新性方面,它们中没有一个单独诠释本文公开的所有的期望属性。
一个实施方案公开了一种系统,所述系统包括:至少一个数据存储器,其包括与游戏应用程序相关联的游戏过程数据;以及远程计算系统,所述远程计算系统与所述至少一个数据存储器电子通信并被配置为执行游戏应用程序分析系统,所述游戏应用程序分析系统被配置为:与在第一计算系统上执行的游戏应用程序的游戏过程会话建立电子通信;生成所述游戏过程会话的会话标识符;接收与所述游戏过程会话相关联的视频数据;将所述视频数据与所述游戏过程会话的会话标识符相关联,其中,所述视频数据包括多个时间戳;接收与所述游戏过程会话相关联的遥测数据;将所述遥测数据与所述游戏过程会话的所述会话标识符相关联,其中,所述遥测数据包括在所述游戏过程会话期间记录的多个游戏过程事件,其中,所述多个游戏过程事件中的每个事件与所述多个时间戳中的至少一个时间戳相关联;以及从第二计算系统接收与所述多个游戏过程事件中的一游戏过程事件相关联的请求,其中,所述请求包括所述会话标识符和与所述游戏过程事件相关联的时间戳;至少部分地基于所述会话标识符来识别与所述游戏过程会话相关联的第一视频数据;以及至少部分地基于所述时间戳,向所述第二计算系统提供对应于所述游戏过程事件的、与所述游戏过程会话相关联的所述第一视频数据的至少一部分。
另一实施方案公开了一种计算机实施的方法,所述方法包括:在包括计算机硬件的计算机系统的控制下,所述计算机系统配置有计算机可执行指令:与在第一计算系统上执行的游戏应用程序的游戏过程会话建立电子通信;生成所述游戏过程会话的会话标识符;接收与所述游戏过程会话相关联的游戏过程数据,其中,所述游戏过程数据包括视频数据和遥测数据;将所述视频数据与所述游戏过程会话的所述会话标识符相关联;将所述遥测数据与所述游戏过程会话的所述会话标识符相关联,其中,所述遥测数据包括在所述游戏过程会话期间记录的多个游戏过程事件,其中所述多个游戏过程事件中的每个事件与所述游戏过程会话的至少一个时间戳相关联;从第二计算系统接收与所述多个游戏过程事件中的一游戏过程事件相关联的请求,其中,所述请求包括所述会话标识符和与所述事件相关联的时间戳;至少部分地基于所述会话标识符来识别与所述游戏过程会话相关联的第一视频数据;以及至少部分地基于所述时间戳,向所述第二计算系统提供对应于所述游戏过程事件的、与所述游戏过程会话相关联的视频数据。
另一实施方案公开了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有指令,所述指令在被执行时指引计算系统实现游戏应用程序分析系统,所述游戏应用程序分析系统被配置为:与在第一计算系统上执行的游戏应用程序的游戏过程会话建立电子通信;生成所述游戏过程会话的会话标识符;接收与所述游戏过程会话相关联的游戏过程数据,其中,所述游戏过程数据包括视频数据和遥测数据;将所述视频数据与所述游戏过程会话的所述会话标识符相关联;将所述遥测数据与所述游戏过程会话的所述会话标识符相关联,其中,所述遥测数据包括在所述游戏过程会话期间记录的多个游戏过程事件,其中,所述多个游戏过程事件中的每个事件与所述游戏过程会话的至少一个时间戳相关联;从第二计算系统接收与所述多个游戏过程事件中的一游戏过程事件相关联的请求,其中,所述请求包括所述会话标识符和与所述事件相关联的时间戳;至少部分地基于所述会话标识符来识别与所述游戏过程会话相关联的第一视频数据;以及至少部分地基于所述时间戳,向所述第二计算系统提供对应于所述游戏事件的、与所述游戏过程会话相关联的视频数据。
尽管本文公开了某些实施方案和实施例,但是发明主题超出具体公开的实施方案中的实施例延伸到其他可替代的实施方案和/或用途,以及所述主题的修改和等同物。
附图说明
贯穿所有附图,重复使用附图标记以指示所参考的元件之间的对应关系。附图被提供用以说明本文所描述的主题的实施方案,而非限制所述主题的范围。
图1例示了用于实现游戏度量分析系统的一个或多个实施方案的联网计算环境的实施方案。
图2例示了游戏度量分析系统的各种系统的交互的实施方案。
图3和图4例示了数据可视化系统的实施方案。
图5例示了将遥测数据与视频数据相关联的实施方案的流程图。
图6例示了游戏度量分析处理的实施方案的流程图。
图7例示了计算设备的实施方案。
具体实施方式
概述
为了对游戏应用程序进行调试,游戏开发者可以在游戏应用程序的游戏过程会话期间获得遥测数据。遥测数据可以包括:例如,玩家的位置、人物的身体移动及它们相关联的时间戳,以及游戏应用程序的其他信息。游戏应用程序的遥测数据可以用于在游戏开发期间重新创建游戏状态和分析问题。遥测数据可以以表格格式、图表进行数字性地呈现,或被呈现为文字描述。然而,这种方法难以使用户(例如游戏开发者)仅仅基于数值数据来确定游戏应用程序实际上发生了什么。
将游戏过程会话的遥测数据与视频数据相关联可以改善这种困难。在游戏过程会话期间,记录遥测数据和视频数据二者。游戏过程会话可以具有会话标识符(会话id)。游戏过程会话的遥测数据和视频数据二者均可以与同一会话id链接。
在游戏过程会话期间获取的数据可以被实况(live)流送(stream,流式传输)到另一计算系统或存储在数据存储器中。本文描述的系统可以自动地或基于用户的输入(例如错误报告)来识别事件(例如错误或崩溃)。系统可以基于会话id和事件的时间戳将遥测数据和视频数据与事件相关联。相应地,当用户点击时间戳时,系统可以向用户在视觉上和听觉上示出游戏应用程序中正在发生什么。系统还可以向用户提供与该时间戳相关联的遥测数据。有利地,系统可以标记在所记录的视频中的事件的一个或多个时间戳。在一些实施方案中,当用户选择一事件时,系统可以自动地示出遥测数据并且播放从相关时间戳起的视频数据。
游戏度量分析系统的概述
图1例示了用于实现游戏度量分析系统130的计算环境100的实施方案。环境100包括网络108、玩家计算系统102、用户计算系统103和交互计算系统120。为了简化讨论而非限制本公开内容,图1仅例示了一个玩家计算系统102、一个用户计算系统103和一个交互计算系统120,然而可以使用多个这样的系统。
交互计算系统可以包括应用程序主机系统122、一个或多个数据存储器124和游戏度量分析系统130。游戏度量分析系统130可以与数据存储器124和/或与应用程序主机系统122通信,以获取与游戏应用程序相关联的数据。游戏度量分析系统130可以经由网络108与用户计算系统103和玩家计算系统102通信。尽管例示了仅一个网络108,但是可以存在多个不同的和/或分布式的网络108。
本文描述的系统中的一个或多个可以与对游戏应用程序104的分析相关联。例如,玩家计算系统102可以被配置为运行游戏应用程序104并获取游戏应用程序104的数据。用户计算系统103可以被配置为示出对游戏应用程序104的分析。交互计算系统120可以处理由玩家计算系统102获取的数据,并将数据分析的结果传送到用户计算系统103。
游戏开发者可以使用玩家计算系统102来获取游戏应用程序104的数据,并使用用户计算系统103对在游戏应用程序104运行期间遇到的问题进行调试。在一些实施方案中,游戏测试者可以在玩家计算系统102上运行游戏应用程序104。玩家计算系统102的数据获取系统可以捕获与游戏应用程序104的游戏过程会话相关联的数据。游戏开发者可以检阅(review)所捕获的游戏应用程序的游戏过程会话的数据(在运行时间期间或运行时间之后),并且分析在游戏应用程序104的执行期间出现的问题。在一些实施方案中,玩家可以在玩家计算系统102上执行游戏应用程序104。用户诸如游戏开发者或客服人员可以使用用户计算系统103来分析玩家的游戏过程会话中的问题。
在一些实施方案中,游戏度量分析系统130可以与视频托管(hosting)服务相关联,以提供对与玩家的游戏过程会话相关联的游戏过程信息的访问。在一些实施方案中,视频托管服务可以是与应用程序主机系统122或交互计算系统120相关联的服务。在一些实施方案中,视频托管服务可以是与游戏度量分析系统130对接(interface)的第三方服务。视频托管服务可以向用户提供用以访问与玩家的游戏过程会话相关联的游戏过程数据诸如遥测数据和视频数据的公共视频接口。游戏度量分析系统142可以从游戏过程会话中识别事件,诸如成就、里程碑、所玩的内容等。访问视频托管服务的用户能够查看在游戏过程会话期间发生的具体成就或其他感兴趣的游戏事件。数据可视化系统132可以向用户提供用以搜索和选择在用户计算系统103上查阅的事件的接口。用户计算系统103可以通过数据可视化系统132与交互计算系统120通信,以便检索与事件相关联的视频数据。与事件相关联的视频数据可以被检索,并且可以在事件于游戏过程会话期间发生的具体时间处被显示。例如,一个人可能想要查看某人如何在游戏应用程序中因战败了具体的头目(boss)而赢得成就。此人可以选择事件,并且数据可视化系统132可以在此人接收到成就的时刻或者在与成就相关联的具体时间(诸如,在赢得成就之前的限定量时间)处显示游戏过程会话的视频。
出于本公开内容的目的,术语“玩家”可以指在游戏过程会话期间正在玩或以其他方式操作游戏应用程序的人。例如,玩家计算系统102可以指由玩家操作的、通过数据获取系统150向交互计算系统120提供游戏过程会话数据的计算系统。术语“用户”可以指正在访问游戏度量分析系统130以通过数据可视化系统132查看与玩家的游戏过程会话相关联的游戏过程数据的人。尽管被示为分离的系统,但是玩家计算系统102和用户计算系统103可以是同一计算系统,这取决于系统是正在提供游戏过程会话数据还是正在通过数据可视化系统132访问游戏过程会话数据。
a.交互计算系统
在所示出的实施方案中,交互计算系统120包括应用程序主机系统122、数据存储器124和游戏度量分析系统130。这些系统可以彼此通信。例如,游戏度量分析系统130可以从应用程序主机系统122获得与游戏应用程序相关联的数据,并且可以将这样的数据存储在数据存储器124中。应用程序主机系统122可以与数据存储器124通信,以执行和/或托管游戏应用程序。在某些实施方案中,交互计算系统120可以与基于网络的视频服务相关联。
1.应用程序主机系统
应用程序主机系统122可以被配置为执行游戏应用程序104和/或主机应用程序106的一部分。在某些实施方案中,代替执行游戏应用程序104和/或主机应用程序106的一部分或除了执行游戏应用程序和/或主机应用程序的一部分之外,应用程序主机系统122可以执行另一应用程序,该另一应用程序可以在游戏应用程序104的实例的执行期间与游戏应用程序104形成互补和/或进行交互。下面描述了关于应用程序主机系统的进一步的细节。
交互计算系统120可以使多个玩家或计算系统能够访问由交互计算系统120执行或托管的游戏应用程序104和/或主机应用程序106的一部分。在一些实施方案中,由交互计算系统120的应用程序主机系统122执行的游戏应用程序104的部分可以创建持久性虚拟世界。该持久性虚拟世界可以使一个或多个玩家能够与虚拟世界进行交互,并且以同步和/或异步的方式彼此交互。在一些情况下,持久性虚拟世界的多个实例可以由交互计算系统120创建或托管。一组玩家可以被分配给持久性虚拟世界的一个实例或者可以访问持久性虚拟世界的一个实例,而另一组玩家可以被分配给持久性虚拟世界的另一实例或可以访问持久性虚拟世界的另一实例。在一些实施方案中,应用程序主机系统122可以执行用于执行游戏环境的各个方面的托管系统。例如,在一个实施方案中,游戏应用程序104可以是竞技性游戏,诸如第一人称射击游戏或体育游戏,并且应用程序主机系统122可以提供用于托管多玩家游戏实例的专用托管服务,或者可以促进由玩家计算设备托管的游戏实例的创建。在一些实施方案中,应用程序主机系统122可以向玩家提供游戏大厅或其他环境以使他们彼此虚拟地进行交互。这样的环境可以包括用于在玩家之间进行交易的环境,诸如用于促进交易的拍卖场或拍卖类型的环境。
2.游戏度量分析系统
如关于图1中的其他系统所描述的,游戏度量分析系统130可以与其他系统通信以获取与游戏应用程序相关联的数据并分析该数据。游戏度量分析系统可以包括用于数据获取和分析的一个或多个系统。例如,游戏度量分析系统130可以包括数据可视化系统132、遥测数据获取系统134、搜索系统136、视频获取系统138、调试系统140、玩家数据获取系统142和数据分析系统144。这些示例系统并非意在限制性的。游戏度量分析系统130可以包括与所描述的相比更多或更少的系统。例如,在一些实施方案中,交互计算系统可以不具有玩家数据获取系统142。在其他实施方案中,游戏度量分析系统130可以包括促进游戏数据的获取和游戏应用程序的分析的更多的系统和/或功能性。
游戏度量分析计算系统130及其各种系统可以分布在多个计算系统上。游戏度量分析系统的各种系统可以彼此通信,以获得和分析与游戏应用程序相关联的数据。例如,视频获取系统138的一部分可以由玩家计算系统102执行,而视频获取系统138的另一部分可以由交互计算系统120执行。游戏度量分析系统130的视频获取系统138可以与玩家计算系统102的视频获取系统138通信以获取视频数据。交互计算系统120的视频获取系统138可以生成特定游戏会话的会话id。玩家计算系统102的视频获取系统138可以是游戏应用程序104的插件并且获取游戏的执行的视频数据。在其他实施方案中,视频获取系统138可以完全由玩家计算系统102实施。视频获取系统138可以将所获取的视频传送到数据可视化系统132,以生成用户界面数据,从而显示视频。
游戏过程会话可以与开始时间和结束时间相关联。开始时间可以是游戏应用程序开始被记录的时间。结束时间可以是例如由于玩家或崩溃而使对游戏应用程序的记录终止的时间。游戏过程会话可以具有介于开始时间和结束时间之间的多个时间戳。在游戏过程会话期间,各种系统可以在每个时间戳处同时获取游戏应用程序的数据。例如,遥测数据获取系统可以获取游戏应用程序的遥测数据,而视频获取系统可以获取游戏应用程序的视频数据。
游戏过程会话与会话id相关联。会话id对于游戏过程会话可以是独特的。会话id可以由本文描述的一个或多个系统——例如玩家计算系统102、应用程序主机系统122、游戏度量分析系统130等——生成。会话id可以基于各种信息,例如ip地址、当游戏应用程序开始被执行时的时间戳、玩家的简档(profile)信息、以及它们的组合等。会话id可以用于链接由不同系统在游戏过程会话期间获取的数据。有利地,在一些实施方案中,可以使用游戏过程会话的时间戳将由各种系统获取的数据进一步链接在一起。下面将更详细地描述游戏度量分析系统130的每个系统。
a.遥测数据获取系统
遥测数据获取系统134可以被配置为在游戏过程会话期间获取遥测数据。游戏应用程序的遥测数据可以用于在游戏开发期间重新创建游戏状态和分析问题。遥测数据可以包括特定于游戏应用程序的数据,例如时间戳、人物的移动、人物的位置、一个或多个事件(例如,敌人在射击游戏中死亡)、玩家输入(例如按下的按钮)等。在一些实施方案中,遥测数据获取系统134还可以获取与游戏应用程序相关联的系统信息。系统信息可以包括:性能数据,诸如cpu或存储器利用率;在其上执行游戏应用程序的机器等。
遥测数据可以以各种数据库格式存储。遥测数据可以被转换成统计数据,以用于分析和调试游戏应用程序。遥测数据可以被转换或组织成示出与游戏应用程序相关联的各种度量或统计数据,例如随个人游戏等级变化的平均完成时间、平均每周错误率、每天的收入、每天的活跃动玩家的数量等等。这些统计数据有时可以被称为游戏度量。
遥测数据获取系统134可以将在游戏过程会话期间获取的遥测数据与会话id相关联。在一些实施方案中,在游戏过程会话期间,遥测数据获取系统134可以获取遥测数据,而视频获取系统138记录游戏过程会话的视频。通过使用会话id,遥测数据可以与视频数据相关联。
b.视频获取系统
视频获取系统138可以记录游戏应用程序104的执行。例如,视频获取系统138可以收集视频数据,例如游戏过程的移动视觉图像(例如对象的移动)、音频数据(例如轰炸或射击的声音)、系统通知、对话、与项目的交互、玩家之间的消息、玩家评论、网络摄像机片段(footage)等。视频获取系统138可以在游戏过程期间记录玩家计算系统的屏幕。在一些实施方案中,视频获取系统138可以被配置为获取与游戏过程会话的多个视图相关联的视频数据。例如,游戏应用程序可以记录在游戏过程会话内的多个视频捕获流,即使在给定时间向玩家显示仅单个视图。在一些实施方案中,视觉数据和音频数据可以通过单独的软件和/或硬件来获取。
由视频获取系统138获取的数据可以由数据可视化系统132实况流送。例如,视频获取系统138可以收集视频数据并将视频数据传输到交互计算系统120。当游戏正在进行时,游戏开发者可以查看这样的视频数据。视频获取系统138还可以记录游戏过程会话,将所记录的视频存储在诸如数据存储器126中,并且在稍后的时间将所记录的数据传输到其他计算系统。
如参考遥测数据获取系统所描述的,视频数据可以基于会话id链接到游戏过程会话。在游戏过程会话期间,由视频获取系统138获取的视频数据可以与开始时间和结束时间相关联。视频数据的开始时间和结束时间可以与游戏过程会话的开始时间和结束时间不同地进行表示。例如,游戏过程会话的一分钟视频可以是开始时间为0秒和结束时间为60秒。但是与游戏过程会话相关联的开始时间可以是上午8:30:00,而与游戏过程会话相关联的结束时间可以是上午8:31:00。在一些实施方案中,视频数据可以使用与游戏过程会话相同的时间表示。
在开始时间与结束时间之间,视频数据可以被划分为多个帧。时间戳可以用于指代视频内的具体帧。在一些实施方案中,游戏度量分析系统130可以将事件与视频数据的某些时间戳相关联。通过使用会话id和时间戳,该事件还可以与游戏过程会话中的其他数据诸如遥测数据相关联。例如,游戏度量分析系统130可以记录游戏过程会话中的射击游戏应用程序。在射击游戏期间,事件可以为玩家何时杀死大头目。游戏度量分析系统130可以识别该事件发生时的时间戳。游戏度量分析系统130可以基于时间戳来关联该事件的视频帧和遥测数据。游戏度量分析系统130还可以生成用户界面数据,该用户界面数据允许用户通过播放从时间戳中之一起的视频来查阅事件。
c.玩家数据获取系统
玩家数据获取系统142可以获取玩家简档信息,例如玩家的年龄、地理位置、性别等。玩家数据获取系统142还可以获取与玩家的游戏中行为例如游戏中的购买行为有关的信息、与其他玩家进行交互的偏好等等。玩家数据获取系统142可以与本文描述的其他系统通信。例如,玩家数据获取系统142可以与数据存储器124通信,以存储与玩家账号、玩家简档和/或玩家计算系统相关联的信息。玩家数据获取系统142还可以与数据分析系统144、调试系统140和/或数据可视化系统132通信,并且向这些系统提供玩家数据以用于进一步分析。
d.数据分析系统
数据分析系统144可以分析与游戏应用程序相关联的数据,并生成游戏度量信息。在某些实施方案中,数据分析系统144可以是调试系统140的一部分。数据分析系统144可以在游戏过程会话之后执行数据分析。例如,数据分析系统144可以使用与游戏过程会话相关联的会话id从数据存储器124获得遥测数据和玩家简档数据。数据分析系统144可以基于所获得的数据生成关于玩家的游戏中行为的报告。
数据分析系统144还可以分析跨多个游戏过程会话的数据。数据分析系统144可以向数据存储器124传送多个会话id以检索数据。在一些实现中,可以使用其他标识符来获得数据。例如,数据分析系统144可以使用玩家id、事件id和/或所记录视频中的时间戳来检索数据。
如参照图2所描述的,数据分析系统144可以与数据可视化系统132通信,并以各种格式呈现游戏度量数据,上述格式例如为图形(例如饼图、热度图、表格、线图)、表格、文字描述等。在一些实施方案中,数据分析系统144可以包含多个模块,其中每个模块用于某种类型的分析。例如,一个模块可以用于生成游戏度量数据的图形。另一模块可以用于分析玩家的游戏中购买行为。这些模块可以作为游戏应用程序104和/或数据可视化系统132的插件实施。用户可以例如通过添加或移除一个或多个模块来定制数据分析系统144。
e.调试系统
调试系统140可以用于分析游戏应用程序的一个或多个事件。事件可以包括游戏应用程序的崩溃、游戏应用程序的错误、用户配置的动作、游戏内的时刻检查点(例如,在足球比赛中的触地、在第一人称射击游戏中射击敌人、游戏中的成就等等)。在一些实施方案中,事件可以具有一个或多个事件标识符,例如错误标识符(错误id)、崩溃标识符(崩溃id)、检查点编号等。
调试系统140可以被配置为从用户接收事件报告。在一些实施方案中,事件报告可以是错误报告。例如,当观看由视频获取系统138获得的记录视频时,用户可以识别游戏应用程序104中的问题(例如玩家的化身(avatar)被卡在某一位置)。用户可以经由用户计算系统103提交错误报告。错误报告可以包含与问题相关联的信息,例如对错误的描述、玩家在游戏中的位置、问题的时间戳、会话id等。调试系统140可以生成与由用户提交的错误报告相关联的错误id。
在一些实施方案中,调试系统140可以自动检测游戏应用程序104中的事件。例如,调试系统140可以被配置为监测游戏应用程序104的崩溃。调试系统140可以生成与崩溃相关联的崩溃id(其可以或可以不与错误id相同)。调试系统140可以编译与崩溃相关联的信息,诸如解码的调用栈、崩溃id、会话id等。这样的信息可以由其他系统诸如调试系统140和/或数据可视化系统132使用,以便于诊断崩溃。
有利地,调试系统140可以组织和关联从不同系统获得的数据。调试系统140可以基于一个或多个标识符例如游戏过程会话的会话id进行这样的关联。例如,调试系统140可以使用游戏过程会话的会话id将遥测数据与视频数据相关联。调试系统140还可以通过使用游戏过程会话中的时间戳来整合(assemble)事件的信息。例如,调试系统140可以接收事件信息,该事件信息可以包括事件描述(例如玩家不能移动)、时间戳(例如,游戏过程会话的时间戳和/或所记录视频的时间戳)、会话id、事件标识符、玩家的位置信息等。调试系统140可以基于针对事件提供的信息来识别游戏过程会话中的一个或多个时间戳。时间戳可以包括时间间隔、离散时间或它们的组合。调试系统140可以使用时间戳来获得与事件相关联的信息(例如遥测数据或视频数据)。
例如,用户可以提交人物在游戏应用程序104中的移动的差错的错误报告。错误报告可以包括如下信息:诸如错误的会话id、发生错误的游戏过程会话的时间戳和对错误的描述。调试系统140可以通过使用错误报告中的会话id来获得遥测数据和所记录的视频。调试系统140还可以在多个时间戳处将所记录的视频的帧与遥测数据相关联。调试系统可以与数据可视化系统132通信以生成用户界面数据,该用户界面数据示出对错误的描述、错误发生的地方的游戏环境地图以及具有所记录的视觉图像和/或错误的音频信息的视频。有利地,视频可以在错误发生的时间戳处自动开始流送。
f.搜索系统
搜索系统136可以与游戏度量分析系统130和/或交互计算系统120的各种系统进行通信。例如,搜索系统136可以与数据可视化系统132通信,以接收一个或多个搜索准则。搜索系统可以与数据存储器124通信,并且基于搜索准则查找信息。搜索系统136可以将从数据存储器124获得的信息传输到数据可视化系统132,以供用户查看。
搜索系统136可以在游戏过程会话中查找一个或多个事件。搜索系统136还可以跨多个游戏过程会话查找信息,诸如具体类型的事件。例如,搜索系统136可以搜索与足球比赛期间的每次触地相关联的信息。搜索系统136还可以搜索过去两天中的所有记录的视频。
g.数据可视化系统
数据可视化系统132可以生成用户界面以供用户查看与游戏应用程序104相关联的数据分析。用户界面可以包括游戏遥测数据、错误报告、用户简档数据、记录的游戏会话的视频、过滤工具、搜索工具等。过滤工具和/或搜索工具可以被配置为接收用户输入,并基于用户输入来过滤数据。用户界面可以通过网络界面(诸如网页)和/或本地安装在计算设备上的应用程序来呈现(render)。
数据可视化系统132可以使用一个或多个用户界面模板来生成用户界面数据。参照图2,用户界面模板可以具有多个模块,例如调试信息模块240、事件信息模块250、视觉游戏信息模块270、视频模块280、界面控制模块260等。数据可视化系统132可以通过使用从游戏度量分析系统130的其他系统接收的信息来填入(populate,构成)模块。
3.数据存储器
交互计算系统120可以包括数据存储器124。数据存储器124可以被配置为存储由其他系统获取的数据,例如遥测数据、视频数据、用户数据等。数据存储器可以跨多个计算设备(参见例如图7中的计算设备700)分布。在一些实施方案中,数据存储器124可以是基于网络的存储系统,其中,数据可以存储在不同的位置。
b.玩家计算系统
玩家计算系统102可以包括用于通过通信网络108建立通信的硬件部件和软件部件。例如,用户计算系统102可以被配备有便于其经由一个或多个网络(例如因特网或内联网)进行通信的联网设备和网络软件应用程序(例如网络浏览器)。玩家计算系统102可以具有各种各样的本地计算资源,诸如中央处理单元和架构、存储器、大容量存储装置、图形处理单元、通信网络可用性和带宽等等。此外,玩家计算系统102可以包括任何类型的计算系统。例如,玩家计算系统102可以包括任何类型的计算设备,诸如台式计算机、膝上型计算机、游戏应用程序平台、电视机顶盒、电视机(例如互联网tv)、联网使用的自动服务终端(kiosk)、车辆控制台设备计算机化装置、可穿戴设备(例如具有计算功能的智能手表和眼镜)以及无线移动设备(例如智能手机、pda、平板计算机等),仅举几例。在一些实施方案中,玩家计算系统102可以包括下面关于图7所述的实施方案中的一个或多个。
1.游戏应用程序和主机应用程序系统
通常,玩家计算系统102能够执行可以在分布式环境中存储和/或执行的游戏应用程序104。例如,玩家计算系统102可以执行游戏的一部分,并且交互计算系统120或者交互计算系统120的应用程序主机系统122可以执行游戏的另一部分。例如,游戏可以是大型多玩家在线角色扮演游戏(mmorpg),其包括由玩家计算系统102执行的客户端部分和由一个或多个应用程序主机系统122执行的服务器部分。对于当前的讨论,游戏应用程序104可以包括如下分布式应用程序或应用程序:这样的分布式应用程序或应用程序包括在玩家计算系统102上执行的一部分和在应用程序主机系统122中的至少一个上执行的一部分。玩家计算系统102可以执行主机应用程序系统106。主机应用程序系统106可以被加载到玩家计算系统102上的存储器中,并且可以用作用于一个或多个游戏应用程序104的、与应用程序主机系统122对接的接口(interface)或集线器。
2.数据获取系统
数据获取系统150可以用于获取与玩家和/或游戏应用程序104相关联的数据。数据获取系统150可以包括视频获取系统138、遥测数据获取系统134和玩家数据获取系统142。数据获取系统150可以是游戏度量分析系统130的一部分。如参考游戏度量分析系统130所描述的,数据获取系统150可以获取游戏应用程序的遥测数据(使用遥测数据获取系统134)、游戏过程的视频数据(使用视频数据获取系统138)、和/或玩家简档数据(使用玩家数据获取系统142)。
数据获取系统150的各种系统可以通过硬件、软件或它们的组合来实现。例如,系统可以是游戏应用程序104、主机应用程序系统106和/或应用程序主机系统122的软件插件。一个或多个系统还可以是能够与游戏应用程序104、主机应用程序系统106和/或应用程序主机系统122通信的独立(standalone)应用程序。
c.用户计算系统
用户计算系统103可以由如参照图7所描述的计算设备来实现。用户计算系统103可以包括数据可视化系统132。用户计算系统103可以经由网络108与玩家计算系统102和/或交互计算系统120通信。在一些实施方案中,用户计算系统103可以是玩家计算系统102或交互计算系统120的一部分。
用户计算系统103的数据可视化系统132可以包括用户界面。如参照图2所描述的,用户界面可以显示一个或多个游戏度量。游戏度量可以以各种格式示出,这样的格式诸如为表格、文字描述、图形等。用户界面可以显示在某一时间戳处的游戏环境地图,诸如玩家的位置或移动方向。用户界面可以示出由视频获取系统138在游戏过程期间获取的视频。
数据可视化系统132可以以各种方式实现,例如网站、移动页面、应用程序(例如调试应用程序、游戏应用程序或主机应用程序)的插件,等等。下面将更详细地描述数据可视化系统132。
d.其他考虑
虽然单独地描述了各种系统,但应当注意的是,这些系统中的一个或多个可以组合在一起。例如,用户计算系统103可以与玩家计算系统102组合。在另一实施例中,搜索系统136可以是数据可视化系统132的一部分。另外,这些系统中的一个或多个可以由同一计算设备(参见例如图7中的计算设备10)执行。例如,管理计算系统103可以在与玩家计算系统102相同的计算设备上执行。
另一方面,一个或多个系统可以由多个计算设备执行。例如,数据可视化系统132的一部分可以由玩家的个人计算机实施,而另一部分可以由服务器实施。
用于分析游戏应用程序的用户界面的实施例
图2示出了数据可视化系统与各种其他系统之间的交互的实施方案。如所例示的实施方案中示出,数据可视化系统132可以与各种系统通信,上述各种系统例如为调试系统140、数据分析系统144、搜索系统136、视频获取系统138、遥测数据获取系统134和/或玩家数据获取系统142。数据可视化系统132可以生成用户界面数据,并且传输用户界面数据以由计算设备(例如参照图7描述的计算设备)显示。每个系统可以是游戏应用程序的一部分(例如游戏应用程序的插件)、主机应用程序的一部分、网页的一部分或独立应用程序的一部分。
在所例示的实施方案中,数据可视化系统132包括例如调试信息模块240、事件信息模块250、视觉游戏信息模块270、视频模块280、界面控制模块260等等。这些模块可以用于显示从图1中描述的系统接收的信息。
尽管参照各种系统和模块描述了图2中的实施例,但是这些实施例不是限制性的。系统200可以包括更多或更少的系统和/或模块。例如,在一些实施方案中,系统200可以不具有玩家数据获取系统142。数据可视化系统132可以包括用于显示由数据分析系统生成的数据的另一模块。在一些实施方式中,一个或多个模块可以是另一模块的一部分。例如,调试信息模块240可以与事件信息模块250组合。类似地,搜索系统136有时可以是调试系统140的一部分。
在一些实施方案中,数据可视化系统132可以被配置为向视频托管服务的用户提供用户界面。数据可视化系统132可以将视频托管服务的公共用户的访问限制为与游戏过程会话相关联的具体模块和限定的数据。例如,用于视频托管服务的数据可视化系统132的用户界面可以包括事件信息模块250、视觉游戏信息模块270、视频模块280和界面控制模块260,但是可以不包括调试信息模块240。另外,事件信息模块250可以对事件信息具有受限的访问,诸如仅仅访问与某些类型的事件相关联的数据。
a.数据可视化系统与其他系统之间实施交互
a.数据可视化系统与调试系统之间的交互
数据可视化系统132可以与调试系统140通信,并且利用游戏应用程序中的一个或多个事件的信息来生成用户界面数据。数据可视化系统132可以接收由调试系统140识别的事件。事件可以与事件id和/或会话id相关联。数据可视化系统132可以使用事件id和/或会话id从数据存储器124获得与事件相关联的信息。数据可视化系统132可以将所获得的信息存储到数据可视化系统132的各个模块中。例如,数据可视化系统132可以使用崩溃id和会话id来检索游戏过程会话中的崩溃的遥测数据信息、视频数据信息和解码的调用栈信息。数据可视化系统132可以将解码的调用栈信息存储到调试信息模块240中,将遥测数据信息存储到视觉游戏信息模块270和/或事件信息模块250中,并将视频数据存储到视频模块280中。
如参照图1所描述的,可以使用游戏过程会话的时间戳来链接游戏过程会话的遥测数据和视频数据。有利地,数据可视化系统132的视频模块280可以自动播放从事件发生时的时间戳起的所记录的视频。当流送视频时,数据可视化系统132还可以连同视频数据一起示出遥测数据。在一些实施方案中,数据可视化系统132可以允许用户选择视频的时间戳并查看与该时间戳相关联的数据。例如,当用户点击视频的时间戳时,数据可视化系统132可以显示与该时间戳相关联的视频数据和遥测数据。
在某些实施方式中,调试系统的一部分可以由界面控制模块260实施。例如,界面控制模块260可以包括用于供用户填写和提交游戏应用程序104中的错误的信息(例如位置、时间戳、描述、游戏会话等等)的一个或多个用户界面元素。这是特别有利的,原因在于游戏开发者可以在查阅游戏过程会话的视频时识别一个或多个错误。
b.数据可视化系统与数据分析系统之间的交互
数据可视化系统132可以与数据分析系统144通信,并以各种格式显示游戏度量,上述格式例如为图形(例如饼图、热度图、表格、线图)、表格、文字描述等。数据可视化系统132可以使用一个或多个模块诸如调试信息模块240、事件信息模块250等来显示这样的数据分析。
在一些实施方案中,数据可视化系统132可以包括用于以某些格式呈现出游戏度量分析的一个或多个插件。例如,数据可视化系统132可以具有如下插件,该插件可以允许数据可视化系统132使用热度图来显示游戏数据。
c.数据可视化系统与搜索系统之间的交互
数据可视化系统132可以包括允许用户搜索和过滤数据的用户界面控制模块260。用户界面控制模块260可以包括搜索工具,该搜索工具允许用户输入搜索查询并且接收基于搜索查询的数据。例如,用户可以在搜索查询中提供错误id和会话id。界面控制模块260可以将错误id和会话id传送到搜索系统136。数据可视化系统132可以从搜索系统136接收与错误id和会话id相关联的数据,例如遥测数据、视频数据。数据可视化系统132然后可以在视频模块280中显示视频数据,并在调试信息模块240中显示遥测数据。
在一些实施方案中,用户可以输入使数据可视化系统132接收与多个游戏过程会话相关联的数据的查询。例如,用户可以请求过去两天中与具体游戏过程事件(诸如具体的头目战斗)相关联的列表视频。数据可视化系统132可以接收与用户请求的视频列表相关联的会话id和/或数据。
界面控制模块260还可以包括过滤工具。过滤工具可以允许用户选择该用户感兴趣的一组或多组数据。过滤工具可以应用于各种数据,例如游戏度量数据、视频数据、遥测数据、玩家简档数据等。用户界面控制模块260可以显示一个或多个选项,用户可以针对过滤从这些选项中进行选择。例如,选项可以包括时间戳、事件、会话id等等。在一些实施方案中,用户界面控制模块260还可以允许用户直接输入过滤准则。
界面控制模块260可以与一个或多个系统——诸如调试系统140、数据分析系统144或搜索系统136——进行通信,以基于过滤准则检索数据。在一些实施方案中,数据可视化系统132可以基于过滤准则显示从各种系统获得的数据的仅一部分。
d.数据可视化系统与数据获取系统之间的交互
数据可视化系统132可以与数据获取系统150通信,以利用由数据获取系统150获取的数据来生成用户界面数据。例如,数据可视化系统132可以显示由视频获取系统138获取的视频数据。数据可视化系统132可以在视频模块280中显示视频数据。如参照图1所描述的,视频可以包括与某些事件相关联的一个或多个时间戳。用户可以选择观看在与事件中之一相关联的时间戳处开始的视频。
数据可视化系统132可以显示由遥测数据获取系统134获取的原始遥测数据。在一些实施方案中,数据获取系统132可以显示由其他系统(例如数据分析系统144和/或调试系统140)处理的遥测数据。数据可视化系统132可以在一个或多个模块——例如调试信息模块240、事件信息模块250或视觉游戏信息模块270——中显示遥测数据。
类似地,数据可视化系统132可以显示由玩家数据获取系统142获取的玩家简档数据。数据可视化系统132可以在视觉游戏信息模块270中示出玩家简档数据。在一些实施方案中,数据可视化系统132可以在数据由数据分析系统144处理之后显示玩家简档数据。
在某些实施方式中,界面控制系统260的过滤工具可以从用户接收过滤准则,并且显示由数据获取系统150获取的仅某些类型的数据。
b.用户界面的示例性实施例
图3和图4是实施数据可视化系统的用户界面的实施例。用户界面可以是计算设备10上的网页或应用程序。用户界面可以包括标签390,该标签允许用户在不同类型的视图之间进行选择。例如,图3中的标签390可以包括:主页视图,其可以提供与游戏应用程序104相关联的信息的概要;错误视图,其包括与游戏应用程序104中的错误相关联的信息(诸如错误id、会话id和错误描述);事件信息视图,其示出游戏过程会话的事件信息;以及提供如图4所描述的遥测数据的概要的遥测视图。数据可视化系统可以基于各种因素来生成标签390,这样的因素诸如为游戏的类型、事件的类型、计算设备的类型(例如,xboxv.pc)、用户的偏好以及它们的组合等等。用户可以通过添加或删除一个或多个视图来配置标签390。在一些实施方案中,用户还可以在视图内配置一个或多个模块(例如,如在图2中关于数据可视化系统132所描述的)。
在图3中,用户界面300例示了与游戏过程会话相关联的数据。所例示的实施方案包括游戏环境地图310、视频玩家界面320、书签栏330、过滤工具340和事件模块350。游戏过程会话的元素可以在游戏环境地图310上示出。游戏过程会话的视频数据可以在视频玩家界面320上示出。
事件模块350可以包括与游戏过程会话相关联的事件的列表。例如,如图3所示,事件模块350可以包括事件的日期、时间、类型和描述。用户可以通过点击事件模块中的事件来获取关于该事件的更多详细信息。例如,当用户点击事件模块中的差错时,数据可视化系统132可以将用户带至具有差错详细信息的页面。
游戏环境地图310可以提供游戏环境的地图。游戏环境地图310的类型可以基于游戏应用程序的特性而变化。例如,如果游戏应用程序是二维(2d)游戏,则游戏环境地图310可以包括游戏应用程序的2d地图。如果游戏应用程序是三维(3d)游戏,则游戏环境地图310可以包括游戏应用程序的2d和3d地图。
游戏环境地图310可以提供与来自游戏过程会话的事件相关联的视觉指示。例如,在所例示的实施方案中,游戏环境地图310包括人物的一个或多个位置(例如,位置362a、362b、366)和移动轨迹360。游戏环境地图310可以在游戏过程会话的不同时间戳处被更新。相应地,在一些实施方案中,游戏环境地图310可以包括游戏过程会话期间游戏环境的变化的视频。
用户界面300的时间轴条372提供游戏过程会话的时间戳。时间轴372可以允许用户在游戏过程会话中的不同时间点处查看游戏环境地图310。例如,时间戳372a可以对应于游戏环境地图310上人物的位置362a,而时间戳372b可以对应于游戏环境地图310上人物的位置362b。
游戏过程会话的时间戳还可以对应于在游戏过程会话期间捕获的视频数据。例如,轨迹380可以示出人物在游戏环境中的移动。轨迹380具有起点382a和终点382b。视频数据和游戏环境地图310可以通过使用游戏过程会话的时间戳而链接。例如,所记录的视频中的轨迹380可以与游戏环境地图310上的轨迹360相关。在时间戳372a处,人物位于游戏环境地图310上的位置362a,而同一人物在所记录的视频中位于位置382a。类似地,时间戳372b对应于游戏环境地图310上的位置362b,并且对应于所记录的视频中的位置382b。
有利地,当用户点击时间戳372a时,数据可视化系统可以开始播放人物位于起始点382a处的所记录的视频。同时,数据可视化系统还可以示出在时间戳372a开始的游戏环境地图的变化。在一些实施方案中,用户可以点击所记录的视频的时间戳,并且数据可视化系统可以开始播放在该时间戳处的所记录的视频和游戏环境地图310。用户还可以点击例如所记录的视频和/或游戏过程会话310的其他时间戳,以察看在差错之前的场景(context)。
书签栏330可以允许用户向视频添加额外的场景。例如,用户可以向视频插入对观看该视频的其他用户可见的评论。
过滤工具340可以允许用户选择一个或多个选项,以便查看数据(例如遥测数据、视频数据、游戏过程数据等)的子集。
图4例示了用户界面的另一实施例。用户界面400显示遥测数据信息。当用户点击标签390上的遥测视图时,数据可视化系统132可以显示用户界面400。
用户界面400在模块430中示出遥测数据。遥测数据可以包括事件的日期和时间、事件的类型、会话id、事件id等。用户可以点击模块430中的条目。数据可视化系统132可以将用户带至不同的页面。例如,如果用户点击错误id,则数据可视化系统132可以返回示出与该错误id相关联的游戏环境地图和视频的用户界面300。
用户界面400可以包括过滤工具410。过滤工具410可以是界面控制模块260(例如,如参照图2所描述的)的一部分。过滤工具410可以与一个或多个系统和/或模块通信,并显示遥测数据的子集。例如,用户可以选择仅查看与敌人人物相关联的遥测数据。在接收到过滤准则时,遥测数据模块430可以相应地显示遥测数据。类似地,用户可以使用过滤工具以在模块430中仅示出事件的描述和会话id。
用户界面400还可以包括搜索工具420。如图4所示,用户可以将会话id输入到搜索工具420中并接收与该会话id相关联的所有遥测数据。
将遥测数据与视频数据相关联的示例性过程
图5例示了将遥测数据与视频数据相关联的方法的流程图的实施方案。过程500可以由可以在游戏应用程序的运行时间期间在游戏环境内解码和流送内容的任何系统来实施。例如,过程500的整体或部分可以由游戏应用程序104、游戏度量分析系统130、用户计算系统103、玩家计算系统102、交互计算系统120或其他应用程序模块来实施。尽管任何数量的系统均可以整体地或部分地实施过程500,但为了简化讨论,将关于特定系统来描述过程500。此外,尽管可以关于包括各种游戏应用程序环境的系统的变型来执行过程500的实施方案,但为了简化讨论,将关于交互计算系统120来描述过程500。
在过程500中,在框510处,交互计算系统120可以与在玩家计算系统102上的游戏应用程序的游戏过程会话建立电子通信。在一些实施方案中,数据获取系统150和/或交互计算系统120可以与游戏过程会话建立通信。玩家计算系统102可以执行运行游戏过程会话的游戏应用程序104。
在框520处,生成游戏过程会话的会话id。会话id可以由交互计算系统120或玩家计算系统102生成。在某些实施方案中,会话id可以包括对玩家计算系统102独特的信息,诸如与玩家计算系统102相关联的ip地址。
在框530处,交互计算系统可以接收与游戏过程会话相关联的数据。与游戏过程会话相关联的数据可以包括视频数据、遥测数据、系统数据、玩家简档数据和/或与游戏应用程序的执行相关联的其他数据。在一些实施方案中,单独的系统可以各自与游戏应用程序通信并且获取与游戏过程会话相关联的具体数据。例如,视频获取系统144可以获取视频数据,遥测数据获取系统134可以获取遥测数据,玩家数据获取系统142可以获取玩家简档数据,和/或其他系统可以负责获取不同类型的数据。每个系统可以将它们相应的数据存储在与相应系统相关联的数据存储器中。
视频数据可以包括游戏过程会话的时间戳。例如,视频数据可以生成与在游戏过程会话期间接收的视频数据的每个帧相关联的时间戳。交互计算系统120可以将视频数据与会话id相关联。类似地,交互计算系统120可以将接收的遥测数据与会话id相关联。交互计算系统120可以将所记录的视频存储在数据存储器124中。
在框540处,交互计算系统120可以将会话id与游戏过程会话的视频数据相关联。例如,视频获取系统144可以将会话id与从游戏过程会话接收的视频数据相关联。
在框550处,交互计算系统120可以将游戏过程会话中的事件与游戏过程会话的会话id和一个或多个时间戳相关联。遥测数据获取系统134可以将会话id与从游戏过程会话接收的遥测数据相关联。事件可以与一个或多个时间戳相关联。与事件相关联的会话id和时间戳信息可以用于检索与游戏过程事件相关联的视频数据。
游戏分析的示例性过程
图6例示了用于游戏度量分析过程的实施方案的流程图。过程600可以由可以在游戏应用程序的运行时间期间在游戏环境内解码和流送内容的任何系统来实施。例如,过程600的整体或部分可以由游戏应用程序104、游戏度量分析系统130、用户计算系统103、玩家计算系统102、交互计算系统120或其他应用程序模块来实施。尽管任何数量的系统均可以整体地或部分地实施过程600,但为了简化讨论,将关于特定系统来描述过程600。此外,尽管可以关于包括各种游戏应用程序环境的系统的变型来执行过程600的实施方案,但为了简化讨论,将关于交互计算系统120来描述过程600。
在过程600的框610处,交互计算系统120可以接收与游戏过程会话相关联的数据。游戏过程会话可以包括会话id。与会话id相关联的数据可以包括视频数据、遥测数据、系统数据、玩家简档数据和/或与会话id相关联的其他数据。
在框620处,交互计算系统120可以接收包括事件和会话id的请求。该请求可以来自用户计算系统103(图1所示)。该事件可以由本文所描述的一个或多个事件标识符来标识。除了会话id之外,事件还可以具有事件id,诸如错误id。
在框630处,交互计算系统120可以使用在用户的请求中提供的会话id来定位与游戏过程会话相关联的视频数据。视频数据可以是包括先前由视频获取系统记录和存储的内容的完整视频。在一些实施方案中,视频数据可以是例如由视频获取系统同时记录的视频数据的一部分。
在框640处,交互计算系统120可以识别与在游戏过程会话期间发生的事件相关联的一个或多个时间戳。事件可以包括特定于事件的一个或多个时间戳。事件可以是与单个时间戳相关联的单个事件,诸如用户输入,其中该单个时间戳基于该用户输入何时被游戏应用程序接收到。事件可以是在指定时间框内发生的事件,诸如情景动画(cutscene)。时间戳可以指示事件的开始、事件的结束和/或事件发生期间的中间时间段。交互计算系统120可以基于时间戳信息来确定与事件相对应的视频的部分。例如,交互计算系统可以识别视频内的如下时间,该时间是在关于时间戳所指示的时间之前的限定时间(例如在时间戳之前1秒)。
在框650处,交互计算系统120可以生成用以显示与事件相关联的数据的指令。指令可以被传输到用户计算系统103的数据可视化系统132。数据可以包括与事件相关联的遥测数据、事件描述、一个或多个搜索准则等。指令可以指示数据可视化系统132播放从事件开始的时间戳起的所记录的视频。
在一些实施方式中,数据的一部分可以本地存储(而不是用交互计算系统120存储)。交互计算系统120可以向数据可视化系统132发送指令,以检索和显示一些数据。例如,当游戏过程会话的视频未被流送到服务器时,交互计算系统120可以发送指令以使数据可视化系统132播放从某些时间戳起的视频。
尽管关于识别一个事件描述了过程600,但应注意的是,所述实施例不是限制性的。过程600可以识别多个事件,将那些事件与相关数据相关联,并且返回其中时间戳提供与多个事件的链接的视频。
计算设备的综述
图7例示了根据本公开内容的计算设备10的实施方案。计算设备10的其他变型(诸如移除计算设备10的部件或向计算设备添加部件)可以代替本文中明确呈现的实施例。计算设备10可以包括游戏设备、智能电话、平板计算机、个人计算机、膝上型计算机、智能电视、车辆控制台显示器、服务器等。计算设备10还可以跨多个地理位置分布。例如,计算设备10可以是基于云的服务器的群集。
如所示出的,计算设备10包括处理单元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/o32、用户i/o34、显示i/o36和网络i/o38。i/o32与存储元件40交互并通过设备42与可移除存储媒介44交互,以便为计算设备10提供存储装置。处理单元20可以通过i/o32进行通信以存储数据,诸如游戏状态数据和任何共享的数据文件。除了存储装置40和可移除存储器媒介44之外,示出计算设备10还包括rom(只读存储器)46和ram48。ram48可以用于被频繁访问的数据,诸如当正在玩游戏时或执行欺诈检测时被频繁访问的数据。
用户i/o34用于在处理单元20与用户设备诸如游戏控制器之间发送和接收命令。在一些实施方案中,用户i/o34可以包括触摸屏输入。触摸屏可以是电容性触摸屏、电阻式触摸屏或被配置为通过触觉输入从玩家接收用户输入的其他类型的触摸屏技术。显示i/o36提供用于显示来自正在玩的游戏的图像的输入/输出功能。网络i/o38用于网络的输入/输出功能。网络i/o38可以在游戏的执行期间使用,诸如当在线玩游戏或在线访问游戏和/或应用欺诈检测和/或生成欺诈检测模型时被使用。
由显示i/o36产生的显示输出信号包括用于使由计算设备10产生的视觉内容显示在显示设备上的信号,上述视觉内容诸如图形、用户界面、视频和/或其他视觉内容。计算设备10可以包括被配置为接收由显示i/o36产生的显示输出信号的一个或多个集成显示器。根据一些实施方案,由显示i/o36产生的显示输出信号还可以被输出到在计算设备10外部的一个或多个显示设备。
计算设备10还可以包括可以与游戏一起使用的其他特征,诸如时钟50、闪存52和其他部件。音频/视频播放器56也可以用于播放视频序列,诸如电影。应当理解的是,可以在计算设备10中提供其他部件,并且本领域技术人员将意识到计算设备10的其他变型。
程序代码可以存储在rom46、ram48或存储装置40(其可以包括硬盘、其他磁存储器、光学存储器、其他非易失性存储装置或者这些的组合或变型)中。部分程序代码可以存储在可编程的rom(rom、prom、eprom、eeprom等)中,部分程序代码可以存储在存储装置40中和/或可移除媒介诸如游戏媒介12(其可以是cd-rom、磁带盒(cartridge)、存储器芯片等,或者根据需要通过网络或其他电子通道获得)上。一般地,可以发现程序代码体现在有形的非暂态信号承载介质中。
随机存取存储器(ram)48(以及可能的其他存储装置)可用于根据需要存储变量以及其他游戏和处理器数据。使用ram48,其保持在应用程序的执行期间生成的数据,并且其一部分也可以被预留用于帧缓存、应用程序状态信息和/或对于解读用户输入和生成显示输出而言所需要的或可用的其他数据。一般地,ram48是易失性存储装置,并且当计算设备10被关闭或断电时,存储在ram48内的数据可能会丢失。
当计算设备10读取游戏媒介12并提供应用程序时,可以从游戏媒介12读取信息并将信息存储在存储设备诸如ram48中。另外,来自存储装置40、rom46、经由网络(未示出)访问的服务器或可移除存储媒介44的数据可以被读取并加载到ram48中。尽管描述了在ram48中得到数据,但是将理解的是,数据不一定必须存储在ram48中,而是可以存储在处理单元20可访问的其他存储器中,或分布在若干媒介诸如游戏媒介12和存储装置40中。
要理解的是,根据本文所述的任何特定实施方案不一定可以实现所有目的或优点。因此,例如,本领域技术人员将认识到,某些实施方案可以被配置为以如下方式进行操作,上述方式使得实现或优化如本文教导的一个优点或一组优点的方式,而不一定实现如本文可能教导或暗示的其他目的或优点。
本文描述的所有过程均可以以软件代码模块来体现并经由软件代码模块完全自动化,其中上述软件代码模块由包括一个或多个计算机或处理器的计算系统执行。代码模块可以存储在任何类型的非暂态计算机可读介质或其他计算机存储设备中。上述方法中的一些或全部可以以专用计算机硬件来实施。
根据本公开内容将明了除了本文所述的那些之外的许多其他变型。例如,根据实施方案,本文描述的任何算法的某些动作、事件或功能可以以不同的顺序执行,或者可以被添加、合并或一并被遗弃(例如,对于算法的实现而言,并非所有描述的动作或事件均是必需的)。此外,在某些实施方案中,可以例如通过多线程处理、中断处理或者多个处理器或处理器芯或者在其他并行架构上同时地执行动作或事件,而不是顺序地执行。另外,不同的任务或过程可以由可以一起运作的不同的机器和/或计算系统来执行。
结合本文中所公开的实施方案描述的各种说明性逻辑框和模块可以由机器实施或执行,上述机器诸如为被设计成执行本文所描述的功能的处理单元或处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立门或晶体管逻辑、分立的硬件部件或它们的任何组合。处理器可以是微处理器,但在可替代方案中,处理器可以是控制器、微控制器或状态机或它们的组合等。处理器可以包括被配置为处理计算机可执行指令的电路。在另一实施方案中,处理器包括执行逻辑操作而不处理计算机可执行指令的fpga或其他可编程器件。处理器还可以作为计算设备的组合来实施,例如dsp和微处理器的组合、多个微处理器、一个或多个微处理器连同dsp芯的组合或任何其他这样的配置。尽管本文主要是关于数字技术进行描述的,但是处理器还可以主要是模拟性的部件。例如,本文所描述的信号处理算法中的一些或全部可以以模拟电路或者模拟和数字混合型电路来实施。计算环境可以包括任何类型的计算机系统,包括但不限于基于微处理器、大型计算机、数字信号处理器、便携式计算设备、设备控制器或装置内的计算引擎的计算系统,仅举几例。
除非另外特别说明,否则条件性用语,诸如“能够(can)”、“可(could)”、“可能(might)”或“可以(may)”,在上下文中要如通常所使用的进行理解,以传达某些实施方案包括而其他实施方案不包括某些特征、元件和/或步骤。因此,这样的条件性用于通常不意在暗示:特征、元件和/或步骤以任何方式对于一个或多个实施方案是必需的;或者一个或多个实施方案必须包括用于判定——在具有或不具有用户输入或提示的情况下——这些特征、元件和/或步骤是否包括在任何特定的实施方案中或将在任何的特定实施方案中执行的逻辑。
除非另外特别说明,否则析取性(disjunctive)用语,诸如短语“x、y或z中的至少一个”通常在上下文中要如通常所使用的进行理解,以表示项、术语等可以是x、y或z,或它们的任何组合(例如x、y和/或z)。因此,这样的析取性用语通常不意在并且不应当暗示某些实施方案需要至少一个x、至少一个y、或至少一个z三者均存在。
在本文描述和/或在随附附图中描绘的流程图中的任何过程描述、元素或框均应当被理解为潜在地表示包括用于在过程中实施具体的逻辑功能或元件的一个或多个可执行指令的代码模块、代码段或代码部分。在本文所描述的实施方案的范围内包括可替代的实施方式,在这样的实施方案中,元素或功能可以被删除、与所示出的或所讨论的次序颠倒地执行,包括基本上同时执行或以相反的顺序执行,这取决于本领域技术人员将理解的所涉及的功能。
除非另外明确说明,否则冠词,诸如“一个”或“一”,通常应被解释为包括一个或多个所描述的项。相应地,诸如“一种被配置为…的设备”的措辞意在包括一个或多个所记载的设备。这样的一个或多个记载的设备还可以被共同地配置为执行所述列举项(recitation)。例如,“一种被配置为执行列举项a、b和c的处理器”可以包括被配置为实施列举项a的第一处理器,该第一处理器连同被配置为执行列举项b和c的第二处理器一起工作。
应当强调的是,可以对上述实施方案做出许多变型和修改,这些变型和修改要素应被理解为在其他可接受的实施例中。所有这些修改和变型均意在包括在本公开内容的范围内。