CN115228077A - 云游戏设备交接 - Google Patents

云游戏设备交接 Download PDF

Info

Publication number
CN115228077A
CN115228077A CN202210446813.8A CN202210446813A CN115228077A CN 115228077 A CN115228077 A CN 115228077A CN 202210446813 A CN202210446813 A CN 202210446813A CN 115228077 A CN115228077 A CN 115228077A
Authority
CN
China
Prior art keywords
client device
game
server
secondary client
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210446813.8A
Other languages
English (en)
Inventor
R.R.科伦布兰德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Publication of CN115228077A publication Critical patent/CN115228077A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/493Resuming a game, e.g. after pausing, malfunction or power failure
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1086In-session procedures session scope modification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

标识用于游戏进行的设备交接的辅助客户端设备的选项的方法和系统包括通过在服务器上执行游戏以用于将视频帧流式传输到主客户端设备来对所述主客户端设备建立所述游戏的游戏进行会话。接收请求以生成被标识为所述主客户端设备本地的一个或多个辅助客户端设备的配置文件。所述配置文件被配置来标识所述辅助客户端设备的设备属性。在游戏进行期间向所述主客户端设备提供交接选项,所述交接选项基于所述配置文件标识所述辅助客户端设备中的一个或多个。从所述主客户端设备接收的对由所述交接选项标识的辅助客户端设备的选择致使暂停视频帧到所述主客户端设备的流式传输、保存所述游戏的游戏状态并且提供在所述辅助客户端设备上恢复所述游戏的进行的选项。从所述辅助客户端设备接收的恢复请求致使所述游戏的游戏状态被访问并且游戏进行被恢复,使得继续将视频帧流式传输到所述辅助客户端设备。

Description

