CN109152955B - 云游戏中的用户保存数据管理方法 - Google Patents
云游戏中的用户保存数据管理方法 Download PDFInfo
- Publication number
- CN109152955B CN109152955B CN201680082521.3A CN201680082521A CN109152955B CN 109152955 B CN109152955 B CN 109152955B CN 201680082521 A CN201680082521 A CN 201680082521A CN 109152955 B CN109152955 B CN 109152955B
- Authority
- CN
- China
- Prior art keywords
- game
- cloud
- data
- user
- video game
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000013523 data management Methods 0.000 title claims description 6
- 230000002452 interceptive effect Effects 0.000 claims abstract description 49
- 230000000977 initiatory effect Effects 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 30
- 238000012546 transfer Methods 0.000 claims abstract description 20
- 238000012360 testing method Methods 0.000 claims description 43
- 238000007906 compression Methods 0.000 claims description 3
- 230000006835 compression Effects 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 description 44
- 238000009877 rendering Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 21
- 230000007704 transition Effects 0.000 description 16
- 230000000694 effects Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 13
- 238000013500 data storage Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 10
- 230000005012 migration Effects 0.000 description 9
- 238000013508 migration Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000036316 preload Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/48—Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/49—Saving the game status; Pausing or ending the game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供一种方法,其包括:由云游戏服务器计算机通过网络接收来自客户端装置的启动云视频游戏的游戏操作的请求;响应于所述请求,将所述客户端装置指派给第一数据中心,从所述第一数据中心流式传输所述云视频游戏的所述游戏操作;响应于所述请求,通过所述网络启动用户保存数据从第二数据中心向所述第一数据中心的传送;在所述第一数据中心处的云游戏机上加载所述云视频游戏,所述云视频游戏的所述加载包括通用保存数据的加载;使用所述通用保存数据启动所述云视频游戏的交互式游戏操作;在所述交互式游戏操作期间,完成所述用户保存数据向所述第一数据中心的所述传送;应用所述用户保存数据以更新所述云视频游戏的所述执行。
Description
技术领域
本公开涉及用于云游戏中的用户保存数据管理的系统和方法,并且更具体来说,涉及云视频游戏的游戏操作(gameplay)的启动与云视频游戏的用户保存数据的迁移同时进行。
背景技术
相关技术描述
当前快速发展的技术领域是云游戏领域。用户能够通过诸如互联网的网络访问云游戏站点上的若干游戏,并开始交互/玩游戏。为了选择用于玩游戏的游戏,用户在云游戏站点上访问他/她的帐户。向用户提供了可供用户账户用于玩游戏的游戏列表。例如,当用户选择用于观看和/或玩游戏的游戏时,用户将必须等到例如将用户帐户指派给云游戏机、加载游戏代码、初始化图形引擎、加载图形、上传游戏和用户设置等,之后他才能够访问游戏从而玩游戏。此外,由于视频游戏的初始内容的进度大体上是线性过程,因此在随后的内容被加载、执行并流式传输到用户客户端装置时,用户将需要在视频游戏的初始内容中的每个选择点或其他断点之后等待。对于图形密集的游戏来说,用于访问和播放选择游戏的等待时间可能更长。等待可能导致用户失去对游戏的兴趣并停止与游戏站点进行交互,从而造成游戏开发者/游戏站点所有者的潜在损失。
此外,用户的视频游戏的保存数据可能需要从先前数据中心迁移到当前指派的数据中心。由于用户的保存数据可能相当广泛,因此此过程可导致游戏操作启动的显著延迟。
本公开的实施方案正是在这样的背景下产生。
发明内容
本公开的实现方式提供了用于提供基于云的视频游戏的方法和系统,并且更具体来说,提供对用户保存数据的管理以允许游戏操作的快速启动与云视频游戏的用户保存数据向数据中心的传送同时进行,从所述数据中心流式传输游戏操作。
当用户玩云视频游戏时,生成可包括视频游戏的任何用户特定数据的用户保存数据。此用户保存数据可相当广泛,并且用户保存数据从云游戏架构中的一个数据中心传送到另一数据中心可需要大量时间。如果用户未被指派给他/她的给定视频游戏的用户保存数据存储所在的数据中心,则此传输可能导致对给定视频游戏的游戏操作的启动的不期望延迟。因此,本公开的实现方式提供加载通用游戏数据来代替用户保存数据,以允许用户启动游戏操作与用户保存数据从其先前位置向当前数据中心位置的传送同时进行,从所述当前数据中心位置流式传输游戏操作。当用户保存数据的传送完成时,或者当其分阶段完成时,用户保存数据被整合到视频游戏的执行中。
根据一些实现方式,提供一种方法,其包括:由云游戏服务器计算机通过网络接收来自客户端装置的启动云视频游戏的游戏操作的请求;响应于所述请求,将所述客户端装置指派给第一数据中心,从所述第一数据中心流式传输所述云视频游戏的所述游戏操作;响应于所述请求,通过所述网络启动用于所述云视频游戏且和与所述客户端装置相关联的用户账户相关联的用户保存数据从第二数据中心向所述第一数据中心的传送;在所述第一数据中心处的云游戏机上加载所述云视频游戏,所述云视频游戏的所述加载包括通用保存数据的加载;通过将由所述云游戏机对所述云视频游戏的所述执行所生成的视频数据流式传输到所述客户端装置,以及从客户端装置接收输入数据以驱动所述云视频游戏的所述执行,来使用所述通用保存数据启动所述云视频游戏的交互式游戏操作;在所述交互式游戏操作期间,完成所述用户保存数据向所述第一数据中心的传送;应用所述用户保存数据以更新所述云视频游戏的所述执行。
在一些实现方式中,所述通用保存数据包括由所述云视频游戏的所述执行所定义的一个或多个变量的第一值,所述通用保存数据不与特定用户相关联。
在一些实现方式中,所述用户保存数据包括一个或多个变量的第二值,所述第二值根据与用户帐户相关联的所述云视频游戏的先前执行来定义,用户保存数据的所述应用包括使用所述第二值更新所述一个或多个变量。
在一些实现方式中,应用所述用户保存数据以更新所述云视频游戏的所述执行在所述交互式游戏操作期间执行,使得在所述用户保存数据被应用于更新所述一个或多个变量时,所述云视频游戏的执行和所述交互式游戏操作继续。
在一些实现方式中,应用所述用户保存数据以更新所述云视频游戏的所述执行包括识别所述云视频游戏中的断点,其中暂停云视频游戏的执行和交互式游戏操作,并且在所述云视频游戏的所述断点期间应用所述用户保存数据用于所述游戏操作。
在一些实现方式中,在所述云游戏机上加载所述云视频游戏响应于来自所述客户端装置的启动所述云视频游戏的游戏操作的所述请求来执行。
根据一些实现方式,提供一种方法,其包括:由云游戏服务器计算机通过网络接收来自客户端装置的启动云视频游戏的游戏操作的请求;将所述客户端装置分配到数据中心,从所述数据中心流式传输所述云视频游戏;使所述数据中心处的云游戏机加载所述云视频游戏;基本上与所述云游戏机的所述加载同时进行,在所述数据中心与所述客户端装置之间执行流测试,以确定所述云视频游戏的流式传输的服务质量;在所述云游戏机的所述加载和所述流测试的所述执行完成之后,通过将由所述云游戏机对所述云视频游戏的执行所生成的视频数据流式传输到所述客户端装置,以及从所述客户端装置接收输入数据以驱动所述云视频游戏的所述执行,来启动所述云视频游戏的交互式游戏操作。
在一些实现方式中,将视频数据流式传输到所述客户端装置由数据中心的视频服务器执行,所述视频服务器接收由所述云游戏机对所述云视频游戏的所述执行所生成的视频内容,所述视频服务器对所述视频内容进行编码以生成待流式传输到所述客户端装置的视频数据。
在一些实现方式中,执行所述流测试包括通过所述网络在所述视频服务器与所述客户端装置之间建立连接,以及测试用于所述视频数据的所述流式传输或所述输入数据的所述接收的连接。
在一些实现方式中,所述视频服务器对所述视频内容的编码的一个或多个参数根据所述视频服务器与所述客户端装置之间的所述连接的所述测试的结果来确定。
在一些实现方式中,所述视频内容的编码的参数包括所述视频内容的压缩率。
在一些实现方式中,该方法还包括:基本上与云游戏机的加载同时进行,确定客户端装置的用于云视频游戏的流式传输的硬件或软件配置。
根据一些实现方式,提供一种方法,其包括:由云游戏服务器计算机通过网络接收来自客户端装置的启动云视频游戏的游戏操作的请求;将所述客户端装置指派给第一数据中心,从所述第一数据中心流式传输所述云视频游戏,所述第一数据中心包括第一云游戏机;使所述第一云游戏机加载所述云视频游戏;通过将由所述第一云游戏机对所述云视频游戏的所述执行所生成的视频数据流式传输到所述客户端装置,以及从所述客户端装置接收输入数据以驱动所述云视频游戏的执行,来启动云视频游戏的交互式游戏操作;基本上与所述云视频游戏的所述加载或所述云视频游戏的所述交互式游戏操作同时进行,评估所述客户端装置与所述第一数据中心之间的服务质量,并且评估所述客户端装置与第二数据中心之间的服务质量;响应于确定所述客户端装置与所述第二数据中心之间的所述服务质量大于所述客户端装置与所述第一数据中心之间的所述服务质量,通过所述网络将所述云视频游戏的所述执行从所述第一数据中心处的所述第一游戏机迁移到所述第二数据中心处的第二游戏机。
在一些实现方式中,迁移云视频游戏的执行包括使第二游戏机加载云视频游戏,以及通过网络将由第一云游戏机执行云视频游戏定义的游戏状态数据传送到第二游戏机。
在一些实现方式中,迁移所述云视频游戏的所述执行包括:识别所述云视频游戏中的断点,其中暂停所述云视频游戏的所述执行和交互式游戏操作;以及当所述云视频游戏的所述执行到达所述云视频游戏中的所述断点时,迁移所述云视频游戏的所述执行。
从结合附图进行的以下详细描述,本公开的其他方面和优点将变得明显,以下详细描述通过举例的方式来说明本公开的原理。
附图说明
可通过参考结合附图进行的以下描述来最佳地理解本公开及其其他优点。
图1A示出根据本公开的实施方案的用于将游戏内容预加载到云游戏服务器的示例性系统的简化框图。
图1B是概念性地示出根据本公开的实现方式的被执行用于将云视频游戏流式传输到客户端装置的各种操作的流程图。
图2概念性地示出根据本公开的实现方式的具有本地应用快速起动功能的用于云游戏的系统。
图3示出根据本公开的实现方式的用于提供高速缓存优化云游戏的系统。
图4概念性地示出根据本公开的实现方式的用于提供来自云游戏服务的本地高速缓存优化的云视频游戏流式传输的数据的流向。
图5示出根据本公开的实现方式的用于提供本地应用快速起动功能的方法。
图6示出根据本公开的实现方式的用于提供本地应用快速起动功能的方法。
图7是描绘根据本公开的实现方式的数据带宽与时间的曲线图,其将现有常规游戏流式传输设置的带宽利用与采用客户端高速缓存的带宽利用进行比较。
图8A概念性地示出了根据本公开的实现方式的用于在启动云视频游戏的游戏操作之前提供云视频游戏的游戏操作而不加载给定用户的视频游戏保存数据的方法。
图8B示出根据本公开的实现方式的用于管理游戏启动和用户保存数据的传送的方法。
图9概念性地示出根据本公开的实现方式的云视频游戏的一系列游戏操作会话。
图10A示出根据本公开的实现方式的用于提供云游戏服务的系统。
图10B示出根据本公开的实现方式的云视频游戏的用户保存数据的迁移以及用户保存数据的指针的更新。
图11示出根据本公开的实现方式的用于执行流测试与启动游戏机以用于流式传输云视频游戏同时进行的方法。
图12示出根据本公开的实现方式的用于提供云游戏服务的系统,所述系统被配置来利用客户端装置执行流测试。
图13概念性地示出根据本公开的实现方式的游戏操作会话从一个数据中心向另一数据中心的转换。
图14示出根据本公开的实现方式的用于将信息内容和服务递送给地理上分散且通过网络连接的用户的示例性信息服务提供商架构。
图15示出根据本公开的实现方式的用于控制呈现给用户的内容的计算装置的示例性组件。
图16是根据本公开的实施方式的游戏系统1600的框图。
具体实施方式
在以下描述中,阐述众多特定细节以便提供对本公开的透彻理解。然而,对于本领域技术人员将明显的是,可在没有这些特定细节中的一些或全部的情况下实践本公开。在其他情况下,众所周知的过程步骤尚未进行详细描述,以免使本公开晦涩难懂。
当接收到对游戏名称的用户请求时,由与云游戏站点相关联的数据中心内的服务器执行数种操作。当云游戏站点接收到用户请求时,识别托管与选定游戏名称相关联的游戏的数据中心,并且将所述请求发送到所识别的数据中心,以用于实例化选定游戏名称的游戏。响应于所述请求,数据中心处的服务器识别游戏代码、加载所识别的游戏代码并初始化与游戏代码相关的文件,以准备将游戏内容呈现给用户。与游戏相关联的游戏数据包括通用游戏数据和用户特定游戏数据。因此,初始化文件包括识别、加载和初始化通用游戏数据和用户特定游戏数据。初始化通用游戏数据可包括初始化图形引擎、安装图形数据、初始化声音文件、安装原图等。初始化用户特定数据可包括定位、传送和安装用户数据、用户历史、游戏历史等。通用游戏数据和/或用户特定数据的加载可能取决于游戏/游戏图形的复杂性而花费约几秒至几分钟。
在加载和初始化通用游戏数据的同时,可提供用于在客户端装置处渲染的“闪现(splash)”画面。可设计闪现画面以提供正在加载的游戏的代表性图像,以允许用户预览正在加载的游戏类型。一旦加载了通用游戏数据,就可渲染音频内容并且呈现选择/导航画面以供用户选择/定制。选择/导航画面处所提供的用户选择输入可包括游戏级别选择、游戏图标选择、游戏模式选择、游戏赢取物、可能需要上传额外游戏内容的其他的用户相关数据。在游戏内容可供用户用于游戏之前,用户选择输入的上传可导致额外的延迟。在一些实施方案中,通过将游戏内容从游戏云系统流式传输到用户的计算装置以用于观看和交互来使得游戏内容可用。在加载用户特定数据之后,游戏内容可用于游戏。
图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所示。网络数据包编码过程还可采用数据加密过程,从而提供增强的数据安全性。在所示实现方式中,生成音频数据包134和视频数据包136以用于通过网络进行输送,如参考标号140所示。
游戏系统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,所述游戏系统118处理输入数据162以更新视频游戏的游戏状态。
在音频数据包134、视频数据包136以及触觉反馈数据包138的输送(参考标号140)期间,可监测网络上的数据传输以确保云游戏流服务质量。例如,可如参考标号164所示,监测网络状况(包括上游和下游网络带宽两者),并且可响应于可用带宽的改变来调整游戏流式传输。也就是说,可基于当前网络状况来控制网络数据包的编码和解码,如参考标号166所示。
图2概念性地示出根据本公开的实现方式的具有本地应用快速起动功能的用于云游戏的系统。用户226与被配置来访问云游戏服务的客户端装置100交互。用户226可操作控制器装置156来生成输入并将其提供到客户端装置100。此外,客户端装置100可被配置来将内容渲染给显示装置152。应理解,在一些实现方式中,显示装置152可以是头戴式显示器。
客户端装置通过网络102与云游戏服务器104通信,所述云游戏服务器104提供对用户的云游戏账户的访问。云游戏服务器104从用户帐户存储装置106检索用户数据204,在所示实施方案中,用户数据204特定于用户226。举例来说,用户数据204可包括各种云游戏相关数据,诸如用户可用于游戏操作的游戏名称的名称206。这些可以是用户已购买、租借、借用、被授予或者用户已经以其他方式获得游戏操作访问权的游戏名称。用户数据还可包括游戏保存数据208、奖品210、统计212、社交数据214(例如,包括社交图数据)以及历史数据216(例如,用户访问历史、游戏操作历史等)。
当用户226希望玩用户具有访问许可的给定云视频游戏时,用户可在客户端装置100在显示器152上呈现的图形用户界面(GUI)上指示视频游戏的选择。在选择用于游戏操作的视频游戏时,将游戏请求从客户端装置100传输到云游戏服务器104。游戏请求可识别用户希望玩的游戏名称。响应于接收到游戏请求,云游戏服务器104激活云游戏机118以实例化所请求的视频游戏名称。也就是说,云游戏机118被指派给请求的客户端装置100,并开始执行所请求的视频游戏名称。
与客户端装置100向云游戏服务器104传达游戏请求同时进行,客户端装置100也开始渲染来自本地存储装置232的初始内容234。初始内容呈现者236管理与初始内容234的检索、渲染和交互。初始内容234可特定于所请求的视频游戏,并且可包括可在视频游戏的交互式游戏操作开始之前呈现给用户的任何游戏相关的内容。
出于本公开的目的,交互式游戏操作应指代用户与正执行的视频游戏之间的交互性,这直接能够在视频游戏的竞技/叙述情境内基本上推进用户的进度。因此,视频游戏的交互式游戏操作不包括其他类型的内容渲染或游戏相关的交互(诸如起动图像/视频,闪现/加载画面或视频、法律信息画面,访问或配置游戏设置(例如,控制器设置、游戏难度、视频设置、音频设置等),游戏选择菜单(例如,保存的游戏选择、游戏级别选择、游戏类型选择(例如,街机、作战)等)),和/或不直接能够在视频游戏的竞技或叙述情境中推进用户的进度的任何其他类型的游戏相关的内容或交互式特征。
如所述,视频游戏的初始内容234包括在交互式游戏操作开始之前所呈现的内容。初始内容234可包括诸如徽标画面、起动/闪现画面(图像或动画/视频)、法律信息/免责声明画面、外围装置配置菜单、特征设置菜单等内容。因为初始内容234可从本地存储装置232进行本地访问,所以初始内容234的渲染可极快地发生,并且在非常快的系统中实际上可以是立即或瞬时的。在视频游戏的内容被渲染给显示装置152之前,用户不必等待云游戏系统-为客户端100提供/指派游戏机118、将适当的视频游戏代码加载到所指派的游戏机118、开始执行视频游戏代码、和/或启动与客户端100的流式传输。这提供了视频游戏的本地快速起动,同时云游戏系统为游戏流式传输准备好游戏机118。因此,用户被提供参与和享受的初始内容,而不是被迫等待云游戏系统的操作(这可能被视为不良云游戏体验)。
游戏机118从游戏名称数据存储区110获得所请求的游戏名称代码,并执行游戏名称代码以定义正执行的视频游戏。从游戏机118输出的原始视频/音频被提供给流式传输服务器220,所述流式传输服务器220出于流式传输目的将原始视频/音频编码为压缩格式。如上所述,编码的音频和视频可根据网络通信协议通过网络102进行传输。客户端装置224处的流式传输逻辑238处理传入的流式传输音频/视频以用于向显示器152渲染。
应理解,来自本地存储装置232的初始内容234的呈现将转换成通过流式传输服务器220来自基于云的游戏机118的流式传输的视频游戏的呈现。在一些实现方式中,在游戏机118处执行视频游戏直至到达某个时刻,届时视频游戏等待触发以启动视频游戏到客户端装置100的流式传输。在一些实现方式中,用于启动流式传输的触发可根据客户端装置100处所接收的用户输入来定义。例如,用户可按压按钮或通过控制器156提供某一其他输入以启动流式传输。
从内容的本地执行/呈现到内容的云流式传输的转换可被配置来提供流畅的用户体验。游戏机118对视频游戏的执行可与客户端装置处的初始内容的呈现同步。游戏机118可从客户端装置224接收关于初始内容的呈现的状态更新,并且可调整云游戏机118对视频游戏的执行以便与初始内容234的呈现同步,并因此允许到云流式传输的流畅转换。应理解,在一些实现方式中,从本地内容到流式传输内容的转换自动地发生而不需要用户输入,而在其他实现方式中,转换响应于用户输入而发生。
从初始内容的渲染到来自云的视频游戏的流式传输的转换可发生在整个游戏呈现中的各个点处。例如,转换可发生在闪现画面(图像/动画/视频)的渲染之后,或在需要用户主动选择或输入的菜单或其他内容的渲染之后。在后一概念中,用户选择(例如,菜单项或选项)或输入可传达到游戏机118处正执行的视频游戏,所述游戏机118可处理选择/输入以确定待渲染的下一内容。在一些实现方式中,待渲染的下一内容将是另一闪现画面或菜单,且因此从初始内容的本地执行到云视频游戏流式传输的转换发生在交互式游戏操作启动之前所呈现的画面/菜单之间。在一些实现方式中,云游戏机118可接收关于在客户端装置224处呈现数个画面中的哪个的状态更新,并且可指导游戏机118执行并渲染下一画面,所述下一画面将被流式传输到客户端装置224。
在一些实现方式中,转换发生在单个内容画面的呈现期间。例如,初始内容234可包括连续地呈现的多个画面。在画面的本地呈现期间,云游戏机118可接收指示正在呈现哪些画面的状态更新,并且可指导云游戏机118执行并渲染与客户端装置224当前呈现的画面相同的画面。因此,向流式传输的转换可发生在当前画面的呈现期间,并且可对用户无缝地显现。在一些实现方式中,画面内容的图像/视频部分首先转换为流式传输,而音频不转换直到下一画面的呈现。在一些实现方式中,其中音频通过音频片段的循环回放来定义,转换(视频和音频两者或仅音频)可发生在音频回放到达片段的末尾时。这种配置可避免音频呈现中的听得见的中断。
在一些实现方式中,用于启动视频游戏的流式传输的触发还触发视频游戏的交互式游戏操作的启动。例如,启动内容可包括在启动实际交互式游戏操作之前要呈现给用户的视频游戏的所有内容。然后,在启动交互式游戏操作时,客户端装置100从呈现本地存储的内容转换为呈现基于云的流式传输内容。此外,应理解,可将用户与初始内容的交互(诸如用户选择或其他用户输入)传达到正执行的视频游戏。以这种方式,可使用与本地存储的内容的交互来驱动基于云的视频游戏的执行。例如,用户可指示菜单选择,并且这将被传达到游戏机118上的正执行的视频游戏。菜单的呈现将来自本地存储装置232;然而,在来自菜单的用户选择之后,用户选择可被传达到游戏机118(例如,通过云游戏服务器104),并且游戏机118可处理用户选择。客户端装置100还可转换为通过流式传输服务器220从游戏机118流式传输用户选择的结果(例如,以启动视频游戏的交互式游戏操作)。
如本领域技术人员将理解,正执行的视频游戏可定义游戏引擎,所述游戏引擎接收输入并处理输入以更新视频游戏的游戏状态。在一些实现方式中,视频游戏的游戏引擎在游戏机118处初始化,而初始内容234在客户端装置处呈现。游戏引擎可被初始化且然后进入暂停状态,因为游戏机等待触发以继续游戏引擎的执行。在接收到可从用户输入定义的触发时,退出暂停状态,并且所得到的游戏引擎的执行提供视频游戏的交互式游戏操作的启动。
在一些实现方式中,客户端装置224可被配置来向云游戏系统传达关于初始内容234的呈现的状态更新。这种状态更新可包括识别初始内容的当前呈现状态的信息、以及用户输入/选择/导航。响应于这种状态更新,游戏机118对视频游戏的执行可被指导成执行视频游戏的情境中的各种选项的任一种。因此,可管理和同步客户端装置224对初始内容234的渲染到从流式传输服务器220流式传输视频游戏之间的转换,以提供流畅的用户体验。
在一些实现方式中,游戏机处的游戏引擎的初始化可被配置来自动地加载用户最后保存的游戏数据,因为在许多情况下,用户将通常希望从他们最后保存的位置继续游戏操作。应理解,甚至在用户指示(例如,通过导航/选择游戏菜单/选项)他/她希望继续他们最后保存的游戏的游戏操作之前,用户最后保存的游戏数据的这种自动加载可抢先发生。这通过处理划分而成为可能,其中客户端装置处理并渲染初始内容,同时基于云的游戏机初始化游戏引擎以用于最终的交互式游戏操作。因此,当前描述的配置提供优于甚至常规控制台游戏的游戏体验的优点,因为不需要用户等待他们的本地装置顺序地加载初始内容并然后加载他们保存的游戏,因为它们由每个本地客户端装置100和基于云的游戏机118分别并行处理。
在一些实现方式中,云游戏服务器104可被配置来基于用户的游戏操作历史来确定是否抢先加载给定视频游戏的最后保存的游戏。例如,在一些实现方式中,系统可被配置成在用户的视频游戏的最后游戏操作会话中用户加载了先前最后保存的游戏的情况下,自动地加载用户最后保存的游戏。在相关实现方式中,系统可被配置来在以下情况下自动地加载用户最后保存的游戏:自最后游戏操作会话以来已经过去少于阈值量的时间,并且在视频游戏的用户最后游戏操作会话期间,用户加载了先前最后保存的游戏。在其他实现方式中,系统可被配置来基于诸如社交网络活动、当日时间、自最后游戏操作以来的时长、视频游戏的保存的游戏与非保存游戏(例如,街机、多玩家)的游戏操作相对量等各种因素来确定是否自动地加载用户最后保存的游戏。
在所示实现方式中,在交互式游戏操作期间,游戏机118执行游戏引擎以生成完整的未压缩视频和音频数据流。流式传输服务器220接收完整的视频和音频数据流,并处理它们以用于通过网络102传输到客户端装置100。所述处理可能需要将视频和音频数据编码成压缩格式、加密压缩数据并根据网络协议打包数据以进行传输。客户端装置100接收所传输数据,重编网络数据包,并对压缩视频/音频数据进行解密和解码,以用于向显示器/HMD152和音频装置(其可为显示器152的一部分)渲染。
在上述实现方式中,流式传输服务器将完整视频和音频流的压缩版本流式传输到客户端装置100。在一些实现方式中,如以下进一步详细论述,流式传输服务器220可被配置来流式传输还以其他方式优化的完整视频和音频流的版本。如将论述,流式传输的视频和音频可被配置成遗漏某些内容部分/资产,这些内容部分/资产稍后在客户端100处提供,使得游戏流式传输所需的带宽较小或者使得流式传输的视频和音频的其余部分可以更高的保真度(例如,更高的帧率或采样率、更高的分辨率等)进行流式传输。
图3示出根据本公开的实现方式的用于提供高速缓存优化云游戏的系统。广义来说,所示系统被配置成使得视频游戏的图像或音频部分存储在客户端装置处,并且刚好在显示器上渲染之前在客户端装置处与流式传输的视频或音频组合,从而减小流式传输视频游戏所需的带宽。在存在如根据监测游戏流式传输和/或网络状况的带宽利用所确定的可用带宽的时间段期间,将存储在客户端装置处的部分可以被传送到装置。
在所示实现方式中,游戏机118执行存储在游戏名称存储装置110中的视频游戏(名称A)的高速缓存优化游戏构建300。高速缓存优化游戏构建300是视频游戏名称的专用版本,其被配置来提供本文所描述的高速缓存优化的游戏流式传输功能。具体来说,高速缓存优化游戏构建300可被配置来输出视频和音频数据流,所述视频和音频数据流排除视频游戏的某些视觉或音频成分,从而减小视频和音频数据流的数据大小。
游戏机118对游戏构建300的执行定义游戏引擎302,所述游戏引擎接收并处理输入以更新游戏状态,并输出图像帧数据350和音频数据352。游戏引擎302可被配置来任选地从其输出的图像帧数据350或音频数据352排除某些视觉或音频内容/资产。对于被排除的视觉资产,游戏引擎302可生成识别被排除的视觉资产的视觉资产识别符,并且还可定义控制其呈现的参数,诸如其在图像帧数据内的放置(定义其时间位置和空间位置)、大小、定向、颜色、亮度/对比度、其他视觉属性等。对于被排除的音频资产,游戏引擎302可生成识别被排除的音频资产的音频资产识别符,并且还可定义控制其呈现的参数,诸如音量、平衡/音量控制器参数、放置、均衡参数等。视频/音频资产识别符可伴随图像帧数据350或音频数据352或被包括作为其一部分,并用于在客户端装置100处进行处理时指示什么视觉或音频资产将与图像/音频流组合。
流式传输服务器220接收由游戏机118生成的原始图像帧数据350和音频数据352。编码器314以压缩视频/音频格式对图像帧数据350和音频数据352进行编码。加密模块316加密压缩的视频/音频以用于通过网络102进行传输。流式传输服务器220还被配置来将视频游戏的高速缓存数据306从游戏高速缓存数据存储装置304传输到客户端装置100。高速缓存数据306可包括视觉内容/资产308和/或音频内容/资产310,它们是可存储在客户端装置处以用于稍后与视频/音频流组合的针对视频游戏所定义的可高速缓存的内容/资产。因此,流式传输服务器220发送可包括压缩视频/音频以及客户端可高速缓存的视觉和/或音频内容/资产的混合数据流354。应理解,加密模块316还可加密视觉/音频资产以便包括在混合数据流354中,从而通过网络102进行传输。
可基于当前带宽使用和网络状况来确定在混合数据流354中包括视觉/音频资产的特定定时。在一些实现方式中,流式传输服务器220被配置来通过混合数据流354的流式传输来监测当前带宽使用,并确定何时存在用于流式传输除压缩视频/音频流之外的视觉/音频资产的可用带宽。流式传输服务器220可确定初始网络状况并且在游戏流式传输期间持续监测网络状况,并且可结合当前带宽使用来参考网络状况以确定任何时刻存在的可用带宽。
应理解,要被高速缓存的视觉/音频内容/资产在其应用并由客户端装置渲染之前被流式传输到客户端装置。在带宽利用相对较低的时段期间,可利用未使用的带宽将视觉/音频资产流式传输到客户端装置。可跟踪已存储在客户端装置处的特定视觉/音频资产,并且因此,游戏引擎可被配置来排除那些视觉/音频资产(已在客户端高速缓存),以免包括在由游戏引擎生成的原始图像帧数据或音频数据中。
混合数据流354在客户端装置100处被接收并由数据流处理机328处理。在一些实现方式中,数据流处理机328对混合数据流354执行解复用功能,以从混合数据流解析压缩视频、压缩音频以及视觉/音频资产流。当在混合数据流354中传输视觉/音频资产时,则高速缓存管理器326将视觉/音频资产存储到客户端高速缓存存储装置318,并且更具体来说,作为定义视频游戏的高速缓存数据320的部分的视觉内容数据322和/或音频内容数据324。
数据流处理机328还从混合数据流354产生(例如,解复用和/或解压缩)视频和音频流。视频流和音频流分别被传递到图像流汇编器326或音频流汇编器334。图像流汇编器326被配置来确定在视频流中图像帧数据的哪些部分已被排除,并且用从客户端高速缓存数据320检索的视觉内容/资产填充这些部分。在一些实现方式中,前述视觉资产识别符与混合数据流一起或作为混合数据流的一部分进行传输,并且被处理以识别将要插入/组合到视频流中的视觉资产以及关于它们的放置和可能的其他视觉性质的参数。在一些实现方式中,标记在视频流本身中被编码,所述标记在空间和时间两者上识别要添加的视觉资产及其在视频流内的位置。
图像流汇编器326将完全汇编的视频流输出到视频信号发生器332。视频信号发生器332处理完全汇编的视频流以生成正确格式的适当视频信号,以供显示装置152渲染。尽管显示装置152在所示系统中被示为单独组件,但是在一些实现方式中,显示装置152被作为客户端装置100的一部分并入。
以与图像流汇编器326类似的方式,音频流汇编器334被配置来确定在音频流中音频数据的哪些部分已被排除,并且用从客户端高速缓存数据320检索的音频内容/资产填充这些部分。在一些实现方式中,前述音频资产识别符与混合数据流一起或作为混合数据流的一部分进行传输,并且被处理以识别要插入/组合到音频流中的音频资产以及关于它们的放置和可能的其他音频属性质的参数。在一些实现方式中,标记在音频流本身中被编码,所述标记识别要添加的音频资产及其在音频流内的位置。
音频流汇编器334将完全汇编的音频流输出到音频信号发生器336。音频信号发生器336处理完全汇编的音频流以生成正确格式的适当音频信号,以供音频装置340渲染。尽管音频装置340在所示系统中被示为单独组件,但是在一些实现方式中,音频装置340被作为客户端装置100的一部分并入。此外,在一些实现方式中,音频装置340被包括为显示装置152的一部分。
图4概念性地示出根据本公开的实现方式的用于提供来自云游戏服务400的本地高速缓存优化的云视频游戏流式传输的数据的流向。示出正执行的视频游戏302,其定义游戏状态402,所述游戏状态402定义视频游戏的变量的即时状态。应理解,正执行的视频游戏302基于当前状态且基于从客户端装置100接收到的输入数据418连续地更新游戏状态402。
通过云游戏服务400处理的视频游戏302产生混合数据流354。混合数据流354包括图像数据404、音频数据406和高速缓存数据408。在所示实现方式中,图像数据404定义示例性图像帧410。图像帧410的一部分412未被完全定义,也就是说,部分412将由客户端装置100供应,而不是完全定义/包括在图像帧410中,以便减少流式传输图像帧所需的带宽量。
高速缓存数据408包括定义要插入图像数据404的图像帧诸如图像帧410中的资产的数据。高速缓存数据408由客户端装置100接收,从混合数据流354解析,并存储到客户端高速缓存存储装置318,作为图像高速缓存数据322的一部分。在所示实现方式中,从图像高速缓存数据322检索先前传输到客户端装置100的视觉资产414,并将其插入到图像帧410中以定义先前未完全定义的部分412。所得完整图像帧形成完整图像流132的一部分,以用于在显示装置上呈现。
应理解,传输到客户端装置并在客户端装置处高速缓存的视觉资产可以是可与云视频游戏生成的视频流分开提供的任何类型的图像、项目、对象或其他视觉性质,并且稍后在客户端装置处插入到视频流的图像帧中,以提供用于向显示器渲染的完整图像帧。视觉资产可包括静态项目,所述静态项目从某种意义上说是静态的,其外观(呈现于视频流中时)不会基于当前游戏状态进行更改。这些可包括例如像指示符、徽、奖品、徽章和其他类型的视觉项目等项目,其外观不会基于当前游戏状态而动态地确定。例如,可存在各种视觉指示符,其向用户指示角色或游戏操作的当前状态,诸如权力、拥有的物品、其他用户的角色等。作为另一实例,其中用户承担驾驶车辆的角色的视频游戏可包括车辆驾驶舱的视图。驾驶舱中的一些视觉项目可以是静态的,并且在驾驶舱被展现在用户的游戏视图中时可能不会更改,即使在视频游戏的交互式游戏操作进行时也是如此。静态视觉资产可在客户端装置处插入到视频流中而无需更改。
然而,应理解,在一些实现方式中,视觉资产可包括动态视觉资产,其外观至少部分地基于游戏状态条件来确定。例如,动态视觉资产可由客户端装置基于当前游戏状态在颜色、大小、定向、透明度或任何其他视觉性质上更改,并且在向显示器渲染之前由客户端装置插入到视频流中。为实现这一点,可与视频流一起传输更改数据,以指示在插入视频流之前要对视觉资产执行的特定更改。
以与以上论述类似的方式,在混合数据流354中递送的音频数据406可用来自音频高速缓存数据324的音频资产来补充,以定义用于通过音频装置呈现的完整音频流130。音频资产可包括视频游戏所利用的各种类型的音频或声音中的任何一种,包括但不限于音效、背景音乐、预先录制的音频片段等。应理解,在不同的实现方式,在客户端装置处生成/插入的特定音频与由云游戏机生成的音频可不同。例如,在一些实现方式中,在客户端装置处生成背景音乐/音频并将其添加到音频流,而由用户的实时交互式游戏操作触发或激活的其他音效由云游戏机生成。在一个特定实现方式中,基于由云游戏机生成并由客户端装置在混合数据流中接收的数据在客户端装置处生成所有声音,所述数据识别要产生的声音、这类声音的定时以及任何额外的音频相关参数(例如,音量、均衡、定向性/原点等)。
可基于可指示预期的未来游戏状态的当前游戏状态来预测性地或抢先地将视觉和音频资产传输到客户端装置。这可用于缓解在场景改变时、例如当视频游戏场景的整个视图可能改变时可能发生的带宽利用的突然增加。例如,如果玩家控制的角色靠近或朝向可能发生场景改变的物理或时间位置移动,则可将视觉/音频资产传输到客户端装置以在场景改变时利用。例如,如果玩家朝向门引导他的角色,并且打开或穿过门导致场景改变,则在门打开之前,可将视觉/音频资产传输到客户端以期被在场景变化期间加以利用。在另一示例中,当用户接近完成视频游戏的级别或场景时,则可在完成级别/场景之前将视觉/音频资产传输到客户端装置,以在下一级别/场景的流式传输期间使用。在一些实现方式中,当用户的场景/级别的游戏操作完成超过预定义阈值时,则视觉/音频资产在可用带宽允许时被传输到客户端装置。
客户端装置100处的输入处理模块416被配置来处理来自控制器装置或其他输入装置的输入,并将输入数据418传输到正执行的视频游戏302。视频游戏302应用输入数据418以更新其游戏状态402。应理解,基于此游戏状态,可确定预测的未来游戏状态,并且可基于预测的未来游戏状态来确定视觉/音频资产到客户端装置的传输。
图5示出根据本公开的实施方案的用于提供本地应用快速起动功能的方法。在方法操作500处,在与云游戏服务通信的客户端装置处接收到启动视频游戏的请求。在方法操作502处,确定这是否是请求游戏的第一实例(例如,初始购买游戏),或者是否需要更新。如果是,则在方法操作504处,下载并安装和/或更新视频游戏的初始内容。如果不需要更新或额外下载,或者在此类下载并安装/更新之后,则在方法操作506处,从客户端装置的本地存储装置渲染视频游戏的初始内容。在方法操作508处,在客户端装置处处理响应于所渲染初始内容的用户输入和/或选择,并且在方法操作510处,更新初始内容的渲染状态,从而返回到方法操作506。
同时,将访问视频游戏的请求传达到云游戏服务,所述云游戏服务认证用户的游戏所有权和/或对所请求视频游戏的购买。在方法操作518处,初始化云游戏机以执行所请求视频游戏并将云游戏机指派给用户的云游戏会话。在方法操作520处,云游戏机执行视频游戏。在方法操作522处,正执行的视频游戏处理用户输入/选择以更新正执行的视频游戏的状态。可根据用户与初始内容的交互来定义输入/选择。
在方法操作512处,客户端装置请求和/或等待视频游戏的流式传输开始。在方法操作524处,云游戏服务生成并传输视频游戏的流式传输视频/音频,并且在方法操作514处,由客户端装置接收流式传输视频/音频并渲染用于用户交互性。
图6示出根据本公开的实施方案的用于提供本地应用快速起动功能的方法。在方法操作600处,用户通过客户端装置登录到云游戏服务,这影响方法操作612处云游戏服务器对用户的认证。在方法操作602处,用户在客户端装置处起动视频游戏,并且作为响应,在方法操作604处,从客户端装置的本地存储装置加载视频游戏的初始内容并向显示器渲染。
同时,在方法操作614处,响应于用户起动视频游戏的请求,将游戏机提供/指派给用户的客户端装置。在方法操作616处,游戏机加载有所请求视频游戏名称。在方法操作618处,先行地或响应于用户请求,访问并加载来自用户帐户的保存的游戏数据。
在方法操作606处,从客户端装置的用户接收到起动交互式游戏操作的请求。在方法操作620处,由云游戏机执行交互式游戏操作。在方法操作622处,云游戏服务生成被传输到客户端装置的视频流。在方法操作608处,由客户端装置渲染视频流。在方法操作610处,客户端装置接收到交互式输入并将其传输到云游戏机处正执行的视频游戏。正执行的视频游戏处理交互式输入以更新其游戏状态,并且基于所更新游戏状态,生成视频流,如参考标号622所示。
图7是描绘根据本公开的实现方式的数据带宽与时间的曲线图,其将现有常规游戏流式传输设置的带宽利用与采用客户端高速缓存的带宽利用进行比较。曲线700示出游戏流式传输的最大可用数据带宽。曲线702示出现有常规游戏流式传输设置的带宽利用。曲线704示出并入如本文其他地方所述的客户端可高速缓存内容的游戏流式传输设置的带宽利用。在时间T0处,针对曲线702示出的带宽利用水平706在可用带宽内,且因此用户将不会经历流式传输质量的降级。然而,在时间T2处,发生场景转换或其他事件,这导致带宽利用急剧增加。带宽利用上升到超过最大可用带宽700的峰值水平708,从而可能导致视频/音频流式传输质量的降级。在时间T3处,带宽利用返回到最大可用带宽内的水平710。
曲线704示出根据本公开的实现方式的采用客户端高速缓存的云游戏设置的带宽利用。在时间T0至时间T1,带宽利用处于水平712,其可由于在客户端使用可高速缓存内容来提供视频/音频流的部分而略低于常规设置的对应水平706。在时间T1处,确定用户的游戏操作接近场景转换或将需要更大带宽利用的其他事件。因此,在场景转换发生之前,将用于场景转换的可高速缓存内容流式传输到客户端装置,从而导致带宽利用增加到水平714。应理解,水平714高于常规系统的带宽利用的水平716,但仍在可用带宽700内。
在时间T2处,发生场景转换,并且带宽利用可上升到水平718,但不像常规系统,采用客户端高速缓存的系统的水平718仍在可用带宽700内,使得不会发生流式传输质量降级。在时间T3处,场景转换完成并且带宽利用下降到水平720,其可由于持续应用客户端高速缓存的内容以提供部分视频/音频流而低于水平710。
当用户玩给定视频游戏时,生成与视频游戏相关联的保存数据。用户的视频游戏的保存数据可包括描述且可用于重建在用户的游戏操作期间的各个点处视频游戏的游戏状态的数据,或者与视频游戏相关联的特定于用户的任何其他数据。例如,用户的游戏保存数据可包括定义对象(例如,角色、项目、车辆、武器或任何其他对象)、对象的状态或特性、位置(包括位置和定向)和/或对象的移动、资源、能力、完成的量/水平等的数据。用户的保存数据还可包括可因玩家而变化的其他类型的游戏相关的数据,诸如游戏特定的用户配置文件信息、成就、奖品、奖励、游戏偏好、活动记录、聊天记录等。应理解,用户的给定视频游戏的保存数据的粒度可例如根据游戏保存的频率和可用游戏状态信息已保存的多少而变化。视频游戏可具有基于诸如进度、游戏任务/级别/部分的完成、经过时间、用户设置等因素以周期性间隔自动地保存游戏的自动保存功能(其可根据用户设置进行调整)。此外,用户可选择在游戏操作期间在各个时间点、各种地理/空间位置、各种完成量等保存游戏,以允许他/她视需要返回到游戏操作中的相同(或近似相同)位置。
当根据本公开的实现方式在云中托管视频游戏时,应理解,用户保存数据存储在最后流式传输视频游戏的数据中心。由于视频游戏最后由数据中心处的游戏机执行,因此由游戏机执行视频游戏生成的用户保存数据在完成游戏操作会话之后可存储在数据中心。然而,云视频游戏的随后的会话可从不同的数据中心进行流式传输,且因此云视频游戏的用户保存数据将需要迁移到新数据中心以完全启用与特定云视频游戏相关的特定玩家的所有选项。用户保存数据可相当广泛,并且用户保存数据从一个数据中心到另一数据中心的迁移导致用户游戏操作的启动的不期望延迟。因此,根据本公开的实现方式,提供方法和系统以允许用户在不迁移用户的云视频游戏的保存数据中的一些或全部的情况下启动游戏操作。此外,用户的保存数据可在游戏操作期间的随后的时间被整合到正进行的云视频游戏执行中。
图8A概念性地示出了根据本公开的实现方式的用于在启动云视频游戏的游戏操作之前提供云视频游戏的游戏操作而不加载给定用户的视频游戏保存数据的方法。在方法操作800处,游戏机加载有云视频游戏。游戏机被配置来执行云视频游戏以生成将被流式传输到用户的客户端装置的视频内容,并且被进一步配置来处理从客户端装置接收到的输入以驱动云视频游戏的执行。为最小化启动游戏操作所需的时间,用户的视频游戏的保存数据不会在游戏机上加载。相反,云视频游戏在具有通用保存数据的游戏机上进行加载,所述通用保存数据定义足以启动云视频游戏的游戏操作的参数。应理解,通用保存数据不与云游戏系统的任何特定用户相关联,但是可有效地定义通用或默认用户的参数。利用通用保存数据使得可以更快地启动游戏操作,而不必执行用户的云视频游戏的保存数据的位置和迁移。
因此,启动使用通用保存数据的云视频游戏的游戏操作,而没有在需要加载和/或迁移用户的视频游戏的保存数据的情况下引起的时间延迟。因此,与现有的云游戏设置相比,从用户最初请求启动交互式游戏操作到交互式游戏操作可起动所需的时间段减小。此外,在一些实现方式中,游戏机可预先加载配置有通用保存数据的视频游戏。这可为云视频游戏的游戏操作提供实际上即时起动,其中在请求启动游戏操作与开始游戏操作之间的用户的等待时间最短。
在一些实现方式中,为便于从用户在视频游戏中的最后已知位置(例如,时间、空间或进度位置)恢复游戏操作,检索识别用户在视频游戏中的最后已知位置的数据。在一些实现方式中,这类数据由云游戏系统存储为用户帐户的一部分,或者存储/高速缓存在客户端装置处,以便在加载云视频游戏时容易获得。应理解,上述概念的组合可产生一种设置,其中用户可从用户的最后已知位置快速启动/恢复云视频游戏的游戏操作,其中游戏机加载有通用用户数据。也就是说,用户可从用户在视频游戏中的最后已知位置启动游戏操作,但是游戏执行正应用通用保存数据而不是用户的视频游戏的保存数据来促进游戏操作。
在一些实现方式中,除用户的最后游戏操作进度位置之外,可扩展上述概念以包括提供某些基本游戏保存数据。这可包括任何上述游戏操作参数,但与完整用户保存数据相比,其形式有限。例如,可提供用户的最后已知量的给定资源参数(例如,能量/健康、弹药等)。这种数据也可存储到用户的帐户或存储在客户端装置处。在一些实现方式中,从最后执行视频游戏的数据中心检索用户的最后游戏操作进度位置和/或基本游戏保存数据,而不检索全部数量的用户保存数据,以使用户能够从他们的最后位置启动游戏操作,但无需等待传送全部数量的用户保存数据。
在一些实现方式中,用户可从他们在视频游戏中的最后已知位置恢复游戏操作。在其他实现方式中,用户可从他们的最后已知位置之前的位置恢复游戏操作,以便在视频游戏故事情节/活动的中间启动游戏操作时缓解用户的转换。在一些实现方式中,从用户的最后位置之前发生的视频游戏中的断点恢复游戏操作。应理解,在一些实现方式中,先前断点可以是最后保存的位置,而在其他实现方式中,先前断点基于用户的最后位置来选择。先前断点可具有与其相关联的通用保存数据,所述通用保存数据可被加载以实现游戏操作的快速启动,而无需如上所述传送用户的保存数据。
应理解,当用户首先从最开始玩典型的视频游戏时,新用户设置针对用户被配置或提供成使得用户在视频游戏的开始阶段时以某些预定义参数启动游戏操作。这些预定义参数可以是由系统提供或选择的默认参数,或者可由用户通过初始设置界面来选择。然而,从视频游戏中间的进度位置启动游戏操作通常需要识别现有用户的游戏保存数据,因为用户通常不能在未首先完成视频游戏的前几个阶段以到达进度位置的情况下访问视频游戏中间的进度位置。应理解,进度位置可以是时间位置、空间位置、故事情节位置或由视频游戏定义的其他类型的位置,玩家可通过视频游戏的游戏操作前进到该位置。
因此,本公开的实现方式与现有视频游戏系统的不同之处在于,用户可从视频游戏中间的进度位置启动游戏操作,而不需要为执行视频游戏加载用户的游戏保存数据。这减少了在启动游戏操作之前用户的等待时间,否则当请求从视频游戏中的中间进度位置启动游戏操作时将需要所述等待时间。如以下所进一步论述,在不加载用户的保存数据的情况下启动游戏操作,并且用户的保存数据在随后的时间与游戏操作整合。
在方法操作802处,基本上与云视频游戏加载通用保存数据和/或云视频游戏的随后的执行和游戏操作同时进行,识别用户并识别用户的云视频游戏的保存数据。用户的云视频游戏的保存数据可位于远程数据中心,并且被传送到当前正在为用户的游戏操作会话(其用通用保存数据进行启动)执行云视频游戏的游戏机的数据中心。可将用户的云视频游戏的保存数据中的一些或全部加载到游戏机以与用户正进行的游戏操作会话进行整合。
在方法操作804处,用户保存数据与用户的云视频游戏的游戏操作会话链接或整合。也就是说,在一些实现方式中,将用户的保存数据应用于正进行的游戏操作会话以更新通用保存数据。这为用户提供来自其先前会话(其可能已经从不同数据中心进行流式传输)的云视频游戏的参数。所述整合还可与他们在最初使用通用保存数据进行实例化的当前会话中所取得的进度相组合。举例来说,某些附加参数可基于当前游戏操作会话被总结在一起以产生完全更新的参数。
应理解,在一些实现方式中,可在完成用户保存数据的传送之后执行用户保存数据的整合。而在其他实现方式中,即使在正在传送用户保存数据时,也可执行用户保存数据的整合。例如,一旦传送给定部分(或参数),就可传送用户保存数据的部分(或特定参数)并立即将其整合到当前游戏操作会话中。
用户保存数据链接或整合到云视频游戏的当前会话中可能被一些用户视为不寻常或奇怪。因此,在一些实现方式中,减少引起对用户保存数据的链接或整合的注意被配置成发生在视频游戏的进度中的自然断点处(例如,在游戏操作中的暂停处,在视频游戏中的一个阶段/或级别到另一阶段或级别的转换处,在完成任务之后,在实现游戏操作里程碑之后等)。在游戏机加载了用户保存数据以更新通用保存数据之后,游戏操作继续并且视频游戏的参数和用户的保存数据被更新。
在完成云视频游戏的游戏操作之后,则在操作806处,用户与游戏机分离。也就是说,用户不再与执行云视频游戏的会话的游戏机相关联。用户的云视频游戏的保存数据被保存在数据中心,并且用户配置文件/账户信息和/或用户的客户端装置可被更新以识别用户的云视频游戏的保存数据在数据中心处的位置。游戏机可用于视频游戏执行,以启用另一用户或同一用户的另一流式传输视频游戏会话。在一些实现方式中,用户的分离导致视频游戏恢复到加载有通用保存数据的状态,以便当另一用户请求启动云视频游戏的游戏操作并且被指派给游戏机时可用并准备好即时游戏操作。
图8B示出根据本公开的实现方式的用于管理游戏启动和用户保存数据的传送的方法。在方法操作810处,接收玩视频游戏的请求。在方法操作812处,响应于所述请求,将用户指派给数据中心,从所述数据中心流式传输视频游戏。在方法操作814处,视频游戏访问/加载通用游戏数据。在方法操作816处,用通用游戏数据启动视频游戏的游戏操作。而且响应于玩视频游戏的请求,在方法操作818处,将视频游戏的用户保存数据定位在第二数据中心。在方法操作820处,将用户保存数据从第二数据中心传送到所指派数据中心,用户从该数据中心流式传输视频游戏。在方法操作822处,将用户保存数据加载到在所指派数据中心处执行视频游戏的游戏机。在方法操作824处,确定视频游戏的游戏操作中的断点。并且当到达断点时,则在方法操作826处,用用户保存数据更新视频游戏的执行。在方法操作828处,视频游戏的交互式游戏操作继续。
图9概念性地示出根据本公开的实现方式的云视频游戏的一系列游戏操作会话。在所示实现方式中,游戏操作进度条900以图形方式示出用户在云视频游戏的情境内的游戏操作进度。沿着游戏操作进度条900的水平定位指示视频游戏的情境(例如,时间情境或空间情境,或者可根据其测量/量化用户在视频游戏中的游戏操作进度的其他类型的情境)内的进度位置。游戏操作进度条900的两个位置之间的阴影部分指示游戏操作进度的量并且进一步定义从视频游戏内的一个进度位置到另一进度位置的进度。
在数据中心#1处执行云视频游戏的游戏操作会话#1期间,用户从开始处启动云视频游戏的游戏操作,从进度位置A处开始且在进度位置B处结束会话。在进度位置A处,向用户展现场景902(例如,通过视频游戏的执行而生成并从数据中心#1流式传输到用户的客户端装置)。当用户的游戏操作到达位置B时,向用户展现场景904。在游戏操作会话#1期间,用户的游戏操作从位置A前进到位置B,并且在停止游戏操作之后,用户的保存数据被存储在数据中心#1,如参考标号906所示。
在随后的时间,用户启动云视频游戏的游戏操作会话#2。用户的游戏操作会话#2被指派给实例化游戏操作会话#1的同一数据中心#1。因此,由于用户的视频游戏的保存数据已经位于数据中心#1处,因此很容易为游戏操作会话#2加载,如参考标号907所示,包括用于从位置B恢复视频游戏的游戏操作的所有可用参数。因此,在会话#2期间,用户能够从用户先前结束先前会话#1的进度位置B恢复游戏操作,并且会话#2在游戏操作的开始处展现的场景908匹配会话#1结束时展现的场景904。应理解,在本公开的实现方式中,云游戏系统可被配置来确定用户的视频游戏的保存数据是否存储在视频游戏的当前会话实例化或将实例化所在的同一数据中心处(或者用户最近的视频游戏的先前游戏操作会话是否流式传输自同一数据中心),且如果是,则在启动交互式游戏操作之前加载用户的视频游戏的保存数据。然而,如果不是这种情况,则在启动交互式游戏操作之前不加载用户的视频游戏的保存数据,以便如所述减少延迟。
在视频游戏的会话#2期间,用户的游戏操作从进度位置B前进到进度位置C,此时游戏操作会话#2结束。在会话#2的游戏操作结束之后,用户的保存数据被存储在数据中心#1,如参考标号912所示。
随后,在不同的数据中心#2处实例化云视频游戏的游戏操作会话#3。因为用户的保存数据未存储在数据中心#2处,所以为避免用户启动游戏操作不应有的延迟(例如,由通过网络检索和迁移用户保存数据引起),云视频游戏加载通用保存数据,如参考标号914所示。因为视频游戏的会话#3未加载用户的保存数据,所以游戏操作的某些方面可能不匹配用户的先前配置。例如,在会话#3的进度位置C处呈现的场景916可能不完全匹配在会话#2的进度位置C处呈现的场景910。仅仅举例来说而非限制,在所示实现方式中,在场景910中被破坏的建筑物在场景916中展现为未破坏的状态。这是因为当使用生成的保存数据进行实例化时,建筑物处于未破坏状态,而如果加载了用户保存数据,则建筑物将展现为被破坏状态。应理解,类似的概念可扩展到在视频游戏的游戏操作期间呈现的虚拟场景中的对象的任何性质或属性。在没有视频游戏的用户保存数据的情况下,对象可具有不匹配用户保存数据的默认值的默认值,并因此可以不同于已应用用户保存数据的情况下将发生的方式呈现对象。然而,用户能够立即启动游戏操作而无需等待用户的云视频游戏的保存数据的迁移和加载。
基本上与会话#3期间视频游戏的实例化和游戏操作同时进行,定位和检索用户的云视频游戏的保存数据,包括从数据中心#1到数据中心#2的迁移。在进度位置D处,用户保存数据与游戏操作会话#3整合,如参考标号918所示。这可能需要一个过程,用于将用户保存数据与在会话#3期间已发生的游戏操作协调到该点(进度位置D)。例如,可根据用户的保存数据更新游戏操作会话#3的对象的性质和属性。此外,还可根据已发生的游戏操作更新用户的保存数据。如参考标号922所示,可在进度位置E处的游戏操作结束时存储/更新用户的保存数据。当游戏操作到达进度位置E时呈现场景920。
图10A示出根据本公开的实现方式的用于提供云游戏服务的系统。云游戏系统1080包括若干组件,所述组件通过网络1006彼此通信以向由用户1000操作的客户端装置1002提供云游戏服务。云游戏系统1080包括被配置来管理与云游戏系统的用户进行的云游戏活动相关的数据和服务的云托管系统1008。云托管系统包括接收(通过网络1006)并响应来自客户端装置1002的请求的云游戏服务器1012。云游戏服务器1012可例如接收启动云视频游戏的游戏操作的请求,并且作为响应,将客户端装置1002指派给数据中心(诸如数据中心1048或数据中心1062),以执行云视频游戏的执行和流式传输。
云托管系统1008还包括被配置来管理用户1000的用户帐户数据1034的用户帐户管理器1010,用户帐户数据1034被存储到用户帐户数据存储装置1032。用户帐户数据1034包括与用户的帐户及其云游戏服务相关的各种数据。举例来说,用户账户数据1034可包括凭证数据1036、应用数据1038、访问位置数据1040、用户配置文件数据1042、应用播放历史1044、社交数据1046等。
凭证数据可包括识别与云游戏服务相关的用户帐户的许可和访问权限的数据,例如,识别订阅、服务、信用等的数据。应用数据1038可包括与特定应用/游戏相关的数据,例如,识别购买的应用/游戏、与用户帐户相关联的给定应用/游戏的配置或版本、与给定应用/游戏相关的用户特定数据等的数据。
访问位置数据1040可包括识别用户1000从其访问云游戏系统1080的位置的数据,例如,地理位置或区域(例如,坐标、城市、州、国家)、ip/网络地址信息等。访问位置数据1040还可包括识别特定数据中心的数据,用户的客户端装置1002从云游戏系统从所述数据中心流式传输视频游戏。
用户配置文件数据1042包括识别用户特性的数据,诸如人口统计信息(例如,年龄、性别、居住地、收入、种族、语言、教育等)、联系信息(例如,电子邮件、电话号码等)、用户偏好、用户兴趣、通知/通信偏好等。应理解,在一些实现方式中,系统可基于用户在云游戏系统上的活动来确定用户兴趣和偏好,例如,可基于购买的游戏、游戏操作历史、所观看视频、浏览历史、社交网络活动等来推断兴趣。
应用播放历史数据1044包括识别用户1000的历史游戏操作活动的数据,例如,所玩的或访问的游戏/应用、给定游戏的游戏操作的时间、给定游戏的游戏操作的持续时间、给定游戏的游戏操作的总持续时间等。应用播放历史数据1044可与访问位置数据1040相关,以识别用户1000从哪些位置玩哪些游戏。
社交数据1046可包括识别用户1000的社交网络以及与用户相关的社交网络上的活动的数据。社交网络可以是作为云游戏系统1080的一部分的游戏特定社交网络,或者可以是可从云游戏系统1080访问的第三方社交网络。社交数据1046还可包括识别用户的社交图谱的数据,包括识别作为用户1000的社交图谱的成员的其他用户的数据。
如所述,用户帐户管理器1010管理用户帐户数据1034,这可包括基于用户的游戏操作活动更新用户帐户数据1034。例如,用户帐户管理1010可基于用户1000对给定云视频游戏的游戏操作来更新应用数据1038和/或应用播放历史1044。
云托管系统还包括数据中心管理器1020,其被配置来管理诸如客户端装置1002的客户端装置向诸如数据中心1048和1062的数据中心的指派,数据中心1048和1062提供视频游戏流式传输服务。数据中心管理器1020包括数据中心位置数据1022,其包括识别各种数据中心(在所示实现方式中,包括数据中心1048和1062)的位置的数据。
数据中心应用和服务模块1024提供识别可从给定数据中心获得的特定应用/游戏和服务的数据。因此,数据可识别可用于从数据中心流式传输的特定游戏名称,以及由给定数据中心提供的服务。在一些实现方式中,数据中心中的游戏机可预加载某些云视频游戏,并且数据中心应用和服务模块1024可提供识别给定数据中心处的游戏机(已预加载且用于流式传输的游戏机)的当前状态的数据。基于这类数据,数据中心管理器可将给定用户的客户端装置指派给具有可用游戏机的给定数据中心,该游戏机已预加载用户请求进行游戏操作的视频游戏。
数据中心管理器还可包括数据中心性能指标模块1026,其可提供识别数据中心的当前和历史性能的数据(例如,流式传输数据率(下游/上游)、游戏机利用、来自各种位置的往返网络时间等)。数据中心性能指标模块1026可提供关于给定数据中心的性能和利用的实时指标,并因此可提供影响用户客户端装置向给定数据中心的指派的数据。例如,可利用这类数据来提供跨数据中心的负载平衡,其中至少部分地基于当前由多个数据中心承担的相对负载来将客户端装置指派给数据中心。
在所示实现方式中,示出第一数据中心1048,包括数据中心服务器1050、游戏机1052以及视频服务器1054。举例来说,第一数据中心1048可以是上文参考图9所述的数据中心#1。继续参考图10A,应理解,游戏机1052可具有任何硬件/软件配置,以便能够在其上执行云视频游戏。例如,游戏机可以是被配置来为云视频游戏提供适当执行环境的游戏控制台或等效硬件、个人计算机、服务器计算机、虚拟机等。游戏机1052加载云视频游戏,云视频游戏的可执行代码从游戏名称存储装置1056进行检索。
数据中心服务器1050接收并响应于来自云托管系统的请求。例如,云游戏服务器1012可向数据中心服务器1050发送请求以启动用于客户端装置1002的云视频游戏的游戏操作。数据中心服务器1050可响应地将客户端装置1002指派给游戏机1052,游戏机1052可加载或预加载云视频游戏。数据中心1048包括保存数据存储装置1058,所述保存数据存储装置1058包括云视频游戏的用户保存数据1060。在当前描述的情境中,可确定,云视频游戏的用户保存数据1060存储在将从其流式传输游戏操作的数据中心1048处,且因此游戏机1052也加载云视频游戏的用户保存数据1060。
应理解,在一些实现方式中,可由游戏机或数据中心服务器执行对云视频游戏的用户保存数据是否存储在数据中心1048处的确定。在一些实现方式中,用户的云视频游戏的保存数据的位置可存储为用户账户数据1034的一部分,例如作为应用数据1038的一部分,并且可由用户账户管理器1010检索并传递到数据中心服务器1050,使得可确定游戏机1052加载了用户保存数据还是通用保存数据以便于更快地启动游戏操作。
游戏机1052执行云视频游戏并生成传输到视频服务器1054的视频内容。视频服务器1054将视频内容编码和/或加密成通过网络1006流式传输到客户端装置1002的视频数据。客户端装置1002对视频数据进行解码和/或解密,并且在显示装置1004(例如,电视或HMD)上渲染所得视频内容。客户端装置1002接收来自用户1000的交互式输入(例如,通过控制器装置或HMD,或通过图像捕获和处理),并且生成输入数据并通过网络1006将其发送到游戏机1052。输入数据由游戏机1052进行处理以驱动云视频游戏的执行从而定义云视频游戏的随后的游戏状态。
在通过数据中心1048进行的云视频游戏的游戏操作结束时,用户的云视频游戏的保存数据被存储/更新为用户保存数据1060。应用数据1038和应用播放历史1044也可由用户帐户管理器1010基于云视频游戏的最近游戏操作会话相应地更新。例如,可更新应用数据1038以包括识别云视频游戏的情境内的用户的最后进度位置以及用户的保存数据的位置(在数据中心1048处)的数据。
云视频游戏的随后的游戏操作会话可在另一数据中心1062处实例化。在一些实现方式中,数据中心1062可以是参考图9所述的数据中心#2。继续参考图10A,数据中心1062包括与数据中心1048类似的组件,包括数据中心服务器1064、游戏机1066、视频服务器1068、游戏名称存储装置1070以及保存数据存储装置1072。数据中心管理器1020可基于各种因素将客户端装置1002指派给数据中心1062,所述因素包括数据中心1062和诸如数据中心1048的其他可用数据中心的当前负载水平、可加载或可能预加载所请求云视频游戏的可用游戏机、客户端装置与可用数据中心的接近度、云视频游戏的用户保存数据的位置等。
在当前情况下,由数据中心管理器确定客户端装置1002将被指派给数据中心1062以实例化云视频游戏的会话。用户帐户管理器1010可根据应用数据1038确定用户的云视频游戏的保存数据存储在数据中心1048处。因此,数据中心管理器可指示数据中心服务器1064使游戏机1066加载通用保存数据,因为用户的云视频游戏的保存数据将首先需要迁移到数据中心1062,这将延迟用户启动游戏操作。
与游戏机1066加载通用保存数据对和/或云视频游戏的游戏操作同时进行,管理云视频游戏的用户保存数据的保存数据服务1028激活保存数据迁移管理器1030,以管理用户保存数据1060向数据中心1062的传送,在数据中心1062处用户保存数据作为用户保存数据1074存储在保存数据存储装置1072中。在用户保存数据的传送之后,可应用用户保存数据并将其与迄今为止发生的云视频游戏的游戏操作进行整合或协调。
在一些实现方式中,部分地基于用户保存数据的加载的所估计完成时间来决定使游戏机加载用户保存数据还是通用保存数据,所述所估计时间可基于以下因素来确定:诸如云视频游戏的用户保存数据的数量、用户保存数据的位置以及其将被传送到的数据中心的位置、网络状况、游戏机的预加载或非预加载状态等。在一些实现方式中,如果所估计完成时间超过预定义阈值时间,则游戏机最初未加载用户保存数据,而是加载了通用保存数据。
在根据本公开的实现方式的云游戏系统中,可在启动用于云视频游戏的游戏操作的视频的流式传输之前执行流测试。通常,在请求云视频游戏以用于交互式游戏操作时,用户的客户端装置被指派给数据中心处的游戏机。游戏机可能需要启动,加载可执行云视频游戏,和/或加载通用或用户保存数据以执行云视频游戏。在这些活动之后,执行流测试以测试针对客户端装置的游戏流式传输服务质量。然而,流测试的执行会在游戏操作的启动之前引起额外的延迟。因此,根据本公开的实现方式,流测试可与游戏机的启动和初始化并行地执行。
图10B示出根据本公开的实现方式的云视频游戏的用户保存数据的迁移以及用户保存数据的指针的更新。举例来说,云视频游戏的用户保存数据的位置可与用户的账户相关联地存储。在所示实现方式中,上述应用数据1038是给定用户的用户帐户数据1034的一部分,并且被存储到用户帐户数据存储装置1032。用户的应用数据1038包括第一应用(或游戏)A的应用A数据1080,以及第二应用(或游戏)B的应用B数据1084。应用A的用户保存数据位置1081可定义识别用户保存数据的位置(例如,网络地址或位置的其他识别符)的指针1082。
更具体来说,在所示实现方式中,指针1082将应用A用户保存数据1089的当前位置识别为存储在数据中心A 1088处。类似地,应用B的用户保存数据位置1085可定义将应用B用户保存数据1091的当前位置识别为存储在数据中心B 1090处的指针1086。应理解,不同游戏的用户保存数据的位置可位于不同的数据中心处,这取决于用户的播放历史和最后流式传输相应云视频游戏的特定数据中心位置。
因为用户从不同的位置访问云游戏系统并且他们的游戏操作会话从不同的数据中心进行流式传输,所以他们的特定视频游戏的用户保存数据将从一个数据中心迁移到下一数据中心。因此,重要的是,跟踪给定视频游戏的用户保存数据的当前位置。例如,继续参考图10B,用户可从数据中心C 1092流式传输应用A的会话,且因此用户保存数据1089被迁移到数据中心C 1092,以定义应用A用户保存数据1093。因此,应用A的用户保存数据位置1081得以更新以定义识别应用A用户保存数据1093在数据中心C 1092的新位置的新指针1083。对于应用B类似地,用户可从数据中心A 1088流式传输应用B的会话,并且因此应用B用户保存数据1091被迁移到数据中心A 1088,以定义应用B用户保存数据1094。因此,应用B的用户保存数据位置1085得以更新以定义识别应用B用户保存数据1094在数据中心A 1088处的位置的新指针1087。
图11示出根据本公开的实现方式的用于执行流测试与启动游戏机以用于流式传输云视频游戏同时进行的方法。时间线1100指示客户端装置的事件,而时间线1102指示包括可与客户端装置通信的一个或多个服务器的云游戏系统的事件。在方法操作1104处,客户端装置连接到云游戏系统并请求启动云视频游戏的游戏操作。响应于所述请求,在方法操作1106处,初始化游戏机以用于执行所请求云视频游戏。也就是说,游戏机可被启动,加载有云视频游戏的可执行代码,并且被配置用于与用户的交互式游戏操作会话,其可包括加载用于游戏操作会话的用户保存数据或通用保存数据。在一些实现方式中,游戏机是响应于启动云视频游戏的游戏操作的请求而被启动的控制台。
基本上与游戏机的初始化同时进行,在方法操作1108处,在客户端装置与云游戏系统的服务器之间启动流测试。流测试被配置来测试流式传输到用户的客户端装置的视频以及从客户端装置传输到云游戏系统的数据的服务质量。流测试可包括对可指示游戏流式传输服务质量的网络性能指标的测试,包括但不限于最大下游/上游数据率(或下游/上游带宽)、往返时间、时延、丢包率、误码率等。流测试还可包括对客户端装置的硬件和/或软件配置的识别和/或测试。例如,客户端装置的硬件配置可被识别为流测试的一部分,以确定客户端装置的处理能力,以便例如解码和/或解密视频数据以生成用于渲染的视频内容。此外,客户端装置的软件配置可被识别为流测试的一部分,以确定更新是否可用并且为了游戏流式传输目的而被推荐或需要。例如,可能需要将解码器或解密软件更新应用于客户端装置以优化游戏流式传输。
在方法操作1110处,流测试完成。基于流测试的结果,可设定云视频游戏的流式传输的参数,包括但不限于用于游戏机对云视频游戏的执行的参数、用于云视频游戏的执行所生成的视频内容的编码/加密的参数、用于客户端装置接收到的视频数据的解码/解密的参数和/或用于从客户端装置向云游戏机发送输入数据的参数。
在完成流测试之后且在游戏机已被初始化之后,启动云视频游戏的交互式游戏操作,并且流式传输来自云视频游戏的第一视频内容。应理解,来自云视频游戏的视频内容的流式传输可能需要通过游戏机执行云视频游戏来生成视频内容、将所生成的视频内容编码/加密成视频数据、向客户端装置传输视频数据以及将所传输的视频数据解码/解密成视频内容以用于由客户端装置向显示器渲染。
图12示出根据本公开的实现方式的用于提供云游戏服务的系统,所述系统被配置来利用客户端装置执行流测试。在所示实现方式中,云游戏系统被定义成包括云托管系统1208以及数据中心1220和1230。云托管系统1208包括通过网络1206从客户端装置1202接收请求的服务器1210,用户1200通过客户端装置1202与云游戏系统交互。服务器1210可访问与云游戏系统上的用户帐户相关联的用户帐户数据1216,并检索数据以响应来自客户端装置1202的请求。
服务器1210可从客户端装置1202接收请求以启动云视频游戏的流式传输游戏操作,并且作为响应,服务器1210激活具有数据中心指派逻辑1214的数据中心管理器1212,所述数据中心指派逻辑1214被配置来将客户端装置1202指派给数据中心以实例化云视频游戏的会话,并且将从所述数据中心流式传输云视频游戏。应理解,数据中心指派逻辑1214可基于如上所述的各种因素将客户端装置1202指派给给定数据中心,所述因素包括客户端装置1202的位置及其与数据中心的接近度、网络状况、数据中心处的游戏机的可用性、数据中心处的游戏机的预载/卸载状态、数据中心利用、负载平衡、用户1200最近使用的数据中心等。
在所示实现方式中,客户端装置1202已被指派给数据中心1220。因此,数据中心管理器向数据中心服务器1222传达所请求的视频游戏,并且数据中心服务器为所请求的视频游戏启动游戏机1224的初始化。如上所述,初始化可包括游戏机的启动、云视频游戏的可执行代码的加载以及云视频游戏的用户保存数据的加载。与游戏机1224的初始化同时进行,数据中心服务器1222还激活视频服务器1226的流测试逻辑1228,以在数据中心1220和客户端装置1202之间执行流测试。
在一些实现方式中,流测试逻辑1228被配置来通过网络1206将编码/加密的测试视频数据从视频服务器1226发送到客户端装置1202以用于解码/解密。以这种方式,通过网络进行的视频数据的传输可与客户端装置1202的解码/解密能力一起进行测试。应理解,流测试与游戏机的初始化并行地执行。这部分地由游戏机和视频服务器的单独功能来促进,前者被配置来执行云视频游戏,而后者被配置来处理视频流式传输功能。因此,可与游戏机上的云视频游戏的初始化同时进行测试视频流式传输。虽然已讨论了下游视频传输,但应理解,也可与游戏机的加载并行地测试上游数据传输,诸如输入数据从客户端装置1202向游戏机1224的传输。
在一些实现方式中,如果流测试的结果不满足某些要求,或者如果确定可从不同的数据中心获得更好的结果,则可将客户端装置1202再指派给不同的数据中心(诸如数据中心1230),所述数据中心包括呈数据中心服务器1232、游戏机1234以及视频服务器1236的形式的类似组件部分。可与游戏机1234的初始化并行地执行类似的流测试。
图13概念性地示出根据本公开的实现方式的游戏操作会话从一个数据中心向另一数据中心的转换。在时间T1处,用户1300位于东京(第一位置)并且操作客户端装置1302以通过网络1304访问云游戏系统1305。客户端装置1302被指派给接近用户1300的东京数据中心1306。如操作1312所示,云视频游戏在东京数据中心1306处执行,从而为用户1300定义云视频游戏的会话A。会话A提供云视频游戏的交互式游戏操作,其中正执行的视频游戏的视频通过网络1304从东京数据中心流式传输到客户端装置1302,并且来自客户端装置1302的输入数据通过网络1304传输到东京数据中心1306以驱动视频游戏的执行。如操作1314所示,在云视频游戏的会话A结束时,用户保存数据被存储在东京数据中心处。
在随后的时间T2处,用户1300已移动到旧金山(第二位置)。用户1300使用客户端装置1308(其可以是与客户端装置1302相同或不同的装置)来访问云游戏系统1305。虽然用户1300和他的客户端装置1308不再位于东京,但用户的云视频游戏的保存数据仍位于东京数据中心1306处。因此,在接收到启动和/或恢复云视频游戏的游戏操作的请求时,云游戏系统1305在东京数据中心处开始游戏操作,使得用户的游戏保存数据可容易地加载到游戏机,并且为用户最小化延迟。如操作1316所示,加载用户的保存数据并且执行云视频游戏来定义会话C,包括从东京数据中心1306向旧金山的客户端装置1308的视频流式传输,以及输入数据从客户端装置1308返回到东京数据中心1306的传输。
基本上与会话B的加载和/或执行同时进行,可评估流测试或服务质量,如操作1318所示。在当前配置中流式传输云视频游戏的云游戏系统并非最佳,并且可针对旧金山数据中心1310进一步执行流测试或服务质量评估,如操作1320所示。结果可指示,游戏操作会话应被迁移到旧金山数据中心1310,且因此在操作1320处,将云视频游戏的用户保存数据迁移到旧金山数据中心1310;并且在操作1322处,游戏操作会话被转换到旧金山数据中心1310,从而定义通过在旧金山数据中心1310处执行云视频游戏定义的会话C,包括从旧金山数据中心1310通过网络1304向客户端装置1308流式传输视频,以及从其接收输入数据以驱动云视频游戏的执行。
在一些实施方案中,客户端可以是通用计算机、专用计算机、便携式游戏控制台、个人计算机、膝上型计算机、平板计算机、移动计算装置、便携式游戏装置、蜂窝式电话、机顶盒、流媒体接口/装置、智能电视机或联网显示器、或能够被配置来满足如本文所定义的客户端功能的任何其他计算装置。在一个实施方案中,云游戏服务器被配置来检测用户正利用的客户端装置的类型,并且提供适合用户的客户端装置的云游戏体验。例如,可针对用户的客户端装置优化图像设置、音频设置以及其他类型的设置。
图14示出信息服务提供商架构的实施方案。信息服务提供商(ISP)1470向地理上分散并且通过网络1486连接的用户1482递送大量信息服务。ISP可递送诸如股票价格更新的仅一种类型的服务,或者多种服务,诸如广播媒体、新闻、体育、游戏等。另外,每个ISP所提供的服务都是动态的,也就是说,服务可在任何时间点添加或解除。因此,向特定个人提供特定类型服务的ISP可随时间而改变。例如,当用户在她的家乡时,用户可由接近用户的ISP提供服务,而当用户去不同城市旅游时,用户可由不同的ISP提供服务。家乡ISP会将所需信息和数据传送到新ISP,使得用户信息“跟随”用户到达新城市,从而使数据更靠近用户并且更容易访问。在另一实施方案中,可在管理用户信息的主ISP与在主ISP的控制下与用户直接交互的服务器ISP之间建立主-服务器关系。在另一实施方案中,当客户端在世界范围内移动时,数据从一个ISP传送到另一ISP,以使处于适合向用户提供服务的较好位置的ISP成为递送这些服务的ISP。
ISP 1470包括应用服务提供商(ASP)1472,所述应用服务提供商(ASP)1472通过网络向客户提供基于计算机的服务。使用ASP模型提供的软件有时也称为按需软件或软件即服务(SaaS)。提供对特定应用程序(诸如客户关系管理)的访问的简单形式是通过使用标准协议,诸如HTTP。应用软件驻留在供应商的系统上,并且由用户通过使用HTML的web浏览器、通过供应商提供的专用客户端软件或诸如精简型客户端的其他远程接口来访问。
在广泛的地理区域范围内递送的服务通常使用云计算。云计算是一种计算方式,其中通过互联网提供可动态扩展和通常虚拟化的资源作为服务。用户无需是支持它们的“云”中的技术基础设施方面的专家。云计算可被划分为不同服务,诸如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务通常提供从web浏览器访问的在线共用商业应用,而软件和数据被存储在服务器上。基于在计算机网络图中如何描绘互联网以及其隐藏的复杂基础设施的抽象概念,将术语云用作互联网(例如,使用服务器、存储装置和逻辑)的隐喻。
此外,ISP 1470包括由游戏客户端使用来玩单玩家和多玩家视频游戏的游戏处理服务器(GPS)1474。通过互联网玩的大多数视频游戏均通过与游戏服务器的连接来操作。通常,游戏使用专用的服务器应用,所述服务器应用收集来自玩家的数据,并且将其分配给其他玩家。这比对等布置更高效且更有效,但是其需要单独的服务器来托管服务器应用。在另一实施方案中,GPS建立玩家与他们的相应玩游戏装置之间的通信来交换信息而无需依赖集中化GPS。
专用GPS是独立于客户端运行的服务器。此类服务器通常在位于数据中心的专用硬件上运行,从而提供更大带宽和专用处理能力。专用服务器是托管大多数基于PC的多玩家游戏的游戏服务器的优选方法。大型多玩家在线游戏在通常由拥有游戏名称的软件公司托管的专用服务器上运行,从而允许所述专用服务器控制并更新内容。
广播处理服务器(BPS)1476向观众分配音频或视频信号。对非常小范围的观众的广播有时称为窄播。广播分配的最后一站是信号如何到达听众或观看者,并且如同无线电台或电视台,所述信号可通过无线电到达天线和接收器,或可通过有线电视或有线广播(或“无线电缆”)通过电台或直接从网络到达。互联网还可给接受者带来无线电或电视(特别是利用多播),从而允许共享信号和带宽。历史上,广播受地理区域限定,如国家广播或区域广播。然而,在快速互联网激增的情况下,广播不再受地理位置限定,因为内容可到达几乎全世界的任何国家。
存储服务提供商(SSP)1478提供计算机存储空间和相关管理服务。SSP还提供定期备份和归档。通过提供存储作为服务,用户可根据需要订购更多的存储空间。另一主要优点在于,SSP包括备份服务,并且用户在其计算机的硬盘驱动器发生故障的情况下将不会丢失他们的全部数据。此外,多个SSP可具有用户数据的全部或部分拷贝,从而允许用户独立于用户所处的位置或正用于访问数据的装置以高效方式访问数据。举例来说,当用户在移动中时,用户可访问家用计算机中以及移动电话中的个人文件。
通信提供商1480提供与用户的连接性。一种通信提供商是提供对互联网的访问的互联网服务提供商(ISP)。ISP使用适于传送互联网协议数据报的数据传输技术连接其客户,所述数据传输技术诸如拨号上网、DSL、电缆调制解调器、光纤、无线或专用高速互连件。通信提供商还可提供消息接发服务,如电子邮件、即时消息接发和SMS发短信。另一类型的通信提供商是网络服务提供商(NSP),其通过提供对互联网的直接主干访问来销售带宽或网络接入。网络服务提供商可由电信公司、数据承运商、无线通信提供商、互联网服务提供商、提供高速互联网接入的有线电视运营商等组成。
数据交换1488使ISP 1470内部的若干模块互连,并且通过网络1486将这些模块连接到用户1482。数据交换1488可覆盖ISP 1470的全部模块紧密接近的小型区域,或当不同模块在地理上分散时,可覆盖较大的地理区域。举例来说,数据交换1488可包括数据中心的机柜内的快速千兆位以太网(或更快),或洲际虚拟局域网(VLAN)。
用户1482利用客户端装置1484来访问远程服务,所述客户端装置至少包括CPU、存储器、显示器和I/O。客户端装置可以是PC、移动电话、上网本、平板电脑、游戏系统、PDA等。在一个实施方案中,ISP 1470辨别客户端使用的装置类型并调整所采用的通信方法。在其他情况下,客户端装置使用标准通信方法(诸如html)来访问ISP 1470。
本公开的实施方案可通过各种计算机系统配置来实践,包括手持式装置、微处理器系统、基于微处理器的或可编程的消费型电子产品、小型计算机、大型计算机等。本公开还可在分布式计算环境下实践,其中由通过基于有线的或无线网络链接的远程处理装置来执行任务。
考虑到以上实施方案,应理解,本公开可采用涉及存储于计算机系统中的数据的各种计算机实现的操作。这些操作是需要对物理量进行物理操纵的操作。本文所述的形成本公开的部分的任何操作都是有用的机器操作。本公开还涉及用于执行这些操作的装置或设备。所述设备可出于所需目的而专门构造而成,或所述设备可以是由存储在计算机中的计算机程序来选择性地激活或配置的通用计算机。具体来说,各种通用机器可与根据本文的教示所撰写的计算机程序一起使用,或者可更方便地构造更专门的设备来执行所需操作。
本公开还可体现为计算机可读介质上的计算机可读代码。可替代地,可使用上文所述数据交换互连从服务器下载计算机可读代码。计算机可读介质是可存储数据的任何数据存储装置,所述数据随后可由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附加存储(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其他光学和非光学数据存储装置。计算机可读介质可包括分布在网络联接式计算机系统上的计算机可读有形介质,以使得计算机可读代码是以分布方式进行存储和执行。
虽然以特定顺序描述了所述方法操作,但应理解,其他内务处理操作可在操作之间执行,或者可调整操作以使得它们在略微不同的时间发生,或者可分布在系统中,所述系统允许处理操作以与所述处理相关联的各种时间间隔发生,只要叠加操作的处理以所需方式执行即可。
虽然为了理解的清楚性目的而略微详细地描述了前述公开,但很显然,可以在所附权利要求的范围内做出某些变化和修改。因此,本发明的实施方案应被认为是说明性而非限制性的,并且本公开不限于本文所给出的细节,而是可在所描述的实施方案的范围和等效物内进行修改。
图15示意性地示出根据本公开的一个实施方案的游戏控制台(诸如Playstation娱乐装置)的整体系统架构,所述游戏控制台可与用于实现化身控制系统的控制器兼容。提供系统单元1500,其中各种外围装置可连接到系统单元1500。在一些实现方式中,系统单元1500可以是计算服务器。系统单元1500包括:Cell处理器1528;动态随机存取存储器(XDRAM)单元1526;具有专用视频随机存取存储器(VRAM)单元1532的现实合成器图形单元1530;以及I/O桥接器1534。系统单元1500还包括用于从磁盘1540a读取的Blu光盘光盘读取器1540和可移除吸入式硬盘驱动器(HDD)1536,所述Blu光盘光盘读取器和可移除吸入式硬盘驱动器可通过I/O桥接器1534访问。任选地,系统单元1500还包括用于读取压缩闪存卡、Memory存储卡等的存储卡读取器1538,所述存储卡读取器类似地可以通过I/O桥接器1534访问。
I/O桥接器1534还连接到六个通用串行总线(USB)2.0端口1524;千兆位以太网端口1522;IEEE 802.11b/g无线网络(Wi-Fi)端口1520;以及能够支持高达七个蓝牙连接的无线链接端口1518。
在操作中,I/O桥接器1534处理所有无线、USB和以太网数据,包括来自一个或多个游戏控制器1502的数据。例如,当用户玩游戏时,I/O桥接器1534通过蓝牙链接接收来自游戏控制器1502的数据并将其引导至相应地更新游戏的当前状态的Cell处理器1528。
无线、USB和以太网端口还提供用于除游戏控制器1502之外的其他外围装置的连接,诸如:遥控器1504;键盘1506;鼠标1508;如Sony Playstation娱乐装置的便携式娱乐装置1510;诸如摄像机1512的摄像机;以及麦克风头戴式耳机1514。因此,这类外围装置原则上可以无线连接至系统单元1500;例如,便携式娱乐装置1510可通过Wi-Fi专用连接通信,而麦克风头戴式耳机1514可以通过蓝牙链接通信。
提供这些接口意味着Playstation 3装置潜在地也与其他外围装置兼容,所述其他外围装置如数字视频录像机(DVR)、机顶盒、数码摄像机、便携式媒体播放器、IP语音电话、移动电话、打印机以及扫描仪。
在本发明的实施方案中,游戏控制器1502可操作以通过蓝牙链接与系统单元1500无线通信。然而,游戏控制器1502可替代地连接到USB端口,从而还提供用于对游戏控制器1502的电池充电的电力。除一个或多个模拟操纵杆和常规控制按钮之外,游戏控制器对对应于每个轴的平移和旋转的六个自由度的运动敏感。因此,除常规按钮或操纵杆命令之外或取而代之,游戏控制器的用户的手势和移动可转换为游戏的输入。任选地,诸如PlaystationTM便携式装置的其他支持无线的外围装置可用作控制器。就PlaystationTM便携式装置而言,可在装置的屏幕上提供额外的游戏或控制信息(例如,控制指令或生命数)。还可使用其他替代性或补充性控制装置,诸如跳舞毯(未示出)、光枪(未示出)、方向盘和踏板(未示出)或定制的控制器,诸如用于快速响应问答游戏的单个或若干大按钮(也未示出)。
遥控器1504也可操作来通过蓝牙链接与系统单元1500无线通信。遥控器1504包括适于Blu RayTM光盘BD-ROM读取器1540的操作并且适于导览光盘内容的控件。
除了常规预刻录CD和可刻录CD以及所谓的超级音频CD之外,Blu RayTM光盘BD-ROM读取器1540可操作来读取与Playstation和PlayStation 2装置兼容的CD-ROM。除了常规预刻录DVD和可刻录DVD之外,读取器1540也可操作来读取与Playstation 2和PlayStation 3装置兼容的DVD-ROM。读取器1540可进一步操作来读取与Playstation 3装置兼容的BD-ROM,以及常规预刻录和可刻录蓝光光盘。
系统单元1500可操作来通过音频和视频连接器将由Playstation 3装置通过现实合成器图形单元1530生成或解码的音频和视频供应到显示和声音输出装置1542,诸如具有显示器1544和一个或多个扬声器1546的监测器或电视机。音频连接器1550可包括常规的模拟和数字输出,而视频连接器1552可不同地包括分量视频、S视频、复合视频和一个或多个高清晰度多媒体接口(HDMI)输出。因此,视频输出可呈如PAL或NTSC的格式,或呈720p、1080i或1080p的高清晰度。
在本发明的实施方案中,摄像机1512包括单个电荷耦合装置(CCD)、LED指示器以及基于硬件的实时数据压缩和编码设备,使得可以诸如基于帧内图像的MPEG(运动图片专家组)标准的适当格式来传输压缩后的视频数据,以用于由系统单元1500解码。摄像机LED指示器被布置来响应于来自系统单元1500的适当控制数据而照射,例如以便表明不利的照明条件。摄像机1512的实施方案可通过USB、蓝牙或者Wi-Fi通信端口以不同方式连接到系统单元1500。摄像机的实施方案可包括一个或多个相关联的麦克风,并且也能够传输音频数据。在摄像机的实施方案中,CCD可具有适于高清晰度视频捕捉的分辨率。在使用中,摄像机所捕获的图像可例如并入游戏内或解释为游戏控制输入。
一般来说,为了通过系统单元1500的通信端口中的一个与如摄像机或遥控器的外围装置进行成功的数据通信,应提供如装置驱动程序的适当软件片段。装置驱动程序技术是众所周知的并且在此将不详细描述,只是说本领域技术人员应意识到,在所描述的本发明的实施方案中可能需要装置驱动程序或类似的软件接口。
图16是根据本公开的实现方式的游戏系统1600的框图。游戏系统1600被配置来通过网络1615将视频流提供到一个或多个客户端1610。游戏系统1600通常包括视频服务器系统1620和任选的游戏服务器1625。视频服务器系统1620被配置来以最低的服务质量向一个或多个客户端1610提供视频流。例如,视频服务器系统1620可接收改变视频游戏的状态或所述视频游戏内的视角的游戏命令,并且以最小的滞后时间给客户端1610提供反映这种状态变化的更新后的视频流。视频服务器系统1620可被配置来以多种替代视频格式(包括还未定义的格式)提供视频流。此外,视频流可包括配置用于以多种帧速率呈现给用户的视频帧。典型的帧速率是每秒30帧、每秒60帧和每秒1620帧。但是本公开的替代实施方案中包括更高或更低的帧速率。
在本文中被单独称为1610A.、1610B.等的客户端1610可包括头戴式显示器、终端、个人计算机、游戏控制台、平板计算机、电话、机顶盒、信息亭、无线装置、数字板、独立装置、手持式玩游戏装置等。通常,客户端1610被配置来接收经编码的视频流,对视频流进行解码,并且将所得的视频呈现给用户,例如游戏玩家。接收经编码的视频流和/或对视频流进行解码的过程通常包括将个别视频帧存储在客户端的接收缓冲器中。可在与客户端1610成一体的显示器上或在诸如监测器或电视机的单独装置上将视频流呈现给用户。客户端1610任选地被配置来支持一个以上游戏玩家。例如,游戏控制台可被配置来支持两个、三个、四个或更多个同时的玩家。这些玩家中的每一个可接收单独的视频流,或单个视频流可包括特别针对每个玩家而生成(例如,基于每个玩家的视角而生成)的帧的区。客户端1610任选地在地理上分散。游戏系统1600中所包括的客户端的数目可从一个或两个广泛变化到几千个、几万个或更多个。如本文所使用的,术语“游戏玩家”用于指玩游戏的人,并且术语“玩游戏装置”用于指用于玩游戏的装置。在一些实施方案中,玩游戏装置可指合作以向用户递送游戏体验的多个计算装置。例如,游戏控制台和HMD可与视频服务器系统1620合作来递送通过HMD观看的游戏。在一个实施方案中,游戏控制台从视频服务器系统1620接收视频流,并且游戏控制台将视频流或对视频流的更新转发给HMD以便进行渲染。
客户端1610被配置来通过网络1615接收视频流。网络1615可以是任何类型的通信网络,其包括电话网络、互联网、无线网络、电力线网络、局域网、广域网、私有网络等。在典型的实施方案中,通过诸如TCP/IP或UDP/IP的标准协议来传达视频流。可替代地,通过专有标准来传达视频流。
客户端1610的典型示例是个人计算机,所述个人计算机包括处理器、非易失性存储器、显示器、解码逻辑、网络通信能力以及输入装置。解码逻辑可包括硬件、固件和/或存储在计算机可读介质上的软件。用于解码(和编码)视频流的系统在本领域中是熟知的,并且根据所使用的具体编码方案而变化。
客户端1610可(但不需要)还包括被配置来用于修改接收到的视频的系统。例如,客户端可被配置来:执行进一步渲染,将一个视频图像叠加在另一视频图像上,修剪视频图像等。例如,客户端1610可被配置来接收各种类型的视频帧,诸如I帧、P帧和B帧,并且被配置来将这些帧处理成图像以向用户显示。在一些实施方案中,客户端1610的构件被配置来对视频流执行进一步渲染、阴影处理、转换成3-D或类似操作。客户端1610的构件任选地被配置来接收一个以上的音频或视频流。客户端1610的输入装置可包括:例如,单手游戏控制器、双手游戏控制器、手势辨别系统、注视辨别系统、语音辨别系统、键盘、操纵杆、指点装置、力反馈装置、运动和/或位置感测装置、鼠标、触摸屏、神经接口、摄像机、还未开发出的输入装置等。
客户端1610所接收的视频流(和任选的音频流)由视频服务器系统1620生成并提供。如在本文其他地方进一步描述的,这个视频流包括视频帧(并且音频流包括音频帧)。视频帧(例如,它们包括呈适当数据结构的像素信息)被配置来有意义地构成向用户显示的图像。如本文所使用,术语“视频帧”用于指主要包括被配置来构成(例如实现)展示给用户的图像的信息的帧。本文中关于“视频帧”的大部分教义也可适用于“音频帧”。
客户端1610通常被配置来从用户接收输入。这些输入可包括游戏命令,所述游戏命令被配置来改变视频游戏的状态或以其他方式影响游戏操作。可使用输入装置接收游戏命令,和/或可由在客户端1610上执行的计算指令自动生成游戏命令。将接收到的游戏命令通过网络1615从客户端1610传达到视频服务器系统1620和/或游戏服务器1625。例如,在一些实施方案中,将游戏命令通过视频服务器系统1620传达到游戏服务器1625。在一些实施方案中,将游戏命令的单独拷贝从客户端1610传达到游戏服务器1625和视频服务器系统1620。游戏命令的传达任选地取决于命令的身份。通过用来向客户端1610A提供音频或视频流的不同路线或通信信道,从客户端1610A任选地传达游戏命令。
游戏服务器1625任选地由不同于视频服务器系统1620的实体来操作。例如,游戏服务器1625可由多玩家游戏发行商来操作。在这个示例中,视频服务器系统1620任选地被游戏服务器1625视为客户端,并且任选地被配置来(从游戏服务器1625的角度看)表现为执行现有技术游戏引擎的现有技术客户端。视频服务器系统1620与游戏服务器1625之间的通信任选地通过网络1615发生。因此,游戏服务器1625可以是向多个客户端发送游戏状态信息的现有技术多玩家游戏服务器,所述客户端中的一个是视频服务器系统1620。视频服务器系统1620可被配置来同时与游戏服务器1625的多个实例通信。例如,视频服务器系统1620可被配置来向不同用户提供多个不同视频游戏。这些不同视频游戏中的每一个可由不同游戏服务器1625支持和/或由不同实体发行。在一些实施方案中,视频服务器系统1620的一些地理上分布式实例被配置来向多个不同用户提供游戏视频。视频服务器系统1620的这些实例中的每一个可与游戏服务器1625的相同实例通信。视频服务器系统1620与一个或多个游戏服务器1625之间的通信任选地通过专用通信信道发生。例如,视频服务器系统1620可通过高带宽信道连接到游戏服务器1625,所述高带宽信道专门用于这两个系统之间的通信。
视频服务器系统1620至少包括:视频源1630、I/O装置1645、处理器1650以及非暂时存储装置1655。视频服务器系统1620可包括一个计算装置或分布在多个计算装置当中。这些计算装置任选地通过诸如局域网的通信系统连接。
视频源1630被配置来提供视频流,例如,流式传输视频或形成运动图片的一系列视频帧。在一些实施方案中,视频源1630包括视频游戏引擎和渲染逻辑。视频游戏引擎被配置来接收来自玩家的游戏命令,并且基于接收到的命令维持视频游戏的状态的拷贝。这个游戏状态包括游戏环境中的对象的定位,并且通常包括视角。游戏状态还可包括对象的性质、图像、颜色和/或纹理。通常基于游戏规则以及游戏命令(诸如移动、转动、攻击、设置焦点、交互、使用等)来维持游戏状态。游戏引擎的部分任选地设置在游戏服务器1625内。游戏服务器1625可基于从使用地理上分散开的客户端的多个玩家接收到的游戏命令来维持游戏状态的拷贝。在这些情况下,游戏服务器1625将游戏状态提供给视频源1630,其中存储游戏状态的拷贝并且执行渲染。游戏服务器1625可通过网络1615直接从客户端1610接收游戏命令,和/或可通过视频服务器系统1620接收游戏命令。
视频源1630通常包括渲染逻辑,例如硬件、固件和/或被存储在计算机可读介质(诸如存储装置1655)上的软件。这个渲染逻辑被配置来基于游戏状态创建视频流的视频帧。所述渲染逻辑的全部或部分任选地设置在图形处理单元(GPU)内。渲染逻辑通常包括被配置来用于确定对象之间的三维空间关系和/或用于基于游戏状态和视角来应用适当的纹理等的处理级。渲染逻辑产生原始视频,然后常常对原始视频进行编码,然后传达给客户端1610。例如,可根据Adobe标准、.wav、H.265、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帧。如本文中所使用,术语“帧大小”意图指帧内的像素数。术语“帧数据大小”用来指存储所述帧所需的字节数。
在替代实施方案中,视频源1630包括诸如摄像机的视频录制装置。此摄像机可用来生成可包括在计算机游戏的视频流中的延迟视频或实况视频。所得视频流任选地包括所渲染的图像和使用静态摄像机或视频摄像机录制的图像两者。视频源1630还可包括被配置来存储将要包括在视频流中的先前录制视频的存储装置。视频源1630还可包括:被配置来检测对象(例如,人)的运动或定位的运动或定位感测装置;以及被配置来基于所检测运动和/或定位来确定游戏状态或产生视频的逻辑。
视频源1630任选地被配置来提供被配置来放在其他视频上的叠加。例如,这些叠加可包括命令界面、登录指令、发给游戏玩家的消息、其他游戏玩家的图像、其他游戏玩家的视频馈送(例如网络摄像机视频)。在客户端1610A包括触摸屏界面或注视检测界面的实施方案中,所述叠加可包括虚拟键盘、操纵杆、触摸板等。在叠加的一个示例中,将玩家的语音叠加在音频流上。视频源1630任选地还包括一个或多个音频源。
在视频服务器系统1620被配置来基于来自多于一个的玩家的输入来维持游戏状态的实施方案中,每个玩家可具有不同视角,视角包括观看的位置和方向。视频源1630任选地被配置来基于玩家的视角为每个玩家提供单独的视频流。此外,视频源1630可被配置来向客户端1610中的每一个提供不同的帧大小、帧数据大小和/或编码。视频源1630任选地被配置来提供3-D视频。
I/O装置1645被配置用于视频服务器系统1620,以发送和/或接收信息,所述信息诸如视频、命令、对信息的请求、游戏状态、注视信息、装置运动、装置位置、用户运动、客户端身份、玩家身份、游戏命令、安全信息、音频等。I/O装置1645通常包括诸如网卡或调制解调器的通信硬件。I/O装置1645被配置来与游戏服务器1625、网络1615和/或客户端1610通信。
处理器1650被配置来执行本文中讨论的视频服务器系统1620的各种组件内所包括的逻辑,例如软件。例如,处理器1650可用软件指令编程以便执行视频源1630、游戏服务器1625和/或客户端限定器1660的功能。视频服务器系统1620任选地包括处理器1650的一个以上的实例。处理器1650还可编程有软件指令,以便执行视频服务器系统1620所接收的命令或协调本文中讨论的游戏系统1600的各种元件的操作。处理器1650可包括一个或多个硬件装置。处理器1650是电子处理器。
存储装置1655包括非暂时模拟和/或数字存储装置。例如,存储装置1655可包括被配置来存储视频帧的模拟存储装置。存储装置1655可包括计算机可读数字存储装置,例如,硬盘驱动器、光盘驱动器或固态存储装置。存储装置1615(例如由适当的数据结构或文件系统)被配置来存储视频帧、人工帧、包括视频帧和人工帧两者的视频流、音频帧、音频流等。存储装置1655任选地分布在多个装置当中。在一些实施方案中,存储装置1655被配置来存储本文中其他地方所讨论的视频源1630的软件组件。这些组件可存储为准备好在需要时供应的格式。
视频服务器系统1620任选地还包括客户端限定器1660。客户端限定器1660被配置用于远程确定诸如客户端1610A或1610B的客户端的能力。这些能力可包括客户端1610A本身的能力与介于客户端1610A与视频服务器系统1620之间的一个或多个通信信道的能力。例如,客户端限定器1660可被配置来测试通过网络1615的通信信道。
客户端限定器1660可手动或自动地确定(例如,发现)客户端1610A的能力。手动确定包括与客户端1610A的用户通信以及要求用户提供能力。例如,在一些实施方案中,客户端限定器1660被配置来在客户端1610A的浏览器内显示图像、文字等。在一个实施方案中,客户端1610A是包括浏览器的HMD。在另一实施方案中,客户端1610A是具有浏览器的游戏控制台,所述浏览器可显示在HMD上。所显示的对象请求用户输入客户端1610A的信息,诸如操作系统、处理器、视频解码器类型、网络连接类型、显示器分辨率等。向客户端限定器1660传达回用户所输入的信息。
自动确定可例如通过在客户端1610A上执行代理程序和/或通过向客户端1610A发送测试视频来进行。代理程序可包括嵌入网页中或安装为加载项的计算指令,诸如java脚本。代理程序任选地由客户端限定器1660提供。在各种实施方案中,代理程序可发现客户端1610A的处理能力、客户端1610A的解码和显示能力、客户端1610A与视频服务器系统1620之间的通信信道的滞后时间可靠性和带宽、客户端1610A的显示器类型、客户端1610A上存在的防火墙、客户端1610A的硬件、在客户端1610A上执行的软件、客户端1610A内的注册表项等。
客户端限定器1660包括硬件、固件和/或存储在计算机可读介质上的软件。客户端限定器1660任选地放置在与视频服务器系统1620的一个或多个其他元件分开的计算装置上。例如,在一些实施方案中,客户端限定器1660被配置来确定客户端1610与视频服务器系统1620的一个以上的实例之间的通信信道的特性。在这些实施方案中,客户端限定器所发现的信息可用来确定视频服务器系统1620的哪个实例最适合于向客户端1610中的一个递送流式传输视频。
本公开的实施方案可通过各种计算机系统配置来实践,包括手持式装置、微处理器系统、基于微处理器的或可编程的消费型电子产品、小型计算机、大型计算机等。本公开还可在分布式计算环境下实践,其中由通过基于有线的或无线网络链接的远程处理装置来执行任务。
考虑到以上实施方案,应理解,本公开可采用涉及存储于计算机系统中的数据的各种计算机实现的操作。这些操作是需要对物理量进行物理操纵的操作。本文所述的形成本公开的部分的任何操作都是有用的机器操作。本公开还涉及用于执行这些操作的装置或设备。所述设备可出于所需目的而专门构造而成,或所述设备可以是由存储在计算机中的计算机程序来选择性地激活或配置的通用计算机。具体来说,各种通用机器可与根据本文的教示所撰写的计算机程序一起使用,或者可更方便地构造更专门的设备来执行所需的操作。
本公开还可体现为计算机可读介质上的计算机可读代码。计算机可读介质是可存储数据的任何数据存储装置,所述数据随后可由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附加存储(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其他光学和非光学数据存储装置。计算机可读介质可包括分布在网络联接式计算机系统上的计算机可读有形介质,以使得计算机可读代码是以分布方式进行存储和执行。
虽然以特定顺序描述了所述方法操作,但应理解,其他内务处理操作可在操作之间执行,或者可调整操作以使得它们在略微不同的时间发生,或者可分布在系统中,所述系统允许处理操作以与所述处理相关联的各种时间间隔发生,只要叠加操作的处理以所需方式执行即可。
虽然为了理解的清楚性目的而略微详细地描述了前述公开,但很显然,可以在所附权利要求的范围内做出某些变化和修改。因此,本发明的实施方案应被认为是说明性而非限制性的,并且本公开不限于本文所给出的细节,而是可在本公开的范围和等效物内进行修改。
Claims (15)
1.一种用于云游戏中的用户保存数据管理的方法,其包括:
由云游戏服务器计算机通过网络接收来自客户端装置的启动云视频游戏的游戏操作的请求;
响应于所述请求,将所述客户端装置指派给第一数据中心,从所述第一数据中心流式传输所述云视频游戏的所述游戏操作;
响应于所述请求,通过所述网络启动用户保存数据从第二数据中心向所述第一数据中心的传送,所述用户保存数据用于所述云视频游戏并且和与所述客户端装置相关联的用户账户相关联;
在所述第一数据中心处的云游戏机上加载所述云视频游戏,所述云视频游戏的所述加载包括通用保存数据的加载;
通过将由所述云游戏机对所述云视频游戏的执行生成的视频数据流式传输到所述客户端装置,以及从所述客户端装置接收输入数据以驱动所述云视频游戏的所述执行,利用所述通用保存数据来启动所述云视频游戏的交互式游戏操作;
在所述交互式游戏操作期间,完成所述用户保存数据向所述第一数据中心的所述传送;
应用所述用户保存数据以更新所述云视频游戏的所述执行。
2.如权利要求1所述的方法,其中所述通用保存数据包括由所述云视频游戏的所述执行所定义的一个或多个变量的第一值,所述通用保存数据不与特定用户相关联。
3.如权利要求2所述的方法,其中所述用户保存数据包括所述一个或多个变量的第二值,所述第二值是从与所述用户账户相关联的所述云视频游戏的先前执行来定义,所述用户保存数据的所述应用包括利用所述第二值更新所述一个或多个变量。
4.如权利要求3所述的方法,其中应用所述用户保存数据以更新所述云视频游戏的所述执行是在所述交互式游戏操作期间执行,使得在所述用户保存数据被应用于更新所述一个或多个变量时,所述云视频游戏的执行和所述交互式游戏操作继续。
5.如权利要求3所述的方法,其中应用所述用户保存数据以更新所述云视频游戏的所述执行包括识别所述云视频游戏中的断点,其中暂停所述云视频游戏的所述执行和所述交互式游戏操作,并且在所述云视频游戏的所述断点期间应用所述用户保存数据用于游戏操作。
6.如权利要求1所述的方法,其中在所述云游戏机上加载所述云视频游戏是响应于来自所述客户端装置的启动所述云视频游戏的游戏操作的所述请求而执行。
7.一种用于云游戏中的用户保存数据管理的方法,其包括:
由云游戏服务器计算机通过网络接收来自客户端装置的启动云视频游戏的游戏操作的请求;
将所述客户端装置指派给数据中心,从所述数据中心流式传输所述云视频游戏;
使所述数据中心处的云游戏机加载所述云视频游戏;
与所述云游戏机的所述加载同时进行,在所述数据中心与所述客户端装置之间执行流测试,以确定所述云视频游戏的所述流式传输的服务质量;
在所述云游戏机的所述加载和所述流测试的所述执行完成之后,通过将由所述云游戏机对所述云视频游戏的执行所生成的视频数据流式传输到所述客户端装置,以及从所述客户端装置接收输入数据以驱动所述云视频游戏的所述执行,来启动所述云视频游戏的交互式游戏操作。
8.如权利要求7所述的方法,其中将视频数据流式传输到所述客户端装置由所述数据中心的视频服务器执行,所述视频服务器接收由所述云游戏机对所述云视频游戏的所述执行所生成的视频内容,所述视频服务器编码所述视频内容,以生成待流式传输到所述客户端装置的所述视频数据。
9.如权利要求8所述的方法,其中执行所述流测试包括在所述视频服务器与所述客户端装置之间通过所述网络建立连接,以及测试用于所述视频数据的所述流式传输或所述输入数据的所述接收的所述连接。
10.如权利要求9所述的方法,其中所述视频服务器对所述视频内容的所述编码的一个或多个参数根据所述视频服务器与所述客户端装置之间的所述连接的所述测试的结果来确定。
11.如权利要求10所述的方法,其中所述视频内容的所述编码的所述参数包括所述视频内容的压缩率。
12.如权利要求7所述的方法,其还包括:
与所述云游戏机的所述加载同时进行,确定所述客户端装置的用于所述云视频游戏的所述流式传输的硬件或软件配置。
13.一种用于云游戏中的用户保存数据管理的方法,其包括:
由云游戏服务器计算机通过网络接收来自客户端装置的启动云视频游戏的游戏操作的请求;
将所述客户端装置指派给第一数据中心,从所述第一数据中心流式传输所述云视频游戏,所述第一数据中心包括第一云游戏机;
使所述第一云游戏机加载所述云视频游戏;
通过将由所述第一云游戏机对所述云视频游戏的执行所生成的视频数据流式传输到所述客户端装置,以及从所述客户端装置接收输入数据以驱动所述云视频游戏的所述执行,来启动所述云视频游戏的交互式游戏操作;
与所述云视频游戏的所述加载或所述云视频游戏的所述交互式游戏操作同时进行,评估所述客户端装置与所述第一数据中心之间的服务质量,并且评估所述客户端装置与第二数据中心之间的服务质量;
响应于确定所述客户端装置与所述第二数据中心之间的所述服务质量大于所述客户端装置与所述第一数据中心之间的所述服务质量,通过所述网络将所述云视频游戏的所述执行从所述第一数据中心处的所述第一云游戏机迁移到所述第二数据中心处的第二游戏机。
14.如权利要求13所述的方法,其中迁移所述云视频游戏的所述执行包括使所述第二游戏机加载所述云视频游戏以及通过所述网络将由所述第一云游戏机对所述云视频游戏的所述执行所定义的游戏状态数据传送到所述第二游戏机。
15.如权利要求13所述的方法,其中迁移所述云视频游戏的所述执行包括:识别所述云视频游戏中的断点,其中暂停所述云视频游戏的所述执行和所述交互式游戏操作;以及当所述云视频游戏的所述执行到达所述云视频游戏中的所述断点时,迁移所述云视频游戏的所述执行。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562273007P | 2015-12-30 | 2015-12-30 | |
US62/273,007 | 2015-12-30 | ||
US15/011,283 | 2016-01-29 | ||
US15/011,283 US9993729B2 (en) | 2015-08-19 | 2016-01-29 | User save data management in cloud gaming |
PCT/US2016/067888 WO2017116874A1 (en) | 2015-12-30 | 2016-12-20 | User save data management in cloud gaming |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109152955A CN109152955A (zh) | 2019-01-04 |
CN109152955B true CN109152955B (zh) | 2022-09-23 |
Family
ID=59225367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680082521.3A Active CN109152955B (zh) | 2015-12-30 | 2016-12-20 | 云游戏中的用户保存数据管理方法 |
Country Status (4)
Country | Link |
---|---|
EP (2) | EP3662980B1 (zh) |
JP (1) | JP6959925B2 (zh) |
CN (1) | CN109152955B (zh) |
WO (1) | WO2017116874A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726851B2 (en) * | 2017-08-31 | 2020-07-28 | Sony Interactive Entertainment Inc. | Low latency audio stream acceleration by selectively dropping and blending audio blocks |
JP7022555B2 (ja) * | 2017-10-05 | 2022-02-18 | キヤノン株式会社 | 情報処理装置、データ移行方法、およびプログラム |
CN110393921B (zh) * | 2019-08-08 | 2022-08-26 | 腾讯科技(深圳)有限公司 | 云游戏的处理方法、装置、终端、服务器及存储介质 |
US11343354B2 (en) * | 2019-10-23 | 2022-05-24 | Nvidia Corporation | Increasing user engagement during computing resource allocation queues for cloud services |
CN111064700B (zh) * | 2019-11-07 | 2022-04-29 | 咪咕互动娱乐有限公司 | 云游戏的下载方法、装置及系统 |
CN111068305B (zh) * | 2019-11-28 | 2023-10-20 | 咪咕视讯科技有限公司 | 云游戏加载控制方法、装置、电子设备及存储介质 |
CN113018868B (zh) * | 2019-12-09 | 2023-02-10 | 华为技术有限公司 | 云游戏登录方法、装置和系统 |
CN112436973B (zh) * | 2020-02-11 | 2022-04-19 | 上海哔哩哔哩科技有限公司 | 一种用于云游戏的服务体验指标自动化测试方法与设备 |
CN111617487B (zh) * | 2020-05-22 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 游戏应用中的帐号接入方法和装置、存储介质及电子设备 |
CN111643903B (zh) * | 2020-05-22 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 云游戏的控制方法、装置、电子设备以及存储介质 |
CN111813686B (zh) * | 2020-07-20 | 2022-05-27 | 腾讯科技(深圳)有限公司 | 一种游戏测试方法、装置、测试终端及存储介质 |
CN112138376A (zh) * | 2020-09-23 | 2020-12-29 | 厦门雅基软件有限公司 | 云游戏存档方法、装置和电子设备 |
CN112954020B (zh) * | 2021-01-28 | 2022-09-06 | 广州虎牙科技有限公司 | 游戏控制方法、装置、电子设备和计算机可读存储介质 |
TWI768972B (zh) * | 2021-06-17 | 2022-06-21 | 宏碁股份有限公司 | 遊戲系統及其遊戲伺服器操作方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010240210A (ja) * | 2009-04-07 | 2010-10-28 | Taito Corp | ゲームシステム、ゲームサーバ |
WO2013128709A1 (ja) * | 2012-03-02 | 2013-09-06 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、情報処理装置 |
CN104941181A (zh) * | 2015-06-18 | 2015-09-30 | 深圳市新众玩网络科技有限公司 | 一种实现不同智能终端之间游戏实时互动的方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120059699A1 (en) * | 2011-11-02 | 2012-03-08 | Zhou Dylan T X | Methods and systems to advertise and sell products or services via cloud gaming environments |
US9138644B2 (en) * | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US7465231B2 (en) * | 2004-05-20 | 2008-12-16 | Gametap Llc | Systems and methods for delivering content over a network |
JP5207648B2 (ja) * | 2007-03-30 | 2013-06-12 | 株式会社カプコン | プログラムおよびコンピュータシステム |
US9211473B2 (en) * | 2008-12-15 | 2015-12-15 | Sony Computer Entertainment America Llc | Program mode transition |
US20090325690A1 (en) * | 2008-06-26 | 2009-12-31 | Microsoft Corporation | Roaming Saved Game |
US8506402B2 (en) * | 2009-06-01 | 2013-08-13 | Sony Computer Entertainment America Llc | Game execution environments |
US9381432B2 (en) * | 2012-08-24 | 2016-07-05 | Microsoft Technology Licensing, Llc | Game migration |
US20140256420A1 (en) * | 2013-03-11 | 2014-09-11 | Microsoft Corporation | Univied game preview |
US20150126282A1 (en) * | 2013-11-01 | 2015-05-07 | Numecent Holdings Inc. | Adaptive application streaming in cloud gaming |
US9993729B2 (en) * | 2015-08-19 | 2018-06-12 | Sony Interactive Entertainment America Llc | User save data management in cloud gaming |
-
2016
- 2016-12-20 CN CN201680082521.3A patent/CN109152955B/zh active Active
- 2016-12-20 EP EP20151242.3A patent/EP3662980B1/en active Active
- 2016-12-20 JP JP2018534566A patent/JP6959925B2/ja active Active
- 2016-12-20 EP EP16823489.6A patent/EP3397363B1/en active Active
- 2016-12-20 WO PCT/US2016/067888 patent/WO2017116874A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010240210A (ja) * | 2009-04-07 | 2010-10-28 | Taito Corp | ゲームシステム、ゲームサーバ |
WO2013128709A1 (ja) * | 2012-03-02 | 2013-09-06 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、情報処理装置 |
CN104941181A (zh) * | 2015-06-18 | 2015-09-30 | 深圳市新众玩网络科技有限公司 | 一种实现不同智能终端之间游戏实时互动的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3397363B1 (en) | 2020-02-05 |
WO2017116874A1 (en) | 2017-07-06 |
JP2019509078A (ja) | 2019-04-04 |
EP3397363A1 (en) | 2018-11-07 |
CN109152955A (zh) | 2019-01-04 |
JP6959925B2 (ja) | 2021-11-05 |
EP3662980A1 (en) | 2020-06-10 |
EP3662980B1 (en) | 2021-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11213744B2 (en) | User save data transfer management for fast initiation of cloud video game | |
US11623141B2 (en) | Cloud game streaming with client side asset integration | |
CN109152955B (zh) | 云游戏中的用户保存数据管理方法 | |
JP6695449B2 (ja) | ブラウザベースのクラウドゲーム | |
US11759707B2 (en) | Methods and systems for scheduling game play of a video game | |
US10709980B2 (en) | Web explorer for gaming platform interface | |
US11497990B2 (en) | Crowd sourced cloud gaming using peer-to-peer streaming |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |