以下の詳細な説明が例証の目的のために多くの具体的な詳細を含有するが、当業者は、以下の詳細に対する多くの変形例及び改変が本開示の範囲内にあることを理解するであろう。したがって、下記に説明される本開示の態様は、この説明に続く「特許請求の範囲」に対して、一般概念のいかなる損失を生じさせることなく、また制限を課すことなく記述される。
一般的に、本開示の様々な実施形態は、ユーザのゲームプレイをサポートするように構成されている場所ベースコンパニオンインターフェースを実装するシステム及び方法を説明し、コンパニオンインターフェースは、ゲームプレイに基づくがゲームアプリケーション内に含有されない、クエスト及び/またはチャレンジを生成するように構成されている。本開示の実施形態は、場所ベースコンパニオンアプリケーションを経由して、ゲームアプリケーションの追加使用を提供する。コンパニオンインターフェースは、ユーザのゲームプレイにおけるキャラクタの場所に基づいて生成される状況関連情報(例えば、メッセージング、補助情報等)を含む。当該情報は、1人以上のユーザのゲームプレイ中に、定期的に集められたスナップショットに基づくものであり、スナップショットは、対応するユーザのゲームプレイに関するメタデータ及び/または情報を含有し、スナップショットに対応するゲームアプリケーションのジャンプ点において、対応するゲームアプリケーションの別のインスタンスを有効にするように構成可能である。加えて、コンパニオンインターフェースは、ユーザが、ユーザのゲームプレイ(例えば、スナップショットに含有される情報)に基づいて、クエスト及び/またはチャレンジを生成することを可能にするように構成可能である。これらのクエスト及び/またはチャレンジは、対応するゲームアプリケーションの開発後に新たに作成され、それによって、新しいユーザがゲームアプリケーションをプレイするにつれ、広範囲のクエスト及び/またはチャレンジの継続的生成を可能にする。さらに、クエスト及び/またはチャレンジは、対応するゲームアプリケーションをプレイする状況の範囲内で、またはその状況の範囲外で任意のユーザによってプレイされることができる。クエスト及び/またはチャレンジは、コンパニオンインターフェース、メッセージング、電子メール等による招待状等によって、ユーザのフレンドに標的化され得る。クエスト及び/またはチャレンジは、また、ゲームサーバ、ウェブサイト、招待状、メッセージング等によって一般公衆に利用可能にされ得る。
場所ベース情報は、ユーザのゲームプレイ中に定期的に集められるスナップショットのために生成されるパラメータを定義することを含む。特に、スナップショットは、ユーザのゲームプレイに関するメタデータ及び/または情報を含有し、スナップショットに対応するゲームアプリケーションのジャンプ点において、対応するゲームアプリケーションの別のインスタンスを有効にするように構成可能である。状況関連情報は、また、同じゲームアプリケーションをプレイする他のユーザのそのゲームプレイ中に集められた情報を含む。当該方式では、ユーザは、ユーザの現在の進捗(例えば、ゲーム世界における場所等)に基づいて、状況関連情報を受信することが可能である。例えば、状況関連情報は、ユーザのゲームプレイにおける補助を提供することができ、当該情報は、ゲームプレイ場所、過去のゲームプレイ、及び予期されるゲームプレイに基づくものであり得る。さらに、コンパニオンインターフェースは、ユーザからのメッセージを作成するために使用されることができる。
様々な実施形態の上記の一般的理解によって、実施形態の例示的詳細は、ここで、様々な図面を参照して説明されるであろう。
本明細書の全体を通して、「ビデオゲーム」または「ゲームアプリケーション」への言及は、入力コマンドの実行によって指示される任意の種類の対話型アプリケーション表すことを意味する。例証の目的だけのために、対話型アプリケーションは、ゲーム用アプリケーション、ワード処理、ビデオ処理、ビデオゲーム処理等を含む。さらに、用語「ビデオゲーム」及び「ゲームアプリケーション」は交換可能である。
図1Aは、本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのゲームプレイをサポートするように構成された場所ベースコンパニオンインターフェースを実装するために使用され、及びゲームアプリケーションのゲームプレイに基づいてクエスト及び/またはチャレンジを生成するために使用されるシステム10を示し、ゲームアプリケーションはローカルコンピューティングデバイス上でまたはクラウドゲームネットワークを通して実行することができる。コンパニオンインターフェースは、ゲームアプリケーションをプレイする他のユーザのために、相互作用のためにコンテンツ(例えば、クエスト及び/またはチャレンジ等)を作成するために使用され得る。クエスト及び/またはチャレンジは、スナップショット情報等のゲームアプリケーションをプレイするユーザのゲームプレイ中にキャプチャされる場所ベース情報に基づいて作成される。
図1Aに示されるように、ゲームアプリケーションは、ユーザ5のクライアントデバイス100において、ローカルに実行し得る、または、クラウドゲームネットワークまたはゲームクラウドシステムのバックエンドゲームサーバ205で動作するバックエンドゲーム実行エンジン211において実行し得る。ゲーム実行エンジン211は、ゲームサーバ205の多くのゲームプロセッサ201の1つの内部で動作し得る。いずれの場合でも、クラウドゲームネットワークは、ゲームアプリケーションをプレイする1人以上のユーザのゲームプレイをサポートする場所ベースコンパニオンインターフェースを提供するように構成されている。さらに、ゲームアプリケーションは、シングルプレイヤーモードまたは複数プレイヤーモードで実行し得、本発明の実施形態は、両方の動作モードに対する複数プレイヤーに関する強化(例えば、補助、通信等)を提供する。
いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で起動する複数の仮想マシン(VM)を含み得、1つ以上の仮想マシンは、シングルプレイヤーまたは複数プレイヤービデオゲームをサポートするホストのハイパーバイザに利用可能であるハードウェアリソースを利用してゲームプロセッサモジュール201を実行するように構成されている。他の実施形態では、クラウドゲームネットワークは、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成され、各ローカルコンピューティングデバイスは、シングルプレイヤーまたは複数プレイヤービデオゲーム等のようなビデオゲームのインスタンスを実行し得る。例えば、複数プレイヤーモードでは、ビデオゲームがローカルで実行している間、クラウドゲームネットワークは、同時に、情報(例えば、ゲーム状態データ)を各ローカルコンピューティングデバイスから受信し、1つ以上のローカルコンピューティングデバイスの全体に対して、適宜、当該情報を分散し、これにより、各ユーザは、複数プレイヤービデオゲームのゲーム環境において、(例えば、ビデオゲームの対応するキャラクタによって)他のユーザと対話することが可能である。当該方式によって、クラウドゲームネットワークは、複数プレイヤーゲーム環境内で、各ユーザに対して複数のゲームプレイを調整し組み合わせる。
示されるように、システム10は、複数の対話型ゲームアプリケーションへのアクセスを提供するゲームプロセッサモジュール201を実行するゲームサーバ205を含む。前に説明されたように、ゲームサーバ205は、クラウド内で利用可能である任意の種類のサーバコンピューティングデバイスであり得、1つ以上のホスト上で実行する1つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ205は、ゲームプロセッサ201をサポートする仮想マシンを管理し得る。ゲームサーバ205は、また、追加サービス及び/またはコンテンツをユーザ5に提供するように構成されている。さらに下記に説明されるように、例えば、ゲームサーバは、状況関連情報を生成する及び/または受信する目的のために、ユーザ5に表示可能なコンパニオンインターフェースを提供するように構成可能である。
クライアントデバイス100は、インターネット等のネットワーク150を通して、ゲームアプリケーションへのアクセスを要求するように、ならびにゲームサーバ205によって実行され及びユーザ5に関連付けられる表示デバイス12に送達されるビデオゲームまたはゲームアプリケーションのインスタンスをレンダリングするように構成されている。例えば、ユーザ5は、ゲームプロセッサ201上で実行するゲームアプリケーションのインスタンスで、クライアントデバイス100を経由して対話し得る。前に説明されたように、クライアントデバイス100は、また、ゲームアプリケーションのローカルで実行するように構成されているゲーム実行エンジン111を含み得る。クライアントデバイス100は、ゲームコントローラ6、タブレットコンピュータ11、キーボード等の様々な種類の入力デバイスからの入力と、ビデオカメラ、マウス、タッチパッド等によってキャプチャされるジェスチャとを受信し得る。クライアントデバイス100は、ネットワーク150を通してゲームサーバ205に接続することが可能である、少なくともメモリ及びプロセッサモジュールを有する任意の種類のコンピューティングデバイスであり得る。クライアントデバイス100のいくつかの例は、パーソナルコンピュータ(PC)、ゲームコンソール、ホームシアターデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話機、またはゲームサーバ205と相互作用しビデオゲームのインスタンスを実行することができる任意の他の種類のコンピューティングデバイスを含む。
クライアントデバイス100は、レンダリング画像を受信するように、及びレンダリング画像をディスプレイ12上に表示するように構成されている。例えば、クラウドベースサービスによって、レンダリング画像は、ユーザ5に関連して、ゲームサーバ205のゲーム実行エンジン211上で実行するゲームアプリケーションのインスタンスによって送達され得る。別の例では、ローカルゲーム処理によって、レンダリング画像は、ローカルゲーム実行エンジン111によって送達され得る。いずれの場合でも、クライアントデバイス100は、ゲームプレイを駆動するために使用される入力コマンド等によって、ユーザ5のゲームプレイに関連して、実行エンジン211または111と相互作用するように構成されている。
さらに、クライアントデバイス100は、ゲームアプリケーションをプレイするとき、ゲームサーバ205と相互作用し、ユーザ5のゲームプレイのスナップショットをキャプチャ及び記憶するように構成され、各スナップショットは、ゲームプレイに関連する情報(例えば、ゲーム状態等)を含む。例えば、スナップショットは、ユーザ5のゲームプレイのゲーム世界内のキャラクタの場所に対応する場所ベース情報を含み得る。さらに、スナップショットは、対応するユーザが、スナップショットのキャプチャに対応するゲームアプリケーションのジャンプ点において、保存されたゲームプレイにジャンプすることを可能にする。したがって、ユーザ5は、選択済スナップショットに対応するジャンプ点において自身の保存されたゲームプレイにジャンプすることができ、別のユーザは、ユーザ5のゲームプレイにジャンプし得る、または、ユーザ5は、選択済スナップショットに対応するジャンプ点において、別のユーザの保存されたゲームプレイにジャンプし得る。さらに、クライアントデバイス100は、ゲームサーバ205と相互作用し、場所ベースコンパニオンインターフェースをコンパニオンインターフェース発生器213から表示するように構成され、コンパニオンインターフェースは、補助情報、メッセージング、対話式クエスト及びチャレンジ等の状況に基づく関連のあるコンテンツを受信及び/または生成するように構成されている。特に、ゲームプレイに関する場所ベース情報等のユーザ5のゲームプレイ中にキャプチャされるスナップショットに含有される情報は、他のユーザのゲームプレイ中にキャプチャされる情報とともに、状況に基づく関連のあるコンテンツを生成するために使用される。
より具体的には、ゲームサーバ205のゲームプロセッサ201は、ゲームアプリケーションをプレイするとき、ユーザ5のゲームプレイのスナップショットを生成及び/または受信するように構成されている。例えば、スナップショットは、クライアントデバイス100上のローカルゲーム実行エンジン111によって生成され、ネットワーク150を通してゲームプロセッサ201に出力及び送達され得る。加えて、スナップショットは、エンジン211上で実行するゲームアプリケーションのインスタンス等によって、ゲームプロセッサ201内のゲーム実行エンジン211によって生成され得る。加えて、他の仮想マシンに関連付けられるゲームサーバ205の他のゲームプロセッサは、他のユーザのゲームプレイに関連付けられるゲームアプリケーションのインスタンスを実行するように、及びそれらのゲームプレイ中にスナップショットをキャプチャするように構成され、この追加情報は、状況関連情報を作成するために使用され得る。
スナップショット発生器212は、ユーザ5のゲームプレイから生成される複数のスナップショットをキャプチャするように構成されている。各スナップショットは、対応するスナップショットに関連付けられるビデオゲームの地点から始まるビデオゲームのインスタンスの実行を可能にする情報を提供する。スナップショットは、ユーザ5によるゲームアプリケーションのゲームプレイ中に自動的に生成される。ある実施形態では、スナップショットのそれぞれの一部は、独立して構成されるまたはデータストア140の下に構成される関連データベース内に記憶される。別の実施形態では、スナップショットは、ユーザ5による命令によって手動で生成され得る。当該方式では、対応するスナップショットの選択によって、任意のユーザは、対応するスナップショットに関連付けられるゲームアプリケーションの地点におけるユーザ5のゲームプレイにジャンプし得る。加えて、複数のゲームアプリケーションをプレイする他のユーザのゲームプレイのスナップショットもキャプチャされ得る。したがって、ゲームプロセッサ201は、対応するスナップショットに基づいて任意のユーザの保存されたゲームプレイへのジャンプを可能にするために、データベース140内の情報にアクセスするように構成されている。すなわち、要求を行うユーザは、スナップショットを生成及び保存した元のユーザのゲームプレイのゲームキャラクタを使用して選択済スナップショットに対応するジャンプ点において、ビデオゲームをプレイすることを始めることが可能である。
スナップショットの作成及び使用の十分な考察は、「Method And System For Saving A Snapshot of Game Play And Used To Begin Later Execution Of The Game Play By Any User As Executed On A Game Cloud System」と題された、米国出願第15/411,421号の中で提供され、これは、その全体を参照することによって事前に組み込まれていたものである。スナップショットの作成及び実施の簡潔な説明は下記に続く。
特に、各スナップショットは、スナップショットに対応するゲームアプリケーションの地点において始まるゲームアプリケーションのインスタンスの実行を可能にするメタデータ及び/または情報を含む。例えば、ユーザ5のゲームプレイでは、スナップショットは、レベルの中間等において、ゲームアプリケーションの進行中における特定の地点で生成され得る。関連スナップショット情報は、データベース140の1つ以上のデータベース内に記憶される。ポインタは、特定のスナップショットに対応する各データベース内の情報を関連付けるために使用されることができる。当該方式では、ユーザ5のゲームプレイを経験することを望む別のユーザまたは自身の事前のゲームプレイを再度経験することを望む同じユーザ5は、着目するゲームアプリケーションの地点に対応するスナップショットを選択し得る。
各スナップショットのメタデータ及び情報は、ユーザのゲームプレイに関連する追加情報を提供する、及び/またはそれを提供するために分析され得る。例えば、スナップショットは、ユーザ(例えば、ユーザのキャラクタ)がゲームアプリケーション内に存在していた場所、ユーザがゲームアプリケーションにいる場所、ユーザが行ったこと、ユーザが蓄積しているアセット及びスキル、ならびにユーザがゲームアプリケーション内で進む予定の場所を判定することに役立ち得る。この追加情報は、ユーザのゲームプレイに基づくクエスト及び/またはチャレンジを生成するために使用され得、クエスト及び/またはチャレンジは、ゲームアプリケーション内に含有されない。例えば、ユーザは、ユーザのゲームプレイ(例えば、最小限の武器を使用してボスに攻撃する)を模倣するクエスト及び/またはチャレンジを作成するアセット及び達成パラメータ(例えば、否定的及び肯定的)を定義し得る。ユーザは、同じ制約(例えば、最小限の武器)で、クエストを試み及びクリアする(例えば、ボスを攻撃する)ように、他のユーザを挑発し得る。
スナップショットは、当該地点でレンダリングされるシーンのスナップショット画像を含む。スナップショット画像は、スナップショット画像データベース146内に記憶される。タイムラインにおけるサムネイルの形態に存在するスナップショット画像は、ビデオゲームによるユーザによって進行中における対応する地点において、ユーザのゲームプレイのビューを提供する。
より具体的には、スナップショットは、また、当該地点における、ゲームの状態を定義するゲーム状態データを含む。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイ等を含み得る。当該方式では、ゲーム状態データは、ビデオゲームの対応する地において存在していたゲーム環境の生成を可能にする。ゲーム状態データは、また、CPU、GPU、メモリ、登録値、プログラムカウンタ値、プログラム可能DMA状態、DMAに関するバッファデータ、オーディオチップ状態、CD−ROM状態等の状態など、ゲームプレイをレンダリングするために使用されるすべてのデバイスの状態を含み得る。ゲーム状態データは、また、どの実行可能コードの一部が当該地点からビデオゲームを実行するためにロードされる必要があるかを識別し得る。ゲーム状態データの全てがキャプチャ及び記憶される必要はなく、スナップショットに対応する地点でゲームを開始するために、実行可能コードに関して十分であるデータのみが必要である。ゲーム状態データは、ゲーム状態データベース145内に記憶される。
スナップショットは、また、ユーザ保存データを含む。概して、ユーザ保存データは、対応するユーザに関するビデオゲームを個人用にする情報を含む。これは、ユーザのキャラクタに関連付けられる情報を含み、これにより、ビデオゲームは、ユーザに一意であり得るキャラクタ(例えば、姿、見た目、衣類、武器等)でレンダリングされる。当該方式では、ユーザ保存データは、対応するユーザのゲームプレイのキャラクタの生成を可能にし、当該キャラクタは、スナップショットに関連付けられるビデオゲームの地点に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイするときユーザ5によって選択されたゲーム困難度、ゲームレベル、キャラクタ属性、キャラクタの場所、残された寿命の数値、利用可能である寿命に関する可能である合計数、鎧、戦利品、時間カウンタ値、及び他のアセット情報等を含み得る。ユーザ保存データはまた、例えば、ユーザ5を識別するユーザプロフィールデータを含み得る。ユーザ保存データは、データベース141内に記憶される。
加えて、スナップショットは、また、人工知能(AI)モジュール215によって生成されるランダムシードデータを含む。ランダムシードデータは、元のゲームコードの一部ではない場合があるが、ゲーム環境をユーザによりリアルに及び/または魅力的に見えさせるように、オーバーレイ内に追加され得る。すなわち、ランダムシードデータは、ユーザのゲームプレイにおける対応する地点に存在するゲーム環境に関する追加特徴を提供する。例えば、AIキャラクタは、オーバーレイ内に、ランダムに生成及び提供され得る。AIキャラクタは、ゲームをプレイする任意のユーザ関連付けられないが、ユーザの経験を向上させるゲーム環境に置かれる。例証として、これらのAIキャラクタは、街のシーンで街路をランダムに歩き得る。加えて、他のオブジェクトは、オーバーレイ内で生成され、及びその内部に存在し得る。例えば、背景の雲及び空間を通るように飛んでいる鳥は、オーバーレイ内に生成され、及びその内部に存在し得る。ランダムシードデータは、ランダムシードデータベース143内に記憶される。
当該方式では、ユーザ5のゲームプレイを経験することを望む別のユーザは、着目するビデオゲームの地点に対応するスナップショットを選択し得る。例えば、ユーザによるタイムラインに存在するスナップショット画像またはノードグラフ内のノードの選択は、ゲームプロセッサ201のジャンプ実行エンジン216が、対応するスナップショットにアクセスすること、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化すること、及びスナップショットに対応するビデオゲームのある地点で始まるビデオゲームを実行することを可能にする。当該方式では、スナップショットは、スナップショットに対応する地点において、要求を行うユーザが、ユーザ5のゲームプレイにジャンプすることを可能にする。加えて、ユーザ5は、他のユーザのゲームプレイにアクセスし得る、またはさらに、対応するスナップショットを使用して同じまたは他のゲームアプリケーションの自身の事前のゲームプレイにアクセスし得る。特に、ユーザ5によるスナップショットの選択(例えば、タイムラインに、またはメッセージ等による)は、対応するスナップショットが対応するゲームアプリケーションでキャプチャされた地点において、対応するゲームアプリケーションを実行することを始めるために、実行エンジン216が、スナップショット(例えば、メタデータ及び/または情報)を様々なデータベースから(例えば、データベース140から)集めることを可能にする。
ゲームプロセッサ201は、ゲームアプリケーションをプレイするときにユーザ5のゲームプレイをサポートするコンパニオンインターフェースを生成するように構成されている場所ベースコンパニオンアプリケーション発生器213を含む。発生器213は、ユーザ5のゲームプレイに基づく、ユーザ5に送達される、またはユーザ5から受信される状況関連情報(例えば、補助情報、メッセージ等)を作成するために使用されることができ、状況関連情報は、場所ベース情報(例えば、スナップショット)を使用して作成される。状況関連情報は、また、ゲームアプリケーションをプレイする他のユーザのゲームプレイから集められた情報に基づくものであり得る。例えば、実施形態では、場所ベース情報は、クラウドソーシング環境において同じゲームアプリケーションをプレイする複数のユーザの現在の及び/または過去のゲームプレイに基づくものであり得る、それにより、当該情報は、複数のゲームプレイの観察及び/または分析によって判定され得る。当該方式では、クラウドソースコンテンツは、ゲームプレイ中に発見され得、コンテンツは、同じゲームアプリケーションをプレイする他のプレイヤーに有用であり得る、または、向上したユーザ経験をこれらの他のプレイヤーに提供し得る。状況関連情報は、ユーザのフレンドから生成され得る。ユーザは、孤立してゲームアプリケーションをプレイし(例えば、単独でプレイする)、第1のユーザのゲームプレイを進める際に役立つコンパニオンインターフェースを経由して情報を受信し得る、または向上されたユーザ経験を提供するために、これらを行い得る。ユーザは、(例えば、単独で、または複数プレイヤーモードで)同時にゲームアプリケーションをプレイする全てのフレンドのグループと一緒にプレイし得、当該情報は、フレンド間でリアルタイムの対話をもたらす。
特に、発生器213は、特定の状況(例えば、キャラクタの現在の場所、ゲーム状態情報等)に関して(例えば、スナップショットに基づいて)特定のゲームアプリケーションのユーザ5のゲームプレイの進捗を判定するように構成可能であり、ユーザ5のゲームプレイを表示するデバイスから分離したデバイス11上で表示可能なコンパニオンインターフェースに送達され得る状況関連情報を判定するように構成可能である。例えば、状況関連情報は、ゲームアプリケーションによる処理において補助を提供する情報を提供し得る。状況関連情報は、どのエリアにキャラクタが訪れるか、どのタスクがゲームプレイを進めるために要求されるか、どのアセットがゲームプレイを進めるために必要とされるか(例えば、要求タスクを達成するために必要となるアセット)等を含む、ユーザ5のゲームプレイで向かうであろう場所を予測するように構成されている予測エンジン214によって提供される情報を考慮したものであり得る。
コンパニオンインターフェースはまた、他のユーザによる対話のために、ユーザ5によって状況に基づく関連のあるコンテンツを作成するために使用され得る。例えば、コンパニオンインターフェースに示される場所ベース情報(例えば、レーダマッピング、中間地点等)は、クエスト/チャレンジエンジン219によって実施されるように、対話型コンテンツ(例えば、クエスト、チャレンジ、メッセージ等)を作成する作成を容易にし得る。すなわち、ユーザ5は、ユーザのゲームプレイに基づくがゲームアプリケーション内に含有されない対話型コンテンツ(例えば、クエスト及び/またはチャレンジ)を作成するために、場所ベース情報(例えば、スナップショット)を使用し得る。特に、クエスト及び/またはチャレンジは、ユーザのゲームプレイ中にキャプチャされるスナップショット内に含有される情報に基づいて、アセットパラメータ及び達成パラメータによって定義され得る。これらのクエスト及び/またはチャレンジの範囲は、ゲームアプリケーションをプレイする現在のユーザ及び後のユーザの創造力だけによって制限されている。加えて、エンジン219は、これらのクエスト/チャレンジとの相互作用を容易にする。
示されるように、コンパニオンインターフェースは、表示及び相互作用のためのデバイス11(例えば、タブレット)に送達され、デバイス11は、ユーザ5との対話のためのゲームアプリケーションの実行を実行及び/またはサポートするように構成されているクライアントデバイス100から分離し得る。例えば、第1の通信チャネルは、ゲームサーバ205とクライアントデバイス100との間に確立し得、分離している第2の通信チャネルは、ゲームサーバ205とデバイス11との間に確立し得る。
図1Bは、本開示の一実施形態による、対応するユーザに対してローカルで実行する1つ以上のゲームアプリケーションをプレイする1人以上のユーザに、ゲーム制御を提供し、及びバックエンドサーバサポート(例えば、ゲームサーバ205を経由してアクセス可能である)が対応するユーザのゲームプレイをサポートする場所ベースコンパニオンインターフェースを実装し得る、システム106Bを示す。一実施形態では、システム106Bは、対応するユーザのゲームプレイをサポートする場所ベースコンパニオンインターフェースを実装する、図1Aのシステム10及び図2のシステム200と連動して動く。ここで図面を参照すると、同様の参照番号は同一の部分または対応する部分を指定する。
図1Bに示されるように、複数のユーザ115(例えば、ユーザ5A、ユーザ5B・・・ユーザ5N)は、複数のゲームアプリケーションをプレイし、ゲームアプリケーションのそれぞれは、対応するユーザの対応するクライアントデバイス100(例えば、ゲームコンソール)上で、ローカルで実行される。加えて、前に説明されたように、複数のユーザ115のそれぞれは、デバイス11へのアクセス権を有し、前に紹介されたような、デバイス11は、対応するゲームアプリケーションをプレイする、対応するユーザに状況関連情報を提供するデバイス11上に表示するためのコンパニオンインターフェースを受信及び/または生成するように構成されている。コンパニオンインターフェースは、クエスト/チャレンジを生成するために使用され得、また、クエスト/チャレンジエンジン219等によって、クエスト/チャレンジをプレイするために、またはクエスト/チャレンジとの相互作用をサポートするために使用され得る。クライアントデバイス100のそれぞれは、対応するゲームアプリケーションのローカルでの実行が行われる点で、同様に構成され得る。例えば、ユーザ5Aは、対応するクライアントデバイス100上の第1のゲームアプリケーションをプレイし得、第1のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン111によって実行される。第1のゲームアプリケーションを実施するゲームロジック126A(例えば、実行可能コード)は、対応するクライアントデバイス100上に記憶され、第1のゲームアプリケーションを実行するために使用される。例証の目的のために、ゲームロジックは、携帯用媒体(例えば、フラッシュドライブ、コンパクトディスク等)によって、またはネットワークを経由して(例えば、ゲームプロバイダからインターネット150を経由してダウンロードされる)、対応するクライアントデバイス100に送達され得る。加えて、ユーザ5Bは、対応するクライアントデバイス100上の第2のゲームアプリケーションをプレイし、第2のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン111によって実行される。第2のゲームアプリケーションは、ユーザ5Aのために実行する第1のゲームアプリケーションに同一であり得る、または異なるゲームアプリケーションであり得る。第2のゲームアプリケーションを実施するゲームロジック126B(例えば、実行可能コード)は、前に説明されたような対応するクライアントデバイス100上に記憶され、第2のゲームアプリケーションを実行するために使用される。さらに、ユーザ115Nは、対応するクライアントデバイス100上のN番目のゲームアプリケーションをプレイし、N番目のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン111によって実行される。N番目のゲームアプリケーションは、第1または第2のゲームアプリケーションに同一であり得る、または完全に異なるゲームアプリケーションであり得る。第3のゲームアプリケーションを実施するゲームロジック126N(例えば、実行可能コード)は、前に説明されたような対応するクライアントデバイス100上に記憶され、N番目のゲームアプリケーションを実行するために使用される。
前に説明されたように、クライアントデバイス100は、ゲームコントローラ、タブレットコンピュータ、キーボード等の様々な種類の入力デバイスからの入力と、ビデオカメラ、マウス、タッチパッド等によってキャプチャされるジェスチャとを受信し得る。クライアントデバイス100は、ネットワーク150を通してゲームサーバ205に接続することが可能である、少なくともメモリ及びプロセッサモジュールを有する任意の種類のコンピューティングデバイスであり得る。また、対応するユーザのクライアントデバイス100は、ローカルまたはリモートで実行するゲームタイトル実行エンジン111によって実行されるレンダリング画像を生成するように、及びレンダリング画像をディスプレイ上に表示するように構成されている。例えば、レンダリング画像は、ユーザ5Aのクライアントデバイス100上で実行する第1のゲームアプリケーションのインスタンスと関連付けられ得る。例えば、対応するクライアントデバイス100は、ゲームプレイを駆動するために使用される入力コマンド等によって、対応するユーザのゲームプレイを実施するために、ローカルまたはリモートで実行されるような対応するゲームアプリケーションのインスタンスと相互作用するように構成されている。
一実施形態では、クライアントデバイス100は、ゲームアプリケーションをプレイする対応するユーザのためのシングルプレイヤーモードで動作している。バックエンドサーバは、本開示の一実施形態による、下記に説明されるような対応するユーザのゲームプレイをサポートする場所ベースコンパニオンインターフェースサービスを提供し得る。
別の実施形態では、複数のクライアントデバイス100は、それぞれが特有のゲームアプリケーションをプレイする対応するユーザのための複数プレイヤーモードで動作している。その場合、ゲームサーバを介するバックエンドサーバサポートは、複数プレイヤー処理エンジン119等によって複数プレイヤー機能を提供し得る。特に、複数プレイヤー処理エンジン119は、特定のゲームアプリケーション用の複数プレイヤーゲームセッションを制御するように構成されている。例えば、複数プレイヤー処理エンジン130は、複数プレイヤーセッションコントローラ116と通信し、複数プレイヤーセッションコントローラ116は、複数プレイヤーゲームセッションに参加するユーザ及び/またはプレイヤーのそれぞれとの通信セッションを確立及び維持するように構成されている。当該方式では、当該セッションにおけるユーザは、複数プレイヤーセッションコントローラ116によって制御されるように、相互に通信することができる。
さらに、複数プレイヤー処理エンジン119は、各ユーザの対応するゲーム環境内でのユーザ間の対話を可能にするために、複数プレイヤーロジック118と通信する。特に、状態共有モジュール117は、複数プレイヤーゲームセッションにおけるユーザのそれぞれに関する状態を管理するように構成されている。例えば、状態データは、特定地点における、対応するユーザに関する(ゲームアプリケーションの)ゲームプレイの状態を定義するゲーム状態データを含み得る。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイ等を含み得る。当該方式では、ゲーム状態データは、ゲームアプリケーションの対応する地点において存在するゲーム環境の生成を可能にする。ゲーム状態データは、また、CPU、GPU、メモリ、登録値、プログラムカウンタ値、プログラム可能DMA状態、DMAに関するバッファデータ、オーディオチップ状態、CD−ROM状態等の状態など、ゲームプレイをレンダリングするために使用されるすべてのデバイスの状態を含み得る。ゲーム状態データは、また、どの実行可能コードの一部が当該地点からビデオゲームを実行するためにロードされる必要があるかを識別し得る。ゲーム状態データは、図1C及び図2のデータベース140内に記憶され得、状態共有モジュール117によってアクセス可能である。
さらに、状態データは、対応するプレイヤーのためにビデオゲームを個人用にする情報を含むユーザ保存データを含み得る。これは、ユーザによってプレイされるキャラクタに関連付けられる情報を含み、これにより、ビデオゲームは、ユーザに一意であり得るキャラクタ(例えば、場所、姿、見た目、衣類、武器等)でレンダリングされる。当該方式では、ユーザ保存データは、対応するユーザのゲームプレイのキャラクタの生成を可能にし、当該キャラクタは、対応するユーザによって現在経験しているゲームアプリケーションの地点に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイするときユーザ115Aによって選択されたゲーム困難度、ゲームレベル、キャラクタ属性、キャラクタの場所、残された寿命の数値、利用可能である寿命に関する可能である合計数、鎧、戦利品、時間カウンタ値等を含み得る。ユーザ保存データはまた、例えば、対応するユーザ115Aを識別するユーザプロフィールデータを含み得る。ユーザ保存データは、データベース140内に記憶され得る。
当該方式では、状態共有データ117及び複数プレイヤーロジック118を使用する複数プレイヤー処理エンジン119は、オブジェクト及びキャラクタを、複数プレイヤーゲームセッションに参加するユーザのゲーム環境のそれぞれにオーバーレイ/挿入することが可能である。例えば、第1のユーザのキャラクタは、第2のユーザのゲーム環境にオーバーレイ/挿入される。これは、それらの各々のゲーム環境のそれぞれ(例えば、スクリーン上に表示されるようなもの)を介して、複数プレイヤーゲームセッションにおけるユーザ間の対話を可能にする。
加えて、ゲームサーバ205を介するバックエンドサーバサポートは、コンパニオンアプリケーション発生器213によって生成されるコンパニオンインターフェースを経由して提供された場所ベースコンパニオンアプリケーションサービスを提供し得る。前に紹介されたように、発生器213は、ユーザ5に送達される、またはユーザ5から受信される状況関連情報(例えば、補助情報、メッセージ等)を作成するように構成されている。当該情報は、特定のアプリケーションに関するユーザ5のゲームプレイに基づいて(例えば、スナップショットに提供された情報に基づいて)生成される。当該方式では、発生器213は、ユーザ5のゲームプレイの状況を判定し、(例えば、ユーザ5のゲームプレイを表示するデバイスから分離した)デバイス11上で表示可能なコンパニオンインターフェースに送達可能である状況関連情報を提供することが可能である。加えて、クエスト/チャレンジエンジン219は、ユーザのゲームプレイに基づくがゲームアプリケーション内に含有されない対話型コンテンツ(例えば、クエスト/チャレンジ)を作成するために、ユーザ5がゲームアプリケーションをプレイすることを可能にするように構成されている。特に、クエスト及び/またはチャレンジは、ユーザのゲームプレイ中にキャプチャされるスナップショット内に含有される情報に基づいて、アセットパラメータ及び達成パラメータによって定義され得る。加えて、エンジン219は、これらのクエスト/チャレンジとの相互作用を容易にする。例えば、コンパニオンインターフェースは、クエスト/チャレンジをプレイするための招待状(例えば、メッセージ、レーダマッピング内のマーカ等)を表示し得る。一実施形態では、クエスト/チャレンジは、直接、コンパニオンインターフェース内でプレイされ得る。別の実施形態では、クエスト/チャレンジは、(例えば、ジャンプゲームプレイを経由して)コンパニオンインターフェースの外側でプレイされるが、コンパニオンインターフェースは、クエスト/チャレンジをサポートする(例えば、クエスト/チャレンジによる進捗を示す)ように構成されている。
図1Cは、本開示の一実施形態による、クラウドゲームネットワークを通して実行されるようなゲームアプリケーションをプレイするユーザ115(例えば、ユーザ5L、5M・・・5Z)に、ゲーム制御を提供するシステム106Cを示す。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で起動する複数の仮想マシン(VM)を含むゲームクラウドシステム210であり得、1つ以上の仮想マシンは、ホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成されている。一実施形態では、システム106Cは、図1Aのシステム10及び/または図2のシステム200と連動して動き、対応するユーザのゲームプレイをサポートする場所ベースコンパニオンインターフェースを実装する。ここで図面を参照すると、同様の参照番号は同一の部分または対応する部分を指定する。
示されるように、ゲームクラウドシステム210は、複数の対話型ビデオゲームまたはゲームアプリケーションへのアクセスを提供するゲームサーバ205を含む。ゲームサーバ205は、クラウド内で利用可能である任意の種類のサーバコンピューティングデバイスであり得、1つ以上のホスト上で実行する1つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ205は、ユーザのゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサをサポートする仮想マシンを管理し得る。したがって、複数の仮想マシンに関連付けられるゲームサーバ205の複数のゲームプロセッサは、複数のユーザ115のゲームプレイに関連付けられるゲームアプリケーションの複数のインスタンスを実行するように構成されている。当該方式では、バックエンドサーバサポートは、複数のゲームアプリケーションのゲームプレイのメディア(例えば、ビデオ、音声等)を、複数の対応するユーザにストリーミングすることを提供する。
複数のユーザ115は、ネットワーク150を介してゲームクラウドシステム210にアクセスし、ユーザ(例えば、ユーザ5L、5M・・・5Z)は、対応するクライアントデバイス100’を介してネットワーク150にアクセスし、クライアントデバイス100’は、図1A−1Bのクライアントデバイス100(例えば、ゲーム実行エンジン111等を含む)と同様に構成され得る、またはコンピュータの機能を提供するバックエンドサーバ(例えば、ゲーム実行エンジン211を含む)とのインターフェースを提供するシンクライアントとして構成され得る。加えて、前に説明されたように、複数のユーザ115のそれぞれは、デバイス11へアクセス可能であり、前に紹介されたように、デバイス11は、状況関連情報を対応するゲームアプリケーションをプレイする対応するユーザに提供するデバイス11上に表示するためのコンパニオンインターフェースを受信及び/または生成するように構成されている。特に、対応するユーザ5Lのクライアントデバイス100’は、インターネット等のネットワーク150を通して、ゲームアプリケーションへのアクセスを要求するように、ならびにゲームサーバ205によって実行され及び対応するユーザ5Lに関連付けられる表示デバイスに送達されるゲームアプリケーション(例えば、ビデオゲーム)のインスタンスをレンダリングするように構成されている。例えば、ユーザ5Lは、ゲームサーバ205のゲームプロセッサ上で実行するゲームアプリケーションのインスタンスで、クライアントデバイス100’を経由して対話し得る。より具体的には、ゲームアプリケーションのインスタンスは、ゲームタイトル実行エンジン211によって実行される。ゲームアプリケーションを実装するゲームロジック(例えば、実行可能コード)は、前に説明されたようなデータストア140によって記憶され及びアクセス可能であり、ゲームアプリケーションを実行するために使用される。示されるように、ゲームタイトル処理エンジン211は、複数のゲームロジック177を使用して、複数のゲームアプリケーションをサポートすることが可能である。
前に説明されたように、クライアントデバイス100’は、ゲームコントローラ、タブレットコンピュータ、キーボード等の様々な種類の入力デバイスからの入力と、ビデオカメラ、マウス、タッチパッド等によってキャプチャされるジェスチャとを受信し得る。クライアントデバイス100’は、ネットワーク150を通してゲームサーバ205に接続することが可能である、少なくともメモリ及びプロセッサモジュールを有する任意の種類のコンピューティングデバイスであり得る。また、対応するユーザのクライアントデバイス100’は、ローカルまたはリモートで実行するゲームタイトル実行エンジン211によって実行されるレンダリング画像を生成するように、及びレンダリング画像をディスプレイ上に表示するように構成されている。例えば、レンダリング画像は、ユーザ5Lのクライアントデバイス100’上で実行する第1のゲームアプリケーションのインスタンスと関連付けられ得る。例えば、対応するクライアントデバイス100’は、ゲームプレイを駆動するために使用される入力コマンド等によって、対応するユーザのゲームプレイを実施するために、ローカルまたはリモートで実行されるような対応するゲームアプリケーションのインスタンスと相互作用するように構成されている。
別の実施形態では、前に説明されたような複数プレイヤー処理エンジン119は、ゲームアプリケーション用の複数プレイヤーゲームセッションを制御するために提供する。特に、複数プレイヤー処理エンジン119が複数プレイヤーゲームセッションを管理するとき、複数プレイヤーセッションコントローラ116は、複数プレイヤーゲームセッションのユーザ及び/またはプレイヤーのそれぞれとの通信セッションを確立及び維持するように構成されている。当該方式では、当該セッションにおけるユーザは、複数プレイヤーセッションコントローラ116によって制御されるように、相互に通信することができる。
さらに、複数プレイヤー処理エンジン119は、各ユーザの対応するゲーム環境内でのユーザ間の対話を可能にするために、複数プレイヤーロジック118と通信する。特に、状態共有モジュール117は、複数プレイヤーゲームセッションにおけるユーザのそれぞれに関する状態を管理するように構成されている。例えば、前に説明されたように、状態データは、特定地点における、対応するユーザ115Aに関する(ゲームアプリケーションの)ゲームプレイの状態を定義するゲーム状態データを含み得る。さらに、前に説明されたように、状態データは、対応するプレイヤーに関するビデオゲームを個人用にする情報を含むユーザ保存データを含み得る。例えば、状態データはユーザのキャラクタに関連付けられる情報を含み、これにより、ビデオゲームは、ユーザ(例えば、姿、見た目、衣類、武器等)に一意であり得るキャラクタでレンダリングされる。当該方式では、状態共有データ117及び複数プレイヤーロジック118を使用する複数プレイヤー処理エンジン119は、オブジェクト及びキャラクタを、複数プレイヤーゲームセッションに参加するユーザのゲーム環境のそれぞれにオーバーレイ/挿入することが可能である。これは、それらの各々のゲーム環境のそれぞれ(例えば、スクリーン上に表示されるようなもの)を介して、複数プレイヤーゲームセッションにおけるユーザ間の対話を可能にする。
加えて、ゲームサーバ205を介するバックエンドサーバサポートは、コンパニオンアプリケーション発生器213によって生成されるコンパニオンインターフェースを経由して提供された場所ベースコンパニオンアプリケーションサービスを提供し得る。前に紹介されたように、発生器213は、対応するユーザ(例えば、5L)に送達される、またはユーザから受信される状況関連情報(例えば、補助情報、メッセージ等)を作成するように構成されている。当該情報は、特定のアプリケーションに関するユーザのゲームプレイに基づいて(例えば、スナップショットに提供された情報に基づいて)生成される。当該方式では、発生器213は、対応するユーザのゲームプレイの状況を判定し、(例えば、ユーザ5Lのゲームプレイを表示するデバイスから分離した)デバイス11上で表示可能なコンパニオンインターフェースに送達可能である状況関連情報を提供することが可能である。加えて、前に紹介されたように、コンパニオンアプリケーション発生器213はクエスト/チャレンジエンジン219を含み、クエスト/チャレンジエンジン219は、ゲームアプリケーションをプレイするユーザ5が、ユーザのゲームプレイに基づくがゲームアプリケーション内に含有されないクエスト/チャレンジを作成することを可能にする。加えて、エンジン219は、これらのクエスト/チャレンジとの相互作用を容易にする。
図2は、本開示の一実施形態による、ゲームクラウドシステム(GCS)210に記憶されたゲームアプリケーションのアクセス及びプレイを可能にするためのシステム図200を示す。一般的に、ゲームクラウドシステムGCS210は、ネットワーク220を通して動作し複数のユーザをサポートする、クラウドコンピューティングシステムであり得る。加えて、GCS210は、複数のユーザのゲームアプリケーションのゲームプレイ中に生成されたスナップショットを保存するように構成され、スナップショットは、要求を行うユーザがスナップショットに対応するゲームアプリケーションのある地点で始めるために、ゲームアプリケーションのインスタンスを開始するために使用されることができる。例えば、スナップショット発生器212は、ゲームアプリケーションをプレイする1人以上のユーザのゲームプレイのスナップショットを生成及び/またはキャプチャするように構成されている。スナップショット発生器212は、ゲームサーバ205の外部または内部で実行し得る。加えて、スナップショットの使用によって、GCS210は、ユーザが、ゲームアプリケーションによってナビゲートし及びゲームアプリケーションの過去の及び後のシーンをプレビューすることを可能にする。さらに、スナップショットは、要求を行うユーザが対応するスナップショットによってビデオゲームの選択された地点にジャンプし、別のユーザのゲームプレイを経験することを可能にする。特に、システム200は、GCS210、1つ以上のソーシャルメディアプロバイダ240、及びユーザデバイス230を含み、それらの全ては、ネットワーク220(例えば、インターネット)を介して接続される。1つ以上のユーザデバイスは、ネットワーク220に接続され、GCS210及びソーシャルメディアプロバイダ240によって提供されるサービスにアクセスし得る。
一実施形態では、ゲームクラウドシステム210は、ゲームサーバ205と、ビデオ記録装置271と、タグプロセッサ273と、ユーザプロフィールマネージャを含むアカウントマネージャ274と、ゲーム選択エンジン275と、ゲームセッションマネージャ285と、ユーザアクセスロジック280と、ネットワークインターフェース290と、ソーシャルメディアマネージャ295とを含む。GCS210は、さらに、一般的に、データストア140内に記憶され得るゲーム状態ストア、ランダムシードストア、ユーザ保存データストア、スナップショットストア等の複数のゲームストレージシステムを含み得る。他のゲームストレージシステムは、ゲームコードストア261、記録済ゲームストア262、タグデータストア263、ビデオゲームデータストア264、及びゲームネットワークユーザストア265を含み得る。一実施形態では、GCS210は、ゲームアプリケーション、サービス、ゲーム関連デジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ、及びソーシャルネットワーク間の相互接続性を提供することができるシステムである。GCS210は、ネットワークインターフェース290を介して、ソーシャルメディアマネージャ295を経由して、ユーザデバイス230及びソーシャルメディアプロバイダ240と通信し得る。ソーシャルメディアマネージャ295は、1人以上のフレンドに関連付けるように構成され得る。一実施形態では、各ソーシャルメディアプロバイダ240は、ユーザソーシャルネットワーク接続を示す、少なくとも1つのソーシャルグラフ245を含む。
ユーザU0は、ゲームセッションマネージャ285を介して、GCS210によって提供されるサービスにアクセスすることが可能であり、ユーザU0は、図1のユーザ5を表し得る。例えば、アカウントマネージャ274は、GCS210へのユーザU0による認証及びアクセスを可能にする。アカウントマネージャ274は、メンバーユーザに関する情報を記憶する。例えば、メンバーユーザ毎のユーザプロフィールは、アカウントマネージャ274によって管理され得る。当該方式では、メンバー情報は、認証目的のために、アカウントマネージャ274によって使用されることができる。例えば、アカウントマネージャ2274は、メンバーユーザに関連するユーザ情報を更新及び管理するために使用され得る。加えて、メンバーユーザによって所有されるゲームタイトルは、アカウントマネージャ274によって管理され得る。当該方式では、データストア264内に記憶されるゲームアプリケーションは、それらのゲームアプリケーションを所有する任意のメンバーユーザに利用可能になる。
一実施形態では、ユーザ(例えば、ユーザU0)は、ネットワーク220を通した接続によって、ユーザデバイス230を用いて、GCS210及びソーシャルメディアプロバイダ240によって提供されるサービスにアクセスすることができる。ユーザデバイス230は、プロセッサ及びメモリを有する、有線または無線、ポータブルまたは非ポータブルの任意の種類のデバイスを含み得る。一実施形態では、ユーザデバイス230は、携帯可能形態要素におけるタッチスクリーン能力を提供するスマートフォン、タブレットコンピュータ、またはハイブリッドの形態であり得る。一例示的デバイスは、オペレーティングシステムを実行し、ならびにネットワーク220を通して取得され及びローカルポータブルデバイス(例えば、スマートフォン、タブレット、ラップトップ、デスクトップ等)上で実行され得る、様々なアプリケーション(app)へのアクセスが提供される携帯電話デバイスを含み得る。
ユーザデバイス230は、入力コマンド236を送信するように、及びGCS210及びソーシャルメディアプロバイダ240から受信されたデータ及び/または情報235を表示するように、ユーザU0に関するインターフェースとして働くディスプレイ232を含む。ディスプレイ232は、タッチスクリーン、もしくは、一般的に、フラットパネルディスプレイによって提供されるディスプレイ、ブラウン管(CRT)、またはディスプレイをレンダリングすることが可能である他のデバイスとして構成されることができる。代替として、ユーザデバイス230は、デスクトップコンピュータまたはラップトップコンピュータと同様に、本デバイスから分離しているそのディスプレイ232を有し得る。追加デバイス231(例えば、図1Aのデバイス11)は、場所ベースコンパニオンインターフェースを実装する目的のために、ユーザU0に利用可能であり得る。
一実施形態では、ユーザデバイス130は、GCS210と通信し、ユーザU0がゲームアプリケーションをプレイすることを可能にするように構成されている。いくつかの実施形態では、GCS210は、ホストマシンのハイパーバイザ上で実行する複数の仮想マシン(VM)を含み得、1つ以上の仮想マシンは、ホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成されている。例えば、ユーザU0は、ゲーム選択エンジン275を介して、ビデオゲームデータストア264内で利用可能であるゲームアプリケーション(例えば、ゲームタイトル等によって)を選択し得る。ゲームアプリケーションは、シングルプレイヤーゲーム環境内で、または複数プレイヤーゲーム環境内でプレイされ得る。当該方式では、選択されたゲームアプリケーションは、GCS210上でゲームサーバ205によって実行されるために有効になり及びロードされる。一実施形態では、ゲームプレイは主にGCS210内で実行され、それにより、ユーザデバイス230は、ゲームビデオフレーム235のストリームをGCS210から受信し、ゲームプレイを駆動するためのユーザ入力コマンド236をGCS210に戻すように伝達する。ストリーミングゲームプレイから受信されたビデオフレーム235は、ユーザデバイス230のディスプレイ232に示される。他の実施形態では、GCS210は、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成され、各ローカルコンピューティングデバイスは、シングルプレイヤーゲームアプリケーションまたは複数プレイヤーゲームアプリケーション等のゲームアプリケーションのインスタンスを実行し得る。例えば、複数プレイヤーゲーム環境では、ゲームアプリケーションがローカルで実行している間、クラウドゲームネットワークは、同時に、情報(例えば、ゲーム状態データ)を各ローカルコンピューティングデバイスから受信し、1つ以上のローカルコンピューティングデバイスの全体を通して、適宜、当該情報を分散し、これにより、各ユーザは、複数プレイヤーゲームアプリケーションのゲーム環境において、(例えば、ビデオゲームの対応するキャラクタによって)他のユーザと対話することが可能である。当該方式では、クラウドゲームネットワークは、複数プレイヤーゲーム環境内でユーザ毎に、ゲームプレイを調整及び組み合わせる。
一実施形態では、ユーザU0がプレイすることが利用可能であるゲームタイトルを選んだ後、ユーザU0が、選ばれたゲームタイトルに関するゲームセッションを、ゲームセッションマネージャ285により開始し得る。ゲームセッションマネージャ285は、最初に、データストア140内のゲーム状態ストアにアクセスし、(選択されたゲームに関して)ユーザU0によってプレイされる最後のセッションの保存済ゲーム状態を読み出し、必要な場合、これにより、ユーザU0は、ゲームプレイを事前のゲームプレイ停止点から再開することができる。いったん再開または開始点が識別されると、ゲームセッションマネージャ285は、ゲームコードストア261から選ばれたゲームタイトルのゲームコードを実行するために、ゲームプロセッサ201内のゲーム実行エンジンに知らせる場合がある。ゲームセッションが開始された後、ゲームセッションマネージャ285は、ユーザデバイス(例えば、ユーザデバイス230)に対するネットワークインターフェース290を介して、ゲームビデオフレーム235(すなわち、ストリーミングビデオデータ)を渡し得る。
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームプロセッサ201、記録エンジン271、及びタグプロセッサ273と通信し、ゲームプレイまたはゲームプレイセッションの記録(例えば、ビデオ)を生成または保存し得る。一実施形態では、ゲームプレイのビデオ記録は、ゲームプレイ中に入力または提供されたタグコンテンツと、他のゲーム関連メタデータとを含み得る。タグコンテンツは、また、スナップショットによって保存され得る。ゲームプレイのビデオ記録であって当該ゲームプレイに対応する任意のゲームメトリックを伴うものは、記録済ゲームストア262内で保存され得る。任意のタグコンテンツは、タグデータストア263内で保存され得る。
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームサーバ205のゲームプロセッサ201と通信し、ゲームアプリケーションの対応するゲームプレイの結果に影響を与えるように使用されるユーザ入力コマンド236を送達及び取得し得る。ユーザU0によって入力される入力コマンド236は、ユーザデバイス230からGCS210のゲームセッションマネージャ285に伝達され得る。ゲームプレイを駆動するために使用される入力コマンドを含む入力コマンド236は、タグコンテンツ等(例えば、テキスト、画像、ビデオ記録クリップ等)を含むユーザ対話用入力を含み得る。ゲーム入力コマンド及び任意のユーザプレイメトリック(どれくらいの期間、ユーザがゲームをプレイするのか等)は、ゲームネットワークユーザストア内に記憶され得る。ゲームアプリケーションに関するゲームプレイに関連する選択情報は、ユーザに利用可能であり得る複数の特徴を有効にするために使用されてもよい。
複数のユーザによってGCS210上でゲームプレイを実行するため、それらのゲームプレイから生成及び記憶される情報は、特にゲームプレイがGCS210を通して実行するとき、要求を行う任意のユーザが、他のユーザのゲームプレイを経験することを可能にする。特に、GCS210のスナップショット発生器212は、GCS210によってゲームアプリケーションを使用するユーザのゲームプレイによって生成されるスナップショットを保存するように構成されている。ユーザU0の場合、ユーザデバイスは、ゲームプレイ中にユーザU0がゲームアプリケーションに参加することを可能にするインターフェースを提供する。ユーザU0によるゲームプレイのスナップショットは、GCS210上で生成及び保存される。スナップショット発生器212は、図2で示されるようなゲームサーバ205の外部で実行し得る、または、図1Aで示されるようなゲームサーバ205の内部で実行し得る。
加えて、それらのゲームプレイから集められた情報は、対応するコンパニオンアプリケーションにおいてユーザU0に提供される状況関連情報を生成するために使用され得る。例えば、前に紹介されたように、コンパニオンアプリケーション発生器213は、ユーザU0のゲームプレイをサポートするように構成されている場所ベースコンパニオンインターフェースを実装するように構成され、コンパニオンインターフェースは、ユーザU0のゲームプレイにおけるキャラクタの場所に基づいて生成する状況関連情報(例えば、メッセージング、補助情報、補助の提供等)を含む。コンパニオンアプリケーション発生器213は、図2で示されるようなゲームサーバ205の外部で実行し得る、または、図1Aで示されるようなゲームサーバ205の内部で実行し得る。これらの実施態様では、状況関連情報は、状況関連情報を含むコンパニオンアプリケーションインターフェースの表示のために、ネットワーク220を通してユーザデバイス231に送達され得る。別の実施形態では、コンパニオンアプリケーション発生器213は、ユーザに対してローカルにあり(例えば、ユーザデバイス231内で実装される)、状況関連情報を生成すること及びそれを表示することの両方を行うように構成され得る。本実施態様では、ユーザデバイス231は、ローカルネットワークを通して(または、外部ネットワーク220を経由して)、ユーザデバイス230と直接通信し、コンパニオンアプリケーションインターフェースを実装し得、ユーザデバイス231は場所ベース情報をユーザデバイス231に送達し得、デバイス230は状況関連情報を含むコンパニオンアプリケーションインターフェースを生成及び表示するように構成されている。
さらに、コンパニオンアプリケーション発生器213はクエスト/チャレンジエンジン219を含み、クエスト/チャレンジエンジン219は、ゲームアプリケーションをプレイするユーザ5が、ユーザのゲームプレイに基づくがゲームアプリケーション内に含有されないクエスト/チャレンジを作成することを可能にする。加えて、エンジン219は、これらのクエスト/チャレンジとの相互作用を容易にする。
さらに、ユーザデバイス230は、ユーザU0または別のユーザのゲームプレイにおいて生成されるスナップショットを使用して、ゲームアプリケーションの選択された地点にジャンプすることを可能にするインターフェースを提供するように構成されている。例えば、ジャンプゲーム実行エンジン216は、対応するスナップショットにアクセスし、スナップショットに基づいてゲームアプリケーションのインスタンスをインスタンス化し、スナップショットに対応するゲームアプリケーションの地点において始まるゲームアプリケーションを実行するように構成されている。当該方式では、スナップショットは、スナップショットに対応する地点において、要求を行うユーザが対応するユーザのゲームプレイにジャンプすることを可能にする。例えば、ユーザU0は、任意の他のユーザのゲームプレイを経験することが可能である、または、自身のゲームプレイに戻る、及びレビューする、及び/またはリプレイすることが可能である。すなわち、要求を行うユーザは、対応するゲームプレイのスナップショットを介して、当該ゲームプレイで使用され及びそれに対応するキャラクタを使用して、ゲームアプリケーションをプレイする。ジャンプゲーム実行エンジン216は、図2で示されるようなゲームサーバ205の外部で実行し得る、または、図1Aで示されるようなゲームサーバ205の内部で実行し得る。
図3〜図8は、ゲームアプリケーションをプレイするユーザの状況の範囲内で説明されている。概して、ゲームアプリケーションは、ユーザ入力に応答する任意の双方向型のゲームであり得る。特に、図3〜図8は、対応するユーザのゲームプレイに基づく(例えば、ゲームプレイ中にキャプチャされるスナップショット情報を使用する)クエスト/チャレンジの生成を含む、ユーザのゲームプレイをサポートするように構成されている場所ベースコンパニオンインターフェースを説明し、コンパニオンインターフェースは、1つ以上のクエスト/チャレンジを分配し、それらと相互作用するために使用され得る。
ここで、ネットワークを通して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細の説明から、対応するユーザのゲームプレイをサポートする場所ベースコンパニオンインターフェースを実装するための、ならびに1つ以上のクエスト/チャレンジを生成し、それらと相互作用するための方法は、本開示の一実施形態によって、図3のフロー図300に関して説明される。フロー図300は、対応するユーザのゲームプレイに基づいて、クエスト/チャレンジを生成するために使用されるコンパニオンインターフェース内で含有される場所ベース情報を生成する目的のために、ゲームサーバ側で関係する動作のプロセス及びデータフローを示す。特に、フロー図300の方法は、図1A〜図1C及び図2のクエスト/チャレンジエンジン219によって、少なくとも部分的に行われ得る。
図3に開示されるような本発明の実施形態がゲームサーバ側の観点から説明されているが、本発明の他の実施形態は、ユーザのゲームプレイをサポートするゲームアプリケーションを実行するように構成されており、クエスト/チャレンジを生成するように、及び/またはそれらと相互作用するように構成されているゲームプロセッサを含むローカルユーザシステム内の、場所ベースコンパニオンインターフェースを実装するのに適切である。例えば、コンパニオンインターフェースは、ローカル及び分離システム内で実装され得る、または、別のネットワークを通して、バックエンドゲームサーバによって生成され、クエスト/チャレンジを生成し及びそれらと相互作用するために使用され得る。
フロー図300は、ゲームアプリケーションを実行するための及びゲームアプリケーションをプレイするユーザのゲームプレイの場所ベース情報を生成するための動作305、310、及び315を含む。特に、動作305において、本方法は、ユーザのゲームプレイに関連して、ゲームアプリケーションの第1のインスタンスをインスタンス化することを含む。前に説明されたように、一実施形態では、ゲームアプリケーションのインスタンスは、ユーザのクライアントデバイスにおいて、ローカルで実行されることができる。他の実施形態では、ゲームアプリケーションのインスタンスは、バックエンドゲームサーバのバックエンドゲーム実行エンジンにおいて実行し得、当該サーバは、クラウドゲームネットワークまたはゲームクラウドシステムの一部であり得る。動作310において、本方法は、ユーザ(例えば、第1のユーザ)による対話のための第1の通信チャネルを通して、ユーザのゲームプレイを表すデータをコンピューティングデバイス(例えば、第3のコンピューティングデバイス)に送達することを含む。通信チャネルは、例えば、インターネット等のネットワークを経由して実施され得る。したがって、レンダリング画像は、第3のコンピューティングデバイスで表示するために送達され得、レンダリング画像は、ユーザのゲームプレイに関連して作られた入力コマンドに応答して、ゲームアプリケーションのインスタンスによって生成される。
動作315Aにおいて、本方法は、ユーザのゲームプレイにおけるキャラクタに関する場所ベース情報を判定することを含む。特に、場所ベース情報は、ゲームアプリケーションに関連付けられるゲーム世界におけるユーザのゲームプレイにおけるキャラクタの場所を参照して作られる。前に説明されたように、場所ベース情報は、ユーザのゲームプレイ中に生成される、キャプチャされる、及び/または記憶されるスナップショット内に含まれ得る。例えば、各スナップショットは、キャラクタの場所を参照して生成されるメタデータ及び/または情報を含む。一実施形態では、メタデータ及び/または情報は、スナップショットに対応するゲームアプリケーションの地点において始まる(例えば、ゲームプレイにおけるキャラクタの場所を反映する、スナップショットがキャプチャされたときのゲームプレイの状態に対応するジャンプ点で始まる)ゲームアプリケーションのインスタンスの実行を可能にするように構成されている。一実施形態では、スナップショットは、クエスト/チャレンジであるジャンプゲームをインスタンス化するために使用され得る。例えば、スナップショットは、ゲームプレイの場所ベース情報と、対応する地点におけるゲームプレイの状態を定義するゲーム状態データ(例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、オブジェクト属性、グラフィックオーバーレイ、キャラクタのアセット、キャラクタのスキルセット、キャラクタに関するゲームアプリケーション内のタスク達成の履歴、ゲーム世界におけるキャラクタの現在の地理的場所、ユーザのゲームプレイにおけるゲームアプリケーションによる進捗、キャラクタのゲームプレイの現在の状態等を含む)とを含み、それにより、ゲーム状態データは、ゲームプレイにおける対応する地点に存在するゲーム環境の生成を可能にする。スナップショットは、ユーザのためにゲームアプリケーションを個人用にするために使用されるユーザ保存データを含み得、当該データは、ゲームプレイにおいて、キャラクタを個人用にする情報(例えば、姿、見た目、衣類、武器、ゲーム困難度、ゲームレベル、キャラクタ属性等)を含み得る。前に説明されたように、スナップショットは、また、ゲーム状態に関するランダムシードデータを含み得る。
前に説明されたように、フロー図300の残りの動作はコンパニオンアプリケーション発生器及び/またはクエスト/チャレンジエンジン219によって行われ得、これらは、ローカルで、またはクラウドゲームネットワークのバックエンドサーバで実行し得る。特に、動作315Bにおいて、本方法は、ユーザのゲームプレイ中、ゲームアプリケーションから生成される複数のスナップショットをキャプチャすることを含む。スナップショット内に含有される情報は、ゲームプレイに基づくクエスト/チャレンジを生成するために使用され得、ゲームアプリケーション内に含有されない。したがって、ゲームアプリケーションに関連し、及び、いくつかの場合にゲームアプリケーションの実行に依存する追加コンテンツは、新たに生成され得る。これは、1人以上のユーザによって対話するためのゲームアプリケーションに関連するコンテンツの量及びコンテンツの範囲を増加させる。
320において、本方法は、第1のユーザのゲームプレイをサポートする特徴を提供するコンパニオンインターフェース(例えば、状況関連情報を含む)を生成することを含み、ユーザまたは任意の他のビューアが、ゲームアプリケーションをプレイしながら、一般的にユーザに役立つリアルタイムの情報にアクセスすることを可能にする。前に紹介されたように、コンパニオンインターフェースは、ユーザのゲームプレイに基づいて、クエスト及び/またはチャレンジを生成するために使用されることができる。例証の目的のために、コンパニオンインターフェースは、クエスト/チャレンジを生成するユーザの第1のコンピューティングデバイス上に表示される。さらに、コンパニオンインターフェースは、ユーザのゲームプレイと同時に、第1のコンピューティングデバイス上に表示される。例えば、一実施形態では、情報を送達する2つの通信チャネルが存在し得、2つの通信チャネルは、コンパニオンインターフェース(例えば、インターフェースの送達と、インターフェースを制御する入力コマンドとを提供する)に関連付けられるデータを送達することが確立される第1の通信チャネルと、(例えば、ユーザに関連付けられる第3のコンピューティングデバイスに)ユーザのゲームプレイを表すデータを送達するために確立される第2の通信チャネルである。別の実施形態では、コンパニオンインターフェースは、ゲームプレイを示す第1のスクリーンと、コンパニオンインターフェースを示す第2のスクリーンとを含む分割表示等によって、ユーザのゲームプレイを表すデータと一緒に送達され得る。より具体的には、コンパニオンインターフェースはリアルタイムで生成され、ユーザのゲームプレイと同時に送達され、それにより、インターフェースを経由して提供される情報は、ユーザのゲームプレイをサポートする。当該方式では、ユーザのゲームプレイは、コンパニオンインターフェースによって提供される情報で拡張され得る。
330において、本方法は、第1のユーザの第1のコンパニオンインターフェースを経由して第1のユーザによって提供されるパラメータ情報に従って、ユーザ定義済パッケージを生成することを含む。特に、パラメータ情報は、ユーザのゲームプレイ中にキャプチャされる1つ以上のスナップショットに基づくものである。例えば、ユーザ定義済パッケージは、コンパニオンインターフェース経由してユーザによって提供されるパラメータ情報によって定義されるようなクエスト及び/またはチャレンジを作成する。
例えば、パラメータ情報は、1つ以上のアセットパラメータまたは達成パラメータを含み得る。例証のために、アセットパラメータは、ゲームアプリケーション内でアセットを定義し得、当該アセットは、オブジェクト、スキル、ポイント、レベル、または任意の他の定義可能なアイテムまたは特徴であり得る。達成パラメータは、行われるタスクまたは満たすべき基準を定義し得る。例えば、達成パラメータは、達するゲーム環境におけるポイント、ポイントに達する前に達成したポイント数、取得したオブジェクト、ゲームアプリケーションのあるエリアを獲得しなくてはならない期間等を定義し得る。達成パラメータは、肯定的条件及び/または否定的条件を含み得る。例えば、肯定的条件は、ボスと戦うときに特有の武器の使用を定義し得る、または、あるレベルをとおして敵性戦闘員を殺すことを可能にし得る。一方では、否定的条件は、武器の使用を禁止し得る、または、あるレベルを経験するとき、敵性戦闘員を殺さないことを要求し得る。
一実施形態では、ユーザ定義済パッケージ(例えば、クエスト/チャレンジを定義する)は、ユーザがゲームアプリケーションをプレイするとき、リアルタイムで生成される。この場合、ユーザ定義済パッケージに関連するパラメータ情報の第1の部は、コンパニオンインターフェース内のユーザによって定義され得る。したがって、パラメータ情報の第1の部は、ユーザに対してローカルで、またはバックエンドサーバにおいて、クエスト/チャレンジエンジンによって受信され得、当該エンジンは、クエスト/チャレンジを生成するように構成されている。例えば、第1の部は、達するゲーム環境におけるポイント、取得するアセット、達成する達成度またはタスク等を定義することを含み得る。一実施形態では、パラメータ情報の第1の部を受信しながら、ユーザのゲームプレイを一時停止する。加えて、パラメータ情報の第1の部を受信した後、本方法は、第1のユーザのゲームプレイを再開することを含む。本プロセスは、パラメータ情報の追加部分を生成及び/または受信するために繰り返され得る。当該方式では、ユーザ定義済パッケージの生成は、ユーザのゲームプレイに干渉することなく、実施され得る。
別の実施形態では、ユーザ定義済パッケージは、ゲームプレイの後で生成される。例えば、ユーザ定義済パッケージは、ゲームプレイのリプレイ中に生成され得、コンパニオンインターフェースは、ゲームプレイに関連する情報を表示するために、及びユーザ定義済パッケージを生成するために、ゲームプレイ中にキャプチャされるスナップショット情報を表示するように構成可能である。事前に紹介されたように、ユーザのゲームプレイは、第3のコンピューティングデバイス上に表示され得る。すなわち、リプレイが第3のデバイス上に表示され、コンパニオンインターフェースがユーザ(例えば、第1のデバイス)の別個のデバイス上に表示される。したがって、コンパニオンインターフェースは、第1のユーザのゲームプレイのリプレイと同時に表示可能である。ユーザ定義済パッケージの生成の目的のために、ユーザ定義済パッケージに関連するパラメータ情報は、ゲームプレイのリプレイ中、第1のコンピューティングデバイス上に表示されるようなコンパニオンインターフェースから受信される。例えば、ゲームプレイがリプレイされるとき、リプレイで表示されるようなゲーム環境で達するポイント毎に、パラメータ情報の対応する部分は、達するゲーム環境におけるポイント、取得するアセット、達成する達成度またはタスク等を定義することを含み得る。
また別の実施形態では、ユーザ生成パッケージは自動的に生成され得る。例えば、ユーザのゲームプレイ中にスナップショットをキャプチャすることによって、ユーザ定義済パッケージは、スナップショットの自然順序で、特定のスナップショットの選択によって自動的に生成され得、これは、ゲームプレイのスナップショットが連続順序でキャプチャされ得るためである。例証の目的だけのために、ユーザのゲームプレイに関連する一連のスナップショットは、対応するゲームアプリケーションの最終レベルにおいて、ボスを倒して終わり得る。したがって、ライブのゲームプレイまたはゲームプレイのリプレイ中、コンパニオンインターフェースは、ゲームプレイ中にキャプチャされる対応する情報及び概してゲームプレイまたはリプレイをサポートする情報を表示し得る、及び/または、ユーザ定義済パッケージを生成するように構成されているインターフェースを表示し得る。ゲームプレイ中に発生する一連のスナップショットの最後のスナップショットの選択は、コンパニオンインターフェース(例えば、当該レベルのボスを倒した後に取られた最後のスナップショット)を経由して受信される。順序における最初のスナップショットを判定する。例えば、第1のスナップショットは、最初に当該のレベルのボスと対峙することき、開始点で自然に発生し得、ゲームアプリケーションの開発者によって定義され得る(例えば、ボスの隠れ場所への進入、ボスを示すビデオの撮影の開始等)。また、第1のスナップショットは、任意に選択され得る(例えば、5分等の既定の期間におよぶ)。したがって、第1のスナップショット及び最後のスナップショットの情報は、ユーザ定義済パッケージに関連付けられるパラメータ情報に含まれる。さらに、必要なパラメータ情報は、ユーザ定義済パッケージ(例えば、クエスト/チャレンジを作成する)を定義するために、選択された一連のスナップショットに基づいて自動的に生成される。
図3の340において、本方法は、ユーザ定義済パッケージに関するマーカを生成することを含む。マーカは、第2のユーザ(ユーザ定義済パッケージ(クエスト/チャレンジ)と対話し得る可能性があるユーザ)の第2のコンピューティングデバイス上に表示するために提供される。特に、マーカ(例えば、マーカの選択)は、ユーザ定義済パッケージへのアクセスを可能にする。例証のために、マーカを選択することによって、ユーザ定義済パッケージによって作成されたクエスト/チャレンジは、マーカを選択するユーザによる対話の目的のためにインスタンス化される。
マーカは、任意の数の方法によって分散され得る。例えば、マーカは、同じゲームアプリケーションをプレイする別のユーザのコンパニオンインターフェース(すなわち、ユーザ定義済パッケージが生成される)内にセットされるアイコンであり得る。別の例では、マーカは、直接的または間接的に、1つ以上の他のユーザに送達されるメッセージ内にセットされ得る(例えば、テキストメッセージ、電子メールメッセージ、ソーシャルネットワークメッセージ、別のゲームアプリケーションをプレイするユーザをサポートして表示されるコンパニオンインターフェース等にセットされ得る)。別の例では、マーカは、ユーザ定義済パッケージへのリンクとして、ウェブページ内でセットされ得る。マーカの分散を可能にする他の分散方法が想到及びサポートされ、当該マーカはユーザ定義済パッケージへのアクセスを可能にする。
図4Aは、本開示の一実施形態による、第1のユーザによるゲームアプリケーションのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるノード(対応するスナップショットを伴う)の階層を示すノードグラフの400Aの例証であり、サイドクエストのノードが示され、サイドクエストが対応するユーザのゲームプレイをサポートする場所ベースコンパニオンインターフェースを使用して生成される。特に、当該ノードは、スナップショットがキャプチャされているビデオゲームのゲームプレイにおける地点に対応する。
ノードグラフ400Aは、対応するユーザのゲームプレイ中にキャラクタがたどる様々な実際の経路を定義する複数のスナップショットノードを含む。例えば、経路403は、スナップショットノード401と402との間に画定される。経路403では、キャラクタは、分岐ノード422に達するまで、ノード402からノード421に進み得、分岐ノード422では、3つのノード分岐が、キャラクタがゲームプレイ中にたどり得る3つの異なる経路を画定し、ノード分岐407はノード411、412、413、及び414を含み、ノード分岐408はノード423、424、425、及び426を含み、ノード分岐409はノード405及び406を含む。他のスナップショットノードは、ユーザのゲームプレイ中に生成され得るが、明確性及び例証の目的のために図示されない。
ノードグラフは、また、サイドクエスト470と称されるクエスト/チャレンジを作成するもの等の、ユーザ生成パッケージ内で画定される経路を示す。サイドクエスト470は、スナップショットノード421に対応するジャンプ点A(または、開始点)と、スナップショットノード422に対応する地点Bと、スナップショットノード423に対応する地点Cと、スナップショットノード424に対応する地点Dと、スナップショットノード425に対応する終点Eとを含む。これらの地点のそれぞれは、ユーザのゲームプレイ中に定義されるようなゲームアプリケーションにおける特定の地点に対応し得る。
前に説明されたように、スナップショットノードのスナップショットのそれぞれは、選択を行うユーザが、ユーザのゲームプレイにジャンプすることを可能にする。例えば、ゲームプロセッサ210のジャンプ実行エンジン216が、選択済スナップショット画像にアクセスし(例えば、スナップショット画像によって、ノードグラフ400Aのノード選択によって、スナップショットのタイムライン等によって等)、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、及びキャプチャ済スナップショットに対応するゲームアプリケーションのある地点(ここでは、ジャンプ点として識別される)で始まるゲームアプリケーションを実行するように構成されている。例えば、スナップショットは、クエスト/チャレンジのジャンプゲームを可能にし得る。当該方式では、選択を行うユーザは、ユーザのゲームプレイのキャラクタにジャンプし、当該キャラクタを使用してユーザのゲームプレイのインスタンス化を行う。例証のために、サイドクエスト470に関して、サイドクエストを受け入れる/プレイするユーザは、連続順序で、地点A〜Eのそれぞれを通ることが要求され得る。一実施形態では、サイドクエスト470はある速度実行であり得、時間制限はサイドクエストが完了しなければならない周期を定義する。したがって、スナップショットノード421は、開始点Aで始まる参加中のユーザに関するジャンプゲームプレイのインスタンス化を可能にする。サポートにおいて、コンパニオンインターフェースは、サイドクエスト470に関連する追加情報(ナビゲートする次の地点、取得するアセット、満たすべき達成度、行うタスク等)を提供し得る。
図4Bは、本開示の一実施形態による、第1のユーザのゲームプレイをサポートし、コンパニオンインターフェースがサイドクエストを生成するために使用される、コンパニオンインターフェース430の例証である。特に、コンパニオンインターフェース430は、最初に図4Aに紹介されたサイドクエスト470を生成するために使用される。
コンパニオンインターフェース430は、サイドクエスト470を生成しているユーザのゲームプレイにおけるキャラクタを示すレーダマッピング490を含む、ウィンドウ431を含む。キャラクタは、レーダマッピング490の中心に位置し得る。ゲームプレイは、対応するゲームアプリケーションのゲーム世界内または環境433内で行われる。特に、レーダマッピング490は、ゲームアプリケーションのゲーム世界の少なくとも一部を示し、レーダマッピング内のオブジェクト間の方向関係(例えば、方向及び距離)を提供する。さらに、レーダマッピング490は、ゲーム世界内に位置する少なくともオブジェクト/特徴と、ユーザ及び他のプレイヤーのキャラクタの場所とを含む。
例えば、レーダマッピング490に示されるように、コンパニオンインターフェース430は、サイドクエスト470の地点A〜Eを示す。サイドクエスト470は、レーダマッピング490(ゲーム世界433のオブジェクト間の進行関係及び方向関係を示す)と比べて、ノードグラフ400A(ゲームアプリケーションによる進行を示す)と異なるように提示される。レーダマッピング490は、地点A〜Eを含む、その完了形態のサイドクエスト470を示す。
コンパニオンインターフェース430は、サイドクエスト470を生成するために使用され得る、及び/またはサイドクエスト470に関連する情報を提供するために使用され得る。例えば、ウィンドウ435はユーザ(John Doenavich)がサイドクエスト470を生成することを示す。すなわち、ゲームプレイは、対応するゲームアプリケーションとのJohn Doenavichの対話を示す。例証及び明確性の目的のために、サイドクエスト470は「レベル7のボス」と称され得る。
例えば、ウィンドウ436に示されるように、コンパニオンインターフェース430は、ユーザ定義済パッケージ(例えば、サイドクエスト470)を作成するパラメータ情報を定義するために使用され得る。ボタン451は、ユーザ(Doenavich)が、サイドクエスト470に含有されるゲーム世界433内の地点を定義することを可能にする。ボタン452は、ユーザが行われるタスクを定義することを可能にする。これらのタスクは、前に紹介されたアセットパラメータ及び/または達成パラメータを満たすことを含み得る。例えば、アセットパラメータは、サイドクエスト470の範囲内のキャラクタによって取得されなければならないオブジェクト(例えば、武器、食品等)、スキルレベル、強さ等を定義し得る。達成パラメータは、アセットパラメータ(例えば、アセットを取得する)を含み得、キャラクタが達成しなければならないことを定義する。例えば、達成パラメータは、限定ではないが、オブジェクトを取得する、ゲーム世界のある地点に達する、ボスを攻撃する、ゲームアプリケーションでメンターと会う、スキルレベルに達する、特定のステップのセットを行う、一連の地点を横断する等の、行われる及び完了されるタスクを定義し得る。ボタン455は、ユーザが、ユーザ定義済パッケージ(例えば、サイドクエスト470を作成する)に関連付けられるパラメータ情報を保存することを可能にする。パラメータ情報を定義するための他のボタンまたは他の方法は、また、ユーザによってアセットパラメータ及び/または達成パラメータを定義するために使用され得るが、図示されない。
加えて、ボタン453は、ユーザがコメントを追加することを可能にする。例えば、コメントは、サイドクエスト470をプレイするユーザの状況の範囲内で表示可能であり得る。図5Cは、ユーザDoenavichからのコメントまたは一連のコメント563がサイドクエスト470をプレイする別のユーザのコンパニオンインターフェース430’内にどのように表示され得るかを示す。これらのコメント563は、他のユーザが地点C等のサイドクエスト470の特定の地点に達すると、表示するためにトリガされ得る。
さらに、コンパニオンインターフェース430は、サイドクエスト470の概要を提供し得る。例えば、ウィンドウ436の区分441は、地点A〜Eを含む、サイドクエスト470の地点を定義する。開始地点Aが村である、地点Bがミニボスとの戦いを含むゲーム世界433内にある、地点Cがゲーム世界433内に完了する難題である、地点Dが、武器(金の弓)が取得されることができるエリアで発生する、及び地点Eが、あるレベルのボスとの戦い(例えば、レベル7のボス)が発生するゲーム433の範囲内のエリアである等の追加情報が含まれ得る。
区分442は集められたアセットを定義する。例えば、金の弓は、サイドクエスト470の最後に、ボスを倒すことが必要とされ、地点Dで金の弓を取得することができる。加えて、サイドクエスト470の実行中に、300個のコインを集める必要がある。区分443は、サイドクエスト470を完了する閾値時間(例えば、15分)を定義し得る。加えて、区分444は、サイドクエスト470を完了するために必要な最小のポイント数(例えば、1500ポイント)を定義し得る。
前に説明されたように、アセット及び/または達成パラメータは、肯定的条件または否定的条件を含み得る。サイドクエスト470は、これらの種類の条件を示す。例えば、区分445は、金の剣を使用することが可能ではないことと(ユーザは新たに見つけた金の弓を使用することができることに留意されたい)、高級な戦闘用鎧を使用することが可能ではないこととを含む、サイドクエスト470の完了に関連して否定的条件を定義する。推定すると、これは、サイドクエストを完了すること及びそのパラメータまたは条件を満たすことを、さらに困難にし得る。区分446は、割り当てられた15分のうちの5分以内にボスと戦い及び倒すことを含む、サイドクエスト470の完了に関連して定義される肯定的条件を定義する。
図5Aは、本開示の一実施形態による、コンパニオンインターフェースがサイドクエストをプレイする招待状を含む、サイドクエスト(例えば、クエスト470)に関連付けられる同じゲームアプリケーションをプレイする第2のユーザのコンパニオンインターフェース430’の例証である。第2のユーザは、サイドクエスト470を生成していなかったが、サイドクエスト470と相互作用している、またはそれをプレイしている。
サイドクエスト470は、任意の数の方法を使用してインスタンス化され得る。例えば、第2のユーザはメッセージを受信し得、メッセージは、ユーザ定義済パッケージ(例えば、サイドクエスト470を定義する)へのアクセスを提供するマーカを含む。メッセージは、電子メール等の任意の形態で提示され、サイト(例えば、ソーシャルネットワークサイト、ゲームサイト等)に投稿され、第2のユーザが(サイドクエストが生成された)ゲームアプリケーションをプレイしている間にコンパニオンインターフェース内に提示され、第2のユーザが別のゲームアプリケーションをプレイしている間にコンパニオンインターフェース内に提示される等の場合がある。一実施形態では、ユーザは、サイドクエストをプレイする招待状をフレンドに送信し得る。その場合、ユーザのフレンド(例えば、第2のユーザ)を識別し得る。メッセージ(例えば、サイドクエスト470に関連付けられるユーザ定義済パッケージへのアクセスを提供するマーカを含む)は、第2のユーザに関連付けられるコンピューティングデバイスを介して、第2のユーザフレンドに送達され得る。
特に、コンパニオンインターフェース430’は、ゲームアプリケーションをプレイしながら、第2のユーザのゲームプレイと同時に表示される。示されるように、コンパニオンインターフェース430’は、第2のユーザのゲームプレイに関連して提示されるレーダマッピング490’を含む。例えば、第2のユーザの矢印点510によって表されるキャラクタは、ゲーム世界433(図示されない)内に位置し、レーダマッピング490’の中心501に存在する。矢印点510は、また、ゲーム世界433内のキャラクタの配向を与え得る。追加オブジェクト515及び517は、キャラクタの場所510に関して示される。これらのオブジェクトは、ゲームアプリケーションをプレイする他のユーザ(例えば、フレンド)の他のキャラクタ、または着目点等であり得る。
メッセージ520は、サイドクエスト作成者からのコメントを含み得る。例えば、作成者John Doenavichは、作成者がサイドクエスト470を作成した理由を説明し得る、または、作成者がそのゲームプレイをプレイするときの条件に従ったものと同じように(例えば、15分以内に、サイドクエスト470に関連付けられるゲームプレイ部分が終了したとき)、第2のユーザに、ある制約または条件が与えられたサイドクエスト470を完了させることを挑戦させる挑発的な言葉を含み得る。
加えて、メッセージ520はサイドクエスト470の地点A〜Eで提示され得るが、開始値点Aは場所502で表示される。一実施形態では、第2のユーザがゲームアプリケーションのゲーム世界433における特定の地点(例えば、場所501)に達すると、メッセージ520及びサイドクエスト470の地点は、表示するためにトリガされる。第2のユーザがサイドクエスト470を受け入れることを選ぶ場合、レーダマッピング490’は、サイドクエスト470の開始を示す場所502に向かう大まかな方向を提供する。本実施形態では、サイドクエスト470は、第2のユーザのゲームプレイの範囲内でプレイされる。別の実施形態では、前に説明されたように、サイドクエスト470は、作成を行うユーザDoenavichのジャンプゲームプレイの範囲内でプレイされる。このジャンプゲームプレイは、メッセージ520によってアクセスされ得る。
図5Bは、本開示の一実施形態による、サイドクエスト(例えば、クエスト470)に関連付けられる同じゲームアプリケーションをプレイする場合がある、またはプレイしない場合がある第2のユーザのコンパニオンインターフェース430’’の例証であり、コンパニオンインターフェースはサイドクエストをプレイする招待状を含むメッセージ535を含む。この特定の場合、第2のユーザは、ゲーム世界528をもたらす別のゲームアプリケーションをプレイし、ゲームプレイは、第2のユーザに関連付けられるコンピューティングデバイス(例えば、第4のコンピューティングデバイス)上に提示される。
特に、コンパニオンインターフェース430’’は、第2のユーザのゲームプレイと同時に表示され、第2のユーザのゲームプレイと関連付けられる別のコンピューティングデバイス(例えば、第2のコンピューティングデバイス)上に表示され、第2のユーザのゲームプレイをサポートするように提示される。示されるように、コンパニオンインターフェース430’’は、レーダマッピング590を含む。例えば、第2のユーザの矢印点510’によって表されるキャラクタは、ゲーム世界528内に位置し、レーダマッピング590の中心511に存在する。追加オブジェクト513及び519は、キャラクタの場所511に関して示される。前に説明されたように、これらのオブジェクトは、ゲームアプリケーションをプレイする他のユーザ(例えば、フレンド)の他のキャラクタ、または着目点等であり得る。
図5Bに示されるように、メッセージは、サイドクエスト470の作成者であるJohn Doenavichから送達されるポップアップ式招待状530の形態であるが、ポップアップ特徴は必須ではない。招待状530は、1つ以上の状況の範囲内で提示され、各状況は、サイドクエスト470を作成するために使用されるゲームアプリケーションの任意のプレイの範囲外である。他の実施形態では、メッセージは第2のユーザによって要求され、コンパニオンインターフェース430’’内に投入される。特に、ウィンドウ535はメッセージの詳細を示す。この特定のシナリオでは、作成者は、メッセージをフレンドのセットに送達する。すなわち、サイドクエスト470をプレイする招待状は、ユーザ作成者Doenavichの1人以上のフレンドに標的化され得る。これらのフレンドは、(例えば、ソーシャルネットワークのAPIアクセスによって)図2のゲームサーバ205によって発見可能であり得、サイドクエスト470を作成するために使用される対応するコンパニオンインターフェースを介して、ユーザ作成者に提示される。選択後に、メッセージは、標的化されたユーザに関連付けられる各々のコンピューティングデバイス(コンパニオンインターフェースまたは他のコンピューティングデバイスディスプレイ等を介して)に送達され得る。示されるように、メッセージ535は、Dave Smith、Jack Johnson、及びDebbie Knot等を含む6人のユーザに標的化される。
メッセージ535は、サイドクエスト470(例えば、地点A〜E)の地点と、サイドクエストの一般的な説明(例えば、ゲームアプリケーションにおける7番目のレベルのボスまでたどり着き及び攻撃する)とを含む。あるポイント数及びコインを貯めながら、作成者Doenavichは、サイドクエストに表されるような作成者がプレイしているゲームアプリケーションがどれくらい楽しいのかを説明し、所与の時間内にサイドクエストをプレイするチャレンジを提示する。招待状は、サイドクエスト470を起動するボタン537を含む。例えば、サイドクエスト470は、作成者(Doenavich)のゲームプレイに基づいて、ジャンプゲームで起動され得る。
図5Cは、本開示の一実施形態による、サイドクエスト(例えば、クエスト470)をプレイする第2のユーザのコンパニオンインターフェース575を示す。例えば、第2のユーザは、サイドクエスト470に関連付けられるユーザ定義済パッケージへのアクセスを提供するマーカ(例えば、コンパニオンインターフェース、または他のディスプレイ内に提示されるもの)を選択し得る。マーカの選択により、第2のユーザの対応するコンピューティングデバイス(例えば、ジャンプゲームにおける第4のコンピューティングデバイス)上でサイドクエスト470を開始する。例えば、クエストゲームプレイは、ユーザ定義済パッケージ内に含有されるスナップショットに基づいて開始され得る。スナップショットは、選択済スナップショットに対応するゲームアプリケーションの地点(例えば、地点A)から始まる作成ユーザ(例えば、Doenavich)のゲームプレイに基づいてクエストゲームプレイ用のサイドクエスト470に関連付けられるゲームアプリケーションの実行を可能にする。
特に、コンパニオンインターフェース575は、第2のユーザのクエストゲームプレイと同時に生成及び表示される。例えば、コンパニオンインターフェース575は、第2のユーザに関連する別のコンピューティングデバイス(例えば、第2のコンピューティングデバイス)上に表示され、クエストゲームプレイをサポートするように提示される。示されるように、コンパニオンインターフェース575は、レーダマッピング590’を含む。例えば、第2のユーザの矢印点550によって表されるキャラクタは、ゲーム世界433(前に提示された作成者Doenavichのコンパニオンインタフェース430)内に位置し、レーダマッピング590の中心に存在する。追加オブジェクト541及び543は、キャラクタの場所551に関して示される。前に説明されたように、これらのオブジェクトは、ゲームアプリケーションをプレイする他のユーザ(例えば、フレンド)の他のキャラクタ、または着目点等であり得る。
クエストゲームプレイ中、クエストゲームプレイから生成される第2の複数のスナップショットはキャプチャされる。当該方式では、クエストゲームプレイ全部にわたる進捗をキャプチャ済スナップショットに基づいて実施することができる。第2のコンパニオンインターフェース575は、クエスト進捗に関連する情報を提供するように、及びクエストゲームプレイをサポートするように構成されている。例えば、サイドクエスト470に関する命令565は、コンパニオンインターフェース575のウィンドウ560内に提供され得る。
当該命令は、クエストゲームプレイで様々な地点で、第2のユーザに提示される段階的命令パッケージの一部であり得る、それにより、当該命令は、第2のユーザのクエストゲームプレイにおける場所及び/またはアクションに関連付けられ得、それにより、第1の命令は第1の場所/第1のアクションの組み合わせに関連付けられ得、第2の命令は第2の場所/第2のアクションの組み合わせに関連付けられ得る等が行われる。例えば、クエスト470に関する第1の命令は、レーダマッピング590’及びゲーム世界433内の第1の場所に関連して提示され、第1の命令は、ゲーム世界内の第2の場所に伝わることを含む。例証のように、第1の命令は、キャラクタによって要求された集めるべきアセットと、そのアセットを取得するための命令とを含み得る。追跡により、第1の命令の完了を判定することが可能になる。その後、サイドクエスト470に関する第2の命令は、第2のユーザのゲームプレイが第2の場所に達するとき、レーダマッピング内の第2の場所に関連して提供される。また、第2の命令は、第1の場所等に関連して、第1の命令の完了後すぐに提示され得る。
特に、命令565は、レーダマッピング590’内に表されるように、サイドクエスト470の場所に対応し得る。例えば、当該場所は、サイドクエスト470(例えば、パズル)の地点Cに対応し得る。図5Cに示されるように、第2のユーザがパズルを地点Cで完了させ、さらに、ここでレーダマッピング590’内に提供された方向の地点Dに進み、金の弓を見つける等の命令が提供される。残っている時間がどれくらいか等の追加情報が提供され得る。
さらに、ウィンドウ560は、いくつかのトリガイベント(例えば、地点Cでパズルを完了する)の後に、第2のユーザに提示される作成者Doenavichからのコメントを含み得る。例えば、コメントは、フレンドからの挑発的な言葉(例えば、「私は、あなたがパズルを解決できると思いませんでした。時間切れになりそうです。あなたが成功しないだろう。」)を含み得る。別の例として、メッセージは、フレンドからの励ましの言葉(例えば、「おめでとう、あなたは最後までやり遂げました!ここに来るまで長い時間かかりました。次のセクションを迅速に終了すると、対照的な側であなたが見えます。)を含み得る。
図6Aは、本開示の一実施形態による、ゲームアプリケーションのサイドクエストをプレイする第2のユーザのコンパニオンインターフェース680内に表示されるようなサイドクエスト(例えば、作成者Doenavichによって生成されるクエスト470)のためのリーダーボードを示す。ウィンドウ610は、タイトル「レベル7のボス」を含むサイドクエスト470に関する情報と、サイドクエスト470の作成者Doenavichの名前とを含む識別情報を提供する。ウィンドウ610は、リーダーボード情報がまたウィンドウ620の下で提示されることを示す。
一使用事例では、第2のユーザがサイドクエスト470との相互作用を受け入れた後、コンパニオンインターフェース680はクエストゲームプレイをサポートして生成及び提示される。ゲームアプリケーションのゲーム世界433に関連して、レーダマッピング690がコンパニオンインターフェース680内に提示される。サイドクエスト470の地点A〜Eが提示されており、点線は、サイドクエスト470との相互作用中に第2のユーザによってたどる経路を示す。終点Eは、また、ボスの記号と一緒に示され、地点Eにおけるボスとの戦いが予期されることを示す。
サイドクエスト470が開始する前に、リーダーボードはユーザに提示され得、リーダーボードは、サイドクエスト470をプレイする他のユーザに関連する情報を示す。一実施形態では、当該情報はスコアを示す。例えば、ウィンドウ620は、「clan−A」から(例えば、「Clan−A」の見出しの下に)ハイスコアを示し、「clan−A」はフレンド(例えば、Doenavich、Dave Smith、Jack Johnson、Debbie Knot等)のグループであり得る。「clan−A」内でサイドクエスト470をプレイするユーザのハイスコアが示される。ユーザリストは、そのハンドル名(例えば、PlayStationネットワーク名「PSN」)によって識別される。あるカテゴリで獲得した戦利品の数、ポイント数等の様々な情報の一部が含まれ得る。加えて、サイドクエスト470をプレイする全てのユーザから得られたハイスコア(例えば、「Global」の見出しの下)がまた示される。類似する情報(例えば、戦利品情報、スコア情報等)を提示する。
図6Bは、本開示の一実施形態による、リーダーボードが、図6Aで前に紹介された第2のユーザのコンパニオンインターフェース680内に表示される、クエスト開発者によって作成されたような最も評判が良いサイドクエストを示すリーダーボードを示す。一使用事例では、第2のユーザがサイドクエスト470との相互作用(例えば、クエストをプレイすること)を受け入れた後、コンパニオンインターフェース680はクエストゲームプレイをサポートして生成及び提示される。図6Aに示されるものと同様に、ゲームアプリケーションのゲーム世界433に関連して、レーダマッピング690がコンパニオンインターフェース680内に提示される。サイドクエスト470の地点A〜Eが提示され、点線はサイドクエスト470との相互作用中に第2のユーザによってたどる経路を示し、ボスとの戦いが終了することが示される。
サイドクエスト470を生成するために使用されるゲームアプリケーションに関連するリーダーボード情報を提供する代わりに、リーダーボード情報は、全ての種類のサイドクエスト(例えば、クエスト/チャレンジ)のために提示され得る。ウィンドウ630は、リーダーボードが最良のサイドクエストのためのものであることを示す標識を提供する。したがって、サイドクエスト470が開始する前に、図6Bのリーダーボードはウィンドウ640でユーザに提示され得、リーダーボードは、最も評判が良いサイドクエストに関連する情報を示す。例えば、最も評判が良いサイドクエストは、それらのサイドクエストをプレイするユーザによるプレイ数によって判定され得る。加えて、サイドクエストの作成者が提示される。例えば、「キャンディを集める」と題されたサイドクエストはユーザTitan1によって作成され、最も多いプレイ2700を有するように、リーダーボードの上部にある。「ボスMan Fun」、「レベル7のボス」、「sandlot」等を含む他のサイドクエストがリスト化される。示されるように、サイドクエスト470では、1800プレイを有する最も評判が良いサイドクエストの上位3つがランク付けられる。
第2のユーザがサイドクエスト470をプレイしないことを望む場合、コンパニオンインターフェースは、他のサイドクエストへのアクセスを提供する。例えば、リーダーボード内のサイドクエストのそれぞれは、対応するユーザ定義済パッケージへのアクセスを提供するリンク(例えば、「キャンディを集める」へのリンク)、またはサイドクエストを開始するための任意の他の接続方法を含み得る。
具体的な実施形態が、ユーザのゲームプレイをサポートするように構成されている場所ベースコンパニオンインターフェースの生成及び実装を実証するように提供されているが、同様に、クエスト及び/またはチャレンジの生成が対応するゲームアプリケーションの開発の範囲外で作成されている。本開示を解釈している当業者は、本開示の主旨及び範囲内に収まる追加実施形態を理解するであろう。
広範な地理的エリアにわたって送達される本実施形態のゲームへのアクセス等を提供するアクセスサービスが、多くの場合、クラウドコンピューティングを使用することを留意されたい。クラウドコンピューティングは、コンピューティングのスタイルであり、動的に拡張可能であり及び多くの場合、仮想化されたリソースはインターネットを通したサービスとして提供される。ユーザは、ユーザをサポートする「クラウド」の技術インフラストラクチャに関する専門家である必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ(「IaaS」)、サービスとしてのプラットフォーム(「PaaS」)、及び/またはサービスとしてのソフトウェア(「SaaS」)等の異なるサービスに分けられることができる。クラウドコンピューティングサービスは、多くの場合、ウェブブラウザからアクセスされるオンラインのビデオゲーム等の一般的アプリケーションを提供する一方で、ソフトウェア及びデータはクラウド内のサーバ上に記憶される。用語「クラウド」は、どのようにインターネットがコンピュータネットワーク図に示されるかに基づいてインターネットに関する例えとして使用され、それが隠す複雑なインフラストラクチャに関する抽象的概念である。
ゲーム処理サーバ(GPS)(または、単に「ゲームサーバ」)は、シングルプレイヤーの及び複数プレイヤーのビデオゲームをプレイするために、ゲームクライアントによって使用される。インターネットを通してプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。一般的に、ゲームは、データをプレイヤーから集める専用サーバアプリケーションを使用し、そのデータを他のプレイヤーに分散する。これは、ピアツーピア配列よりも効率的及び効果的であるが、別個のサーバにサーバアプリケーションをホストすることを要求する。別の実施形態では、GPSは、プレイヤーとそれらの各々のゲームプレイ用デバイスとの間に通信を確立し、集中型GPSに依存することなく情報を交換する。
専用GPSは、クライアントから独立して起動するサーバである。係るサーバは、通常、データセンター内に位置する専用ハードウェア上で起動し、より広い帯域幅及びより多くの専用処理電力を提供する。専用サーバが、ほとんどのPCベースの複数人参加型ゲームのためのゲームサーバをホストする好ましい方法である。多人数参加型オンラインゲームは、通常ゲームタイトルを所有するソフトウェア会社によってホストされる専用サーバ上で起動し、そのゲームが、コンテンツを制御及び更新することを可能にする。
ユーザは、少なくともCPU、ディスプレイ、及びI/O(入出力)を含むクライアントデバイスを用いて、リモートサービスにアクセスする。クライアントデバイスは、PC、携帯電話、ネットブック、PDA等であり得る。一実施形態では、ゲームサーバ上で実行するネットワークは、クライアントによって使用されるデバイスの種類を認識し、採用される通信方法を調節する。他の場合、クライアントデバイスは、html等の標準的通信方法を使用して、インターネットを通してゲームサーバ上でアプリケーションにアクセスする。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベース電子機器またはプログラム可能家庭用電子機器、ミニコンピュータ、メーンフレームコンピュータ等を含む様々なコンピュータシステム構成で実践され得る。本開示は、また、タスクが有線ベースネットワークまたは無線ネットワークを経由してリンクされるリモート処理デバイスによって行われる分散コンピューティング環境で実践されることができる。
所与のビデオゲームが特有のプラットフォーム及び特有の関連のコントローラデバイス用に開発され得ることを理解されたい。しかしながら、そのようなゲームが本明細書に提示されるようなゲームクラウドシステムを介して利用可能にされるとき、ユーザは、異なるコントローラデバイスでビデオゲームにアクセスし得る。例えば、ゲームは、ゲームコンソール及びその関連のコントローラ用に開発されている場合がある一方で、ユーザは、キーボード及びマウスを利用するパーソナルコンピュータからゲームのクラウドベースバージョンにアクセスする場合がある。そのようなシナリオでは、入力パラメータ構成は、ユーザの利用可能であるコントローラデバイス(この場合、キーボード及びマウス)によって生成されることができる入力から、ビデオゲームを実行するために容認可能である入力までのマッピングを定義することができる。
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介して、クラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイスになるように一緒に一体化され、入力が検出済タッチスクリーンの入力/ジェスチャを用いて提供される。係るデバイスに関して、入力パラメータ構成は、ビデオゲームに関するゲーム入力に対応する特定のタッチスクリーン入力を定義し得る。例えば、ボタン、指向性パッド、または他の種類の入力要素は、ユーザがゲーム入力を発生されるために触れることができるタッチスクリーン上の場所を指示するビデオゲームの起動中、表示される、または重ねられる場合がある。特定の方向または特有のタッチ動作のスワイプ等のジェスチャは、また、ゲーム入力として検出され得る。一実施形態では、指導書は、ユーザに、タッチスクリーン上での制御の動作に慣れさせるように、(例えば、ビデオゲームのゲームプレイが始まる前に)ゲームプレイ用のタッチスクリーンを介して入力を提供する方法を示すように、ユーザに提供されることができる。
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスに関する接続点の役割を果たす。すなわち、コントローラデバイスは、クライアントデバイスとの無線接続または有線接続を介して通信し、入力をコントローラデバイスからクライアントデバイスに伝達する。クライアントデバイスは、順に、これらの入力を処理し、次に、ネットワーク(例えば、ルータ等のローカルネットワークデバイスを介してアクセスされる)を介して、入力データをクラウドゲームサーバに伝達し得る。しかしながら、他の実施形態では、コントローラ自体は、最初にクライアントデバイスを経由して係る入力を通信させることを要求されることなく、クラウドゲームサーバに対するネットワークを介して直接入力を通信させる能力があるネットワークデバイスであり得る。例えば、コントローラは、ローカルネットワークデバイス(前述のルータ等)に接続し、データをクラウドゲームサーバに送信し、及びそれから受信する場合がある。したがって、クライアントデバイスが依然としてクラウドベースビデオゲームから出力されるビデオを受信し、それをローカルディスプレイ上にレンダリングすることが要求され得るが、クライアントデバイスを迂回するように、クラウドゲームサーバに対するネットワークを通して直接コントローラが入力を送信することを可能にすることによって、入力待ち時間を短縮することができる。
一実施形態では、ネットワークコントローラ及びクライアントデバイスは、ある種類の入力をコントローラから直接クラウドゲームサーバに送信し、及びクライアントデバイスを介して他の種類の入力を送信するように構成されることができる。例えば、入力(その入力の検出がコントローラ自体とは別の任意の追加ハードウェアまたは処理に依存しない)は、クライアントデバイスを迂回するように、ネットワークを介して、コントローラから直接クラウドゲームサーバに送信されることができる。係る入力は、ボタン入力、ジョイスティック入力、内蔵式動き検出入力部(例えば、加速度計、磁気計、ジャイロスコープ)等を含み得る。しかしながら、追加ハードウェアを利用する、またはクライアントデバイスによる処理を要求する入力は、クライアントデバイスによって、クラウドゲームサーバに送信されることができる。これらは、クラウドゲームサーバに送信する前に、クライアントデバイスによって処理され得るゲーム環境からキャプチャされたビデオまたは音声を含む場合がある。加えて、コントローラの動き検出ハードウェアからの入力は、コントローラの位置及び動きを検出するように、キャプチャされたビデオと併せてクライアントデバイスによって処理する場合があり、コントローラは、その後、クライアントデバイスによって、クラウドゲームサーバに通信するであろう。様々な実施形態に従ってコントローラデバイスがまた、データ(例えば、フィードバックデータ)をクライアントデバイスから、またはクラウドゲームサーバから直接受信され得ることを理解されたい。
本明細書に説明される実施形態が任意の種類のクライアントデバイス上で実行され得ることを理解されたい。いくつかの実施形態では、クライアントデバイスは、ヘッドマウントディスプレイ(HMD)である。
図7は、本開示の実施形態による、示されるヘッドマウントディスプレイ750の構成要素を示す図である。ヘッドマウントディスプレイ750は、プログラム命令を実行するためのプロセッサ700を含む。メモリ702は、記憶する目的のために提供され、揮発性メモリ及び不揮発性メモリの両方を含み得る。ユーザが視認し得る視覚インターフェースを提供するディスプレイ704が含まれる。バッテリ706は、ヘッドマウントディスプレイ750用の電源として提供される。動き検出モジュール708は、磁気計710、加速度計712、及びジャイロスコープ714等の任意の様々な種類の動き感知ハードウェアを含み得る。
加速度計は、加速度及び重力誘導反動力を測定するためのデバイスである。単一及び複数の軸モデルは、異なる方向で、加速度の大きさ及び方向を検出することに利用可能である。加速度計は、傾斜、振動、及び衝撃を感知するために使用される。一実施形態では、3つの加速度計712は、重力の方向を提供するために使用され、その重力は、2つの角度に関する絶対参照(世界空間ピッチ及び世界空間ロール)を与える。
磁気計は、ヘッドマウントディスプレイの付近における磁場の強度及び方向を測定する。一実施形態では、3つの磁気計710は、ヘッドマウントディスプレイ内で使用され、世界空間のヨー角に関する絶対参照を確実にする。一実施形態では、磁気計は、地磁場が±80マイクロテスラの範囲にわたるように設計されている。磁気計は、金属による影響を受け、実際のヨーで単調であるヨー測定を提供する。磁場は、ヨー測定において歪みを生じる環境の金属に起因して歪み得る。必要に応じて、この歪みは、ジャイロスコープまたはカメラ等の他のセンサからの情報を使用して較正されることができる。一実施形態では、加速度計712は、磁気計710と一緒に使用され、ヘッドマウントディスプレイ750の傾角及び方位角を取得する。
ジャイロスコープは、角度のモーメントの原理に基づいて、配向を測定または維持するためのデバイスである。一実施形態では、3つのジャイロスコープ714は、慣性感知に基づいて、各々の軸(x、y、及びz)にわたる運動に関する情報を提供する。ジャイロスコープは高速回転を検出する際に役立つ。しかしながら、ジャイロスコープは、絶対参照の存在なしで、時間超過してドリフトする可能性がある。これは、定期的にジャイロスコープをリセットすることを要求し、オブジェクト、加速度計、磁気計等の視覚的追跡に基づいて位置/配向の判定等の他の利用可能である情報を使用して行うことができる。
カメラ716は、実環境の画像及び画像ストリームをキャプチャするために提供される。2つ以上のカメラは、ヘッドマウントディスプレイ750内に含まれ得、ヘッドマウントディスプレイ750は、後ろ向きのカメラ(ユーザがヘッドマウントディスプレイ750のディスプレイを視認するとき、ユーザから離れるように向いている)と、前向きのカメラ(ユーザがヘッドマウントディスプレイ750のディスプレイを視認するとき、ユーザに向かう向きになる)とを含む。加えて、深度カメラ718は、実環境におけるオブジェクトの深度情報を感知するためのヘッドマウントディスプレイ750内に含まれ得る。
一実施形態では、HMDの前面に一体化されるカメラは、安全に関する警報を提供するために使用され得る。例えば、ユーザが壁またはオブジェクトに近づいている場合、ユーザは警告され得る。一実施形態では、オブジェクトの存在をユーザに警告するために、部屋内の物理的オブジェクトの外観図を用いて使用を提供し得る。例えば、外観図は、仮想環境内のオーバーレイであり得る。いくつかの実施形態では、HMDユーザは、例えば、フロア内で重ねられる参照マーカを視野に入れて提供され得る。例えば、マーカは、ユーザに、ユーザがゲームプレイしている部屋の中心の場所の参照を提供し得る。これは、例えば、視覚情報を、部屋内の壁または他のオブジェクトに衝突することを回避するために、ユーザが移動するべき場所にいるユーザに提供し得る。また、ユーザがHMDを装着する、ゲームをプレイする、またはコンテンツをナビゲートするときにさらなる安全性を提供するために、ユーザに触知性警報及び/または音声警報を提供することができる。
ヘッドマウントディスプレイ750は、音声出力を提供するためのスピーカ720を含む。また、マイクロホン722は、周囲環境からの音、ユーザによって行われるスピーチ等を含む実環境から音声をキャプチャするために含まれ得る。ヘッドマウントディスプレイ750は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール724を含む。一実施形態では、触覚フィードバックモジュール724は、触覚フィードバックをユーザに提供するように、ヘッドマウントディスプレイ750の運動及び/または振動を生じさせることが可能である。
LED726は、ヘッドマウントディスプレイ750の状態の可視的インジケータとして提供される。例えば、LEDは、バッテリレベル、電源オン等を示し得る。カードリーダ728は、ヘッドマウントディスプレイ750が、情報をメモリカードから読み取り、及び情報をメモリカードに書き込むことを可能にするように提供される。USBインターフェース730は、周辺デバイスの接続、または他のポータブルデバイス、コンピュータ等の他のデバイスへの接続を可能にするためのインターフェースの一例として含まれる。ヘッドマウントディスプレイ750の種々の実施形態では、任意の様々な種類のインターフェースは、ヘッドマウントディスプレイ750の良好な接続性を可能にするように含まれ得る。
Wi‐Fiモジュール732は、無線ネットワーク技術を介して、インターネットへの接続を可能にするために含まれる。また、ヘッドマウントディスプレイ750は、他のデバイスへの無線接続を可能にするためのBluetooth(登録商標)モジュール734を含む。通信リンク736は、また、他のデバイスに接続するために含まれ得る。一実施形態では、通信リンク736は、無線通信に関する赤外線伝送を利用する。他の実施形態では、通信リンク736は、他のデバイスと通信するために、様々な無線または有線伝送プロトコルのいずれかを利用し得る。
入力ボタン/センサ738は、ユーザに関する入力インターフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボール等の様々な種類の入力インターフェースのいずれかが含まれ得る。超音波通信モジュール740は、超音波技術を用いて他のデバイスとの通信を容易にするために、ヘッドマウントディスプレイ750内に含まれ得る。
生物学的センサ742は、ユーザからの生理学的データの検出を可能にするために含まれる。一実施形態では、生物学的センサ742は、ユーザの皮膚を通るユーザの生体電気信号を検出するための1つ以上のドライ電極を含む。
前述のヘッドマウントディスプレイ750の構成要素は、ヘッドマウントディスプレイ750内に含まれ得る単なる例示的構成要素として説明されている。本開示の種々の実施形態では、ヘッドマウントディスプレイ750は、様々な前述の構成要素の一部を含む場合がある、または含まない場合がある。ヘッドマウントディスプレイ750の実施形態は、加えて、本明細書に説明されるような本開示の態様を容易にする目的のために、ここでは説明されていないが当技術分野で既知である他の構成要素を含み得る。
本開示の様々な実施形態では、前述のハンドヘルドデバイスは、様々な対話機能を提供するためにディスプレイ上に表示される対話型アプリケーションと併せて利用され得ることが当業者によって理解されるであろう。本明細書に説明される例示的実施形態は、例示のためだけに提供され、制限する目的のためのものではない。
図8は、本開示の様々な実施形態による、ゲームシステム800のブロック図である。ゲームシステム800は、ネットワーク815を介して、ビデオストリームを1つ以上のクライアント810に提供するように構成されている。ゲームシステム800は、一般的に、ビデオサーバシステム820と、随意式ゲームサーバ825とを含む。ビデオサーバシステム820は、最低限の品質のサービスで、ビデオストリームを1つ以上のクライアント810に提供するように構成されている。例えば、ビデオサーバシステム820は、ビデオゲーム内の視界の状態または視点を変更するゲームコマンドを受信し、クライアント810に、最小の遅延時間の状態でこの変化を反映しているビデオストリームの更新を提供し得る。ビデオサーバシステム820は、まだ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットのビデオストリームを提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートにおいて、ユーザに提示されるように構成されているビデオフレームを含み得る。一般的なフレームレートは、30フレーム/秒、60フレーム/秒、及び820フレーム/秒である。しかし、より高い、またはより低いフレームレートが、本開示の代替実施形態に含まれる。
本明細書に個別に810A、810B、等として言及されるクライアント810は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話器、セットトップボックス、公衆電話ボックス、無線デバイス、デジタルパッド、独立型デバイス、ハンドヘルドゲームプレイ用デバイス、及び/または同等物を含み得る。一般的に、クライアント810は、エンコードされたビデオストリーム(すなわち、圧縮されている)を受信し、ビデオストリームをデコードし、結果として生じるビデオを、例えば、ゲームのプレイヤーのユーザに提示するように構成されている。エンコードされたビデオストリームを受信する及び/またはビデオストリームをデコードするプロセスは、一般的に、クライアントの受信バッファ内に個々のビデオフレームを記憶することを含む。ビデオストリームは、ユーザに、クライアント810に不可欠なディスプレイ上で、またはモニタもしくはテレビ等の別個のデバイス上で提示され得る。クライアント810は、随意に、2人以上のゲームプレイヤーをサポートするように構成されている。例えば、ゲームコンソールは、2人、3人、4人以上の同時参加型プレイヤーをサポートするように構成され得る。これらのプレイヤーのそれぞれは、別個のビデオストリームを受信し得る、または単一のビデオストリームは、特にプレイヤー毎に生成される、例えば、各プレイヤーの視点に基づいて生成される、フレームの領域を含み得る。クライアント810は、随意に、地理的に分散される。ゲームシステム800内に含まれるクライアント数は、1人または2人から、数千人、数万人、それ以上まで、広範囲に変わり得る。本明細書に使用されるような用語「ゲームプレイヤー」は、ゲームをプレイする人を指すように使用され、用語「ゲームプレイ用デバイス」は、ゲームをプレイするために使用されるデバイスを指すように使用される。いくつかの実施形態では、ゲームプレイ用デバイスは、ゲーム経験をユーザに送達するように協働する複数のコンピューティングデバイスを指し得る。例えば、ゲームコンソール及びHMDは、ビデオサーバシステム820と協働し、HMDによって視認されるゲームを送達し得る。一実施形態では、ゲームコンソールは、ビデオストリームをビデオサーバシステム820から受信し、ゲームコンソールは、レンダリングするためにHMDに、ビデオストリームを転送する、またはビデオストリームを更新する。
クライアント810は、ネットワーク815を介して、ビデオストリームを受信するように構成されている。ネットワーク815は、電話回線、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及び/または同等物を含む、任意の種類の通信ネットワークであり得る。一般的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IP等の標準プロトコルを用いて通信する。代替として、ビデオストリームは、プロプリエタリ標準を用いて通信する。
クライアント810の一般的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、デコードロジック、ネットワーク通信能力、及び入力デバイスを備える、パーソナルコンピュータである。デコードロジックは、コンピュータ可読媒体上に記憶されるハードウェア、ファームウェア、及び/またはソフトウェアを含み得る。ビデオストリームをデコード(及びエンコード)するためのシステムは、当技術分野で周知であり、使用される特定のエンコードスキームに応じて変わり得る。
クライアント810は、必須ではないが、さらに、受信されたビデオを修正するように構成されているシステムを含み得る。例えば、クライアントは、さらに、レンダリングを行い、1つのビデオ画像を別のビデオ画像上に重ね、ビデオ画像を切り取り、及び/または同様のことを行うように構成され得る。例えば、クライアント810は、Iフレーム、Pフレーム、及びBフレーム等の様々な種類のビデオフレームを受信し、及びユーザに表示するために、これらのフレームを画像に処理するように構成され得る。いくつかの実施形態では、クライアント810のメンバーは、さらに、レンダリング、シェーディング、3Dへの変換、またはビデオストリーム上の同様の動作を行うように構成されている。クライアント810のメンバーは、随意に、2つ以上の音声またはビデオストリームを受信するように構成されている。クライアント810の入力デバイスは、例えば、片手式ゲームコントローラ、両手式ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動き及び/または場所感知デバイス、マウス、タッチスクリーン、神経インターフェース、カメラ、まだ開発中の入力デバイス、及び/または同等物を含み得る。
クライアント810によって受信されるビデオストリーム(及び随意式オーディオストリーム)は、ビデオサーバシステム820によって生成及び提供される。さらに本明細書の他の箇所で説明されるように、このビデオストリームは、ビデオフレームを含む(オーディオストリームはオーディオフレームを含む)。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される(例えば、それらは、適切なデータ構造の画素情報を含む)。本明細書に使用されるような用語「ビデオフレーム」は、ユーザに示される画像に寄与する(例えば、画像を生じさせる)ように構成されている情報を主に含むフレームを指すように使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、また、「オーディオフレーム」に適用されることができる。
クライアント810は、一般的に、入力をユーザから受信するように構成されている。これらの入力は、ビデオゲームの状態を変化させる、またはそうでなければゲームプレイに影響を及ぼすように構成されているゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができる、及び/または、クライアント810上で実行するコンピューティング命令によって、自動的に生成され得る。受信ゲームコマンドは、ビデオサーバシステム820及び/またはゲームサーバ825に対するネットワーク815を介して、クライアント810から通信する。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム820を介して、ゲームサーバ825に対して通信する。いくつかの実施形態では、ゲームコマンドの別個のコピーは、クライアント810から、ゲームサーバ825及びビデオサーバシステム820に通信する。ゲームコマンドの通信は、随意に、コマンドの識別情報に依存している。ゲームコマンドは、随意に、オーディオストリームまたはビデオストリームをクライアント810Aに提供するために使用される異なるルートまたは通信チャネルを経由して、クライアント810Aから通信する。
ゲームサーバ825は、随意に、ビデオサーバシステム820と異なるエンティティによって動作する。例えば、ゲームサーバ825は、複数人参加型ゲームの発行者によって動作し得る。この例では、ビデオサーバシステム820は、随意に、ゲームサーバ825によって、クライアントとして見なされ、随意に、先行技術のゲームエンジンを実行する先行技術のクライアントであるゲームサーバ825の視点から現れるように構成されている。ビデオサーバシステム820とゲームサーバ825との間の通信は、随意に、ネットワーク815を介して発生する。したがって、ゲームサーバ825は、ゲーム状態情報を複数のクライアント(それらの1つがゲームサーバシステム820である)に送信する先行技術の複数人参加型ゲームサーバであり得る。ビデオサーバシステム820は、同時に、ゲームサーバ825の複数のインスタンスと通信するように構成され得る。例えば、ビデオサーバシステム820は、複数の異なるビデオゲームを異なるユーザに提供するように構成されることができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ825によってサポートされ得る、及び/または異なるエンティティによって発行され得る。いくつかの実施形態では、ビデオサーバシステム820のいくつかの地理的に分散されたインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成されている。ビデオサーバシステム820のこれらのインスタンスのそれぞれは、ゲームサーバ825の複数の同じインスタンスと通信し得る。ビデオサーバシステム820と1つ以上のゲームサーバ825との間の通信は、随意に、専用通信チャネルを介して発生する。例えば、ビデオサーバシステム820は、これらの2つのシステム間の通信に専用である高帯域チャネルを介して、ゲームサーバ825に接続され得る。
ビデオサーバシステム820は、少なくとも、ビデオソース830、入出力デバイス845、プロセッサ850、及び非一過性ストレージ855を備える。ビデオサーバシステム820は、1つのコンピューティングデバイスを含み得る、または複数のコンピューティングデバイス間で分散され得る。これらのコンピューティングデバイスは、随意に、ローカルエリアネットワーク等の通信システムを介して接続される。
ビデオソース830は、例えば、動画を形成するストリーミングビデオまたは一連のビデオフレームであるビデオストリームを提供するように構成されている。いくつかの実施形態では、ビデオソース830は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、ゲームコマンドをプレイヤーから受信するように、及び受信コマンドに基づいて、ビデオゲームの状態のコピーを維持するように構成されている。このゲーム状態は、ゲーム環境のオブジェクトの位置と、一般的に視点とを含む。ゲーム状態は、また、オブジェクトの特性、画像、色及び/またはテクスチャを含み得る。
ゲーム状態は、一般的に、ゲームルール、ならびに移動、回転、攻撃、焦点の設定、相互作用、使用、及び/または同様なこと等のゲームコマンドに基づいて維持される。ゲームエンジンの一部は、随意に、ゲームサーバ825内に配置される。ゲームサーバ825は、地理的に分散したクライアントを使用して、複数プレイヤーから受信されたゲームコマンドに基づいてゲームの状態のコピーを維持し得る。これらの場合、ゲーム状態は、ゲームサーバ825によって、ビデオソース830に提供され、ゲーム状態のコピーは記憶され、レンダリングが行われる。ゲームサーバ825は、ネットワーク815を介して、クライアント810から直接ゲームコマンドを受信し得る、及び/またはビデオサーバシステム820を介してゲームコマンドを受信し得る。
ビデオソース830は、一般的に、レンダリングロジック(例えば、ストレージ855等のコンピュータ可読媒体上に記憶されるハードウェア、ファームウェア、及び/またはソフトウェア)を含む。このレンダリングロジックは、ゲーム状態に基づいて、ビデオストリームのビデオフレームを作成するように構成されている。レンダリングロジックの全てまたは一部は、随意に、グラフィック処理ユニット(GPU)内に配置される。レンダリングロジックは、一般的に、ゲーム状態及び視点に基づいて、オブジェクト間の3次元空間関係を判定するように、及び/または適切なテクスチャを適用するよう等に構成されている処理段階を含む。レンダリングロジックは、未加工のビデオを作り出し、その次に、未加工のビデオは、通常、クライアント810に通信する前にエンコードされる。例えば、未加工のビデオは、Adobe Flash(登録商標)規格、.wav、H.264、H.263、On2、VP6、VC−1、WMA、Huffyuv、Lagarith、MPG−x.、Xvid.、FFmpeg、x264、VP6−8、realvideo、mp3などに従ってエンコードされ得る。エンコードプロセスは、リモートデバイス上のデコーダに送達するための随意にパッケージ化されたビデオストリームを作り出す。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。一般的なフレームサイズは、800×600、1280×720(例えば、720p)、1024x768を含むが、任意の他のフレームサイズを使用してもよい。フレームレートは、1秒当たりのビデオフレーム数である。ビデオストリームは、異なる種類のビデオフレームを含み得る。例えば、H.264規格は「P」フレーム及び「I」フレームを含む。Iフレームは表示デバイス上で全てのマクロブロック/画素をリフレッシュする情報を含む一方で、Pフレームはそれらのサブセットをリフレッシュする情報を含む。Pフレームは、一般的に、Iフレームよりも小さいデータサイズである。本明細書に使用されるような用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するために必要なバイトを指すように使用される。
代替実施形態では、ビデオソース830は、カメラ等のビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含まれる可能性がある遅延ビデオまたはライブビデオを生成するために使用され得る。結果として生じるビデオストリームは、随意に、レンダリング画像、及び静止画またはビデオカメラを使用して記録された画像の両方を含む。ビデオソース830は、また、ビデオストリームに含まれる事前に記録されたビデオを記憶するように構成されているストレージデバイスを含み得る。ビデオソース830は、また、オブジェクト(例えば、人)の動きまたは位置を検出するように構成されている動きまたは位置感知デバイスと、ゲーム状態を判定するように、または検出された動き及び/または位置に基づくビデオを作り出すように構成されているロジックとを含み得る。
ビデオソース830は、随意に、他のビデオ上で設置されるように構成されているオーバーレイを提供するように構成されている。例えば、これらのオーバーレイは、コマンドインターフェース、命令のログ、ゲームプレイヤーへのメッセージ、他のゲームプレイヤーの画像、他のゲームプレイヤーのビデオフィード(例えば、ウェブ画像ビデオ)を含み得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント810Aの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び/または同等物を含み得る。オーバーレイの一例では、プレイヤーの声は、オーディオストリームにオーバーレイされる。ビデオソース830は、随意に、1つ以上の音源をさらに含む。
ビデオサーバシステム820が2人以上のプレイヤーからの入力に基づいてゲーム状態を維持するように構成されている実施形態では、各プレイヤーは、視野の位置及び方向を含む異なる視点を有し得る。ビデオソース830は、随意に、その視点に基づいて、プレイヤー毎に別個のビデオストリームを提供するように構成されている。さらに、ビデオソース830は、クライアント810のそれぞれと異なるフレームサイズ、フレームデータサイズ、及び/またはエンコードを提供するように構成され得る。ビデオソース830は、随意に、3Dビデオを提供するように構成されている。
入出力デバイス845は、ビデオサーバシステム820が、ビデオ、コマンド、情報に関する要求、ゲーム状態、視線情報、デバイスの動き、デバイスの場所、ユーザ運動、クライアント識別情報、プレイヤー識別情報、ゲームコマンド、セキュリティ情報、音声、及び/または同等物等の情報を送信及び/または受信するように、構成されている。入出力デバイス845は、一般的に、ネットワークカードまたはモデム等の通信ハードウェアを含む。入出力デバイス845は、ゲームサーバ825、ネットワーク815、及び/またはクライアント810と通信するように構成されている。
プロセッサ850は、ロジック(例えば、本明細書に考察されるビデオサーバシステム820の様々な構成要素内に含まれるソフトウェア)を実行するように構成されている。例えば、プロセッサ850は、ビデオソース830、ゲームサーバ825、及び/またはクライアント修飾子860の機能を実現するために、ソフトウェア命令でプログラムされ得る。ビデオサーバシステム820は、随意に、プロセッサ850の2つ以上のインスタンスを含む。プロセッサ850は、また、ビデオサーバシステム820によって受信されたコマンドを実行するために、または、本明細書に考察されるゲームシステム800の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされ得る。プロセッサ850は1つ以上のハードウェアデバイスを含み得る。プロセッサ850は電子プロセッサである。
ストレージ855は、非一過性アナログ及び/またはデジタルストレージデバイスを含む。例えば、ストレージ855は、ビデオフレームを記憶するように構成されているアナログストレージデバイスを含み得る。ストレージ855は、コンピュータ可読デジタルストレージ(例えば、ハードドライブ、光学式ドライブ、またはソリッドステートストレージ)を含み得る。ストレージ855は、(例えば、適切なデータ構造またはファイルシステムを用いて)ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレームと両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び/または同等物を記憶するように構成されている。ストレージ855は、随意に、複数のデバイス間で分散される。いくつかの実施形態では、ストレージ855は、本明細書の他の箇所で考察されるビデオソース830のソフトウェア構成要素を記憶するように構成されている。これらの構成要素は、必要なときに、セットアップする準備ができているフォーマットで記憶され得る。
ビデオサーバシステム820は、随意に、クライアント修飾子860をさらに備える。クライアント修飾子860は、クライアント810Aまたは810B等のクライアントの能力をリモートで判定するように構成されている。これらの能力は、クライアント810A自体の能力、及びクライアント810Aとビデオサーバシステム820との間の1つ以上の通信チャネルの能力の両方を含み得る。例えば、クライアント修飾子860は、ネットワーク815を経由して、通信チャネルをテストするように構成され得る。
クライアント修飾子860は、手動で、または自動的に、クライアント810Aの能力を判定(例えば、発見)することができる。手動判定は、能力を提供するために、クライアント810Aのユーザと通信することと、ユーザに質問することとを含む。例えば、いくつかの実施形態では、クライアント修飾子860は、クライアント810Aのブラウザ内で、画像、テキスト、及び/または同等物を表示するように構成されている。一実施形態では、クライアント810Aは、ブラウザを含むHMDである。別の実施形態では、クライアント810Aは、HMD上に表示され得るブラウザを有するゲームコンソールである。表示されるオブジェクトは、ユーザに、クライアント810Aのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、ディスプレイ解像度等の情報を入力することを要求する。ユーザによって入力された情報は、クライアント修飾子860に戻るように通信する。
自動判定は、例えば、クライアント810A上のエージェントの実行によって、及び/またはテストビデオをクライアント810Aに送信することによって、発生し得る。当該エージェントは、ウェブページに組み込まれる、またはアドオンとしてインストールされるjava(登録商標)スクリプト等のコンピューティング命令を備え得る。当該エージェントは、随意に、クライアント修飾子860によって提供される。種々の実施形態では、当該エージェントは、クライアント810Aの処理能力、クライアント810Aのデコード能力及び表示能力、遅延時間の信頼性、ならびにクライアント810Aとビデオサーバシステム820との間の通信チャネルの帯域幅、クライアント810Aのディスプレイ種類、クライアント810A上に存在するファイアウォール、クライアント810Aのハードウェア、クライアント810A上で実行するソフトウェア、クライアント810A内のレジストリ項目、及び/または同等物を見つけることができる。
クライアント修飾子860は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体上に記憶されるソフトウェアを含む。クライアント修飾子860は、随意に、ビデオサーバシステム820の1つ以上の他の要素から分離しているコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアント修飾子860は、クライアント810と、ビデオサーバシステム820の2つ以上のインスタンスとの間の通信チャネルの特徴を判定するように構成されている。これらの実施形態では、クライアント修飾子によって発見された情報は、ビデオサーバシステム820のどのインスタンスがストリーミングビデオをクライアント810の1つに送達することに最良に適しているかを判定するために使用されることができる。
本明細書に定義される様々な実施形態は、本明細書に開示される様々な特徴を使用して、特定の実施態様に組み合わされ得る、または組み立てられ得ることを理解されたい。したがって、提供される例は、単なるいくつかの可能である例であり、多くの実施態様を定義する様々な要素を組み合わせることによって可能である様々な実施態様に限定されない。いくつかの例では、いくつかの実施態様は、開示されるまたは同等の実施態様の主旨から逸脱することなく、より少ない要素を含み得る。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベース電子機器またはプログラム可能家庭用電子機器、ミニコンピュータ、メーンフレームコンピュータ等を含む様々なコンピュータシステム構成で実践され得る。本開示の実施形態は、また、タスクが有線ベースネットワークまたは無線ネットワークを経由してリンクされるリモート処理デバイスによって行われる分散コンピューティング環境で実践されることができる。
上記の実施形態を留意して、本開示の実施形態が、コンピュータシステム内に記憶されるデータを含有する様々なコンピュータ実施動作を採用することができることを理解されたい。これらの動作は、物理量の物理的処置を要求するものである。本開示の実施形態の一部を形成する本明細書に説明される動作のいずれかは、有用な機械動作である。本発明の実施形態は、また、これらの動作を行うためのデバイスまたは装置に関する。本装置は、特別に、要求された目的のために構成されることができる、または、本装置は、コンピュータ内に記憶されるコンピュータプログラムによって選択的にアクティブになる、または構成される汎用コンピュータであり得る。特に、様々な汎用マシンは、本明細書の教示に従って書き込まれたコンピュータプログラムで使用されることができる、または、様々な汎用マシンは、より特殊な装置を構成し、要求動作を行うのにより便利であり得る。
本開示は、また、コンピュータ可読媒体上のコンピュータ可読コードとして、具体化されることができる。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、当該データは、その後、コンピュータシステムによって読み取られることができる。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ(NAS)、読取専用メモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、ならびに他の光学データストレージデバイス及び非光学データストレージデバイスを含む。コンピュータ可読媒体は、ネットワーク連結コンピュータシステムを通して分散されるコンピュータ可読有形媒体を含み得、これにより、コンピュータ可読コードは、分散様式で記憶及び実行される。
本方法の動作が特定の順序で説明されたが、オーバーレイ動作の処理が所望の方法で行われる限り、他のハウスキーピング動作は動作間に行われ得る、または動作は、わずかに異なる時間で発生するように調節され得る、もしくは、処理に関連付けられる様々な間隔における処理動作の発生を可能にするシステム内で分散され得ることを理解されたい。
理解の明確性の目的のために、前述の開示がいくつかの詳細で説明されているが、ある変更及び修正が添付の「特許請求の範囲」の範囲内で実践されることができることが明白であろう。したがって、本実施形態は、例証であり制限するものではないとして考慮され、本開示の実施形態は、本明細書に与えられた詳細に限定されないが、添付の「特許請求の範囲」の範囲内及びその均等物の範囲内で修正され得る。