云游戏设备交接
本分案申请是申请日为2017年4月20日、申请号为201780033048.4、发明名称为“云游戏设备交接”的分案申请。
技术领域
本公开涉及用于提供用户交互的游戏的系统和方法,并且更具体地,涉及在云游戏期间为设备交接提供用于选择备用客户端设备的选项。
背景技术
相关技术描述
快速发展的技术之一是云游戏领域,其中用户能够通过网络(诸如因特网)访问云游戏站点上可用的多个游戏,并且开始玩游戏。用户在云游戏站点上访问其账户并从用户账户可用的游戏列表中选择用于游戏进行的游戏。当用户使用客户端设备从云游戏站点选择用于游戏进行的游戏时,云游戏站点中的服务器启动游戏进行会话并开始将游戏的视频帧流式传输到用户访问云游戏站点的客户端设备。在会话期间,如果用户希望切换到第二客户端设备以进行游戏,那么云游戏站点上的服务器必须从头开始再启动游戏,这样它可开始将视频帧流式传输到第二客户端设备。在服务器可以开始将游戏的视频帧流式传输到第二客户端设备之前,服务器必须进行带宽测试和其他服务质量测试。游戏的再启动和第二客户端设备的预先测试导致用户不必要的等待,从而使用户感到沮丧。
正是在这种情况下,本发明的实施方案应运而生。
发明内容
本发明的实施方案公开了用于标识备用客户端设备的选项以用于交接由云游戏站点托管的游戏的游戏进行的方法、系统和计算机可读介质。各种实施方案使得当前用于进行由云游戏站点上的云游戏系统托管的游戏的主客户端设备能够参与对被标识为主客户端设备本地的辅助客户端设备的后台剖析。进行对辅助客户端设备的剖析来确定辅助客户端设备中的哪些有资格继续游戏的游戏进行会话,并且对辅助客户端设备的剖析是在从主客户端设备接收到设备交接请求之前执行的。所述配置文件标识辅助客户端设备中的每一个的设备属性。在一些实施方案中,云游戏系统可使用用于向不同的辅助客户端设备预配置服务的配置文件,来使这些辅助客户端设备做好进行游戏的准备。由云游戏系统托管的每个游戏可具有其自己的服务和属性要求。
剖析允许云游戏系统标识辅助客户端设备中的每一个中可用的服务、设备属性,并且确定不可用的服务、设备属性或未达到供相应辅助客户端设备使用来与在云游戏站点上执行的游戏进行交互所要求的水平的服务、设备属性。在一些实施方案中,云游戏系统可使用每个辅助客户端设备的配置文件来预配置适当的资源,以便增强辅助客户端设备中的特定一些的服务或设备属性。这样的预配置可由云游戏系统提前执行或者在由主客户端设备发起的游戏进行会话期间在后台执行,预期可在游戏进行会话期间由主客户端设备选择辅助客户端设备中的特定一个用于游戏的游戏进行的设备交接。
当在云游戏系统处从主客户端设备接收到对设备交接的请求时,剖析允许云游戏系统执行从主客户端设备到特定辅助客户端设备的更快、无摩擦的设备交接,并且所述辅助客户端设备将具有用于继续游戏进行会话所必要的资源(服务、设备属性)。换句话讲,剖析允许云游戏系统限定辅助客户端设备,使得当接收到交接请求时,所述系统能够切换用户与云游戏站点交互以用于进行游戏所用的客户端设备。
成功的设备改变将包括正在执行游戏的云游戏系统的服务器暂停游戏进行并停止游戏的视频帧到主客户端设备的流式传输,保存游戏的游戏状态,并且提供用于对由交接选项标识的辅助客户端设备恢复游戏的游戏进行的选项。当从辅助客户端设备接收到恢复请求时,云游戏系统上的服务器检索游戏状态,从暂停游戏的地方恢复游戏进行,并且继续将用于游戏的视频帧流式传输到辅助客户端设备。
提前发现和剖析辅助客户端设备节省在设备交接期间的相当长的等待时间。在交接选项中标识的辅助客户端设备有资格提供与使用主客户端设备时所体验的相当的游戏体验。此外,所述剖析和预配置确保以最小等待时间将视频帧提供给辅助客户端设备处的用户。在设备交接期间暂停游戏和/或保存游戏状态允许更快地恢复游戏的游戏进行。
在一个实施方案中,提供一种方法。所述方法由云游戏系统的服务器执行,并且用来标识辅助客户端设备的选项,其可用于将游戏进行的设备交接到所述辅助客户端设备中的一个。所述方法包括响应于从主客户端设备接收的进行游戏的请求,由所述服务器对所述主客户端设备建立游戏的游戏进行会话。所述云游戏系统的所述服务器被配置来执行所述游戏并将视频帧流式传输到所述主客户端设备。由所述服务器接收请求以生成被标识为所述主客户端设备本地的一个或多个辅助客户端设备的配置文件。所述配置文件被配置来标识所述辅助客户端设备的设备属性。在游戏进行期间,所述服务器向所述主客户端设备提供交接选项。所述交接选项被配置来基于所述辅助客户端设备的配置文件标识用于设备交接的所述辅助客户端设备中的一个或多个。对由所述交接选项标识的特定辅助客户端设备的选择是从所述主客户端设备接收的。所述选择被配置来暂停视频帧到所述主客户端设备的所述流式传输并保存所述游戏的游戏状态。所述暂停被配置来提供用于在所述特定辅助客户端设备上恢复所述游戏的进行的选项。从所述特定辅助客户端设备接收恢复请求以所述辅助客户端设备上继续所述游戏的所述进行。所述恢复请求被配置来致使所述服务器访问所述游戏的所述游戏状态,并且继续将视频帧流式传输到所述特定辅助客户端设备。
在一些实施方案中,所述生成配置文件的请求是在所述会话期间接收的。
在一些实施方案中,将所述特定辅助客户端设备指定为所述主客户端设备,用于所述会话的剩余部分。
在一些实施方案中,所述生成配置文件的请求是响应于触发事件的发生而触发的。
在一些实施方案中,所述对配置文件的请求是从被标识为所述主客户端设备本地的所述辅助客户端设备中的每一个接收的。
在一些实施方案中,用于限定所述辅助客户端设备的所述设备属性是根据所述游戏的要求进行排名的。在所述交接选项中提供的所述辅助客户端设备是根据所述设备属性的排名来组织的。
在一些实施方案中,所述辅助客户端设备是使用在所述主客户端设备和所述辅助客户端设备内实现的一个或多个服务发现协议来标识的。
在一些实施方案中,所述生成配置文件的请求是从所述主客户端设备接收的。所述请求包括要生成所述配置文件所针对的所述辅助客户端设备的设备标识符。
在另一个实施方案中,一种由云游戏系统的服务器执行的方法。执行所述方法以标识可用于将游戏进行的设备交接到辅助客户端设备中的一个的所述辅助客户端设备的选项。所述方法包括响应于来自主客户端设备的进行游戏的请求,对所述主客户端设备建立游戏的游戏进行会话。所述云游戏系统的所述服务器被配置来执行所述游戏并将视频帧流式传输到所述主客户端设备。检测被标识为所述主客户端设备本地的一个或多个辅助客户端设备。对所述主客户端设备和被标识为所述主客户端设备本地的所述辅助客户端设备中的一个或多个生成配置文件。所述配置文件被配置来标识所述主客户端设备和所述辅助客户端设备中的每一个的设备属性。在所述游戏进行期间,所述服务器向所述主客户端设备提供交接选项。所述交接选项被配置来基于对所述主客户端设备和所述辅助客户端设备生成的所述配置文件标识一个或多个辅助客户端设备,所述一个或多个辅助客户端设备是所述主客户端设备本地的并且具有能够增强用户的游戏体验的设备属性。对由所述交接选项标识的特定辅助客户端设备的选择是由所述服务器从所述主客户端设备接收的。所述选择被配置来暂停视频帧到所述主客户端设备的所述流式传输并保存所述游戏的游戏状态。所述暂停被配置来提供用于在由所述交接选项标识的所述特定辅助客户端设备上恢复所述游戏的进行的恢复选项。由所述服务器从所述特定辅助客户端设备接收恢复请求以在所述辅助客户端设备上继续所述游戏进行会话。所述恢复请求被配置来致使所述服务器检索所述游戏的所述游戏状态,并且继续将视频帧流式传输到所述特定辅助客户端设备。
在一些实施方案中,所述主客户端设备和所述一个或多个辅助客户端设备的所述配置文件是响应于触发事件生成的。
在一些实施方案中,所述主客户端设备和所述一个或多个辅助客户端设备的所述配置文件是响应于来自所述主客户端设备的请求生成的。
在又一实施方案中,公开一种云游戏系统。所述云游戏系统包括被配置来执行多个游戏的应用服务器。所述应用服务器中的游戏执行引擎从主客户端设备接收进行游戏的请求。作为响应,所述游戏执行引擎执行所述游戏的实例并生成所述游戏的视频帧。所述应用服务器被配置来处理所述生成的视频帧,对所述视频帧进行编码并将所述视频帧流式传输到所述主客户端设备。所述应用服务器内的客户端设备剖析模块被配置来接收生成被标识为所述主客户端设备本地的一个或多个辅助客户端设备的配置文件的请求,其中所述一个或多个辅助客户端设备是基于所述主客户端设备的所述配置文件来标识的。所述客户端设备剖析模块进一步被配置来生成所述辅助客户端设备的列表。所述应用服务器内的交接管理器被配置来获得所述辅助客户端设备的列表,限定所述辅助客户端设备以用于进行游戏,并且用交接选项将合格辅助客户端设备的精细列表转发到所述主客户端设备。所述交接管理器进一步被配置来接收对由所述交接选项标识的特定辅助客户端设备的选择,并且作为响应,将信号转发到所述游戏执行引擎以暂停所述视频帧到所述主客户端设备的所述流式传输。在一些实施方案中,响应于所述暂停信号,还保存所述游戏的游戏状态。当所述交接管理器从所述特定辅助客户端设备接收到恢复请求时,作为响应,所述交接管理器发信号通知所述游戏执行引擎恢复游戏进行,并继续将所述视频帧流式传输到所述特定辅助客户端设备。在保存所述游戏的所述游戏状态的实施方案中,响应于所述恢复请求,所述游戏执行引擎可检索所述游戏的所述游戏状态并从所述游戏暂停的点恢复所述游戏的游戏进行,如所述游戏的所述游戏状态所指示。
在一些实施方案中,所述交接管理器被配置来响应于接收对由交接选项标识的所述特定辅助客户端设备的选择,发信号通知暂停管理器暂停所述游戏的所述游戏进行。所述暂停管理器被配置来将信号转发到所述游戏执行引擎以暂停所述游戏的所述游戏进行。
在一些实施方案中,所述交接管理器被配置来响应于对由交接选项标识的所述特定辅助客户端设备的选择,发信号通知所述应用服务器的操作系统暂停将所述游戏的视频帧传输到所述特定主客户端设备。
在一些实施方案中,所述交接管理器被配置来响应于从所述特定辅助客户端设备接收恢复请求,发信号通知恢复管理器恢复所述游戏的所述游戏进行。所述恢复管理器被配置来将信号转发到所述游戏执行引擎,请求所述游戏执行引擎检索所述游戏的游戏状态并恢复将所述游戏的视频帧流式传输到所述特定辅助客户端设备。
在一些实施方案中,所述交接管理器被配置来发信号通知恢复管理器恢复游戏进行。所述恢复管理器接收所述信号,并且进而响应于从所述特定辅助客户端设备接收恢复请求,发信号通知所述应用服务器的所述操作系统恢复将所述游戏的视频帧传输到所述特定辅助客户端设备。
在一些实施方案中,所述交接管理器进一步被配置来将所述特定辅助客户端设备指定为所述主客户端设备。
结合附图来阅读以下详细描述,本发明的其他方面和优点将变得明白易懂,以下详细描述通过举例的方式说明本发明的原理。
附图说明
通过参考以下结合附图的描述,可最好地理解本发明及其另外的优点。
图1示出根据本发明的实施方案的用来标识用于游戏的游戏进行的设备交接的辅助客户端设备的选项的示例性系统的简化框图。
图2示出根据本发明的实施方案的具有各种模块的示例性应用服务器,所述模块用于生成标识一个或多个辅助客户端设备的用于设备交接的交接选项。
图3示出根据本发明的一个实施方案的具有用于发起设备交接的切换模块的主客户端设备。
图4示出根据本发明的实施方案的主客户端设备中的切换模块的用于发现主客户端设备本地的辅助客户端设备的示例性发现代理。
图5示出根据本发明的实施方案的云游戏系统中的服务器(诸如应用服务器)的用于剖析辅助客户端设备的示例性客户端设备剖析器(profiler)。
图6A示出根据本发明的可选实施方案的对主客户端设备本地的辅助客户端设备生成的示例性配置文件。
图6B、图6C-1和图6C-2示出根据本发明的实施方案的主客户端设备处的交接逻辑的示例,所述交接逻辑提供用于选择用于设备交接的辅助客户端设备的输入。
图7示出根据本发明的实施方案的用于标识用于游戏进行的设备交接的辅助客户端设备的选项的方法的示例性操作流程。
图8示出根据本发明的一个实施方案的用于向地理上分散的并通过网络连接的用户传递信息内容和服务的示例性信息服务提供商体系结构。
图9示出根据本发明的各种实施方案的示例性游戏系统的简化框图。
具体实施方式
在以下描述中,阐述了许多具体细节,以便提供对本发明的透彻的了解。然而,本领域技术人员将明白,可在没有这些具体细节的一些或全部的情况下实践本发明。在其他情况下,众所周知的过程步骤未进行详细描述,以免混淆本发明。
根据本发明的各种实施方案,用户可使用主客户端设备通过用户账户访问云游戏系统,以便选择用于游戏进行的游戏。云游戏系统被配置来使用云游戏系统可用的资源来托管用于游戏进行的多个在线游戏。响应于用户访问云游戏系统,云游戏系统使用存储在用户账户数据库中的用户账户信息来认证用户账户,并提供用户账户可用的以用于游戏进行的游戏列表。用户对用于游戏进行的游戏的选择触发云游戏系统标识位于主客户端设备的地理位置附近的数据中心,并向数据中心中的服务器发送请求以执行游戏的实例并建立游戏进行会话。所述服务器提供必要的资源(即,处理和通信资源)来执行游戏、编码游戏的视频帧以及开始将游戏的编码视频帧流式传输到主客户端设备以用于渲染和用户交互。主客户端设备处提供的用户交互用于影响在云游戏系统上执行的游戏的游戏结果。在一些实施方案中,在用主客户端设备发起游戏进行会话之后不久,云游戏系统的服务器可生成主客户端设备的配置文件。对主客户端设备的剖析可作为用于确保主客户端设备的带宽、等待时间和其他资源变量是足够的服务质量(QOS)验证的一部分、作为数据中心选择和限定的一部分发起,这样主客户端设备可接收和处理从数据中心的服务器流式传输的游戏的流式视频帧。应当注意,这里讨论的各种实施方案还可扩展到音频帧的生成、音频帧的编码、用于游戏的编码音频帧到主客户端设备以用于渲染的流式传输。
在游戏的游戏进行期间,主客户端设备可主动寻求和发现主客户端设备本地的辅助客户端设备,并且向辅助客户端设备中的每一个发送信号或者发送带有要由云游戏系统的服务器剖析的请求的信号以选择辅助客户端设备中的一些。所述配置文件可用来限定辅助客户端设备以进行游戏。由主客户端设备生成的请求标识辅助客户端设备必须使用以便进行剖析的服务器。被选择用于剖析的服务器可以是数据中心中的正在执行游戏的服务器,或者可以是同一数据中心内的或云游戏系统内任何其他数据中心中的被配置用于执行这种剖析的任何其他服务器。云游戏系统的用于剖析的服务器包括用于在被请求时生成每个客户端设备的配置文件的配置文件生成逻辑。在一些实施方案中,当主客户端设备发现辅助客户端设备时,对所发现的辅助客户端设备进行剖析。在主客户端设备处设置交接选项,其中交接选项基于所生成的辅助客户端设备的配置文件来标识有资格进行设备交接的辅助客户端设备中的一个或多个。在一些实施方案中,交接选项可被设置成用于交接仅视频帧、仅音频帧或游戏的音频帧和视频帧两者的流式传输。当用户选择特定的辅助客户端设备时,用户选择被转发到服务器,这会产生暂停信号。响应于接收到暂停信号,数据中心中的服务器暂停游戏的游戏进行,并向特定的辅助客户端设备提供恢复选项以恢复游戏进行。
作为处理暂停信号的一部分,在一些实施方案中,在数据中心处执行游戏的服务器可启动事件触发器,所述事件触发器使得服务器在启动事件触发器时保存系统状态。在此类实施方案中,系统保留所有应用(包括游戏应用)和/或系统状态而不直接操纵任何游戏属性或游戏变量。所述系统状态可用来重新创建游戏的游戏状态。在一些实施方案中,可使用应用编程接口(API)来保存系统状态。在可选实施方案中,响应于暂停信号,服务器可在接收到暂停信号时写出游戏的保存数据。所述保存数据记录用户在游戏进行期间所取得的进度,然后可在游戏恢复时用于重新创建游戏的当前游戏状态。在一个实施方案中,有关如何使用用户的游戏中的进度来重新创建游戏的游戏状态的更多信息,可参考于2010年11月1日提交的并且标题为“USER INTERFACE,SYSTEM AND METHOD FOR CONTROLLING AVIDEOSTREAM”的美国申请号为12/917,388,其全部内容通过引用方式并入本文。
在一些实施方案中,用户对特定辅助客户端设备的选择指示用户不再提供来自主客户端设备的用于游戏的游戏进行交互。在一些实施方案中,用户对特定辅助客户端设备的选择可指示用户不再希望在主客户端设备处接收流式游戏内容的至少一部分(即,游戏内容的音频帧或视频帧)。例如,用户可能不希望在主客户端设备处接收游戏内容的音频部分,但仍对在主客户端设备处接收游戏内容的视频部分感兴趣。例如,如果主客户端设备处的音频接收不处于可接受水平可能出现这种情况。在此类实施方案中,可提取游戏内容的音频部分并将其转发到特定的辅助客户端设备,同时可继续将游戏内容的视频部分(例如,其中音频部分是静音的)流式传输到主客户端设备。在此类实施方案中,主客户端设备处提供的交接选项可包括选项,用于选择流式游戏内容的适当部分(例如,视频部分、音频部分等)和特定辅助客户端设备,用于流式传输游戏内容的所选择部分作为设备交接的一部分,使得流式游戏内容的所选择部分(音频帧或视频帧)被重新定向到特定的辅助客户端设备。
在一些实施方案中,响应于接收到暂停信号,数据中心中的服务器可暂停用于游戏的流式视频帧和/或流式音频帧到主客户端设备的传输。其结果是,游戏看来似乎是处于“暂停”状态。在此实施方案中,游戏可继续活动但是无法接收任何用户交互直到设备交接完成为止。
对特定辅助客户端设备处的恢复选项的选择被转发到服务器,从而导致服务器从暂停游戏的点访问游戏的游戏状态(如果有的话)和/或恢复游戏的游戏进行。恢复的游戏进行使得游戏的视频帧和/或音频帧被流式传输到特定的辅助客户端设备。可选地,在暂停视频帧和/或音频帧的传输同时保持游戏活动的情况下,恢复请求将致使服务器恢复将游戏的流式视频帧和/或流式音频帧传输到特定辅助客户端设备。在一些实施方案中,基于从特定辅助客户端设备接收的用户交互来生成视频帧和/或音频帧并将其流式传输。在将游戏内容的一部分流式传输到主客户端设备并且将剩余部分流式传输到辅助客户端设备的实施方案中,基于从特定辅助客户端设备、主客户端设备或从主客户端设备和辅助客户端设备两者接收的用户交互来生成视频帧和/或音频帧并将其流式传输到适当的客户端设备(即,主客户端设备和辅助客户端设备)。
列表中标识的辅助客户端设备具有设备属性,所述设备属性是游戏的游戏进行所要求的,并且在一些实施方案中,在接收到交接选项的时间内对游戏是可用的。这里讨论的各种实施方案在游戏进行会话期间向用户提供切换到用于进行游戏的辅助客户端设备的选项,并且这种切换是以无缝且无摩擦的方式完成的。基于由辅助客户端设备生成的信号,基于接收来自辅助客户端设备的信号的其他设备等,可使用在客户端设备中实施的多个设备发现协议中的任何一个来发现在选项中标识的辅助客户端设备。所发现的客户端设备在后台被剖析并且被赋予游戏的游戏进行的资格,这样可成功地实行设备交接。
辅助客户端设备的配置文件中提供的信息不仅可用来确定游戏的游戏进行所要求的设备属性,还可用来确定在一个或多个辅助客户端设备处不可用的或不处于游戏的游戏进行所要求的水平的设备属性。基于此配置文件信息,云游戏系统在一些实施方案中可对辅助客户端设备中的一个或多个预配置服务和/或设备属性并使其准备好进行游戏,以便当主客户端设备的用户选择交接选项时,对客户端设备的切换以快速且无摩擦的方式完成。在一些实施方案中,可响应于触发事件的发生,响应于主客户端设备的一个或多个设备属性的变化等而发起设备剖析,所述触发事件诸如用户动作、日历事件、来自主客户端设备的信号(例如,低功率信号等)、社交媒体事件。
辅助客户端设备可以是与主客户端设备相同的网络的一部分。一旦已发现辅助客户端设备,主客户端设备就可通过发送信号来提示要剖析所发现的辅助客户端设备中的每一个,以便发起与服务器(诸如云游戏站点中的应用服务器)的连接,并且与服务器交换信息。在其他实施方案中,一旦发现辅助客户端设备,主客户端设备就可通过发送信号来提示云游戏系统的服务器对一个或多个辅助客户端设备进行剖析,以便发起与所发现的辅助客户端设备中的每一个的连接,并且与辅助客户端设备交换信息。可在辅助客户端设备与服务器之间交换的信息包括例如会话信息、服务质量信息、设备能力、正在进行的或可用于进行的游戏、视频编解码器信息、音频编解码器信息(如果可用的话)、扬声器配置、设备可用性、硬件属性、软件属性等。
由于每个游戏可能具有不同的资源要求,所以针对每个游戏发起流式会话所要求的设备属性可能不同。其结果是,配置文件中提供的信息可用来评估所发现的辅助客户端设备中的每一个的设备能力,以确定辅助客户端设备的相应的一个是否具有针对游戏发起流式会话所需的充分的设备属性。例如,作为评估的一部分,可连续地、周期性地或在预定义的时间监视每个辅助客户端设备的网络带宽。来自这种监视的结果可用来更新相应的辅助客户端设备的配置文件,以便维护辅助客户端设备的当前设备属性。另外,主客户端设备和辅助客户端设备中的每一个可具有不同类型的用于提供游戏交互的输入端。例如,客户端设备A可使用游戏手柄,客户端B可使用触摸屏,而客户端C可使用键盘来对游戏提供游戏交互,所述游戏被设置为从此类输入端接收用户交互。其结果是,在一些实施方案中,所发现的辅助客户端设备的配置文件中提供的信息可用来标识每个客户端设备所使用的以便对游戏提供输入的输入端类型,从而在发生设备交接时,对输入方法进行调整。例如,主客户端设备可使用触摸屏输入,并且所选择的辅助客户端设备可使用游戏手柄,两种输入方法对于接收用于游戏的交互都是可接受的。例如,当发生设备交接时,客户端设备从主客户端设备到所选择的辅助客户端设备的切换将致使游戏识别两个客户端设备(即,主客户端设备和所选择的辅助客户端设备)之间的输入方法的差异,并将用于接收用于游戏的游戏交互的输入方法从触摸屏输入切换到游戏手柄输入。在一些实施方案中,游戏可能无法识别所选择的辅助客户端设备所使用的输入方法。在此类实施方案中,云游戏系统或所选择的辅助客户端设备可在辅助客户端设备的显示部分处提供输入仿真(例如,诸如虚拟游戏手柄或虚拟键盘、虚拟数字小键盘、虚拟游戏控件等的屏上虚拟输入方法),并且被选择以用于展示的输入仿真的类型可基于客户端设备的类型。类似地,每个客户端设备具有其自己的资源能力和限制(例如,屏幕/显示分辨率、宽高比、音频能力等),并且这些反映在相应客户端设备的配置文件信息中。设备配置文件中提供的信息可用来限定客户端设备、定义游戏的输入方法、和/或调整流式视频帧。
基于辅助客户端设备的设备配置文件,主客户端设备的用户可决定发起到所发现的辅助客户端设备中的特定一个的设备交接。发起设备交接的决定可基于以下确定:辅助客户端设备具有可向用户提供更好的游戏体验的设备属性,诸如更高的分辨率、更高的帧速率、更短的等待时间等。可选地,发起设备交接的决定可基于以下事实:由于主客户端设备缺乏电源或者一个或多个设备属性不可用等,主客户端设备不再能够支持游戏的游戏进行。
作为设备交接的一部分,提供设备交接选项以及被预先限定以提供可选的、可比较的或更好的游戏体验的辅助客户端设备中的一个或多个的列表,以用于在主客户端设备处的用户选择。在交接选项处的或在特定辅助客户端设备处的从列表中的用户选择触发设备交接。由于服务器已经预先限定了列表中包括的辅助客户端设备,所以用户选择将导致更快的、有效的、无摩擦的且无缝的设备切换,这样服务器可继续将用于游戏的视频帧流式传输到所选择的辅助客户端设备。在一些实施方案中,除了将视频帧和/或音频帧的流式传输从主客户端设备切换到所选择的辅助客户端设备之外,所述切换还可包括对用于向游戏提供输入的一个或多个控制器的切换。通常,用户可使用与主客户端设备相关联的无线控制器(例如,基于蓝牙或基于其他无线技术)来与游戏交互。在此类实施方案中,当触发设备交接时,所述切换还可包括将无线控制器的蓝牙连接从主客户端设备交接到所选择的辅助客户端设备。作为设备交接的一部分,主客户端设备可通知辅助客户端设备用于向游戏提供输入的无线控制器的属性。除了通知辅助客户端设备之外,主客户端设备可使无线控制器断开连接。所选择的辅助客户端设备接收通知,并且可进行使用无线控制器的设备属性来自动发现无线控制器并与无线控制器形成关联,这样所选择的辅助客户端设备可使用新关联的无线控制器提供输入。在可选实施方案中,具有类似设备属性的无线控制器可能已经与所选择的辅助客户端设备相关联。在这种实施方案中,辅助客户端设备可不经历用于发现无线控制器的发现过程或者不经历关联过程来将无线控制器与主客户端设备相关联。相反地,一旦确定无线控制器具有用于向游戏提供输入的必要设备属性,那么已经与所选择的辅助客户端设备相关联的无线控制器可用于向游戏提供输入,并且游戏将接收并映射从无线控制器接收的输入以用于更新游戏的游戏状态。
在一些实施方案中,设备发现可在主客户端设备空闲时由主客户端设备发起,或者可在游戏进行会话期间或周期性地或在运行不同的应用时发起。在后台执行对辅助客户端设备的剖析以获得辅助客户端设备的服务质量和其他状态,这样当且如果用户决定改变用于进行游戏的设备时,设备切换因设备属性、设备设置预先建立以用于快速流切换而可容易地发生。在大致理解本发明的情况下,现在将参考各种附图来描述具体实施方案。
图1示出在本发明的一个实施方案中的用于标识可用于游戏进行的设备交接的辅助客户端设备的选项的系统的简化框图。所述系统包括多个客户端设备100-1至100-n,其通过云游戏系统300的用户账户通信地连接到数据中心310的服务器(320),诸如应用服务器。客户端设备100通过网络200(诸如因特网)访问服务器320。
客户端设备100(即,100-1至100-n中的任何一个)是包括处理器、存储器、连接到网络200的网络连接、与服务器侧应用通信的适当API、以及用于解码由服务器侧应用(诸如游戏应用)提供的内容的一个或多个解码器的任何计算设备。所述处理器能够执行客户端侧应用,所述客户端侧应用可通过借助网络连接连接到网络并使用应用编程接口(API)与服务器侧应用通信或访问服务器侧应用来与服务器侧应用交互。网络连接可以是有线或无线连接。客户端设备100可以是瘦客户端、通用计算机、专用计算机、游戏控制台、个人计算机、膝上型计算机、平板计算设备、移动计算设备、便携式游戏设备、蜂窝电话、智能手机、头戴式显示器、智能可穿戴设备、机顶盒、流媒体接口/设备、智能电视或联网显示器、或可用于访问远程服务器上可用的应用的任何其他计算设备。客户端设备100处可用的网络连接和通信协议使得客户端设备100能够与远程服务器通信以从远程服务器(诸如作为云游戏系统300的一部分的服务器)接收内容,包括多媒体内容的流式视频帧。在视频帧被流式传输到客户端设备之前已使用编码器在远程服务器处对表示由远程服务器流式传输的游戏进行内容的视频帧进行了压缩。客户端设备100可包括解码器,所述解码器用于解压缩流式视频帧并使用客户端设备100的相应组件来渲染内容。
在一些实施方案中,客户端设备100执行的处理量可相对于输入和输出处理而变化。广义上说,游戏或应用基本上在数据中心310内可用的游戏服务器或其他应用服务器320上进行维护、执行和压缩/编码,其中客户端设备100主要用于接收、解码、处理和在客户端设备100的显示器上渲染音频/视频数据。客户端设备100进一步被配置来将用户输入传回到游戏服务器或其他应用服务器。客户端设备100可以是连接到用于渲染视频数据的显示器的独立计算设备。在其他实施方案中,所述显示器可集成到客户端设备100中。在一个实施方案中,所述显示器是利用显示设备的网络连接为应用或“app”提供平台操作系统的联网显示设备。在这样的实施方案中,客户端设备100可由在由显示设备的操作系统提供的平台上执行的应用来定义。
在游戏进行会话期间,客户端设备100-1至100-n可主动寻求其本地的一个或多个其他客户端设备。用来发起游戏进行请求的客户端设备100在本文中称为“主”客户端设备,并且主客户端设备本地的且被发现以用于设备交接的客户端设备被称为“辅助”客户端设备。取决于主客户端设备100的位置,被检测为主客户端设备本地的辅助客户端设备可变化。例如,在用户的家庭网络中被标识为主客户端设备100本地的辅助客户端设备可与在用户朋友的家庭网络中被标识的辅助客户端设备不同,它们可与在办公环境中被标识的辅助客户端设备不同等。
本申请中使用的服务器可以是远程服务器、虚拟计算机、云游戏服务器、云应用服务器、远程应用服务器、数字媒体服务器、用于提供游戏开发者/游戏赞助商店面(storefront)的服务器、网站服务器、终端服务器、控制台服务器、或数据中心中可用的能够托管用户可在云游戏期间访问和交互的一个或多个游戏或应用(包括提供或分配用于执行游戏或应用的处理资源)的任何其他类型或形式的服务器计算设备。服务器可包括编码器,所述编码器用于压缩视频帧中的数据,并使用遵循特定类型协议的应用编程接口(API)调用将数据流中的压缩视频帧转发到客户端设备100。
例如,服务器320(诸如数据中心310中的云游戏服务器)执行由用户选择用于游戏进行的视频游戏,不时地定义视频游戏的状态,以及向主客户端设备100发送流式视频帧(包括图像、视频和音频数据),在主客户端设备100处发起针对游戏的游戏进行的请求。进而,主客户端设备100的用户输入模块107被配置来处理来自玩视频游戏的用户的用户输入,并将输入数据传输到服务器320。服务器320被配置来处理输入数据以影响视频游戏的游戏状态。
云游戏系统包括多个数据中心310-1至310-m。在一个实施方案中,数据中心310可包括多个服务器320(例如,游戏服务器),能够存储游戏代码、应用代码的存储系统,用户相关和应用相关数据存储区,并且可使它们易于使用,以便能够处理来自多个用户的各种请求。数据中心还可包括用于在客户端设备100与多个服务器320之间建立通信连接的电信设备(诸如路由器、交换机等)。多个服务器320中的每一个可配备有服务器侧API(不同的或类似的),以用于与在客户端设备100处的对应的客户端侧API通信,或者与和第三方社交媒体提供商相关联的服务器侧API通信。在一些实施方案中,数据中心310中的服务器320可被配置来执行各种类型的应用、包括游戏应用,并将应用内容(即,由游戏应用生成的视频帧)流式传输到对应的客户端设备100以用于渲染。服务器320可被配置来使用任何数量的压缩技术来对由服务器320生成或提供的任何数据执行压缩操作,并使用通信协议和/或传输协议中的任何一个来将压缩数据转发到客户端设备100。服务器可包括通常用来执行或实施特定功能、游戏或应用的终端服务器、控制台服务器、虚拟服务器等。仅举几例,由服务器执行的功能、游戏或应用的一些实例可包括数据库管理、文件管理、邮件服务、打印服务、web服务、游戏管理、应用管理、媒体管理、目录服务、通信管理、计算服务和代理管理。在一些实施方案中,服务器320(诸如控制台服务器)可通过执行游戏并向一个或多个客户端设备100提供流式视频帧以用于渲染来仿真游戏控制台。在一些实施方案中,可将多个服务器和/或存储设备作为机架式服务器或存储设备提供,其中每个数据中心包括多排服务器和/或存储机架。每个服务器可能够执行多个应用和/或提供各种各样的服务。
服务器320还可包括可被用于剖析客户端设备的设备剖析器。设备剖析器可被配置来与一个或多个客户端设备建立通信连接,以用于与客户端设备交换信息。交换的信息用来标识设备属性以及生成每个客户端设备的配置文件。
应当理解,云游戏系统300通过允许一个或多个视频游戏的实例由位于一个或多个数据中心内的一个或多个服务器320(例如,应用或游戏服务器)执行,来促进来自位于不同地理位置的玩家的单玩家或多玩家基于云的游戏,这可由玩家通过网络200访问。以此方式,视频游戏的执行不依赖于任何单玩家的硬件或网络传导性,但是这将影响该给定玩家的用户体验。
使用本文描述的云游戏体系结构执行的操作形成需要多个服务器和/或执行平台的技术操作,以使得能够快速访问数据库并将内容(诸如游戏内容)展示给远程定位的用户的客户端设备100。云游戏还可包括由云游戏服务器利用任何数量的压缩技术执行的压缩操作。所述压缩技术可使用标准编码器,然后这将允许客户端设备100上的标准解码器访问和解码数据。在一些实施方案中,专用编码器和解码器也可分别在服务器和客户端设备中实现,以允许进行专门的编码和解码。可在客户端设备中进一步处理解码数据以标识图像、视频和音频数据,然后使用客户端设备100上的适当设备组件来展示图像、视频和音频数据,以便能够实现视频游戏的游戏进行。
视频游戏的管理和分发可包括许多数据中心、定向服务器、服务质量测试器或引擎、定向和重新定向到较短等待时间的数据中心。还应当理解,这些操作和任务将利用专用服务器计算机,所述专用服务器计算机被设计成用于流式传输和缩短由于远程执行游戏引起的等待时间,以及将流式游戏或应用数据传递到客户端设备100。
当从主客户端设备100接收到访问云游戏系统300的请求时,应用托管系统(诸如云游戏系统300)上的服务器与用户账户数据处理模块302交互以获得用户相关信息。用户账户数据处理模块302从存储用户配置文件和其他用户账户信息的用户账户数据库312查询和接收用户账户信息。用户配置文件和用户账户信息用来标识与发起请求的主客户端设备100相关联的用户,以及认证用户请求。在用户认证后,由与云游戏系统300相关联的服务器来服务客户端请求。在一个实施方案中,云游戏系统300的服务器可确定用户账户可用的所有游戏和/或应用,包括已购买的游戏/应用,用户账户的用户被授权观看、玩的游戏/应用,可免费获得的所有游戏和/或应用。游戏名称选择器模块304针对用户账户检索游戏名称,并将列表中的游戏名称返回以用于展示在主客户端设备100的显示器处的用户界面上。在一个实施方案中,检测对在客户端设备上渲染的游戏名称中的任何一个的用户选择,并且从主客户端设备100向云游戏系统300的服务器发送通知服务器对游戏名称的用户选择的信号。
云游戏系统300托管多个应用,包括游戏应用。响应于接收到对游戏名称的用户选择,云游戏系统300的服务器可标识数据中心310以服务所选择的游戏名称的游戏进行请求并将所述请求转发到用于服务请求的数据中心310。例如,可基于主客户端设备100的地理位置来选择数据中心310。基于地理位置选择数据中心310以服务请求可能具有其自身的缺点。例如,由于对其资源的高需求,地理位置处的数据中心310可能经历网络拥塞。可选地,由于服务主客户端设备的网络提供商与和数据中心的操作相关联的网络提供商之间缺乏对等协议,地理位置处的数据中心310可能无法服务来自特定主客户端设备的游戏进行请求。上述缺点仅仅是实例,并且还可能存在其他缺点。为了克服此类缺点,在另一个示例中,可基于网络性能测试的结果来选择数据中心310,诸如带宽/等待时间测试等。例如,当使用主客户端设备来发起游戏名称选择以进行游戏时,云游戏系统300的服务器可确定与主客户端设备相关联的地理位置,并标识一个或多个数据中心310以服务请求。当分配数据中心时,云游戏系统300可认识到位于主客户端设备的地理位置中的数据中心310内的服务器可能没有足够的资源来服务请求。其结果是,云游戏系统300可标识位于主客户端设备所基于的地理位置之外的数据中心310,以服务请求。例如,基于带宽测试,可在与主客户端设备相关联的地理位置中的其他数据中心上标识位于地理位置之外的数据中心。
如前所述,数据中心310可包括多个服务器320,其中每个服务器320执行或被设置为执行在数据中心310处可用的一个或多个游戏名称。每个数据中心310中的游戏名称数据存储区314在数据中心310中的一个或多个服务器320处提供数据中心310处可用的游戏名称列表和用于执行通过游戏名称标识的游戏的必要游戏代码。
被标识用于服务游戏的游戏进行请求的数据中心310中的服务器320通过执行游戏的实例来建立游戏进行会话,生成用于游戏的视频帧,并且将视频帧流式传输到主客户端设备100以用于渲染。所述服务器接收在主客户端设备100处提供的用户交互,并使用其来影响游戏的结果以及更新游戏状态。客户端设备可用来标识其本地的其他客户端设备。将所标识的其他客户端设备作为用于设备交接的选项提供。
图2示出在一个实施方案中,在云游戏系统300的数据中心310内的服务器320上执行的服务器侧应用321的各种模块,所述云游戏系统300用来标识在游戏进行期间用于设备交接的辅助客户端设备的选项。在图2所示的一个实施方案中,服务器侧应用321可包括与交接应用模块355的模块集成的游戏应用321-a的模块。在一些实施方案中,游戏应用321-a的模块用来执行游戏并在游戏进行期间将游戏的流式视频帧提供给客户端设备,诸如主客户端设备100。在此类实施方案中,在将视频帧传输到主客户端设备之前对其进行编码。在一些实施方案中,作为游戏应用的一部分的应用编程接口(API)可用于传输视频帧。API可包括逻辑,其捕获由游戏应用生成的视频帧,并且使用其中可用的编码技术来编码所述视频帧并将经编码的视频帧传输到客户端设备,诸如主客户端设备100。应当注意,这里讨论的用于处理视频帧的各种实施方案也可扩展到音频帧的处理。
在一些实施方案中,视频帧的编码可基于游戏提供的‘感兴趣区域’。通常,在要对游戏数据帧进行编码时,编码器必须遵守‘比特预算’。比特预算定义了如何使用比特来对帧进行编码以便提供最佳数据内容。依赖于比特预算,编码器尝试将更多比特分配给帧的某些区域(例如,帧的具有密集内容的区域),同时将更少比特分配给帧的其他区域(例如,具有较少内容的区域)。为了帮助编码器最佳地编码视频帧,游戏提供与感兴趣区域相关的信息,这样编码器可标识应得到更多细节的区域(即,具有文本、密集的游戏场景(诸如草地、叶子、森林等)、密集的动作等的区域)和应得到更少细节的区域(即,框架中的不太明显的区域)。在配备有游戏和比特预算的这种细化程度的情况下,编码器对视频帧分配比特,以便提供用于观看的最佳帧内容。
在可选实施方案中,将游戏的在游戏进行期间生成的流式视频帧转发到服务器320的操作系统或者转发到与游戏应用321-a和/或所述操作系统交互的图形处理单元(GPU)驱动器。GPU可处理视频帧并将其提供给服务器320的操作系统。服务器320的操作系统可接收经处理的视频帧,并且在将某种形式的编码传输到主客户端设备100之前在后台执行这一某种形式的编码。在一些实施方案中,在将视频帧发送到主客户端设备100以用于渲染之前,云游戏系统300内的服务器320的操作系统可使用云游戏系统300内可用的编码器来执行对视频帧的编码。如在先前实施方案中那样,编码器可接收与游戏的感兴趣区域有关的详细信息,并且通过根据详细信息分配构成视频帧的数据比特来对视频帧进行编码。这里参考视频帧的处理讨论的实施方案也可扩展到音频帧。在将视频帧和/或音频帧转发到客户端设备之前,操作系统可监视网络状况并响应地调整视频帧和/或音频帧的帧速率、比特率等。
在可选实施方案中,位于云游戏系统300之外的外部应用可捕获表示由云游戏系统300的操作系统传输的流式视频帧的高清晰度多媒体接口(HDMI)视频信号,并且可使用外部编码器以便对视频信号进行编码。然后,外部应用处理经编码的视频信号到客户端设备的传输。作为传输的一部分,外部应用可监视网络状况并调整被流式传输到主客户端设备100的视频帧的质量(即,帧速率、比特率等)。
在一些实施方案中,基于网络状况,操作系统或外部应用可自动地触发设备交接。作为触发的一部分,操作系统或外部应用可发现位于主客户端设备附近的其他辅助客户端设备,发信号通知所发现的辅助客户端设备要由服务器进行剖析,并将辅助客户端设备信息转发到交接应用模块355以用于在设备交接期间使用。
交接应用模块355的模块用来标识主客户端设备本地的辅助客户端设备,或者使用由操作系统或外部应用提供的辅助客户端设备信息,对辅助客户端设备进行剖析并将其作为用于设备交接的选项提供。在其他实施方案中,服务器侧应用321可包括与交接应用模块355分离的游戏应用321-a。在此类实施方案中,游戏应用321-a和交接应用模块355可在同一服务器上单独执行,或者游戏应用321-a可在第一服务器上执行,而交接应用模块355可在数据中心中的第二服务器上执行,其中第一服务器和第二服务器彼此通信连接以交换数据,诸如用户选择、游戏状态、暂停/恢复请求等。在一些实施方案中,生成流式视频帧和/或音频帧的游戏应用321-a可具有以下能力:监视到主客户端设备的网络连接并与交接应用模块355共享此信息。可选地,网络连接质量信息可由服务器的操作系统或外部应用提供给交接应用模块355。
交接应用模块355可使用主客户端设备的网络连接信息和对辅助客户端设备生成的配置文件来确定主客户端设备本地的一个或多个辅助客户端设备是否具有比主客户端设备处可用的更好的网络连接质量。当交接应用模块355标识到一个或多个辅助客户端设备时,交接应用模块355可生成带有切换到备用辅助客户端设备的选项以改善游戏体验的信息消息。在设备交接期间,可将信息消息以及备用辅助客户端设备的列表转发到主客户端设备以用于在客户端侧上渲染以用于用户选择。在一些实施方案中,信息消息可作为叠加提供,用于在主客户端设备的显示部分上渲染的游戏场景之上渲染。可选地,信息消息可由游戏应用321-a或服务器侧进程或服务器侧游戏控制台的用户界面等渲染给服务器侧。在一些实施方案中,服务器侧游戏控制台的用户界面是隐藏的,但响应于触发动作而渲染通知,诸如接收新电子邮件,接收新消息,检测在线的用户或用户朋友等,其中触发动作可扩展到还包括接收信息消息。
各种模块的功能或作用将参考图2所示的集成服务器侧应用模型来解释,但是可扩展到以上讨论的其他服务器侧应用模型。如前所述,服务器侧应用321包括游戏应用321-a的模块与交接应用模块355的模块集成。游戏应用321-a的多个模块使得服务器320能够标识主客户端设备100的设备标识符,标识并执行主客户端设备100所请求的游戏实例,并且提供用于转发到主客户端设备以用于渲染的流式视频帧。交接应用模块355的多个模块使得服务器能够发现和限定一个或多个辅助客户端设备,并且将合格辅助客户端设备的列表作为用于设备交接的选项提供。
作为服务器侧应用321的一部分的游戏应用321-a内的模块中的一些用来向客户端设备100提供游戏相关数据,包括主客户端设备标识符322、游戏执行引擎324和编码器328,仅举几例。交接应用模块355中的模块包括用于实行设备交接的模块和用于剖析一个或多个辅助客户端设备的模块。仅举几例,用于实行设备交接的模块包括交接管理器330、恢复管理器332和暂停管理器334。用于剖析一个或多个辅助客户端设备的模块包括客户端设备剖析器340。
响应于用户选择用于游戏进行的特定游戏名称,云游戏系统300标识位于主客户端设备的地理位置中或附近的数据中心310,并且被配置来服务游戏进行请求。云游戏系统300将游戏进行请求转发到所标识的数据中心处的服务器,所述服务器从位于所标识的数据中心内的游戏名称数据存储区314标识游戏名称。
作为服务请求的一部分,服务器320使用主客户端设备标识符322标识发起游戏进行请求的客户端设备100,并将客户端设备100指定为主客户端设备100。对主客户端设备100的标识用于转发流式内容。然后,服务器320通过以下方式来建立游戏进行会话:提供用于游戏执行的必要资源(例如,存储、处理器等),以及引导游戏应用321-a的游戏执行引擎324检索游戏的游戏代码并通过在服务器320上执行用于游戏的游戏代码来实例化游戏。作为实例化游戏的一部分,游戏执行引擎324生成用于游戏的视频帧326。使用编码器328根据针对主客户端设备100定义的通信协议来压缩视频帧326。将经编码的游戏数据流式传输到主客户端设备100以用于渲染。在一些实施方案中,编码器328可以是游戏应用321-a的一部分。游戏应用321-a的应用编程接口(API)用来将经编码的视频帧流式传输到主客户端设备100。在一些实施方案中,作为游戏应用321-a的一部分的API可包括用于对视频帧进行编码并将经编码的视频帧转发到主客户端设备的编码逻辑。在可选实施方案中,在游戏执行引擎324处生成的视频帧由服务器320的操作系统捕获并处理。如前所述,在一些情况下,操作系统可对视频帧进行编码,监视网络状况,以及在将经编码的视频帧流式传输到主客户端设备100之前调整视频帧的质量。可选地,操作系统可处理视频帧并将其作为HDMI视频信号转发。在云游戏系统之外的外部应用可捕获HDMI视频信号,使用外部编码器对在HDMI视频信号中捕获的视频帧进行编码,监视网络状况,以及在将视频帧通过外部应用内可用的一个或多个API传输到主客户端设备100之前,调整视频帧中的图像的分辨率和/或传输速率。应当注意,用于捕获、监视网络状况、编码和传输视频帧的过程也可扩展到音频数据。主客户端设备100处的用户交互由服务器接收并用来调整游戏执行引擎324处的游戏结果。
在游戏进行会话期间,主客户端设备100可主动地寻求被标识为主客户端设备100本地的其他客户端设备(在本文中也称为辅助客户端设备)。在一个实施方案中,在检测到辅助客户端设备时,主客户端设备100可建立与辅助客户端设备的网络连接,并向辅助客户端设备发送信号以便与服务器320通信并被剖析。由于在服务器320处存在安全设备(诸如防火墙),所以使辅助客户端设备而不是服务器320建立网络连接可能是有利的。可通过辅助客户端设备上可用的一个或多个后台代理来实现通过辅助客户端设备建立网络连接。例如,辅助客户端设备通常始终连接到社交媒体服务器、电子邮件服务器等,并且接收社交媒体通知或电子邮件通知等。主客户端设备可通过该网络连接访问辅助客户端设备,并向辅助客户端设备发送信号以对其自身进行剖析。所述信号可包括到服务器的链接、服务器的IP地址等,以使得辅助客户端设备能够标识并建立与适当服务器的通信链路,以便发起配置文件请求105。在可选实施方案中,在检测到辅助客户端设备时,主客户端设备100可向服务器320发送带有配置文件请求105的信号,所述配置文件请求105为请求服务器建立与辅助客户端设备的通信链路并生成由主客户端设备检测到的辅助客户端设备的配置文件。在此实施方案中,来自主客户端设备100的信号可包括辅助客户端设备的设备标识符。
响应于来自主客户端设备或辅助客户端设备的信号,服务器320可建立与辅助客户端设备的通信连接。通信连接允许服务器侧应用321的客户端设备剖析器340请求并从辅助客户端设备接收信息,诸如网络带宽信息、服务质量信息、设备能力(包括存储器、处理器速度等)、设备可用性、游戏/应用可用性等。交换的信息用来生成辅助客户端设备的配置文件。所述配置文件根据与服务器交换的信息来标识辅助客户端设备的设备属性。当主客户端设备发现另外的辅助客户端设备时,响应于配置文件请求,客户端设备剖析器340还剖析另外的辅助客户端设备。客户端设备剖析器340使用不同辅助客户端设备的配置文件信息来生成可用于设备交接的辅助客户端设备列表342。
在可选实施方案中,代替主客户端设备主动寻求辅助客户端设备,服务器的不同组件可主动地寻求主客户端设备本地的辅助客户端设备,所述主客户端设备主动参与云游戏系统上可用的游戏的游戏进行会话。例如,游戏应用321-a或游戏应用321-a中的API、处理视频帧的游戏服务器内的API、或云游戏系统内的处理视频帧的外部应用可主动参与发现用于设备交接的辅助客户端设备。在此类实施方案中,服务器可通过以下方式来确定主客户端设备的地理位置:使用由主客户端设备生成的信号、或者基于从用户使用主客户端设备(在游戏进行会话之前或期间)与之交互的社交媒体帖子或从嵌入在主客户端设备中的工具或从主客户端设备中实现的应用等获得的信息。例如,使用主客户端设备的地理位置,服务器可使用在各种客户端设备中实现的一个或多个设备发现协议来寻求发现被标识为主客户端设备本地的一个或多个辅助客户端设备。在一些实施方案中,辅助客户端设备向云游戏系统注册,并且要么主动地与云游戏系统交互,要么处于休眠状态。在其他实施方案中,辅助客户端设备可主动地与其他内容提供商系统交互,但是可针对云游戏系统上的云游戏进行设置。
一旦标识到辅助客户端设备,客户端设备剖析器340就可生成主客户端设备和辅助客户端设备的配置文件,并且这种剖析可在服务器检测到辅助客户端设备或响应于触发事件(例如,低电池电量信号、增加的等待时间、日历事件等)时自动完成。客户端设备剖析器340可使用主客户端设备和辅助客户端设备的配置文件,来确定辅助客户端设备中的任何一个或多个是否具有可为用户增强当前正在进行的游戏的游戏体验的设备属性。当根据生成的设备配置文件确定一个或多个辅助客户端设备包括可提供比主客户端设备提供的更好的游戏体验(增强的分辨率、改善的帧速率、更短的等待时间等)的设备属性时,客户端设备剖析器340标识辅助客户端设备中的所选择的一些并生成辅助客户端设备的列表。
将辅助客户端设备列表342转发到交接管理器330。交接管理器330被配置来查询游戏执行引擎324以确定游戏的设备属性要求。每个游戏可具有其自己的设备属性要求。例如,图形密集型游戏可能要求更高的网络带宽,而计算密集型游戏可能要求更快的处理器。其结果是,设备属性要求可特定于游戏,并且可基于游戏的设备属性要求标识辅助客户端设备。交接管理器330使用游戏的设备属性要求来限定列表342中提供的辅助客户端设备。此外,在一些实施方案中,交接管理器330可标识需要对辅助客户端设备预配置以便使辅助客户端设备有资格进行游戏的一个或多个设备属性或服务。然后,交接管理器330可继续预配置所要求的设备属性或服务,以便使辅助客户端设备有资格进行游戏。交接管理器330将列表342细化成以包括仅有资格进行游戏的那些辅助客户端设备。在细化列表中标识的辅助客户端设备可以是由客户端设备剖析器340提供的辅助客户端设备的子集。
应当注意,合格的辅助客户端设备的子集可包括来自客户端设备剖析器340提供的列表342中的一个辅助客户端设备、来自列表的一些辅助客户端设备、或列表中的所有辅助客户端设备。交接管理器330利用交接选项将此细化的合格辅助客户端设备列表转发到主客户端设备100以用于用户选择,如由气泡‘a’表示的方向箭头所示。
具有合格辅助客户端设备的列表的交接选项在主客户端设备的显示器上渲染。在一个实施方案中,可将合格的辅助客户端设备的列表渲染为游戏的游戏场景上的客户端侧叠加样式菜单,并且可在主客户端设备处提供选项以用于选择合格的辅助客户端设备中的任何一个。在另一个实施方案中,可将合格辅助客户端设备的列表渲染在服务器侧上。在此类实施方案中,合格辅助客户端设备的列表可以是转发到客户端设备以用于渲染的视频流的一部分。对交接选项和/或合格的辅助客户端设备的用户选择通过网络200传递到交接管理器330,如由气泡‘b’表示的方向箭头所示。在一个实施方案中,响应于从主客户端设备接收用户选择,交接管理器330随后可继续指示暂停管理器334或向其发送命令或信号以暂停游戏的游戏进行,如由气泡‘c’表示的方向箭头所示。暂停命令或指令将包括主客户端设备的标识符以及在用户选择中标识的辅助客户端设备。响应于暂停命令,暂停管理器334发信号通知游戏执行引擎324暂停游戏进行。在可选实施方案中,交接管理器330可直接向游戏执行引擎324发送信号以暂停游戏进行。在一个实施方案中,不管哪个模块提供暂停信号,游戏执行引擎324都响应于暂停信号将与状态数据管理器338交互以确定在接收到暂停请求时游戏的游戏状态。状态数据管理器338被配置来分析游戏的游戏进行以确定在接收到暂停信号时游戏的游戏状态,并且标识可恢复游戏进行的再启动点。游戏的游戏状态和再启动点可由状态数据管理器338维持游戏进行会话的持续时间。在可选实施方案中,状态数据管理器338可写入游戏的保存数据,所述保存数据包括在直到接收到暂停请求的时间点的游戏进行期间在游戏中进行的进度。当恢复游戏进行时,此保存数据可用来重新创建游戏的游戏进行。另外,作为暂停游戏的一部分,游戏执行引擎324暂停向在暂停信号中标识的主客户端设备流式传输视频帧。
除了提供暂停信号之外,交接管理器330还可向在暂停信号中标识的辅助客户端设备提供恢复选项,以允许辅助客户端设备恢复游戏的游戏进行。来自辅助客户端设备的对恢复选项的用户选择导致恢复请求信号被从主客户端设备100转发到服务器上的交接管理器330。
交接管理器330可验证恢复请求来自所选择的辅助客户端设备。在验证后,交接管理器330可将恢复请求转发到恢复管理器332以用于处理。恢复管理器332可与游戏执行引擎324交互以确定游戏的游戏状态。游戏执行引擎324从恢复管理器332接收请求并查询状态数据管理器338,以便获得游戏的游戏状态和用于游戏的游戏再启动点。然后,恢复管理器332可指示游戏执行引擎324恢复游戏的游戏进行,并将视频帧从针对游戏标识的再启动点流式传输到所选择的辅助客户端设备。作为恢复游戏的一部分,恢复请求可包括所选择的辅助客户端设备的能力,诸如屏幕显示器分辨率、可用的输入控件、音频能力等。提供有恢复请求的所选择辅助客户端设备的能力可用来调整视频帧流,使得可在所选择的辅助客户端设备上渲染视频帧。此外,使用供辅助客户端设备使用的输入方法来调整游戏进行,使得游戏可识别使用辅助客户端设备处可用的输入方法提供的交互。在流式传输到辅助客户端设备之前,根据针对辅助客户端设备定义的通信协议来压缩视频帧326。用于压缩发送到主客户端设备和辅助客户端设备的视频帧流的压缩技术可以是相同的或不同的,这取决于为游戏进行选择的主客户端设备和辅助客户端设备的类型。
同时,交接管理器330使用在恢复请求中提供的辅助客户端设备标识符来更新将与游戏执行引擎324交互的主客户端设备。交接管理器330指示更新主客户端设备模块336,其进而向主客户端设备标识符模块322发送信号以便用辅助客户端设备标识符更新客户端设备标识符,如气泡‘d’所示,使得游戏执行引擎可标识客户端设备以开始流式传输经编码的视频帧。作为更新的一部分,主客户端设备标识符模块322用辅助客户端设备标识符替换主客户端设备标识符,并将辅助客户端设备指定为主客户端设备100。
在一些实施方案中,交接选项可允许从合格辅助客户端设备的列表中选择多于一个的辅助客户端设备以用于设备交接。在此类实施方案中,来自特定辅助客户端设备的对恢复请求选项的用户选择将确定哪一个辅助客户端设备要从恢复的游戏进行流式传输视频帧。选择多于一个的辅助客户端设备可以是向用户提供不同的合格设备的另外选项,以便用户可基于设备可用性、网络带宽、通信信号强度、可用帧速率、服务质量等来选择设备。例如,两个辅助客户端设备可能被标识具有类似的设备属性,但是一个可能在从接收到交接请求的时间起的游戏会话的整个持续时间内不可用,或者可能具有低的通信信号强度或功率。在此类情况下,在这两个辅助客户端设备上提供恢复请求选项可帮助用户在设备交接期间切换到用于进行游戏的适当的辅助客户端设备。
图3示出在本发明的一个实施方案中的主客户端设备内的可用来标识辅助客户端设备的选项,以及用于选择用于设备交接的辅助客户端设备的各种模块。主客户端设备是包括组件的计算设备,诸如用于处理从服务器(诸如云游戏服务器320)接收的请求和数据的处理器104、用于存储数据的一个或多个存储器单元、用于连接到因特网以及与其他设备(诸如服务器、控制台、其他客户端设备、控制器、网络设备等)交互的网络组件和通信协议。主客户端设备100可以是膝上型计算机、台式计算机、移动电话、平板计算机设备、头戴式显示器等。用户登录模块102用来提供用于在主客户端设备100的显示器上渲染的用户界面,并且用于提供用户认证信息以用于例如访问云游戏服务。用户界面还可用来在游戏进行期间提供用户选择和用户交互。处理器104包括流处理器106,其用来通过网络200接收和处理从服务器(诸如云游戏服务器320或其他内容提供商)接收的流式内容。流处理器106包括必要的逻辑,所述必要的逻辑用于验证从服务器接收的流式内容遵守针对主客户端设备100定义的通信协议,并且用于处理所述内容。处理器104可使用处理器可用的解码器108来解压缩由服务器320提供的经编码的流式数据。将解压缩的数据转发到处理器104内的数据处理程序110以用于分析数据,以便标识各种数据组件并使内容的各种数据组件分离。来自服务器320的流式内容(即,流式视频帧数据)可包括视频帧数据、音频数据、触觉数据、图像等。数据处理程序110使流式内容中提供的各种数据组件分离,并将不同的数据组件分别转发到主客户端设备100上的适当设备组件以用于渲染。例如,音频数据组件110-a可转发到扬声器以用于渲染,视频110-b和图像数据组件可转发到显示器以用于渲染等。响应于流式内容,在客户端设备处提供并由用户输入模块107捕获的用户输入(诸如用户选择、游戏交互等)由处理器104进行处理并被转发到服务器320,以便例如驱动游戏的结果。
主客户端设备100还包括切换模块120,所述切换模块120用来主动寻求和检测位于主客户端设备100附近的辅助客户端设备,以便展示用于设备交接以便进行游戏的交接选项。切换模块120包括多个子模块,仅举几例,诸如发现代理130、设备配置文件指示器140和交接逻辑150。所述发现代理130用来发现被标识为主客户端设备本地的其他客户端设备。发现代理130使用由客户端设备发出的各种信号和/或协议来寻求其他客户端设备。将参考图4更详细地描述发现代理130。
在一些实施方案中,设备配置文件指示器140用来发信号通知由发现代理130发现的辅助客户端设备,以建立与云游戏系统的服务器的通信连接并被剖析。在其他实施方案中,设备配置文件指示器140可发信号通知云游戏系统的服务器,以建立与所发现的辅助客户端设备的通信连接并且对辅助客户端设备中的每一个进行剖析。将参考图5讨论设备配置文件指示器140的作用的更多细节。
交接逻辑150用来提供适当的用户界面以用于渲染交接选项和有资格进行游戏的辅助客户端设备列表,以便成功执行设备交接。将参考图6A、图6B、图6C-1和图6C-2讨论交接逻辑150的功能的更多细节。
图4示出在客户端设备100上可用于寻求和发现其他客户端设备的发现代理130的各种子模块。发现代理130的子模块可大致分为两个主要子模块-设备位置检测器132和服务发现模块134。所述设备位置检测器132被配置来标识主客户端设备的地理位置,其方式为通过使用由主客户端设备发出的信号或者通过从主客户端设备内的组件或主客户端设备外部的设备获得数据。在本地网络(诸如家庭网络)中,各种客户端设备(诸如平板计算机、智能电视、智能手表、移动电话、有线电视盒、游戏控制台等)都通过以太网连接(即,有线连接)、Wi-Fi(即,无线)连接或两者的组合连接到家庭网络。其结果是,主客户端设备的地理位置可得以确定,在一个实施方案中,其方式为通过评估主客户端设备向网络内的一个或多个网络接入点表现出的Wi-Fi信号强度,并且这种评估可使用Wi-Fi信号检测器132-a来执行。在可选实施方案中,本地路由器设备检测器132-b可查询本地路由器设备以获得通过路由器设备连接到网络的客户端设备的列表。在再一实施方案中,在主客户端设备100中实现的全球定位服务(GPS)工具132-c可用来精确定位主客户端设备的地理位置。在另外的实施方案中,可通过使用小区塔信号检测器132-d询问主客户端设备与一个或多个小区塔之间的信号来确定主客户端设备的地理位置。当主客户端设备被设置为与小区塔(诸如移动电话)交互时,这种检测主客户端设备的地理位置的模式可能是有用的。在一些实施方案中,可使用各种设备位置检测器132的组合来确定用户的主客户端设备100的地理位置。
一旦确定了主客户端设备的地理位置,就可使用一个或多个服务发现模块134来主动寻求和发现与主客户端设备100处于相同网络环境中的其他客户端设备。例如,可使用在诸如平板计算机、膝上型计算机、打印机等的各种设备上实现的基于域名系统(DNS)的协议(诸如多播DNS服务发现协议134-a)来发现在主客户端设备在其中操作的网络内可用的辅助客户端设备。可选地,可使用服务定位协议134-b来检测在主客户端设备在其中操作的局域网中的辅助客户端设备。其他服务发现协议可包括蓝牙服务发现协议134-c,其用于使用无线技术来检测在主客户端设备的局域网中的启用蓝牙的辅助客户端设备。这里提供的服务发现协议列表仅仅是示例,并且可使用其他服务发现协议来自动寻求和发现在主客户端设备在其中操作的本地网络内的辅助客户端设备。例如,使用无线连接138将使用不同协议发现的各种辅助客户端设备通过网络200转发到服务器320。所述服务器可接收所发现的辅助客户端设备的设备标识符,并建立通信连接以便交换用于标识设备属性和剖析相应的辅助客户端设备的信息。可选地,可通过请求来将信号发送到各种辅助客户端设备以建立与服务器320的通信连接并与服务器交换信息。与服务器交换的信息用于生成辅助客户端设备的配置文件。对辅助客户端设备生成的配置文件用于限定辅助客户端设备,以便可标识适当的辅助客户端设备并将其作为用于设备交接的选项提供。
图5示出在一个实施方案中的示例性客户端设备剖析器340,其用来限定被发现为主客户端设备本地的辅助客户端设备,以便提供合格的辅助客户端设备的选项以用于设备交接。服务器320内的(图2的)客户端设备剖析器340接收一个或多个信号以便剖析由主客户端设备100使用各种设备发现协议发现的一个或多个辅助客户端设备,并且可从客户端设备的设备配置文件指示器140或从一个或多个辅助客户端设备接收此类信号。响应于所述一个或多个信号,客户端设备剖析器340建立通信连接并开始与相应的辅助客户端设备交换信息。可使用客户端设备剖析器340内的各种子模块来从辅助客户端设备获得信息。例如,可使用服务质量(QOS)评估器341来从辅助客户端设备获得QOS信息。QOS信息可包括影响用户的游戏体验的网络带宽信息、帧速率、流式传输能力和其他网络相关信息,诸如ping时间、分组丢失、链路类型(即,使用WiFi、以太网、长期演进(LTE)技术等的网络连接)等。在一些实施方案中,QOS信息可用于组织由主客户端设备发现的辅助客户端设备。在其他实施方案中,在辅助客户端设备与客户端设备剖析器340之间交换的信息可用于组织辅助客户端设备。例如,可根据游戏的设备属性要求对设备属性进行排名。过程密集型的游戏可将处理器速度排名成高于其他设备属性,并且图形密集型的游戏可将网络带宽排名成高于其他设备属性。QOS评估器341可根据游戏的要求对设备属性进行排名,并且使用对设备属性的这种排名来标识和限定由主客户端设备发现的辅助客户端设备,以用于设备交接。在一些实施方案中,将合格辅助客户端设备的列表根据辅助客户端设备的设备属性与排名的设备属性的匹配程度组织在列表中。
可使用设备规范发现349来确定辅助客户端设备的硬件和软件规范,包括但不限于操作系统的类型和版本、处理器的类型、处理器速度、存储器的类型和量等。设备规范可用于对辅助客户端设备进行分类以及用于打包流式视频帧以便转发到辅助客户端设备。
可使用设备可用性模块343来确定由主客户端设备发现的辅助客户端设备中的每一个的可用性。设备可用性可驱动对合格的辅助客户端设备的选择,以便将其提供为用于设备交接的选项。可在发现时将辅助客户端设备的一些或所有连接到本地网络。可委托辅助客户端设备中的一个或多个以用于为事件(诸如日历事件、用户动作事件等)提供服务。当发生所述事件时,可在事件期间使用被委托以用于为事件提供服务的一个或多个辅助客户端设备的资源,并且这些辅助客户端设备被示出处于‘忙碌’状态。为了确定特定的辅助客户端设备在设备交接期间是否可用,设备可用性模块343被配置来查询事件机制(未示出)以确定辅助客户端设备的资源可对其使用或委托的各种事件。在一个实施方案中,事件机制可被配置来从各种调度源查询和获得与事件有关的信息,以便在游戏会话期间标识用于设备交接的辅助客户端设备。
应当注意,在从主客户端设备接收到交接选项时,设备可用性信息可用来确定在设备交接期间辅助客户端设备中的哪些是可用的。可选地,设备可用性信息可用来确定辅助客户端设备中的哪些被调度为将忙于游戏进行会话,所述游戏进行会话在将来某个时间进行调度。可使用接口(诸如网络接口347)来提供接口逻辑和/或API以用于查询不同的调度应用(诸如日历应用345、社交媒体应用346、电子邮件应用等),以便确定是否已经在当前时间或正在调度已经委托或需要特定辅助客户端设备的资源以用于游戏进行会话的时间调度任何事件。例如,如果用户当前时间致力于通过社交媒体帖子玩在线多玩家游戏,那么事件机制可能够通过查询依赖于一个或多个社交图346-a来标识社交联系人的社交媒体应用346来提取此类信息。可使用社交联系人的身份来确定要监视或查询哪些社交帖子/反馈以获得用户玩游戏的社交委托。类似地,如果用户具有在每星期五晚上8:00玩在线多玩家游戏的日历条目,那么事件机制可能够从日历应用345或从电子邮件应用或社交媒体中的日历选项或其他调度资源提取此类信息。设备可用性模块343分析特定辅助客户端设备已被委托的各种事件,以便确定所标识的辅助客户端设备中的哪些可用于包括在设备交接选项中。从设备可用性模块343获得的调度信息用于标识和限定作为随交接选项的选项提供的辅助客户端设备。当然,所标识的辅助客户端设备具有设备属性以用于为用户提供最佳游戏体验。
游戏/应用发现模块344用来确定在数据中心处可用的各种应用和/或游戏,数据中心被分配用于游戏的游戏进行会话。如图1所示,每个数据中心包括多个可用的或被设置用于进行的游戏。多个服务器提供用于进行每个数据中心中可用的游戏的必要资源。游戏/应用发现模块344被配置来确定可用的游戏列表以及确定是否需要在数据中心处预配置任何游戏以实现游戏进行。如果特定游戏在数据中心处不可用,那么云游戏系统300可在数据中心处预配置游戏,使得当且如果游戏被选择用于游戏进行时,可从游戏名称数据存储区314检索游戏的实例,在数据中心的服务器上执行游戏的实例,并且将游戏内容流式传输到主客户端设备和辅助客户端设备。类似地,如果辅助客户端设备不具有一个或多个设备属性或者如果设备属性没有达到游戏的游戏进行所要求的水平,那么游戏/应用发现模块344可标识此类属性并且可使用云游戏系统300来预配置这些属性以使辅助客户端设备有资格用于进行游戏。客户端设备剖析器340使用由各个子模块收集的信息来生成被发现为主客户端设备本地的各种辅助客户端设备的设备配置文件。
图6A示出由客户端设备剖析器340对被标识为主客户端设备本地的所有辅助客户端设备生成的示例性设备配置文件。设备配置文件使用设备标识符来标识辅助客户端设备,并列出辅助客户端设备的各种设备属性。为简单起见,辅助客户端设备的设备标识符以数字顺序列出,而实际上设备标识符是可用于清楚地标识每个客户端设备的唯一标识符。辅助客户端设备的数量和具体设备属性已作为示例提供,并且不应被视为限制。可在由客户端设备剖析器340生成的设备配置文件中标识更少或更多数量的设备属性。
由客户端设备剖析器340生成的配置文件可由服务器320处的交接管理器330使用,来限定辅助客户端设备并且标识有资格在游戏的游戏进行期间随用于设备交接的交接选项提供的辅助客户端设备中的特定一些。将合格的辅助客户端设备与交接选项一起返回到主客户端设备100以用于渲染和用户选择。
图6B、图6C-1和图6C-2示出在主客户端设备的显示器上渲染的用户界面的不同示例。主客户端设备100处的交接逻辑150从服务器320处的交接管理器330接收交接选项和合格辅助客户端设备的列表,并且将交接选项与合格的辅助客户端设备的列表一起展示在用户界面153中以用于用户选择。所述用户界面标识对用户可用的各种选项(即,“暂停”或“恢复”)。另外,用户界面提供主客户端设备(D1)的设备标识符,如框155所示,以及“选择其他设备”选项157下的合格辅助客户端设备的列表。图6B示出在一个实施方案中的在主客户端设备的显示器上渲染的用户界面153。在用于用户选择的选项157下提供的辅助客户端设备的列表是由客户端设备剖析器340提供的辅助客户端设备(在图6A中示出)的子集,并且在一个实施方案中,是根据与游戏的设备属性要求相比较的相应辅助客户端设备的设备属性来组织的。
对“暂停”选项的用户选择(如黑色光标所示)将导致信号被发送到服务器320处的交接管理器330以用于暂停游戏的游戏进行。作为响应,交接管理器330将导致向游戏执行引擎324发送指令以用于暂停向主客户端设备流式传输视频帧。交接管理器330还向暂停管理器334发送信号以用于保存游戏进行的游戏状态,以使得能够从游戏的游戏进行所暂停的点再启动。所述游戏进行的游戏状态由状态数据管理器338保存。对辅助客户端设备的用户选择(如灰色点状光标所示)将致使辅助客户端设备被标识为游戏进行必须流式传输到的交接设备,如果且当用户决定在所选择的辅助客户端设备上恢复游戏时。对暂停选项的用户选择还将导致“恢复”选项被转发到所选择的辅助客户端设备。对辅助客户端设备处的恢复选项的用户选择被转发到服务器320处的交接管理器330。交接管理器330进而将指示恢复管理器332恢复游戏的游戏进行。恢复管理器332将指示游戏执行引擎从状态数据管理器338检索游戏状态,并从保存在状态数据管理器338中的再启动点再启动游戏。交接管理器330发送信号以更新主客户端设备标识符以便反映所选择的辅助客户端设备标识符,这样游戏执行引擎324可使用所选择的辅助客户端设备的设备标识符来流式传输用于再启动的游戏的视频帧。
图6C-1和图6C-2提供在本发明的一个实施方案中的选择辅助客户端设备作为交接设备的替代方式。如图6C-1所示,代替选择“暂停”选项,用户可从选择设备选项157选择辅助客户端设备中的一个(如黑色光标所示)用于设备交接。对辅助客户端设备的用户选择将自动致使所选择的设备在选择设备选项157中被突出显示并且暂停选项被激活,如图6C-2中被突出显示的“暂停”选项所示。响应于对辅助客户端设备的用户选择,暂停游戏的游戏进行、保存游戏状态以及提供“恢复”选项的过程类似于参考图6B所讨论的内容。如果且当用户从辅助客户端设备选择恢复选项时可恢复游戏进行。
这里讨论的各种实施方案允许主客户端设备使用在客户端设备中的每一个中实现的各种协议和信号检测器来主动寻求和发现主客户端设备本地的辅助客户端设备。在一些实施方案中,在每个客户端设备内可用的协议和技术使得正从内容提供商(例如,游戏服务器)接收流式内容的主动参与的客户端(即,主客户端设备)能够发现有资格接收流式内容的其他休眠客户端设备、可被唤醒成为可接收流式内容的客户端的其他空闲客户端设备(例如,具有等待消息的空闲套接字的客户端设备)或有资格接收流式内容但当前正在执行有限的工作(如录制节目或下载某些内容)的备用客户端。在一些实施方案中,主动参与的客户端可提示其他客户端设备交换信息(例如,会话信息、QOS信息、设备能力、正在进行的游戏、视频编解码器信息等)以及发起针对流式会话的准备工作。这可包括监视网络带宽。如果主动参与的客户端是在电池电量偏低的台式计算机上,则可能发生触发事件(即,低电池电量触发事件),从而促进用户界面出现在平板计算机上,建议用户将游戏进行切换或移动到另一个客户端设备。所述建议可包括平板计算机本地的可用于进行游戏的其他客户端设备,并且这些客户端设备是基于其配置文件包括在建议中的。
可使用各种方式来确定主客户端设备的位置。例如,在一个实施方案中,对于无线主客户端设备,可使用到家庭网络内的一个或多个多个接入点或甚至邻居的接入点的Wi-Fi信号强度来确定用户的家内的位置。在其他实施方案中,可使用GPS数据来确定主客户端设备的位置。此类位置信息例如可用来确定用户是否正在进入另一客户端设备所驻留的房间。进入房间的用户可充当触发器来测试用于流式传输内容的其他客户端设备的网络连接。如果测试标识出其他客户端设备的QOS确实好,那么可在主客户端设备上展示设备交接选项,从而通知用户其他客户端设备可能够提供更好的游戏体验(例如,更高的分辨率、更高的帧速率、更短的等待时间等),建议用户进行切换。在展示的选项处对其他客户端设备的用户选择将使所述切换发生。
通常,各种个人客户端设备持续连接到网络服务,诸如游戏网络、社交媒体网络、内容提供商网络等。此类网络服务可保持跟踪用户的各种个人客户端设备、所述客户端设备的地理位置以及网络连接。例如,如果用户正在使用在线服务(诸如游戏网络)在移动电话上玩游戏,那么所述在线服务可能够使用由移动电话生成的信号(诸如GPS信号、小区塔信号、Wi-Fi热点等)来确定客户端设备的位置,并与私有或本地网络(诸如用户的家庭网络)中的其他客户端设备通信。本地或私有网络(例如,家庭网络)中的其他客户端设备可周期性地连接到游戏网络或其他在线服务,并且知晓用户的正在用于进行游戏的移动电话的地理位置。如果游戏网络检测到移动电话的用户离家很近,那么这可发起触发事件以验证移动电话的网络带宽和其他QOS属性、以及家庭网络中的其他客户端设备的网络带宽。如果且当用户请求设备交接时,这种预先建立移动电话和网络内其他客户端设备的设备属性可有助于更快且无摩擦的设备切换,因为在接收到切换请求之前已经完成了对设备进行限定的初步工作。
在一些实施方案中,可由事件机制查询日历事件例如以标识用户通过游戏网络对在线多玩家游戏会话做出的预约。对日历事件的标识可触发为流式会话准备各种客户端设备(主客户端设备和一个或多个辅助客户端设备)。假设客户端设备尚未用于流式传输内容,仅仅检测到计划事件就可触发对本地网络中的客户端设备(主要和辅助客户端设备)的剖析和限定。这将包括预配置服务和属性以使主客户端设备和/或一个或多个辅助客户端设备提前为流式会话做好准备,并且这种预配置是在预期当发生日历事件时将选择客户端设备中的至少一个用于进行游戏的情况下完成的。
各种实施方案描述了使得当前主客户端设备能够寻找机会接触用户可将游戏进行的流式会话传送到的所有潜在辅助客户端设备的方式。具体地,主客户端设备可参与辅助客户端设备的后台QOS和剖析以获得各种设备属性的状态,并且这种后台QOS和剖析可在主客户端设备被检测到是空闲的、或者在固定工作循环中、或者周期性地或响应于触发事件等时的特定时间完成。在用户发起改变之前完成所述剖析,使得当且如果用户决定选择设备交接选项时,由于辅助客户端设备已经被剖析,并且在一些实施例中,编解码器设置和/或其他设备属性已经预先建立或者可预先建立以用于快速流切换,可发生更快、无摩擦的改变。
如果特定的辅助客户端设备具有使用模式,那么这种使用可能影响QOS的模式。通过剖析辅助客户端设备,使得主客户端设备知晓这种使用模式,这可有助于使辅助客户端设备有资格用于切换。例如,配置文件可标识具有可能已知QOS高的可信区间的辅助客户端设备。当且如果选择辅助客户端设备用于设备交接时,此信息可用来调用经预先测试的编解码器和其他流设置(即,实现视频帧或内容的流式传输的设备属性)。在另一个示例中,如果辅助客户端设备在工作时间期间具有不可预测的进程负载(CPU负载),那么可能必须在每次发起转换事件时执行新的QOS测试。
在一些实施方案中,对各种辅助客户端设备生成的配置文件信息可用来确定本地或私有或家庭网络中是否存在已经被设置为接收当前被定向到主客户端设备的游戏的流式视频帧的其他辅助客户端设备。可向用户提供带有辅助客户端设备的设备标识符的交接选项,所述设备已经被设置用于接收游戏的流式视频帧。在一些实施方案中,可在执行交接之前执行新的QOS测试。在可选实施方案中,可依赖用来限定辅助客户端设备的现有QOS测试,并且可在不执行另外QOS测试的情况下实行设备交接,只要辅助客户端设备和主客户端设备保持在同一网络中即可。在一些实施方案中,主客户端设备可以是个人计算机、平板计算机、移动电话、台式计算机、电视等中的任何一者。辅助客户端设备可以是头戴式显示器。可选地,主客户端设备是头戴式显示器,并且被选择用于设备交接的辅助客户端设备可以是个人计算机、平板计算机、移动电话、台式计算机、电视等中的任何一者。在其他实施方案中,主客户端设备和辅助客户端设备都可以是头戴式显示器。
在一个实施方案中,有关如何使用用户的游戏中的进度来重新创建游戏的游戏状态的更多信息,可参考于2010年11月1日提交的并且标题为“USER INTERFACE,SYSTEM ANDMETHOD FOR CONTROLLING A VIDEO STREAM”的美国申请号为12/917,388,其全部内容通过引用方式并入本文。上面定义的重新创建游戏状态的过程是一种可能的方式,并且也可采用重新创建游戏的游戏状态的其他方式。有关视频生成和分发的更多信息,可参考于2010年5月31日提交的并且标题为“GAME EXECUTION ENVIRONMENT”的美国申请号12/790,955(此后作为专利号8,506,402发布),其全部内容通过引用方式并入本文。有关游戏视频的服务器侧生成和/或渲染的更多信息,可参考于2010年6月1日提交的并且标题为“QUALIFIEDVIDEO DELIVERY”的美国申请号12/791,819,其全部内容通过引用方式并入本文。有关计算机程序的服务器侧执行的更多信息,可参考于2011年9月13日提交的并且标题为“ADD-ONMANAGEMENT SYSTEMS”的美国申请号13/231,751,其全部内容通过引用方式并入本文。
图7示出在本发明的一个实施方案中的用于标识可用于游戏进行的设备交接的辅助客户端设备的选项的各种方法操作。所述方法开始于操作710,其中响应于从主客户端设备接收的进行游戏的请求,对主客户端设备建立游戏的游戏进行会话。主客户端设备可用来通过用户账户访问云游戏系统以标识用于游戏进行的游戏。云游戏系统中的服务器认证用户和游戏进行请求,并通过执行游戏实例用于将游戏的视频帧流式传输到主客户端设备来建立游戏进行会话。在流式传输到主客户端设备之前,可使用服务器上可用的编码器对视频帧进行加密。
接收请求以生成一个或多个辅助客户端设备的配置文件,如操作720所示。主客户端设备可使用由辅助客户端设备生成的信号和/或通过在辅助客户端设备内实现的一个或多个设备发现协议来发现辅助客户端设备。主客户端设备可通过向辅助客户端设备发送信号以建立与服务器的通信连接并被剖析来发起生成配置文件的请求。可选地,主客户端设备可向服务器发送带有被发现为主客户端设备本地的辅助客户端设备的设备标识符的信号,并且请求服务器建立与辅助客户端设备的通信连接并交换信息以生成相应的辅助客户端设备的配置文件。响应于所述信号,服务器使用建立的通信连接与辅助客户端设备交换信息,标识一个或多个设备属性,并使用相应的设备属性生成辅助客户端设备中的每一个的配置文件。配置文件中提供的信息用来限定辅助客户端设备以用于游戏的游戏进行。
如在操作730中所示,在游戏进行期间向主客户端提供交接选项。交接选项被配置来基于所生成的配置文件来标识有资格用于进行游戏的一个或多个辅助客户端设备。将交接选项展示在主客户端设备的用户界面上以用于用户选择。
如操作740所示,从主客户端设备接收对辅助客户端设备的用户选择。响应于接收到对辅助客户端设备的用户选择,暂停游戏进行并且由服务器保存游戏进行的游戏状态。暂停游戏进行导致暂停视频帧到主客户端设备的流式传输。响应于游戏的暂停,在辅助客户端设备上提供恢复选项以在辅助客户端设备上恢复游戏的进行。
如操作750所示,由服务器接收来自辅助客户端设备的对恢复请求的用户选择。响应于恢复请求,服务器被配置来访问保存的游戏的游戏状态并在辅助客户端设备上继续游戏的进行。恢复请求致使服务器将恢复的游戏的视频帧流式传输到辅助客户端设备。将辅助客户端设备指定为主客户端设备,使得流式视频帧可被引导到辅助客户端设备而不是主客户端设备。在最小等待时间的情况下以快速且无缝的方式执行设备交接,从而使得主客户端设备和辅助客户端设备的用户能够享受可比较或增强的游戏体验。
在一些实施方案中,取决于所选择的辅助客户端设备的设备属性,设备切换可允许用户具有比主客户端设备提供的更好的游戏体验、诸如更高的分辨率、更高的帧速率、更短的等待时间等。可选地,设备切换可提供继续游戏进行而游戏体验不发生显著变化的方式。例如,当响应于触发事件(诸如在主客户端设备中检测到的低电池电量)来实行设备切换时,可能是这种情况。
尽管以特定顺序描述了所述方法操作,但应当理解,可在操作之间执行其他内务处理操作,或者可调整操作以使得它们在略微不同的时间发生,或者可分布在系统中,所述系统允许处理操作以与所述处理相关联的各种时间间隔发生,只要叠加操作的处理以所需方式执行即可。
图8示出可用于提供对不同游戏的访问的信息服务提供商体系结构的实施方案。信息服务提供商(ISP)1070向地理上分散的并通过网络1086连接的用户1082传递大量信息服务。尽管已经参考提供对游戏的快速访问讨论了各种实施方案,但是可扩展实施方案以提供一种或多种类型的其他服务。例如,ISP可传递仅一种类型的服务(诸如游戏),或各种服务(诸如游戏、股票价格更新、广播媒体、新闻、体育、竞赛等)。此外,由每个ISP提供的服务可以是动态的,也就是说,可在任何时间点增加或减少服务。因此,向特定个人提供特定类型服务的ISP可随时间而改变。例如,当用户在她的家乡时,用户可由接近用户的ISP提供服务,并且当用户到不同城市旅游时,用户可由不同的ISP提供服务。家乡ISP将通过连接模块将所需信息和数据从用户的游戏或访问配置文件传输到新的ISP,使得用户信息“跟随”用户到新的城市,从而使数据更靠近用户且更容易访问。在另一个实施方案中,可在主ISP与服务器ISP之间建立主-服务器关系,所述主ISP管理用户的信息,而服务器ISP在主ISP的控制下与用户直接进行交互。在另一个实施方案中,当客户端在世界各地移动时,数据从一个ISP传送到另一个ISP(即,在分配给用户的数据中心的切换期间),并且这种传送可基于由相应ISP提供的服务的兼容性,以使在更好的位置向用户提供服务ISP是传递这些服务的ISP。
ISP 1070包括应用服务提供商(ASP)1072,所述应用服务提供商(ASP)1072通过网络向客户提供基于计算机的服务。使用ASP模型提供的软件有时也称为按需软件或软件即服务(SaaS)。提供对特定应用程序(诸如客户关系管理)的访问的简单形式是通过使用标准协议(诸如HTTP)。例如,应用软件驻留在供应商的系统上,并由用户通过使用HTML的web浏览器、或由供应商提供的专用客户端软件、或通过其他远程接口(诸如瘦客户端)访问。
在广泛的地理区域范围内传递的服务常常使用云计算。云计算是一种计算方式,其中通过因特网提供可动态扩展的和常常虚拟化的资源作为服务。用户无需是支持用户的“云”中的技术基础架构方面的专家。云计算可分为不同的服务,诸如基础架构即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务常常提供从web浏览器访问的在线共用商业应用,而软件和数据存储在服务器上。基于在计算机网络图中如何描绘因特网以及其隐藏的复杂基础架构的抽象概念,将术语云用作因特网(例如,使用服务器、存储和逻辑)的隐喻。
另外,ISP 1070包括游戏处理服务器(GaPS)1074,其由游戏客户端使用来玩单玩家和多玩家视频游戏。通过因特网玩的大多数视频游戏均通过连到游戏服务器的连接来操作。通常,游戏使用专用的服务器应用,所述服务器应用收集来自玩家的数据,并且将其分发给其他玩家。这比对等布置效率更高且更有效,但是其需要单独的服务器来托管服务器应用。在另一个实施方案中,GaPS建立玩家之间的通信,并且他们各自的游戏设备在不依赖于集中式GaPS的情况下交换信息。
专用的GaPS是独立于客户端运行的服务器。此类服务器通常在位于数据中心中的专用硬件上运行,从而提供更大的带宽和专用的处理能力。专用服务器是托管大多数基于PC的多玩家游戏的游戏服务器的优选方法。大型多玩家在线游戏在通常由软件公司(所述软件公司拥有游戏名称)托管的专用服务器上运行,从而允许所述专用服务器控制并更新内容。
广播处理服务器(BPS)1076向观众分发音频或视频信号。对非常小范围的观众的广播有时称为窄播。广播分发的最后一站是信号如何到达听众或观看者,并且如同无线电台或电视台,所述信号可从空中到达天线和接收方,或者可通过有线电视或有线广播(或“无线电缆”)经由电台或直接从网络到达。因特网还可给接收者带来无线电或电视(特别是利用多播),从而允许共享信号和带宽。过去,广播受地理区域限定,诸如国家广播或区域广播。然而,在快速因特网扩散的情况下,广播不再受地理位置限定,因为内容可到达几乎全世界的任何国家。
存储服务提供商(SSP)1078提供计算机存储空间和相关管理服务。SSP还提供定期备份和归档。通过提供存储作为服务,用户可根据需要订购更多的存储空间。另一个主要优点在于,SSP包括备份服务,并且用户在其计算机的硬盘驱动器发生故障时,将不会丢失他们的全部数据。此外,多个SSP可具有用户数据的全部或部分副本,从而允许用户独立于用户所处的位置或正用于访问数据的设备以高效方式访问数据。例如,当用户在移动中时,用户可访问家用计算机以及移动电话中的个人文件。
通信提供商1080提供到用户的连接性。一种通信提供商是提供对因特网的接入的因特网服务提供商(ISP)。ISP使用适于传递因特网协议数据报的数据传输技术连接其客户,所述数据传输技术诸如拨号上网、DSL、电缆调制解调器、光纤、无线或专用高速互连器。通信提供商还可提供消息服务,诸如电子邮件、即时消息和SMS发短信。另一种类型的通信提供商是网络服务提供商(NSP),所述网络服务提供商(NSP)通过提供对因特网的直接主干接入来销售带宽或网络接入。网络服务提供商可由电信公司、数据运营商、无线通信提供商、因特网服务提供商、提供高速因特网接入的有线电视经营商等组成。
数据交换1088使ISP 1070内部的若干模块互连,并且通过网络1086将这些模块连接到用户1082。数据交换1088可覆盖ISP 1070的全部模块均在附近的小区域,或者当不同模块在地理上分散时,可覆盖大的地理区域。例如,数据交换1088可包括数据中心的机柜内的快速千兆位以太网(或更快)、或洲际虚拟局域网(VLAN)。
用户1082利用客户端设备1084来访问远程服务,所述客户端设备1084包括至少CPU、存储器、显示器和I/O。客户端设备可以是PC、移动电话、上网本、平板计算机、游戏系统、PDA等。在一个实施方案中,ISP 1070识别客户端所使用的设备类型并调整所采用的通信方法。在其他情况下,客户端设备使用标准通信方法(诸如HTML)来访问ISP 1070。
图9是根据本发明的各种实施方案的游戏系统1400的框图。游戏系统1400被配置来通过网络1415将视频流提供到一个或多个客户端1410。所述网络与图1所示的网络200类似。游戏系统1400通常包括视频服务器系统1420和任选的游戏服务器1425。所述视频服务器系统1420被配置来以最低的服务质量向一个或多个客户端1410提供视频流。例如,视频服务器系统1420可接收改变视频游戏的状态或所述视频游戏内的视角的游戏命令,并且以最小的滞后时间向客户端1410提供立即反映这种变化的更新后的视频流。视频服务器系统1420可被配置来以多种可选视频格式(包括尚未定义的格式)提供视频流。另外,视频流可包括被配置用于以多种帧速率展示给用户的视频帧。典型的帧速率是每秒30帧、每秒60帧和每秒1420帧。但是本发明的可选实施方案中包括更高或更低的帧速率。
在本文中被单独称为1410A、1410B等的客户端1410可包括头戴式显示器、终端、个人计算机、游戏控制台、平板计算机、电话、机顶盒、电话亭、无线设备、数字板、独立设备、手持式玩游戏设备和/或类似设备。所描述的客户端类似于图1的客户端100-1至100-n。通常,客户端1410被配置来接收经编码的视频流,对视频流进行解码,并且将所得的视频展示给用户(例如游戏的玩家)。接收经编码的视频流和/或对视频流进行解码的过程通常包括将个别视频帧存储在客户端的接收缓冲器中。可在与客户端1410成一体的显示器上或在诸如监视器或电视机的单独设备上将视频流展示给用户。客户端1410任选地被配置来支持多于一个的游戏玩家。例如,游戏控制台可被配置来支持两个、三个、四个或更多个同时的玩家。这些玩家中的每一个可接收单独的视频流,或单个视频流可包括特别针对每个玩家而产生(例如,基于每个玩家的视角而产生)的帧的区。客户端1410任选地在地理上分散。游戏系统1400中所包括的客户端的数目可从一个或两个广泛变化到几千个、几万个或更多个。如本文所用,术语“游戏玩家”用来指代玩游戏的人,并且术语“玩游戏设备”用来指代用于玩游戏的设备。在一些实施方案中,玩游戏设备可指多个计算设备,其协作来向用户传递游戏体验。例如,游戏控制台和HMD可与视频服务器系统1420合作来传递通过HMD观察的游戏。在一个实施方案中,游戏控制台从视频服务器系统1420接收视频流,并且游戏控制台将视频流或对视频流的更新转发到HMD以用于渲染。
客户端1410被配置来通过网络1415(类似于图1的网络200)接收视频流。网络1415可以是任何类型的通信网络,其包括电话网络、因特网、无线网络、电力线网络、局域网、广域网、私有网络和/或类似网络。在典型的实施方案中,通过诸如TCP/IP或UDP/IP的标准协议来传达视频流。可选地,通过专有标准来传达视频流。
客户端1410的典型实例是个人计算机,所述个人计算机包括处理器、非易失性存储器、显示器、解码逻辑、网络通信能力以及输入设备。所述解码逻辑可包括硬件、固件和/或存储在计算机可读介质上的软件。用于解码(和编码)视频流的系统在本领域中是已知的,并且根据所使用的具体编码方案而变化。
客户端1410可能(但不需要)还包括被配置用于修改所接收的视频的系统。例如,客户端可被配置来执行进一步渲染,将一个视频图像叠加在另一个视频图像上,修剪视频图像,和/或类似操作。例如,客户端1410可被配置来接收各种类型的视频帧(诸如I帧、P帧和B帧),并且被配置来将这些帧处理成图像以用于显示给用户。在一些实施方案中,客户端1410的构件被配置来对视频流执行进一步渲染,阴影处理,转换成3-D或类似操作。客户端1410的构件任选地被配置来接收多于一个的音频或视频流。客户端1410的输入设备可包括:例如,单手游戏控制器、双手游戏控制器、姿势识别系统、注视识别系统、语音识别系统、键盘、操纵杆、指点设备、力反馈设备、运动和/或位置感测设备、鼠标、触摸屏、神经接口、摄像机、还未开发出的输入设备和/或类似设备。
客户端1410所接收的视频流(和任选的音频流)是由视频服务器系统1420生成并提供的。如在本文其他地方进一步描述的,此视频流包括视频帧(并且音频流包括音频帧)。视频帧(例如,它们包括呈适当数据结构的像素信息)被配置来有意义地构成显示给用户的图像。如本文所用,术语“视频帧”用来指代主要包括被配置来构成(例如实现)展示给用户的图像的信息的帧。本文中关于“视频帧”的大部分教义也可适用于“音频帧”。
客户端1410通常被配置来从用户接收输入。这些输入可包括游戏命令,所述游戏命令被配置来改变视频游戏的状态或以其他方式影响游戏进行。可使用输入设备接收游戏命令,并且/或者可由在客户端1410上执行的计算指令自动生成游戏命令。将所接收的游戏命令从客户端1410通过网络1415传达到视频服务器系统1420和/或游戏服务器1425。例如,在一些实施方案中,将游戏命令通过视频服务器系统1420传达到游戏服务器1425。在一些实施方案中,将游戏命令的单独副本从客户端1410传达到游戏服务器1425和视频服务器系统1420。游戏命令的传达任选地取决于命令的标识。通过用来向客户端1410A提供音频流或视频流的不同路由或通信信道,从客户端1410A任选地传达游戏命令。
游戏服务器1425任选地由不同于视频服务器系统1420的实体来操作。例如,游戏服务器1425可由多玩家游戏发行商来操作。在这个实例中,视频服务器系统1420任选地被游戏服务器1425视为客户端,并且任选地被配置来(从游戏服务器1425的角度看)表现为执行现有技术游戏引擎的现有技术客户端。视频服务器系统1420与游戏服务器1425之间的通信任选地通过网络1415发生。因此,游戏服务器1425可以是向多个客户端发送游戏状态信息的现有技术多玩家游戏服务器,所述客户端中的一个是视频服务器系统1420。视频服务器系统1420可被配置来同时与游戏服务器1425的多个实例通信。例如,视频服务器系统1420可被配置来向不同的用户提供多个不同的视频游戏。这些不同视频游戏中的每一个可由不同游戏服务器1425支持和/或由不同实体发行。在一些实施方案中,视频服务器系统1420的若干地理上分布式实例被配置来向多个不同用户提供游戏视频。视频服务器系统1420的这些实例中的每一个可与游戏服务器1425的同一实例通信。视频服务器系统1420与一个或多个游戏服务器1425之间的通信任选地通过专用通信信道发生。例如,视频服务器系统1420可通过高带宽信道连接到游戏服务器1425,所述高带宽信道专门用于这两个系统之间的通信。
视频服务器系统1420至少包括视频源1430、I/O设备1445、处理器1450和存储装置1455(包括非暂时性模拟和/或数字存储设备)。视频服务器系统1420可包括一个计算设备或者分布在多个计算设备之中。这些计算设备任选地通过诸如局域网的通信系统连接。
视频源1430被配置来提供视频流,例如,流式视频或形成运动图片的一系列视频帧。在一些实施方案中,视频源1430包括视频游戏引擎和渲染逻辑。视频游戏引擎被配置来从玩家接收游戏命令,并且基于所接收的命令维持视频游戏的状态的副本。此游戏状态包括游戏环境中的对象的定位,以及典型的视角。游戏状态还可包括对象的性质、图像、颜色和/或纹理。
游戏状态通常基于游戏规则以及游戏命令(诸如,移动、转动、攻击、设置焦点、互动、使用和/或类似命令)来维持。游戏引擎的部分任选地设置在游戏服务器1425内。游戏服务器1425可基于使用地理上分散的客户端从多个玩家接收的游戏命令来维持游戏状态的副本。在这些情况下,游戏服务器1425将游戏状态提供给视频源1430,其中存储游戏状态的副本并且执行渲染。游戏服务器1425可通过网络1415直接从客户端1410接收游戏命令,和/或可通过视频服务器系统1420接收游戏命令。
视频源1430通常包括渲染逻辑,例如硬件、固件和/或存储在计算机可读介质(诸如存储装置1455)上的软件。此渲染逻辑被配置来基于游戏状态创建视频流的视频帧。所述渲染逻辑的全部或部分任选地设置在图形处理单元(GPU)内。渲染逻辑通常包括被配置来用于确定对象之间的三维空间关系以及/或者用于基于游戏状态和视角来应用适当的纹理等的处理级。渲染逻辑产生原始视频,然后常常对原始视频进行编码,然后传达给客户端1410。例如,可根据Adobe
Figure BDA0003615871620000501
标准、.wav、H.264、H.263、On2、VP6、VC-1、WMA、Huffyuv、Lagarith、MPG-x.、Xvid.、FFmpeg、x264、VP6-8、realvideo、mp3或类似标准对原始视频进行编码。编码过程产生视频流,任选地将所述视频流打包以便传递到远程装置上的解码器。视频流由帧大小和帧速率来表征。典型的帧大小包括800x600、1280x720(例如720p)、1024x768,但是可使用任何其他帧大小。帧速率是每秒的视频帧数目。视频流可包括不同类型的视频帧。例如,H.264标准包括“P”帧和“I”帧。I帧包括用于刷新显示设备上的全部宏块/像素的信息,而P帧包括用于刷新所述宏块/像素的子集的信息。P帧的数据大小通常小于I帧。如本文所用,术语“帧大小”意图指代帧内的像素数。术语“帧数据大小”用来指代存储所述帧所需的字节数。
在可选实施方案中,视频源1430包括诸如摄像机的视频录制设备。此摄像机可用来生成可包括在计算机游戏的视频流中的延迟视频或实况视频。所得的视频流任选地包括所渲染的图像与使用静态摄像机或视频摄像机录制的图像两者。视频源1430还可包括被配置来存储将要包括在视频流中的先前录制视频的存储设备。视频源1430还可包括:被配置来检测对象(例如,人)的运动或定位的运动或定位传感设备;以及被配置来基于检测到的运动和/或定位来确定游戏状态或产生视频的逻辑。
视频源1430任选地被配置来提供被配置成放在其他视频上的叠加。例如,这些叠加可包括命令界面、登入指令、发给游戏玩家的消息、其他游戏玩家的图像、其他游戏玩家的视频反馈(例如网络摄像机视频)。在客户端1410A包括触摸屏界面或注视检测界面的实施方案中,所述叠加可包括虚拟的键盘、操纵杆、触摸板和/或类似设备。在叠加的一个实例中,将玩家的语音叠加在音频流上。视频源1430任选地还包括一个或多个音频源。
在视频服务器系统1420被配置来基于来自多于一个的玩家的输入来维持游戏状态的实施方案中,每个玩家可具有不同视点,所述视点包括视角的位置和方向。视频源1430任选地被配置来基于玩家的视角向每个玩家提供单独的视频流。此外,视频源1430可被配置来向客户端1410中的每一个提供不同的帧大小、帧数据大小和/或编码。视频源1430任选地被配置来提供3-D视频。
I/O设备1445被配置用于视频服务器系统1420,用来发送和/或接收信息,所述信息诸如:视频、命令、对信息的请求、游戏状态、注视信息、设备运动、设备位置、用户运动、客户端身份、玩家身份、游戏命令、安全信息、音频和/或类似信息。I/O设备1445通常包括诸如网卡或调制解调器的通信硬件。I/O设备1445被配置来与游戏服务器1425、网络1415和/或客户端1410通信。
处理器1450被配置来执行本文所讨论的视频服务器系统1420的各种组件内所包括的逻辑(例如软件)。例如,处理器1450可编程有软件指令,以便执行视频源1430、游戏服务器1425和/或客户端限定器1460的功能。视频服务器系统1420任选地包括处理器1450的多于一个的实例。处理器1450还可编程有软件指令,以便执行视频服务器系统1420所接收的命令或协调本文所讨论的游戏系统1400的各种元件的操作。处理器1450可包括一个或多个硬件设备。处理器1450是电子处理器。
存储装置1455包括非暂时性模拟和/或数字存储设备。例如,存储装置1455可包括被配置来存储视频帧的模拟存储设备。存储装置1455可包括计算机可读数字存储装置,例如,硬盘驱动器、光盘驱动器或固态存储装置。存储装置1455被配置来(例如以适当的数据结构或文件系统的方式)存储视频帧、人工帧、包括视频帧与人工帧两者的视频流、音频帧、音频流和/或类似物。存储装置1455任选地分布在多个设备之中。在一些实施方案中,存储装置1455被配置来存储本文中其他地方所讨论的视频源1430的软件组件。这些组件可在需要时随时可预配置的格式来存储。
视频服务器系统1420任选地还包括客户端限定器1460。客户端限定器1460被配置用于远程确定客户端(诸如客户端1410A或1410B)的能力。这些能力可包括客户端1410A本身的能力以及客户端1410A与视频服务器系统1420之间的一个或多个通信信道的能力。例如,客户端限定器1460可被配置来测试通过网络1415的通信信道。
客户端限定器1460可手动或自动地确定(例如,发现)客户端1410A的能力。手动确定包括与客户端1410A的用户通信以及要求用户提供能力。例如,在一些实施方案中,客户端限定器1460被配置来在客户端1410A的浏览器内显示图像、文字和/或类似物。在一个实施方案中,客户端1410A是包括浏览器的HMD。在另一个实施方案中,客户端1410A是具有浏览器的游戏控制台,所述浏览器可显示在HMD上。所显示的对象请求用户输入客户端1410A的信息,诸如操作系统、处理器、视频解码器类型、网络连接类型、显示器分辨率等。向客户端限定器1460传达回用户所输入的信息。
自动确定可例如通过在客户端1410A上执行代理程序和/或通过向客户端1410A发送测试视频来进行。所述代理程序可包括嵌入网页中的或作为加载项安装的计算指令,诸如java脚本。代理程序任选地由客户端限定器1460提供。在各种实施方案中,代理程序可发现:客户端1410A的处理能力、客户端1410A的解码和显示能力、客户端1410A与视频服务器系统1420之间的通信信道的滞后时间可靠性和带宽、客户端1410A的显示器类型、客户端1410A上存在的防火墙、客户端1410A的硬件、在客户端1410A上执行的软件、客户端1410A内的注册表项和/或类似物。
客户端限定器1460包括硬件、固件和/或存储在计算机可读介质上的软件。客户端限定器1460任选地放置在与视频服务器系统1420的一个或多个其他元件分开的计算设备上。例如,在一些实施方案中,客户端限定器1460被配置来确定客户端1410与视频服务器系统1420的多于一个的实例之间的通信信道的特性。在这些实施方案中,客户端限定器所发现的信息可用来确定视频服务器系统1420的哪个实例最适合于向客户端1410中的一个传达流式视频。
考虑到以上实施方案,应当理解,本发明可采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作包括需要对物理量进行物理操纵的操作。本文所描述的形成本发明的一部分的任何操作都是有用的机器操作。本发明还涉及用于执行这些操作的设备或装置。所述装置可出于所要求的目的专门构造而成,或所述装置可以是由存储在计算机中的计算机程序来选择性地激活或配置的通用计算机。具体地,各种通用机器可与根据本文的教义所编写的计算机程序一起使用,或者可更方便地构造更专门的装置来执行所要求的操作。
以上描述的本发明可通过其他计算机系统配置来实践,包括手持式设备、微处理器系统、基于微处理器的或可编程的消费型电子产品、小型计算机、大型计算机等。本发明还可在其中由通过通信网络链接的远程处理设备执行任务的分布式计算环境中实践。
本发明也可体现为计算机可读介质上的计算机可读编程代码。可选地,可使用以上描述的数据交换互连器从服务器下载计算机可读编程代码。计算机可读介质是可存储数据的任何数据存储设备(包括电磁波载体),所述数据随后可由计算机系统读取。计算机可读介质的实例包括硬盘驱动器、网络附加存储装置(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其他光学和非光学数据存储设备。所述计算机可读介质也可分布在网络联接计算机系统上,使得计算机可读代码以分布式方式存储和执行。
尽管出于理解的清晰性目的略微详细地描述了前述发明,但是应当明白,可在所附权利要求的范围内实践某些变化和修改。因此,本发明的实施方案应被认为是说明性的而非限制性的,并且本发明不限于本文所给出的细节,而是可在所附权利要求的范围和等效内容内进行修改。

Claims (19)

1.一种由云游戏系统的服务器执行的方法,包括:
响应于为在主客户端处启动的游戏选择游戏,为主客户端设备建立所述游戏的游戏会话,在所述服务器上执行的所述游戏的视频帧根据所述主客户端设备的设备属性被格式化并流式传输到所述主客户端设备;
为所述主客户端设备的本地的辅助客户端设备生成配置文件,其中所述配置文件标识所述辅助客户端设备的设备属性;
评估所述辅助客户端设备的设备属性以确定所述辅助客户端设备是否有资格玩所述游戏;
当所述辅助客户端设备不具备玩所述游戏的资格时,向所述辅助客户端设备提供服务,其中选择所提供的服务以使所述辅助客户端设备有资格玩所述游戏;
在所述游戏进行期间在所述主客户端设备处提供具有交接选项的用户界面,所述用户界面标识所述辅助客户端设备,其中所述交接选项允许在所述用户界面处选择所述辅助客户端设备来玩所述游戏;以及
响应于接收到在所述用户界面处对所述辅助客户端设备的选择,将所述游戏的视频帧的流从所述主客户端设备切换到所述辅助客户端设备,所述选择是从所述主客户端设备接收到的。
2.根据权利要求1所述的方法,其中,所述辅助客户端设备的配置文件是响应于在所述游戏会话期间在所述主客户端设备处检测到的触发事件而动态生成的。
3.根据权利要求2所述的方法,其中,所述触发事件能够由所述主客户端设备响应于在所述主客户端设备处检测到用于玩所述游戏的资源不足而发起。
4.根据权利要求1所述的方法,其中,所述辅助客户端设备的配置文件是响应于由所述辅助客户端设备发起的信号而动态生成的,所述信号是响应于在所述辅助客户端设备附近检测到所述主客户端设备而发起的。
5.根据权利要求1所述的方法,其中,所述辅助客户端设备继续进行所述游戏的游戏会话,所述辅助客户端设备在所述切换之后成为主客户端设备。
6.根据权利要求1所述的方法,还包括:交接用于提供输入以驱动所述游戏的交互的一个或多个输入设备,所述交接是通过将所述一个或多个输入设备从所述主客户端设备自动断开连接、并自动地将所述一个或多个输入设备连接到所述辅助客户端设备来完成的。
7.根据权利要求6所述的方法,其中,所述一个或多个输入设备是无线输入设备。
8.根据权利要求6所述的方法,其中,所述输入设备之一是无线控制器。
9.根据权利要求1所述的方法,其中,所述辅助客户端设备是基于与所述主客户端设备和所述辅助客户端设备相关联的位置信息来识别的。
10.根据权利要求1所述的方法,其中评估所述设备属性包括将所述辅助客户端设备的设备属性与玩所述游戏所需的资源需求进行比较。
11.根据权利要求1所述的方法,其中,所述切换视频帧的流还包括:根据在所述辅助客户端设备的配置文件中识别的设备属性来格式化流式传输到所述辅助客户端设备的视频帧,游戏期间在所述辅助客户端设备处提供的输入被解释为影响所述游戏的结果。
12.根据权利要求11所述的方法,其中格式化流式传输到所述辅助客户端设备的视频帧包括:设置帧速率、或帧大小、或帧数据大小、或所述视频帧中的图像的分辨率、或比特率,或以上任何两种或多种的组合。
13.根据权利要求1所述的方法,其中,切换视频帧的流包括:在所述主客户端设备处暂停所述游戏,以及在为游戏选择的特定辅客户端设备处开始所述游戏。
14.一种云游戏系统,包括:
服务器,被配置为执行多个游戏,所述服务器包括,
游戏执行引擎,被配置为识别选择在与用户账户相关联的第一客户端设备处玩的游戏的游戏代码,以及执行所述游戏代码以生成所述游戏的视频帧的流;
客户端设备剖析模块,被配置为,
与所述第一客户端设备和在所述第一客户端设备附近的第二客户端设备建立通信连接,
查询所述第一客户端设备和所述第二客户端设备的设备配置文件以识别所述第一客户端设备、所述第二客户端设备的设备属性,所述设备属性被用于格式化流式传输到所述第一客户端设备的视频帧;
评估所述第二客户端设备的设备属性以确定所述第二客户端设备是否有资格玩所述游戏;
当所述第二客户端设备不具备玩所述游戏的资格时,向所述第二客户端设备提供服务,其中选择所提供的服务以使所述第二客户端设备有资格玩所述游戏;以及
交接管理器,被配置为,
将视频帧的流从所述第一客户端设备切换到所述第二客户端设备,其中所述第二客户端设备的设备属性被用于设置流式传输所述游戏的游戏视频帧的格式。
15.根据权利要求14所述的云游戏系统,其中,所述客户端设备剖析模块响应于在所述云游戏系统处接收到的信号评估所述第二客户端设备的设备属性,所述信号源自所述第一客户端设备或所述第二客户端设备。
16.根据权利要求14所述的云游戏系统,其中,所述交接管理器被配置为,
将暂停信号传送到暂停管理器以停止将所述视频帧流式传输到所述第一客户端设备;以及
将恢复信号传送到恢复管理器以开始将所述游戏的视频帧流式传输到所述第二客户端设备。
17.根据权利要求16所述的云游戏系统,其中,所述交接管理器被配置为响应于在所述第一客户端设备处检测到的触发事件,或者响应于来自所述第二客户端设备的信号,传送所述暂停信号和所述恢复信号。
18.根据权利要求16所述的云游戏系统,其中,所述游戏执行引擎被配置为与状态数据管理器通信,以基于所述游戏的游戏状态在所述第二客户端设备处接收将从其处恢复所述游戏的点。
19.根据权利要求14所述的云游戏系统,其中,所述交接管理器被配置为响应于所述视频帧的流式传输中的切换,将所述游戏执行引擎处的设备标识符从第一客户端设备标识符更新为第二客户端设备标识符。
CN202210446813.8A 2016-04-28 2017-04-20 云游戏设备交接 Pending CN115228077A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/141,799 US10238965B2 (en) 2016-04-28 2016-04-28 Cloud gaming device handover
US15/141,799 2016-04-28
PCT/US2017/028571 WO2017189321A1 (en) 2016-04-28 2017-04-20 Cloud gaming device handover
CN201780033048.4A CN109562296B (zh) 2016-04-28 2017-04-20 云游戏设备交接

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780033048.4A Division CN109562296B (zh) 2016-04-28 2017-04-20 云游戏设备交接

Publications (1)

Publication Number Publication Date
CN115228077A true CN115228077A (zh) 2022-10-25

Family

ID=58664818

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210446813.8A Pending CN115228077A (zh) 2016-04-28 2017-04-20 云游戏设备交接
CN201780033048.4A Active CN109562296B (zh) 2016-04-28 2017-04-20 云游戏设备交接

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780033048.4A Active CN109562296B (zh) 2016-04-28 2017-04-20 云游戏设备交接

Country Status (5)

Country Link
US (5) US10238965B2 (zh)
EP (1) EP3448537B1 (zh)
JP (1) JP6972015B2 (zh)
CN (2) CN115228077A (zh)
WO (1) WO2017189321A1 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015145834A1 (ja) 2014-03-24 2015-10-01 株式会社スクウェア・エニックス インタラクティブシステム、端末装置、サーバ装置、制御方法、プログラム、及び記録媒体
US9795879B2 (en) * 2014-12-31 2017-10-24 Sony Interactive Entertainment America Llc Game state save, transfer and resume for cloud gaming
US10484459B2 (en) * 2015-09-03 2019-11-19 Nvidia Corporation Dynamically providing host input control for streaming applications
US10574717B1 (en) * 2016-06-29 2020-02-25 Amazon Technologies, Inc. Network-adaptive live media encoding system
US10567451B2 (en) * 2016-10-11 2020-02-18 Lg Electronics Inc. Method of providing Automotive Miracast and apparatus therefor
US10516759B2 (en) * 2016-11-14 2019-12-24 Dell Products, Lp System and method for centralized management of software services
US10265626B2 (en) * 2017-03-08 2019-04-23 Sony Interactive Entertainment LLC System and method for making free-to-play and activity suggestions
WO2018163378A1 (ja) * 2017-03-09 2018-09-13 ヤマハ株式会社 操作装置、コマンド処理装置、及びコンテンツ再生システム
US10491666B2 (en) * 2017-04-03 2019-11-26 Sony Interactive Entertainment America Llc Systems and methods for using a distributed game engine
US10582159B2 (en) * 2017-11-06 2020-03-03 Blue Jeans Network, Inc. System and methods for aggregated meeting joining for video conferences with built in resilience to allow for a common meeting experience
US11477516B2 (en) * 2018-04-13 2022-10-18 Koji Yoden Services over wireless communication with high flexibility and efficiency
US11077365B2 (en) 2018-06-27 2021-08-03 Niantic, Inc. Low latency datagram-responsive computer network protocol
US10599486B1 (en) * 2018-09-21 2020-03-24 Citrix Systems, Inc. Systems and methods for intercepting and enhancing SaaS application calls via embedded browser
CN112042262A (zh) * 2018-10-18 2020-12-04 惠普发展公司,有限责任合伙企业 用于无线访问边缘计算资源的扩展坞
US11470137B2 (en) * 2019-01-08 2022-10-11 Rainway, Inc. Method and system for encoding game video and audio remotely streamed to a remote computer system
WO2020163635A1 (en) * 2019-02-06 2020-08-13 Apple Inc. Enabling interactive service for cloud rendering gaming in 5g systems
JP7185068B2 (ja) 2019-02-25 2022-12-06 ナイアンティック, インコーポレイテッド 拡張現実モバイルエッジコンピュータ
US10958705B2 (en) * 2019-02-27 2021-03-23 Citrix Systems, Inc. Client computing device providing end-to-end quality of service (QoS) control for software as a service (SaaS) sessions and related methods
EP3942810A1 (en) * 2019-03-18 2022-01-26 Google LLC Frame overlay for encoding artifacts
US11020658B2 (en) 2019-03-20 2021-06-01 Electronic Arts Inc. System for testing command execution latency within a video game
US10963365B2 (en) * 2019-03-20 2021-03-30 Electronic Arts Inc. System for testing command execution latency within an application
TWI755742B (zh) * 2019-05-30 2022-02-21 聯發科技股份有限公司 客戶側延遲改善方法、主處理器以及處理電路
US11065550B2 (en) * 2019-07-30 2021-07-20 Sony Interactive Entertainment Inc. Local game execution for spectating and spectator game play
US11695722B2 (en) 2019-07-30 2023-07-04 Sling Media L.L.C. Devices, systems and processes for providing geo-located and content-to-comment synchronized user circles
US11395963B2 (en) 2019-10-01 2022-07-26 Sony Interactive Entertainment Inc. High speed scan-out of server display buffer for cloud gaming applications
US11524230B2 (en) 2019-10-01 2022-12-13 Sony Interactive Entertainment Inc. Encoder tuning to improve tradeoffs between latency and video quality in cloud gaming applications
US11110349B2 (en) 2019-10-01 2021-09-07 Sony Interactive Entertainment Inc. Dynamic client buffering and usage of received video frames for cloud gaming
US11420118B2 (en) 2019-10-01 2022-08-23 Sony Interactive Entertainment Inc. Overlapping encode and transmit at the server
US11539960B2 (en) 2019-10-01 2022-12-27 Sony Interactive Entertainment Inc. Game application providing scene change hint for encoding at a cloud gaming server
CN112691363A (zh) * 2019-10-22 2021-04-23 上海华为技术有限公司 一种云游戏跨终端切换的方法和相关装置
US11565177B2 (en) * 2019-11-06 2023-01-31 Sony Interactive Entertainment Inc. Edge compute proxy for cloud gaming and 5G
US11731043B2 (en) * 2019-11-19 2023-08-22 Sony Interactive Entertainment Inc. Adaptive graphics for cloud gaming
CN113018868B (zh) * 2019-12-09 2023-02-10 华为技术有限公司 云游戏登录方法、装置和系统
CN111818394A (zh) * 2019-12-11 2020-10-23 厦门雅基软件有限公司 云游戏直播方法、客户端及计算机可读存储介质
WO2021124291A1 (en) 2019-12-20 2021-06-24 Niantic, Inc. Data hierarchy protocol for data transmission pathway selection
US11838450B2 (en) 2020-02-26 2023-12-05 Dish Network L.L.C. Devices, systems and processes for facilitating watch parties
US11389720B2 (en) 2020-02-26 2022-07-19 Microsoft Technology Licensing, Llc Transferring control elements for a gaming session between devices
JP7314090B2 (ja) * 2020-03-27 2023-07-25 任天堂株式会社 ゲーム装置、情報処理プログラム、および情報処理方法
CN111569417A (zh) * 2020-04-30 2020-08-25 北京视博云信息技术有限公司 一种云游戏的外设数据传输方法及系统
CN111586164B (zh) * 2020-05-06 2023-08-15 上海达龙信息科技有限公司 远程云桌面的分享、接替、信息处理方法及电子设备
US11606597B2 (en) 2020-09-03 2023-03-14 Dish Network Technologies India Private Limited Devices, systems, and processes for facilitating live and recorded content watch parties
US20230405454A1 (en) * 2020-10-29 2023-12-21 Chris Phillips Multisession remote game rendering
WO2022093238A1 (en) 2020-10-29 2022-05-05 Telefonaktiebolaget Lm Ericsson (Publ) Managing network slice bandwidth for remote game sessions
WO2022118534A1 (ja) * 2020-12-01 2022-06-09 ソニーグループ株式会社 ゲームサーバおよびクラウドゲームシステム
CN112473133A (zh) * 2020-12-16 2021-03-12 杭州雾联科技有限公司 一种云游戏响应的方法、系统、设备及可读存储介质
EP4263011A1 (en) * 2020-12-17 2023-10-25 Telefonaktiebolaget LM Ericsson (publ) Selecting a processing unit to serve a user equipment (ue)
CN114745559B (zh) * 2021-01-08 2023-09-05 武汉斗鱼网络科技有限公司 直播间云游戏的互动控制方法、系统及相关设备
US11165789B1 (en) * 2021-01-28 2021-11-02 Zoom Video Communications, Inc. Application interaction movement between clients
KR20220148720A (ko) * 2021-04-27 2022-11-07 센스타임 인터내셔널 피티이. 리미티드. 게임 상태들을 처리하기 위한 방법들, 장치들, 디바이스들 및 저장 매체들
US11547932B2 (en) * 2021-05-25 2023-01-10 Microsoft Technology Licensing, Llc Companion device aided game controller pairing
CN113398568B (zh) * 2021-06-30 2023-04-11 广州方硅信息技术有限公司 数据传输方法、装置、电子设备及可读存储介质
US11758245B2 (en) 2021-07-15 2023-09-12 Dish Network L.L.C. Interactive media events
US20230088415A1 (en) * 2021-09-23 2023-03-23 Armis Security Ltd. Techniques for enriching device profiles and mitigating cybersecurity threats using enriched device profiles
US20230144610A1 (en) * 2021-11-11 2023-05-11 Aristocrat Technologies, Inc. Modular hardware and software platform for selectively providing environmental data of a gaming venue to subscribers
US11974005B2 (en) 2021-12-07 2024-04-30 Dish Network L.L.C. Cell phone content watch parties
US11849171B2 (en) 2021-12-07 2023-12-19 Dish Network L.L.C. Deepfake content watch parties
US20230310995A1 (en) * 2022-03-31 2023-10-05 Advanced Micro Devices, Inc. Detecting personal-space violations in artificial intelligence based non-player characters
US11973999B2 (en) * 2022-08-19 2024-04-30 Dish Network L.L.C. User chosen watch parties
US20240115940A1 (en) * 2022-10-07 2024-04-11 Sony Interactive Entertainment Inc. Text message or app fallback during network failure in a video game

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6951516B1 (en) * 2001-08-21 2005-10-04 Nintendo Co., Ltd. Method and apparatus for multi-user communications using discrete video game platforms
US9262743B2 (en) 2003-12-10 2016-02-16 Zerotouchdigital, Inc. Method and apparatus for sociable computing in ad-hoc and configured peer-to-peer networks
US20070173325A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Join in-progress on-line game session
US8221243B2 (en) * 2006-02-14 2012-07-17 Leviathan Entertainment, Llc Software-based system that manages interactions among video game characters
US8075404B2 (en) * 2006-07-03 2011-12-13 Microsoft Corporation Multi-player gaming
US20090063690A1 (en) 2007-09-05 2009-03-05 Motorola, Inc. Continuing an application session using a different device from one that originally initiated the application session while preserving session while preserving session state and data
US9211473B2 (en) * 2008-12-15 2015-12-15 Sony Computer Entertainment America Llc Program mode transition
US9656160B2 (en) 2007-12-15 2017-05-23 Sony Interactive Entertainment America Llc Massive multi-player online (MMO) games server and methods for executing the same
US9723319B1 (en) 2009-06-01 2017-08-01 Sony Interactive Entertainment America Llc Differentiation for achieving buffered decoding and bufferless decoding
US8556719B1 (en) * 2011-06-30 2013-10-15 Zynga Inc. Linking virtual items to real-world items
EP2574382B1 (en) * 2011-09-29 2019-05-15 Sony Interactive Entertainment Europe Limited Video game assistance system and method
US20130144983A1 (en) * 2011-12-01 2013-06-06 Digitial Keystone, Inc. Methods and apparatuses for cdn shaping
JP5248689B1 (ja) * 2012-02-17 2013-07-31 株式会社コナミデジタルエンタテインメント ゲーム制御装置、プログラム、ゲーム制御方法、ゲーム制御システム
US8850037B2 (en) 2012-05-24 2014-09-30 Fmr Llc Communication session transfer between devices
CN103685356B (zh) * 2012-09-05 2018-08-28 天津米游科技有限公司 基于云计算的游戏运行实现方法
US9561437B2 (en) * 2012-09-17 2017-02-07 King.Com Ltd. Method for implementing a computer game
US9352226B2 (en) * 2012-12-21 2016-05-31 Sony Interactive Entertainment America Llc Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR20190090077A (ko) * 2012-12-21 2019-07-31 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
US9731206B2 (en) * 2013-02-19 2017-08-15 Amazon Technologies, Inc. Delegating video game tasks via a sharing service
CN104093046B (zh) * 2013-04-01 2019-02-15 天津米游科技有限公司 一种基于云游戏的视频插播系统及方法
US9339733B2 (en) * 2013-05-22 2016-05-17 Wesley John Boudville Barcode-based methods to enhance mobile multiplayer games
JP6400280B2 (ja) * 2013-08-12 2018-10-03 株式会社ソニー・インタラクティブエンタテインメント 情報処理システムおよび情報処理装置
US9694280B2 (en) 2013-11-15 2017-07-04 Sony Interactive Entertainment America Llc Systems and methods for providing cross platform access to interactive content
US9729591B2 (en) * 2014-06-24 2017-08-08 Yahoo Holdings, Inc. Gestures for sharing content between multiple devices
JP6526826B2 (ja) * 2015-03-06 2019-06-05 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー クラウド上のアプリケーションのための予測的なインスタントプレイ技術
US9993729B2 (en) * 2015-08-19 2018-06-12 Sony Interactive Entertainment America Llc User save data management in cloud gaming
US10530824B2 (en) * 2015-09-25 2020-01-07 Microsoft Technology Licensing, Llc Real-time end-to-end latency monitoring
US11420114B2 (en) * 2015-09-30 2022-08-23 Sony Interactive Entertainment LLC Systems and methods for enabling time-shifted coaching for cloud gaming systems
US10610779B2 (en) * 2017-06-19 2020-04-07 Sony Interactive Entertainment LLC Methods and systems for scheduling game play of a video game
EP3600581B1 (en) * 2017-10-10 2024-02-21 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
EP3773953B1 (en) * 2018-04-02 2024-06-19 Google LLC Methods, devices, and systems for interactive cloud gaming
JP7073494B2 (ja) * 2018-04-10 2022-05-23 グーグル エルエルシー ゲームレンダリングにおけるメモリ管理
US11265297B2 (en) * 2019-07-03 2022-03-01 Microsoft Technology Licensing, Llc Securely sharing context between web frames
US11389720B2 (en) * 2020-02-26 2022-07-19 Microsoft Technology Licensing, Llc Transferring control elements for a gaming session between devices
US20220070236A1 (en) * 2020-08-28 2022-03-03 Tmrw Foundation Ip S. À R.L. Graphical representation-based user authentication system and method
US20220070235A1 (en) * 2020-08-28 2022-03-03 Tmrw Foundation Ip S.Àr.L. System and method enabling interactions in virtual environments with virtual presence

Also Published As

Publication number Publication date
US11285386B2 (en) 2022-03-29
US11717749B2 (en) 2023-08-08
US20170312626A1 (en) 2017-11-02
US20190217191A1 (en) 2019-07-18
US20230381641A1 (en) 2023-11-30
WO2017189321A1 (en) 2017-11-02
JP6972015B2 (ja) 2021-11-24
JP2019514536A (ja) 2019-06-06
US10898800B2 (en) 2021-01-26
WO2017189321A8 (en) 2018-11-01
US20200206614A1 (en) 2020-07-02
CN109562296A (zh) 2019-04-02
US20220184494A1 (en) 2022-06-16
EP3448537B1 (en) 2021-11-24
CN109562296B (zh) 2022-05-13
EP3448537A1 (en) 2019-03-06
US10238965B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
CN109562296B (zh) 云游戏设备交接
US11213744B2 (en) User save data transfer management for fast initiation of cloud video game
JP7271617B2 (ja) アプリケーション内の行動に基づく個人化されたユーザインターフェース
CN109906107B (zh) 基于浏览器的云游戏
TWI639457B (zh) 利用連接品質歷史以使使用者體驗最佳化之方法及使用該方法之系統
EP3662980B1 (en) User save data management in cloud gaming
US11497990B2 (en) Crowd sourced cloud gaming using peer-to-peer streaming
US9954718B1 (en) Remote execution of applications over a dispersed network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination