(57)【特許請求の範囲】
【請求項１】
クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法であって、
前記クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することであって、前記実行することが、前記ゲームを起動し、前記ゲームのモジュールをロードし、前記ゲームのインタラクティブ入力を待っているゲームセッションに進める、前記実行することと、
前記ゲームセッション中の第１のユーザによる前記ゲームのゲームプレイを可能にすることであって、前記第１のユーザが、ゲームプレイの第１のポイントまで前記ゲームを進める、前記可能にすることと、
前記ゲームの前記モジュールがロードされ起動されたままで、前記ゲームのインタラクティブ入力を待つように、前記ゲームセッションをアクティブかつ実行中に維持することと、
ゲームプレイの前記第１のポイントまでの前記ゲームプレイの一部の記録を保存することと、
前記ゲームのインジケータを前記クラウドゲームシステムのウェブページにポストすることであって、前記インジケータが、前記ゲームをインスタントプレイに利用可能であると識別し、第２のユーザが、前記第１のユーザがゲームプレイの前記第１のポイントで中断した場所から前記ゲームセッションのプレイを再開することができる、前記ポストすることとを含み、
前記第２のユーザによる前記ゲームセッションのプレイを再開することが、前記第１のユーザによる前記ゲームプレイの後に前記ゲームセッションがアクティブかつ実行中のままであるため、前記クラウドゲームシステムのサーバに前記ゲームをロードし再起動する必要がない、方法。
【請求項２】
前記ゲームの前記モジュールが、前記サーバでのロードを必要とするコードコンポーネントであって、前記モジュールが、前記ゲームのためのゲームコード、前記ゲームのためのユーザインターフェースコード、前記ゲームのためのオーディオ、ゲームのためのグラフィックスコード、前記ゲームのためのゲームエンジンコード、及び前記ゲームのレベル特有のコードを含む、請求項１に記載の方法。
【請求項３】
前記ウェブページ上で、前記第１のユーザによるゲームプレイの前記第１のポイントに至るまでのゲームプレイの前記一部の前記記録を見るためのオプションを提供することをさらに含む、請求項１に記載の方法。
【請求項４】
ゲームプレイの前記第１のポイントに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記ゲームプレイの第１のポイントに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとをさらに含む、請求項１に記載の方法。
【請求項５】
前記インジケータが、前記ゲームのシーンのサムネイルまたは前記ゲームを識別する画像であって、前記インジケータが、前記第２のユーザによる前記ゲームの前記インスタントプレイをアクティブにするためのプレイコントロールに関連付けられる、請求項１に記載の方法。
【請求項６】
ゲームプレイの前記第１のポイントに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記第１のポイントに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとをさらに含む、請求項１に記載の方法。
【請求項７】
クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法であって、
前記クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することであって、前記実行することが、前記ゲームを起動し、前記ゲームのモジュールをプリロードし、前記ゲームのインタラクティブ入力を待っているゲームセッションに進める、前記実行することと、
前記ゲーム内の第１のレベルから第２のレベルに、前記クラウドゲームシステムによって前記ゲームを進行させることと、
前記クラウドゲームシステム上で前記ゲームを一時停止することと、
前記ゲーム及び前記第２のレベルを示す第１のポストを生成することであって、前記第１のポストがウェブサイトに表示され、前記ゲームの前記実行、前記進行及び前記一時停止が、ユーザ入力なしで前記クラウドゲームシステムによって処理される、前記生成することと、
前記第１のポストの選択によって前記第２のレベルのゲームプレイを開始するために、第１のユーザからの入力を受信することと、
前記ゲームの前記ゲームプレイを前記第２のレベルから第３のレベルに進めることを可能にすることと、
前記クラウドゲームシステム上で前記ゲームを一時停止することと、
前記ゲーム及び前記第３のレベルを示す第２のポストを生成することであって、第２のユーザまたは前記第１のユーザが、前記第２のポストを選択し、前記ゲームをロードし再起動することを要求することなく前記ゲームの他のレベルを通じて前記ゲームの進行を継続することができるように、前記一時停止中に前記ゲームをアクティブセッションのままにする、前記生成することとを含む、方法。
【請求項８】
ウェブページ上で、前記第１のポストに関連付けられるように、前記第２のレベルに至るまでのゲームプレイの記録を見るためのオプションを提供することをさらに含む、請求項７に記載の方法。
【請求項９】
前記第２のレベルまたは前記第３のレベルに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記第２のレベルまたは前記第３のレベルに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとをさらに含む、請求項７に記載の方法。
【請求項１０】
前記ゲームの別のユーザによる現行プレイのビデオを提供することであって、前記現行プレイが前記ゲームのレベルに関連付けられている、前記提供することをさらに含み、
前記現行プレイが、前記ゲームの前記他のユーザによって停止されると、前記クラウドゲームシステムが、前記他のユーザが停止した場所から前記ゲームを即座にプレイするためのオプションを生成する、請求項７に記載の方法。
【請求項１１】
前記プリロードが、前記ゲームを即座にプレイするためのオプションの提示に先立って、ユーザ入力なしに前記クラウドゲームシステムによって処理されることをさらに含む、請求項７に記載の方法。
【請求項１２】
前記プリロードが、前記クラウドゲームシステムのサーバで前記ゲームのモジュールをロードすることを含み、前記モジュールが、前記ゲームのためのゲームコード、前記ゲームのためのユーザインターフェースコード、前記ゲームのためのオーディオ、ゲームのためのグラフィックスコード、前記ゲームのためのゲームエンジンコード、及び前記ゲームのレベル特有のコードを含み、
前記プリロードが、前記ゲームを即座にプレイするためのオプションの提示に先立って、ユーザ入力なしに前記クラウドゲームシステムによって処理される、請求項７に記載の方法。
【請求項１３】
前記クラウドゲームシステムが、前記クラウドゲームシステムに登録されたユーザのクライアントデバイスにインターネットを介してアクセス可能なデータセンターの１つまたは複数のサーバによって定義され、前記データセンターの１つまたは複数のサーバが、前記ゲームのインスタンスを１つまたは複数のレベルでインスタントプレイに利用可能にする準備で、前記ゲームの前記プリロードを実行するように構成され、
前記クラウドゲームシステムは、前記ゲームの前記第１のポスト、前記第２のポストまたは他のポストに関連付けられている前記ゲームをプレイするために前記クライアントデバイスのうちの１つからの入力を受信すると、エンコーダを使用して圧縮されたビデオフレームのストリームを生成するように構成され、その結果、符号化されたビデオフレームが前記サーバから前記クライアントに送信され、前記クライアントが、前記サーバへ入力を戻すことによって、前記ゲームのインタラクティビティを促すように構成され、前記クライアントが、デコーダを使用して、前記クライアントのディスプレイ上に画像を解凍してレンダリングするようにさらに構成され、前記圧縮することが、待ち時間が短縮された前記クライアントへの前記ゲームのストリーミングを可能にする、請求項７に記載の方法。
【請求項１４】
前記第１のユーザまたは前記第２のユーザのそれぞれが、ソーシャルメディアサイトのソーシャルグラフによって判定された友人によって前記ゲームの１つまたは複数の先行プレイを提供されるように、前記第１のユーザまたは前記第２のユーザの友人を判定するために前記ソーシャルメディアサイトにアクセスすることをさらに含み、
前記先行プレイが、前記第１または前記第２のユーザが、それぞれの友人のうちの１人がゲームプレイを中断した場所からゲームプレイを再開することができるように、インスタントプレイを可能にする、請求項７に記載の方法。
【請求項１５】
前記ソーシャルメディアサイトへの前記アクセスが、アプリケーションプログラミングインターフェース（ＡＰＩ）呼び出しを介して行われ、前記ＡＰＩ呼び出しが、前記第１または第２のユーザの前記ソーシャルグラフに関する情報をキャプチャするように処理される、請求項１４に記載の方法。
【請求項１６】
クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法であって、
前記クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することであって、前記実行することが、前記ゲームを起動し、前記ゲームのモジュールをプリロードし、前記ゲームのインタラクティブ入力を待っているゲームセッションに進める、前記実行することと、
前記ゲーム内のあるレベルからそれ以降のレベルに、前記クラウドゲームシステムによって前記ゲームを進行させることと、
前記クラウドゲームシステム上で前記ゲームを一時停止することと、
前記ゲーム及び前記それ以降のレベルを示すポストを生成することであって、前記ポストがウェブサイトに表示されている、前記生成することと、
前記それ以降のレベルまたは他のレベルに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記それ以降のレベルまたは他のレベルに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとを含み、
前記ゲームの前記実行、前記進行及び前記一時停止がユーザ入力なしで前記クラウドゲームシステムによって処理され、
前記クラウドゲームシステムが、前記クラウドゲームシステムに登録されたユーザのクライアントデバイスにインターネットを介してアクセス可能なデータセンターの１つまたは複数のサーバによって定義され、前記データセンターの１つまたは複数のサーバが、前記ゲームのインスタンスを特定のインスタントプレイに利用可能にする準備で、前記ゲームの前記プリロードを実行するように構成され、
前記クラウドゲームシステムは、前記ゲームの前記ポストまたは他のポストに関連付けられている前記ゲームをプレイするために前記クライアントデバイスのうちの１つからの入力を受信すると、エンコーダを使用して圧縮されたビデオフレームのストリームを生成するように構成され、その結果、符号化されたビデオフレームが前記サーバから前記クライアントに送信され、前記クライアントが、前記サーバへ入力を戻すことによって、前記ゲームのインタラクティビティを促すように構成され、前記クライアントが、デコーダを使用して、前記クライアントのディスプレイ上に画像を解凍してレンダリングするようにさらに構成され、前記圧縮することが、待ち時間が短縮された前記クライアントへの前記ゲームのストリーミングを可能にする、方法。
【請求項１７】
前記ウェブサイト上で、前記ポストに関連付けられるように、前記それ以降のレベルに至るまでのゲームプレイの記録を見るためのオプションを提供することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記プリロードが、前記クラウドゲームシステムのサーバで前記ゲームのモジュールをロードすることを含み、前記モジュールが、前記ゲームのためのゲームコード、前記ゲームのためのユーザインターフェースコード、前記ゲームのためのオーディオ、ゲームのためのグラフィックスコード、前記ゲームのためのゲームエンジンコード、及び前記ゲームのレベル特有のコードを含む、請求項１６に記載の方法。
【請求項１９】
前記プリロードが、前記ゲームを即座にプレイするためのオプションの提示に先立って、ユーザ入力なしに前記クラウドゲームシステムによって処理される、請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ゲームがプリロードされ、特定のレベルで即座にプレイされる準備ができており、他のユーザが中断したところでプレイを再開できるようにする、クラウドゲームシステムによって実行されるゲームのデモモード動作のためのシステム及び方法に関する。
【背景技術】
【０００２】
クラウドシステムは、コンピューティングリソース（ハードウェア及びソフトウェア）を使用して、ネットワーク（通常はインターネット）を介してサービスを提供する。ゲームに関連して、サービスは、リモートクライアントへのコンテンツのストリーミングを可能にし、ほとんどの処理は、分散され得るサーバ上で行われる。リモートクライアントで提供される入力は、クライアントの場所で専用のゲームハードウェアを必要とせずに、サーバ上でゲームを実行させる。クラウドシステム上で実行されるゲームへのアクセスが容易であるため、複雑なハードウェアの制限がなく、より多くのタイトルにアクセスすることが容易になるため、クラウドゲームの人気が高まっている。同様に、ゲームのサプライヤは、集中管理された場所からゲームコードを管理する方が簡単だと考えている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念なことに、クラウドゲームシステムでは、ゲームをロードしてプレイする準備ができるまでの間、ユーザは一定の時間待機する必要がある。ロード時間がかなり長くなり得る理由は、ゲームの複雑さ及び精巧さが増し、アクティブなゲームプレイを有効にする前に、ソフトウェアをインスタンス化し適切にロードする必要があるためである。グラフィックス及び複雑さが増え続けるにつれて、ゲームのロード時間も同様に増え続ける。さらに、特定のゲームまたはゲームの機能を試してみたいユーザは、ゲーム全体を購入するか、購入した後、関心のレベルに達するまで複数のレベルを介してプレイする必要がある。
【０００４】
これに関連して、本開示の実施形態が生じる。
【課題を解決するための手段】
【０００５】
本開示の実施形態は、ゲームのロードに関連する待ち時間を必要とせずに、ゲーム内の特定の時点でのゲームのインスタントプレイを可能にする、クラウドゲームシステムのためのシステム及び方法に関する。特定の実施形態では、ユーザが特定の時点までゲームをプレイでき、その後、別のユーザが先行ユーザが中断した場所からプレイを再開できるようにする方法が提供される。一例では、ゲームは、他のプレーヤーが中断した場所を示す先行プレイオプションを提供し、そのプレーヤーが中断した場所から再開するためのインスタントプレイをユーザに提供し得る。さらに他の実施形態では、クラウドゲームシステムが、ゲーム内の複数の異なる開始点、例えば、レベルを生成することを可能にし、したがって、ゲームのデモンストレーションを希望するユーザが、その特定のレベルを単にプレイすることを可能にする方法が提供される。そのような実施形態では、ユーザは、その特定の関心レベルまで先行ゲームプレイを確認して、そのレベルまで至る能力を提供される。
【０００６】
このようにして、ユーザには、ユーザがその特定のレベルのインスタントプレイを試みる前に、行われたゲームプレイ及びアクティビティのタイプの概要を提供される。さらに別の実施形態では、ユーザは、ゲームのインスタンスをストリーミングする他のユーザを見る能力が提供される。ゲームをプレイしている他のユーザを見ているユーザは、先行ユーザが中断した場所でプレイを再開することができる。一実施形態では、ゲームをプリロードする必要なく、他のユーザによってゲームを再開することができる。例えば、ゲームがロードされたままで、プレーヤーが中断した場所またはデモのためにユーザが作成及びロードしたレベルに応じて、様々な時点でインスタントプレイができる状態になる。この機能を有効にすると、クラウドゲームシステムのウェブサイトにアクセスしているユーザは、ゲームのプリロードやゲーム全体の購入を必要とすることなく、タイトルを選択してゲームの特定のレベルを即座にデモすることができる。
【０００７】
この機能を提供することにより、待機時間が短縮され、ロードに関連するリソースが削除または削減される。いくつかの実施形態では、特定のレベルまたは先行ゲームプレイをポーズ状態でアクティブに維持することにより、ゲームを再起動し、様々なスプラッシュ画面、導入、及びそれ以前のレベルを処理するために必要となる処理能力を低減する。したがって、この機能により、データセンターのサーバによって消費され得る電力消費、及び実行時間が技術的に削減される。
【０００８】
一実施形態では、クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法が提供される。方法は、クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することを含む。実行することで、ゲームが起動し、ゲームのモジュールがプリロードされゲームのインタラクティブ入力を待機しているゲームセッションに進む。方法は、ゲーム内のあるレベルからそれ以降のレベルに、クラウドゲームシステムによってゲームを進めることを含む。次いで、クラウドゲームシステム上のゲームを一時停止し、ゲーム及びそれ以降のレベルを示すポストを生成する。ポストはウェブサイト上に表示され、ゲームの実行、進行及び一時停止がユーザ入力なしでクラウドゲームシステムによって処理される。いくつかの実施形態では、他のユーザがゲームプレイを進めることができ、他のユーザは、ゲームを再ロードする必要なく、中断した場所からプレイを再開することができる。
【０００９】
別の実施形態では、クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法が提供される。方法は、クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することを含む。実行することで、ゲームが起動し、ゲームのモジュールがロードされゲームのインタラクティブ入力を待機しているゲームセッションに進む。方法はさらに、ゲームセッション中に第１のユーザによるゲームのゲームプレイを可能にする。第１のユーザがゲームの第１のポイントまでゲームを進行する。次いで、システムは、ゲームのモジュールがロードされたままでゲームのインタラクティブ入力を待つように、ゲームセッションをアクティブに維持する。方法はさらに、ゲームプレイの第１のポイントまでのゲームプレイの一部の記録を保存し、ゲームのインジケータをクラウドゲームシステムのウェブページにポストすることを含む。インジケータは、ゲームがインスタントプレイに利用可能であると識別する。次いで、第２のユーザは、第１のユーザがゲームプレイの第１のポイントで中断した場所からゲームセッションのプレイを再開することができる。第２のユーザによるゲームセッションのプレイの再開では、第１のユーザによるゲームプレイの後にゲームセッションがアクティブのままであるため、クラウドゲームシステムのサーバにゲームをロードする必要はない。
【００１０】
本開示の他の態様は、本開示の原理を例示により示す添付の図面と関連した、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００１１】
本開示は、添付の図面と関連した以下の説明を参照することによって最もよく理解されるであろう。
【００１２】
【図１Ａ】クラウドゲームセッションが、クラウドゲームシステムのサーバによって実行される、インターネットを介したクラウドゲームセッションをプレイするユーザの様々な例を示す。
【図１Ｂ】クラウドゲームセッションが、クラウドゲームシステムのサーバによって実行される、インターネットを介したクラウドゲームセッションをプレイするユーザの様々な例を示す。
【００１３】
【図２】クラウドゲームシステムにアクセスし、ゲームタイトル、映画、音楽、及び／またはサーバによって実行可能な、リモートユーザにストリーミングされる一般的なコンテンツなどの特定のデジタルコンテンツへのアクセスを提供するライブラリにアクセスするユーザの例を示す。
【００１４】
【図３】複数のカテゴリのゲームの中から特定のゲームタイトルを選択するために、クラウドゲームシステムにアクセスし、特定の時点で即座にプレイすることができる特定のゲームのデモストリーミングへのアクセスが提供されるユーザの一例を示す。
【００１５】
【図４Ａ】様々な構成要素を含み得るゲーム及びゲームの任意の時点でデモを作成し、ゲームの任意の時点からインスタントプレイを可能にする柔軟性の一例を示す。
【００１６】
【図４Ｂ】ゲームのプリロードがゲームの特定のレベルまで実行され、したがって、以前にプレイされたゲームアクティビティのポストを見る他のプレーヤーによりゲームプレイの再開が可能となるように、特定のゲームを処理することができる、デモストリーミングロジックの例を示す。
【００１７】
【図５】特定の時点（例えば、異なるレベル）でのゲームのインスタントプレイのポストを生成し、先行場所を提示し、ライブ形式の他のプレーヤーの間で進行中であり得る現行プレイを提示するために、ゲームを処理するデモストリーミングロジックの一例を示す。
【００１８】
【図６】一実施形態による、異なるレベルでの特定のゲームに対する異なるデモオプションを生成するデモストリーミングロジックの一例を示す。
【００１９】
【図７】ゲームプレイが中断されたところで他のプレーヤーによってインスタントプレイ及び／または再開を可能にするためにゲームがプリロードされる、特定のレベルでのゲームのインスタントプレイオプションを生成することに関連するフローチャート図を示す。
【００２０】
【図８】一実施形態による、特定のレベルに至るまでのゲームの先行プレイをポストすることを説明する例示的なフローチャートを示す。
【００２１】
【図９】特定のゲームをプレイしている他のプレーヤー及び、ゲームのプリロードを必要とせずに、インスタントプレイ形式で、他のプレーヤーが中断する場所でプレイを再開する能力を示し得る複数のゲームのチャンネルを提供するシステムの一例を示す。
【００２２】
【図１０】本開示の一実施形態による、ビデオ及びゲームクリップの実行及び共有を管理するために使用され得るゲームクラウドシステム１１１０の簡略ブロック図を示す。
【００２３】
【図１１】本発明の一実施形態による、ヘッドマウントディスプレイ１０２の構成要素を示す図である。
【００２４】
【図１２】本発明の様々な実施形態による、ゲームシステム１４００のブロック図である。
【発明を実施するための形態】
【００２５】
次の実施形態は、ゲームのロードに関連する待ち時間を必要とせずに、ゲーム内の特定の時点でのゲームのインスタントプレイを可能にする、クラウドゲームシステムのためのシステム及び方法を説明する。一例では、ユーザが特定の時点までゲームをプレイでき、その後、別のユーザが先行ユーザが中断した場所からプレイを再開できるようにする方法が提供される。異なるゲームのプレイのための異なる時点の選択を可能にする実施態様に関する様々な例が説明される。いくつかの例では、ユーザは、先行プレーヤーによりゲームが一時停止及び／または停止された時点までの先行ゲームプレイの概要クリップをプレイすることができる。インスタントプレイ機能により、ユーザは、ユーザがプリロードし、プリロードを待ち、異なるレベルを経て進め、及び／またはゲームを購入する必要なく、デモを望むものをプレイすることができる。
【００２６】
この柔軟性により、ユーザは、ゲーム全体へのアクセスを必要とする、及び／またはユーザがプレイ、またはゲーム機能のテストもしくはデモンストレーションを開始する前にゲーム全体をプリロードする現在の技術に関連するボトルネックなしで、関心のあり得る時点またはアクションを即座に特定することができる。さらに、様々な実施形態は、ユーザがゲームのインスタンスをプレイする他のプレーヤーを見ることを可能にし、ユーザが他のユーザがゲームプレイを中断する場所からゲームプレイを再開できるようにする方法を提供する。いくつかの実施形態では、先行ゲームプレイを、ソーシャルネットワーク接続に基づいて、特定のユーザに提示することができる。例えば、特定のゲームに関心があり得るプレーヤー間のさらなるインタラクションを可能にするために、ユーザの友人からの先行ゲームプレイを最初に提示することができる。
【００２７】
インスタントプレイデモモードに関する詳細は、図３〜図９を参照して提供されるが、残りの図に記載される他の特徴は、本明細書に記載の様々な実施形態に関連し、特定の実施形態を定義するために組み合わせることができる。しかし、本開示は、これらの具体的な詳細の一部または全部を使用せずに実施し得ることは、当業者には明らかであろう。他の例では、本開示を不必要に不明瞭にしないために、周知の処理工程を詳細には説明していない。様々な実施形態の上記の一般的な理解により、実施形態の例示的な詳細を、様々な図面を参照して説明する。
【００２８】
図１Ａは、本発明の実施形態による、クラウドベースのビデオゲームをプレイするユーザを示す。図示されるように、ユーザＵ１は、ディスプレイ１００上に示されるクラウドベースのビデオゲームをプレイする。クラウドベースのビデオゲームは、主にリモートサーバ、ゲームコンソールサーバ、及び／またはデータセンターで実行されるゲームコンソールサーバのグループで実行されるビデオゲームである。さらに、一実施形態では、サーバは、仮想マシンデータセンターで実行される個々のサーバまたは複数のサーバを含むことができ、多くのサーバを仮想化して、要求された処理を提供することができる。図示の実施形態では、クラウドゲームサーバ（複数可）１０４は、ディスプレイ１００上にレンダリングされるビデオゲームを実行する。
【００２９】
クライアント１０１は、入力を受信して処理し、これらをクラウドゲームサーバ１０４に通信し、さらにクラウドゲームサーバ１０４からビデオ及びオーディオデータを受信するためにユーザの場所に配置される。クライアント１０１及びクラウドゲームサーバ１０４は、インターネットなどのネットワーク１０２を介して通信する。他の実施形態では、クライアントは、ネットワークと通信し、ゲームプレイをレンダリングするためのディスプレイへのアクセスを提供し、ユーザからのインタラクティビティを促すための入力を可能にする限り、クライアントは、無線であっても非無線であっても、携帯であっても非携帯であっても、どのようなデバイスであってもよい。一実施形態では、クライアントはシンクライアントである。ただし、他の実施形態では、クライアントは、汎用コンピュータ、専用コンピュータ、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティングデバイス、ポータブルゲームデバイス、携帯電話、スマートフォン、セットトップボックス、ストリーミングメディアインターフェース／デバイス、スマートテレビジョンまたはネットワークディスプレイ、または本明細書で定義されるクライアントの機能性を満たすように構成することができる任意の他のコンピューティングデバイスとすることができる。一実施形態では、クラウドゲームサーバは、ユーザによって利用されているクライアントデバイスのタイプを検出し、ユーザのクライアントデバイスに適したクラウドゲーム体験を提供するように構成される。例えば、画像設定、オーディオ設定、及びその他のタイプの設定を、ユーザのクライアントデバイス用に最適化し得る。
【００３０】
様々な実施形態では、クライアントによって実行される処理の程度は、入力及び出力処理に関して変化し得る。しかし、大まかに言って、ビデオゲームの状態は、クラウドゲームサーバ１０４上で実質的に維持され、実行され、クライアントは、主として、ユーザ入力を受信し、復号化し、通信し、レンダリングのためのビデオ／オーディオデータを受信するように機能している。クライアント１０１は、ディスプレイ１００に接続され、ディスプレイ１００上にレンダリングするためのビデオデータを提供するスタンドアロンデバイスであり得る。他の実施形態では、クライアントをディスプレイ１００に統合することができる。一実施形態では、ディスプレイ１００は、ディスプレイのネットワーク接続を利用するアプリケーションまたは「アプリ」のためのプラットフォームのオペレーティングシステムを提供するネットワークディスプレイである。そのような実施形態では、クライアントは、ディスプレイのオペレーティングシステムによって提供されるプラットフォーム上で実行されるアプリケーションによって定義することができる。
【００３１】
図１Ｂは、クラウドベースのビデオゲームのゲームプレイに参加する複数の場所にいる複数のユーザを示す。ユーザＵ１は、ディスプレイ１００上にレンダリングされたビデオゲームと対話する第１の場所に示される。ユーザＵ２及びＵ３は、ディスプレイ１０６上にレンダリングされたビデオゲームと対話する第２の場所に示される。ユーザＵ４は、ディスプレイ１０８上にレンダリングされたビデオゲームをプレイする第３の場所に示されている。ユーザＵ５、Ｕ６、及びＵ７は、ディスプレイ１１０上にレンダリングされたビデオゲームと対話する第４の場所に示されている。
【００３２】
第１、第２、第３及び第４の各場所で、様々なユーザからの入力を処理し、それぞれのディスプレイ上にクラウドベースのビデオゲームをレンダリングするための少なくとも１つのコンピューティングデバイスが提供される。コンピューティングデバイスは、ディスプレイに統合することができる、または、パーソナルコンピュータ、セットトップボックス、ゲームコンソール、またはデータを処理及び格納するための少なくとも１つのプロセッサ及びメモリを有する任意の他のタイプのデバイスなどのスタンドアロンデバイスであり得ることを理解されたい。コンピューティングデバイスは、上述したように、クライアントを実行または定義することができる。コンピューティングデバイスは、ネットワーク化され、インターネット１０２などのネットワークを介してクラウドゲームサーバ１０４と通信する。
【００３３】
クラウドゲームサーバ１０４は、ユーザによってプレイされている様々なビデオゲームを実行し、所与のビデオゲームのゲームの状態を刻々と定義し、ビデオデータ（画像データ及びオーディオデータを含む）を特定の場所のコンピューティングデバイスに送信する。所与の場所のコンピューティングデバイスは、ビデオゲームをプレイしているユーザ（複数可）からの入力を処理し、入力データをクラウドゲームサーバに転送し、クラウドゲームサーバは入力データを処理してビデオゲームのゲームの状態に影響を与える。クラウドベースのゲームは、ネットワークを介してすべてのプレーヤーがアクセス可能なリモートサーバでのビデオゲームの実行を提供することにより、異なる場所に位置するプレーヤーからのマルチプレーヤーゲームを容易にすることを理解されたい。このようにして、ビデオゲームの実行は、単一のプレーヤーのハードウェアまたはネットワークの伝導度に依存しないが、そのようなものは、その所与のプレーヤーのユーザ体験に影響を与える。
【００３４】
図２は、本発明の一実施形態による、クラウドゲームのためのシステムを示す。図示されるように、ユーザ２００は、コントローラ２０２を操作して、クラウドベースのビデオゲームに入力を提供する。コントローラ２０２は、ボタン、ジョイスティック、タッチパッド、トラックボール、ならびに加速度計、磁力計、及びジャイロスコープなどの動作検知ハードウェアなどの様々なタイプの入力デバイスのいずれかを含むことができる。一実施形態では、コントローラ２０２は、コントローラ２０２の位置を決定するために追跡することができる照明されたオブジェクトを含むことができる。光トラッキング、フォトダイオードレーザートラッキング、磁気トラッキングなど、位置を検出する他の方法も可能である。コントローラ２０２は、シンゲームクライアント２０４と無線で通信することもできる。クライアント２０４は、ネットワーク２０８を介してクラウドゲームサービス２１０と通信する。クライアント２０４は、コントローラ２０２からのデータを処理して、クラウドゲームサービス２１０によって実行されるビデオゲームに通信される入力データを生成する。さらに、クライアント２０４は、ディスプレイ２０６上にレンダリングするために、クラウドゲームサービス２１０からビデオデータを受信する。一実施形態では、クライアント２０４は、ディスプレイ２０６と互換性のあるフォーマットでビデオストリームを提供するために、受信したビデオデータを処理し得る。例えば、サーバによって送信されたデータは、圧縮を使用して圧縮され、クライアントは、圧縮されたデータを復号化するように構成される。一実施形態では、クライアント２０４は、コントローラデバイスまたはコントローラデバイス上に配置されたオブジェクトを追跡するためのカメラを含むことができる。これまでに述べたように、オブジェクトは、カメラからのキャプチャされた画像フレームの分析に基づいて、追跡をさらに容易にするために照らすことができる。
【００３５】
クラウドゲームサービス２１０は、ビデオゲームを実行できる環境を提供するためのリソースを含む。大まかに言って、リソースは、ビデオゲームアプリケーションの実行を容易にするために利用できる、プロセッサ、ストレージデバイス、及びネットワーク機器を含む、様々なタイプのコンピュータサーバハードウェアを含むことができる。図示の実施形態では、ビデオゲームライブラリ２１２は、様々なゲームタイトルを含む。各ゲームタイトルは、ビデオゲームをインスタンス化するために利用される実行可能なコードならびに関連するデータ及びアセットライブラリを定義する。ホスト２１４は、仮想マシン２１６をインスタンス化するためのプラットフォームを定義する単一のコンピューティングデバイスとすることができる。別の実施形態では、ホスト２１４は、それ自体を仮想化されたリソースプラットフォームとすることができる。他の実施形態では、ホスト２１４は、データセンターのラック上で実行し得る複数のゲームコンソールサーバを実行することができる。ゲームは、データセンターのローカルストレージまたは他の接続されたデータセンター内の他のストレージシステムに格納することができる。したがって、例えば、ホスト２１４は、１つまたは複数のサーバコンピューティングデバイス上で動作し、遠隔地からゲームを実行し得る統一プラットフォームを提示しつつ、サーバコンピューティングデバイスによって定義されたリソースの割り当て及び使用を処理し得る。
【００３６】
一実施形態では、仮想マシンは、ゲームコンソールのハードウェアリソース環境をエミュレートするように構成することができ、ゲームコンソールに関連付けられたオペレーティングシステムは、仮想マシン上で実行され、そのゲームコンソール用に開発されたゲームタイトルの実行をサポートする。別の実施形態では、オペレーティングシステムは、ゲームコンソールのネイティブオペレーティングシステム環境をエミュレートするように構成することができるが、基礎となる仮想マシンは、ゲームコンソールのハードウェアをエミュレートするように構成されてもされなくてもよい。別の実施形態では、エミュレータアプリケーションが、仮想マシンのオペレーティングシステムのトップで実行され、エミュレータは、ゲームコンソール用に設計されたビデオゲームをサポートするために、そのゲームコンソールのネイティブオペレーティングシステム環境をエミュレートするように構成される。クラウドベースのゲームシステムでは、現在及び従来の様々なゲームコンソールをエミュレートすることができることを理解されたい。このようにして、ユーザは、クラウドゲームシステムを介して異なるゲームコンソールからゲームタイトルにアクセスすることができる。ユーザ２００が特定のビデオゲームタイトルをプレイすることを要求すると、ビデオゲームタイトルがライブラリ２１２から検索される。
【００３７】
所与のビデオゲームは、特定のプラットフォーム及び特定の関連するコントローラデバイスのために開発され得ることを理解されたい。しかし、このようなゲームが、本明細書で提示されるようなクラウドゲームシステムを介して利用可能にされる場合、ユーザは、異なるコントローラデバイスを使用してビデオゲームにアクセスし得る。例えば、ゲームはゲームコンソール及びそれに関連するコントローラ用に開発されているが、ユーザはキーボード及びマウスを利用してパーソナルコンピュータからクラウドベースのバージョンのゲームにアクセスしている可能性がある。そのようなシナリオでは、入力パラメータ構成により、ユーザの利用可能なコントローラデバイス（この場合はキーボード及びマウス）によって生成することができる入力から、ビデオゲームの実行の条件を満たしている入力へのマッピングを定義することができる。
【００３８】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介してクラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイス内に統合され、検出されたタッチスクリーン入力／ジェスチャによって入力が提供される。そのようなデバイスの場合、入力パラメータ構成は、ビデオゲームのゲーム入力に対応する特定のタッチスクリーン入力を定義し得る。例えば、ボタン、方向パッド、またはその他のタイプの入力要素が、ビデオゲームの実行中に、表示またはオーバーレイまたはビデオフレームの画素と統合され、ユーザがゲーム入力を生成するためにタッチすることができるタッチスクリーン上の位置を示す。特定の方向のスワイプまたは特定のタッチ動作などのジェスチャも、ゲーム入力として検出され得る。一実施形態では、タッチスクリーン上のコントロールの操作にユーザが慣れるために、例えば、ビデオゲームのゲームプレイを開始する前に、ゲームプレイのためにタッチスクリーンを介して入力を提供する方法を示すチュートリアルをユーザに提供することができる。
【００３９】
図３は、本発明の一実施形態による、ユーザにゲームデモを提供する方法を示す。デモ用に利用可能な様々なゲームタイトルのビネットまたはアイコン３０２、３０４、３０６、３０８、３１０、及び３１２を提供するインターフェース３００が示されている。各アイコンは、それが表すゲームを示す画像を提供するように構成することができる。一実施形態では、ユーザが所与のアイコンに移動すると、アイコンがアクティブになり、ビデオゲームを表すアニメーションまたはビデオクリップを表示するか、またはそれ以外の方法でビデオゲームのコンテンツについてユーザに追加情報を提供し得る。一実施形態では、ユーザは、アイコン３０２、３０４、３０６、３０８、３１０、及び３１２のいずれかに移動し、それがハイライトされ、ビデオゲームからのシーンを示すアクティブなアニメーションを表示し得る。
【００４０】
この例では、クラウドゲームシステム１０４は、様々なモジュール及びシステムとインターフェースされて動作するように構成される。例示のために、クラウドゲームシステム１０４は、ソーシャルネットワーク３２０とインターフェースし得る。ソーシャルネットワークは、例えば、登録されたプレーヤー及び登録されたプレーヤーの友人などの、クラウドゲームシステム１０４によって管理されるものであり得る。他の実施形態では、クラウドゲームシステム１０４は、ソーシャルネットワーキングサイトなどのサードパーティによって運営されるシステムとインターフェースし得る。そのようなインターフェースは、例えば、アプリケーションプログラミングインターフェース（ＡＰＩ）呼び出し、及び／または他の通信リンクまたはチャンネルを介して管理し得る。さらに、ゲームライブラリ３２２は、クラウドゲームシステム１０４のユーザが、ディスプレイ３００に示されるような様々なゲームタイトルにアクセスできるようにするために提供される。上述したように、ゲームタイトルは、様々なタイプのゲームコンソール世代、パーソナルコンピュータゲーム、オンラインゲーム、または任意のタイプのデジタルコンテンツ（例えば、映画、インタラクティブコンテンツ、ハイブリッドインタラクティブコンテンツ、ヘッドマウントディスプレイコンテンツなど）に提供することができる。
【００４１】
また、デモストリーミングロジック３２４が示されており、これは、複数のユーザが、ゲームプレイの様々なレベルで特定のゲーム及びインスタントプレイゲームにアクセスできるように構成されている。例えば、デモストリーミングロジックは、クラウドゲームシステム１０４の登録ユーザによって使用され得る様々なゲームをプリロードするように構成される。使用統計及び履歴分析に基づいて、クラウドゲームシステムの登録ユーザによって頻繁に使用され得る特定のゲームを識別することが可能である。いくつかの実施形態では、特定のゲームは、１日の時間帯、地理的領域、特定のユーザ人口統計、１カ月の時間帯、またはそれらの組み合わせに基づいて、頻繁に使用されるゲームとして識別されることができる。
【００４２】
この情報を使用して、クラウドゲームシステム１０４によって実行されるべきゲームが、登録ユーザによってプリロードされ即座にプレイされる準備ができていることを識別することが可能である。一実施形態では、複数のゲームが、クラウドゲームシステム１０４の登録ユーザによってプリロードされ、インスタントプレイができる状態になる。特定の実施形態では、ゲームは異なるレベルのゲームプレイにプリロードされる。例えば、１つの特定のゲームは、ゲームの複数のインスタンスをプリロードすることができ、その結果、同じゲームが、その特定のレベルでゲームにアクセスしたいと望むユーザによるインスタントプレイのためにプリロードされ、インスタントプレイができる状態になっている複数のレベルを有することができる。ユーザが異なるレベルでプリロードされたゲームにアクセスできるようにすることで、異なるゲームイベントである特定のゲームを異なるレベルで体験をしたいユーザは、購入前にそのようなゲームにアクセスできるようになる。いくつかの実施形態では、ユーザは、特定のゲームレベルが面白いと聞き得て、購入前にそれらのゲームレベルのプレイを望み得る。しかし、このようなデモプレイを可能にする現在の技術では、ユーザは最初から開始するか、またはゲームがロードされるのを待つ必要がある。どちらの状況でも、セットアップに関連する遅延は、ユーザが特定のゲームを試行したり、ゲームのレベル、体験、アクション、ポイントインタイム、またはその特定の関心地点でのゲームの即座の開始に関連するインタラクティビティを体験することを妨げ得る。
【００４３】
したがって、デモストリーミングロジックは、クラウドゲームシステム１０４の登録ユーザに、異なるレベルまたはアクション／インタラクティビティのポイントで異なるゲームを体験する柔軟性を提供するように構成される。クラウドゲーム１０４はまた、クラウドゲームサービス１０４の登録ユーザのユーザアカウントを管理するように構成された、ユーザアカウント３２６とインターフェースし得る。ユーザアカウント３２６はまた、特権、ユーザアカウントメトリック、購入されたゲーム、購入されたアセット、ユーザの友人などを識別し得る。一実施形態では、ユーザの履歴プレイデータを識別する、ユーザデータ３２８が提供される。履歴プレイデータには、プレーヤーが以前に中断した場所またはゲームプレイ中の場所を識別するデータとメタデータを含むことができる。追加データには、達成したレベル、獲得したポイント、獲得したトロフィー、達成したインタラクティビティ、ランキング、レーティング、及び１つまたは複数のゲームまたはインタラクティビティに関連するユーザ個人のその他のデータを含むことができる。いくつかの実施形態では、特定のゲームは、ユーザのデジタルアセット、得たポイント、達成レベル、及び他のユーザ固有のメタデータを定義するユーザデータに従って実行される。様々な実施形態では、クラウドゲームシステム１０４は、これらのモジュールのいずれかの情報を利用して、特定のユーザのためのコンテンツの効率的なレンダリングを可能にする。
【００４４】
以下に説明するように、デモストリーミングロジック３２４は、特定のゲームをデモしたいユーザに特定の柔軟性を提供する。デモプロセスはゲームのロード時間をなくし、ユーザがフルゲームを購入せずにゲームをプレビューすることも可能にする。いくつかの実施形態では、ユーザはチャンネルに参加することができ、ゲームの１つのインスタンスをストリーミングする他のユーザ（またはゲームの他のインスタンスをストリーミングする他のユーザ）を見ることができる。次いで、ユーザは最後のユーザが中断した場所からゲームをプレイできる。ゲームはストリーミングサーバにプリロードされ、ユーザはすぐにプレイを開始できる。遅延のないゲームは、特定のレベルまで、またはよりダイナミックなプレイ及びリプレイのためにプリロードすることもできる。
【００４５】
図４Ａは、様々なコンポーネント４０１を含むゲームの例を示す。この図は、インスタントプレイのデモをゲームまたはインタラクティブコンテンツの任意のポイントに関連付けることができることを明確にするために作成したものである。この例では、デモはレベル、例えば、レベル３に関連付けられ得る。別の実施形態では、デモは、特定のシーン４０３、例えば、レベル３内のシーン２に関連付けられ得る。別の実施形態では、デモは、特定の時点４０５、例えば、ＴｘからＴｙに関連付けられ得る。デモが特定の時間に関連付けられている場合、時間Ｔｘは、先行ユーザが中断した場所、例えば、プレイを停止した場所であり得て、したがって、ゲームにアクセスしている現行ユーザは時間Ｔｘから再開できる。次いで、ユーザは、時刻ＴｘからＴｙまたは他の任意の時刻Ｔｚまでプレイすることができる。プレイする時間の長さに応じて、ユーザはゲームの終了時に、または特定のレベル内の他のレベルまたはシーンでプレイを停止し得る。したがって、前述のように、デモはゲーム内の任意のポイントにプリロードすることができ、必ずしもレベルに関連付ける必要はない。ただし、別のユーザがプレイを再開できるようにするには、レベルが効率的なブレークポイントになり得る。
【００４６】
図４Ｂは、本開示の一実施形態による、デモストリーミングロジック３２４によって実行される例示的な処理を示す。図示されるように、特定のゲームは、デモ選択モジュール５３０のためのデジタルコンテンツを提供するなどの、デモストリーミングロジック３２４によって処理され得る。一実施形態では、デモストリーミングロジック処理のために複数のゲームが選択される。上述したように、クラウド処理ロジックによってサービスされる特定のゲームは、デモ用に提供されると識別される。一実施形態では、新しいゲームをデモ用に提供することができる。他の実施形態では、頻繁に使用されるゲームをデモ用に提供することができる。他の実施形態では、より高い関心レベルを体験するゲームをデモ用に動的に提供することができる。さらに他の実施形態では、使用、ソーシャルインタラクション、ソーシャルポスティング、ソーシャルリファレンス、プレーヤーからプレーヤーへの招待、プレーヤーのチャレンジ、レーティング、またはそれらの組み合わせに基づいて人気があるゲームを一実施形態で使用し得て、デモ用に選択されたゲームは、クラウドゲームシステム１０４のウェブページまたはページのデモ選択モジュールで表し得る。例えば、ユーザがクラウドゲームシステム１０４にログインすると、ユーザは、デモ選択モジュールに移動し得て、デモ選択モジュールは、ページ、リンクまたはインターフェースとして表し得る。デモ選択モジュールでは、デモのオプションとして複数のゲームを表示し得る。
【００４７】
さらに図４Ｂでは、ゲームＡについては、プリロード（４０２）が処理され、続いて特定のレベルにジャンプすることが示されている。これらの例では、ゲームは、例えば、図５を参照して説明したように、ロード時間及び導入画面のすべてまたは一部をバイパスした後に、簡単にレベル１に進み得る。他の実施形態では、システムは、他のレベル、例えば、レベル７、２２、Ｎに進めさせ得るかまたはジャンプさせ得る（４０４）。選択されたレベルについて、システムは、他のユーザによる先行プレイの概要クリップをフェッチまたは取得し得る（４０６）。これらの先行プレイは、他のユーザが、インスタントプレイしたいレベルに至るまでの経緯を知ったり、理解したりするために、他のユーザが見るのに有用であり得る。動作４０８では、ポストは、特定のレベルをプレイする準備完了状態にすることができる。一例では、ポストにより、単にウェブサイトにインスタントプレイオプションを追加することができる。ウェブサイトは、クラウドゲームシステム、ゲームネットワーク、他者によるゲームウェブサイト、パートナーのウェブサイト、ソーシャルメディアサイト、ソーシャルメディアストリームなどのウェブサイトとすることができる。
【００４８】
図５に示すように、ゲームがデモ用に選択されると、デモストリーミングロジック３２４は、特定のレベルでデモゲームを即座にプレイするオプションなどのデモ選択モジュールオプションを生成するために、それらの特定のゲームを処理する。デモストリーミングロジック３２４に戻って、デモ処理用にゲーム５０２が選択されると、ゲームはオペレーション５０４でプリロードされる。ゲームのプリロードは、ゲームを選択すること、ゲームをロードさせること、そのオブジェクトのすべてのインスタンス化を待つこと、スプラッシュスクリーンが表示されるのを待つこと、及びゲームをプレイする準備を維持することを含むことができる。
【００４９】
１つの技術的な実施態様では、ゲームのプリロードは、特定のモジュール、例えば、コードをロードすることを含むことができる。例えば、コードは個々のゲームの構造に応じてロードされる。いくつかの実施態様では、ゲームの一般的な要素は、ゲームコード、ユーザインターフェースコード、オーディオ、グラフィックス、ゲームエンジン、及びプレイする必要があるレベルに特有のコードであり得る。
【００５０】
データセンターでは、すべてのコードモジュールがロードされると、ゲームが開始される。しかし、本開示の様々な実施形態で構成されるようなインスタントプレイでは、ビデオはクライアントに送信されていない。例えば、ゲームプレイが開始される前に、クラウドゲームシステムがＸ秒間待機する必要があり（例えば、１つまたは複数のビデオが再生されている間）、クラウドゲームシステムによって１つまたは複数のボタン押下が自動的に入力される必要がある（例えば、特定の通知、グラフィック画像などをスキップするため）。この時点では、クラウドゲームシステムは、ゲームプレイアクションまであとほぼ１つのボタンを押すところにあり、ゲームが一時停止される。クラウドゲームシステムが、レベル１以外のレベルを自動的にユーザにプレイさせたい場合、例えば、クラウドゲームシステムは、例えば、仮想プレーヤー入力ボットを介して、または特定のレベルをスキップしたり、ゲームの他のレベルに進むために必要な所定のボタン押下または入力を介して、任意の数のボタン押下を自動的に実行することができる。いくつかのゲームでは、単純に他のレベルをプレイすることが可能であり、これらのゲームでは、クラウドゲームシステムはそのポイントまでゲームを進めて一時停止し、デモ選択モジュール５３０を介してそのゲームレベルをインスタントプレイができる状態にする。
【００５１】
一実施形態では、ゲームが接続されている場合、例えば、ユーザがインスタントプレイ５３４ボタンを押すことに応答して、１つまたは複数のスクリーン通知がユーザに対して再生され得る。例えば、その接続が行われてから数秒間（例えば、５秒未満）、ゲーマーに（例えば、プリロードプロセスをバイパスすることによって自動的にスキップされた）すべての法的要件を含む法的画面を表示することで、その時間を稼ぐことが可能である。この時点で、ユーザは、ゲームの所望のインスタントプレイポイントでインスタントゲームプレイまであとボタンを１つ押すだけである。分かりやすくするために、インスタントプレイ５３２のために利用可能なゲームの１つのレベルをプレイすることを望むユーザに先立って、インスタントプレイ５３２のためにゲームをプリロードして読み出す間に、クラウドゲームシステムでセットアップが行われる。その結果、多くのゲームをプリロードすることができ、これらのゲームは、クラウドゲームシステムのデモ選択モジュール５３０のウェブサイトに表示されると、プレイできる状態になる。
【００５２】
いくつかの実施形態では、例えば、ユーザがレベル１のインスタントプレイを決定し、次いでレベル３までプレイする場合、他のユーザには、先行ユーザが中断したレベル４でそのゲームのプレイを再開するオプションを提供することができる。したがって、第１のユーザにはレベル１のインスタントプレイが提供され、ゲームがプリロードされたときにユーザはゲームプレイに直接入ることができる。次のユーザも、先行ユーザが中断した場所からプレイを再開しているだけなので、ゲームプレイに直接入ることができる。例えば、中断する先行ユーザは、単にゲームを一時停止し、インスタントで実行したままで、次のプレーヤーに利用可能にする（すなわち、ゲームのプリロードも避ける）。
【００５３】
動作５０６では、動作は、ゲーム内のレベルを識別することを含むことができる。例えば、デモストリーミングロジックは、特定のレベルからデモをプレイすることができるように、ゲームの複数のインスタンスを作成し、ゲーム内の特定のレベルにスキップすることができる。いくつかの実施形態では、スキップすることは、必ずしもあるレベルに進むことだけはなく、インタラクティビティの時点、インタラクティビティの特定のシーン、特定のアクションシーケンス、特定のアニメーション、またはそれらの組み合わせに進むことも含むことができる。
【００５４】
いくつかの実施形態では、動作５０６におけるレベルの識別は、先行プレーヤーがプレイしたゲームのインスタンスと、先行ユーザが中断したレベルとを決定することを含むことができる。例えば、プレーヤー１は、レベル１からゲームをプレイすることを決定し、３までプレイすることができる。プレーヤー２はまた、レベル１からゲームをプレイすることを決定し、レベル１０までプレイすることができる。プレーヤー３は、レベル１１からゲームをプレイすることを決定し、レイヤー２が中断した場所から再開することができる。プレーヤー４は、レベル７からプレイすることを決定し得る。プレーヤー４は、他のプレーヤーの再開をプレイすることはできず、レベル７のインスタンスを提供するだけである。したがって、クラウドゲームシステムにより、ユーザは、クラウドゲームシステムが自動的に進めたレベルをプレイすることができる、または、ユーザは、他のプレーヤーが中断したレベルでプレイすることができる。このように、システムがプレイに利用可能なレベルまで自動的に進めることによって、そのレベルを作成するので、インスタントプレイ５３２は、別のプレーヤーによって以前にプレイされたセッションまたはプレイに利用可能なレベルとすることができる。
【００５５】
いくつかの実施形態では、クラウドゲームシステムは、どのゲームがインスタントプレイのより多くのデモレベルを必要とするかを自動的に分析することができる。他の多くのユーザがレベル２、４、及び５までの特定のゲームをプレイした場合、システムはレベル３、６、７及び８のより多くのインスタントプレイを作成する必要があると判定することができる。したがって、システムは、ゲームのための補足を行い、ゲームをプリロードし、それらを特定のレベルに進め、それらのレベルのインスタントプレイを可能にする。いくつかの実施形態では、特定のゲームの人気の分析に基づいて、インスタントプレイを自動的に作成することができる。他の実施形態では、新しいゲームを促進するために、その新しいゲームのインスタントプレイを作成することができる。他の実施形態では、ユーザにトレーニングを提供するために、インスタントプレイを作成することができる。
【００５６】
さらに他の実施形態では、インスタントプレイ５３２は、ユーザがリンクをクリックして即座にプレイすることができるように、様々なウェブサイトにポストすることができる。この場合、他のウェブサイトは、クラウドゲームシステムにアクセスさせるリンクをユーザが追加することができる、他のウェブサイト（例えば、クラウドゲームシステムのウェブサイト以外）とすることができる。ゲストまたは登録ユーザとしてアクセスし得る。ゲストとしてアクセスした場合、機能を縮小または調整できる。さらに、他のウェブサイトは、画像クリップまたはビデオクリップがソーシャルストリームにポストされる、ソーシャルメディアウェブサイトとすることができる。リンクを選択すると、そのゲームレベルまたはゲーム部分のインスタントプレイが可能になる。
【００５７】
したがって、レベルの識別は、ゲームがシフトされる時点からインスタントプレイを開始することができるように、単にその時点を特定することを含むように広く解釈されるべきであることを理解されたい。考察の目的のために、特定のゲームのレベルの識別について説明する。
【００５８】
レベルが動作５０６で識別されると、動作５０８でサムネイル画像を生成することができる。サムネイル画像の生成は任意であり、代わりにゲームの名前を生成することができる。さらに、動作５１２では、識別されたレベルの先行ゲームプレイを識別することができる。先行ゲームプレイは、他のユーザのゲームプレイから記録されたプレイインタラクティビティとすることができる。例えば、他のユーザは特定のレベルに達し得て、その先行ゲームプレイは、デモ選択モジュール５３０にアクセスしているユーザが、その特定のレベルでプレイを再開できる時点を表すことができる。
【００５９】
一例として、ユーザのボブがレベル４に到達した先行プレーヤーあった場合、彼の先行ゲームプレイは、先行ゲームプレイ５３６のサムネイルとして表すことができる。スティーブとジャックによる先行ゲームプレイでも同じことが言える。一実施形態では、先行ゲームプレイ５３６は、先行プレーヤーによって識別することができ、スコア、レーティング、及び他の識別またはソーシャルデータも示すことができる。動作５０６に戻って、レベルは現行プレイ５１０を識別することもできる。現行プレイは、クラウドゲームシステム１０４に接続されている他のユーザによるゲームのライブインタラクティブプレイを含むことができる。一実施形態では、ユーザは、現行ゲームプレイ５３８を見たり、現行ゲームプレイのプレーヤーと通信したり、現行プレーヤーにチャットメッセージを送信したり、テイクオーバーライブゲームプレイ及び／または他の通信を要求したりし得る。
【００６０】
一実施形態では、先行ゲームプレイ５１４の概要クリップは、先行プレイ５３６を示すためなどに生成し得る。必要に応じて、概要クリップは、動作５１８でのユーザソーシャルグラフとの対話によって、動作５１６でユーザの友人のために選択することができる。動作５２０では、先行ゲームプレイのクリップの概要をフェッチし、動作５２２での特定のレベルをプレイする準備完了状態をポストするポスティングロジックに提供することができる。動作５２２は、現行プレイ５１０に関する情報も受信する。ポストは、ゲームレベル、先行プレイ５３６、及び現行プレイ５３８に関する情報がデモ選択モジュール５３０に提供されるときに行われる。
【００６１】
一実施形態では、ポストすることは、インスタントプレイインターフェース５３２を単に含むことができ、先行プレイ５３６または現行プレイ５３８を含むことはできない。別の実施形態では、現行プレイ５３８を提供せずに、インスタントプレイ５３２及び先行プレイ５３６が提供される。さらに他の実施形態では、先行プレイ５３６または現行プレイ５３８が提供されるかどうかは、ゲームレベルのインスタントプレイ５３２の能力と共にポストする他のユーザからのコンテンツがあるかどうかに依存する。現在の例では、インスタントプレイ５３２は、レベル４のゲームのサムネイル画像を示す。クラウドゲームシステム１０４にアクセスするユーザは、ゲームのレベル４を即座に開始するために、単にアイコン５３４（例えば、プレイコントロール、プレイボタン、プレイ矢印、またはプレイリンクなど）を選択するか、または任意の他のインターフェースを選択することができる。一実施形態では、ユーザは、先行プレイ５３６のユーザのうちの１人が中断した場所からユーザがプレイを再開できるモードで、ゲームのプレイレベル４を開始することができる。上述のように、ユーザは、友人のスティーブが中断した点（スティーブは１８点をあげていた）から、ゲームのレベル４をプレイすることを所望することがあり得る。
【００６２】
いくつかの実施形態では、先行プレイ５３６は、それ自体、特定の先行ユーザが中断した場所から再開するインスタントプレイを可能にし得る。先行プレイのうちの１つがインスタントプレイとして選択された場合、他の先行プレイを表示し得て、ユーザは以前に行われたプレイの概要を見ることができる。いくつかの実施形態では、ユーザが良いスコアを達成したユーザの先行プレイを見た場合、ユーザは、代表インスタントプレイ５３２オプションの代わりに、その先行ゲームプレイ５３６のインスタントプレイを所望し得る。
【００６３】
他の実施形態では、インスタントプレイ５３２は、ユーザが他のユーザからの過去のプレイなしで、レベル４をプレイすることを可能にする。これは、以前のユーザプレイからのプレイを再開したくないユーザもいるため、ユーザに提供する選択肢とすることができる。しかし、ユーザが先行プレイ５３６のいずれかのプレイの再開を所望しない場合でも、ユーザは、先行場所のビデオクリップを視聴して、ユーザをゲームと関連付け、先行ユーザが課題を残した場所、成果を上げた場所、または成功した場所を理解することができる。デモ選択モジュール５３０によってレンダリングされる特定のバスケットボールゲームのレベル４のこの例は、単なる一例に過ぎない。具体的には、デモプレイのために提供されるゲームそれぞれが、その様々なレベル、対話ポイント、アクションシーンなどをプレイするための複数のオプションを含むことができる。これらのレベルのそれぞれが、クラウドゲームシステム１０４によってプリロードされ実行されているゲームのインスタンス化を表す。ゲームをプリロードして特定のレベルにスキップすることによって、ゲームがロードされるのを待つことがなくなり、ユーザが特定のゲームのプレイにすぐに参加できるようになる。上述のように、ゲーム全体を購入するか、ゲームがロードされるのを待つか、またはユーザが関心のある所望のレベルに達するまで、レベルごとにユーザがそれぞれ進むことを待つことなく、様々なレベルでのこの即座のゲームプレイにより、ユーザはゲームをすばやく試すことができる。
【００６４】
図６は、デモ選択モジュール５３０とインターフェース接続されたデモストリーミングロジック３２４のブロック図を示す。上述したように、デモ選択モジュール５３０は、デモモードに追加するゲームを識別するように設計されている。この例では、ゲームＡ〜ゲームＮが表示されている。さらに、デモモードのために任意の数のゲームを選択することができ、デモモードからゲームを追加または削除することができることを理解されたい。この例では、ゲームＡのデモ選択モードは、複数のレベル、すなわちレベルＡ〜レベルＮを含むように示されている。レベルのそれぞれが、インスタントプレイ５３２と、オプションで先行プレイ５３６と、現行プレイ５３８とを含むことができる。上述のように、先行プレイは、他のユーザによるプレイ、または現在プレイ中のユーザによるプレイともすることができ、最後のユーザが中断した場所でプレイを再開する能力を有する。さらに、先行プレイは、先行ユーザが現行レベルに到達する前に、先行レベルで実行した方法を見るために、再生することができるビデオクリップを提供することができる。別の実施形態では、先行プレイはレベル自体になり得る。この例では、ユーザは、ビデオクリップを再生して、その特定のレベルがどのようにプレイされたか、または友人または他のプレーヤーによる達成度を見ることができる。
【００６５】
別の実施形態では、現行プレイ５３８をゲームＡの各レベルに関連付けることができ、これにより、１人または複数のユーザによるライブインタラクティブのゲームプレイを見るための能力が提供される。他のユーザによるゲームプレイ中に、ユーザは、テキストをポストし、チャットセッションに参加し、画像を提供し、ビデオを提供し、知識を共有し、ゲームステージについてチャットし、及び／または単に交流することによって、他のユーザと通信し得る。
【００６６】
いくつかの実施形態では、ユーザは、単に参加して、現在プレイ５３８しているユーザのうちの１人と代わることで、別のユーザのプレイを継続するオプションが提供される。この動作では、ユーザは、ゲーム内の１人のプレーヤーのコントロールを引き継ぐだけであり、ユーザが停止することを決定するまで、プレイを継続することができる。いくつかの実施形態では、ユーザがインスタントプレイ５３２をプレイするとき、そのレベルのユーザのプレイは、他のユーザが見る、及び／または再開するための先行プレイ５３６となり得る。
【００６７】
図７は、本開示の一実施形態による、クラウドゲームサーバを使用する場合の、特定のレベルでゲームのインスタントプレイを可能にすることに関連するフローチャート図を示す。動作７０２では、ゲームがプリロードされる。上述したように、プリロードは、この場合も、ゲームの選択、ゲームの起動、紹介コンテンツの表示を待つことを含むことができる。プリロードが完了した後、クラウドゲームシステムは、動作７０４でゲーム内の特定のレベルへのジャンプを自動的に生成する。動作７０４でのゲームのレベルへのジャンプは、所望のレベルに到達するために、ゲームステージ、インタラクティビティ、選択ステージ、入力ステージ、インタラクティビティなどを介した早送りを含むことができる。一実施形態では、この処理は、同じゲームがレベル１、２、３、４、．．．Ｎなどのいくつかのレベルに到達するために繰り返され得る。
【００６８】
動作７０６では、特定のレベルがプリロードされているゲームの特定のレベルのそれぞれに到達すると、ゲームは一時停止される。ゲームを一時停止することは、ゲームが停止されておらず、インスタントプレイができる状態でバックグラウンドで実行されていることを意味する。例えば、特定のゲームがレベル２、１２、２７などの３つのレベルのためにプリロードされている場合、各レベルは、クラウドゲームサービスの登録ユーザによって一時停止され、プレイする準備ができている。動作７０８では、ゲームのインジケータが生成され、インスタントプレイのレベル及びオプションが表示される。例えば、ゲームの画像サムネイルを生成してゲームを識別し、インスタントプレイのゲームの選択を可能にすることができる。
【００６９】
別の実施形態では、インジケータは、単純に、ゲーム及びレベルを識別するテキスト、及び関連するリンクとすることができる。動作７１０では、そのレベルに至るまでのイベントの概要を提供するゲームのために１つまたは複数の先行ゲームプレイを取得することができる。例えば、先行ゲームプレイは、インスタントプレイのために提供されている現行レベルより前のレベルを識別することができる。一実施形態では、先行ユーザは先行レベルでゲームをプレイしており、インスタントプレイを提供されているユーザは、先行ユーザが中断したその時点からゲームプレイを再開することができる。一実施形態では、これは、別のユーザに対するプレイコントロールの動的なハンドオフとして機能することができる。場合によっては、２人以上の遠隔ユーザが、チームとしてゲームまたはセッションを完了させるために、前後に、または順番にゲームプレイをハンドオフすることができる。１人のプレーヤーがコントロールしている間は、他のプレーヤーは見ていることができる。ゲームがマルチプレーヤーの場合、複数のプレーヤーが即座に参加できる。別の実施形態では、先行ゲームプレイはレベル自体になり得る。その状況では、ユーザは、ゲームレベルのビデオクリップを視聴して、ゲームに関連付けることができ、その特定のゲームレベルをどのようにプレイするかを理解することができる。動作７１２では、そのレベルのゲームのインスタントプレイが可能になる。
【００７０】
ゲームは、特定のデータセンターから実行され得る、クラウドゲームサーバ（複数可）上で実行される。クラウドゲームサーバにアクセスするユーザは、インターネット接続を介してサーバにアクセスすることができる。したがって、ゲームの実行は、ロード時間を待つことなく、特定のレベルで特定のゲームを即座にプレイするオプションが提供されているクライアント（ユーザ）から遠隔にある。
【００７１】
図８は、本開示に従って、ゲームのインスタントプレイオプションを生成するためにクラウドサーバによって実行される動作を示すフローチャート図である。動作８０２では、ゲームのインジケータがポストされる。ポストは、インスタントプレイが利用可能なゲーム内のレベルを表示する。本明細書で使用される場合、ポストするという動作は単に、オプションがクラウドゲームシステム１０４上でアクセス可能な少なくとも１つのインタラクティブページ上にグラフィカルに提供されることを意味する。
【００７２】
例えば、クラウドゲームシステムは、ユーザがコンテンツを選択するためのオプションを提供する複数のウェブページを含み得る。ウェブページのうちの１つまたはウェブページのサブセットは、デモモードでインスタントプレイが可能ないくつかのゲームを識別する領域を含み得る。動作８０４では、特定のゲームについて、ゲームの複数の先行プレイが、インスタントプレイが利用可能なレベルに至るまで、ポストされ得る。
【００７３】
例えば、先行プレーヤーがレベル３をプレイし、レベル４がインスタントプレイが利用可能なレベルである場合、先行プレイはレベル３の様々な対話セッションを表示する。一実施形態では、これにより、ユーザは、レベル３の先行ゲームプレイを見てから、レベル３のユーザが中断した場所でレベル４を即座に開始することができる。したがって、ゲームのプレイは、ゲームの先行プレイのいずれかから開始され、ゲームプレイが継続される。別の実施形態では、ユーザがレベル４に至るまで行われたゲームアクションのより詳細な概要を望む場合には、さらに前のレベルをユーザに示すこともできる。
【００７４】
図９は、特定のゲームをプレイする他のプレーヤーを定義する、ゲームのための、複数のチャンネルをレンダリングする動作を示すフローチャート図である。例えば、複数のユーザが現在ゲームＡをプレイしている場合、それらのインスタンスはチャンネルとして見ることができる。これらのチャンネルは、クラウドゲームサービス１０４の１人または複数の登録ユーザが、ゲームチャンネルへのアクセスを提供するユーザインターフェースにログインして接続されたときに、見ることができる。したがって、動作９０２では、ゲームチャンネルは、ユーザに他のユーザが特定のゲームをプレイするのを生で視聴するための能力を提供し、それらのユーザが、プレイ中のユーザと対話できるようにする。
【００７５】
動作９０４では、停止点は、プレイされていたゲームのうちの１つに対して識別され得る。停止されたゲームは、ロードされたままとなり、他のプレーヤーによってインスタントプレイができる状態になる。したがって、ライブプレイ中のゲームのいずれかがプレイ中のユーザによって一時停止または停止された場合、ライブゲームプレイを視聴し得る別のユーザは、それらのユーザが中断した場所からゲームプレイを再開し得る。一実施形態では、他のユーザが中断した時点は、それらの特定のユーザのために依然として保存され得て、視聴しているユーザによるゲームの継続は、先行ゲームプレーヤーのゲームプレイまたは状態に影響を与えない。
【００７６】
このように、各ユーザの保存されたデータは、個別に管理され、それぞれのユーザのユーザアカウントに関連付けられることができる。動作９０６では、第２のユーザは、インスタントプレイを介して、プレイされていたゲームのうちの１つを停止点から開始して再開することを可能とすることができる。前述したように、第２のユーザは、ゲームがロードされるのを待つことなく、他のユーザが中断した場所からゲームを即座に開始することが可能になる。大まかに言って、ゲームはデータセンター内のサーバの１つにロードされたままであり、別のユーザがコントロールを引き継いでプレイを再開するのを待つだけである。一般に、別のユーザがインスタントプレイモードを再開できるようにするには、データセンター内のサーバ及びロジックで、別のユーザをゲームの特定のインスタンスに関連付ける必要がある。これには、特定のユーザアカウントに関連付けるマッピング機能が特定のゲームに必要であり、そのユーザのゲームの特定の機能を有効にする。例えば、ゲームがデモの場合、有効になる特定の機能と、有効にならない特定の機能がある。より具体的には、デモモードでは、ゲームの機能のすべてが、全額支払い済みのゲームのように有効になるわけではない。
【００７７】
別の実施形態では、デモモードは、ゲーム全体ではなく、ゲームの１つまたは複数のレベルのプレイのみを可能にするため、ゲームのすべての機能がそのデモモードに対して有効になる。デモモード中に特定のレベルのゲームのより多くの機能またはゲームのすべての機能を有効にすることにより、ユーザにゲームの購入を促す水準まで、ユーザがゲームを高く評価し、精通することが可能になる。
【００７８】
これらの動作は、複数のサーバ及び／または実行プラットフォームを必要とする技術的動作を形成し、データベースへの迅速なアクセス及び遠隔に位置するユーザへのコンテンツの提示を可能にする。本明細書の様々な場所で述べたように、クラウドゲームは、任意の数の圧縮技術を利用する圧縮の動作を含むこともできる。圧縮技術は、標準的なエンコーダを使用し得て、クライアントデバイス上の標準デコーダがビデオゲームにアクセスしてプレイできるようにすることができる。ビデオゲーム及び配信の管理には、いくつかのデータセンター、方向サーバ、サービス品質テスター、低遅延データセンターへの指示及びリダイレクト、インスタントプレイデモの管理が含まれる。これらの動作及びタスクは、ゲームの遠隔実行及びクライアントデバイスへの配信のために、ストリーミング及び低遅延用に設計された専用コンピュータを利用することも理解されたい。
【００７９】
図１０は、本開示の一実施形態による、ビデオ及びゲームクリップの実行及び共有を管理するために使用され得るゲームクラウドシステム１１１０の簡略ブロック図を示す。一実施形態では、クラウドゲームシステム１１００は、データセンターの一部である複数のサーバによって定義され、接続されたユーザによって遠隔でプレイできるゲームまたはメディアを実行するように構成される。サーバは、ネットワーク化されたゲーム機である、汎用サーバ及び専用サーバによって定義することができる。ネットワークゲームコンソールの場合、データセンターは、特定のゲームを実行し、複数の接続されたユーザにサービスを提供するように構成し得る、ゲームコンソールの複数のラックによって定義することができる。場合によっては、特定のゲームコンソールが特定のゲームに予め割り当てられており、特定の数（例えば、１人または複数）のユーザを前記ゲームコンソールに割り当てることができる。次いで、サーバインフラストラクチャは、ゲームの実行及び遠隔ユーザデバイスに送信されたコンテンツの符号化（例えば、圧縮）を可能にするように設計される。遠隔ユーザデバイスは、データを復号化し、遠隔ユーザによって使用されるクライアントのディスプレイ上にインタラクティブコンテンツを表示する。同様に、コントローラ入力などのユーザ入力がサーバに返送され、ゲームのインタラクティビティを実行することが可能になる。広義には、クラウドゲームは、データセンターのリモートサーバ上でゲームの実行を処理し、オーディオ及びビデオ出力をリモートクライアントに提示することを含む。クライアントとサーバとの間の帯域幅が最小レベルのものがあり、遅延が３００ミリ秒未満である場合、リモートクライアントの画面に表示されるインタラクティビティは、コンテンツがクライアント上でローカルに実行されている場合と同様である。いくつかの実施形態では、ゲームクラウドシステム１１１０は、ホストマシン（または単にホスト）のハイパーバイザ上で実行する複数の仮想マシン（ＶＭ）を含み得て、１つまたは複数の仮想マシンは、ホストのハイパーバイザが利用可能なハードウェアリソースを利用して、ゲームプロセッサモジュールを実行するように構成される。
【００８０】
ゲームクライアントデバイスのいくつかの例には、パーソナルコンピュータ（ＰＣ）、テレビジョン、ホームシアターＰＣ、汎用コンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレット、またはビデオゲームを実行するためにインターネットを介してゲームサーバと対話することができる任意の他のタイプのコンピューティングデバイスがある。このように、ゲームサーバは、ホスト上で実行され、ネットワーク１１２０を介して遠隔アクセスされる仮想マシンを含む、クラウドで利用可能な任意のタイプのサーバコンピューティングデバイスであり得る。
【００８１】
いくつかの構成では、ユーザがクラウドゲームシステム１１１０にログインすると、ユーザがクラウドゲームネットワークにアクセスしているクライアントデバイスのタイプを指定するオプションがユーザに提示され得る。一実施形態では、ユーザがクライアントデバイスに対応するものを選択し得る、一連のクライアントデバイスオプションが提示される。同様に、ビデオゲームをプレイするために使用するコントローラデバイスのタイプを指定するオプションもユーザに提示され得る。一実施形態では、一連のコントローラオプションをユーザに提示することができ、ユーザはコントローラハードウェアに対応するコントローラタイプを指定することを選択し得る。
【００８２】
他の実施形態では、クラウドゲームシステム１１１０は、クライアントデバイスタイプ及び／またはコントローラデバイスタイプを自動的に検出するように構成することができる。例えば、ログイン時に、クライアントデバイスは、（例えば、ゲームサーバからの要求に応答して）それ自体を識別するゲームサーバならびに接続されたコントローラデバイスに情報を送信し得る。この情報に基づいて、ゲームクラウドシステム１１１０内のゲームサーバは、ユーザのクライアントデバイス及びコントローラデバイスに最適化されたゲーム体験を提供するために、適切なビデオゲーム出力設定（例えば、圧縮、解像度、アスペクト比など）及び入力パラメータ設定を決定し得る。一実施形態では、ルックアップテーブルを採用して、検出されたクライアントデバイス及び検出されたコントローラデバイスに基づいてビデオゲーム設定及び入力パラメータ設定を決定する。これらの設定及び入力パラメータは、予め定義されたセットアップパラメータを生成するために使用される。設定パラメータにより、ビデオゲームをプレイするためのコントロールを定義するために、情報がクライアントデバイスで提供される。設定パラメータに加えて、他のユーザとのソーシャルインタラクションを可能にするために、クライアントデバイスでソーシャルメディアインターフェースも提供され得る。
【００８３】
さらに図１０を参照すると、様々な例示的なモジュール及びそれらの相互作用が示されている。例えば、ソーシャルメディアプロバイダ１１４０、ユーザデバイス１１００、及びゲームクラウドシステム１１１０は、インターネット１１２０を介して接続される。１つのユーザデバイス１００が示されているが、実際には、ＧＣＳ１１１０及びソーシャルメディアプロバイダ１１４０によって提供されるサービスにアクセスするために、より多くのユーザデバイスがインターネット１１２０に接続され得ることを理解されたい。
【００８４】
一実施形態では、ゲームクラウドシステム１１１０は、記録されたゲームプレイ、例えば、先行プレイビデオのデモの実行及び共有の管理に関連する様々なデータを受信及び処理する複数のモジュールを含む。一実施形態では、ゲームクラウドシステム１１１０の異なるモジュールは、ゲームサーバに利用可能なデータを使用して、ゲームサーバ上で実行する１つまたは複数の実行エンジンを含み得る。一部のシステムにはこれらのモジュールが多かれ少なかれあり得るため、この例は、オンラインゲームを可能にするように構成されている、さらに多くの実施態様に限定されていると見なすべきではないことを理解されたい。
【００８５】
例えば、いくつかの実行エンジンを使用して、異なるゲーム及び管理タスクを実行し得る。いくつかの例示的なエンジンは、限定しないが、ゲーム実行エンジン１１７０、ゲームコードマッパ１１７１、記録エンジン１１７２、デモストリーミングプロセッサ１１７３、メトリックアキュムレータ１１７４、ユーザプロセッサ１１７５、及びタイトルインデックスエンジン１１７６を含み得る。
【００８６】
ゲームクラウドシステム１１１０はさらに、様々なデータ及び／または処理されたデータを格納するための複数のデータストレージシステムを含み得る。図示されるように、限定しないが、データストアは、ゲーム状態ストア１１６０、ゲームコードストア１１６１、記録ゲームストア１１６２、ソーシャルネットワークデータストア１１６３、デモ及び概要ビデオデータストア１１６４、ゲームタイトルストア１１６５、ゲームネットワークユーザストア１１６７を含み得る。ゲームセッションマネージャ１１８５は、ゲーム実行エンジン及びデータストア、ならびにソーシャルコネクションマネージャ１１９５と対話するように構成し得る。ゲームセッションマネージャ１１８５は、例えば、ユーザアクセスロジック１１８０を介して、様々なユーザへのアクセスを許可及び／または制御するようにも構成される。
【００８７】
一実施形態では、ユーザＵ０は、特定の画面１１３２を有する、ユーザデバイス１１００を介してゲームクラウドシステム１１１０にアクセスし得る。ユーザによって提供される入力は、コントローラ、キーボード、タッチスクリーン、または任意の他の入力を介して入力することができる。入力１１３６は、インターネット１１２０を介してゲームクラウドシステム１１１０に通信される。一実施形態では、入力１１３６は圧縮され、ゲームクラウドシステム１１１０に転送され、ネットワークインターフェース１１９０によって受信され得るデータのパケットで通信することができる。一実施形態では、ネットワークインターフェース１１９０は、ゲームクラウドシステム１１１０の特定のサーバ、特定のゲームコンソール、またはデータセンター内の様々なサーバに関連付けられ得る。次いで、入力１１３６は、ゲームロジックの処理、オーディオ及びビデオパケット１１３５の返送を提供するゲームセッションマネージャ１１８５に渡される。オーディオ及びビデオパケットは、符号化（例えば、圧縮）され、クライアントデバイス１１００に転送され、ここで、クライアントデバイスのデコーダが復号化し、データを画面１１３２に戻して提示する。
【００８８】
いくつかの実施形態では、システムはハイブリッドシステムとして動作することができ、ソーシャルリレーションシップは、サードパーティのソーシャルメディアプロバイダからのソーシャルグラフデータ１１４５を使用して（アプリケーションプログラミングインターフェース（ＡＰＩ）アクセスなどを介して）管理される。さらに他の実施形態では、ゲームクラウドシステム１１１０は、ゲームクラウドシステム１１１０のユーザアカウントを有するユーザのリストと、特定のゲームをプレイするか、または互いに対話する友人を識別する関係とを含むことができる、それ自体のソーシャルネットワークデータを管理することができる。
【００８９】
一実施形態では、ユーザ、例えば、ユーザＵ０は、ユーザアカウントを作成し、作成されたユーザアカウントをゲームクラウドシステム１１１０に登録し得る。ユーザアカウントがゲームクラウドシステム１１１０に登録された後、ゲームクラウドシステム１１１０は、この登録ユーザアカウントにユーザＩＤを提供し、登録ユーザアカウントに関連付けられたユーザプロファイルにユーザＩＤを保存し得る。一実施形態では、ユーザアカウントに関連付けられたユーザプロファイルは、ゲームネットワークユーザストア１１６７内のユーザデータベースに保存し得る。
【００９０】
ログイン後、ユーザは、ゲームセッションマネージャ１１８５を介してゲームクラウドシステム１１１０によって提供されるサービスにアクセスすることができる。例えば、ゲームセッションマネージャ１１８５は、ユーザプロセッサ１１７５が、このユーザに関連するユーザプロファイルにユーザログイン情報を記録または更新し得るように、ユーザプロセッサ１１７５にユーザログイン情報を通知し得る。ユーザプロセッサ１１７５はまた、タイトルインデックスエンジン１１７６と通信して、ユーザアカウントに関連付けられたゲームタイトルを識別し得る。ユーザアカウントに関連付けられたゲームタイトルは、以前にユーザによって購入され、以前にユーザによってプレイされ得て、及び／またはゲームプロバイダによって識別され、利用可能にされた無料ゲームタイトルであり得る。一実施形態では、ユーザアカウントに関連付けられたゲームタイトルはまた、ユーザの以前のゲーム選択に基づいて、ユーザの関心によって定義されたジャンルに関連付けられたゲームタイトルを含み得る。さらに、ユーザプロセッサ１１７５は、過去のプレイデータ、特定のゲームで達成されたレベル、蓄積されたポイント、進行中のゲームの状態、獲得されたトロフィー、獲得されたクレジットなどを含むユーザデータを識別し得る。
【００９１】
ゲームセッションマネージャ１１８５は、ユーザが以前のゲームプレイ停止点からゲームプレイを再開できるように、もしあれば、（選択したゲームの）ユーザがプレイした最後のセッションの保存されたゲーム状態を取得するためにゲーム状態ストア１１６１にアクセスする。再開点または開始点が識別されると、ゲームセッションマネージャ１１８５は、ゲームコードストア１１６１に格納されている選択したゲームタイトルのゲームコードを実行するようにゲーム実行エンジン１１７０に通知し得る。ゲームセッションが開始された後、ゲームセッションマネージャ１１８５は、ネットワークインターフェース１１９０を介して、ゲームビデオフレーム（すなわち、ストリーミングビデオデータ）をユーザデバイス、例えば、ユーザデバイス１１００に渡し得る。
【００９２】
ゲームプレイ中、ゲームセッションマネージャ１１８５は、ゲーム実行エンジン１１７０、及び記録エンジン１１７２と通信して、ゲームプレイのプロセスとして、ゲームプレイまたはゲームプレイセッションの記録（例えば、ビデオ）を生成または保存し得る。一実施形態では、ゲームプレイのビデオ録画は、ゲームプレイ中に提供及び／またはキャプチャされた他のゲーム関連メタデータを含むことができる。この追加のデータは、ゲームをプレイしているユーザのビデオを含むことができる。例えば、ゲームをプレイしているユーザのこのビデオを使用して、デモストリーミングプロセッサ１１７３によって処理することができる、先行プレイビデオを生成し得る。
【００９３】
所与のビデオゲームは、特定のプラットフォーム及び特定の関連するコントローラデバイスのために開発され得ることを理解されたい。しかし、このようなゲームが、本明細書で提示されるようなゲームクラウドシステムを介して利用可能にされる場合、ユーザは、異なるコントローラデバイスを使用してビデオゲームにアクセスし得る。例えば、ゲームはゲームコンソール及びそれに関連するコントローラ用に開発されているが、ユーザはキーボード及びマウスを利用して、パーソナルコンピュータからクラウドベースのバージョンのゲームにアクセスすることができる。そのようなシナリオでは、入力パラメータ構成により、ユーザの利用可能なコントローラデバイス（この場合はキーボード及びマウス）によって生成することができる入力から、ビデオゲームの実行の条件を満たしている入力へのマッピングを定義することができる。
【００９４】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介してクラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイス内に統合され、検出されたタッチスクリーン入力／ジェスチャによって入力が提供される。そのようなデバイスの場合、入力パラメータ構成は、ビデオゲームのゲーム入力に対応する特定のタッチスクリーン入力を定義し得る。例えば、ボタン、方向パッド、またはその他の種類の入力要素が、ビデオゲームの実行中に、表示またはオーバーレイされ、ユーザがゲーム入力を生成するためにタッチすることができるタッチスクリーン上の位置を示す。特定の方向のスワイプまたは特定のタッチ動作などのジェスチャも、ゲーム入力として検出され得る。一実施形態では、タッチスクリーン上のコントロールの操作にユーザが慣れるために、例えば、ビデオゲームのゲームプレイを開始する前に、ゲームプレイのためにタッチスクリーンを介して入力を提供する方法を示すチュートリアルをユーザに提供することができる。
【００９５】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスの接続ポイントとして機能する。すなわち、コントローラデバイスは、クライアントデバイスとの無線または有線接続を介して通信し、コントローラデバイスからクライアントデバイスに入力を転送する。クライアントデバイスは、これらの入力を処理し、ネットワークを介して（例えば、ルータなどのローカルネットワークデバイスを介してアクセスされる）入力データをクラウドゲームサーバに転送し得る。しかし、他の実施形態では、コントローラは、それ自体をネットワークデバイスとすることができ、クライアントデバイスを介して最初にそのような入力を通信する必要がなく、入力をネットワークを介してクラウドゲームサーバに直接通信する能力を有する。例えば、コントローラは、クラウドゲームサーバにデータを送信し、クラウドゲームサーバからデータを受信するために、ローカルネットワークデバイス（前述のルータなど）に接続し得る。したがって、クラアントデバイスがクラウドベースのビデオゲームからビデオ出力を受信し、それをローカルディスプレイ上にレンダリングすることが依然として要求される一方、コントローラが、クライアントデバイスをバイパスして、ネットワークを介してクラウドゲームサーバに直接入力を送信できるようにすることで、入力待ち時間を短縮できる。
【００９６】
一実施形態では、ネットワークコントローラ及びクライアントデバイスは、特定のタイプの入力をコントローラからクラウドゲームサーバへ直接送信し、及び他のタイプの入力をクライアントデバイスを介して送信するように構成することができる。例えば、検出がコントローラ自体とは別の追加のハードウェアまたは処理に依存しない入力は、クライアントデバイスをバイパスして、ネットワークを介してコントローラからクラウドゲームサーバに直接送信することができる。そのような入力は、ボタン入力、ジョイスティック入力、埋め込み動き検出入力（例えば、加速度計、磁力計、ジャイロスコープ）などを含み得る。ただし、追加のハードウェアを利用する入力またはクライアントデバイスによる処理を必要とする入力は、クライアントデバイスによってクラウドゲームサーバに送信することができる。これらには、クラウドゲームサーバに送信する前に、クライアントデバイスによって処理され得るゲーム環境からキャプチャされたビデオまたはオーディオが含まれ得る。さらに、コントローラの動き検出ハードウェアからの入力は、キャプチャされたビデオと共にクライアントデバイスによって処理され、コントローラの位置及び動きを検出し、その後、クライアントデバイスによってクラウドゲームサーバに通信され得る。様々な実施形態によるコントローラデバイスは、クライアントデバイスから、または直接クラウドゲームサーバからデータ（例えば、フィードバックデータ）を受信し得ることも理解されたい。
【００９７】
本明細書に記載の実施形態は、任意のタイプのクライアントデバイス上で実行され得ることを理解されたい。いくつかの実施形態では、クライアントデバイスはヘッドマウントディスプレイ（ＨＭＤ）である。
【００９８】
図１１は、本発明の一実施形態による、ヘッドマウントディスプレイ１０２の構成要素を示す図である。ヘッドマウントディスプレイ１０２は、プログラム命令を実行するためのプロセッサ１３００を含む。メモリ１３０２は、ストレージ目的のために提供され、揮発性メモリ及び不揮発性メモリの両方を含み得る。ユーザが見ることができる視覚インターフェースを提供するディスプレイ１３０４が含まれる。ヘッドマウントディスプレイ１０２の電源としてバッテリ１３０６が設けられている。動き検出モジュール１３０８は、磁力計１３１０、加速度計１３１２、及びジャイロスコープ１３１４など、様々な種類の動き検知ハードウェアのいずれかを含み得る。
【００９９】
加速度計は、加速度及び重力誘発反力を測定するためのデバイスである。加速度の大きさと方向を異なる方向で検出するために、単一軸モデル及び複数軸モデルを利用できる。加速度計は、傾き、振動、及び衝撃を検知するために使用される。一実施形態では、３つの加速度計１３１２が重力の方向を提供するために使用され、２つの角度（世界空間ピッチ及び世界空間回転）の絶対的基準を与える。
【０１００】
磁力計は、ヘッドマウントディスプレイの近くの磁場の強さと方向を測定する。一実施形態では、ヘッドマウントディスプレイ内に３つの磁力計１３１０が使用され、世界空間ヨー角の絶対的基準を保証する。一実施形態では、磁力計は地磁界にまたがるように設計されており、地磁界は±８０マイクロテスラである。磁力計は金属の影響を受け、実際のヨーで単調なヨー測定値を提供する。磁場は、環境内の金属のために歪み得て、ヨー測定値に歪みが生じる。必要に応じて、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を使用して較正することができる。一実施形態では、加速度計１３１２が磁力計１３１０と共に使用され、ヘッドマウントディスプレイ１０２の傾斜角及び方位角を取得する。
【０１０１】
ジャイロスコープは、角運動量の原理に基づいて、方向を測定または維持するためのデバイスである。一実施形態では、３つのジャイロスコープ１３１４は、慣性感知に基づいて、各軸（ｘ、ｙ及びｚ）を横切る動きに関する情報を提供する。ジャイロスコープは、高速回転を検出するのに役立つ。しかし、ジャイロスコープは、絶対的基準の存在なしでは、時間の経過と共にドリフトする可能性がある。これにより、ジャイロスコープは定期的にリセットする必要がある。これは、オブジェクトの視覚的追跡、加速度計、磁力計などに基づく位置／方向測定などの、他の利用可能な情報を使用して行うことができる。
【０１０２】
カメラ１３１６は、現実の環境の画像及び画像ストリームをキャプチャするために設けられている。ヘッドマウントディスプレイ１０２には、後ろ向き（ユーザがヘッドマウントディスプレイのディスプレイを見ているときにユーザから遠ざかる方向に向けられた）カメラ及び、前向き（ユーザがヘッドマウントディスプレイ１０２のディスプレイを見ているときにユーザの方に向けられた）カメラを含む、複数のカメラが含まれ得る。さらに、現実の環境のオブジェクトの深さ情報を検出するために、ヘッドマウントディスプレイ１０２に深度カメラ１３１８を含め得る。
【０１０３】
ヘッドマウントディスプレイ１０２は、オーディオ出力を提供するためのスピーカ１３２０を含む。また、マイクロホン１３２２は、周囲環境からの音、ユーザが話す言葉など、現実の環境からオーディオをキャプチャするために含まれ得る。ヘッドマウントディスプレイ１０２は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール１３２４を含む。一実施形態では、触覚フィードバックモジュール１３２４は、触覚フィードバックをユーザに提供するために、ヘッドマウントディスプレイ１０２の動き及び／または振動を引き起こすことができる。
【０１０４】
ＬＥＤ１３２６は、ヘッドマウントディスプレイ１０２の状態の視覚的インジケータとして提供される。例えば、ＬＥＤは、バッテリレベル、電源オンなどを示し得る。ヘッドマウントディスプレイ１０２が、情報をメモリカードから読み出し、メモリカードに書き込むことを可能にするために、カードリーダ１３２８が設けられている。ＵＳＢインターフェース１３３０は、周辺デバイスの接続、または他の携帯デバイス、コンピュータなどの他のデバイスとの接続を可能にするためのインターフェースの一例として含まれる。ヘッドマウントディスプレイ１０２の様々な実施形態では、ヘッドマウントディスプレイ１０２の接続性をより広げることを可能にするために、様々なタイプのインターフェースのいずれかを含め得る。
【０１０５】
無線ネットワーク技術を介して、インターネットへの接続を可能にするために、ＷｉＦｉ（登録商標）モジュール１３３２が含まれる。また、ヘッドマウントディスプレイ１０２は、他のデバイスへの無線接続を可能にするブルートゥース（登録商標）モジュール１３３４を含む。通信リンク１３３６はまた、他のデバイスへの接続のために含まれ得る。一実施形態では、通信リンク１３３６は、無線通信のために赤外線伝送を利用する。他の実施形態では、通信リンク１３３６は、他のデバイスとの通信のための様々な無線または有線伝送プロトコルのいずれかを利用し得る。
【０１０６】
入力ボタン／センサ１３３８は、ユーザのための入力インターフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなど、様々なタイプの入力インターフェースのいずれかが含まれ得る。超音波通信モジュール１３４０は、超音波技術を介して他のデバイスとの通信を容易にするために、ヘッドマウントディスプレイ１０２に含まれ得る。
【０１０７】
バイオセンサ１３４２は、ユーザからの生理学的データの検出を可能にするために含まれる。一実施形態では、バイオセンサ１３４２は、ユーザの皮膚を通してユーザの生体電気信号を検出するための１つまたは複数のドライ電極を含む。
【０１０８】
ヘッドマウントディスプレイ１０２の前述の構成要素は、単にヘッドマウントディスプレイ１０２に含まれ得る例示的な構成要素として説明されている。本発明の様々な実施形態では、ヘッドマウントディスプレイ１０２は、前述の様々な構成要素のうちのいくつかを含んでも含まなくてもよい。ヘッドマウントディスプレイ１０２の実施形態は、本明細書に記載される本発明の態様を容易にするために、本明細書に記載されていないが、当技術分野で周知である他の構成要素をさらに含み得る。
【０１０９】
当業者であれば、本発明の様々な実施形態では、上述のハンドヘルドデバイスを、ディスプレイ上に表示されたインタラクティブアプリケーションと共に利用して、様々なインタラクティブ機能を提供することができることを理解されるであろう。本明細書に記載された例示的な実施形態は、例示としてのみ提供されるもので、限定するものではない。
【０１１０】
図１２は、本発明の様々な実施形態による、ゲームシステム１４００のブロック図である。ゲームシステム１４００は、ネットワーク１４１５を介して１つまたは複数のクライアント１４１０にビデオストリームを提供するように構成される。ゲームシステム１４００は、通常、ビデオサーバシステム１４２０及びオプションのゲームサーバ１４２５を含む。ビデオサーバシステム１４２０は、最小限のサービス品質で１つまたは複数のクライアント１４１０にビデオストリームを提供するように構成される。例えば、ビデオサーバシステム１４２０は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、クライアント１４１０に、この変更を直ちに反映する更新されたビデオストリームを、最小遅延時間で提供し得る。ビデオサーバシステム１４２０は、まだ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成し得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されたビデオフレームを含み得る。典型的なフレームレートは、毎秒３０フレーム、毎秒６０フレーム、及び毎秒１４２０フレームである。ただし、本発明の代替の実施形態には、より高いまたはより低いフレームレートが含まれる。
【０１１１】
本明細書で、１４１０Ａ、１４１０Ｂなどと個々に呼ばれるクライアント１４１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話機、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス、及び／または同様のものを含み得る。典型的には、クライアント１４１０は、符号化されたビデオストリームを受信し、ビデオストリームを復号化し、得られたビデオをユーザ、例えば、ゲームのプレーヤーに提示するように構成される。符号化されたビデオストリームを受信し、及び／またはビデオストリームを復号化する処理は、通常、個々のビデオフレームをクライアントの受信バッファに格納することを含む。ビデオストリームは、クライアント１４１０に統合されたディスプレイ上またはモニタもしくはテレビジョンなどの別個のデバイス上でユーザに提示され得る。クライアント１４１０は、オプションで、複数のゲームプレーヤーをサポートするように構成される。例えば、ゲームコンソールは、２人、３人、４人またはそれ以上の同時プレーヤーをサポートするように構成され得る。これらのプレーヤーの各人は、別個のビデオストリームを受信し得るか、または単一のビデオストリームは、各プレーヤーに対して特別に生成された、例えば、各プレーヤーの視点に基づいて生成されたフレームの領域を含み得る。クライアント１４１０は、オプションで地理的に分散される。ゲームシステム１４００に含まれるクライアントの数は、１つもしくは２つから数千、数万、またはそれ以上に大きく変動し得る。本明細書で使用する「ゲームプレーヤー」という用語は、ゲームをプレイする人を指すために使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするために使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、協働してゲーム体験をユーザに提供する複数のコンピューティングデバイスを指し得る。例えば、ゲームコンソール及びＨＭＤは、ビデオサーバシステム１４２０と協働して、ＨＭＤを介して見られるゲームを提供し得る。一実施形態では、ゲームコンソールは、ビデオサーバシステム１４２０からビデオストリームを受信し、ゲームコンソールは、ビデオストリームまたはビデオストリームを更新して、レンダリングのためにＨＭＤに転送する。
【０１１２】
クライアント１４１０は、ネットワーク１４１５を介してビデオストリームを受信するように構成されている。ネットワーク１４１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む任意のタイプの通信ネットワークとし得る。典型的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信される。
【０１１３】
クライアント１４１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信能力、及び入力デバイスを含むパーソナルコンピュータである。復号化ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に格納されたソフトウェアを含み得る。ビデオストリームを復号化（及び符号化）するためのシステムは、当該技術分野において周知であり、使用される特定の符号化方式に応じて異なる。
【０１１４】
クライアント１４１０は、必須ではないが、受信ビデオを修正するように構成されたシステムをさらに含み得る。例えば、クライアントは、さらなるレンダリングを実行する、１つのビデオ画像をもう１つのビデオ画像に重ねる、ビデオ画像をトリミングする、及び／または同様のことができるように構成し得る。例えば、クライアント１４１０は、Ｉフレーム、Ｐフレーム、及びＢフレームなどの様々なタイプのビデオフレームを受信し、これらのフレームをユーザに表示するための画像に処理するように構成し得る。いくつかの実施形態では、クライアント１４１０のメンバーは、ビデオストリームに対するさらなるレンダリング、シェーディング、三次元への変換、または同様の動作を実行するように構成される。クライアント１４１０のメンバーは、オプションで、複数のオーディオまたはビデオストリームを受信するように構成される。クライアント１４１０の入力デバイスは、例えば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、動き及び／または位置検知デバイス、マウス、タッチスクリーン、神経インターフェース、カメラ、まだ開発されていない入力デバイス、及び／または同様のものを含み得る。
【０１１５】
クライアント１４１０によって受信されたビデオストリーム（及びオプションでオーディオストリーム）は、ビデオサーバシステム１４２０によって生成され、提供される。本明細書の他の箇所でさらに説明するように、このビデオストリームはビデオフレームを含む（及びオーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に貢献する（例えば、それらは適切なデータ構造内に画素情報を含む）ように構成される。本明細書で使用する「ビデオフレーム」という用語は、ユーザに表示される画像に貢献する、例えば、効果を与えるように構成された情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」にも適用することができる。
【０１１６】
クライアント１４１０は、典型的には、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変化させるように、またはそれ以外の場合はゲームプレイに影響を与えるように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができる、及び／またはクライアント１４１０上で実行する命令を計算することによって自動的に生成し得る。受信したゲームコマンドは、クライアント１４１０からネットワーク１４１５を介してビデオサーバシステム１４２０及び／またはゲームサーバ１４２５に通信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム１４２０を介してゲームサーバ１４２５に通信される。いくつかの実施形態では、ゲームコマンドの別個のコピーが、クライアント１４１０からゲームサーバ１４２５及びビデオサーバシステム１４２０に通信される。ゲームコマンドの通信は、オプションでコマンドのＩＤに依存する。ゲームコマンドは、オーディオまたはビデオストリームをクライアント１４１０Ａに提供するために使用されたものとは異なる経路または通信チャンネルを介して、クライアント１４１０Ａからオプションで通信される。
【０１１７】
ゲームサーバ１４２５は、オプションで、ビデオサーバシステム１４２０とは異なるエンティティによって運営される。例えば、ゲームサーバ１４２５は、マルチプレーヤーゲームのパブリッシャーによって運営され得る。この例では、ビデオサーバシステム１４２０は、オプションで、ゲームサーバ１４２５によってクライアントとして見なされ、オプションで、ゲームサーバ１４２５の観点から、従来技術のゲームエンジンを実行する従来技術のクライアントに見えるように構成される。ビデオサーバシステム１４２０とゲームサーバ１４２５との間の通信は、オプションで、ネットワーク１４１５を介して行われる。このように、ゲームサーバ１４２５は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチプレーヤーゲームサーバとすることができ、そのうちの１つがゲームサーバシステム１４２０である。ビデオサーバシステム１４２０は、同時にゲームサーバ１４２５の複数のインスタンスと通信するように構成し得る。例えば、ビデオサーバシステム１４２０は、異なるユーザに複数の異なるビデオゲームを提供するように構成することができる。これらの異なるビデオゲームの各々は、異なるゲームサーバ１４２５によってサポートされ得て、及び／または異なるエンティティによってパブリッシュされ得る。いくつかの実施形態では、ビデオサーバシステム１４２０の地理的に分散された複数のインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム１４２０のこれらのインスタンスの各々は、ゲームサーバ１４２５の同じインスタンスと通信し得る。ビデオサーバシステム１４２０と１つまたは複数のゲームサーバ１４２５との間の通信は、オプションで、専用の通信チャンネルを介して行われる。例えば、ビデオサーバシステム１４２０は、これらの２つのシステム間の通信に専用の高帯域幅チャンネルを介してゲームサーバ１４２５に接続され得る。
【０１１８】
ビデオサーバシステム１４２０は、少なくともビデオソース１４３０、Ｉ／Ｏデバイス１４４５、プロセッサ１４５０、及び非一時的ストレージ１４５５を含む。ビデオサーバシステム１４２０は、１つのコンピューティングデバイスを含み得るか、または複数のコンピューティングデバイスに分散され得る。これらのコンピューティングデバイスは、オプションで、ローカルエリアネットワークなどの通信システムを介して接続される。
【０１１９】
ビデオソース１４３０は、例えば、ストリーミングビデオまたは動画を形成する一連のビデオフレームなどのビデオストリームを提供するように構成される。いくつかの実施形態では、ビデオソース１４３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤーからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態には、ゲーム環境内のオブジェクトの位置と、典型的には視点を含む。ゲーム状態はまた、オブジェクトの特性、画像、色及び／またはテクスチャを含み得る。
【０１２０】
ゲーム状態は、典型的には、ゲームルールと、移動、回転、攻撃、フォーカス設定、対話、使用及び／または同様のものなどのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、オプションで、ゲームサーバ１４２５内に配置される。ゲームサーバ１４２５は、地理的に分散したクライアントを使用する複数のプレーヤーから受信したゲームコマンドに基づいて、ゲームの状態のコピーを維持し得る。これらの場合、ゲーム状態は、ゲームサーバ１４２５によってビデオソース１４３０に提供され、ゲーム状態のコピーが格納され、レンダリングが実行される。ゲームサーバ１４２５は、ネットワーク１４１５を介してクライアント１４１０から直接ゲームコマンドを受信し得て、及び／またはビデオサーバシステム１４２０を介してゲームコマンドを受信し得る。
【０１２１】
ビデオソース１４３０は、典型的には、レンダリングロジック、例えば、ハードウェア、ファームウェア、及び／またはストレージ１４５５などのコンピュータ可読媒体に格納されたソフトウェアなどを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全部または一部は、オプションで、グラフィックス処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、典型的には、ゲーム状態及び視点に基づいて、オブジェクト間の三次元空間関係を決定するように、及び／または適切なテクスチャなどを適用するように構成された処理ステージを含む。レンダリングロジックは生のビデオを生成し、通常、クライアント１４１０と通信する前に符号化される。例えば、生のビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、リアルビデオ、ｍｐ３などに従って符号化し得る。符号化処理は、リモートデバイス上のデコーダに提供するために、オプションでパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。任意の他のフレームサイズを使用し得るが、典型的なフレームサイズには、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８がある。フレームレートは、１秒あたりのビデオフレームの数である。ビデオストリームは、異なるタイプのビデオフレームを含み得る。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは、ディスプレイデバイス上のすべてのマクロブロック／画素をリフレッシュするための情報を含み、Ｐフレームは、そのサブセットをリフレッシュするための情報を含む。Ｐフレームは、典型的には、Ｉフレームよりもデータサイズが小さい。本明細書で使用する「フレームサイズ」という用語は、フレーム内の画素数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するために必要なバイト数を指すために使用される。
【０１２２】
代替の実施形態では、ビデオソース１４３０は、カメラなどのビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するために使用し得る。得られたビデオストリームは、オプションで、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像の両方を含む。ビデオソース１４３０はまた、ビデオストリームに含めるために以前に記録されたビデオを格納するように構成されたストレージデバイスを含み得る。ビデオソース１４３０はまた、オブジェクト、例えば、人物の動きまたは位置を検出するように構成された動きまたは位置検知デバイス、ならびに検出された動き及び／または位置に基づいてゲーム状態を決定、またはビデオを生成するように構成されたロジックを含み得る。
【０１２３】
ビデオソース１４３０は、オプションで、他のビデオに配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン指示、ゲームプレーヤーへのメッセージ、他のゲームプレーヤーの画像、他のゲームプレーヤーのビデオフィード（例えば、ウェブカメラビデオ）を含み得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント１４１０Ａの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び／または同様のものを含み得る。オーバーレイの一例では、プレーヤーの音声がオーディオストリーム上に重ねられる。ビデオソース１４３０は、オプションで、１つまたは複数のオーディオソースをさらに含む。
【０１２４】
ビデオサーバシステム１４２０が、複数のプレーヤーからの入力に基づいてゲーム状態を維持するように構成されている実施形態では、各プレーヤーは、視界の位置及び方向を含む異なる視点を有し得る。ビデオソース１４３０は、オプションで、各プレーヤーに対して、彼らの視点に基づいて別個のビデオストリームを提供するように構成される。さらに、ビデオソース１４３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント１４１０のそれぞれに提供するように構成し得る。ビデオソース１４３０は、オプションで、三次元ビデオを提供するように構成される。
【０１２５】
Ｉ／Ｏデバイス１４４５は、ビデオサーバシステム１４２０が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアントＩＤ、プレーヤーＩＤ、ゲームコマンド、セキュリティ情報、オーディオ、及び／または同様のものなどの情報を送信及び／または受信するように構成される。Ｉ／Ｏデバイス１４４５は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス１４４５は、ゲームサーバ１４２５、ネットワーク１４１５、及び／またはクライアント１４１０と通信するように構成される。
【０１２６】
プロセッサ１４５０は、本明細書で論じられるビデオサーバシステム１４２０の様々なコンポーネント内に含まれるロジック、例えば、ソフトウェアを実行するように構成される。例えば、プロセッサ１４５０は、ビデオソース１４３０、ゲームサーバ１４２５、及び／またはクライアントクォリファイア１４６０の機能を実行するためにソフトウェア命令でプログラムされ得る。ビデオサーバシステム１４２０は、オプションで、プロセッサ１４５０の複数のインスタンスを含む。プロセッサ１４５０はまた、ビデオサーバシステム１４２０によって受信されたコマンドを実行するため、または本明細書で論じられるゲームシステム１４００の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされ得る。プロセッサ１４５０は、１つまたは複数のハードウェアデバイスを含み得る。プロセッサ１４５０は、電子プロセッサである。
【０１２７】
ストレージデバイス１４５５は、非一時的なアナログ及び／またはデジタルストレージデバイスを含む。例えば、ストレージ１４５５は、ビデオフレームを格納するように構成されたアナログストレージデバイスを含み得る。ストレージ１４５５は、コンピュータ可読デジタルストレージ、例えば、ハードドライブ、光学ドライブ、またはソリッドステートストレージを含み得る。ストレージ１４１５は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または同様のものを格納するように（例えば、適切なデータ構造またはファイルシステムによって）構成される。ストレージ１４５５は、オプションで、複数のデバイス間に分散される。いくつかの実施形態では、ストレージ１４５５は、本明細書の他の箇所で論じられるビデオソース１４３０のソフトウェアコンポーネントを格納するように構成される。これらのコンポーネントは、必要なときに供給する準備ができる形式で格納し得る。
【０１２８】
ビデオサーバシステム１４２０は、オプションで、クライアントクォリファイア１４６０をさらに含む。クライアントクォリファイア１４６０は、クライアント１４１０Ａまたは１４１０Ｂなどのクライアントの能力を遠隔で判定するように構成される。これらの能力は、クライアント１４１０Ａ自体の能力と、クライアント１４１０Ａとビデオサーバシステム１４２０との間の１つまたは複数の通信チャンネルの能力の両方を含むことができる。例えば、クライアントクォリファイア１４６０は、ネットワーク１４１５を介して通信チャンネルをテストするように構成し得る。
【０１２９】
クライアントクォリファイア１４６０は、クライアント１４１０Ａの能力を手動または自動で判定（例えば、発見）することができる。手動判定は、クライアント１４１０Ａのユーザと通信し、ユーザに能力を提供するように依頼することを含む。例えば、いくつかの実施形態では、クライアントクォリファイア１４６０は、クライアント１４１０Ａのブラウザ内に画像、テキスト、及び／または同様のものを表示するように構成される。一実施形態では、クライアント１４１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント１４１０Ａは、ブラウザを有するゲームコンソールであり、ＨＭＤ上に表示され得る。表示されたオブジェクトは、ユーザが、クライアント１４１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダタイプ、ネットワーク接続のタイプ、ディスプレイ解像度などの情報を入力することを要求する。ユーザによって入力された情報は、クライアントクォリファイア１４６０に返信される。
【０１３０】
自動判定は、例えば、クライアント１４１０Ａ上のエージェントの実行によって、及び／またはクライアント１４１０Ａへのテストビデオの送信によって行い得る。エージェントは、ウェブページに埋め込まれるか、またはアドオンとしてインストールされるＪａｖａ（登録商標）スクリプトなどのコンピューティング命令を含み得る。エージェントは、オプションで、クライアントクォリファイア１４６０によって提供される。様々な実施形態では、エージェントは、クライアント１４１０Ａの処理能力、クライアント１４１０Ａの符号化及び表示能力、クライアント１４１０Ａとビデオサーバシステム１４２０との間の通信チャンネルの遅延時間の信頼性及び帯域幅、クライアント１４１０Ａのディスプレイタイプ、クライアント１４１０Ａ上に存在するファイアウォール、クライアント１４１０Ａのハードウェア、クライアント１４１０Ａ上で実行するソフトウェア、クライアント１４１０Ａ内のレジストリエントリ、及び／または同様のものを検出することができる。
【０１３１】
クライアントクォリファイア１４６０は、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアントクォリファイア１４６０は、オプションで、ビデオサーバシステム１４２０の１つまたは複数の他の要素とは別個のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア１４６０は、クライアント１４１０とビデオサーバシステム１４２０の複数のインスタンスとの間の通信チャンネルの特性を判定するように構成される。これらの実施形態では、クライアントクォリファイアによって検出された情報を使用して、ビデオサーバシステム１４２０のどのインスタンスが、クライアント１４１０の１つにストリーミングビデオを配信するのに、最適なのかを判定することができる。
【０１３２】
本明細書で定義される様々な実施形態は、本明細書に開示された様々な特徴を使用して特定の実施態様に組み合わされるか、または組み立てられ得ることを理解されたい。したがって、提供される例は、より多くの実施態様を定義するために、様々な要素を組み合わせることによって可能な様々な実施態様に対する限定ではなく、単にいくつかの可能な例である。いくつかの例では、開示または同等の実施態様の精神から逸脱することなく、いくつかの実施態様がより少ない要素を含み得る。
【０１３３】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施し得る。本発明は、有線ベースまたは無線ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。
【０１３４】
上記の実施形態を念頭に置いて、本発明は、コンピュータシステムに格納されたデータを含む様々なコンピュータ実装の動作を使用することができることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作である。本発明の一部を形成する本明細書に記載されているいずれの動作も有用な機械動作である。本発明はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構成することができ、または装置は、コンピュータに格納されたコンピュータプログラムによって選択的に起動または構成された汎用コンピュータとすることができる。特に、本明細書の教示に従って書かれたコンピュータプログラムと共に様々な汎用機械を使用することができ、または必要とされる動作を実行するより特殊化した装置を構築する方がより便利であり得る。
【０１３５】
本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、このデータは、その後コンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
【０１３６】
方法動作は特定の順序で説明されているが、他のハウスキーピング操作が動作の間に実行され得る、または、動作が、わずかに異なる時間に生じるように調整され得る、もしくはオーバーレイ動作の処理が所望の方法で実行される限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散され得ることを理解されたい。
【０１３７】
前述の発明は、理解を明確にするために幾分詳細に説明してきたが、添付の特許請求の範囲内である種の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本発明は本明細書に記載された詳細に限定されるものではなく、添付の特許請求の範囲及び均等物の範囲内で修正され得る。
【図１Ａ】
0006646319.tif 000002
【図１Ｂ】
0006646319.tif 000003
【図２】
0006646319.tif 000004
【図３】
0006646319.tif 000005
【図４Ａ】
0006646319.tif 000006
【図４Ｂ】
0006646319.tif 000007
【図５】
0006646319.tif 000008
【図６】
0006646319.tif 000009
【図７】
0006646319.tif 000010
【図８】
0006646319.tif 000011
【図９】
0006646319.tif 000012
【図１０】
0006646319.tif 000013
【図１１】
0006646319.tif 000014
【図１２】
0006646319.tif 000015