(57)【要約】クラウドゲーミングサーバコンピュータによって、ネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求をクライアントデバイスから受信し、要求に応答して、クラウドビデオゲームのゲームプレイをストリーミングする第１のデータセンタに、クライアントデバイスを割り当て、要求に応答して、ユーザ保存データを、ネットワークを介して、第２のデータセンタから第１のデータセンタに送信することを開始し、第１のデータセンタにおいて、クラウドゲーミング機上にクラウドビデオゲームをロードし、クラウドビデオゲームのロードは汎用保存データのロードを含むものであり、クラウドビデオゲームの対話型ゲームプレイを汎用保存データで開始し、対話型ゲームプレイの間、ユーザ保存データの第１のデータセンタへの送信を完了し、ユーザ保存データを適用してクラウドビデオゲームの実行を更新する方法が提供される。【選択図】図８Ａ
2019509078.tif 000002
【特許請求の範囲】
【請求項１】
クラウドゲーミングサーバコンピュータによって、ネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求をクライアントデバイスから受信し、
前記要求に応答して、前記クラウドビデオゲームの前記ゲームプレイをストリーミングする第１のデータセンタに、前記クライアントデバイスを割り当て、
前記要求に応答して、前記クラウドビデオゲームのための、前記クライアントデバイスに関連するユーザアカウントに関連するユーザ保存データを、前記ネットワークを介して、第２のデータセンタから前記第１のデータセンタに送信を開始し、
前記第１のデータセンタにおいて、クラウドゲーミング機上に前記クラウドビデオゲームをロードし、前記クラウドビデオゲームの前記ロードは汎用保存データのロードを含むものであり、
前記クラウドゲーミング機によって前記クラウドビデオゲームの実行から生成されたビデオデータを前記クライアントデバイスにストリーミングすることによって、前記クラウドビデオゲームの対話型ゲームプレイを前記汎用保存データで開始し、前記クラウドビデオゲームの前記実行を駆動する入力データを前記クライアントデバイスから受信し、
前記対話型ゲームプレイの間、前記ユーザ保存データの前記第１のデータセンタへの前記送信を完了し、
前記ユーザ保存データを適用して前記クラウドビデオゲームの前記実行を更新する、方法。
【請求項２】
前記汎用保存データは前記クラウドビデオゲームの前記実行によって定義された１つ以上の変数の第１の値を含み、前記汎用保存データは特定のユーザに関連していない、請求項１に記載の方法。
【請求項３】
前記ユーザ保存データは前記１つ以上の変数の第２の値を含み、前記第２の値は、前記ユーザアカウントに関連した前記クラウドビデオゲームの以前の実行から定義されており、前記ユーザ保存データの前記適用は、前記１つ以上の変数を前記第２の値で更新する、請求項２に記載の方法。
【請求項４】
前記ユーザ保存データを適用して前記クラウドビデオゲームの前記実行の更新は、前記対話型ゲームプレイの間に行われ、これによって、前記ユーザ保存データが適用されて前記１つ以上の変数を更新しながら前記クラウドビデオゲーム及び前記対話型ゲームプレイの実行が継続する、請求項３に記載の方法。
【請求項５】
前記ユーザ保存データを適用して前記クラウドビデオゲームの前記実行の更新は、
前記クラウドビデオゲーム内で前記クラウドビデオゲーム及び前記対話型ゲームプレイの前記実行が一時停止するブレークポイントを識別し、
前記クラウドビデオゲーム内の前記ブレークポイント中にゲームプレイに前記ユーザ保存データを適用する、請求項３に記載の方法。
【請求項６】
前記クラウドビデオゲームの前記クラウドゲーミング機へのロードでは、前記クライアントデバイスからの、前記クラウドビデオゲームのゲームプレイを開始する前記要求に応答して行われる、請求項１に記載の方法。
【請求項７】
クラウドゲーミングサーバコンピュータによって、ネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求をクライアントデバイスから受信し、
前記クラウドビデオゲームをストリーミングするデータセンタに、前記クライアントデバイスを割り当て、
前記データセンタにおいて、クラウドゲーミング機に前記クラウドビデオゲームをロードし、
前記クラウドゲーミング機の前記ロードと実質的に同時に、前記データセンタと前記クライアントデバイスとの間にストリームテストを行い、前記クラウドビデオゲームの前記ストリーミングのサービス品質を判断する、前記ストリームテストを行い、
前記クラウドゲーミング機の前記ロードの完了及び前記ストリームテストの前記実行後に、前記クラウドゲーミング機によって前記クラウドビデオゲームの実行から生成されたビデオデータを前記クライアントデバイスにストリーミングすることによって、前記クラウドビデオゲームの対話型ゲームプレイを開始し、
前記クラウドビデオゲームの前記実行を駆動する入力データを前記クライアントデバイスから受信する、方法。
【請求項８】
前記クライアントデバイスへのビデオデータのストリーミングでは、前記データセンタのビデオサーバによって行われ、
前記ビデオサーバは、前記クラウドゲーミング機による前記クラウドビデオゲームの前記実行によって生成されたビデオコンテンツを受信し、
前記ビデオサーバは、前記ビデオコンテンツを符号化して、前記クライアントデバイスにストリーミングされる前記ビデオデータを生成する、請求項７に記載の方法。
【請求項９】
前記ストリームテストでは、
前記ビデオサーバと前記クライアントデバイスとの間の前記ネットワークを介した接続を確立し、
前記ビデオデータの前記ストリーミングまたは前記入力データの前記受信のために前記接続をテストする、請求項８に記載の方法。
【請求項１０】
前記ビデオサーバによる前記ビデオコンテンツの前記符号化のための１つ以上のパラメータは、前記ビデオサーバと前記クライアントデバイスとの間の前記接続の前記テストの結果から決定される、請求項９に記載の方法。
【請求項１１】
前記ビデオコンテンツの前記符号化のための前記パラメータは、前記ビデオコンテンツの圧縮率を含む、請求項１０に記載の方法。
【請求項１２】
前記クラウドゲーミング機の前記ロードと実質的に同時に、前記クラウドビデオゲームの前記ストリーミングのために前記クライアントデバイスのハードウェアまたはソフトウェア構成を決定することとをさらに備える、請求項７に記載の方法。
【請求項１３】
クラウドゲーミングサーバコンピュータによって、ネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求をクライアントデバイスから受信し、
前記クラウドビデオゲームをストリーミングする第１のデータセンタに、前記クライアントデバイスを割り当て、前記第１のデータセンタは第１のクラウドゲーミング機を含むものであり、
前記第１のクラウドゲーミング機に前記クラウドビデオゲームをロードし、
前記第１のクラウドゲーミング機によって前記クラウドビデオゲームの実行から生成されたビデオデータを前記クライアントデバイスにストリーミングすることによって、前記クラウドビデオゲームの対話型ゲームプレイを開始し、前記クラウドビデオゲームの前記実行を駆動する入力データを前記クライアントデバイスから受信し、
前記クラウドビデオゲームまたは前記クラウドビデオゲームの前記対話型ゲームプレイの前記ロードと実質的に同時に、前記クライアントデバイスと前記第１のデータセンタとの間のサービス品質を評価し、前記クライアントデバイスと第２のデータセンタとの間のサービス品質を評価し、
前記クライアントデバイスと前記第２のデータセンタとの間の前記サービス品質が、前記クライアントデバイスと前記第１のデータセンタとの間の前記サービス品質を上回ると判断することに応じて、前記第１のデータセンタにある前記第１のゲーミング機から、前記第２のデータセンタにある第２のゲーミング機に、前記ネットワークを介して、前記クラウドビデオゲームの前記実行を移行する、方法。
【請求項１４】
前記クラウドビデオゲームへの前記実行の移行は、
前記第２のゲーミング機に前記クラウドビデオゲームをロードし、
前記第１のクラウドゲーミング機による前記クラウドビデオゲームの前記実行から定義されるゲーム状態データを、前記ネットワークを介して前記第２のゲーミング機に送信する、請求項１３に記載の方法。
【請求項１５】
前記クラウドビデオゲームの前記実行の移行は、
前記クラウドビデオゲーム及び前記対話型ゲームプレイの前記実行が一時停止する前記クラウドビデオゲーム内のブレークポイントを識別し、
前記クラウドビデオゲームの前記実行が前記クラウドビデオゲーム内の前記ブレークポイントに到達したときに、前記クラウドビデオゲームの前記実行を移行する、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、クラウドゲーミングにおけるユーザ保存データ管理のシステム及び方法に関し、より詳細には、クラウドビデオゲームのためのユーザ保存データの移行と同時にクラウドビデオゲームのゲームプレイの開始を行うことに関する。
【背景技術】
【０００２】
現在、急速に成長中の技術分野は、クラウドゲーミングの分野である。ユーザは、インターネットなどのネットワークを介してクラウドゲーミングサイト上の多数のゲームにアクセスし、対話／ゲームのプレイを開始することができる。ゲームプレイ用のゲームを選択するために、ユーザはクラウドゲーミングサイト上の自分のアカウントにアクセスする。ユーザには、ゲームプレイのためのユーザアカウントで利用可能なゲームのリストが提供される。ユーザが閲覧及び／またはゲームプレイのためのゲームを選択すると、ユーザは、例えば、ゲームプレイのためのゲームにアクセスできるまでに、クラウドゲーミング機へのユーザアカウントの割り当て、ゲームコードのロード、グラフィックスエンジンの初期化、グラフィックスのロード、ゲーム及びユーザ設定のアップロードなどが行われるのを待たなければならないだろう。さらに、ビデオゲームの初期コンテンツ全体が一般的には線形プロセスで進行するため、ユーザは、ビデオゲームの初期コンテンツ内の各選択時点または他のブレークポイントの後に、次のコンテンツがロードされ、実行され、ユーザのクライアントデバイスにストリーミングされるまで待たなければならない。選択ゲームにアクセスしてプレイするまでの待ち時間は、グラフィックが多いゲームではさらに長くなり得る。待ち時間によりユーザはゲームへの関心を失い、ゲームサイトとの対話を停止することがあり、その結果、ゲーム開発者／ゲームサイト所有者に潜在的な損失をもたらす。
【０００３】
さらに、ビデオゲーム用のユーザ保存データは、以前のデータセンタから現在割り当てられているデータセンタに移行する必要があり得る。ユーザの保存データは非常に広範囲に及ぶ可能性があるので、このプロセスは、ゲームプレイの開始に著しい遅延を引き起こす可能性がある。
【０００４】
本開示の実施形態はこのような背景の下でなされたものである。
【発明の概要】
【０００５】
本開示の形態は、クラウドベースのビデオゲームを提供するために使用される方法及びシステムを提供し、より具体的には、ゲームプレイがストリーミングされるデータセンタにクラウドビデオゲームのためのユーザ保存データを送信するのと同時にゲームプレイを迅速に開始することができるよう、ユーザ保存データの管理を提供する。
【０００６】
ユーザがクラウドビデオゲームをプレイするとき、ビデオゲームのための任意のユーザ専用データを含み得るユーザ保存データが生成される。ユーザ保存データは非常に広範囲に及ぶ可能性があり、クラウドゲーミングアーキテクチャにおいて、あるデータセンタから別のデータセンタにユーザ保存データを送信するには、著しく時間が必要となる可能性がある。所与のビデオゲームのためのユーザのユーザ保存データが記憶されているデータセンタにユーザが割り当てられない場合、この送信によって、所与のビデオゲームのゲームプレイの開始に望ましくない遅延が発生する可能性がある。ゆえに、本開示の形態は、ユーザ保存データの代わりに汎用ゲームデータのロードを提供し、これによって、ユーザは、以前の位置からゲームプレイがストリーミングされる現在のデータセンタ位置にユーザ保存データを送信するのと同時にゲームプレイを開始することができる。ユーザ保存データの送信が完了するか、または段階的に完了している場合、ユーザ保存データはビデオゲームの実行に統合される。
【０００７】
いくつかの形態によれば、クラウドゲーミングサーバコンピュータによって、ネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求をクライアントデバイスから受信し、要求に応答して、クラウドビデオゲームのゲームプレイをストリーミングする第１のデータセンタに、クライアントデバイスを割り当て、要求に応答して、クラウドビデオゲームのための、クライアントデバイスに関連するユーザアカウントに関連するユーザ保存データを、ネットワークを介して、第２のデータセンタから第１のデータセンタに送信することを開始し、第１のデータセンタにおいて、クラウドゲーミング機上にクラウドビデオゲームをロードし、クラウドビデオゲームのロードは汎用保存データのロードを含むものであり、クラウドゲーミング機によってクラウドビデオゲームの実行から生成されたビデオデータをクライアントデバイスにストリーミングすることによって、クラウドビデオゲームの対話型ゲームプレイを汎用保存データで開始し、クラウドビデオゲームの実行を駆動する入力データをクライアントデバイスから受信し、対話型ゲームプレイの間、ユーザ保存データの第１のデータセンタへの送信を完了し、ユーザ保存データを適用してクラウドビデオゲームの実行を更新する方法が提供される。
【０００８】
いくつかの形態では、汎用保存データはクラウドビデオゲームの実行によって定義された１つ以上の変数の第１の値を含み、汎用保存データは特定のユーザに関連していない。
【０００９】
いくつかの形態では、ユーザ保存データは１つ以上の変数の第２の値を含み、第２の値は、ユーザアカウントに関連したクラウドビデオゲームの以前の実行から定義されており、ユーザ保存データの適用は、１つ以上の変数を第２の値で更新することを含む。
【００１０】
いくつかの形態では、ユーザ保存データを適用してクラウドビデオゲームの実行を更新することは、対話型ゲームプレイの間に行われ、これによって、ユーザ保存データが適用されて１つ以上の変数を更新しながらクラウドビデオゲーム及び対話型ゲームプレイの実行が継続する。
【００１１】
いくつかの形態では、ユーザ保存データを適用してクラウドビデオゲームの実行を更新することは、クラウドビデオゲーム内でクラウドビデオゲーム及び対話型ゲームプレイの実行が一時停止するブレークポイントを識別し、クラウドビデオゲーム内のブレークポイント中にゲームプレイにユーザ保存データを適用することとを含む。
【００１２】
いくつかの形態では、クラウドビデオゲームをクラウドゲーミング機にロードすることは、クライアントデバイスからの、クラウドビデオゲームのゲームプレイを開始する要求に応答して行われる。
【００１３】
いくつかの形態によれば、クラウドゲーミングサーバコンピュータによって、ネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求をクライアントデバイスから受信し、クラウドビデオゲームをストリーミングするデータセンタに、クライアントデバイスを割り当てることと、データセンタにおいて、クラウドゲーミング機にクラウドビデオゲームをロードし、クラウドゲーミング機のロードと実質的に同時に、データセンタとクライアントデバイスとの間にストリームテストを行うことであって、クラウドビデオゲームのストリーミングのサービス品質を判断する、ストリームテストを行うことと、クラウドゲーミング機のロードの完了及びストリームテストの実行の完了後に、クラウドゲーミング機によってクラウドビデオゲームの実行から生成されたビデオデータをクライアントデバイスにストリーミングすることによって、クラウドビデオゲームの対話型ゲームプレイを開始し、クラウドビデオゲームの実行を駆動する入力データをクライアントデバイスから受信する方法が提供される。
【００１４】
いくつかの形態では、クライアントデバイスにビデオデータをストリーミングすることは、データセンタのビデオサーバによって行われ、ビデオサーバは、クラウドゲーミング機によるクラウドビデオゲームの実行によって生成されたビデオコンテンツを受信し、ビデオサーバは、ビデオコンテンツを符号化して、クライアントデバイスにストリーミングされるビデオデータを生成する。
【００１５】
いくつかの形態では、ストリームテストを行うことは、ビデオサーバとクライアントデバイスとの間のネットワークを介した接続を確立し、ビデオデータのストリーミングまたは入力データの受信のために接続をテストすることとを含む。
【００１６】
いくつかの形態では、ビデオサーバによるビデオコンテンツの符号化のための１つ以上のパラメータは、ビデオサーバとクライアントデバイスとの間の接続のテストの結果から決定される。
【００１７】
いくつかの形態では、ビデオコンテンツの符号化のためのパラメータは、ビデオコンテンツの圧縮率を含む。
【００１８】
いくつかの形態では、方法は、クラウドゲーミング機のロードと実質的に同時に、クラウドビデオゲームのストリーミングのためにクライアントデバイスのハードウェアまたはソフトウェア構成を決定することとをさらに含む。
【００１９】
いくつかの形態によれば、クラウドゲーミングサーバコンピュータによって、ネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求をクライアントデバイスから受信し、クラウドビデオゲームをストリーミングする第１のデータセンタにクライアントデバイスを割り当てることであって、第１のデータセンタは第１のクラウドゲーミング機を含む、割り当てることと、第１のクラウドゲーミング機にクラウドビデオゲームをロードし、第１のクラウドゲーミング機によってクラウドビデオゲームの実行から生成されたビデオデータをクライアントデバイスにストリーミングすることによって、クラウドビデオゲームの対話型ゲームプレイを開始し、クラウドビデオゲームの実行を駆動する入力データをクライアントデバイスから受信し、クラウドビデオゲームまたはクラウドビデオゲームの対話型ゲームプレイのロードと実質的に同時に、クライアントデバイスと第１のデータセンタとの間のサービス品質を評価し、クライアントデバイスと第２のデータセンタとの間のサービス品質を評価し、クライアントデバイスと第２のデータセンタとの間のサービス品質が、クライアントデバイスと第１のデータセンタとの間のサービス品質を上回ると判断することに応じて、第１のデータセンタにある第１のゲーミング機から、第２のデータセンタにある第２のゲーミング機に、ネットワークを介して、クラウドビデオゲームの実行を移行し、を備える方法が提供される。
【００２０】
いくつかの形態では、クラウドビデオゲームの実行を移行することは、第２のゲーミング機にクラウドビデオゲームをロードし、第１のクラウドゲーミング機によるクラウドビデオゲームの実行から定義されるゲーム状態データを、ネットワークを介して第２のゲーミング機に送信する。
【００２１】
いくつかの形態では、クラウドビデオゲームの実行を移行することは、クラウドビデオゲーム及び対話型ゲームプレイの実行が一時停止するクラウドビデオゲーム内のブレークポイントを識別し、クラウドビデオゲームの実行がクラウドビデオゲーム内のブレークポイントに到達したときに、クラウドビデオゲームの実行を移行することとを含む。
【００２２】
本開示の他の態様及び利点は、本開示の原理を例として示す添付の図面と併せて、以下の詳細な説明から明らかになるであろう。
【００２３】
本開示は、そのさらなる利点と共に、添付の図面と併せて以下の説明を参照することによって最も良く理解され得る。
【図面の簡単な説明】
【００２４】
【図１Ａ】本開示の実施形態による、ゲームコンテンツをクラウドゲームサーバにプレロードするために使用するシステム例の簡略化した例示的ブロック図。
【図１Ｂ】本開示の形態による、クラウドビデオゲームをクライアントデバイスにストリーミングするために行われる様々な動作を概念的に例示するフロー図。
【図２】本開示の形態による、ローカルアプリケーションクイックスタート機能を備えるクラウドゲーミングのためのシステムを概念的に例示する説明図。
【図３】本開示の形態による、キャッシュ最適化クラウドゲーミングを提供するシステムを例示する説明図。
【図４】本開示の形態による、ローカルキャッシュ最適化クラウドビデオゲームのストリーミングをクラウドゲーミングサービスから提供するためのデータフローを概念的に例示する説明図。
【図５】本開示の形態による、ローカルアプリケーションクイックスタート機能を提供する方法を例示する説明図。
【図６】本開示の形態による、ローカルアプリケーションクイックスタート機能を提供する方法を例示する説明図。
【図７】本開示の形態による、既存の従来のゲームストリーミング設定の帯域幅利用を、クライアントキャッシュを用いる帯域幅利用と比較するデータ帯域幅対時間を図示するグラフである。
【図８Ａ】本開示の形態による、クラウドビデオゲームのゲームプレイを開始する前に、所与のユーザのビデオゲーム保存データをロードすることなく、クラウドビデオゲームのゲームプレイを提供する方法を概念的に例示する説明図。
【図８Ｂ】本開示の形態による、ゲーム開始及びユーザ保存データの送信を管理する方法を例示する説明図。
【図９】本開示の形態による、クラウドビデオゲームの一連のゲームプレイセッションを概念的に例示する説明図。
【図１０Ａ】本開示の形態による、クラウドゲーミングサービスを提供するシステムを例示する説明図。
【図１０Ｂ】本開示の形態による、クラウドビデオゲームのユーザ保存データの移行及びユーザ保存データへのポインタの更新を例示する説明図。
【図１１】本開示の形態による、クラウドビデオゲームをストリーミングするためにゲーム機を起動するのと同時にストリームテストを行う方法を例示する説明図。
【図１２】本開示の形態による、クライアントデバイスにストリームテストを行うように構成されるクラウドゲーミングサービスを提供するシステムを例示する説明図。
【図１３】本開示の形態による、あるデータセンタから別のデータセンタへのゲームプレイセッションの移行を概念的に例示する説明図。
【図１４】本開示の形態による、地理的に分散しネットワークを経由して接続されるユーザに情報コンテンツ及びサービスを配信する情報サービスプロバイダアーキテクチャ例を例示する説明図。
【図１５】本開示の形態による、ユーザに提示するコンテンツを制御するために使用されるコンピューティングデバイスの構成要素例を例示する説明図。
【図１６】本開示に形態による、ゲームシステム１６００のブロック図である。
【発明を実施するための形態】
【００２５】
以下の説明では、本開示の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。しかしながら、本開示はこれらの特定の詳細事項の一部または全てを伴うことなく実施され得ることが当業者には明らかであるだろう。他の例では、本開示を不明瞭にしないために、周知のプロセスステップは詳細には記載されない。
【００２６】
ゲームタイトルに対するユーザ要求が受信されると、クラウドゲーミングサイトに関連するデータセンタ内のサーバ（複数可）によって、いくつかの動作が行われる。クラウドゲーミングサイトがユーザ要求を受信すると、選択されたゲームタイトルに関連するゲームをホストするデータセンタが識別され、選択されたゲームタイトルのためにゲームをインスタンス化する要求が識別されたデータセンタに送信される。この要求に応答して、データセンタのサーバは、ゲームコードを識別し、識別されたゲームコードをロードし、ゲームコンテンツをユーザに提示するための準備としてゲームコードに関するファイルを初期化する。ゲームに関連するゲームデータは、汎用ゲームデータ及びユーザ専用ゲームデータを含む。したがって、ファイルを初期化することは、汎用ゲームデータ及びユーザ専用ゲームデータの識別、ロード及び初期化を含む。汎用ゲームデータの初期化には、グラフィックスエンジンの初期化、グラフィックスデータのインストール、サウンドファイルの初期化、アートワークのインストールなどが含まれてよい。ユーザ専用データの初期化は、ユーザデータ、ユーザ履歴、ゲーム履歴などの配置、送信及びインストールが含まれてよい。汎用ゲームデータ及び／またはユーザ専用データのロードは、ゲーム／ゲームのグラフィックスの複雑さに応じて、数秒から数分かかり得る。
【００２７】
汎用ゲームデータがロードされて初期化されている間に、クライアントデバイスでレンダリングするために「スプラッシュ」画面が提供され得る。スプラッシュ画面は、ロードされているゲームの代表的な画像を提供するように設計でき、これによって、ユーザはロードされているゲームの種類をプレビューすることができる。汎用ゲームデータがロードされると、音声コンテンツがレンダリングされ、ユーザ選択／カスタマイズのための選択／ナビゲーション画面が提示される。選択／ナビゲーション画面で提供されるユーザ選択入力は、ゲームレベル選択、ゲームアイコン（複数可）選択、ゲームモード選択、ゲームウィニング、追加のゲームコンテンツのアップロードを必要とし得る他のユーザ関連データを含み得る。ユーザ選択入力のアップロードは、ゲームコンテンツがゲームプレイのためにユーザに利用可能になる前に、追加の遅延を発生させる可能性がある。いくつかの実施形態では、ゲームコンテンツは、視聴及び対話のために、ゲームクラウドシステムからユーザのコンピューティングデバイスにゲームコンテンツをストリーミングすることによって利用可能になる。ユーザ専用データをロードした後に、ゲームコンテンツはゲームプレイに対して利用可能になる。
【００２８】
図１Ａは、クラウドゲーミングサイトを通じて利用可能なゲームのゲームファイルをロードするために使用されるシステム例を例示する。このシステムは、インターネットなどのネットワーク１０２を介してクラウドゲーミングサイト１０４に通信可能に接続されている複数のクライアントデバイス１００を含む。クラウドゲーミングサイト１０４へのアクセス要求がクライアントデバイス１００から受信されると、クラウドゲーミングサイト１０４は、ユーザデータストア１０８に記憶されたユーザアカウント情報１０６にアクセスして、クライアントデバイスに関連するユーザを識別し、そのクライアントデバイスを通じて要求が開始される。いくつかの実施形態では、クラウドゲーミングサイトは、表示／プレイの権限がユーザに与えられている全てのゲームを決定するために、識別されたユーザを確認してもよい。ユーザアカウントの識別／確認の後、クラウドゲーミングサイトは、ゲームタイトルデータストア１１０にアクセスして、要求を開始しているユーザアカウントがゲームクラウドサイトにおいて利用可能なゲームタイトルを特定する。ゲームタイトルデータストア１１０は、次に、ゲームデータベース１１２と対話して、クラウドゲーミングサイトで利用可能な全てのゲームのゲームタイトルを取得する。新しいゲームが導入されると、ゲームデータベース１１２はゲームコードで更新され、ゲームタイトルデータストア１１０には新しく導入されたゲームのゲームタイトル情報が提供される。要求が開始されたクライアントデバイスは、要求が開始されたときに、クラウドゲーミングサイトに登録されていても、登録されていなくてもよい。要求を開始しているクライアントデバイスのユーザが登録ユーザではない場合、クラウドゲーミングサイトはそのユーザを新規ユーザとして識別し、新規ユーザに適したゲームタイトル（例えば、ゲームタイトルのデフォルトセット）を選択してよい。識別されたゲームタイトルは、図１Ａに示す通り、ディスプレイ画面１００−ａ上に提示するためにクライアントデバイスに返送される。
【００２９】
クライアントデバイス上にレンダリングされたゲームタイトルのうちの１つにおけるユーザ対話が検出され、クラウドゲーミングサイトに信号が送信される。この信号は、ユーザ対話が検出されたゲームタイトル情報及びゲームタイトルに登録されたユーザ対話を含む。クライアントデバイスから受信した信号に応答して、クラウドゲーミングサイトは、ゲームがホストされているデータセンタを先行して判断し、識別されたデータセンタに信号を送信して、ユーザ対話が検出されるゲームタイトルに関連するゲームをロードする。いくつかの実施形態では、２つ以上のデータセンタがゲームをホストしてよい。このような実施形態では、クラウドゲーミングサイトは、要求を開始しているクライアントデバイスの地理的位置を決定し、クライアントデバイスに地理的に近接しているデータセンタを識別し、そのデータセンタに信号を送信してゲームをプリロードしてよい。ユーザの地理的位置は、いくつか例を挙げると、クライアントデバイス内の全地球測位システム（ＧＰＳ）機構、クライアントのＩＰアドレス、クライアントのピング情報を使用して決定されてよい。当然のことながら、ユーザの地理的位置を検出する上述の方法は例に過ぎず、他の種類の機構またはツールを使用してユーザの地理的位置を決定してよい。クライアントデバイスに近いデータセンタの識別により、ゲームとのユーザ対話中に生じる遅延を最小化することができる。いくつかの実施形態では、識別されたデータセンタは、ゲームをホストするために必要な帯域幅／容量を有していない場合があるか、あるいは過剰に使用されている場合がある。これらの実施形態では、クラウドゲーミングサイトは、クライアントデバイスと地理的に近い第２のデータセンタを識別してよい。ゲームをロードすることは、ゲームコードをロードすること及びゲームのインスタンスを実行することが含まれる。
【００３０】
クラウドゲーミングサイトから信号を受信したことに応答して、識別されたデータセンタは、データセンタのサーバを選択して、そのサーバ上でゲームをインスタンス化してよい。サーバは、利用可能なハードウェア／ソフトウェア機能及びゲーム要件に基づいて選択される。サーバは、複数のゲームコンソールを含んでよく、サーバは、複数のゲームコンソールのうちのどのゲームコンソールを使用してゲームをロードすべきかを決定してよい。ゲームコンソールは、独立型のゲームコンソールに類似してよく、またはラック搭載サーバもしくはブレードサーバであってもよい。ブレードサーバは、複数のサーバブレードを有し得るものであり、各ブレードは、ゲームなどの単一の専用アプリケーションをインスタンス化するために必要な回路を有する。当然のことながら、上記のゲームコンソールは一例であり、限定的であるとみなされるべきではない。ゲームステーションなどを含む他の種類のゲームコンソール及び他の形態のブレードサーバを連動させて、識別されたゲームをホストしてもよい。
【００３１】
ゲームコンソールが識別されると、ゲームの汎用ゲーム関連コードがゲームコンソール上にロードされ、ゲームがインスタンス化されるゲームコンソールを識別する信号はネットワーク上でクラウドゲーミングサイトを経由してクライアントデバイスに返送される。ゆえに、ロードされたゲームはユーザに利用可能となる。
【００３２】
図１Ｂは、本開示の形態による、クラウドビデオゲームをクライアントデバイスにストリーミングするために行われる様々な動作を概念的に例示するフロー図である。ゲーミングシステム１１８は、ビデオゲームを実行し、未加工の（非圧縮の）ビデオ１２０及び音声１２２を生成する。例示された図の参照番号１２４に示すように、ビデオ１２０及び音声１２２は、ストリーミング目的のためにキャプチャされて符号化される。符号化は、ビデオ及び音声ストリームの圧縮を提供し、帯域幅利用を削減し、ゲーミング体験を最適化することができる。符号化形式の例として、Ｈ．２６５／ＭＰＥＧ−Ｈ、Ｈ．２６４／ＭＰＥＧ−４、Ｈ．２６３／ＭＰＥＧ−４、Ｈ．２６２／ＭＰＥＧ−２、ＷＭＶ、ＶＰ６／７／８／９などが挙げられる。
【００３３】
符号化された音声１２６及び符号化されたビデオ１２８は、インターネットなどのネットワークを介した伝送のために、参照番号１３２で示されるように、さらにネットワークパケットにパケット化される。ネットワークパケット符号化プロセスはさらに、データ暗号化プロセスを用いることができ、これによって、データセキュリティが向上する。例示された形態では、音声パケット１３４及びビデオパケット１３６は、参照番号１４０で示されるように、ネットワークを介した送信のために生成される。
【００３４】
ゲーミングシステム１１８は、触覚フィードバックデータ１３０を追加的に生成し、触覚フィードバックデータ１３０もネットワーク伝送のためにネットワークパケットにパケット化される。例示された形態では、触覚フィードバックパケット１３８は、参照番号１４０でさらに示されるように、ネットワークを介した送信のために生成される。
【００３５】
未加工のビデオ及び音声ならびに触覚フィードバックデータを生成し、ビデオ及び音声を符号化し、符号化された音声／ビデオ及び触覚フィードバックデータを送信のためにパケット化する前述の動作は、クラウドゲーミングサービス／システムを総称的に定義する１つ以上のサーバ上で行われる。参照番号１４０で示されるように、音声パケット、ビデオパケット及び触覚フィードバックパケットは、インターネットなどのネットワーク及び／またはインターネットを含むネットワークを介して送信される。参照番号１４２で示されるように、音声パケット１３４、ビデオパケット１３６及び触覚フィードバックパケット１３８は、符号化された音声１４６、符号化されたビデオ１４８及び触覚フィードバックデータ１５０をクライアントデバイスで定義するために、クライアントデバイスによって復号／再構築される。データが暗号化されている場合、ネットワークパケットも解読される。符号化された音声１４６及び符号化されたビデオ１４８は、次いで、参照番号１４４で示されるように、クライアントデバイスによって復号され、ディスプレイデバイス１５２上でレンダリングするために、クライアント側の未加工の音声及びビデオデータを生成する。触覚フィードバックデータ１５０は、コントローラデバイス１５６または触覚効果をレンダリング可能な他のインターフェースデバイスにおける触覚フィードバック効果を生成するために処理／伝達することができる。触覚効果の一例として、コントローラデバイス１５６の振動またはランブルが挙げられる。
【００３６】
ビデオゲームはユーザ入力に応答し、そのためユーザ入力の伝送及び処理について上記と同様の手順フローをクライアントデバイスからサーバへの逆方向に行うことができることが理解されるだろう。図示のように、コントローラデバイス１５６を操作するユーザは、入力データ１５８を生成してよい。この入力データ１５８は、ネットワークを介してクラウドゲーミングシステムに送信するために、クライアントデバイスでパケット化される。入力データパケット１６０は、サーバ側で入力データ１６２を定義するために、クラウドゲーミングサーバによって解凍され、再構築される。入力データ１６２はゲーミングシステム１１８に供給され、ゲームシステム１１８は入力データ１６２を処理してビデオゲームのゲーム状態を更新する。
【００３７】
音声パケット１３４、ビデオパケット１３６及び触覚フィードバックパケット１３８の送信中（参照番号１４０）、ネットワークを介したデータの伝送を監視して、クラウドゲームストリームのサービス品質を保証することができる。例えば、参照番号１６４によって示されるように、ネットワーク状態はアップストリーム及びダウンストリームの両方のネットワーク帯域幅を含めて監視することができ、利用可能な帯域幅の変化に応じてゲームストリーミングを調整することができる。すなわち、ネットワークパケットの符号化及び復号は、参照番号１６６によって示されるように、現在のネットワーク状態を基に制御することができる。
【００３８】
図２は、本開示の形態による、ローカルアプリケーションクイックスタート機能を備えるクラウドゲーミングのためのシステムを概念的に例示する。ユーザ２２６は、クラウドゲーミングサービスにアクセスするように構成されたクライアントデバイス１００と対話する。ユーザ２２６は、コントローラデバイス１５６を操作して、クライアントデバイス１００への入力を生成して提供してよい。さらに、クライアントデバイス１００は、コンテンツをディスプレイデバイス１５２にレンダリングするように構成することができる。いくつかの形態では、ディスプレイデバイス１５２は頭部装着型ディスプレイとすることができることが理解されるだろう。
【００３９】
クライアントデバイスは、ネットワーク１０２を介してクラウドゲーミングサーバ１０４と通信し、クラウドゲーミングサーバ１０４は、ユーザのクラウドゲーミングアカウントへのアクセスを提供する。クラウドゲーミングサーバ１０４は、ユーザアカウントストレージ１０６からユーザデータ２０４を読み出し、ユーザデータ２０４は、例示された実施形態では、ユーザ２２６の専用データである。例として、ユーザデータ２０４は、ユーザのゲームプレイに利用可能なゲームタイトルであるタイトル２０６など、様々なクラウドゲーミング関連データを含むことができる。これらは、ユーザが購入した、有料で借りた、無料で借りた、付与された、または別様にはユーザがゲームプレイのためにアクセスを取得したゲームタイトルであってもよい。ユーザデータはさらに、ゲーム保存データ２０８、トロフィー２１０、統計２１２、ソーシャルデータ２１４（例えば、ソーシャルグラフデータを含む）及び履歴データ２１６（例えば、ユーザアクセス履歴、ゲームプレイ履歴など）を含んでよい。
【００４０】
ユーザ２２６がアクセス許可を有する所与のクラウドビデオゲームをユーザがプレイしたいとき、ユーザは、ディスプレイ１５２上にクライアントデバイス１００によって提示されるグラフィカルユーザインターフェース（ＧＵＩ）上でビデオゲームの選択を指示してよい。ゲームプレイのためのビデオゲームが選択されると、ゲーム要求がクライアントデバイス１００からクラウドゲーミングサーバ１０４に伝送される。ゲーム要求は、ユーザがプレイしたいゲームタイトルを特定し得る。ゲーム要求を受信したことに応答して、クラウドゲーミングサーバ１０４は、クラウドゲーム機１１８を起動して、要求されたビデオゲームのタイトルをインスタンス化する。すなわち、クラウドゲーミング機１１８は、要求側のクライアントデバイス１００に割り当てられ、要求されたビデオゲームタイトルの実行を開始する。
【００４１】
クライアントデバイス１００によるクラウドゲーミングサーバ１０４へのゲーム要求の伝達と同時に、クライアントデバイス１００は、ローカルストレージ２３２からの初期コンテンツ２３４のレンダリングも開始する。初期コンテンツ提示部２３６は、読み出し、レンダリング及び初期コンテンツ２３４との対話性を管理する。初期コンテンツ２３４は要求されたビデオゲーム専用とすることができ、ビデオゲームの対話型ゲームプレイの開始前にユーザに提示され得る任意のゲーム関連コンテンツを含んでよい。
【００４２】
本開示の目的のために、対話型ゲームプレイは、ビデオゲームの競争／物語のコンテキスト内でユーザの実質的な進捗を直接的に進めることができる、ユーザと実行中のビデオゲームとの間の対話性を指すものとする。ゆえに、ビデオゲームの対話型ゲームプレイは、スタートアップ画像／ビデオ、スプラッシュ／ロード画面またはビデオ、法的情報画面、ゲーム設定のアクセスまたは構成（例えば、コントローラ設定、ゲームの難易度、ビデオ設定、音声設定など）、ゲーム選択メニュー（例えば、保存されたゲーム選択、ゲームのレベル選択、ゲームの種類選択（例えば、アーケード、キャンペーン）など）及び／またはビデオゲームの競争的または物語的なコンテキストの中でユーザの進捗を直接的に進めることができない、任意の他の種類のゲーム関連コンテキストまたは対話型機能などの、他の種類のコンテンツレンダリングまたはゲーム関連対話を含まない。
【００４３】
上記の通り、ビデオゲームの初期コンテンツ２３４は、対話型ゲームプレイの開始前に提示されるコンテンツを含む。初期コンテンツ２３４は、ロゴ画面、スタートアップ／スプラッシュ画面（画像またはアニメーション／ビデオ）、法的情報／免責条項画面、周辺機器構成メニュー、機能設定メニューなどのコンテンツを含むことができる。初期コンテンツ２３４は、ローカルストレージ２３２からローカルにアクセス可能であるため、初期コンテンツ２３４のレンダリングは毎回高速に行うことができ、非常に高速なシステムでは実質的に即座にまたは瞬時に行われ得る。ユーザは、ビデオゲームのコンテンツがディスプレイデバイス１５２にレンダリングされる前にクラウドゲーミングシステムによって行われる、クライアント１００のためのゲーム機１１８のプロビジョニング／割り当て、割り当てられたゲーム機１１８への適切なビデオゲームコードのロード、ビデオゲームコードの実行の開始及び／またはクライアント１００へのストリーミングの開始を待つ必要はない。これによって、ビデオゲームへのローカルクイックスタートが提供され、一方でクラウドゲーミングシステムは、ゲームストリーミングのためにゲーム機１１８を準備する。ゆえに、参加型及び享受型の初期コンテンツがユーザに提供され、クラウドゲーミングシステムの動作により待たされることは質の悪いクラウドゲーミング体験として認識される可能性があるが、ユーザはそのように待たされることはない。
【００４４】
ゲーム機１１８は、ゲームタイトルデータストア１１０から要求されたゲームタイトルコードを取得し、実行するビデオゲームを定義するためにゲームタイトルコードを実行する。ゲーム機１１８からの未加工のビデオ／音声出力はストリーミングサーバ２２０に提供され、ストリーミングサーバ２２０は、ストリーミングの目的で未加工のビデオ／音声を圧縮形式に符号化する。上記の通り、符号化された音声及びビデオは、ネットワーク通信プロトコルに従ってネットワーク１０２を介して伝送することができる。クライアントデバイス２２４のストリーミング論理２３８は、ディスプレイ１５２にレンダリングするために、受信したストリーミング音声／ビデオを処理する。
【００４５】
ローカルストレージ２３２からの初期コンテンツ２３４の提示から、ストリーミングサーバ２２０を経由したクラウドベースのゲーム機１１８からのストリーミングビデオゲームの提示への移行が起こることが理解されるだろう。いくつかの形態では、ゲーム機１１８でのビデオゲームの実行は、クライアントデバイス１００へのビデオゲームのストリーミングを開始するトリガをビデオゲームが待つ時点に達するまで進行する。いくつかの形態では、ストリーミングを開始するトリガは、クライアントデバイス１００で受信されたユーザ入力から定義してよい。例えば、ユーザは、ストリーミングを開始するために、ボタンを押すか、またはコントローラ１５６を経由する何らかの他の入力を提供してよい。
【００４６】
コンテンツのローカル実行／提示からコンテンツのクラウドストリーミングへの移行は、スムーズなユーザ体験を提供するように構成することができる。ゲーム機１１８によるビデオゲームの実行は、クライアントデバイスにおける初期コンテンツの提示に同期することができる。ゲーム機１１８は、初期コンテンツの提示に関してクライアントデバイス２２４から状態の更新を受信してよく、クラウドゲーム機１１８によるビデオゲームの実行は、初期コンテンツ２３４の提示と同期するように調整することができ、これによって、クラウドストリーミングへのスムーズな移行が可能になる。いくつかの形態では、ローカルコンテンツからストリーミングコンテンツへの移行は、ユーザ入力を必要とすることなく自動的に生じるが、他の形態では、ユーザ入力に応じて移行が生じることが理解されるだろう。
【００４７】
初期コンテンツのレンダリングから、ビデオゲームのクラウドからのストリーミングへの移行は、ゲーム全体の提示における様々な時点で行われてよい。例えば、スプラッシュ画面（画像／アニメーション／ビデオ）のレンダリングの後、あるいはメニューまたはユーザによるアクティブな選択または入力を必要とする他のコンテンツのレンダリングの後で、移行が生じることがある。後者の概念では、（例えば、メニュー項目もしくはオプションの）ユーザ選択または入力は、ゲーム機１１８で実行中のビデオゲームに伝達することができ、ゲーム機１１８は、レンダリングされる次のコンテンツを決定するために選択／入力を処理し得る。いくつかの形態では、レンダリングされる次のコンテンツは、別のスプラッシュ画面またはメニューであり、ゆえに、初期コンテンツのローカルな実行からクラウドビデオゲームのストリーミングへの移行は、対話型ゲームプレイの開始前に提示される画面／メニュー間で生じる。いくつかの形態では、クラウドゲーム機１１８は、いくつかの画面のうちクライアントデバイス２２４で提示されている画面に関する状態の更新を受信することができ、クライアントデバイス２２４にストリーミングされる次の画面を実行してレンダリングするよう、ゲーム機１１８に指示することができる。
【００４８】
いくつかの形態では、移行は、単一のコンテンツ画面の提示中に生じる。例えば、初期コンテンツ２３４は、連続して提示される複数の画面を含むことがある。画面のローカルでの提示中に、クラウドゲーム機１１８は、どの画面が提示されているかを示す状態の更新を受信することができ、クライアントデバイス２２４によって現在提示されている画面と同じ画面を実行してレンダリングするよう、クラウドゲーム機１１８に指示することができる。ゆえに、ストリーミングへの移行は、現在の画面の提示中に生じることがあり、ユーザにはシームレスに見えることがある。いくつかの形態では、画面コンテンツの画像／ビデオ部分は最初にストリーミングに移行されるが、一方、音声は次の画面の提示まで移行されない。いくつかの形態では、音声が音声クリップのループ再生によって定義される場合、音声再生がクリップの終わりに到達すると（ビデオと音声の両方または音声のみの）移行が生じることがある。このような構成では、音声の提示における音声の中断を回避することができる。
【００４９】
いくつかの形態では、ビデオゲームのストリーミングを開始するトリガは、ビデオゲームの対話型ゲームプレイの開始もトリガする。例えば、初期コンテンツは、実際の対話型ゲームプレイを開始する前に、ユーザに提示されるビデオゲームの全てのコンテンツを含むことができる。次いで、対話型ゲームプレイを開始する時点で、クライアントデバイス１００は、ローカルに記憶されたコンテンツを提示することから、クラウドベースのストリーミングコンテンツを提示することに移行する。さらに、ユーザ選択または他のユーザ入力などの初期コンテンツとのユーザ対話は、実行中のビデオゲームに伝達可能であることが理解されるだろう。このようにして、ローカルに記憶されたコンテンツとの対話を使用して、クラウドベースのビデオゲームの実行を駆動することができる。例えば、ユーザはメニュー選択を指示してよく、これは、ゲーム機１１８上で実行中のビデオゲームに伝達される。メニューの提示は、ローカルストレージ２３２から行われるが、メニューからのユーザ選択の後で、ユーザ選択はゲーム機１１８に（例えば、クラウドゲーミングサーバ１０４を経由して）伝達されてよく、ゲーム機１１８はユーザ選択を処理してよい。クライアントデバイス１００はさらに、ストリーミングサーバ２２０を経由してゲーム機１１８から（例えば、ビデオゲームの対話型ゲームプレイを開始するために）ユーザ選択の結果をストリーミングすることに移行してよい。
【００５０】
当業者に理解されるように、実行中のビデオゲームはゲームエンジンを定義してよく、ゲームエンジンは入力を受信し、入力を処理してビデオゲームのゲーム状態を更新する。いくつかの形態では、ビデオゲームのゲームエンジンはゲーム機１１８で初期化され、初期コンテンツ２３４はクライアントデバイスで提示される。ゲーム機はゲームエンジンの実行を継続するトリガを待つため、ゲームエンジンは初期化された後に一時停止状態になってよい。ユーザ入力から定義することができるトリガを受信すると、一時停止状態が終了し、その結果、ゲームエンジンの実行によりビデオゲームの対話型ゲームプレイが開始する。
【００５１】
いくつかの形態では、クライアントデバイス２２４は、初期コンテンツ２３４の提示に関する状態の更新をクラウドゲーミングシステムに伝達するように構成することができる。このような状態の更新には、初期コンテンツの現在の提示状態を識別する情報ならびにユーザ入力／選択／ナビゲーションが含まれることがある。このような状態の更新に応答して、ゲーム機１１８によるビデオゲームの実行は、ビデオゲームのコンテキスト内で様々なオプションのうちのいずれかを行うように指示を受けることができる。ゆえに、クライアントデバイス２２４による初期コンテンツ２３４のレンダリングと、ストリーミングサーバ２２０からのビデオゲームのストリーミングとの間の移行を管理して同期させ、スムーズなユーザ体験を提供することができる。
【００５２】
いくつかの形態では、多くの場合、ユーザは通常、最後に保存された位置からゲームプレイを継続することを望むため、ゲーム機におけるゲームエンジンの初期化は、ユーザの最後に保存されたゲームデータを自動的にロードするように構成することができる。ユーザの最後に保存されたゲームのゲームプレイの継続をユーザが（例えば、ゲームメニュー／オプションのナビゲーション／選択を通じて）指示する前であっても、ユーザの最後に保存されたゲームデータのこの自動的なロードが先行して生じる可能性があることが理解されるだろう。これは、処理の分割によって可能になり、処理の分割とは、クラウドベースのゲーム機が最終的な対話型ゲームプレイのゲームエンジンを初期化する間に、クライアントデバイスが初期コンテンツを処理してレンダリングすることである。ユーザのローカルデバイスが初期コンテンツを順次ロードしてから保存したゲームをロードすることは、ローカルクライアントデバイス１００及びクラウドベースのゲーム機１１８の各々によってそれぞれ並列的に処理されるため、ユーザはそのために待つ必要がなく、ゆえに、ここで説明される構成は、従来のコンソールゲームのゲーミング体験よりも利点を提供する。
【００５３】
いくつかの形態では、クラウドゲーミングサーバ１０４は、ユーザのゲームプレイ履歴に基づいて、所定のビデオゲームの最後に保存されたゲームを先行してロードするかどうかを決定するように構成することができる。例えば、いくつかの形態では、ユーザのビデオゲームの最後のゲームプレイセッション中にユーザがこれまでに保存した最後のゲームをロードした場合、システムは、ユーザの最後に保存されたゲームを自動的にロードするように構成されてよい。関連する形態では、最後のゲームプレイセッションから経過した時間が閾値時間より短い場合、システムはユーザの最後に保存されたゲームを自動的にロードするように構成されてよく、ユーザの最後のビデオゲームのゲームプレイセッション中である場合、ユーザはこれまでに保存した最後のゲームをロードする。他の形態では、システムは、ソーシャルネットワークアクティビティ、時間、最後のゲームプレイからの経過時間、ビデオゲームの保存されていないゲーム（例えば、アーケード、マルチプレイヤ）に対する保存されたゲームのゲームプレイの相対量などの様々な要因に基づいて、ユーザの最後に保存されたゲームを自動的にロードするかどうかを決定するように構成されてよい。
【００５４】
例示された形態では、対話型ゲームプレイの間、ゲーム機１１８はゲームエンジンを実行して、ビデオ及び音声データの完全な非圧縮ストリームを生成する。ストリーミングサーバ２２０は、完全なビデオ及び音声データストリームを受信し、ネットワーク１０２を介してクライアントデバイス１００に伝送するためにそれらを処理する。処理は、ビデオ及び音声データを圧縮形式に符号化し、圧縮データを暗号化し、伝送ネットワークプロトコルに従ってデータをパケット化することを伴い得る。クライアントデバイス１００は伝送されたデータを受信し、ネットワークパケットを再構築し、ディスプレイ／ＨＭＤ１５２及び音声デバイス（ディスプレイ１５２の一部であってよい）にレンダリングするために、圧縮されたビデオ／音声データを解読して復号する。
【００５５】
上述の形態では、ストリーミングサーバは、完全なビデオストリーム及び音声ストリームの圧縮バージョンをクライアントデバイス１００にストリーミングする。いくつかの形態では、以下でさらに詳細に説明するように、ストリーミングサーバ２２０は、他の方法でも最適化される完全なビデオストリーム及び音声ストリームのバージョンをストリーミングするように構成されてよい。説明するように、ストリーミングされたビデオ及び音声は、クライアント１００で後に供給される特定のコンテンツ部分／アセットを除外するように構成されてよく、これによって、ゲームストリーミングに必要な帯域幅が減少するか、またはストリーミングされたビデオ及び音声の残りの部分がより高い忠実度（例えば、高いフレームレートまたはサンプルレート、高い解像度など）でストリーミングされ得る。
【００５６】
図３は、本開示の形態による、キャッシュ最適化クラウドゲーミングを提供するシステムを例示する。概して、例示されたシステムは、ビデオゲームの画像部分または音声部分をクライアントデバイスに記憶し、ディスプレイ上でレンダリングする直前に、ストリーミングされたビデオまたは音声とクライアントデバイスで組み合わせ、これによって、ビデオゲームをストリーミングするのに必要な帯域幅を削減するように構成される。クライアントデバイスに記憶される部分は、ゲームストリーミング及び／またはネットワーク状態の帯域幅利用を監視することから決定されるため、利用可能な帯域幅がある時間帯にデバイスに送信することができる。
【００５７】
例示された形態では、ゲーミング機１１８は、ゲームタイトルストレージ１１０に記憶されるビデオゲーム（タイトルＡ）のキャッシュ最適化ゲームビルド３００を実行する。キャッシュ最適化ゲームビルド３００は、本明細書に説明するキャッシュ最適化ゲームストリーミング機能を提供するように構成されるビデオゲームタイトルの特殊バージョンである。特に、キャッシュ最適化ゲームビルド３００は、ビデオゲームの特定の視覚構成要素または音声構成要素を排除するビデオ及び音声データストリームを出力するように構成可能であり、これによって、ビデオ及び音声データストリームのデータサイズを削減する。
【００５８】
ゲーム機１１８によるゲームビルド３００の実行はゲームエンジン３０２を定義し、ゲームエンジン３０２は、ゲーム状態を更新するために入力を受信して処理し、画像フレームデータ３５０及び音声データ３５２を出力する。ゲームエンジン３０２は、画像フレームデータ３５０またはそれが出力する音声データ３５２から、特定の視覚または音声コンテンツ／アセットを任意に除外するように構成することができる。除外される視覚アセットの場合、ゲームエンジン３０２は、除外される視覚アセットを識別する視覚アセット識別子を生成してよく、画像フレームデータ内における配置（その時間的位置及び空間的位置を定義する）、サイズ、向き、色（複数可）、輝度／コントラスト、他の視覚プロパティなど、視覚アセットの提示を制御するパラメータをさらに定義してよい。除外される音声アセットの場合、ゲームエンジン３０２は、除外される音声アセットを識別する音声アセット識別子を生成してよく、音量、バランス／フェーダパラメータ、配置、等化パラメータなど、その音声アセットの提示を制御するパラメータをさらに定義してよい。視覚／音声アセット識別子は、画像フレームデータ３５０または音声データ３５２の一部として付随するか、またはそれらの一部として含まれてよく、クライアントデバイス１００で処理されたときに、どの視覚または音声アセットが画像／音声ストリームと構築されるかを示すように機能する。
【００５９】
ストリーミングサーバ２２０は、ゲーム機１１８によって生成される未加工の画像フレームデータ３５０及び音声データ３５２を受信する。符号器３１４は、画像フレームデータ３５０及び音声データ３５２を圧縮されたビデオ／音声形式に符号化する。暗号化モジュール３１６は、圧縮されたビデオ／音声を、ネットワーク１０２を介して伝送するために暗号化する。ストリーミングサーバ２２０はさらに、ビデオゲームのためのキャッシュデータ３０６をゲームキャッシュデータストレージ３０４からクライアントデバイス１００に伝送するように構成される。キャッシュデータ３０６は視覚コンテンツ／アセット３０８及び／または音声コンテンツ／アセット３１０を含むことができ、これらは、後にビデオ／音声ストリームとの構築のためにクライアントデバイスに記憶可能なビデオゲーム用に定義されたキャッシュ可能なコンテンツ／アセットである。ゆえに、ストリーミングサーバ２２０は、圧縮されたビデオ／音声ならびにクライアントがキャッシュ可能な視覚及び／または音声コンテンツ／アセットを含むことができる混合データストリーム３５４を送信する。暗号化モジュール３１６は、ネットワーク１０２を介して伝送するために、混合データストリーム３５４に包含する視覚／音声アセットも暗号化することができることが理解されるだろう。
【００６０】
混合データストリーム３５４に視覚／音声アセットを包含する特定のタイミングは、現在の帯域幅利用及びネットワーク状態に基づいて決定することができる。いくつかの形態では、ストリーミングサーバ２２０は、混合データストリーム３５４のストリーミングによる現在の帯域幅利用を監視し、圧縮されたビデオ／音声ストリームに加えて、視覚／音声アセットをストリーミングするために利用可能な帯域幅がいつ存在するかを判断するように構成される。ストリーミングサーバ２２０は、ゲームストリーミング中に継続的に初期ネットワーク状態を判断してネットワーク状態を監視してよく、任意の時点で利用可能な帯域幅を判断するために、現在の帯域幅利用と共にネットワーク状態を参照してよい。
【００６１】
キャッシュされる視覚／音声コンテンツ／アセットは、クライアントデバイスによる適用及びレンダリングの前に、クライアントデバイスにストリーミングされることが理解されるだろう。帯域幅利用が比較的低い時間帯に、未使用の帯域幅を利用して視覚／音声アセットをクライアントデバイスにストリーミングすることができる。クライアントデバイスに記憶された特定の視覚／音声アセットは追跡することができ、したがって、ゲームエンジンは、ゲームエンジンによって生成された未加工の画像フレームデータまたは音声データから（クライアントに既にキャッシュされている）これらの視覚／音声アセットを除外するように構成することができる。
【００６２】
混合データストリーム３５４はクライアントデバイス１００で受信され、データストリームハンドラ３２８によって処理される。いくつかの形態では、データストリームハンドラ３２８は、混合データストリーム３５４に逆多重化機能を行い、圧縮されたビデオ、圧縮された音声及び混合データストリームからの視覚／音声アセットストリームを解析する。視覚／音声アセットが混合データストリーム３５４に伝送されるとき、キャッシュマネージャ３２６は、視覚／音声アセットをクライアントキャッシュストレージ３１８に記憶し、より具体的には、ビデオゲーム用のキャッシュデータ３２０の一部を定義する視覚コンテンツデータ３２２及び／または音声コンテンツデータ３２４として記憶する。
【００６３】
データストリームハンドラ３２８はさらに、混合データストリーム３５４からビデオ及び音声ストリームを生成する（例えば、逆多重化する及び／または展開する）。ビデオ及び音声ストリームは、画像ストリームアセンブラ３２６または音声ストリームアセンブラ３３４にそれぞれ渡される。画像ストリームアセンブラ３２６は、ビデオストリーム内で画像フレームデータのどの部分が除外されたかを判断し、これらの部分をクライアントキャッシュデータ３２０から読み出された視覚コンテンツ／アセットで補完するように構成される。いくつかの形態では、上述の視覚アセット識別子は、混合データストリームと一緒にまたはその一部として伝送され、ビデオストリームに挿入／結合される視覚アセット、及びそれらの配置に関するパラメータ、及び場合によっては他の視覚プロパティを特定するために処理される。いくつかの形態では、マーカはビデオストリーム自体で符号化され、このマーカは、追加される視覚アセット及びビデオストリーム内における視覚アセットの位置を空間及び時間の両方で識別する。
【００６４】
画像ストリームアセンブラ３２６は、完全に構築されたビデオストリームをビデオ信号生成器３３２に出力する。ビデオ信号生成器３３２は、完全に構築されたビデオストリームを処理して、ディスプレイデバイス１５２によるレンダリングのために、適切なビデオ信号を正しい形式で生成する。ディスプレイデバイス１５２は、例示されたシステムにおいて別個の構成要素として示されているが、いくつかの形態では、ディスプレイデバイス１５２は、クライアントデバイス１００の一部として組み込まれる。
【００６５】
画像ストリームアセンブラ３２６と同じ方法で、音声ストリームアセンブラ３３４は、音声ストリーム内で音声データのどの部分が除外されたかを判断し、これらの部分をクライアントキャッシュデータ３２０から読み出された音声コンテンツ／アセットで補完するように構成される。いくつかの形態では、上述の音声アセット識別子は、混合データストリームと一緒にまたはその一部として伝送され、音声ストリームに挿入／結合されるべき音声アセット、及びそれらの配置に関するパラメータ、及び場合によっては他の音声プロパティを特定するために処理される。いくつかの形態では、このマーカは音声ストリーム自体で符号化され、マーカは、追加される音声アセット及び音声ストリーム内における音声アセットの位置を識別する。
【００６６】
音声ストリームアセンブラ３３４は、完全に構築された音声ストリームを音声信号生成器３３６に出力する。音声信号生成器３３６は、完全に構築された音声ストリームを処理して、音声デバイス３４０によるレンダリングのために、適切な音声信号を正しい形式で生成する。音声デバイス３４０は、例示されたシステムにおいて別個の構成要素として示されているが、いくつかの形態では、音声デバイス３４０は、クライアントデバイス１００の一部として組み込まれる。さらに、いくつかの形態では、音声デバイス３４０はディスプレイデバイス１５２の一部として含まれる。
【００６７】
図４は、本開示の形態による、ローカルキャッシュ最適化クラウドビデオゲームのストリーミングをクラウドゲーミングサービス４００から提供するためのデータフローを概念的に例示する。実行中のビデオゲーム３０２が示され、これは、ビデオゲームの変数の経時的な状態を定義するゲーム状態４０２を定義する。実行中のビデオゲーム３０２は、現在の状態に基づいて及びクライアントデバイス１００から受信した入力データ４１８に基づいて、ゲーム状態４０２を継続的に更新することが理解されるだろう。
【００６８】
ビデオゲーム３０２は、クラウドゲーミングサービス４００を通じて処理されると、混合データストリーム３５４を生成する。混合データストリーム３５４は、画像データ４０４、音声データ４０６及びキャッシュデータ４０８を含む。例示された形態では、画像データ４０４は、画像フレーム４１０の例を定義する。画像フレーム４１０の一部分４１２は完全には定義されていない、すなわち、部分４１２は画像フレーム４１０に完全に定義／包含されるのではなく、クライアントデバイス１００によって供給されるものであり、これによって、画像フレームをストリーミングするために必要な帯域幅の量を削減することができる。
【００６９】
キャッシュデータ４０８は、画像フレーム４１０など、画像データ４０４の画像フレームに挿入されるアセットを定義するデータを含む。キャッシュデータ４０８は、クライアントデバイス１００によって受信され、混合データストリーム３５４から解析され、画像キャッシュデータ３２２の一部としてクライアントキャッシュストレージ３１８に記憶される。例示された形態では、クライアントデバイス１００にこれまでに伝送された視覚アセット４１４が画像キャッシュデータ３２２から読み出され、これまでに完全には定義されていなかった部分４１２を定義するために、画像フレーム４１０に挿入される。結果として生じる完全な画像フレームは、ディスプレイデバイス上に提示するための完全な画像ストリーム１３２の一部を形成する。
【００７０】
クライアントデバイスに伝送されクライアントデバイスにキャッシュされる視覚アセットは、任意の種類の画像、アイテム、オブジェクトまたはクラウドビデオゲームによって生成されるビデオストリームとは別に個別に提供され得る他の視覚プロパティとすることができ、これらは後にクライアントデバイスでビデオストリームの画像フレームに挿入され、ディスプレイをレンダリングするために完全な画像フレームを提供することが理解されるだろう。視覚アセットは、ビデオストリームに提示されたときの外観が現在のゲーム状態に基づいて変更されないという点で静的な静的アイテムを含むことができる。これらは、例えば、インジケータ、エンブレム、トロフィー、バッジ及び外観が現在のゲーム状態に基づいて動的に決定されない他の種類の視覚アイテムなどのアイテムを含み得る。例えば、パワー、所有アイテム、他のユーザのキャラクタなど、キャラクタの現在の状態またはゲームプレイの現在の状態をユーザに示す様々な視覚インジケータが存在してよい。別の例として、ユーザが車両を操縦する役割を担うビデオゲームでは、車両の操縦席の視界を含み得る。操縦席内の一部の視覚アイテムは静的であってよく、ビデオゲームの対話型ゲームプレイが進行していても、操縦席がユーザのゲームビューで表示されている間は変化しないことがある。静的な視覚アセットは、変更することなくクライアントデバイスのビデオストリームに挿入することができる。
【００７１】
しかしながら、いくつかの形態では、視覚アセットは動的視覚アセットを含むことができることが理解され、動的視覚アセットの外観はゲーム状態条件に少なくとも部分的に基づいて決定されることが理解されるだろう。例えば、動的視覚アセットは、ディスプレイにレンダリングする前に、現在のゲーム状態に基づき、クライアントデバイスによって色、サイズ、向き、透明度または任意の他の視覚プロパティが変更され、クライアントデバイスによってビデオストリームに挿入されてよい。これを達成するために、ビデオストリームに挿入する前に視覚アセット上で実行すべき特定の変更を示す変更データをビデオストリームと共に伝送することができる。
【００７２】
上記の議論と同様に、混合データストリーム３５４で配信される音声データ４０６を音声キャッシュデータ３２４からの音声アセットで補完し、完成した音声ストリーム１３０を、音声デバイスを通じた提示のために定義することができる。音声アセットは、音響効果、背景音楽、録音済み音声クリップなどを含むがこれらに限定されない、ビデオゲームによって利用される様々な種類の音声またはサウンドのいずれかを含むことができる。クライアントデバイスで生成／挿入される特定の音声は、クラウドゲーミング機によって生成される音声と比べると、異なる形態によって変化し得ることが理解されるだろう。例えば、いくつかの形態では、背景音楽／音声はクライアントデバイスで生成されて音声ストリームに追加されるが、ユーザのリアルタイム対話型ゲームプレイによってトリガされるか、または起動される他の音響効果はクラウドゲーミング機によって生成される。特定の一形態では、クラウドゲーミング機によって生成されて、混合データストリームの形式でクライアントデバイスによって受信されたデータであって、生成すべきサウンド、このようなサウンドのタイミング及び任意の追加の音声関連パラメータ、例えば、音量、等化、方向性／発信源などを特定するデータを基に、全てのサウンドがクライアントデバイスで生成される。
【００７３】
視覚及び音声アセットは、将来予想されるゲーム状態を示し得る現在のゲーム状態に基づいて、予測的にまたは先行してクライアントデバイスに伝送することができる。これは、例えば、ビデオゲームシーンの全体視野が変更し得る場合など、シーンの変更時に生じ得る帯域幅利用の急激な増加を軽減するのに有用な場合がある。例えば、プレイヤが制御するキャラクタが、シーン変更が生じ得る物理的または時間的位置の近くにいるか、その位置に向かって移動している場合、視覚／音声アセットをクライアントデバイスに伝送してシーン変更時に利用してよい。例えば、プレイヤが自分のキャラクタをドアに向かって誘導し、そのドアを開くか通過するとシーンが変更する場合、シーン変更中に視覚／音声アセットが利用されることを想定して、ドアを開く前に、それらをクライアントに伝送してよい。別の例では、ユーザがビデオゲームのレベルまたはシーンの完了に近づいているとき、視覚／音声アセットは、次のレベル／シーンのストリーミング中に使用するために、レベル／シーンの完了前に、クライアントデバイスに伝送されてよい。いくつかの形態では、ユーザのシーン／レベルのゲームプレイ完了が所定の閾値を超えると、利用可能な帯域幅が許可する範囲において、視覚／音声アセットがクライアントデバイスに伝送される。
【００７４】
クライアントデバイス１００の入力処理モジュール４１６は、コントローラデバイスまたは他の入力デバイスからの入力を処理し、入力データ４１８を実行中のビデオゲーム３０２に伝送するように構成される。ビデオゲーム３０２は、入力データ４１８を適用し、そのゲーム状態４０２を更新する。このゲーム状態に基づいて、将来予期されるゲーム状態を決定することができ、将来予期されるゲーム状態に基づいて、クライアントデバイスへの視覚／音声アセットの伝送を決定することができることが理解されるだろう。
【００７５】
図５は、本開示の実施形態による、ローカルアプリケーションクイックスタート機能を提供する方法を例示する。動作方法５００では、ビデオゲームを開始する要求が、クラウドゲーミングサービスと通信しているクライアントデバイスで受信される。動作方法５０２では、これが、ゲームの最初の購入など、ゲームを要求する最初のインスタンスであるか、または更新が必要であるかどうかを判定する。該当する場合、動作方法５０４で、ビデオゲームの初期コンテンツがダウンロードされ、インストール及び／または更新される。更新または追加のダウンロードが必要ない場合、またはそのようなダウンロード及びインストール／更新の後、動作方法５０６で、ビデオゲームの初期コンテンツがクライアントデバイスのローカルストレージからレンダリングされる。動作方法５０８では、レンダリングされた初期コンテンツに応答するユーザ入力及び／または選択がクライアントデバイスで処理され、動作方法５１０では、初期コンテンツのレンダリング状態が更新されるため、動作方法５０６に戻る。
【００７６】
一方、ビデオゲームにアクセスする要求は、ユーザのゲーム所有権及び／または要求されたビデオゲームの購入を認証するクラウドゲーミングサービスに伝達される。動作方法５１８では、クラウドゲーミング機は、要求されたビデオゲームを実行するように初期化され、ユーザのクラウドゲーミングセッションに割り当てられる。動作方法５２０では、クラウドゲーミング機はビデオゲームを実行する。動作方法５２２では、ユーザ入力／選択は、実行中のビデオゲームによって処理され、実行中のビデオゲームの状態を更新する。入力／選択は、初期コンテンツとのユーザ対話から定義することができる。
【００７７】
動作方法５１２では、クライアントデバイスは、ビデオゲームのストリーミングの開始を要求する及び／またはそのために待機する。動作方法５２４では、クラウドゲーミングサービスは、ビデオゲームのストリーミングビデオ／音声を生成して伝送し、動作方法５１４では、ストリーミングビデオ／音声は、クライアントデバイスによって受信され、ユーザ対話性のためにレンダリングされる。
【００７８】
図６は、本開示の実施形態による、ローカルアプリケーションクイックスタート機能を提供する方法を例示する。動作方法６００では、ユーザは、クライアントデバイスを経由してクラウドゲーミングサービスにログインし、これによって、動作方法６１２でのクラウドゲーミングサーバによるユーザ認証が生じる。動作方法６０２では、ユーザはクライアントデバイスでビデオゲームを開始し、これに応答して、動作方法６０４では、ビデオゲームの初期コンテンツがクライアントデバイスのローカルストレージからロードされ、ディスプレイにレンダリングされる。
【００７９】
一方、動作方法６１４では、ビデオゲームを開始するユーザ要求に応答して、ゲーム機がユーザのクライアントデバイスにプロビジョニング／割り当てられる。動作方法６１６では、ゲーム機は要求されたビデオゲームタイトルをロードする。動作方法６１８では、ユーザ要求を予期しながら、またはユーザの要求に応答してのいずれかで、ユーザアカウントから保存されたゲームデータにアクセスし、ロードする。
【００８０】
動作方法６０６では、対話型ゲームプレイを開始する要求をクライアントデバイスのユーザから受信する。動作方法６２０では、クラウドゲーム機によって対話型ゲームプレイを実行する。動作方法６２２では、クラウドゲーミングサービスは、クライアントデバイスに伝送されるビデオストリームを生成する。動作方法６０８では、クライアントデバイスによってビデオストリームをレンダリングする。動作方法６１０では、対話型入力をクライアントデバイスによって受信し、クラウドゲーム機で実行中のビデオゲームに伝送する。実行中のビデオゲームは対話型入力を処理してそのゲーム状態を更新し、更新されたゲーム状態に基づいて、参照番号６２２で示されるように、ビデオストリームを生成する。
【００８１】
図７は、本開示の形態による、既存の従来のゲームストリーミング設定の帯域幅利用を、クライアントキャッシュを用いる帯域幅利用と比較するデータ帯域幅対時間を図示するグラフである。曲線７００は、ゲームストリーミングの利用可能な最大データ帯域幅を例示する。曲線７０２は、既存の従来のゲームストリーミング設定の帯域幅利用を例示する。曲線７０４は、本明細書の他の箇所に記載されている通り、クライアントがキャッシュ可能なコンテンツを組み込んだゲームストリーミング設定の帯域幅利用を例示する。時間Ｔ０において、曲線７０２について示された帯域幅利用レベル７０６は利用可能な帯域幅内にあり、したがって、ユーザはストリーミング品質の低下を体験しない。しかしながら、時間Ｔ２では、シーン移行または他のイベントが発生し、これによって、帯域幅利用が劇的に増加する。帯域幅利用は、利用可能な最大帯域幅７００を超えるピークレベル７０８に上昇し、これによって、ビデオ／音声ストリーミング品質が低下する可能性がある。時間Ｔ３では、帯域幅利用は、利用可能な最大帯域幅内のレベル７１０に戻る。
【００８２】
曲線７０４は、本開示の形態による、クライアントキャッシングを用いるクラウドゲーミング設定の帯域幅利用を例示する。時間Ｔ０から時間Ｔ１では、帯域幅利用はレベル７１２であり、これは、クライアントでキャッシュ可能なコンテンツを使用してビデオ／音声ストリームの一部分を提供するため、従来の設定の対応レベル７０６よりも若干低くなり得る。時間Ｔ１では、ユーザのゲームプレイが、より広い帯域幅利用を必要とするシーン移行または他のイベントに近づいていると判断される。したがって、シーン移行に使用されるキャッシュ可能なコンテンツは、シーン移行の発生より前にクライアントデバイスにストリーミングされ、その結果、帯域幅利用がレベル７１４に増加する。レベル７１４は、従来のシステムの帯域幅利用のレベル７１６を上回るが、依然として利用可能な帯域幅７００内にあることが理解されるだろう。
【００８３】
時間Ｔ２では、シーン移行が発生し、帯域幅利用はレベル７１８まで上昇することがあるが、従来のシステムとは異なり、クライアントキャッシングを用いるシステムのレベル７１８は依然として利用可能な帯域幅７００内にあり、ストリーミングの品質は低下しない。時間Ｔ３ではシーン移行は完了し、帯域幅利用はレベル７２０まで低下し、これは、クライアントにキャッシュされたコンテンツを継続的に適用してビデオ／音声ストリームの一部分を提供するため、レベル７１０を下回る可能性がある。
【００８４】
ユーザが所与のビデオゲームをプレイすると、ビデオゲームに関連する保存データが生成される。ビデオゲームのためのユーザの保存データは、ユーザのゲームプレイ中の様々な時点でビデオゲームのゲーム状態を記述し、再構築するために使用できるデータ、またはビデオゲームに関連するユーザ専用の他の任意のデータを含むことができる。例えば、ユーザのゲーム保存データは、オブジェクト（例えば、キャラクタ、アイテム、車両、武器または任意の他のオブジェクト）、オブジェクトの状態または特徴、位置（位置及び方向を含む）及び／またはオブジェクトの動き、リソース、機能、量／完了レベルなどを定義するデータを含んでよい。ユーザの保存データはさらに、ゲーム専用のユーザプロファイル情報、成績、トロフィー、賞、ゲームの嗜好、アクティビティ履歴、チャット履歴など、プレイヤごとに異なり得る他の種類のゲーム関連データを含むことができる。所与のビデオゲームのためのユーザの保存データの詳細は、例えば、ゲームが保存される頻度、利用可能なゲーム状態情報の保存される量の観点で変わり得ることが理解されるだろう。ビデオゲームは、進捗、ゲームタスクの完了／レベル／セクション、経過時間、ユーザ設定などの要素を基に、定期的にゲームを自動的に保存する（ユーザ設定に従って調整可能であり得る）自動保存機能を有してよい。さらに、ユーザは、ゲームプレイ中に、様々な時点、様々な地理的／空間的な位置、様々な完了量などでゲームを保存するように選択してよく、これによって、所望する場合には、ユーザはゲームプレイの同じ（またはほぼ同じ）位置に戻ることができる。
【００８５】
ビデオゲームが本開示の形態によってクラウド内でホストされる場合、ユーザ保存データは、ビデオゲームが最後にストリーミングされたデータセンタに記憶されることが理解されるだろう。ビデオゲームがデータセンタのゲーム機によって最後に実行されたため、ゲーム機によってビデオゲームの実行から生成されたユーザ保存データは、ゲームプレイセッションの完了後にデータセンタに記憶することができる。しかしながら、クラウドビデオゲームの後続のセッションは、異なるデータセンタからストリーミングされる可能性があるため、クラウドビデオゲームのユーザ保存データは、特定のプレイヤに対して特定のクラウドビデオゲームに関する全てのオプションを完全に有効にするために、新規データセンタに移動させる必要があるだろう。ユーザ保存データは非常に広範囲に及ぶ可能性があり、あるデータセンタから別のデータセンタへのユーザ保存データの移行は、ユーザのゲームプレイ開始に望ましくない遅延を引き起こす。ゆえに、本開示の形態によって、クラウドビデオゲームのためのユーザの保存データの一部または全てを移動させる必要なく、ユーザがゲームプレイを開始することができる方法及びシステムが提供される。さらに、ユーザ保存データは、ゲームプレイ中のその後の時間において進行中のクラウドビデオゲーム実行に統合することができる。
【００８６】
図８Ａは、本開示の形態による、クラウドビデオゲームのゲームプレイを開始する前に、所与のユーザのビデオゲーム保存データをロードすることなく、クラウドビデオゲームのゲームプレイを提供する方法を概念的に例示する。動作方法８００では、ゲーム機はクラウドビデオゲームをロードする。ゲーム機は、クラウドビデオゲームを実行して、ユーザのクライアントデバイスにストリーミングされるビデオコンテンツを生成するように構成され、さらにクラウドビデオゲームの実行を駆動するためにクライアントデバイスから受信した入力を処理するように構成される。ゲームプレイを開始するのに必要な時間を最小化するために、ビデオゲームのユーザの保存データはゲーム機にロードされない。むしろ、クラウドビデオゲームは、クラウドビデオゲームのゲームプレイを開始するのに十分なパラメータを定義する汎用保存データをゲーム機にロードする。汎用保存データは、クラウドゲーミングシステムの特定のユーザに関連していないが、一般的なユーザまたはデフォルトユーザのためのパラメータを効果的に定義し得ることを理解すべきである。汎用保存データは、クラウドビデオゲームのためにユーザの保存データの配置決め及び移行を行う必要なく、ゲームプレイがより迅速に開始され得るよう利用される。
【００８７】
従って、汎用保存データを使用したクラウドビデオゲームのゲームプレイは、ビデオゲームのためのユーザの保存データのロード及び／または移行が必要とされた場合に生じていただろう時間遅延を伴うことなく開始される。ゆえに、ユーザが対話型ゲームプレイの開始を最初に要求してから、対話型ゲームプレイを開始し得るまでに必要な時間は、既存のクラウドゲーミング設定に比べて短縮される。さらに、いくつかの形態では、ゲーム機は、汎用保存データで構成されたビデオゲームをプリロードしてよい。これは、ゲームプレイの開始の要求とゲームプレイの開始との間のユーザの待ち時間を最小化し、クラウドビデオゲームのゲームプレイを実質的に即座に開始することができる。
【００８８】
いくつかの形態では、ビデオゲームにおけるユーザの最後の既知の位置（例えば、時間的、空間的、または進捗位置）からのゲームプレイの再開を容易にするために、ビデオゲームにおけるユーザの最後の既知の位置を識別するデータが読み出される。いくつかの形態では、そのようなデータは、クラウドビデオゲームのロード時に即座に利用可能になるように、クラウドゲーミングシステムによってユーザのアカウントの一部として記憶されるか、またはクライアントデバイスに記憶／キャッシュされる。上記の概念の組み合わせは、汎用ユーザデータがゲーム機にロードされている状態で、ユーザがユーザの最後の既知の位置からクラウドビデオゲームのゲームプレイを迅速に開始／再開し得る設定をもたらすことができることが理解されるだろう。すなわち、ユーザはビデオゲームにおけるユーザの最後の既知の位置からゲームプレイを開始してよいが、ゲーム実行は、ビデオゲームを容易にするために、ビデオゲームのためのユーザの保存データではなく汎用保存データに適用される。
【００８９】
いくつかの形態では、上記の概念は、ユーザの最後のゲームプレイ進捗位置に加えて、特定の基本的なゲーム保存データのプロビジョンを含むように拡張することができる。これは、上述のゲームプレイパラメータのいずれかを含み得るが、完全なユーザ保存データと比較すると限定的な形態である。例えば、所与のリソースパラメータのユーザの最後の既知の量（例えば、エネルギー／健康、弾薬など）を提供してよい。このようなデータはさらに、ユーザのアカウントに記憶されてよいか、またはクライアントデバイスに記憶されてよい。いくつかの形態では、ユーザの最後のゲームプレイの進捗位置及び／または基本的なゲーム保存データは、ビデオゲームが最後に実行されたデータセンタから、ユーザ保存データの全量を読み出すことなく読み出され、これによって、ユーザは、ユーザ保存データの全量が送信されるのを待つことなく、自分の最後の位置からゲームプレイを開始することができる。
【００９０】
いくつかの形態では、ユーザは、ビデオゲームにおける最後の既知の位置からゲームプレイを再開してよい。他の形態では、ユーザは、ユーザの最後の既知の位置より前の位置からゲームプレイを再開してよく、これによって、ビデオゲームのストーリーライン／アクティビティの途中でゲームプレイを開始するときにユーザの移行が容易になる。いくつかの形態では、ゲームプレイは、ユーザの最後の位置より前に発生したビデオゲーム内のブレークポイントから再開される。いくつかの形態では、以前のブレークポイントは最後に保存された位置であってよいが、他の形態では、以前のブレークポイントはユーザの最後の位置に基づいて選択されることが理解されるだろう。以前のブレークポイントはブレークポイントに関連する汎用保存データを有してよく、汎用保存データは、上記の通り、ユーザの保存データを送信することなく、ゲームプレイの迅速な開始を可能にするためにロードすることができる。
【００９１】
通常のビデオゲームがユーザによって初めて最初からプレイされるとき、ユーザがビデオゲームの開始段階において特定の定義済みパラメータでゲームプレイを開始するよう、ユーザのために新規ユーザ設定が構成されるか、または提供されることが理解されるだろう。これらの定義済みパラメータは、システムによって提供または選択されるデフォルトパラメータであってよいか、または初期設定インターフェースを通じてユーザによって選択されてよい。しかしながら、ビデオゲームの途中にある進捗位置から初期ゲームプレイを開始するには、通常、既存ユーザのゲーム保存データの識別が必要であり、これは、ユーザは、通常、ビデオゲームの前のステージをまず完了してからでないと、ビデオゲームの途中にある進捗位置にアクセスしてその進捗位置に到着することができないためである。進捗位置は時間的な位置、空間的な位置、ストーリーライン位置、またはビデオゲームによって定義される他の種類の位置の場合があり、ここからプレイヤはビデオゲームのゲームプレイを進めることができることが理解されるだろう。
【００９２】
ゆえに、本開示の形態は、ビデオゲームの実行のためにユーザのゲーム保存データをロードする必要なく、ユーザがビデオゲームの途中にある進捗位置からゲームプレイを開始し得る点で、既存のビデオゲームシステムとは異なる。これにより、ビデオゲームの途中にある進捗位置からゲームプレイの開始を要求するときに必要となるであろう、ゲームプレイの開始前のユーザの待ち時間が短縮される。以下でさらに説明するように、ゲームプレイは、ユーザの保存データをロードすることなく開始され、ユーザの保存データは、後続の時間にゲームプレイと統合される。
【００９３】
汎用保存データ及び／またはクラウドビデオゲームのその後の実行及びゲームプレイを伴うクラウドビデオゲームのロードと実質的に同時に、動作方法８０２では、ユーザが識別され、クラウドビデオゲームのユーザの保存データが識別される。クラウドビデオゲームのためのユーザの保存データは遠隔データセンタ内に配置されてよく、（汎用保存データで開始された）ユーザのゲームプレイセッションのために、クラウドビデオゲームを現在実行しているゲーム機のデータセンタに送信されてよい。クラウドビデオゲームのためのユーザの保存データの一部または全てをゲーム機にロードして、ユーザの進行中のゲームプレイセッションと統合してよい。
【００９４】
動作方法８０４では、ユーザ保存データは、クラウドビデオゲームのユーザのゲームプレイセッションにリンクされるか、または統合される。すなわち、いくつかの形態では、ユーザの保存データが進行中のゲームプレイセッションに適用され、汎用保存データを更新する。これにより、（別のデータセンタからストリーミングされた可能性がある）以前のセッションから、クラウドビデオゲームのためのパラメータがユーザに提供される。統合はさらに、汎用保存データで最初にインスタンス化された現在のセッションが行った進捗と組み合わせることもできる。一例として、現在のゲームプレイセッションに基づいて完全に更新されたパラメータを生成するために、特定の追加パラメータを合算してよい。
【００９５】
いくつかの形態では、ユーザ保存データの統合は、ユーザ保存データの送信を完了した後に行うことができることが理解されるだろう。一方、他の形態では、ユーザ保存データの統合は、ユーザ保存データの送信中にも行うことができる。例えば、所与の部分（またはパラメータ）が送信されると、ユーザ保存データの部分（または特定のパラメータ）は、送信され現在のゲームプレイセッションに即座に統合することができる。
【００９６】
ユーザ保存データをクラウドビデオゲームの現在のセッションにリンクまたは統合することは、一部のユーザにとっては独特または奇妙なこととして認識される可能性がある。したがって、いくつかの形態では、ユーザ保存データのリンクまたは統合への注目を低減することは、ビデオゲームの進捗における自然なブレークポイント（例えば、ゲームプレイの一時停止時、ビデオゲームの１つのステージまたはレベルから別のステージまたはレベルへの移行、タスクの完了後、ゲームプレイマイルストーンの達成後など）で発生するように構成される。ゲーム機がユーザ保存データをロードして汎用保存データを更新した後に、ゲームプレイは継続し、ゲームプレイのためのパラメータ及びユーザの保存データが更新される。
【００９７】
クラウドビデオゲームのゲームプレイの完了後、動作８０６で、ユーザはゲーム機から切り離される。すなわち、ユーザはもはやクラウドビデオゲームのセッションを実行したゲーム機には関連していない。クラウドビデオゲームのためのユーザの保存データはデータセンタに保存され、ユーザのプロファイル／アカウント情報及び／またはユーザのクライアントデバイスは更新されて、データセンタにおけるクラウドビデオゲームのためのユーザの保存データの位置を識別してよい。ゲーム機は、ビデオゲームの実行が別のユーザまたは同じユーザへの別のストリーミングビデオゲームセッションを可能にするよう利用可能である。いくつかの形態では、ユーザを切り離すことによって、ビデオゲームは汎用保存データがロードされた状態に戻り、これによって、別のユーザがクラウドビデオゲームのゲームプレイの開始を要求してゲーム機に割り当てられるときに、利用可能かつ即座のゲームプレイに対して準備可能となる。
【００９８】
図８Ｂは、本開示の形態による、ゲーム開始及びユーザ保存データの送信を管理する方法を例示する。動作方法８１０では、ビデオゲームをプレイする要求が受信される。動作方法８１２では、要求に応答して、ビデオゲームをストリーミングするデータセンタにユーザが割り当てられる。動作方法８１４では、汎用ゲームデータにアクセスする／ビデオゲームをロードする。動作方法８１６では、ビデオゲームのゲームプレイは、汎用ゲームデータで開始する。さらに、ビデオゲームをプレイする要求に応答して、動作方法８１８では、ビデオゲームのためのユーザ保存データが第２のデータセンタに配置される。動作方法８２０では、ユーザ保存データは、割り当てられたデータセンタであって、ここからユーザがビデオゲームをストリーミングするデータセンタに第２のデータセンタから送信される。動作方法８２２では、ユーザ保存データは、割り当てられたデータセンタにおいてビデオゲームを実行するゲーム機にロードされる。動作方法８２４では、ビデオゲームのゲームプレイのブレークポイントが決定される。ブレークポイントに到達すると、動作方法８２６で、ビデオゲームの実行がユーザ保存データで更新される。動作方法８２８では、ビデオゲームの対話型ゲームプレイが継続する。
【００９９】
図９は、本開示の形態による、クラウドビデオゲームの一連のゲームプレイセッションを概念的に例示する。例示された形態では、ゲームプレイ進捗バー９００は、クラウドビデオゲームのコンテキスト内でのユーザのゲームプレイの進捗を視覚的に例示する。ゲームプレイ進捗バー９００に沿った水平の位置は、ビデオゲームのコンテキスト内の進捗位置（例えば、時間的コンテキストもしくは空間的コンテキスト、または他の種類のコンテキストであって、これに沿ってビデオゲームにおけるユーザのゲームプレイ進捗を測定／定量化し得るコンテキスト）を示す。２つの位置間のゲームプレイ進捗バー９００の網掛け部分は、ゲームプレイ進捗の量を示し、さらに、ビデオゲーム内の１つの進捗位置から別の進捗位置への進捗を定義する。
【０１００】
クラウドビデオゲームがデータセンタ番号１において実行されるゲームプレイセッション番号１の間、ユーザは、進捗位置Ａで開始して進捗位置Ｂでセッションが終了するクラウドビデオゲームのゲームプレイを冒頭から開始する。進捗位置Ａでは、シーン９０２がユーザに示される（例えば、ビデオゲームの実行によって生成され、データセンタ番号１からユーザのクライアントデバイスにストリーミングされる）。ユーザのゲームプレイが位置Ｂに到達すると、シーン９０４がユーザに示される。ゲームプレイセッション番号１の間、ユーザのゲームプレイは進捗位置Ａから進捗位置Ｂに進み、ゲームプレイが停止した後、ユーザの保存データは、参照番号９０６によって示されるように、データセンタ番号１に記憶される。
【０１０１】
後続時間に、クラウドビデオゲームのゲームプレイセッション番号２がユーザによって開始される。ユーザのゲームプレイセッション番号２は、ゲームプレイセッション番号１がそこからインスタンス化されたデータセンタと同じデータセンタ番号１に割り当てられている。ゆえに、ビデオゲームのためのユーザの保存データは既にデータセンタ番号１に配置されているため、参照番号９０７で示されるように、ゲームプレイセッション番号２に即座にロードされ、これには、進捗位置Ｂからビデオゲームのビデオゲームを再開するために利用される全ての利用可能パラメータが含まれる。ゆえに、セッション番号２の間、ユーザは、ユーザが以前のセッション番号１を過去に終了した進捗位置Ｂからゲームプレイを再開することができ、セッション番号２のゲームプレイの冒頭に示されるシーン９０８はセッション番号１の終わりに示されるシーン９０４と一致する。本開示の形態において、クラウドゲーミングシステムは、ビデオゲームのためのユーザの保存データが、ビデオゲームの現在のセッションがそこでインスタンス化されるか、これからインスタンス化されるデータセンタと同じデータセンタに記憶されているかどうか（または、ビデオゲームのためのユーザの過去の直近のゲームプレイセッションが同じデータセンタからストリーミングされたかどうか）を決定するように構成されてよく、該当する場合、対話型ゲームプレイを開始する前に、ビデオゲームのためのユーザの保存データがロードされることが理解されるだろう。一方、該当しない場合、上記の通り、遅延を低減するために、ビデオゲームのためのユーザの保存データは対話型ゲームプレイを開始する前にはロードされない。
【０１０２】
ビデオゲームのセッション番号２の間、ユーザのゲームプレイは、進捗位置Ｂから進捗位置Ｃに進み、進捗位置Ｃの時点でゲームプレイセッション番号２が終了する。セッション番号２のゲームプレイの終了後、ユーザの保存データは、参照番号９１２によって示されるように、データセンタ番号１に記憶される。
【０１０３】
続いて、別のデータセンタ番号２において、クラウドビデオゲームのゲームプレイセッション番号３がインスタンス化される。ユーザの保存データはデータセンタ番号２に記憶されていないため、ユーザがゲームプレイを開始することにより（例えば、ネットワークを介したユーザ保存データの読み出し及び移行によって生じる）過度の遅延が生じることを回避するために、クラウドビデオゲームは、参照番号９１４によって示されるように、汎用保存データをロードする。ビデオゲームのセッション番号３にはユーザの保存データがロードされていないため、ゲームプレイの特定の態様はユーザの以前の構成と一致しない可能性がある。例えば、セッション番号３の進捗位置Ｃに提示されたシーン９１６は、セッション番号２の進捗位置Ｃに提示されたシーン９１０とは完全に一致しないことがある。限定ではなく単なる例として、例示された形態では、シーン９１０において損傷を受けた建物は、シーン９１６において損傷のない状態で示されている。これは、生成された保存データでインスタンス化されたとき、建物は損傷を受けていない状態にあるが、ユーザ保存データがロードされると、建物は損傷した状態で示されるためである。同様の概念は、ビデオゲームのゲームプレイ中に提示される仮想シーン内のオブジェクトの任意のプロパティまたは属性に拡張され得ることを理解すべきである。ビデオゲームのためのユーザ保存データがない場合、オブジェクトは、ユーザ保存データのデフォルト値に一致しないデフォルト値を有する可能性があり、したがって、ユーザ保存データが適用されたときに生じる方法とは異なる方法で提示され得る。しかしながら、ユーザは、クラウドビデオゲームのためのユーザの保存データの移行及びロードを待たずに、即座にゲームプレイを開始することができる。
【０１０４】
セッション番号３中のビデオゲームのインスタンス化及びゲームプレイと実質的に同時に、データセンタ番号１からデータセンタ番号２への移行を含む、クラウドビデオゲームのためのユーザの保存データが配置され、読み出される。進捗位置Ｄにおいて、ユーザ保存データは、参照番号９１８によって示されるように、ゲームプレイセッション番号３と統合される。これは、セッション番号３の間にそのポイント（進捗位置Ｄ）までに発生したゲームプレイと、ユーザ保存データとを照合するプロセスを伴う場合がある。例えば、ゲームプレイセッション番号３のオブジェクトのプロパティ及び属性は、ユーザの保存データによって更新されてよい。ユーザの保存データはさらに、発生したゲームプレイによって更新されてよい。ユーザの保存データは、参照番号９２２によって示されるように、進捗位置Ｅでのゲームプレイの終了時に記憶／更新されてよい。ゲームプレイが進捗位置Ｅに到達すると、シーン９２０が提示される。
【０１０５】
図１０Ａは、本開示の形態による、クラウドゲーミングサービスを提供するシステムを例示する。クラウドゲーミングシステム１０８０は、ネットワーク１００６を介して互いに通信し、ユーザ１０００によって操作されるクライアントデバイス１００２にクラウドゲーミングサービスを提供するいくつかの構成要素を含む。クラウドゲーミングシステム１０８０は、クラウドゲーミングシステムのユーザによるクラウドゲーミングアクティビティに関するデータ及びサービスを管理するように構成されるクラウドホスティングシステム１００８を含む。クラウドホスティングシステムは、クライアントデバイス１００２からの要求を（ネットワーク１００６を介して）受信及び応答するクラウドゲーミングサーバ１０１２を含む。クラウドゲーミングサーバ１０１２は、例えば、クラウドビデオゲームのゲームプレイを開始する要求を受信し、これに応答して、クライアントデバイス１００２をデータセンタ１０４８またはデータセンタ１０６２などのデータセンタに割り当て、クラウドビデオゲームの実行及びストリーミングを実行することができる。
【０１０６】
クラウドホスティングシステム１００８はさらに、ユーザ１０００のユーザアカウントデータ１０３４を管理するように構成されるユーザアカウントマネージャ１０１０を含み、ユーザアカウントデータ１０３４は、ユーザアカウントデータストレージ１０３２に記憶される。ユーザアカウントデータ１０３４は、ユーザのアカウント及びそのクラウドゲーミングサービスに関する様々な種類のデータを含む。一例として、ユーザアカウントデータ１０３４は、認証情報データ１０３６、アプリケーションデータ１０３８、アクセスロケーションデータ１０４０、ユーザプロファイルデータ１０４２、アプリケーションプレイ履歴１０４４、ソーシャルデータ１０４６などを含んでよい。
【０１０７】
認証情報データは、例えば、サブスクリプション、サービス、クレジットなどを識別するデータなど、クラウドゲーミングサービスに関するユーザアカウントの許可及びアクセス権を識別するデータを含むことができる。アプリケーションデータ１０３８は、例えば、購入済みのアプリケーション／ゲームを識別するデータ、ユーザアカウントに関する所与のアプリケーション／ゲームの構成またはバージョン、所与のアプリケーション／ゲームに関するユーザ専用データなど、特定のアプリケーション／ゲームに関するデータを含むことができる。
【０１０８】
アクセスロケーションデータ１０４０は、ユーザ１０００がクラウドゲーミングシステム１０８０にアクセスした位置、例えば、地理的位置または領域（例えば、座標、市、州、国）、ｉｐ／ネットワークアドレス情報などを識別するデータを含むことができる。アクセスロケーションデータ１０４０はさらに、ユーザのクライアントデバイス１００２がクラウドゲーミングシステムからビデオゲームをストリーミングした特定のデータセンタを識別するデータを含んでよい。
【０１０９】
ユーザプロファイルデータ１０４２は、人口統計情報（例えば、年齢、性別、居住地、所得、民族性、言語、教育など）、連絡先情報（例えば、電子メール、電話番号など）、ユーザの嗜好、ユーザの関心、通知／通信設定など、ユーザの特徴を識別するデータを含む。いくつかの形態では、ユーザの関心及び嗜好は、クラウドゲーミングシステム上のユーザのアクティビティに基づいて、システムによって決定することができ、例えば、興味は、購入済みのゲーム、ゲームプレイ履歴、視聴ビデオ、閲覧履歴、ソーシャルネットワークアクティビティなどを基に推定される可能性があることが理解されるだろう。
【０１１０】
アプリケーションプレイ履歴データ１０４４は、例えば、プレイまたはアクセスしたゲーム／アプリケーション、所与のゲームのゲームプレイ時間、所与のゲームのゲームプレイの継続時間、所与のゲームのゲームプレイの合計時間など、ユーザ１０００の過去のゲームプレイアクティビティを識別するデータを含む。アプリケーションプレイ履歴データ１０４４は、アクセスロケーションデータ１０４０と相関しており、ユーザ１０００がどの位置からどのゲームをプレイしたかを識別することができる。
【０１１１】
ソーシャルデータ１０４６は、ユーザ１０００のソーシャルネットワークを識別するデータならびにユーザに関するソーシャルネットワーク上のアクティビティを含むことができる。ソーシャルネットワークは、クラウドゲーミングシステム１０８０の一部であるゲーミング専用のソーシャルネットワークとすることができる、あるいはクラウドゲーミングシステム１０８０からアクセス可能なサードパーティのソーシャルネットワークであってもよい。ソーシャルデータ１０４６はさらに、ユーザのソーシャルグラフを識別するデータを含み、これには、ユーザ１０００のソーシャルグラフのメンバである他のユーザを識別するデータが含まれる。
【０１１２】
上記の通り、ユーザアカウントマネージャ１０１０は、ユーザアカウントデータ１０３４を管理し、これには、ユーザのゲームプレイアクティビティに基づいて、ユーザアカウントデータ１０３４を更新することが含まれ得る。例えば、ユーザアカウント管理１０１０は、ユーザ１０００による所与のクラウドビデオゲームのゲームプレイに基づき、アプリケーションデータ１０３８及び／またはアプリケーションプレイ履歴１０４４を更新し得る。
【０１１３】
クラウドホスティングシステムはさらに、クライアントデバイス１００２などのクライアントデバイスを、ビデオゲームストリーミングサービスを供給するデータセンタ１０４８及び１０６２などのデータセンタに割り当てすることを管理するように構成されたデータセンタマネージャ１０２０を含む。データセンタマネージャ１０２０は、データセンタロケーションデータ１０２２を含み、データセンタロケーションデータ１０２２は、様々なデータセンタ（例示された形態では、データセンタ１０４８及び１０６２を含む）の位置を識別するデータを含む。
【０１１４】
データセンタアプリケーション及びサービスモジュール１０２４は、所与のデータセンタから利用可能な特定のアプリケーション／ゲーム及びサービスを識別するデータを提供する。データは、ゆえに、データセンタからのストリーミングに利用可能な特定のゲームタイトルならびに所与のデータセンタによって供給されるサービスを識別することができる。いくつかの形態では、データセンタ内のゲーム機に特定のクラウドビデオゲームをプリロードしてよく、データセンタアプリケーション及びサービスモジュール１０２４は、既にプリロードされてストリーミングに利用可能なゲーム機を含む、所与のデータセンタにおけるゲーム機の現在の状態を識別するデータを提供してよい。このようなデータに基づいて、データセンタマネージャは、ユーザがゲームプレイを要求するビデオゲームがプリロードされている利用可能なゲーム機を有する所与のデータセンタに、所与のユーザのクライアントデバイスを割り当ててよい。
【０１１５】
データセンタマネージャはさらに、データセンタの現在及び過去の性能（例えば、ストリーミングデータ速度（ダウンストリーム／アップストリーム）、ゲーム機利用、様々な位置からの往復ネットワーク時間など）を識別するデータを提供することができるデータセンタ性能指標モジュール１０２６を含んでよい。データセンタ性能指標モジュール１０２６は、所与のデータセンタの性能及び利用に関するリアルタイム指標を提供することができ、したがって、所与のデータセンタへのユーザクライアントデバイスの割り当てに影響を及ぼすデータを提供し得る。例えば、そのようなデータは、データセンタ間での負荷分散を提供するために利用されてよく、複数のデータセンタによって現在行われている相対負荷に少なくとも部分的に基づいて、クライアントデバイスがデータセンタに割り当てられる。
【０１１６】
例示された形態では、データセンタサーバ１０５０、ゲーム機（複数可）１０５２及びビデオサーバ１０５４を含む、第１のデータセンタ１０４８が示されている。一例として、第１のデータセンタ１０４８は、図９を参照して上に記載したデータセンタ番号１の場合がある。図１０Ａを続けて参照すると、ゲーム機１０５２は、その上でクラウドビデオゲームの実行が可能になる任意のハードウェア／ソフトウェア構成を有することができることが理解されるだろう。例えば、ゲーム機は、ゲームコンソールまたは同等のハードウェア、パーソナルコンピュータ、サーバコンピュータ、クラウドビデオゲームに適切な実行環境を提供するように構成された仮想マシンなどであってもよい。ゲーム機１０５２には、クラウドビデオゲームがロードされており、クラウドビデオゲームの実行可能なコードはゲームタイトルストレージ１０５６から読み出される。
【０１１７】
データセンタサーバ１０５０は、クラウドホスティングシステムからの要求を受信して応答する。例えば、クラウドゲーミングサーバ１０１２は、クライアントデバイス１００２のクラウドビデオゲームのゲームプレイを開始する要求をデータセンタサーバ１０５０に送信してよい。データセンタサーバ１０５０は、これに応答してクライアントデバイス１００２をゲーム機１０５２に割り当ててよく、ゲーム機１０５２にはクラウドビデオゲームがロードされるか、またはプリロードされてよい。データセンタ１０４８は、クラウドビデオゲームのためのユーザ保存データ１０６０を含む、保存データストレージ１０５８を含む。ここで説明するシナリオでは、クラウドビデオゲームのためのユーザ保存データ１０６０が、ゲームプレイがストリーミングされるデータセンタ１０４８に記憶されることが判断されてよく、したがって、ゲーム機１０５２にもクラウドビデオゲームのためのユーザ保存データ１０６０がロードされる。
【０１１８】
クラウドビデオゲームのためのユーザ保存データがデータセンタ１０４８に記憶されるかどうかの判断は、いくつかの形態では、ゲーム機またはデータセンタサーバによって行うことができることが理解されるだろう。いくつかの形態では、クラウドビデオゲームのためのユーザの保存データの位置は、例えば、アプリケーションデータ１０３８の一部として、ユーザアカウントデータ１０３４の一部として記憶することができ、ユーザアカウントマネージャ１０１０によって読み出されて、データセンタサーバ１０５０に渡されてよく、これによって、ゲームプレイの迅速な開始を容易にするために、ゲーム機１０５２にユーザ保存データをロードするか、または汎用保存データをロードするかどうかを判断してよい。
【０１１９】
ゲーム機１０５２は、クラウドビデオゲームを実行し、ビデオサーバ１０５４に伝送されるビデオコンテンツを生成する。ビデオサーバ１０５４は、ネットワーク１００６を介してクライアントデバイス１００２にストリーミングされるビデオデータにビデオコンテンツを符号化及び／または暗号化する。クライアントデバイス１００２は、ビデオデータを復号及び／または解読し、結果として生じるビデオコンテンツをテレビまたはＨＭＤなどのディスプレイデバイス１００４上にレンダリングする。クライアントデバイス１００２は、ユーザ１０００からの対話型入力（例えば、コントローラデバイスまたはＨＭＤを経由して、または画像キャプチャ及び処理を通じて）を受信し、入力データを生成してネットワーク１００６を介してゲーム機１０５２に送信する。入力データはゲーム機１０５２によって処理され、クラウドビデオゲームの実行を駆動して、クラウドビデオゲームの後続のゲーム状態を定義する。
【０１２０】
データセンタ１０４８を経由するクラウドビデオゲームのゲームプレイの終了時に、クラウドビデオゲームのためのユーザの保存データがユーザ保存データ１０６０として保存／更新される。アプリケーションデータ１０３８及びアプリケーションプレイ履歴１０４４はさらに、クラウドビデオゲームの直近のゲームプレイセッションに基づいて、ユーザアカウントマネージャ１０１０によって適宜更新されてよい。例えば、アプリケーションデータ１０３８は、クラウドビデオゲームのコンテキスト内のユーザの最後の進捗位置を識別するデータ、ならびにユーザの保存データの位置（データセンタ１０４８において）を含むように更新されてよい。
【０１２１】
クラウドビデオゲーム後続のゲームプレイセッションは、別のデータセンタ１０６２でインスタンス化されてよい。いくつかの形態では、データセンタ１０６２は、図９を参照して記載したデータセンタ番号２であってもよい。図１０Ａを続けて参照すると、データセンタ１０６２は、データセンタ１０４８と同様の構成要素を含み、データセンタサーバ１０６４、ゲーム機１０６６（複数可）、ビデオサーバ１０６８、ゲームタイトルストレージ１０７０及び保存データストレージ１０７２を含む。データセンタマネージャ１０２０は、データセンタ１０６２の現在のロードレベル及びデータセンタ１０４８などの他の利用可能なデータセンタ、要求されたクラウドビデオゲームをロードまたは場合によってはプリロードし得る利用可能なゲーム機、利用可能なデータセンタへのクライアントデバイスの近接性、クラウドビデオゲームのためのユーザ保存データの位置などを含む様々な要素に基づいて、クライアントデバイス１００２をデータセンタ１０６２に割り当ててよい。
【０１２２】
この場合、クラウドビデオゲームのセッションをインスタンス化するために、データセンタマネージャによって、クライアントデバイス１００２がデータセンタ１０６２に割り当てられることが判断される。ユーザアカウントマネージャ１０１０は、アプリケーションデータ１０３８から、クラウドビデオゲームのためのユーザの保存データがデータセンタ１０４８に記憶されていると判断し得る。したがって、データセンタマネージャは、ゲーム機１０６６に汎用保存データをロードするようデータセンタサーバ１０６４に指示してよい。これは、クラウドビデオゲームのためのユーザの保存データを最初にデータセンタ１０６２に移行する必要があり、ユーザがゲームプレイを開始するのを遅延させる可能性がある。
【０１２３】
ゲーム機１０６６に汎用保存データ及び／またはクラウドビデオゲームのゲームプレイをロードするのと同時に、クラウドビデオゲームのためのユーザ保存データを管理する保存データサービス１０２８は、保存データ移行マネージャ１０３０を起動して、ユーザ保存データ１０６０のデータセンタ１０６２への送信を管理し、データセンタ１０６２では、ユーザ保存データ１０７４として保存データストレージ１０７２に記憶される。ユーザ保存データの送信後、ユーザ保存データは、これまでに発生したクラウドビデオゲームのゲームプレイに適用及び統合するか、または照合することができる。
【０１２４】
いくつかの形態では、ゲーム機にユーザ保存データをロードするか、汎用保存データをロードするかの判断は、ユーザ保存データのロードの推定完了時間に部分的に基づいて行われ、これは、クラウドビデオゲームのためのユーザ保存データの量、ユーザ保存データの位置及び送信先のデータセンタの位置、ネットワーク状態、ゲーム機のプレロードまたは非プレロード状態などの要素を基に判断することができる。いくつかの形態では、推定完了時間が所定の閾値時間を超える場合、ゲーム機はユーザ保存データを最初にロードするわけではなく、汎用保存データをロードする。
【０１２５】
本開示の形態によるクラウドゲーミングシステムでは、クラウドビデオゲームのゲームプレイのためにビデオのストリーミングを開始する前に、ストリームテストを行うことができる。通常、対話型ゲームプレイのクラウドビデオゲームを要求すると、ユーザのクライアントデバイスはデータセンタでゲーム機に割り当てられる。ゲーム機を起動して、実行可能なクラウドビデオゲームをロードする、及び／またはクラウドビデオゲームの実行のための汎用保存データまたはユーザ保存データをロードする必要があり得る。これらのアクティビティの後、ストリームテストを行い、クライアントデバイスに対して、サービスのゲームストリーミング品質がテストされる。しかしながら、ストリームテストの性能は、ゲームプレイの開始前にさらなる遅延を引き起こす。したがって、本開示の形態により、ストリームテストは、ゲーム機の起動及び初期化と並行的に行うことができる。
【０１２６】
図１０Ｂは、本開示の形態による、クラウドビデオゲームのユーザ保存データの移行及びユーザ保存データへのポインタの更新を例示する。一例として、クラウドビデオゲームのためのユーザ保存データの位置は、ユーザのアカウントに関連して記憶することができる。例示された形態では、上述のアプリケーションデータ１０３８は所与のユーザのユーザアカウントデータ１０３４の一部であって、ユーザアカウントデータストレージ１０３２に記憶される。ユーザのアプリケーションデータ１０３８は、第１のアプリケーション（またはゲーム）ＡのためのアプリケーションＡデータ１０８０ならびに第２のアプリケーション（またはゲーム）ＢのためのアプリケーションＢデータ１０８４を含む。アプリケーションＡのためのユーザ保存データ位置１０８１は、ユーザ保存データ位置を定義するポインタ１０８２（例えば、ネットワークアドレスまたは他の位置の識別子）を定義することができる。
【０１２７】
より具体的には、例示された形態では、ポインタ１０８２は、アプリケーションＡのユーザ保存データ１０８９の現在の位置を、データセンタＡ１０８８に記憶されているものとして識別する。同様に、アプリケーションＢのユーザ保存データ位置１０８５は、アプリケーションＢのためのユーザ保存データ１０９１の現在位置を、データセンタＢ１０９０に記憶されているものとして識別するポインタ１０８６を定義することができる。異なるゲームのユーザ保存データの位置は、ユーザのプレイ履歴及びそれぞれのクラウドビデオゲームが最後にストリーミングされた特定のデータセンタ位置に応じて、異なるデータセンタに配置されてよいことが理解されるだろう。
【０１２８】
ユーザが異なる位置からクラウドゲーミングシステムにアクセスし、そのゲームプレイセッションが異なるデータセンタからストリーミングされるため、特定のビデオゲームのユーザ保存データは、１つのデータセンタから次のデータセンタに移行される。ゆえに、所与のビデオゲームに対してユーザ保存データの現在の位置を追跡することが重要である。例えば、図１０Ｂを続けて参照すると、ユーザはアプリケーションＡのセッションをデータセンタＣ１０９２からストリーミングしてよく、ゆえに、ユーザ保存データ１０８９はデータセンタＣ１０９２に移行され、アプリケーションＡのユーザ保存データ１０９３を定義する。アプリケーションＡのユーザ保存データ位置１０８１は、ゆえに、データセンタＣ１０９２でのアプリケーションＡのユーザ保存データ１０９３の新しい位置を識別する新しいポインタ１０８３を定義するように更新される。アプリケーションＢも同様に、ユーザはアプリケーションＢのセッションをデータセンタＡ１０８８からストリーミングしてよく、ゆえに、アプリケーションＢのユーザ保存データ１０９１はデータセンタＡ１０８８に移行され、アプリケーションＢのユーザ保存データ１０９４を定義する。アプリケーションＢのためのユーザ保存データ位置１０８５は、ゆえに、データセンタＡ１０８８でのアプリケーションＢのユーザ保存データ１０９４の位置を識別する新しいポインタ１０８７を定義するように更新される。
【０１２９】
図１１は、本開示の形態による、クラウドビデオゲームをストリーミングするためにゲーム機を起動するのと同時にストリームテストを行う方法を例示する。タイムライン１１００は、クライアントデバイスのイベントを示し、一方、タイムライン１１０２は、クライアントデバイスと通信し得る１つ以上のサーバを含むクラウドゲーミングシステムのイベントを示す。動作方法１１０４では、クライアントデバイスはクラウドゲーミングシステムに接続し、クラウドビデオゲームのゲームプレイを開始するように要求する。この要求に応答して、動作方法１１０６では、ゲーム機は、要求されたクラウドビデオゲームの実行のために初期化される。すなわち、ゲーム機は、起動されてクラウドビデオゲーム用の実行可能なコードをロードし、ユーザとの対話型ゲームプレイセッションのために構成されてよく、これには、ゲームプレイセッションのためのユーザ保存データまたは汎用保存データのロードが含まれ得る。いくつかの形態では、ゲーム機は、クラウドビデオゲームのゲームプレイを開始する要求に応答して起動されるコンソールである。
【０１３０】
ゲーム機の初期化と実質的に同時に、動作方法１１０８では、クライアントデバイスとクラウドゲーミングシステムのサーバとの間でストリームテストが開始される。ストリームテストは、ユーザのクライアントデバイスにストリーミングされるビデオのサービス品質と、クライアントデバイスからクラウドゲーミングシステムに伝送されるデータをテストするように構成される。ストリームテストには、最大ダウンストリーム／アップストリームデータ速度（またはダウンストリーム／アップストリーム帯域幅）、往復時間、遅延、ドロップされたパケット率、エラー率など、ゲームストリーミングのサービス品質を示し得るネットワーク性能指標のテストを含むことがある。ストリームテストはさらに、クライアントデバイスのハードウェア及び／またはソフトウェア構成の識別及び／またはテストを含み得る。例えば、クライアントデバイスのハードウェア構成は、ストリームテストの一部として識別され、レンダリングのためのビデオコンテンツを生成するために、ビデオデータを復号及び／または解読する目的でクライアントデバイスの処理能力を決定し得る。さらに、クライアントデバイスのソフトウェア構成は、ストリームテストの一部として識別されてよく、更新がゲームストリーミングの目的で利用可能かつ推奨される、または必要であるかどうかを判断し得る。例えば、ゲームストリーミングを最適化するために、復号器または解読ソフトウェア更新をクライアントデバイスに適用する必要があり得る。
【０１３１】
動作方法１１１０では、ストリームテストが完了する。ストリームテストの結果に基づいて、クラウドビデオゲームのストリーミングのためのパラメータには、ゲーム機によるクラウドビデオゲームの実行用パラメータ、クラウドビデオゲームの実行によって生成されるビデオコンテンツの符号化／暗号化用パラメータ、クライアントデバイスによって受信されるビデオデータの復号／解読用パラメータ、及び／またはクライアントデバイスからクラウドゲーミング機への入力データの送信用パラメータを含むが、これらに限定されないパラメータが設定され得る。
【０１３２】
ストリームテストが完了し、ゲーム機が初期化された後、クラウドビデオゲームの対話型ゲームプレイが開始され、クラウドビデオゲームからの第１のビデオコンテンツがストリーミングされる。クラウドビデオゲームからのビデオコンテンツのストリーミングは、ゲーム機によるクラウドビデオゲームの実行によるビデオコンテンツの生成、生成されたビデオコンテンツのビデオデータへの符号化／暗号化、クライアントデバイスへのビデオデータの伝送、及びクライアントデバイスによるディスプレイへのレンダリングのために、伝送されたビデオデータをビデオコンテンツに復号／解読することを伴う場合があることが理解されるだろう。
【０１３３】
図１２は、本開示の形態による、クライアントデバイスにストリームテストを行うように構成されるクラウドゲーミングサービスを提供するシステムを例示する。例示された形態では、クラウドゲーミングシステムは、クラウドホスティングシステム１２０８ならびにデータセンタ１２２０及び１２３０を含むように定義される。クラウドホスティングシステム１２０８は、クライアントデバイス１２０２からネットワーク１２０６を介して要求を受信するサーバ１２１０を含み、ここからユーザ１２００はクラウドゲーミングシステムとインターフェースをとる。サーバ１２１０は、クラウドゲーミングシステム上のユーザのアカウントに関連するユーザアカウントデータ１２１６にアクセスし、クライアントデバイス１２０２からの要求に応答するためにデータを読み出し得る。
【０１３４】
サーバ１２１０は、クラウドビデオゲームのゲームプレイのストリーミングを開始する要求をクライアントデバイス１２０２から受信してよく、それに応答して、サーバ１２１０は、データセンタ割り当て論理１２１４を有するデータセンタマネージャ１２１２を起動し、データセンタ割り当て論理１２１４は、クラウドビデオゲームのセッションをインスタンス化するためにクライアントデバイス１２０２をデータセンタに割り当てるように構成され、そのデータセンタからクラウドビデオゲームはストリーミングされる。データセンタ割り当て論理１２１４は、上記の通り、クライアントデバイス１２０２の位置及びデータセンタへの近接性、ネットワーク状態、データセンタにおけるゲーム機の利用可能性、データセンタにおけるゲーム機のプレロード／アンロード状態、データセンタ利用率、負荷分散、ユーザ１２００によって（最も）直近で使用されたデータセンタなどを含む、様々な要因に基づいて、クライアントデバイス１２０２を所与のデータセンタに割り当て得ることが理解されるだろう。
【０１３５】
例示された形態では、クライアントデバイス１２０２はデータセンタ１２２０に割り当てられている。ゆえに、データセンタマネージャは要求されたビデオゲームをデータセンタサーバ１２２２に伝達し、データセンタサーバは、要求されたビデオゲームのために、ゲーム機１２２４の初期化を開始する。上記の通り、初期化は、ゲーム機の起動、クラウドビデオゲームの実行可能なコードのロードならびにクラウドビデオゲームのためのユーザ保存データのロードを含むことができる。ゲーム機１２２４の初期化と同時に、データセンタサーバ１２２２はさらに、ビデオサーバ１２２６のストリームテスト論理１２２８を起動して、データセンタ１２２０とクライアントデバイス１２０２との間のストリームテストを実行する。
【０１３６】
いくつかの形態では、ストリームテスト論理１２２８は、ネットワーク１２０６を介して、符号化／暗号化されたテストビデオデータを復号／解読のためにビデオサーバ１２２６からクライアントデバイス１２０２に送信するように構成される。このようにして、ネットワークを介したビデオデータの伝送は、クライアントデバイス１２０２の復号／解読機能と共にテストすることができる。ストリームテストは、ゲーム機の初期化と並行的に実行されることが理解されるだろう。これは、ゲーム機及びビデオサーバの別個の機能によって部分的に容易になり、前者はクラウドビデオゲームを実行するように構成され、後者はビデオストリーミングの作業を処理するように構成される。ゆえに、ビデオストリーミングは、ゲーム機上でのクラウドビデオゲームの初期化と同時にテストすることができる。ダウンストリームのビデオ伝送について説明したが、クライアントデバイス１２０２からゲーム機１２２４への入力データの伝送などのアップストリームデータ伝送も、ゲーム機のロードと並行的にテストされてよいことが理解されるだろう。
【０１３７】
いくつかの形態では、ストリームテストの結果が特定の要件を満たさない場合、または異なるデータセンタからより良い結果を得ることができると判断される場合、クライアントデバイス１２０２をデータセンタ１２３０などの別のデータセンタに再度割り当ててよく、データセンタ１２３０は、同様の構成要素をデータセンタサーバ１２３２、ゲーム機１２３４及びビデオサーバ１２３６の形態で含む。同様のストリームテストは、ゲーム機１２３４の初期化と並行的に行ってよい。
【０１３８】
図１３は、本開示の形態による、あるデータセンタから別のデータセンタへのゲームプレイセッションの移行を概念的に例示する。時間Ｔ１において、ユーザ１３００は東京（第１の位置）に位置し、ネットワーク１３０４を介してクラウドゲーミングシステム１３０５にアクセスするためにクライアントデバイス１３０２を操作する。クライアントデバイス１３０２は、ユーザ１３００に近接している東京データセンタ１３０６に割り当てられる。動作１３１２によって示されるように、クラウドビデオゲームは東京データセンタ１３０６で実行され、ユーザ１３００のためにクラウドビデオゲームのセッションＡを定義する。セッションＡはクラウドビデオゲームの対話型ゲームプレイを提供し、実行中のビデオゲームのビデオは、ネットワーク１３０４を介して東京データセンタからクライアントデバイス１３０２にストリーミングされ、クライアントデバイス１３０２からの入力データは、ネットワーク１３０４を介して東京データセンタ１３０６に伝送され、ビデオゲームの実行を駆動する。クラウドビデオゲームのセッションＡの終了時に、動作１３１４によって示されるように、ユーザ保存データが東京データセンタに記憶される。
【０１３９】
後続時間Ｔ２では、ユーザ１３００はサンフランシスコ（第２の位置）に移動した。ユーザ１３００はクライアントデバイス１３０８（クライアントデバイス１３０２と同じか、または異なるデバイスであってよい）を使用して、クラウドゲーミングシステム１３０５にアクセスする。ユーザ１３００及びユーザのクライアントデバイス１３０８はもはや東京には配置されていないが、クラウドビデオゲームのためのユーザの保存データはいまだに東京データセンタ１３０６に配置されている。したがって、クラウドビデオゲームのゲームプレイを開始及び／または再開する要求を受信すると、クラウドゲーミングシステム１３０５は東京データセンタでのゲームプレイを開始し、これによって、ユーザのゲーム保存データが即座にゲーム機にロードされ、ユーザに対して遅延を最小化することができる。動作１３１６によって示されるように、ユーザの保存データはロードされ、クラウドビデオゲームはセッションＣを定義するために実行され、これには、東京データセンタ１３０６からサンフランシスコのクライアントデバイス１３０８にビデオをストリーミングすること、ならびにクライアントデバイス１３０８から東京データセンタ１３０６に入力データを返送することが含まれる。
【０１４０】
セッションＢのロード及び／または実行と実質的に同時に、動作１３１８で示されるように、ストリームテストまたはサービス品質を評価することができる。現在の構成におけるクラウドビデオゲームをストリーミングするクラウドゲーミングシステムは最適ではなく、さらに、動作１３２０で示されるように、サンフランシスコデータセンタ１３１０のために、ストリームテストまたはサービス品質評価を行ってよい。結果は、ゲームプレイセッションをサンフランシスコデータセンタ１３１０に移行すべきであることを示してよく、したがって、動作１３２０では、クラウドビデオゲームのためのユーザ保存データはサンフランシスコデータセンタ１３１０に移行される。動作１３２２では、ゲームプレイセッションは、サンフランシスコデータセンタ１３１０に移行され、サンフランシスコデータセンタ１３１０においてクラウドビデオゲームの実行によって定義されるセッションＣを定義し、これには、ネットワーク１３０４を介して、ビデオをサンフランシスコデータセンタ１３１０からクライアントデバイス１３０８にストリーミングし、そこから入力データを受信してクラウドビデオゲームの実行を駆動することとを含む。
【０１４１】
いくつかの実施形態では、クライアントは、汎用コンピュータ、専用コンピュータ、携帯ゲーミングコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティングデバイス、ポータブルゲーミングデバイス、携帯電話、セットトップボックス、ストリーミング媒体インターフェース／デバイス、スマートテレビもしくはネットワークディスプレイ、または本明細書で定義されるクライアントの機能性を満たすように構成することができる任意の他のコンピューティングデバイスとすることができる。一実施形態では、クラウドゲーミングサーバは、ユーザによって利用されているクライアントデバイスの種類を検出し、ユーザのクライアントデバイスに適切なクラウドゲーミング体験を提供するように構成される。例えば、画像設定、音声設定及び他の種類の設定をユーザのクライアントデバイスに対して最適化してよい。
【０１４２】
図１４は、情報サービスプロバイダアーキテクチャの実施形態を例示する。情報サービスプロバイダ（ＩＳＰ）１４７０は、地理的に分散され、ネットワーク１４８６を経由して接続されたユーザ１４８２に多数の情報サービスを配信する。ＩＳＰは、株価の最新版、または放送メディア、ニュース、スポーツ、ゲーミングなどの様々なサービスのうちの１種類のみのサービスを配信することができる。追加的には、各ＩＳＰによって供給されるサービスは動的である、すなわち、サービスは任意の時点で追加または削除することができる。ゆえに、特定の種類のサービスを特定の個人に提供しているＩＳＰは、経時的に変化する可能性がある。例えば、ユーザは、自分の地元にいる間はユーザに近接しているＩＳＰによってサービスを受けてよく、ユーザは、異なる都市に旅行するときには異なるＩＳＰによってサービスを受けてよい。地元のＩＳＰは、必要な情報及びデータを新しいＩＳＰに送信し、これによって、ユーザ情報が、新しい都市のユーザに「追従」して、データがユーザにより近くなり、アクセスがより容易になる。別の実施形態では、マスタ−サーバ関係を、ユーザのための情報を管理するマスタＩＳＰと、マスタＩＳＰからの制御を受けてユーザと直接的にインターフェースをとるサーバＩＳＰとの間に確立してよい。別の実施形態では、クライアントが世界中を移動するときに、あるＩＳＰから別のＩＳＰにデータを送信することにより、ユーザにサービスを提供するために良好な位置にあるＩＳＰを、これらのサービスを配信するＩＳＰにする。
【０１４３】
ＩＳＰ１４７０は、アプリケーションサービスプロバイダ（ＡＳＰ）１４７２を含み、このプロバイダは、コンピュータベースのサービスを、ネットワークを介して顧客に提供する。ＡＳＰモデルを使用して供給されるソフトウェアは、オンデマンドソフトウェアまたはサービスとしてのソフトウェア（ＳａａＳ）と呼ばれる場合もある。（顧客関係管理などの）特定のアプリケーションプログラムへのアクセスを提供する単純な形態は、ＨＴＴＰなどの標準プロトコルを使用することによるものである。アプリケーションソフトウェアはベンダーのシステム上に常駐し、ベンダーによって提供された専用のクライアントソフトウェア、またはシンクライアントなどの他のリモートインターフェースによって、ＨＴＭＬを使用してウェブブラウザを通じてユーザによってアクセスされる。
【０１４４】
広範な地理的領域にわたって配信されるサービスは、クラウドコンピューティングを使用することが多い。クラウドコンピューティングは、動的にスケーラブルであり、多くの場合にはインターネットを介したサービスとして仮想化リソースが提供されるコンピューティングの方式である。ユーザは、ユーザをサポートする「クラウド」の技術基盤の専門家である必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ（ＩａａＳ）、サービスとしてのプラットフォーム（ＰａａＳ）及びサービスとしてのソフトウェア（ＳａａＳ）などの様々なサービスに分類することができる。クラウドコンピューティングサービスは、ウェブブラウザからアクセスされる共通のビジネスアプリケーションオンラインを提供することが多く、一方ソフトウェア及びデータはサーバ上に記憶されている。クラウドという用語は、インターネットが、コンピュータネットワーク図においてどのように表され、それが隠蔽している複雑な基盤のどのような抽象概念であるかに基づき、（例えば、サーバ、ストレージ及び論理を使用した）インターネットの例えとして使用される。
【０１４５】
さらに、ＩＳＰ１４７０は、シングルまたはマルチプレイヤのビデオゲームをプレイするためにゲームクライアントによって使用されるゲーム処理サーバ（ＧＰＳ）１４７４を含む。インターネットを介してプレイされる大部分のビデオゲームは、ゲームサーバへの接続を経由して動作する。通常、ゲームは、プレイヤからデータを収集し、それを他のプレイヤに配信する専用のサーバアプリケーションを使用する。これは、ピアツーピア構成より効率的かつ効果的であるが、個別のサーバがサーバアプリケーションをホストすることが必要になる。別の実施形態では、ＧＰＳがプレイヤ間の通信を確立し、プレイヤのそれぞれのゲームプレイデバイスが、集中型ＧＰＳに依存することなく情報を交換する。
【０１４６】
専用ＧＰＳは、クライアントから独立して動作するサーバである。このようなサーバは、通常、データセンタに配置された専用ハードウェア上で動作し、より多くの帯域幅及び専用の処理能力を提供する。専用サーバは、大部分のＰＣベースのマルチプレイヤゲームのためにゲームサーバをホストするのに好ましい方法である。大規模なマルチプレイヤオンラインゲームは、一般的にはゲームタイトルを所有するソフトウェア会社によってホストされた専用サーバ上で動作し、これらのサーバによるコンテンツの制御及び更新を可能にする。
【０１４７】
放送処理サーバ（ＢＰＳ）１４７６は、音声信号またはビデオ信号を視聴者に配信する。非常に狭い範囲の視聴者に対する放送は、ナローキャスティングと呼ばれる場合がある。放送配信の最終行程は、どのようにリスナーまたは視聴者に信号が到達するかということであり、信号は、ラジオ局またはテレビ局と同様に無線を介してアンテナ及び受信機に到達する場合があり、または、局を経由して、もしくは直接ネットワークから、有線テレビもしくは有線ラジオ（もしくは「ワイヤレスケーブル」）を通じて到達する場合がある。インターネットはさらに、特に信号及び帯域幅の共有が可能なマルチキャスティングにより、受信者にラジオまたはテレビのいずれかを提供してよい。過去には、放送は、国営放送または地方放送などの地理的領域によって範囲が定められてきた。しかしながら、高速なインターネットの普及により、世界のほとんどあらゆる国にコンテンツが到着することが可能になったため、放送は地理によって制限されない。
【０１４８】
ストレージサービスプロバイダ（ＳＳＰ）１４７８は、コンピュータストレージ空間及び関連する管理サービスを提供する。ＳＳＰは、定期的なバックアップ及びアーカイブ処理も提供する。サービスとしてストレージを供給することにより、ユーザは、必要に応じてより多くのストレージを注文することができる。別の大きな利点は、ＳＳＰがバックアップサービスを含むことであり、ユーザは、自分のコンピュータのハードディスクが故障した場合でもその全データを失うことはない。さらに、複数のＳＳＰが、ユーザデータの全体的または部分的なコピーを有することができ、それによって、ユーザは、自分が位置する場所またはデータにアクセスするために使用されているデバイスとは別に効率的な方法でデータにアクセスすることが可能となる。例えば、ユーザは、自宅のコンピュータの個人ファイルに加えて、移動中に携帯電話の個人ファイルにアクセスすることができる。
【０１４９】
通信プロバイダ１４８０は、ユーザに接続性を提供する。ある種類の通信プロバイダは、インターネットへのアクセスを供給するインターネットサービスプロバイダ（ＩＳＰ）である。ＩＳＰは、ダイヤルアップ、ＤＳＬ、ケーブルモデム、ファイバ、無線または専用の高速相互接続など、インターネットプロトコルデータグラムを配信するために適切なデータ伝送技術を使用して、その顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージ及びＳＭＳメールなどのメッセージングサービスを提供することもできる。別の種類の通信プロバイダは、インターネットへの直接のバックボーンアクセスを提供することによって帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ（ＮＳＰ）である。ネットワークサービスプロバイダは、電気通信会社、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを供給するケーブルテレビ事業者などから構成されてよい。
【０１５０】
データ交換部１４８８は、ＩＳＰ１４７０内部のいくつかのモジュールを相互接続し、これらのモジュールを、ネットワーク１４８６を経由してユーザ１４８２に接続する。データ交換部１４８８は、ＩＳＰ１４７０の全てのモジュールが極めて近接している狭い領域をカバーすることができ、または、様々なモジュールが地理的に分散されているときには広い地理的領域をカバーすることができる。例えば、データ交換部１４８８は、データセンタの筐体内の高速ギガビットイーサネット（登録商標）（もしくはそれより高速なもの）、または大陸間の仮想エリアネットワーク（ＶＬＡＮ）を含むことができる。
【０１５１】
ユーザ１４８２は、クライアントデバイス１４８４を使用してリモートサービスにアクセスし、このデバイスは、少なくともＣＰＵ、メモリ、ディスプレイ及び入出力を含む。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、タブレット、ゲーミングシステム、ＰＤＡなどとすることができる。一実施形態では、ＩＳＰ１４７０は、クライアントによって使用されるデバイスの種類を認識し、用いられる通信方法を調整する。他の場合では、クライアントデバイスは、ＩＳＰ１４７０にアクセスするためにｈｔｍｌなどの標準的な通信方法を使用する。
【０１５２】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ及びその他を含む、様々なコンピュータシステム構成を使用して実施されてよい。本開示は、有線ベースのネットワークまたは無線ネットワークを通じてリンクされているリモート処理デバイスによってタスクが行われる分散型コンピューティング環境において実施することもできる。
【０１５３】
上記の実施形態を念頭におくと、本開示は、コンピュータシステムにデータを記憶することを伴う様々なコンピュータ実施動作を用いることができることを理解するべきである。これらの動作は、物理量の物理的操作を必要とするものである。本開示の一部を形成する本明細書に記載した動作はいずれも有用な機械的動作である。本開示は、これらの動作を行うデバイスまたは装置にも関する。装置は、必要とされる目的のために特別に構成することができ、あるいは装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動または構成される汎用コンピュータとすることができる。特に、本明細書の教示に従って記述されたコンピュータプログラムによって様々な汎用機を使用することができ、あるいは、より特化した装置を構成して必要とされる動作を行うことがより好都合となる場合がある。
【０１５４】
本開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具現化することもできる。代替的には、コンピュータ可読コードは、上記のデータ交換相互接続を使用してサーバからダウンロードされてよい。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、その後、このデータをコンピュータシステムによって読み出すことができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読み出し専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープならびに他の光学データストレージデバイス及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、ネットワークに結合したコンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができ、これによって、コンピュータ可読コードは、分散方式で記憶されて実行される。
【０１５５】
動作方法を特定の順序で記載したが、オーバレイ動作の処理が所望の方法で行われる限り、動作の間に他のハウスキーピング動作が実行されてよく、あるいは、動作を調整してそれらがわずかに異なる時間に行われるようにしてよく、または、処理と関連した様々な間隔で処理動作が行われることを可能にするシステムに動作を分散させてよいことを理解すべきである。
【０１５６】
前述の開示について、理解しやすくするために幾分詳細に説明してきたが、添付された特許請求の範囲内で一定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、例示であって限定的なものではないとみなされ、本開示は、本明細書に述べた詳細に限定されることはなく、記載された実施形態の範囲及び均等物の範囲内で修正され得る。
【０１５７】
図１５は、Ｓｏｎｙ（登録商標）Ｐｌａｙｓｔａｔｉｏｎ  ３（登録商標）エンターテイメントデバイスなどのゲーミングコンソールの全体システムアーキテクチャを模式的に例示し、このゲーミングコンソールは、本開示の一実施形態によるアバター制御システムを形態するためのコントローラと互換性を持ち得る。システムユニット１５００には、システムユニット１５００に接続可能な様々な周辺デバイスが設けられている。システムユニット１５００は、いくつかの形態では、コンピューティングサーバとすることができる。システムユニット１５００は、Ｃｅｌｌプロセッサ１５２８、Ｒａｍｂｕｓ（登録商標）ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット１５２６、専用のビデオランダムアクセスメモリ（ＶＲＡＭ）ユニット１５３２を有するリアリティシンセサイザグラフィックユニット１５３０、及び入出力ブリッジ１５３４を備える。システムユニット１５００は、入出力ブリッジ１５３４を通じてアクセス可能な、ディスク１５４０ａから読み出すためのＢｌｕ  ｒａｙ（登録商標）ディスクＢＤ−ＲＯＭ（登録商標）光ディスクリーダ１５４０及び取り外し可能なスロットインハードディスクドライブ（ＨＤＤ）１５３６をさらに備える。任意には、システムユニット１５００は、コンパクトフラッシュ（登録商標）メモリカード、Ｍｅｍｏｒｙ  Ｓｔｉｃｋ（登録商標）メモリカード及びその他を読み込むためのメモリカードリーダ１５３８をさらに備え、このリーダは、入出力ブリッジ１５３４を通じて同様にアクセス可能である。
【０１５８】
入出力ブリッジ１５３４はさらに、６つのユニバーサルシリアルバス（ＵＳＢ）２．０ポート１５２４、ギガビットイーサネット（登録商標）ポート１５２２、ＩＥＥＥ８０２．１１ｂ／ｇ無線ネットワーク（Ｗｉ−Ｆｉ）ポート１５２０、及び最大７つのＢＬＵＥＴＯＯＴＨ（登録商標）接続に対応可能なＢｌｕｅｔｏｏｔｈ（登録商標）無線リンクポート１５１８に接続されている。
【０１５９】
動作中、入出力ブリッジ１５３４は、１つ以上のゲームコントローラ１５０２からのデータを含む、全ての無線、ＵＳＢ及びイーサネット（登録商標）データを処理する。例えば、ユーザがゲームをプレイするとき、入出力ブリッジ１５３４は、ＢＬＵＥＴＯＯＴＨ（登録商標）リンクを経由してゲームコントローラ１５０２からデータを受信し、それをＣｅｌｌプロセッサ１５２８に送り、このプロセッサは、それに応じてゲームの現在の状態を更新する。
【０１６０】
無線、ＵＳＢ及びイーサネット（登録商標）ポートはさらに、ゲームコントローラ１５０２に加えて、リモコン１５０４、キーボード１５０６、マウス１５０８、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ  Ｐｏｒｔａｂｌｅ（登録商標）エンターテイメントデバイスなどのポータブルエンターテイメントデバイス１５１０、ＥｙｅＴｏｙ（登録商標）ビデオカメラ１５１２などのビデオカメラならびにマイクロホンヘッドセット１５１４などの他の周辺デバイスに接続性を提供する。したがって、このような周辺デバイスは、原則として、無線でシステムユニット１５００に接続されてよく、例えば、ポータブルエンターテイメントデバイス１５１０は、Ｗｉ−Ｆｉアドホック接続を経由して通信してよく、他方、マイクロホンヘッドセット１５１４は、ＢＬＵＥＴＯＯＴＨ（登録商標）リンクを経由して通信してよい。
【０１６１】
これらのインターフェースのプロビジョンは、Ｐｌａｙｓｔａｔｉｏｎ  ３デバイスがさらに、デジタルビデオレコーダ（ＤＶＲ）、セットトップボックス、デジタルカメラ、ポータブルメディアプレイヤ、ボイスオーバーＩＰ電話、携帯電話、プリンタ及びスキャナなどの他の周辺デバイスとも潜在的に互換性を持つことを意味する。
【０１６２】
加えて、レガシーメモリカードリーダ１５１６を、システムユニットにＵＳＢポート１５２４を経由して接続することにより、Ｐｌａｙｓｔａｔｉｏｎ（登録商標）デバイスまたはＰｌａｙｓｔａｔｉｏｎ  ２（登録商標）デバイスによって使用される種類のメモリカード１５４８の読み込みを可能にしてよい。
【０１６３】
本実施形態では、ゲームコントローラ１５０２は、ＢＬＵＥＴＯＯＴＨ（登録商標）リンクを経由してシステムユニット１５００と無線通信するように動作可能である。しかしながら、ゲームコントローラ１５０２は、代わりにＵＳＢポートに接続することができ、これによって、ゲームコントローラ１５０２の電池を充電するための電源も供給する。１つ以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、各軸の平行移動及び回転に対応する、６つの自由度の動作に反応する。その結果、ゲームコントローラのユーザによるジェスチャ及び動きは、従来のボタンまたはジョイスティックコマンドに加えて、またはその代わりに、ゲームへの入力として変換されてよい。任意には、Ｐｌａｙｓｔａｔｉｏｎ（商標）ポータブルデバイスなどの他の無線で使用可能な周辺デバイスをコントローラとして使用してよい。Ｐｌａｙｓｔａｔｉｏｎ（商標）ポータブルデバイスの場合、付加的なゲームまたは制御情報（例えば、制御命令またはライブの数）をデバイスの画面に提供してよい。ダンスマット（図示せず）、光線銃（図示せず）、ステアリングホイール及びペダル（図示せず）、または即答クイズゲーム用の単一もしくはいくつかの大型ボタン（同様に図示せず）などの特注のコントローラなどの、他の代替的または補助的な制御デバイスをさらに使用してよい。
【０１６４】
リモコン１５０４はさらに、ＢＬＵＥＴＯＯＴＨ（登録商標）リンクを経由してシステムユニット１５００と無線通信するように動作可能である。リモコン１５０４は、Ｂｌｕ  ｒａｙ（商標）ディスクＢＤ−ＲＯＭリーダ１５４０の動作及びディスク内容のナビゲーションに適した制御部を備える。
【０１６５】
Ｂｌｕ  ｒａｙ（商標）ディスクＢＤ−ＲＯＭリーダ１５４０は、従来の記録済みＣＤ及び再記録可能なＣＤ、ならびにいわゆるスーパーオーディオＣＤに加えて、Ｐｌａｙｓｔａｔｉｏｎデバイス及びＰｌａｙｓｔａｔｉｏｎ  ２デバイスと互換性を持つＣＤ−ＲＯＭを読み出すように動作可能である。リーダ１５４０は、従来の記録済みＤＶＤ及び再記録可能なＤＶＤに加えて、Ｐｌａｙｓｔａｔｉｏｎ  ２デバイス及びＰｌａｙｓｔａｔｉｏｎ  ３デバイスと互換性を持つＤＶＤ−ＲＯＭを読み出すようにも動作可能である。リーダ１５４０は、従来の記録済みＢｌｕ−Ｒａｙディスク及び再記録可能なＢｌｕ−ＲａｙディスクならびにＰｌａｙｓｔａｔｉｏｎ  ３デバイスと互換性を持つＢＤ−ＲＯＭを読み出すようにさらに動作可能である。
【０１６６】
システムユニット１５００は、リアリティシンセサイザグラフィックユニット１５３０を経由してＰｌａｙｓｔａｔｉｏｎ  ３デバイスによって生成または復号された音声及びビデオを、音声及びビデオコネクタを通じて、ディスプレイ１５４４及び１つ以上のラウドスピーカ１５４６を有するモニタまたはテレビセットなどのディスプレイ及び音声出力デバイス１５４２に供給するように動作可能である。音声コネクタ１５５０は、従来のアナログ出力及びデジタル出力を含んでよく、一方、ビデオコネクタ１５５２は、コンポーネントビデオ出力、Ｓ−ビデオ出力、コンポジットビデオ出力及び１つ以上の高品位マルチメディアインターフェース（ＨＤＭＩ（登録商標））出力を様々に含んでよい。その結果、ビデオ出力は、ＰＡＬもしくはＮＴＳＣなどの形式でよく、または７２０ｐ、１０８０ｉもしくは１０８０ｐの高解像度であってもよい。
【０１６７】
音声処理（生成、復号など）は、Ｃｅｌｌプロセッサ１５２８によって行われる。Ｐｌａｙｓｔａｔｉｏｎ  ３デバイスのオペレーティングシステムは、Ｄｏｌｂｙ（登録商標）５．１サラウンドサウンド、Ｄｏｌｂｙ（登録商標）シアターサラウンド（ＤＴＳ）及びＢｌｕ−ｒａｙ（登録商標）ディスクからの７．１サラウンドサウンドの復号に対応する。
【０１６８】
本実施形態において、ビデオカメラ１５１２は、単一の電荷結合素子（ＣＣＤ）、ＬＥＤインジケータならびにハードウェアベースのリアルタイムデータ圧縮及び符号化装置を備え、これによって、圧縮ビデオデータは、システムユニット１５００による復号のためのイントラ画像ベースのＭＰＥＧ（モーションピクチャエキスパートグループ）標準などの適切な形式で伝送され得る。カメラＬＥＤインジケータは、例えば、不利な照明条件を示すために、システムユニット１５００からの適切な制御データに応答して照明するように構成されている。ビデオカメラ１５１２の実施形態は、ＵＳＢ、ＢＬＵＥＴＯＯＴＨ（登録商標）またはＷｉ−Ｆｉ通信ポートを経由してシステムユニット１５００に様々に接続されてよい。ビデオカメラの実施形態は、１つ以上の付属マイクロホンを含んでよく、さらに音声データを伝送可能であってもよい。ビデオカメラの実施形態では、ＣＣＤは高解像ビデオキャプチャに適した解像度を有してよい。使用中、例えば、ビデオカメラによってキャプチャされた画像は、ゲーム内に組み込まれてよいか、またはゲーム制御入力としてみなされてよい。
【０１６９】
ここから
一般的に、システムユニット１５００の通信ポートの１つを経由してビデオカメラまたはリモコンなどの周辺デバイスによって正常なデータ通信を行うために、デバイスドライバなどの適切なソフトウェアを提供すべきである。デバイスドライバ技術は周知であり、本明細書では詳細に説明しない。ただし、当業者は、デバイスドライバまたは類似のソフトウェアインターフェースが、記載された本実施形態において必要とされ得ることを認識していると言える。
【０１７０】
図１６は、本開示の形態による、ゲームシステム１６００のブロック図である。ゲームシステム１６００は、ネットワーク１６１５を経由して、１つ以上のクライアント１６１０にビデオストリームを提供するように構成される。ゲームシステム１６００は、通常、ビデオサーバシステム１６２０及び任意にはゲームサーバ１６２５を含む。ビデオサーバシステム１６２０は、１つ以上のクライアント１６１０にサービスの最小品質でビデオストリームを提供するように構成される。例えば、ビデオサーバシステム１６２０は、ビデオゲーム内の視点の状態を変更するゲームコマンドを受信してよく、この状態の変化を反映する更新されたビデオストリームを、最短の遅延時間でクライアント１６１０に提供してよい。ビデオサーバシステムまた１６２０は、未定義の形式を含む多種多様な代替ビデオ形式でビデオストリームを提供するように構成されてよい。さらに、ビデオストリームはユーザに対して多種多様なフレームレートで提示するように構成されるビデオフレームを含んでよい。通常のフレームレートは、毎秒３０フレーム、毎秒６０フレーム、及び毎秒１６２０フレームである。しかしながら、本開示の代替的な実施形態には、より高いまたは低いフレームレートが含まれる。
【０１７１】
本明細書にてそれぞれ１６１０Ａ、１６１０Ｂなどと称されるクライアント１６１０は、頭部装着ディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス及び／またはその他を含んでよい。通常、クライアント１６１０は符号化されたビデオストリームを受信し、ビデオストリームを復号し、結果として生じるビデオを、例えば、ゲームのプレイヤなどのユーザに提示するように構成される。符号化されたビデオストリームの受信及び／またはビデオストリームの復号の処理には、通常、個別のビデオフレームをクライアントの受信バッファ内に記憶することが含まれる。ビデオストリームはクライアント１６１０と一体となったディスプレイ上、またはモニタもしくはテレビなどの別個デバイス上でユーザに提示されてよい。クライアント１６１０は、任意には、２人以上のゲームプレイヤをサポートするように構成される。例えば、ゲームコンソールは２人、３人、４人またはそれ以上の同時プレイヤをサポートするように構成されてよい。これらのプレイヤのそれぞれが別個のビデオストリームを受信してよいか、または単一のビデオストリームは、例えば、各プレイヤの視点に基づいて生成され、各プレイヤ専用に生成されたフレームの領域を含んでよい。クライアント１６１０は、任意には、地理的に分散される。ゲームシステム１６００に含まれるクライアント数は１つまたは２つから数千、数万またはそれ以上まで大幅に異なってよい。本明細書内では、「ゲームプレイヤ」の用語はゲームをプレイする人物を指すために使用され、「ゲームプレイデバイス」の用語は、ゲームをプレイするために使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスはゲーム体験をユーザに配信するために連携する複数のコンピューティングデバイスを指してよい。例えば、ゲームコンソール及びＨＭＤは、ＨＭＤを通じて視認されるゲームを配信するためにビデオサーバシステム１６２０と連携してよい。一実施形態では、ゲームコンソールがビデオサーバシステム１６２０からビデオストリームを受信し、ゲームコンソールはレンダリングのためにＨＭＤにビデオストリームを送信するか、またはビデオストリームを更新する。
【０１７２】
クライアント１６１０はネットワーク１６１５を経由してビデオストリームを受信するように構成される。ネットワーク１６１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク及び／またはその他を含む任意の種類の通信ネットワークであってもよい。典型的な実施形態では、ビデオストリームがＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを経由して通信される。代替的には、ビデオストリームが専有標準を経由して通信される。
【０１７３】
クライアント１６１０の１つの典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号論理、ネットワーク通信機能、及び入力デバイスを備えるパーソナルコンピュータである。復号論理にはハードウェア、ファームウェア及び／またはコンピュータ可読媒体上に記憶されるソフトウェアが含まれてよい。ビデオストリームを復号（及び符号化）するシステムは当分野で周知であり、使用する特定の符号化スキームに応じて異なる。
【０１７４】
クライアント１６１０は受信されたビデオの修正のために構成されるシステムをさらに含んでもよいが、それは必須ではない。例えば、クライアントはさらなるレンダリングを行い、あるビデオ画像を別のビデオ画像にオーバレイし、ビデオ画像をクロップする及び／またはその他を行うように構成されてよい。例えば、クライアント１６１０は、Ｉフレーム、Ｐフレーム及びＢフレームなどの様々な種類のビデオフレームを受信し、これらのフレームをユーザに表示するために画像に処理するように構成されてよい。いくつかの実施形態では、クライアント１６１０のメンバはさらなるレンダリング、シェーディング、３−Ｄへの変換、または同様の操作をビデオストリーム上で行うように構成される。クライアント１６１０のメンバは、任意には、２つ以上の音声またはビデオストリームを受信するように構成される。クライアント１６１０の入力デバイスには、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバック装置、動作及び／または位置検出器、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、未開発の入力デバイス及び／またはその他が含まれてよい。
【０１７５】
クライアント１６１０によって受信されたビデオストリーム（及び任意には音声ストリーム）は、ビデオサーバシステム１６２０によって生成され、提供される。本明細書の他の箇所にさらに記載されている通り、このビデオストリームにはビデオフレームが含まれる（音声ストリームには音声フレームが含まれる）。ビデオフレーム（例えば、適切なデータ構造における画素情報を含む）は、ユーザに表示される画像に有意義に寄与するように構成される。本明細書内では、「ビデオフレーム」の用語は、例えば、ユーザに示す画像への影響に寄与するように構成される情報を主に含むフレームを指すために使用される。本明細書内の「ビデオフレーム」に関する教示の大部分については、「オーディオフレーム」にも適用可能である。
【０１７６】
クライアント１６１０は通常、ユーザからの入力を受信するように構成される。これらの入力には、ビデオゲームの状態を変更するため、または別様にはゲームプレイに影響を与えるように構成されるゲームコマンドが含まれてよい。ゲームコマンドは入力デバイスを使用して受信可能であってよく、及び／またはクライアント１６１０上での演算命令の実行によって自動的に生成されてよい。受信されたゲームコマンドは、クライアント１６１０からネットワーク１６１５を経由してビデオサーバシステム１６２０及び／またはゲームサーバ１６２５に通信される。例えば、いくつかの実施形態では、ゲームコマンドはビデオサーバシステム１６２０を経由してゲームサーバ１６２５に通信される。いくつかの実施形態では、ゲームコマンドの別個のコピーがクライアント１６１０からゲームサーバ１６２５及びビデオサーバシステム１６２０に通信される。ゲームコマンドの通信は、任意には、コマンドの識別に依存する。ゲームコマンドはクライアント１６１０Ａに音声ストリームまたはビデオストリームを提供するために使用される異なるルートまたは通信チャネルを通じて、任意には、クライアント１６１０Ａから通信される。
【０１７７】
ゲームサーバ１６２５は、任意には、ビデオサーバシステム１６２０とは異なるエンティティによって操作される。例えば、ゲームサーバ１６２５は複数のゲームの発行元によって操作されてよい。本例では、ビデオサーバシステム１６２０は、任意には、ゲームサーバ１６２５によってクライアントとしてみなされ、任意には、ゲームサーバ１６２５の視点からは、従来技術のゲームエンジンを実行する従来技術のクライアントとしてみなされるように構成される。ビデオサーバシステム１６２０とゲームサーバ１６２５との間の通信は、任意には、ネットワーク１６１５を経由して発生する。したがって、ゲームサーバ１６２５はゲーム状態情報をそのうちの１つがゲームサーバシステム１６２０である複数のクライアントに送信する従来技術のマルチプレイヤゲームサーバとすることができる。ビデオサーバシステム１６２０はゲームサーバ１６２５の複数のインスタンスとの通信を同時に行うように構成されてよい。例えば、ビデオサーバシステム１６２０は、複数の異なるビデオゲームを異なるユーザに提供するように構成することができる。これらの異なるビデオゲームのそれぞれは異なるゲームサーバ１６２５によりサポートされてよい、及び／または異なるエンティティにより発行されてよい。いくつかの実施形態では、いくつかの地理的に分布したビデオサーバシステム１６２０のインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム１６２０のこれらインスタンスのそれぞれが、ゲームサーバ１６２５の同じインスタンスとの通信を行ってよい。ビデオサーバシステム１６２０と１つ以上のゲームサーバ１６２５との間の通信は、任意には、専用通信チャネルを経由して発生する。例えば、ビデオサーバシステム１６２０は、これらの２つのシステム間の通信専用の高帯域チャネル幅を経由してゲームサーバ１６２５に接続されてよい。
【０１７８】
ビデオサーバシステム１６２０は、少なくともビデオソース１６３０、入出力デバイス１６４５、プロセッサ１６５０及び非一時的なストレージ１６５５を備える。ビデオサーバシステム１６２０は１つのコンピューティングデバイスを含むか、または複数のコンピューティングデバイス間に分散されてよい。これらコンピューティングデバイスは、任意には、ローカルエリアネットワークなどの通信システムを経由して接続される。
【０１７９】
ビデオソース１６３０は、例えば、動画を形成するストリーミングビデオまたは一連のビデオフレームなどのビデオストリームを提供するように構成される。いくつかの実施形態では、ビデオソース１６３０はビデオゲームエンジン及びレンダリング論理を含む。ビデオゲームエンジンはプレイヤからゲームコマンドを受信し、受信されたコマンドに基づいて、ビデオゲームの状態のコピーを維持するように構成される。このゲーム状態には、ゲーム環境におけるオブジェクトの位置、及び通常では視点が含まれる。ゲーム状態はさらに、オブジェクトのプロパティ、画像、色、及び／またはテクスチャを含んでよい。ゲーム状態は、通常、ゲームルールならびに動き、回転、攻撃、フォーカスの設定、相互作用、使用、及び／またはその他などのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、任意には、ゲームサーバ１６２５内に配置される。ゲームサーバ１６２５は複数のプレイヤから受信されたゲームコマンドに基づき、クライアントの地理的分散を使用してゲームの状態のコピーを維持してよい。これらの場合には、ゲーム状態がゲームサーバ１６２５によってビデオソース１６３０に提供され、ゲーム状態のコピーは記憶されてレンダリングが行われる。ゲームサーバ１６２５はネットワーク１６１５を経由してゲームコマンドをクライアント１６１０から直接受信してよく、及び／またはビデオサーバシステム１６２０を経由してゲームコマンドを受信してよい。
【０１８０】
ビデオソース１６３０は、通常、例えば、ハードウェア、ファームウェア、及び／またはストレージ１６５５などのコンピュータ可読媒体上に記憶されたソフトウェアなどのレンダリング論理を含む。このレンダリング論理は、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリング論理の全てまたは一部は、任意には、グラフィックスプロセッシングユニット（ＧＰＵ）内に配置される。レンダリング論理には、通常、オブジェクト間の三次元空間関係の決定及び／または適切なテクスチャの適用などを行うように構成される、ゲーム状態及び視点に基づいたステージの処理が含まれる。レンダリング論理は、その後、通常は、クライアント１６１０との通信の前に符号化される未加工のビデオを生成する。例えば、未加工のビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６５、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３またはその他に従って符号化されてよい。符号化処理によってビデオストリームが生成され、ビデオストリームは、任意には、リモートデバイス上の復号器への送達のためにパッケージ化される。ビデオストリームは、フレームサイズ及びフレームレートによって特徴づけられる。典型的なフレームサイズには、８００×６００、１２８０×７２０（例えば、７２０ｐ）１０２４×７６８が含まれるが、他の任意のフレームサイズが使用されてよい。フレームレートは、毎秒のビデオフレーム数である。ビデオストリームには、異なる種類のビデオフレームが含まれてよい。例えば、Ｈ．２６４規格には、「Ｐ」フレーム及び「Ｉ」フレームが含まれる。Ｉフレームはディスプレイデバイス上の全てのマクロブロック／ピクセルをリフレッシュするための情報を含み、Ｐフレームがそのサブセットをリフレッシュするための情報を含む。Ｐフレームのデータサイズは、通常、Ｉフレームよりも小さい。本明細書内では、「フレームサイズ」の用語はフレーム内の画素数を指すように意味する。「フレームデータサイズ」の用語は、フレームを記憶するために必要なバイト数を指すために使用される。
【０１８１】
代替的な実施形態では、ビデオソース１６３０にはカメラなどの記録デバイスが含まれる。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するために使用されてよい。結果として生じるビデオストリームには、任意には、レンダリングされた画像及びスチールカメラまたはビデオカメラを使用して記録された画像の両方が含まれる。ビデオソース１６３０はさらに、ビデオストリームに含まれるように予め記録されたビデオを記憶するように構成されるストレージデバイスを含んでよい。ビデオソース１６３０はさらに、人物などのオブジェクトの動作または位置を検出するように構成される動作または位置検出デバイス、ならびに検出された動作及び／または位置に基づいてゲーム状態を決定するため、またはビデオを生成するように構成される論理を含んでよい。
【０１８２】
ビデオソース１６３０は、任意には、他のビデオ上に重ねるように構成されるオーバレイを提供するように構成される。例えば、これらのオーバレイには、コマンドインターフェース、ログイン命令、ゲームプレイヤへのメッセージ、他のゲームプレイヤの画像、他のゲームプレイヤのビデオ配信（例えば、ウェブカメラビデオ）が含まれてよい。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント１６１０Ａの実施形態では、オーバレイが仮想キーボード、ジョイスティック、タッチパッド及び／またはその他を含んでよい。オーバレイの一例では、プレイヤの声が音声ストリームにオーバレイされる。ビデオソース１６３０はさらに、任意には、１つ以上の音源を含む。
【０１８３】
２人以上のプレイヤからの入力に基づいてビデオサーバシステム１６２０がゲーム状態を維持するように構成される実施形態では、各プレイヤは、視野の位置及び方向を備える異なる視点を有してよい。ビデオソース１６３０は、任意には、各プレイヤに自身の視点に基づいた別個のビデオストリームを提供するように構成される。さらに、ビデオソース１６３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント１６１０のそれぞれに提供するように構成されてよい。ビデオソース１６３０は、任意には、３−Ｄビデオを提供するように構成される。
【０１８４】
ビデオサーバシステム１６２０が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイスの動作、デバイスの位置、ユーザの動作、クライアント識別、プレイヤ識別、ゲームコマンド、セキュリティ情報、音声、及び／またはその他などの情報を送信及び／または受信するように、入出力デバイス１６４５が構成される。入出力デバイス１６４５には、通常、ネットワークカードまたはモデムなどの通信ハードウェアが含まれる。入出力デバイス１６４５は、ゲームサーバ１６２５、ネットワーク１６１５、及び／またはクライアント１６１０と通信するように構成される。
【０１８５】
プロセッサ１６５０は、例えば、本明細書に論じるビデオサーバシステム１６２０の様々な構成要素内に含まれるソフトウェアなどの論理を実行するように構成される。例えば、プロセッサ１６５０は、ビデオソース１６３０、ゲームサーバ１６２５、及び／またはクライアント限定子１６６０の機能を行うためにソフトウェア命令でプログラムされてよい。ビデオサーバシステム１６２０は、任意には、２つ以上のプロセッサ１６５０のインスタンスを含む。プロセッサ１６５０はさらに、ビデオサーバシステム１６２０によって受信されたコマンドを実行するための、または本明細書に論じるゲームシステム１６００の様々な要素の操作を調整するためのソフトウェア命令でプログラムされてよい。プロセッサ１６５０には１つ以上のハードウェアデバイスが含まれてよい。プロセッサ１６５０は電子プロセッサである。
【０１８６】
ストレージ１６５５には、非一時的なアナログ及び／またはデジタルストレージデバイスが含まれる。例えば、ストレージ１６５５は、ビデオフレームを記憶するように構成されるアナログストレージデバイスを含んでよい。ストレージ１６５５は、ハードドライブ、光学ドライブ、またはソリッドステートストレージなどのコンピュータ可読デジタルストレージを含んでよい。ストレージ１６１５は（例えば、適切なデータ構造またはファイルシステムによって）、ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレームの両方を含むビデオストリーム、音声フレーム、音声ストリーム、及び／またはその他を記憶するように構成される。ストレージ１６５５は、任意には、複数のデバイスの間に分散される。いくつかの実施形態では、ストレージ１６５５が本明細書の他の箇所に論じられるビデオソース１６３０のソフトウェア構成要素を記憶するように構成される。これら構成要素は、必要な場合にプロビジョニングできる形式で記憶されてよい。
【０１８７】
ビデオサーバシステム１６２０は、任意には、クライアント限定子１６６０をさらに備える。クライアント限定子１６６０は、クライアント１６１０Ａまたは１６１０Ｂなどのクライアントの機能を遠隔的に決定するように構成される。これらの機能は、クライアント１６１０Ａとビデオサーバシステム１６２０との間の１つ以上の通信チャネルの機能ならびにクライアント１６１０Ａ自体の機能の両方を含むことができる。例えば、クライアント限定子１６６０は、ネットワーク１６１５を通じて通信チャネルをテストするように構成されてよい。
【０１８８】
クライアント限定子１６６０は、クライアント１６１０Ａの機能を手動または自動で決定する（例えば、発見する）ことができる。手動決定には、クライアント１６１０Ａのユーザと通信すること及び機能提供についてユーザに問い合わせることが含まれる。例えば、いくつかの実施形態では、クライアント限定子１６６０は、画像、テキスト、及び／またはその他をクライアント１６１０Ａのブラウザ内で表示するように構成される。一実施形態では、クライアント１６１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント１６１０Ａは、ＨＭＤ上に表示されてよいブラウザを有するゲームコンソールである。表示されたオブジェクトは、クライアント１６１０Ａのオペレーティングシステム、プロセッサ、ビデオ復号器の種類、ネットワーク接続の種類、ディスプレイ解像度などの情報を入力するようユーザに要求する。ユーザにより入力された情報はクライアント限定子１６６０に通信される。
【０１８９】
例えば、クライアント１６１０Ａ上のエージェントの実行によって、及び／またはテストビデオのクライアント１６１０Ａへの送信によって、自動決定が行われてよい。エージェントは、ｊａｖａスクリプトなどの、ウェブページ上に埋め込まれた、またはアドオンとしてインストールされた演算命令を備えてよい。エージェントは、任意には、クライアント限定子１６６０によって提供される。様々な実施形態では、クライアント１６１０Ａの処理能力、クライアント１６１０Ａの復号及び表示能力、クライアント１６１０Ａとビデオサーバシステム１６２０との間の遅延時間の信頼性及び通信チャネルの帯域幅、クライアント１６１０Ａの表示種類、クライアント１６１０Ａ上に存在するファイアウォール、クライアント１６１０Ａのハードウェア、クライアント１６１０Ａ上で実行するソフトウェア、クライアント１６１０Ａ内のレジストリエントリ、及び／またはその他をエージェントが発見することができる。
【０１９０】
クライアント限定子１６６０には、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体上に記憶されるソフトウェアが含まれる。クライアント限定子１６６０は、任意には、ビデオサーバシステム１６２０の１つ以上の他の要素とは別個のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアント限定子１６６０は、クライアント１６１０とビデオサーバシステム１６２０の２つ以上のインスタンスとの間の通信チャネルの特徴を決定するように構成される。これらの実施形態では、ビデオサーバシステム１６２０のどのインスタンスがクライアント１６１０の１つのストリーミングビデオの送達に最も適しているかを決定するために、クライアント限定子により発見された情報を使用することができる。
【０１９１】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ及びその他を含む、様々なコンピュータシステム構成を使用して実施されてよい。本開示は、有線ベースのネットワークまたは無線ネットワークを通じてリンクされているリモート処理デバイスによってタスクが行われる分散型コンピューティング環境において実施することもできる。
【０１９２】
上記の実施形態を念頭におくと、本開示は、コンピュータシステムにデータを記憶することを伴う様々なコンピュータ実施動作を用いることができることを理解するべきである。これらの動作は、物理量の物理的操作を必要とするものである。本開示の一部を形成する本明細書に記載した動作はいずれも有用な機械的動作である。本開示は、これらの動作を行うデバイスまたは装置にも関する。装置は、必要とされる目的のために特別に構成することができ、あるいは装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動または構成される汎用コンピュータとすることができる。特に、本明細書の教示に従って記述されたコンピュータプログラムによって様々な汎用機を使用することができ、あるいは、より特化した装置を構成して必要とされる動作を行うことがより好都合となる場合がある。
【０１９３】
本開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具現化することもできる。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、その後、このデータをコンピュータシステムによって読み出すことができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読み出し専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープならびに他の光学データストレージデバイス及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、ネットワークに結合したコンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができ、これによって、コンピュータ可読コードは、分散方式で記憶されて実行される。
【０１９４】
動作方法を特定の順序で記載したが、オーバレイ動作の処理が所望の方法で行われる限り、動作の間に他のハウスキーピング動作が実行されてよく、あるいは、動作を調整してそれらがわずかに異なる時間に行われるようにしてよく、または、処理と関連した様々な間隔で処理動作が行われることを可能にするシステムに動作を分散させてよいことを理解すべきである。
【０１９５】
前述の開示について、理解を助けるために詳細に説明してきたが、添付された特許請求の範囲内で一定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、例示であって限定的なものではないとみなされ、本開示は、本明細書に述べた詳細に限定されることはなく、本開示の範囲及び均等物の範囲内で修正され得る。
【図１Ａ】
2019509078.tif 000003
【図１Ｂ】
2019509078.tif 000004
【図２】
2019509078.tif 000005
【図３】
2019509078.tif 000006
【図４】
2019509078.tif 000007
【図５】
2019509078.tif 000008
【図６】
2019509078.tif 000009
【図７】
2019509078.tif 000010
【図８Ａ】
2019509078.tif 000011
【図８Ｂ】
2019509078.tif 000012
【図９】
2019509078.tif 000013
【図１０Ａ】
2019509078.tif 000014
【図１０Ｂ】
2019509078.tif 000015
【図１１】
2019509078.tif 000016
【図１２】
2019509078.tif 000017
【図１３】
2019509078.tif 000018
【図１４】
2019509078.tif 000019
【図１５】
2019509078.tif 000020
【図１６】
2019509078.tif 000021
【国際調査報告】
2019509078.tif 000022
2019509078.tif 000023
2019509078.tif 000024
2019509078.tif 000025
2019509078.tif 000026