首页> 中国专利> 使用对等流式传输的众包云游戏

使用对等流式传输的众包云游戏

摘要

一种方法包括:由云游戏机执行云视频游戏的会话,所述会话被配置为生成玩游戏过程视频;将所述玩游戏过程视频通过网络从所述云游戏机流式传输到主要用户装置;其中所述主要用户装置被配置为通过对等网络将所述玩游戏过程视频流式传输到一个或多个次要用户装置;其中所述主要用户装置被配置为处理从与所述主要用户装置相关联的交互式玩游戏过程生成的主要输入以及从与所述一个或多个次要用户装置相关联的交互式玩游戏过程生成的次要输入,以生成聚合输入;由所述云游戏机通过所述网络接收来自所述主要用户装置的所述聚合输入;其中执行所述云视频游戏的所述会话包括应用所述聚合输入以更新所述云视频游戏的游戏状态。

著录项

  • 公开/公告号CN113226500A

    专利类型发明专利

  • 公开/公告日2021-08-06

    原文格式PDF

  • 申请/专利权人 索尼互动娱乐有限责任公司;

    申请/专利号CN201980085623.4

  • 发明设计人 D.布特勒;K.坎农;

    申请日2019-09-11

  • 分类号A63F13/355(20060101);A63F13/335(20060101);A63F13/34(20060101);A63F13/795(20060101);A63F13/86(20060101);H04N21/63(20060101);H04N21/478(20060101);H04N21/2743(20060101);H04N21/4788(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人张晓明

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:07:15

说明书

技术领域

本公开涉及用于众包云游戏的系统和方法,并且更具体地涉及对等视频流式传输的建立,以实现通过云视频游戏的主要客户端装置作为中介的去中心化游戏。

背景技术

相关技术的描述

当前正在快速发展的一个技术领域是云游戏领域。用户能够通过网络(诸如互联网)访问云游戏站点上的许多游戏,并且开始进行交互/玩游戏。为了选择可玩的游戏,用户访问他/她在云游戏站点上的账户,并且启动可供该用户账户玩的多个游戏中的一个游戏。从云视频游戏生成的视频被传输到客户端装置。云游戏系统的一个示例是

正是在这种背景下提出本公开的实施方案。

发明内容

本公开的实现方式提供了用于使用对等流式传输来提供众包云游戏的方法和系统。

根据本公开的实现方式,WebRTC,即一种可以内置在浏览器中的流式传输技术,可以用来允许视频流(包括视频图像数据和音频数据)的对等操作。主机可以将视频广播给另一个用户,并且该用户可以将视频共享给另一个用户,等等。WebRTC有多种方法可以有效地实现视频分发。根据本公开的实现方式,此类流式传输可以被应用于通过浏览器接收的视频游戏流。可以存在连接到视频游戏的初始流式传输器(streamer)的多个装置,该初始流式传输器连接到流式传输视频的云游戏机。因此,他们的视频流被克隆到其他用户,因此这些观众可以查看和收听初始用户的游戏流。

WebRTC的一个优点是它在视频劣化方面非常从容。在利用一些流式传输服务的情况下,如果不在他们的服务器中的一个服务器附近,则连接和视频质量可因延迟而劣化。但是在利用WebRTC P2P网络的情况下,由于给定的用户装置可以连接到更靠近数据中心的另一个装置,并且P2P连接是直接连接,且尽可能避免多跳,因此视频共享动态地进行降采样并且提供更广泛的网络覆盖范围。

此外,可能将套接字备份提供给初始用户,使得可以接收来自观众的输入并且用于(至少部分地)控制玩游戏过程。在一些实现方式中,集体地统计用户的输入并且将其应用于视频游戏。观众可以通过其相应的控制器发出输入命令,并且这些输入命令可以在主机用户的机器上或游戏机的上游聚合。所有输入命令都通过主要用户的机器备份馈送到云中的游戏机。这样,可能拥有大规模的多玩家在线游戏体验,而不会给云游戏提供商带来额外的资源负担。此外,可能提供来自各种用户的实时观看和输入控制。虽然可以存在很多用户,但是游戏机可以将他们视为单个玩家,因为通过适当的通道发送他们的集体输入。例如,在一些实现方式中,所有用户都可以参与控制与主要用户相同的角色。从云游戏服务器的角度来看,它是无缝的,因为集体输入显示为单个客户端,并且会话没有变化。因此,众包玩游戏过程功能性对于数据中心托管系统是透明的。

先前已经在慢速玩游戏过程视频游戏(例如,回合制游戏)上实现了对众包游戏的尝试,诸如让用户对下一步的操作发表评论,然后统计票数,然后发布最受欢迎的命令。然而,此类设置并不能够实现有效地玩需要实时控制的游戏的众包玩游戏过程。与对众包游戏的先前尝试形成对照,根据本公开的实现方式实现了实时的众包玩游戏过程控制,而不需要附加的云服务器资源。

应当理解,本公开的实现方式实现了协作游戏体验,使得其他人可以加入游戏会话、接替一分钟、提供帮助等。

广义地讲,本公开的一些实现方式被吸引到现代web浏览器内的游戏客户端。可以使用WebRTC技术来构建此类浏览器客户端,WebRTC技术是一种在所有主要浏览器上都类似地起作用的受广泛支持的技术。WebRTC与TCP传输的不同之处在于,不执行错误检查或分组保证。类似于UDP传输,WebRTC的发送/接收分组的开销很小/没有开销,因此速度很快。

本公开的实现方式可以使用WebRTC创建对等连接,该对等连接是两个客户端之间的直接连接。对等连接允许该连接避免多跳和影响等待时间。可以使用会话描述协议(SDP)执行连接初始化。SDP用于在两个装置之间创建通信契约,并且支持用于控制缓冲、关键帧定义、回退端口、协议等的若干选项。

在一些实现方式中,提供了一种方法,其包括:由云游戏机执行云视频游戏的会话,该会话被配置为生成玩游戏过程视频;将玩游戏过程视频通过网络从云游戏机流式传输到主要用户装置,该主要用户装置被配置为将玩游戏过程视频渲染到主要显示器;其中主要用户装置被配置为通过对等网络将玩游戏过程视频流式传输到一个或多个次要用户装置,所述次要用户装置中的每一个次要用户装置被配置为将玩游戏过程视频分别渲染到一个或多个次要显示器;其中主要用户装置被配置为处理从与主要用户装置相关联的交互式玩游戏过程生成的主要输入以及从与一个或多个次要用户装置相关联的交互式玩游戏过程生成的次要输入,以生成聚合输入;由云游戏机通过网络接收来自主要用户装置的聚合输入;其中执行云视频游戏的会话包括应用聚合输入以更新被处理来生成玩游戏过程视频的云视频游戏的游戏状态。

在一些实现方式中,该方法通过主要用户装置和一个或多个次要用户装置同时实现云视频游戏的会话的基本上实时的交互式玩游戏过程。

在一些实现方式中,云游戏机不与一个或多个次要用户装置通信。

在一些实现方式中,云视频游戏的会话被定义为云视频游戏的单玩家会话。

在一些实现方式中,主要用户装置被配置为实例化套接字,通过该套接字从一个或多个次要用户装置接收次要输入。

在一些实现方式中,次要用户装置中的至少一个次要用户装置被配置为执行浏览器应用程序,该浏览器应用程序渲染通过对等网络接收的玩游戏过程视频。

在一些实现方式中,将玩游戏过程视频通过对等网络流式传输到一个或多个次要用户装置包括访问WebRTC应用程序编程接口(API)以实现对等网络的实例化。

在一些实现方式中,处理主要输入和次要输入以生成聚合输入包括将主要输入和次要输入组合成单个输入流。

在一些实现方式中,处理主要输入和次要输入以生成聚合输入包括基于主要输入和次要输入确定受欢迎的输入。

在一些实现方式中,处理主要输入和次要输入以生成聚合输入包括:针对给定的输入类型和当前时间间隔,基于主要输入和次要输入中具有给定的输入类型并且在当前时间间隔期间发生的主要输入和次要输入来确定单个输入命令。

在一些实现方式中,提供了一种在上面体现程序指令的非暂时性计算机可读介质,所述程序指令被配置为在由至少一个服务器计算机执行时使该至少一个服务器计算机执行包括以下方法操作的方法:由云游戏机执行云视频游戏的会话,该会话被配置为生成玩游戏过程视频;将玩游戏过程视频通过网络从云游戏机流式传输到主要用户装置,该主要用户装置被配置为将玩游戏过程视频渲染到主要显示器;其中主要用户装置被配置为通过对等网络将玩游戏过程视频流式传输到一个或多个次要用户装置,所述次要用户装置中的每一个次要用户装置被配置为将玩游戏过程视频分别渲染到一个或多个次要显示器;其中主要用户装置被配置为处理从与主要用户装置相关联的交互式玩游戏过程生成的主要输入以及从与一个或多个次要用户装置相关联的交互式玩游戏过程生成的次要输入,以生成聚合输入;由云游戏机通过网络接收来自主要用户装置的聚合输入;其中执行云视频游戏的会话包括应用聚合输入以更新被处理来生成玩游戏过程视频的云视频游戏的游戏状态。

在一些实现方式中,提供了一种系统,其包括:云游戏机,该云游戏机被配置为执行云视频游戏的会话,该会话被配置为生成玩游戏过程视频;该云游戏机被配置为将玩游戏过程视频通过网络从云游戏机流式传输到主要用户装置,该主要用户装置被配置为将玩游戏过程视频渲染到主要显示器;其中主要用户装置被配置为通过对等网络将玩游戏过程视频流式传输到一个或多个次要用户装置,所述次要用户装置中的每一个次要用户装置被配置为将玩游戏过程视频分别渲染到一个或多个次要显示器;其中主要用户装置被配置为处理从与主要用户装置相关联的交互式玩游戏过程生成的主要输入以及从与一个或多个次要用户装置相关联的交互式玩游戏过程生成的次要输入,以生成聚合输入;由云游戏机通过网络接收来自主要用户装置的聚合输入;其中执行云视频游戏的会话包括应用聚合输入以更新被处理来生成玩游戏过程视频的云视频游戏的游戏状态。

通过结合附图以示例方式示出本公开原理进行的以下详细描述,本公开的其他方面和优点将变得显而易见。

附图说明

通过参考结合附图进行的以下描述可以最好地理解本公开及其另外的优点。

图1A示出了根据本公开的实施方案的用于将游戏内容预加载到云游戏服务器上的示例性系统的简化框图。

图1B是概念性地示出根据本公开的实现方式的经执行用于将云视频游戏流式传输到客户端装置的各种操作的流程图。

图2概念性地示出了根据本公开的实现方式的用于通过网络将云视频游戏提供给多个用户的系统。

图3概念性地示出了根据本公开的实现方式的主要用户装置220和次要用户装置228的组成部分。

图4A概念性地示出了根据本公开的实现方式的系统,其中在主要客户端装置处处理输入的聚合。

图4B概念性地示出了根据本公开的实现方式的系统,其中在游戏机处处理输入的聚合。

图4C概念性地示出了根据本公开的实现方式的系统,其中在聚合服务器处处理输入的聚合。

图5A、图5B和图5C概念性地示出了根据本公开的实现方式的视频游戏会话的控制权在用户之间的传递。

图6A示出了根据本公开的实现方式的用于访问云游戏系统的在线用户的玩游戏过程的界面600。

图6B示出了根据本公开的实现方式的用于提供对观看和/或参与云游戏系统中的用户会话的玩游戏过程的访问的界面610。

图7示出了根据本公开的实现方式的用于向地理上分散并且经由网络连接的用户传递信息内容和服务的示例性信息服务提供商架构。

图8示出了根据本公开的实现方式的用于控制呈现给用户的内容的计算装置的示例性部件。

图9是根据本公开的实现方式的游戏系统900的框图。

具体实施方式

在以下描述中,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有一些或所有这些具体细节的情况下实践本公开。在其他情况下,未详细描述众所周知的过程步骤,以免使本公开内容不清楚。

云游戏系统的一个示例是

在现有的云游戏系统(例如,

然而,当其他远程次要用户希望观看主要用户的游戏会话时,关于如何向其他远程用户提供主要客户端装置的视频流提出了挑战。一个选项是从相同的数据中心,甚至可能从相同的游戏机,流式传输到分别与次要用户相关联的次要客户端装置。然而,这样做给数据中心的资源和数据中心的网络连接增加了额外的负担,从而降低了其他装置和会话的资源可用性以及连接带宽。此外,虽然可以针对主要客户端装置优化数据中心,但它可能无法为次要客户端装置中的一个或多个次要客户端装置提供良好的性能。例如,次要客户端装置可相比于主要客户端装置距离数据中心明显更远,并且次要客户装置可能具有较差的连接速度和降低的流式传输性能。

鉴于此,根据本公开的实现方式提供了一种系统,其中在主要客户端装置和次要客户端装置之间建立了对等网络,并且通过此对等网络进行(主要客户端装置的云游戏会话的)玩游戏过程视频的流式传输。通过这种方式,次要客户端装置不需要与云游戏服务的服务器建立流式传输连接,因此云游戏服务不需要承担与处理此类流式传输连接相关联的高服务器成本。

在一些实现方式中,使用WebRTC技术来实现对等流式传输。在一些实现方式中,主要客户端装置实现流式传输服务器,并且可以被配置为在UDP中发布以获得最佳的流式传输性能。传统上,浏览器使用TCP/IP,这是一个串行进程,使得如果分组丢失,则连接被破坏。然而,UDP允许在不中断连接的情况下丢弃分组,这对于流视频是有利的。

另外,在一些实现方式中,提供套接字或数据信道,通过该套接字或数据通道,由次要客户端装置生成的用户输入被传输到主要客户端装置。此类用户输入连同主要客户端装置的用户输入可以在主要客户端装置处聚合并且从主要客户端装置传输到云游戏服务。通过这种方式,次要用户不仅可以观看主要用户的云视频游戏的会话,还可以参与游戏。云游戏机无需与次要客户端装置通信,但次要用户仍能够参与进行主要用户的云视频游戏的会话。

因此,根据本公开的实现方式提供了一种主要客户端,该主要客户端利用对等技术(例如,使用WebRTC协议)来使多个次要客户端能够查看主要客户端的玩游戏过程视频,而不会对云游戏服务的系统资源造成额外的压力。此外,次要用户能够通过在主要客户端装置处聚合并且随后被传输到云视频游戏的输入来参与主要用户的游戏会话。

因此,根据本公开的实现方式提供了对在不给云游戏服务提供商带来额外的资源负担的情况下使得多个用户能够进行视频游戏的玩游戏过程的令人满意的流式传输这一问题的解决方案。

广义地讲,为了实现云游戏,当接收到针对游戏名称的用户请求时,由与云游戏站点相关联的数据中心内的一个或多个服务器执行若干操作。当云游戏站点接收到用户请求时,标识托管与所选择的游戏名称相关联的游戏的数据中心,并且将该请求发送到所标识的数据中心,以针对所选择的游戏名称实例化游戏。响应于该请求,数据中心处的服务器标识游戏代码,加载所标识的游戏代码并且初始化与游戏代码相关的文件,以准备将游戏内容呈现给用户。与游戏相关联的游戏数据可包括通用游戏数据和用户特定的游戏数据。因此,初始化文件可以包括标识、加载和初始化通用游戏数据和用户特定的游戏数据。初始化通用游戏数据可包括初始化图形引擎、安装图形数据、初始化声音文件,安装原图等。初始化用户特定数据可包括定位、传输和安装用户数据、用户历史记录、游戏历史记录等。

在加载和初始化通用游戏数据时,可以提供“启动”画面以在客户端装置处进行渲染。可以设计一种启动画面来提供正在加载的游戏的代表性图像,以允许用户预览正在加载的游戏的类型。一旦加载了通用游戏数据,就可以渲染某些初始内容,并且可以呈现选择/导航屏幕以供用户选择和定制。在选择/导航屏幕处提供的用户选择输入可以包括游戏等级选择、一个或多个游戏图标选择、游戏模式选择、游戏奖励、可能需要上传其他游戏内容的其他用户相关数据。在一些实施方案中,通过将游戏内容从游戏云系统流式传输到用户的计算装置来使游戏内容可用于查看和交互。在一些实现方式中,在加载用户特定数据之后,游戏内容可用于进行游戏。

图1A示出了用于为可通过云游戏站点获得的游戏加载游戏文件的示例性系统。该系统包括多个客户端装置100,所述多个客户端装置通过网络102(诸如互联网)通信地连接到云游戏站点104。当从客户端装置100接收到访问云游戏站点104的请求时,云游戏站点104访问存储在用户数据存储区108中的用户账户信息106,以标识与发起请求的客户端装置相关联的用户。在一些实施方案中,云游戏站点还可以验证所标识的用户,以便确定该用户被授权查看/玩的所有游戏。在用户账户标识/验证之后,云游戏站点访问游戏名称数据存储区110以针对发起请求的用户账户标识在游戏云站点处可用的游戏名称。游戏名称数据存储区110继而与游戏数据库112进行交互以获得针对云游戏站点可用的所有游戏的游戏名称。当推出新的游戏时,将用游戏代码更新游戏数据库112,并且将为游戏名称数据存储区110提供新推出的游戏的游戏名称信息。当发起请求时,发起请求的客户端装置可以或可以不注册到云游戏站点。如果发起请求的客户端装置的用户不是注册用户,则云游戏站点可以将该用户标识为新用户,并且选择适合新用户的游戏名称(例如,默认的一组游戏名称)。将所标识的游戏名称返回给客户端装置以呈现在显示屏100-a上,如图1A所示。

检测在客户端装置上渲染的游戏名称中的一个游戏名称上的用户交互,并且将信号发送到云游戏站点。该信号包括检测到用户交互的游戏名称信息以及在游戏名称处注册的用户交互。响应于从客户端装置接收的信号,云游戏站点主动确定托管游戏的数据中心,并且向所标识的数据中心发送信号以加载与检测到用户交互的游戏名称相关联的游戏。在一些实施方案中,可能有一个以上的数据中心正在托管游戏。在此类实施方案中,云游戏站点可以确定发起请求的客户端装置的地理位置,并且标识在地理上靠近客户端装置的数据中心,并且发信号通知该数据中心来预加载游戏。可以使用客户端装置内的全球定位系统(GPS)机制、客户端的IP地址、客户端的查验(ping)信息等来确定用户的地理位置。当然,检测用户的地理位置的前述方式可以是示例性的,并且可以使用其他类型的机制或工具来确定用户的地理位置。标识靠近客户端装置的数据中心可以使用户与游戏进行交互期间的延迟最小化。在一些实施方案中,所标识的数据中心可能不具有托管游戏所需的带宽/容量或者可能被过度使用。在这些实施方案中,云游戏站点可以标识在地理上靠近客户端装置的第二数据中心。游戏的加载包括加载游戏代码并且执行游戏的实例。

响应于从云游戏站点接收到信号,所标识的数据中心可以在数据中心处选择服务器来在服务器上实例化游戏。基于可用的硬件/软件能力和游戏要求来选择服务器。服务器可以包括多个游戏控制台,并且服务器可以确定使用多个游戏控制台中的哪一个游戏控制台来加载游戏。游戏控制台可以类似于独立的游戏控制台,或者可以是机架式服务器或刀片服务器。刀片服务器继而可以包括多个服务器刀片,其中每个刀片具有用于实例化单个专用应用程序(诸如游戏)所需的电路。当然,上述游戏控制台是示例性的,不应被视为是限制性的。其他类型的游戏机(包括游戏站等)以及其他形式的刀片服务器也可以用于托管所标识的游戏。

一旦标识出游戏控制台,就将游戏的通用游戏相关代码加载到游戏控制台上,并且通过标识实例化游戏的游戏控制台的网络经由云游戏站点将信号返回给客户端装置。因此,加载的游戏可供用户使用。

图1B是概念性地示出根据本公开的实现方式的经执行用于将云视频游戏流式传输到客户端装置的各种操作的流程图。游戏系统118执行视频游戏并且生成原始(未压缩的)视频120和音频122。视频120和音频122被捕获和编码以用于流式传输目的,如在例示的图中的参考标号124所指示的。编码可以提供视频和音频流的压缩,以减少带宽使用并且优化游戏体验。编码格式的示例包括H.265/MPEG-H、H.264/MPEG-4、H.263/MPEG-4、H.262/MPEG-2、WMV、VP6/7/8/9等。

经编码的音频126和经编码的视频128被进一步打包为网络分组,如附图标号132所示,以用于通过网络(诸如互联网)进行传输的目的。网络分组编码过程也可以采用数据加密过程,从而提供增强的数据安全性。在所示实现方式中,如参考标号140所示,生成音频分组134和视频分组136以用于通过网络进行传输。

游戏系统118另外生成触觉反馈数据130,该触觉反馈数据也被打包为网络分组以用于网络传输。在所示实现方式中,生成触觉反馈分组138以用于通过网络进行传输,如在参考标号140处进一步指示的。

在共同定义云游戏服务/系统的一个或多个服务器上执行上述生成原始视频和音频以及触觉反馈数据、对视频和音频进行编码并且对经编码的音频/视频和触觉反馈数据进行打包以进行传输的操作。如参考标号140所示,音频、视频和触觉反馈分组通过网络(诸如并且/或者包括互联网)进行传输。如参考标号142所示,音频分组134、视频分组136和触觉反馈分组138由客户端装置解码/重组,以在客户端装置处定义经编码的音频146、经编码的视频148和触觉反馈数据150。如果数据已经加密,则网络分组也将被解密。然后,如参考标号144所示,由客户端装置对经编码的音频146和经编码的视频148进行解码,以生成客户端侧原始音频和视频数据以在显示装置152上渲染。可以处理/传送触觉反馈数据150以在控制器装置156或可以渲染触觉效果的其他界面装置处产生触觉反馈效果。触觉效果的一个示例是控制器装置156的振动或隆隆声。

应当理解,视频游戏对用户输入进行响应,并且因此可以执行与上述用于用户输入的传输和处理的过程类似的程序流程,但是在从客户端装置到服务器的相反方向上。如图所示,用户操作控制器装置156可生成输入数据158。输入数据158在客户端装置处进行打包,以通过网络传输到云游戏系统。输入数据分组160被云游戏服务器拆包并且重组以在服务器侧定义输入数据162。输入数据162被馈送到游戏系统118,该游戏系统处理输入数据162以更新视频游戏的游戏状态。

在音频分组134、视频分组136和触觉反馈分组138的传输(参考标号140)期间,可以监视通过网络的数据传输以确保云游戏流的服务质量。例如,可以如参考标号164所指示监视网络状况,包括上游和下游网络带宽两者,并且可以响应于可用带宽的变化来调整游戏流式传输。即,可以基于当前网络状况来控制网络分组的编码和解码,如参考标号166所示。

图2概念性地示出了根据本公开的实现方式的用于通过网络将云视频游戏提供给多个用户的系统。在所示实现方式中,由游戏机202执行云视频游戏,从而定义视频游戏会话204。游戏机202可以与能够执行用于各种客户端装置的云视频游戏的会话的其他游戏机一起位于数据中心200中。应当理解,在各种实现方式中,游戏机202可以是游戏控制台、等同于游戏控制台的硬件(例如,刀片式游戏控制台硬件)、服务器计算机/刀片、在硬件资源上执行的虚拟机,或者能够为云视频游戏提供适当执行环境的任何其他硬件配置。

在所示实现方式中,为主要用户226定义视频游戏会话204。因此,视频游戏会话204通过网络218(其可以包括互联网)被流式传输到与主要用户226相关联的主要用户装置220。更具体地,视频游戏会话204实例化并且保持基于所接收的输入命令而更新的游戏状态。游戏机202基于游戏状态来渲染视频帧和音频,从而定义通过网络218传输到主要用户装置220的视频流221(包括运动图像数据和音频数据两者)。如本公开中所用,并且除非本公开中指出或以其他方式从本公开显而易见,否则视频将指运动图像数据和对应的音频数据两者。主要用户装置220将视频流渲染到显示器222,以供主要用户226查看。主要用户226可以通过控制器装置224的操作与视频游戏进行交互,该控制器装置可以是主要用户226可以通过其向视频游戏提供交互式输入的任何装置,诸如游戏控制器、外围装置、键盘、鼠标、触摸板、轨迹球、运动控制器、摄像机、深度摄像机、传声器,等等。

应当理解,主要用户装置220可以是各种类型的装置中的任何一种,诸如游戏控制台、个人计算机、膝上型计算机、便携式游戏装置、平板计算机、蜂窝电话或能够从游戏机202接收视频流221并且将其渲染到显示器222的任何其他联网装置。显示器222可以是能够显示来自视频游戏会话的视频的任何类型的显示器,包括例如但不限于电视机、监视器、投影仪、触摸屏、头戴式显示器(HMD)等。在一些实现方式中,主要用户装置220和显示器222可以集成在相同的外形规格(例如,膝上型计算机、平板计算机、蜂窝电话等)中。应当理解,在一些实现方式中,控制器装置224也可以集成在相同的外形规格中。应当理解,与参考与主要用户相关联的装置所描述类似的概念也适用于与次要用户相关联的装置,如下文进一步描述的。

在上述实现方式中,游戏机202将视频流221流式传输到主要用户装置220。在一些实现方式中,调用流式传输服务器206以处理视频流221到主要用户装置220的流式传输。流式传输服务器206可以处理游戏机202输出的原始视频,诸如通过以压缩格式对原始视频进行编码,将原始视频从一种格式/编解码器转码为另一种格式/编解码器,基于各种考虑(例如,网络带宽、主要用户装置硬件能力、主要用户装置的应用程序/浏览器类型等)来调整原始视频的比特率以生成视频流221。在一些实现方式中,流式传输服务器206位于数据中心200中,而在其他实现方式中,流式传输服务器206可以位于其他位置中,诸如其他数据中心。在一些实现方式中,流式传输服务器206由游戏机202执行。

根据本公开的实现方式,提供了使多个次要用户能够观看并且参与主要用户226的会话的方法。在所示实现方式中,示出了分别与次要用户装置228、236、244和252相关联的此类次要用户234、242、250和258。次要用户装置228、236、244和252分别可操作地连接到显示器230、238、246和254以及控制器装置232、240、248和256。

根据本公开的实现方式,通过对等(P2P)共享将由主要用户装置220渲染的视频共享给次要用户装置。也就是说,(通过网络218)在主要用户装置和次要用户装置之间建立对等连接,从而形成P2P网络,通过该P2P网络将视频共享给所有次要用户装置。应当理解,P2P共享基本上是实时的,具有最短的延迟,使得次要用户能够以最小的滞后同时查看与主要用户226正在查看的视频游戏会话204的视频内容相同的视频内容。以这种方式,次要用户能够基本上实时地观看主要用户的玩游戏过程。

在一些实现方式中,使用WebRTC完成P2P共享。例如,在一些实现方式中,使用RTCPeerConnection API并且还根据会话描述协议(SDP)来建立对等连接。广义地讲,这需要通过使用SDP交换要约和答复来发信号通知以交换媒体配置信息。

此外,根据本公开的实现方式,提供了使次要用户能够参与主要用户的视频游戏会话204的玩游戏过程的功能性。例如,在一些实现方式中,由次要用户提供的交互式输入可以被传输回主要用户装置220,在主要用户装置处,所述交互式输入结合主要用户的输入被聚合或处理。然后,将主要用户和次要用户的聚合输入作为输入流223传输到游戏机202。在所示实现方式中,来自次要用户的输入可以通过次要用户对其相应的控制器装置232、240、248和256的操作来生成。因此,例如,考虑到次要用户234的观看和玩游戏过程体验,当次要用户234通过次要用户的显示器230查看主要用户226的共享玩游戏过程视频时,次要用户234可以通过操作控制器装置232来与视频进行交互。这生成输入,这些输入由次要用户装置228传输到主要用户装置220(例如,通过套接字或配置为在主要用户装置220处接收输入的其他连接协议)。应当理解,使用其他次要用户的相应的次要用户装置、显示器和控制器装置向其他次要用户提供类似的体验。

以这种方式,次要用户装置向主要用户装置220提供次要输入,并且主要用户装置220可以将这些输入与通过主要用户226的交互提供的主要输入(通过控制器装置224的操作)一起处理,以生成聚合输入流223。应当理解,在各种实现方式中,可以不同方式来处理主要用户和次要用户的组合输入。无论如何,以这种方式,次要用户能够参与为主要用户226定义的视频游戏会话204的玩游戏过程。此外,从游戏机202的角度来看,它仅向单个客户端(即,主要用户装置220)提供会话,并且不需要附加的云资源即可实现次要用户的参与。游戏机202(或流式传输服务器206,当被调用时)不需要与次要用户装置通信,但是次要用户能够查看玩游戏过程,甚至参与玩游戏过程。

在一些实现方式中,云视频游戏和观看/参与功能性由云游戏服务208提供。广义地讲,云游戏服务208提供对玩云视频游戏的访问以及对观看其他用户的玩游戏过程的访问。在所示实现方式中,云游戏服务208包括web服务器200,该web服务器通过网络218从由云游戏服务208的用户操作的用户装置接收请求并且对该请求做出响应。在一些实现方式中,web服务器210诸如通过促进登录凭证的授权并且提供对用于云游戏服务的界面的访问来接收访问云游戏服务208的请求并且对该请求做出响应,在一些实现方式中,当发出请求的用户装置正在通过web浏览器访问云游戏服务时,该界面可以呈一个或多个网页的形式。在提供此类服务时,web服务器210可以访问用户数据存储装置216,该用户数据存储装置可以包括各种用户相关数据,诸如登录凭证、用户游戏历史记录、社交图信息、成就/奖杯、游戏所有权、偏好/设置,等等。

根据所示实现方式,web服务器210可以从主要用户装置220接收访问云视频游戏的请求,并且响应于该请求,将主要用户装置220分配给数据中心200处的游戏机202,并且在游戏机202上为主要用户226发起视频游戏会话204。

此外,web服务器210可以从次要用户装置228、236、244和252接收访问实时游戏会话的请求。在所示实现方式中,云游戏服务208包括实时游戏监视器212,该实时游戏监视器被配置为从进行中的云游戏会话中获得更新,并且将更新存储到实时游戏数据存储装置214。例如,此类更新可以包括标识活动的云游戏会话的数据、代表性的最近的屏幕截图、关于此类会话的信息/统计信息(例如,活动会话的持续时间、与会话相关联的用户ID、多玩家会话中的玩家数量,游戏相关的统计信息等)、聊天日志,等等。响应于前述访问实时游戏会话的请求,web服务器210可以访问实时游戏数据存储装置214以获得关于实时游戏会话的数据并且将所述数据提供给发出请求的次要用户装置。

Web服务器210可以进一步从次要用户装置228、236、244和252接收请求,以特定地观看并且可能参与主要用户226的视频游戏会话204。响应于此类请求,web服务器210可以将该请求传送到主要用户装置220,以发起玩游戏过程视频的P2P共享,如前所述。

图3概念性地示出了根据本公开的实现方式的主要用户装置220和次要用户装置228的组成部分。在所示实现方式中,主要用户装置220执行云游戏应用程序302,该云游戏应用程序被配置为执行功能性以实现如本文所述的视频游戏会话204的共享玩游戏过程。如上所述,主要用户装置220可以是各种支持网络的装置中的任何一种装置,诸如游戏控制台或个人计算机。因此,在一些实现方式中,云游戏应用程序302可以是专用或独立的应用程序或者是在主要用户装置220的操作系统环境上执行的应用(app)。而在其他实现方式中,云游戏应用程序302可以是web应用程序并且/或者在web浏览器应用程序300的上下文中定义各种功能模块。

在所示实现方式中,云游戏应用程序302包括视频流处理程序304,该视频流处理程序接收视频流221并且将其作为经渲染的玩游戏过程视频渲染到显示器222供主要用户226查看。在一些实现方式中,在主要用户装置220处执行视频流服务器306以促进玩游戏过程视频的P2P共享。应当理解,视频流服务器306可以通过P2P API 316访问P2P库318,以提供主要用户装置220的P2P共享功能性。

在其中使用WebRTC执行P2P共享的一些实现方式中,视频流服务器306然后可以是被配置为通过P2P连接324共享/分发玩游戏过程视频的WebRTC服务器。在此类实现方式中,P2P API 316是WebRTC API,并且P2P库318是WebRTC库。

与主要用户装置220一样,次要用户装置228可以是各种类型的联网装置中的任何一种装置。在所示实现方式中,次要用户装置228包括云游戏应用程序324,该云游戏应用程序可以是独立的应用程序/应用或通过web浏览器332定义。云游戏应用程序324包括视频流客户端336,该视频流客户端被配置为接收通过P2P连接324共享的玩游戏过程视频。应当理解,由于玩游戏过程视频通过P2P网络共享,因此次要用户装置228的视频流客户端336可以从也是P2P网络的一部分并且已经通过P2P网络接收并且共享玩游戏过程视频的部分的其他次要用户装置接收玩游戏过程视频的部分。此外,视频流客户端336还可以将玩游戏过程视频的部分共享到P2P网络中的其他次要用户装置。视频流客户端336可以通过P2P API340访问P2P库342,在一些实现方式中,所述P2P库可以是WebRTC库和WebRTC API。

在一些实现方式中,云游戏应用程序302被配置为设置套接字330,通过该套接字接收来自各种次要用户装置的输入。套接字330可以通过套接字库322来定义,通过套接字API 320来访问该套接字库。在一些实现方式中,使用socket.IO库和API来定义套接字330。

在所示实现方式中,云游戏应用程序334还包括本地输入处理程序338,该本地输入处理程序被配置为接收和传输由次要用户234与次要用户装置228的视频流客户端336渲染到显示器230的玩游戏过程视频的交互生成的次要输入。例如,可以由次要用户234通过控制器装置232的操作来生成此类次要输入。本地输入处理程序338通过套接字330将输入传输到主要用户装置220。

主要用户装置220处的对等输入处理程序310被配置为从次要用户装置228(以及从其他次要用户装置)接收传入的次要输入。主要用户装置220的云游戏应用程序302还包括本地输入处理程序308,该本地输入处理程序被配置为接收由主要用户226与从主要用户装置220渲染到显示器222的视频游戏会话204的玩游戏过程视频的交互生成的主要输入。可以通过控制器装置224的操作生成此类主要输入。

在所示实现方式中,主要用户装置220的云游戏应用程序302还包括输入聚合器312,该输入聚合器被配置为聚合和处理(主要用户的)主要输入和(次要用户的)次要输入。如下面进一步详细讨论的那样,设想聚合和处理主要输入和次要输入的各种方式。处理主要输入和次要输入以定义聚合输入流223,所述聚合输入流被传送到游戏机202并且被应用于视频游戏会话204以驱动会话的执行并且更新视频游戏的游戏状态。以这种方式,来自主要用户226和次要用户的输入的组合被用来玩云视频游戏。应当理解,这在为主要用户226但不一定为次要用户定义视频游戏会话204的上下文中完成。然而,次要用户能够实时查看相同的玩游戏过程视频,并且还以交互方式参与影响视频游戏的玩游戏过程和结果。

应当理解,在各种实现方式中,输入的聚合的处理可以由各种实体执行。图4A概念性地示出了根据本公开的实现方式的系统,其中在主要客户端装置处处理输入的聚合。在所示实现方式中,主要用户装置220从游戏机202接收玩游戏过程视频,并且通过P2P共享将玩游戏过程视频分发给次要用户装置228。来自次要用户装置228的次要输入(例如,通过主要用户装置220处的套接字)被传输回主要用户装置220。因此,在所示实现方式中,次要输入和主要输入的聚合在主要用户装置220处发生。在输入被主要用户装置220聚合和处理之后,所得的组合输入被传输到游戏机202。

图4B概念性地示出了根据本公开的实现方式的系统,其中在游戏机处处理输入的聚合。在所示实现方式中,主要用户装置220从游戏机202接收玩游戏过程视频,并且通过P2P共享将玩游戏过程视频分发给次要用户装置228。来自次要用户装置228的次要输入被传输回游戏机202。此外,来自主要用户装置220的主要输入也被传输到游戏机202。因此,在所示实现方式中,次要输入和主要输入的聚合在游戏机202处发生。

图4C概念性地示出了根据本公开的实现方式的系统,其中在聚合服务器处处理输入的聚合。在所示实现方式中,主要用户装置220从游戏机202接收玩游戏过程视频,并且通过P2P共享将玩游戏过程视频分发给次要用户装置228。来自次要用户装置228的次要输入被传输到聚合服务器400。来自主要用户装置220的主要输入也被传输到聚合服务器400。因此,在所示实现方式中,次要输入和主要输入的聚合在聚合服务器400处发生。在聚合服务器400对输入进行聚合和处理之后,所得的组合输入被传输到游戏机202。

应当理解,在各种实现方式中,主要输入和次要输入可以许多不同的方式组合以应用于视频游戏会话。例如,在一些实现方式中,主要输入和次要输入根据它们的时序被聚合在一起,并且被直接提供给视频游戏会话。即,所有输入都被提供给视频游戏会话而无需进一步处理,使得由每个用户(主要和次要)提供的每个输入都被提供给视频游戏会话。

在一些实现方式中,主要输入和次要输入以周期性间隔聚合,并且在每个间隔选择单个输入(或输入的子集)并且将其传输到视频游戏会话。例如,在一些实现方式中,在每个间隔选择最受欢迎的输入或以最高数量或频率出现的输入,并且将其传输到视频游戏会话。在一些实现方式中,选择一个以上输入,诸如最受欢迎的一组输入。应当理解,周期性间隔的特定长度可以在各种实现方式中变化,作为示例而不进行限制,例如范围从大约几毫秒到零点几秒再到几秒。

在一些实现方式中,对视频游戏的输入可以有不同的类别或类型。非限制性示例包括方向输入(例如,向上、向下、向前、向后、向左、向左等)、移动类型输入(例如,奔跑、跳跃、平移、蹲伏、加速、制动等)、武器控制输入(例如,射击、重装弹药、改变武器等)、虚拟装置控制输入等。在一些实现方式中,在每个间隔选择并且应用最受欢迎的输入或一组输入。

在一些实现方式中,可以应用输入或输入类型的阈值。例如,对于给定的时间间隔,可以选择给定的输入,或者如果给定的输入已经被选择了最少次数,或者已经按用户总数的最小比例选择,则可以仅考虑选择给定的输入(例如,基于如上所述的受欢迎程度)。

另外,在一些实现方式中,对于不同的输入类型/类别,周期性间隔的特定长度可以不同。

在一些实现方式中,可以对输入进行加权以确定一个或多个用户的优先级。例如,在一些实现方式中,主要用户的输入的权重高于次要用户的输入。以这种方式,主要用户的输入对应用于视频游戏的输入具有更大的影响,而次要用户的输入仍然是相关的。在一些实现方式中,待应用的特定权重可以由主要用户配置,使得主要用户可以根据他/她的偏好来设置用户的权重。

在一些实现方式中,可以在不同的用户组之间划分控制权。在一些实现方式中,此类控制权划分可由主要用户通过其主要用户装置进行配置。例如,可以分配一组次要用户来控制特定的玩游戏过程功能(例如,角色的移动),而分配另一组次要用户来控制另一种玩游戏过程功能(例如,武器/攻击控制,诸如武器射击和选择)。

在一些实现方式中,可以使预定义模板可供主要用户选择,所述预定义模板定义了将如何组合主要输入和次要输入来进行视频游戏。这在为主要用户提供要选择的某些默认选项时很有用。

图5A、图5B和图5C概念性地示出了根据本公开的实现方式的视频游戏会话的控制权在用户之间的传递。在所示实现方式中,在图5A中,将视频游戏的玩游戏过程视频从游戏机202流式传输到主要用户装置220。玩游戏过程视频也被P2P共享到次要用户装置228、236和500。如图5A所示,虽然所有主要用户和次要用户都能够基本上实时地查看玩游戏过程视频,但是只有主要用户能通过经由主要用户装置220向视频游戏会话提供输入来控制玩游戏过程。次要用户228、236和500正在观看主要用户的玩游戏过程视频,但是不参与控制玩游戏过程。

然而,根据本公开的实现方式,主要用户可以将对玩游戏过程的控制权传递给次要用户中的一个次要用户。在一些实现方式中,主要用户可以将控制权提供给次要用户,或者在一些实现方式中,一个或多个次要用户可以“呼叫下一个”以及/或者请求获得对玩游戏过程的控制权。应当理解,在一些实现方式中,控制权的传递取决于由与主要用户装置220相关联的主要用户226赋予的许可。在一些实现方式中,控制权的传递可以根据次要用户装置的队列前进,使得正在请求获得对玩游戏过程的控制权的次要用户按照其请求顺序在队列中排列,并且根据它们的顺序将控制权依次传递给每一个次要用户。

在图5B示出的所示实现方式中,对玩游戏过程的控制权已经被传递给次要用户装置228。因此,来自次要用户装置228的输入被传输到主要用户装置220,该主要用户装置然后将输入转发给游戏机202以应用于视频游戏会话来驱动游戏状态的执行。在这种玩游戏过程模式下,即使会话是针对主要用户装置220的主要用户226定义的,通过次要用户装置228(例如,操作控制器装置232)提供输入的次要用户234也能控制玩游戏过程。应当理解,主要用户装置220与次要用户装置236和500正在观看玩游戏过程,但是没有主动地对其进行控制。

在图5C示出的所示实现方式中,对玩游戏过程的控制权已经被传递给次要用户装置236。因此,来自次要用户装置236的输入被传输到主要用户装置220,该主要用户装置然后将输入转发给游戏机202以应用于视频游戏会话来驱动游戏状态的执行。在这种玩游戏过程模式下,即使会话是针对主要用户装置220的主要用户226定义的,通过次要用户装置236(例如,操作控制器装置240)提供输入的次要用户242也能控制玩游戏过程。应当理解,主要用户装置220与次要用户装置228和500正在观看玩游戏过程,但是没有主动地对其进行控制。

图6A示出了根据本公开的实现方式的用于访问云游戏系统的在线用户的玩游戏过程的界面600。在所示实现方式中,界面600提供对与主要用户在社交网络上的好友有关的信息的访问。社交网络可以是云游戏系统的社交网络,或另一种社交网络。如图所示,提供了各种选项,诸如“搜索”特征以实现对特定用户的搜索;“在线”特征以查看当前在线的好友;“全部”特征以查看主要用户的所有好友;“在游戏会话中”特征602以查看当前正在参与活动游戏会话的好友;“遇见的玩家”特征以查看用户在其他情景中(例如,在视频游戏的多玩家玩游戏过程期间)遇到的玩家的ID;“好友请求”特征以查看对主要用户的/来自主要用户的在社交网络上成为好友的请求;以及“被屏蔽”特征以查看被阻止在社交网络上与主要用户进行交流或互动的用户。

如所示出的实现方式所示,已经从界面600中选择了“游戏会话中”特征602,从而在界面的右侧显示出当前正在参与活动的玩游戏过程会话的用户好友列表。此类好友的列表可以是一系列个人资料条目(诸如条目604)的形式,并且还可以包括相关信息,诸如好友的用户ID、个人资料图片、他们正在玩的特定视频游戏名称、他们的玩游戏过程持续时间、他们的当前等级,等等。此外,提供了“加入会话”特征606,其中对特征606的选择使主要用户能够请求观看或加入视频游戏会话的玩游戏过程。因此,如所示出的实现方式所示,当前的主要用户可以请求仅作为旁观者或也作为参与者来加入用户“Johnny123”的会话。应当理解,在任一种情况下,如上所述,玩游戏过程视频的流式传输经由P2P共享发生。并且如果准许当前用户作为参与者加入,则当前用户的输入例如经由用户装置处的套接字被传输到与用户“Johnny123”相关联的用户装置。

图6B示出了根据本公开的实现方式的用于提供对观看和/或参与云游戏系统中的用户会话的玩游戏过程的访问的界面610。在所示实现方式中,界面610被配置为提供对查看实时的进行中的游戏会话的访问。例如,各种图标612、614和616指示当前正在实时进行并且可用于观看的视频游戏会话。在一些实现方式中,通过选择图标,来向系统的用户提供游戏会话的实时视频馈送。应当理解,如上所述,可以使用P2P共享来提供实时视频馈送。

此外,在一些实现方式中,访问给定游戏会话的实时视频馈送的用户还可以请求作为参与者加入玩游戏过程。在请求被批准(这在某些情况下可能是自动的,也可能需要会话所有者的明确批准)之后,如前所述,来自访问实时视频馈送的用户的输入会被提供回会话所有者的装置,并且被应用于游戏机执行的视频游戏会话。

在一些实现方式中,会话所有者可以配置设置以确定是否准许另一用户作为参与者(而不是仅作为旁观者)加入他们的会话玩游戏过程。在一些实现方式中,作为参与者加入的选项可被配置为仅提供给会话所有者在社交网络(诸如与云游戏系统相关联的社交网络)上的好友。在一些实现方式中,可以应用与游戏相关的设置,诸如仅允许具有最低经验等级的玩家作为参与者加入。

在一些实现方式中,在众包游戏期间提供群组聊天会话,使得用户彼此可以通过语音/文本聊天进行交流。

图7示出了信息服务提供商架构的实施方案。信息服务提供商(ISP)770向地理上分散且经由网络786连接的用户782提供大量信息服务。ISP可以只提供一种类型的服务,诸如股票价格更新,也可以提供各种类型的服务,诸如广播媒体、新闻、体育、游戏等。此外,每个ISP所提供的服务都是动态的,即可以在任何时间点添加或移除服务。因此,向特定个人提供特定类型的服务的ISP可能会随时间变化。例如,当用户在她的家乡时,可以由靠近该用户的ISP为用户提供服务,并且当用户前往不同城市时,可以由不同的ISP为用户提供服务。当地ISP将把所需的信息和数据传输到新的ISP,使得用户信息“跟随”用户到新的城市,从而使数据更接近用户并且更易于访问。在另一个实现方式中,可以在为用户管理信息的主ISP和在主ISP的控制下直接与用户对接的服务器ISP之间建立主-从关系。在另一个实现方式中,当客户端在世界范围内移动时,数据从一个ISP传输到另一个ISP,以使处在更好地为用户提供服务的位置的ISP成为提供这些服务的ISP。

ISP 770包括应用服务提供商(ASP)772,该ASP通过网络向客户提供基于计算机的服务。使用ASP模型提供的软件有时也称为按需软件或软件即服务(SaaS)。提供对特定应用程序(诸如客户关系管理)的访问的简单形式是使用标准协议(诸如HTTP)。该应用程序软件驻留在供应商的系统上,并且由用户使用HTML通过web浏览器进行访问、通过由供应商提供的专用客户端软件进行访问或通过其他远程接口(诸如瘦客户端)进行访问。

在广泛的地理区域内提供的服务通常使用云计算。云计算是一种计算方式,其中动态可扩展和通常虚拟化的资源通过互联网作为服务提供。用户不需要成为支持他们的“云”中技术基础设施方面的专家。云计算可以分为不同的服务,诸如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务通常提供在线的从web浏览器访问的通用业务应用,而软件和数据则存储在服务器上。基于计算机网络图中互联网的描绘方式,术语云被用作互联网的隐喻(例如,使用服务器、存储装置和逻辑),并且是对它所隐藏的复杂基础设施的抽象概念。

此外,ISP 770包括游戏处理服务器(GPS)774,所述GPS被游戏客户端用来玩单玩家和多玩家视频游戏。互联网上进行的大多数视频游戏都是通过与游戏服务器的连接来运行的。通常,游戏使用专用的服务器应用,该应用从玩家收集数据并将其分发给其他玩家。这比对等布置更有效且高效,但它需要单独的服务器来托管服务器应用。在另一个实施方案中,GPS在玩家之间建立通信,并且玩家的相应的玩游戏装置在不依赖于集中式GPS的情况下交换信息。

专用GPS是独立于客户端运行的服务器。这样的服务器通常在位于数据中心内的专用硬件上运行,从而提供更多的带宽和专用的处理能力。对于大多数基于PC的多玩家游戏,专用服务器是托管游戏服务器的优选方法。大型多玩家在线游戏在专用服务器上运行,所述服务器通常由拥有游戏名称的软件公司托管,从而允许它们控制和更新内容。

广播处理服务器(BPS)776将音频或视频信号分发给观众。向很小范围的观众广播有时称为窄播。广播分发的最后一站是信号如何到达听众或观察者,并且它可能像广播电台或电视台一样从空中传播到天线和接收器,或可能通过有线电视或有线广播(或“无线电缆”)通过工作站或直接从网络传播。互联网也可以将广播或电视带给接收者,特别是通过多播可以共享信号和带宽。历史上,广播已经由地理区域界定,诸如国家广播或区域广播。但是,随着快速互联网的普及,广播不受地理条件的限制,因为内容几乎可以到达世界任何国家。

存储服务提供商(SSP)778提供计算机存储空间和相关的管理服务。SSP还提供定期备份和存档。通过提供存储即服务,用户可以根据需要订购更多存储。另一个主要优点是SSP包括备份服务,并且如果计算机的硬盘驱动器发生故障,用户将不会丢失其所有数据。此外,多个SSP可以具有用户数据的全部或部分副本,从而允许用户以有效的方式访问数据,而与用户所在的位置或用于访问数据的装置无关。例如,用户可以在家用计算机以及移动电话中(当用户移动时)访问个人文件。

通信提供商780向用户提供连接。一种通信提供商是互联网服务提供商(ISP),其提供对互联网的访问。ISP使用适合于传递互联网协议数据报的数据传输技术来连接其客户,诸如拨号、DSL、电缆调制解调器、光纤、无线或专用高速互连。通信提供商还可以提供消息传递服务,诸如电子邮件、即时消息传递和SMS短信。另一种类型的通信提供商是网络服务提供商(NSP),其通过提供对互联网的直接主干访问来出售带宽或网络接入。网络服务提供商可以包括电信公司、数据运营商、无线通信提供商、互联网服务提供商、提供高速互联网接入的有线电视运营商等。

数据交换788互连ISP 770内部的几个模块,并通过网络786将这些模块连接到用户782。数据交换788可以覆盖ISP 770的所有模块都非常靠近的小区域,或者当不同的模块在地理上分散时可以覆盖大的地理区域。例如,数据交换788可以包括数据中心的机柜内的快速千兆以太网(或更快的千兆以太网),或洲际虚拟区域网络(VLAN)。

用户782使用客户端装置784访问远程服务,该客户端装置至少包括CPU、存储器、显示器和I/O。客户端装置可以是PC、移动电话、上网本、平板计算机、游戏系统、PDA等。在一个实施方案中,ISP 770辨识客户端使用的装置类型并且调整所采用的通信方法。在其他情况下,客户端装置使用标准通信方法(诸如html)来访问ISP770。

本公开的实施方案可以用包括手持式装置、微处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等的各种计算机系统配置来实践。本公开也可以在分布式计算环境中实践,其中由通过有线或无线网络链接的远程处理装置执行任务。

考虑到上述实施方案,应理解,本公开可以采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要物理地操纵物理量的那些操作。形成本公开的一部分的本文描述的任何操作都是有用的机器操作。本公开还涉及用于执行这些操作的装置或设备。可以针对所需目的专门构造所述设备,或者所述设备可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体地,各种通用机器可与根据本文的教导编写的计算机程序一起使用,或者构造更专门的设备来执行所需操作可能更方便。

本公开还可以体现为计算机可读介质上的计算机可读代码。可替代地,可以使用上述数据交换互连从服务器下载计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,该数据随后可以由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附接存储装置(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其他光学和非光学数据存储装置。所述计算机可读介质可以包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得以分布式方式存储和执行计算机可读代码。

虽然以特定的顺序描述了方法操作,但是应当理解,可以在操作之间执行其他内务操作,或者可以调整操作,使得它们在稍微不同的时间发生,或者可以将操作分布在系统中,只要以期望的方式执行叠加操作的处理,所述系统便允许以与处理相关联的各种间隔发生处理操作。

虽然出于清楚理解的目的相当详细地描述了前述公开内容,但显而易见的是,可以在所附权利要求的范围内实践某些改变和修改。因此,本实施方案将被认为是说明性的而非限制性的,并且本公开不限于本文给出的细节,而是可在所描述的实施方案的范围和等效范围内进行修改。

图8示意性地示出了根据本公开的一个实施方案的可以与用于实现虚拟形象控制系统的控制器兼容的游戏控制台(诸如

I/O桥接器834还连接到六个通用串行总线(USB)2.0端口824;千兆以太网端口822;IEEE 802.11b/g无线网络(Wi-Fi)端口820;以及能够支持最多七个蓝牙连接的

在操作中,I/O桥接器834处理所有无线、USB和以太网数据,包括来自一个或多个游戏控制器802的数据。例如,当用户正在玩游戏时,I/O桥接器834经由蓝牙链接从游戏控制器802接收数据并且将其引导到Cell处理器828,该Cell处理器相应地更新游戏的当前状态。

除了游戏控制器802之外,无线、USB和以太网端口还为其他外围装置提供连接,诸如:遥控器804;键盘806;鼠标808;便携式娱乐装置810,诸如Sony Playstation

提供这些接口意味着Playstation 3装置还可能与其他外围装置兼容,诸如数字录像机(DVR)、机顶盒、数码相机、便携式媒体播放器、IP语音电话、移动电话、打印机和扫描仪。

此外,旧式存储卡读取器816可以通过USB端口824连接到系统单元,从而能够读取由

在本实施方案中,游戏控制器802可操作以通过蓝牙链接与系统单元800进行无线通信。然而,游戏控制器802可以替代地连接到USB端口,从而也提供用于为游戏控制器802的电池充电的电源。除了一个或多个模拟操纵杆和常规控制按钮外,游戏控制器还对六个自由度的运动敏感,该运动对应于在每个轴的平移和旋转。因此,除了常规按钮或操纵杆命令之外或代替常规按钮或操纵杆命令,游戏控制器的用户的手势和移动可以被转换为游戏的输入。任选地,其他无线启用的外围装置(诸如Playstation

遥控器804还可操作以经由蓝牙链路与系统单元800进行无线通信。遥控器804包括适用于Blu Ray

除了常规的预录制和可录制的CD以及所谓的超级音频CD之外,Blu Ray

系统单元800可操作以通过音频和视频连接器将由Playstation 3装置经由现实合成器图形单元830生成或解码的音频和视频供应给显示和声音输出装置842,诸如具有显示器844和一个或多个扬声器846的监视器或电视机。音频连接器850可包括常规的模拟和数字输出,而视频连接器852可不同地包括分量视频、S视频、复合视频和一个或多个高清多媒体接口(HDMI)输出。因此,视频输出可呈诸如PAL或NTSC的格式,或呈720p、1080i或1080p的高清晰度。

音频处理(生成、解码等)由Cell处理器828执行。Playstation 3装置的操作系统支持

在本实施方案中,摄像机812包括单电荷耦合器件(CCD)、LED指示器以及基于硬件的实时数据压缩和编码设备,使得压缩视频数据可以适当的格式传输,诸如基于图像内的MPEG(运动图像专家组)标准,以供系统单元800进行解码。相机LED指示器被布置为响应于来自系统单元800的适当控制数据而点亮,例如以表示不利的照明条件。摄像机812的实施方案可以通过USB、蓝牙或Wi-Fi通信端口以各种方式连接到系统单元800。摄像机的实施方案可以包括一个或多个相关联的传声器,并且还能够传输音频数据。在摄像机的实施方案中,CCD可以具有适合于高清视频捕获的分辨率。在使用中,由摄像机捕获的图像可以例如被并入游戏中或被解释为游戏控制输入。

通常,为了通过系统单元800的通信端口之一与诸如摄像机或遥控器之类的外围装置进行成功的数据通信,应提供诸如装置驱动程序之类的适当软件。装置驱动程序技术是众所周知的,并且在这里将不进行详细描述,除了说本领域技术人员将意识到,在所描述的本实施方案中可能需要装置驱动程序或类似的软件接口。

图9是根据本公开的实现方式的游戏系统900的框图。游戏系统900被配置为经由网络915向一个或多个客户端910提供视频流。游戏系统900通常包括视频服务器系统920和任选的游戏服务器925。视频服务器系统920被配置为以最低的服务质量向一个或多个客户端910提供视频流。例如,视频服务器系统920可接收改变视频游戏的状态或视频游戏内的视角的游戏命令,并且以最小的滞后时间为客户端910提供反映这种状态变化的更新后的视频流。视频服务器系统920可以被配置为以各种各样的替代视频格式(包括尚未限定的格式)提供视频流。此外,视频流可以包括被配置为以各种各样的帧速率呈现给用户的视频帧。典型的帧速率是每秒30帧、每秒60帧和每秒920帧。但在本公开的替代实施方案中包括更高或更低的帧速率。

客户端910(本文中单独称为910A、910B等)可以包括头戴式显示器、终端、个人计算机、游戏控制台、平板计算机、电话、机顶盒、信息亭、无线装置、数字键盘、独立装置、手持式玩游戏装置和/或类似物。通常,客户端910被配置为接收经编码的视频流、对视频流进行解码,并将所得视频呈现给用户,例如游戏玩家。接收经编码的视频流和/或对视频流进行解码的过程通常包括将各个视频帧存储在客户端的接收缓冲器中。视频流可以在与客户端910成一体的显示器上或在诸如监视器或电视机之类的单独装置上呈现给用户。客户端910任选地被配置为支持一个以上游戏玩家。例如,游戏控制台可以被配置为支持两个、三个、四个或更多个同时玩家。这些玩家中的每一者可以接收单独的视频流,或者单个视频流可以包括专门为每个玩家生成的帧区域,例如基于每个玩家的视角生成的帧区域。客户端910任选地在地理上是分散的。游戏系统900中所包括的客户端的数量可以在从一或两个至数千、成千上万或更大的范围内大幅变化。如本文中所使用的,术语“游戏玩家”用于指代玩游戏的人,并且术语“玩游戏装置”用于指代用于玩游戏的装置。在一些实施方案中,玩游戏装置可以指多个计算装置,所述多个计算装置协作以向用户传递游戏体验。例如,游戏控制台和HMD可以与视频服务器系统920协作以传递通过HMD观看的游戏。在一个实施方案中,游戏控制台从视频服务器系统920接收视频流,并且游戏控制台将视频流或对视频流的更新转发到HMD以进行渲染。

客户端910被配置为经由网络915接收视频流。网络915可以是任何类型的通信网络,包括电话网络、互联网、无线网络、电力线网络、局域网、广域网、专用网络和/或类似物。在典型的实施方案中,所述视频流经由标准协议(诸如TCP/IP或UDP/IP)来传送。可替代地,视频流经由专有标准进行传送。

客户端910的典型示例是包括处理器、非易失性存储器、显示器、解码逻辑、网络通信能力和输入装置的个人计算机。解码逻辑可以包括存储在计算机可读介质上的硬件、固件和/或软件。用于对视频流进行解码(和编码)的系统在所属领域中是公知的,并且根据所使用的特定编码方案而变化。

客户端910可以但不必须进一步包括被配置用于修改接收到的视频的系统。例如,客户端可以被配置为执行进一步的渲染,将一个视频图像叠加在另一个视频图像上,裁剪视频图像等。例如,客户端910可以被配置为接收各种类型的视频帧,诸如I帧、P帧和B帧,并且将这些帧处理为图像以显示给用户。在一些实施方案中,客户端910的成员被配置为对视频流执行其他渲染、着色、到3D的转换或类似的操作。客户端910的成员任选地被配置为接收一个以上音频或视频流。例如,客户端910的输入装置可以包括单手游戏控制器、双手游戏控制器、手势辨识系统、凝视辨识系统、语音辨识系统、键盘、操纵杆、指向装置、力反馈装置、运动和/或位置感测装置、鼠标、触摸屏、神经接口、相机、有待开发的输入装置和/或类似物。

由客户端910接收到的视频流(以及任选的音频流)由视频服务器系统920生成并提供。如本文其他地方进一步描述的,该视频流包括视频帧(而音频流包括音频帧)。视频帧被配置(例如,它们包括适当数据结构中的像素信息)成对显示给用户的图像作出有意义的贡献。如本文所使用,术语“视频帧”用于指主要包括被配置成对示出给用户的图像作出贡献(例如,实现所述图像)的信息的帧。本文中关于“视频帧”的大多数教导也可以应用于“音频帧”。

客户端910通常被配置为从用户接收输入。这些输入可以包括被配置为改变视频游戏的状态或以其他方式影响玩游戏过程的游戏命令。游戏命令可以使用输入装置来接收和/或可以通过在客户端910上执行的计算指令而自动生成。接收到的游戏命令经由网络915从客户端910传送到视频服务器系统920和/或游戏服务器925。例如,在一些实施方案中,游戏命令经由视频服务器系统920被传送到游戏服务器925。在一些实施方案中,游戏命令的单独副本从客户端910传送到游戏服务器925和视频服务器系统920。游戏命令的传送任选地取决于命令的标识。任选地,通过用于向客户端910A提供音频或视频流的不同路由或通信信道,从客户端910A传送游戏命令。

游戏服务器925任选地由与视频服务器系统920不同的实体来操作。例如,游戏服务器925可以由多玩家游戏的发行者来操作。在该示例中,视频服务器系统920任选地被游戏服务器925视为客户端,并且任选地被配置为从游戏服务器925的视角看来是执行现有技术游戏引擎的现有技术客户端。视频服务器系统920与游戏服务器925之间的通信任选地经由网络915进行。因此,游戏服务器925可以是将游戏状态信息发送到多个客户端的现有技术多玩家游戏服务器,所述多个客户端中的一个客户端是游戏服务器系统920。视频服务器系统920可以被配置为同时与游戏服务器925的多个实例进行通信。例如,视频服务器系统920可以被配置为向不同的用户提供多个不同的视频游戏。这些不同的视频游戏中的每一者都可以由不同的游戏服务器925支持和/或由不同实体发布。在一些实施方案中,视频服务器系统920的若干在地理上分布的实例被配置为向多个不同的用户提供游戏视频。视频服务器系统920的这些实例中的每一者都可以与游戏服务器925的相同实例进行通信。视频服务器系统920与一个或多个游戏服务器925之间的通信任选地经由专用通信信道而发生。例如,视频服务器系统920可以经由高带宽信道连接到游戏服务器925,所述高带宽信道专用于这两个系统之间的通信。

视频服务器系统920至少包括视频源930、I/O装置945、处理器950和非暂时性存储装置955。视频服务器统系920可以包括一个计算装置或分布在多个计算装置之间。这些计算装置任选地经由诸如局域网之类的通信系统连接。

视频源930被配置为提供视频流,例如流视频或形成动态图片的一系列视频帧。在一些实施方案中,视频源930包括视频游戏引擎和渲染逻辑。视频游戏引擎被配置为从玩家接收游戏命令,并基于接收到的命令来维持视频游戏状态的副本。该游戏状态包括对象在游戏环境中的位置,并且通常包括视角。游戏状态还可包括对象的属性、图像、颜色和/或纹理。通常基于游戏规则以及诸如移动、转身、攻击、设置焦点、交互、使用等游戏命令来为维持游戏状态。游戏引擎的一部分任选地设置在游戏服务器925中。游戏服务器925可以基于使用在地理上分散的客户端从多个玩家接收的游戏命令来维持游戏的状态的副本。在这些情况下,游戏状态由游戏服务器925提供给视频源930,其中存储游戏状态的副本并且执行渲染。游戏服务器925可以经由网络915直接从客户端910接收游戏命令,和/或可以经由视频服务器系统920接收游戏命令。

视频源930通常包括渲染逻辑,例如存储在诸如存储装置955的计算机可读介质上的硬件、固件和/或软件。该渲染逻辑被配置为基于游戏状态创建视频流的视频帧。全部或部分渲染逻辑任选地设置在图形处理单元(GPU)中。渲染逻辑通常包括被配置为基于游戏状态和视点来确定对象之间的三维空间关系和/或应用适当的纹理等的处理阶段。渲染逻辑产生原始视频,然后通常在所述原始视频传送给客户端910之前对其进行编码。例如,原始视频可以根据以下各项进行编码:Adobe

在替代实施方案中,视频源930包括视频记录装置,诸如相机。该相机可以用于生成延迟的视频或实时视频,所述视频可以被包括在计算机游戏的视频流中。所得视频流任选地包括渲染的图像和使用静态相机或摄像机记录的图像两者。视频源930还可以包括存储装置,所述存储装置被配置为存储要包括在视频流中的先前记录的视频。视频源930还可以包括被配置为检测对象(例如,人)的运动或位置的运动或定位感测装置,以及被配置为基于检测到的运动和/或位置来确定游戏状态或产生视频的逻辑。

视频源930任选地被配置为提供被配置为放置在其他视频上的叠加。例如,这些叠加可以包括命令接口、登录说明、给游戏玩家的消息、其他游戏玩家的图像、其他游戏玩家的视频馈送(例如,网络摄像头视频)。在包括触摸屏接口或凝视检测接口的客户端910A的实施方案中,叠加可以包括虚拟键盘、操纵杆、触摸板和/或类似物。在叠加的一个示例中,玩家的语音被叠加在音频流上。视频源930任选地还包括一个或多个音频源。

在其中视频服务器系统920被配置为基于来自一个以上玩家的输入来维持游戏状态的实施方案中,每个玩家都可以具有包括观看的位置和方向的不同视角。视频源930任选地被配置为基于每个玩家的视角为每个玩家提供单独的视频流。此外,视频源930可以被配置为向客户端910中的每一者提供不同的帧大小、帧数据大小和/或编码。视频源930任选地被配置为提供3D视频。

I/O装置945被配置为使视频服务器系统920发送和/或接收信息,诸如视频、命令、信息请求、游戏状态、凝视信息、装置运动、装置位置、用户运动、客户端身份、玩家身份、游戏命令、安全信息、音频和/或类似物。I/O装置945通常包括诸如网卡或调制解调器等通信硬件。I/O装置945被配置为与游戏服务器925、网络915和/或客户端910通信。

处理器950被配置为执行被包括在本文讨论的视频服务器系统920的各个部件内的逻辑,例如软件。例如,处理器950可以用软件指令编程,以便执行视频源930、游戏服务器925和/或客户端限定器960的功能。视频服务器系统920任选地包括处理器950的多于一个实例。处理器950也可以用软件指令编程,以便执行由视频服务器系统920接收的命令,或协调本文讨论的游戏系统900的各个元件的操作。处理器950可以包括一个或多个硬件装置。处理器950是电子处理器。

存储装置955包括非暂时性模拟和/或数字存储装置。例如,存储装置955可以包括被配置为存储视频帧的模拟存储装置。存储装置955可以包括计算机可读数字存储装置,例如,硬盘驱动器、光盘驱动器或固态存储装置。存储装置915被配置为(例如,通过适当的数据结构或文件系统)存储视频帧、人工帧、包括视频帧和人工帧两者的视频流、音频帧、音频流等。存储装置955任选地分布在多个装置之间。在一些实施方案中,存储装置955被配置为存储本文其他地方讨论的视频源930的软件部件。这些部件可以以随时准备供应的格式存储。

视频服务器系统920任选地还包括客户端限定器960。客户端限定器960被配置为远程地确定诸如客户端910A或910B之类的客户端的能力。这些能力可以包括客户端910A本身的能力以及客户端910A与视频服务器系统920之间的一个或多个通信信道的能力。例如,客户端限定器960可以被配置为通过网络915测试通信信道。

客户端限定器960可以手动或自动确定(例如,发现)客户端910A的能力。手动确定包括与客户端910A的用户通信并要求用户提供能力。例如,在一些实施方案中,客户端限定器960被配置为在客户端910A的浏览器内显示图像、文本和/或类似物。在一个实施方案中,客户端910A是包括浏览器的HMD。在另一个实施方案中,客户端910A是具有浏览器的游戏控制台,其可以显示在所述HMD上。显示的对象请求用户输入诸如客户端910A的操作系统、处理器、视频解码器类型、网络连接类型、显示分辨率等信息。用户输入的信息被传送回客户端限定器960。

自动确定可以例如通过在客户端910A上执行代理和/或通过将测试视频发送到客户端910A而发生。所述代理可以包括嵌入在网页中或作为后加件安装的计算指令,诸如java脚本。客户端限定器960任选地提供代理。在各种实施方案中,所述代理可以找出客户端910A的处理能力、客户端910A的解码和显示能力、客户端910A和视频服务器系统920之间的通信信道的滞后时间可靠性和带宽、客户端910A的显示类型、客户端910A上存在的防火墙、客户端910A的硬件、在客户端910A上执行的软件、客户端910A内的注册表项和/或类似物。

客户端限定器960包括存储在计算机可读介质上的硬件、固件和/或软件。客户端限定器960任选地设置在与视频服务器系统920的一个或多个其他元件分离的计算装置上。例如,在一些实施方案中,客户端限定器960被配置为确定客户端910和视频服务器系统920的一个以上实例之间的通信信道的特性。在这些实施方案中,由客户端限定器发现的信息可以用于确定视频服务器系统920的哪个实例最适合向客户端910中的一个传递流视频。

本公开的实施方案可以用包括手持式装置、微处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等的各种计算机系统配置来实践。本公开也可以在分布式计算环境中实践,其中由通过有线或无线网络链接的远程处理装置执行任务。

考虑到上述实施方案,应理解,本公开可以采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要物理地操纵物理量的那些操作。形成本公开的一部分的本文描述的任何操作都是有用的机器操作。本公开还涉及用于执行这些操作的装置或设备。可以针对所需目的专门构造所述设备,或者所述设备可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体地,各种通用机器可与根据本文的教导编写的计算机程序一起使用,或者构造更专门的设备来执行所需操作可能更方便。

本公开还可以体现为计算机可读介质上的计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,该数据随后可以由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附接存储装置(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其他光学和非光学数据存储装置。所述计算机可读介质可以包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得以分布式方式存储和执行计算机可读代码。

虽然以特定的顺序描述了方法操作,但是应当理解,可以在操作之间执行其他内务操作,或者可以调整操作,使得它们在稍微不同的时间发生,或者可以将操作分布在系统中,只要以期望的方式执行叠加操作的处理,所述系统便允许以与处理相关联的各种间隔发生处理操作。

虽然出于清楚理解的目的相当详细地描述了前述公开内容,但显而易见的是,可以在所附权利要求的范围内实践某些改变和修改。因此,本实施方案被认为是说明性的而非限制性的,并且本公开不限于本文给出的细节,而是可在本公开的范围和等效物内进行修改。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号