以下の詳細説明は例示目的で多数の具体的な詳細を含むが、当業者の誰もが以下の詳細の多数の変形及び改変が本開示の範囲内であることを理解するであろう。従って、後述の本開示の態様は、この説明に続く特許請求項の普遍性を失うことなく、かつ特許請求項に制限を課すことなく、明記される。
概して、本開示の様々な実施形態は、ユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースを実施するシステム及び方法を説明する。本開示の実施形態は、位置ベースコンパニオンインターフェースを通してゲームアプリケーションの付加的使用を提供する。コンパニオンインターフェースは、ユーザのゲームプレイ内のキャラクタの位置に基づいて生成されるコンテキスト関連情報(例えばメッセージ通信、補助情報など)を含む。位置ベース情報は、ユーザのゲームプレイ中に定期的に収集されるスナップショットのために生成された定義パラメータを含む。具体的には、スナップショットは、ユーザのゲームプレイに関するメタデータ及び/または情報を含み、スナップショットに対応するゲームアプリケーション内のジャンプ箇所で、該当ゲームアプリケーションの別のインスタンスを使用可能にするように構成可能である。コンテキスト関連情報はまた、同じゲームアプリケーションをプレイする他のユーザのゲームプレイ中に収集される情報も含む。このようにして、ユーザは、ユーザの現在の進捗(例えばゲーム世界における位置など)に基づいて、コンテキスト関連情報を受信することができる。例えば、コンテキスト関連情報は、ユーザのゲームプレイにおいて補助を提供することができ、情報は、ゲームプレイ位置、過去のゲームプレイ、及び予想されるゲームプレイに基づき得る。さらに、コンパニオンインターフェースを使用して、ユーザからのメッセージを作成することができる。例えば、メッセージはヘルプの要求であり得、メッセージは、対象ユーザに配信され、または定義されたグループ(例えばユーザの友達)に一斉送信され、該当コンパニオンインターフェース内で表示可能である。コンパニオンインターフェースは、ゲームアプリケーションをプレイする他のユーザにより作成されたユーザへのメッセージを含み得る。他の実施例では、メッセージを作成し、1人以上の対象ユーザに配信することで、ゲームプレイを向上させることができる。例えば、ゲーム世界内の地理的位置に到達する、またはボスを倒すなどのイベントが発生すると、メッセージは、対象ユーザのコンパニオンインターフェースに表示されるように引き起こされ得る。メッセージはまた、個人的に設定してもよく、個人対個人のゲーム、またはユーザ間通信を可能にする。すなわち、ゲームアプリケーションは、該当コンパニオンインターフェースを介してマルチプレーヤ環境で使用してもよく、ゲームアプリケーションをプレイする2人以上のユーザ間でリアルタイム通信が可能であり、各コンパニオンインターフェースは、他のユーザのゲームプレイに関連する情報を提供する。コンテキスト関連情報は、ユーザのゲームプレイを通してユーザを手引するエキスパートによる補助のオファー、またはユーザのゲームプレイ内のタスクをエキスパートが達成する補助のオファーを含み得る。
様々な実施形態の上記の一般的な理解と共に、ここで実施形態の例示的な詳細が、様々な図面を参照して説明される。
本明細書を通して、「ゲームアプリケーション」への言及は、入力コマンドの実行により指示される任意の種類のインタラクティブアプリケーションを表すことを意図する。単に例示の目的のために、インタラクティブアプリケーションには、ゲーム、ワード処理、映像処理、ビデオゲーム処理などのアプリケーションが含まれる。さらに、ビデオゲーム及びゲームアプリケーションという用語は、置換可能である。
図1Aは、本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースを実施するために使用されるシステム10であって、ゲームアプリケーションは、ローカルコンピューティングデバイス上またはクラウドゲームネットワークを介して実行することができる、システム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は、クライアントデバイス100を通して、ゲームプロセッサ201上で実行されるゲームアプリケーションのインスタンスとインタラクションを行い得る。クライアントデバイス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から受信されるコンテキスト関連情報(例えば補助情報、メッセージなど)を作成することができ、コンテキスト関連情報は、位置ベース情報(例えばスナップショット)を用いて作成される。コンテキスト関連情報はまた、ゲームアプリケーションをプレイする他のユーザのゲームプレイから収集された情報にも基づき得る。具体的には、生成器213は、ゲームプレイの特定のコンテキスト(例えばキャラクタの現在位置、ゲーム状態情報など)に関して、特定のゲームアプリケーションのユーザ5のゲームプレイの進捗を特定し(例えばスナップショットに基づいて)、ユーザ5のゲームプレイを表示するデバイスとは分離したデバイス11上で表示可能なコンパニオンインターフェースに配信してもよいコンテキスト関連情報を特定するように構成可能である。例えば、コンテキスト関連情報は、ゲームアプリケーションを進行する補助を提供する情報を提供し得る。コンテキスト関連情報は、ユーザ5のゲームプレイが行く場所を予測するように構成された予測エンジン214により提供される情報を検討することで、キャラクタが訪れるエリア、ゲームプレイを進めるために求められるタスク、ゲームプレイを進めるために必要な財産(例えば求められるタスクを達成するために必要な財産)などを含み得る。コンパニオンインターフェースを使用して、他のユーザによるインタラクションに対し、ユーザ5によるコンテキスト関連情報を作成してもよい。例えば、コンパニオンインターフェースに表示される位置ベース情報(例えばレーダーマッピング、ウェイポイントなど)は、インタラクティブコンテンツ(例えばクエスト、課題、メッセージなど)を作成することを容易にし得る。すなわち、ユーザ5は、位置ベース情報(例えばスナップショット)を使用して、インタラクティブコンテキスト関連コンテンツを作成してもよい。別の実施例では、コンパニオンインターフェースを使用して、ユーザからのメッセージを作成することができ、メッセージは、ユーザの友だちに助けを求める、またはインタラクティブなコミュニケーション(例えばマルチプレーヤでのゲーム、からかいなど)を促進することを対象にし得る。コンパニオンインターフェースを使用して、他のユーザからのメッセージを表示し得る。コンパニオンインターフェースを使用して、補助のオファーを表示し得る。
例えば、実施形態では、位置ベース情報は、群衆ソーシング環境内の同じゲームアプリケーションをプレイする複数のユーザの現在及び/または過去のゲームプレイに基づき得るため、情報は、複数のゲームプレイの観察及び/または分析を通して決定され得る。このようにして、群衆ソースコンテンツはゲームプレイ中に発見する場合があり、コンテンツは、同じゲームアプリケーションをプレイする他のプレーヤに役立ち得る、またはこれらの他のプレーヤに向上したユーザ体験を提供し得る。別の実施形態では、コンパニオンインターフェース内で提供される情報は、同じゲームアプリケーションを同時にプレイしているユーザのゲームプレイに関連し得(例えば情報は、ゲームアプリケーションを同時にプレイしているユーザの友達のゲームプレイに関連し、情報は友達間のリアルタイムのインタラクションを提供する)、情報は、ユーザのゲームプレイを進める、または向上したユーザ体験を提供する。すなわち、それぞれのコンパニオンインターフェースは、ユーザ間のリアルタイムのインタラクションを提供する。さらに別の実施形態では、ユーザは孤立してゲームアプリケーションをプレイし(例えば単独でプレイし)、コンパニオンインターフェースを介して、第1のユーザのゲームプレイを進めるのに役立つ情報、または向上したユーザ体験を提供する情報を受信する。1人プレイの場合、情報(例えばヘルプ、コーチングなど)は、記録された映像、画像、及び/またはテキストコンテンツの形態で配信され得る。この情報は、リアルタイムで生成される場合はなく、それぞれのコンパニオンインターフェースを介して伝達される、ユーザの利益となる情報を生成する役割のゲーム開発者(例えばゲームソフトメーカ、ゲーム機メーカなどにより採用されているゲーム開発者)に関連する人により生成され得る。さらに、第3者(営利ベース、非営利ベースなど)は、ゲームをする公衆の利益となる情報を生成する役目を、自ら引き受け得る。さらに、情報は、第1のユーザの友達により、そのプレーヤのためだけの利益、またはグループ内の友達のためだけの利益のために、生成されてもよい。また情報は、ゲームインターフェース(例えばクラウドソースのゲームインターフェース)をプレイする他の関連する及び/または無関連ユーザにより生成されてもよい。さらに、コンパニオンインターフェースの実施態様に使用される構成要素は、ユーザのローカルの(例えばデバイス11またはクライアントデバイス100上に配置された)ゲームプロセッサ内に含まれてもよく、またはバックエンドサーバ(例えばゲームサーバ2015)内に含まれてもよい。
図示されるように、コンパニオンインターフェースは、表示及びインタラクションのためにデバイス11(例えばタブレット)へ配信され、デバイス11は、ユーザ5のインタラクションのためにゲームアプリケーションを実行する及び/または実行することを支援するように構成されたクライアントデバイス100とは分離していてもよい。例えば、第1の通信チャネルは、ゲームサーバ205とクライアントデバイス100との間に確立されてもよく、別個の第2の通信チャネルは、ゲームサーバ205とデバイス11との間に確立されてもよい。
図1Bは、本開示の一実施形態による、該当ユーザのローカルで実行される1つ以上のゲームアプリケーションをプレイする1人以上のユーザに対しゲーム制御を提供するシステム106Bであって、バックエンドサーバサポート(例えばゲームサーバ205を介してアクセス可能)は、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施し得る、システム106Bを例示する。一実施形態では、システム106Bは、図1Aのシステム10及び図2のシステム200と連携して作動し、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施する。ここで図面を参照すると、同様の参照番号は、同一または対応する部分を示す。
図1Bに示されるように、複数のユーザ115(例えばユーザ5A、ユーザ5B、・・・、ユーザ5N)は、複数のゲームアプリケーションをプレイしており、ゲームアプリケーションのそれぞれは、該当ユーザの該当クライアントデバイス100(例えばゲーム機)のローカルで実行される。さらに、複数のユーザ115のそれぞれは、前に紹介したように、デバイス11上に表示するためのコンパニオンインターフェースを受信及び/または生成するように構成されたデバイス11へアクセスすることができ、コンパニオンインターフェースは、前述のように、該当ゲームアプリケーションをプレイする該当ユーザにコンテキスト関連情報を提供する。クライアントデバイス100のそれぞれは、該当ゲームアプリケーションのローカル実行が行われる点で、同様に構成され得る。例えば、ユーザ5Aは、該当クライアントデバイス100上の第1のゲームアプリケーションをプレイしていてもよく、第1のゲームアプリケーションのインスタンスは、該当ゲームタイトル実行エンジン111により実行される。第1のゲームアプリケーションを実施するゲームロジック126A(例えば実行可能コード)は、該当クライアントデバイス100上に記憶され、第1のゲームアプリケーションを実行するために使用される。例示として、ゲームロジックは、該当クライアントデバイス100に、携帯媒体(例えばフラッシュドライブ、コンパクトディスクなど)を介して、またはネットワークを介して配信され得る(例えばインターネット150を介してゲームプロバイダからダウンロードされ得る)。例えば、ユーザ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は、ゲームアプリケーションをプレイしている該当ユーザのために、シングルプレーヤモードで作動している。後述されるように、本開示の一実施形態によれば、ゲームサーバ205を介したバックエンドサーバサポートにより、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースサービスが提供され得る。
別の実施形態では、複数のクライアントデバイス100は、特定のゲームアプリケーションをそれぞれプレイしている該当ユーザのために、マルチプレーヤモードで作動している。この場合、ゲームサーバを介したバックエンドサーバサポートは、マルチプレーヤ処理エンジン119を通すなどして、マルチプレーヤ機能を提供し得る。具体的には、マルチプレーヤ処理エンジン119は、特定のゲームアプリケーションのマルチプレーヤゲームセッションを制御するように構成される。例えば、マルチプレーヤ処理エンジン119は、マルチプレーヤゲームセッションに参加しているユーザ及び/またはプレーヤのそれぞれと通信セッションを確立及び維持するように構成されたマルチプレーヤセッションコントローラ116と通信する。このように、マルチプレーヤセッションコントローラ116により制御されることにより、セッション内のユーザは相互通信を行うことができる。
さらに、マルチプレーヤ処理エンジン119は、各ユーザの該当ゲーム環境内のユーザ間のインタラクションを可能にするために、マルチプレーヤロジック118と通信する。特に、状態共有モジュール117は、マルチプレーヤゲームセッション内のユーザそれぞれの状態を管理するように構成される。例えば、状態データは、特定箇所の該当ユーザの(ゲームアプリケーションの)ゲームプレイ状態を定義するゲーム状態データを含み得る。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイなどを含み得る。このようにして、ゲーム状態データにより、ゲームアプリケーション内の該当箇所に存在するゲーム環境の生成が可能となる。ゲーム状態データはまた、CPU、GPU、及びメモリの状態、レジスタ値、プログラムカウンタ値、プログラム可能DMA状態、DMAのバッファされたデータ、音声チップ状態、CD‐ROM状態など、ゲームプレイをレンダリングするために使用される全てのデバイスの状態を含み得る。ゲーム状態データはまた、ビデオゲームをその箇所から実行するために、実行可能コードのどの部分をロードする必要があるかを特定し得る。ゲーム状態データは、図1A及び図2のデータベース140に記憶されてもよく、状態共有モジュール117によりアクセス可能である。
さらに、状態データは、該当プレーヤのビデオゲームを個人的に設定する情報を含むユーザ保存データを含み得る。これには、ユーザがプレイするキャラクタに対応付けられた情報が含まれるため、ビデオゲームは、そのユーザに固有であり得るキャラクタ(例えば位置、形状、外観、衣服、兵器類など)でレンダリングされる。このようにして、ユーザ保存データにより、該当ユーザのゲームプレイ用のキャラクタを生成することが可能となり、キャラクタは、該当ユーザが現在体験しているゲームアプリケーション内の箇所に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイする時に該当ユーザ115Aが選択したゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残存命数、利用可能命数の可能総数、防護具、トロフィ、タイムカウンタ値などを含み得る。ユーザ保存データはまた、例えば該当ユーザ115Aを識別するユーザプロファイルデータを含み得る。ユーザ保存データは、データベース140に記憶され得る。
このようにして、状態共有データ117及びマルチプレーヤロジック118を用いるマルチプレーヤ処理エンジン119は、マルチプレーヤゲームセッションに参加するユーザのゲーム環境のそれぞれに、オブジェクト及びキャラクタをオーバーレイ/挿入することができる。例えば、第1のユーザのキャラクタは、第2のユーザのゲーム環境にオーバーレイ/挿入される。これにより、各自それぞれのゲーム環境(例えば画面上に表示される)を介して、マルチプレーヤゲームセッション内のユーザ間のインタラクションが可能になる。
さらに、ゲームサーバ205を介したバックエンドサーバサポートは、コンパニオンアプリケーション生成器213により生成されたコンパニオンインターフェースを通して提供される位置ベースコンパニオンアプリケーションサービスを提供し得る。前に紹介したように、生成器213は、ユーザ5へ配信される、またはユーザ5から受信されるコンテキスト関連情報(例えば補助情報、メッセージなど)を作成するように構成される。情報は、特定のアプリケーションのユーザ5のゲームプレイに基づいて(例えばスナップショット内に提供される情報に基づいて)生成される。このようにして、生成器213は、ユーザ5のゲームプレイのコンテキストを特定し、デバイス11(例えばユーザ5のゲームプレイを表示するデバイスとは分離したデバイス)上に表示可能なコンパニオンインターフェースに配信可能なコンテキスト関連情報を提供することができる。
図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へアクセスすることができ、コンパニオンインターフェースは、前述のように、該当ゲームアプリケーションをプレイする該当ユーザにコンテキスト関連情報を提供する。具体的には、該当ユーザ5Lのクライアントデバイス100’は、インターネットなどのネットワーク150を介してゲームアプリケーションへのアクセスを要求するように、ならびに、ゲームサーバ205により実行され、該当ユーザ5Lに対応付けられたディスプレイデバイスに配信されるゲームアプリケーション(例えばビデオゲーム)のインスタンスをレンダリングするように、構成される。例えば、ユーザ5Lは、クライアントデバイス100’を通して、ゲームサーバ205のゲームプロセッサ上で実行されるゲームアプリケーションのインスタンスとインタラクションを行い得る。より具体的には、ゲームアプリケーションのインスタンスは、ゲームタイトル実行エンジン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)へ配信される、または該当ユーザ(例えばユーザ5L)から受信されるコンテキスト関連情報(例えば補助情報、メッセージなど)を作成するように構成される。情報は、特定のアプリケーションのユーザのゲームプレイに基づいて(例えばスナップショット内に提供される情報に基づいて)生成される。このようにして、生成器213は、該当ユーザのゲームプレイのコンテキストを特定し、デバイス11(例えばユーザ5Lのゲームプレイを表示するデバイスとは分離したデバイス)上に表示可能なコンパニオンインターフェースに配信可能なコンテキスト関連情報を提供することができる。
図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は、ソーシャルメディアマネジャ295を通しネットワークインターフェース290を介して、ユーザデバイス230及びソーシャルメディアプロバイダ240と通信し得る。ソーシャルメディアマネジャ295は、1人以上の友達と関連するように構成され得る。一実施形態では、各ソーシャルメディアプロバイダ240は、ユーザソーシャルネットワーク接続を示す少なくとも1つのソーシャルグラフ245を含む。
ユーザU0は、ゲームセッションマネジャ285を介して、GCS210により提供されるサービスにアクセスすることができ、ユーザU0は、図1のユーザ5を表し得る。例えば、アカウントマネジャ274により、GCS210へのユーザU0の認証及びアクセスが可能になる。アカウントマネジャ274は、会員ユーザに関する情報を記憶する。例えば、各会員ユーザのユーザプロファイルは、アカウントマネジャ274により管理され得る。このように、アカウントマネジャ274は、認証目的で会員情報を使用することができる。例えば、アカウントマネジャ274は、会員ユーザに関するユーザ情報を更新及び管理するために使用され得る。さらに、会員ユーザが所持するゲームタイトルは、アカウントマネジャ274により管理され得る。このようにして、データストア264に格納されるゲームアプリケーションは、これらのゲームアプリケーションを所持する全ての会員ユーザに利用可能となっている。
一実施形態では、ユーザ、例えばユーザU0は、ユーザデバイス230により、ネットワーク220を介した接続を通して、GCS210及びソーシャルメディアプロバイダ240により提供されるサービスにアクセスすることができる。ユーザデバイス230には、プロセッサ及びメモリを有する、有線または無線の、携帯または非携帯の任意の種類のデバイスが含まれ得る。一実施形態では、ユーザデバイス230は、スマートフォン、タブレットコンピュータ、または携帯フォームファクタでタッチスクリーン能力を提供するハイブリッドの形態であり得る。1つの例示的なデバイスには、オペレーティングシステムを作動させる携帯電話デバイスであって、ネットワーク220を介して取得され、ローカル携帯デバイス(例えばスマートフォン、タブレット、ラップトップ、デスクトップなど)上で実行され得る様々なアプリケーション(app)へのアクセスが与えられた携帯電話デバイスが含まれ得る。
ユーザデバイス230は、ユーザU0が入力コマンド236を送信し、GCS210及びソーシャルメディアプロバイダ240から受信されたデータ及び/または情報235を表示するインターフェースとして機能するディスプレイ232を含む。ディスプレイ232は、タッチスクリーン、あるいはフラットパネルディスプレイ、ブラウン管(CRT)、または表示をレンダリング可能な他のデバイスにより典型的に提供されるディスプレイとして構成され得る。あるいは、ユーザデバイス230は、デスクトップコンピュータまたはラップトップコンピュータと同様に、デバイスとは分離した自身のディスプレイ232を有し得る。ユーザU0は、位置ベースコンパニオンインターフェースを実施するのに、追加のデバイス231(例えば図1Aのデバイス11)を利用可能であり得る。
一実施形態では、ユーザデバイス13は、GCS210と通信して、ユーザU0がゲームアプリケーションをプレイすることを可能にするように構成される。いくつかの実施形態では、GCS210は、ホストマシンのハイパーバイザ上で作動する複数の仮想マシン(VM)を含んでもよく、1つ以上の仮想マシンは、ホストのハイパーバイザが使用可能なハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。例えば、ユーザU0は、ゲーム選択エンジン275を介して、ビデオゲームデータストア264内の利用可能なゲームアプリケーションを選択し得る(例えばゲームタイトルなどにより)。ゲームアプリケーションは、シングルプレーヤゲーム環境内、またはマルチプレーヤゲーム環境内で、プレイされ得る。このようにして、選択されたゲームアプリケーションは、GCS210上のゲームサーバ205により実行されるように、利用可能となり、ロードされる。一実施形態では、ゲームプレイは主にGCS210において実行されるため、ユーザデバイス230は、GCS210からゲーム映像フレーム235のストリームを受信し、ゲームプレイを駆動するユーザ入力コマンド236がGCS210へ返送される。ゲームプレイのストリーミングから受信された映像フレーム235は、ユーザデバイス230のディスプレイ232に表示される。他の実施形態では、GCS210は、複数のユーザを支援する複数のローカルコンピューティングデバイスを支援するように構成され、各ローカルコンピューティングデバイスは、シングルプレーヤゲームアプリケーションまたはマルチプレーヤゲームアプリケーション内などのゲームアプリケーションのインスタンスを実行し得る。例えば、マルチプレーヤゲーム環境で、ゲームアプリケーションがローカルで実行されている間、クラウドゲームネットワークは同時に各ローカルコンピューティングデバイスから情報(例えばゲーム状態データ)を受信し、その情報をローカルコンピューティングデバイスのうちの1つ以上にわたって適宜配信し、これにより各ユーザは、マルチプレーヤゲームアプリケーションのゲーム環境で他のユーザとインタラクションを行うことができる(例えばビデオゲーム内の該当キャラクタを介して)。このようにして、クラウドゲームネットワークは、マルチプレーヤゲーム環境内のユーザそれぞれのゲームプレイを調整し、組み合わせる。
一実施形態では、ユーザU0がプレイしたい利用可能なゲームタイトルを選択した後、選択されたゲームタイトルのゲームセッションは、ユーザU0によりゲームセッションマネジャ285を通して開始され得る。ユーザU0が前回のゲームプレイ停止箇所からゲームプレイを再開することができるように、ゲームセッションマネジャ285は、まずデータストア140内のゲーム状態ストアにアクセスし、(選択されたゲームに関して)ユーザU0がプレイした最後のセッションの保存ゲーム状態が存在する場合は、これを取得する。一度レジューム箇所または開始箇所が特定されると、ゲームセッションマネジャ285は、ゲームプロセッサ201内のゲーム実行エンジンに、ゲームコードストア261から選ばれたゲームタイトルのゲームコードを実行するように通知し得る。ゲームセッションが開始された後、ゲームセッションマネジャ285は、ネットワークインターフェース290を介して、例えばユーザデバイス230などのユーザデバイスに、ゲーム映像フレーム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は、ユーザデバイス230に位置ベース情報を配信する場合があり、デバイス230は、コンテキスト関連情報を含むコンパニオンアプリケーションインターフェースを生成し表示するように構成される。
さらに、ユーザデバイス230は、ユーザU0または別のユーザのゲームプレイにおいて生成されたスナップショットを用いて、ゲームアプリケーション内の選択箇所にジャンプすることを可能にするインターフェースを提供するように構成される。例えば、ジャンプゲーム実行エンジン216は、該当スナップショットにアクセスし、スナップショットに基づいてゲームアプリケーションのインスタンスをインスタンス化し、スナップショットに対応するゲームアプリケーション内の箇所からゲームアプリケーションの開始を実行するように構成される。このようにして、スナップショットにより、要求ユーザは、スナップショットに対応する箇所で該当ユーザのゲームプレイ内にジャンプすることが可能になる。例えば、ユーザU0は、任意の他のユーザのゲームプレイを体験する、または自身のゲームプレイを戻って見直す及び/または再生することができる。すなわち、該当ゲームプレイのスナップショットを介して、要求ユーザは、そのゲームプレイ内で使用され、そのゲームプレイに対応したキャラクタを用いて、ゲームアプリケーションをプレイする。ジャンプゲーム実行エンジン216は、図2に示されるようにゲームサーバ205の外部で実行され得る、または図1Aに示されるようにゲームサーバ205の内部で実行され得る。
図3~8は、ユーザがゲームアプリケーションをプレイする状況において説明される。概して、ゲームアプリケーションは、ユーザ入力に応答する任意のインタラクティブゲームであり得る。具体的に、図3~8は、ユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースを説明し、コンパニオンインターフェースは、ユーザのゲームプレイ内のキャラクタの位置に基づいて生成されたコンテキスト関連情報(例えばメッセージ通信、補助情報など)を含む。
ネットワークを介して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細な説明と共に、本開示の一実施形態による、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施する方法が、図3のフロー図300に関連してここで説明される。フロー図300は、ユーザのクライアントデバイスに表示するためにネットワークを介して送信される、コンパニオンインターフェース内に含まれる位置ベース情報を生成する目的で、ゲームサーバ側が関わる動作のプロセス及びデータフローを例示し、クライアントデバイスは、ゲームアプリケーションをプレイするユーザのゲームプレイを表示する別のデバイスとは分離していてもよい。具体的には、フロー図300の方法は、図1及び2のコンパニオンアプリケーション生成器213により、少なくとも部分的に実行され得る。
図3において開示される本発明の実施形態は、ゲームサーバ側の立場から説明されるが、本発明の他の実施形態は、ユーザのゲームプレイを支援してゲームアプリケーションを実行するように構成され、ゲームプレイの位置ベース情報を生成するように構成されたゲームプロセッサを含むローカルユーザシステム内の位置ベースコンパニオンインターフェースと、ローカルネットワークを介して位置ベース情報を受信して、コンテキスト関連情報を表示するように構成された別のデバイスのコンパニオンアプリケーション生成器とを実施するのによく適している。例えば、コンパニオンインターフェースは、ローカル及び孤立システム内で実施され、他のユーザのゲームプレイからの情報は、コンテキスト関連情報を生成するのに必ずしも使用されるわけではない。別の実施態様では、他のユーザのゲームプレイからの情報は、別のネットワークを介してバックエンドゲームサーバから受信され、コンテキスト関連情報を生成するために使用され得る。
フロー図300は、ゲームアプリケーションを実行し、ゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を生成する動作305、310、及び315を含む。具体的には、方法は、動作305にて、ユーザのゲームプレイに対応付けられたゲームアプリケーションの第1のインスタンスをインスタンス化することを含む。前述のように、一実施形態では、ゲームアプリケーションのインスタンスは、ユーザのクライアントデバイスにてローカルで実行することができる。別の実施形態では、ゲームアプリケーションのインスタンスは、バックエンドゲームサーバのバックエンドゲーム実行エンジンにて実行してもよく、サーバは、クラウドゲームネットワークまたはゲームクラウドシステムの一部であり得る。方法は、動作310にて、ユーザのゲームプレイを表すデータを、ユーザによるインタラクションのため、第1の通信チャネルを介して第1のコンピューティングデバイスへ配信することを含む。通信チャネルは、例えばインターネットなどのネットワークを通して実施され得る。よって、第1のコンピューティングデバイスにて表示されるレンダリング画像が配信され得、レンダリング画像は、ユーザのゲームプレイに対応付けられた入力コマンドに応じて、ゲームアプリケーションのインスタンスにより生成される。
方法は、動作315にて、ユーザのゲームプレイ内のキャラクタの位置ベース情報を特定することを含む。具体的には、位置ベース情報は、ゲームアプリケーションに対応付けられたゲーム世界におけるユーザのゲームプレイ内のキャラクタの位置を参照して作られる。位置ベース情報は、前述のように、ユーザのゲームプレイ中に生成、取り込み、及び/または記憶されたスナップショット内に含まれ得る。例えば、各スナップショットは、キャラクタの位置を参照して生成されたメタデータ及び/または情報を含む。一実施形態では、メタデータ及び/または情報は、スナップショットに対応するゲームアプリケーション内の箇所から、ゲームアプリケーションのインスタンスの開始の実行を可能にするように構成される(例えばゲームプレイ内のキャラクタの位置を反映した、スナップショットが取り込まれた時のゲームプレイの状態に対応するジャンプ箇所からの開始)。例えば、スナップショットは、ゲームプレイの位置ベース情報、及び該当箇所でのゲームプレイの状態を定義するゲーム状態データを含み(例えばゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、オブジェクト属性、グラフィックオーバーレイ、キャラクタの財産、キャラクタのスキルセット、キャラクタのゲームアプリケーション内のタスク達成履歴、ゲーム世界内のキャラクタの現在の地理的位置、ユーザのゲームプレイにおけるゲームアプリケーションの進捗、キャラクタのゲームプレイの現在の状態などを含む)、よってゲーム状態データにより、ゲームプレイ内の該当箇所で存在したゲーム環境を生成することが可能となる。スナップショットは、ユーザのためにゲームアプリケーションを個人的に設定するために使用されるユーザ保存データを含んでもよく、データは、ゲームプレイ内のキャラクタ(例えば形状、外観、衣服、武器類、ゲーム難易度、ゲームレベル、キャラクタ属性など)を個人的に設定する情報を含み得る。スナップショットはまた、前述のように、ゲーム状態に関連するランダムシードデータを含み得る。
フロー図300の残りの動作は、コンパニオンアプリケーション生成器により実行してもよく、前述のように、コンパニオンアプリケーション生成器は、ローカルで、またはクラウドゲームネットワークのバックエンドサーバで実行され得る。具体的に、方法は、動作320にて、ゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を受信することを含む。第1のコンピューティングデバイスのローカルでゲームアプリケーションが実行される場合、ゲームプレイ中に生成される位置ベース情報は、ネットワークを介してローカルの第1のコンピューティングデバイスから受信され得る。例えば、位置ベース情報は、第1のコンピューティングデバイスにより生成されローカルに記憶され得る。クラウドゲームネットワークまたはゲームクラウドシステムのバックエンドゲームサーバで作動するゲーム実行エンジンにてゲームアプリケーションが実行される場合、ゲームプレイ中に生成される位置ベース情報は、クラウドゲームネットワークがゲームアプリケーションを実行し、コンパニオンインターフェースを生成するように構成されている時は内部的に、またはクラウドゲームネットワークがゲームアプリケーションを実行するように構成され、別のサーバがコンパニオンインターフェースを生成する時は外部的に、バックエンドゲームサーバから受信され得る。
方法は、動作325にて、ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を受信及び/または集約することを含む。例えば、ユーザのゲームプレイ中にスナップショットが取り込まれるのと同様に、他のユーザのゲームプレイ中にスナップショットを取り込んでもよく、前述のように、スナップショットは、他のユーザのゲームプレイに関連する位置ベース情報を含む。スナップショット及び/またはこれらのスナップショットに含まれる位置ベース情報は、ユーザデバイスのローカルで生成され、クラウドゲームネットワークまたはゲームクラウドシステムのバックエンドサーバに配信され得る、あるいはスナップショットは、他のゲームプレイを支援してゲームアプリケーションのインスタンスも実行するクラウドゲームネットワークのバックエンドサーバにて生成され得る。位置ベース情報はまた、ローカルネットワーク(サーバが、ゲームアプリケーションのインスタンスを実行し、コンパニオンアプリケーションを生成するように機能する場合のネットワーク)を通して、または遠隔ネットワーク(クラウドゲームネットワークのバックエンドサーバが、コンパニオンアプリケーションの生成とは無関係に機能する場合のネットワーク)を通して、バックエンドサーバから受信される。
スナップショット内に含まれる、または他のユーザのゲームプレイ中に生成されたスナップショットから推測されるメタデータ/情報を含むこれらのスナップショットは、位置ベース情報(ユーザのゲームプレイ中に生成)と組み合わせることで、ユーザのゲームプレイに関連する追加情報を提供し得る。例えば、ユーザのゲームプレイ中に生成された位置ベース情報を使用して、ゲームプレイ中にキャラクタがいた場所、ゲームプレイ中にキャラクタが達成したタスク、キャラクタの現在の財産及びスキル、キャラクタが現在いる位置(例えばゲーム世界内)などを特定することができる。ユーザのゲームプレイ中に生成された位置ベース情報と、スナップショット内に含まれる、または他のユーザのゲームプレイ中に生成されたスナップショットから推測されるメタデータ/情報とを組み合わせて分析することで、ゲームプレイ内のキャラクタがこの先行く場所、ゲームプレイを進めるために次に来る及び/または必要なタスク、ならびにこれらのタスクを達成するためにキャラクタが必要な財産またはスキルなど、ユーザのゲームプレイを進めるために必要な行動/財産が、統計的に特定され得る(例えば予測エンジンにより特定され得る)。
方法は、動作330にて、キャラクタの位置のコンテキスト関連情報を生成することを含み、コンテキスト関連情報は、ユーザのゲームプレイを含む複数のゲームプレイの位置ベース情報に基づいて、リアルタイムで生成される。いくつかの実施態様では、コンテキスト関連情報は、前述のように統計的予測に基づいて、実施形態におけるゲームアプリケーションを進展及び/または前進する補助を提供し得る。
例えば、コンテキスト関連情報は、メッセージの形態で提供されてもよく、メッセージを使用して、ゲームプレイを前進させる役立つ情報(例えば要求されるタスクを達成するようにユーザを導くステップ、次に何が来るかの通知など)を提供してもよい。一実施態様では、一連の関連メッセージは、ゲーム世界内のキャラクタの位置及び/または動作に応じて生成され、例えば、より大きな指示セットの一部であるチャンクサイズの指示を提供する段階的指示が生成され、各チャンクは、キャラクタが該当位置に到達した時に配信される。特に、ユーザのゲームプレイを進めるために必要とされるタスクは、統計的に予測され得る。タスクを達成するための1つ以上の解決策が特定され得る。これらの解決策は、他のユーザの複数のゲームプレイの以前に収集された情報(例えばスナップショット)から特定され、ユーザの将来のゲームプレイの識見を提供し得る。例えば、収集された情報は、前述のタスクが、ゲームプレイ内の同じ箇所で他のユーザによる他のゲームプレイにおいて通常に対処されたこと、及びそのタスクを完了するための1つ以上の解決策をこれらのユーザが見つけたことを示し得る。これらの解決策には、これらのタスクを達成するために必要な財産が含まれ得る。さらに、分析された収集情報は、ユーザによりさらにフィルタリングされ得る。例えば、ユーザは、全てのゲームプレイ(例えば初期設定による)、有名なエキスパートのゲームプレイ、ユーザの友達の1つ以上の選択されたゲームプレイなどからの解決策に関心を持ち得る。
メッセージは、エキスパート、友達もしくは第三者からの助言、またはユーザのゲームプレイ内で友達もしくはエキスパートがユーザを手引きすることを可能にする双方向インタラクティブ通信を開くリンクなど、補助のオファーを含み得る。図6に関連してさらに説明されるように、いくつかの実施形態では、メッセージは、ジャンプゲームにおいてユーザがゲームアプリケーションをプレイしてタスクを達成するオファーを含む。いくつかの実施形態では、メッセージは、ユーザがゲームアプリケーション内の特定箇所を前進することができないことを認識するといったトリガに応じて生成される。他の実施例では、コンテキスト関連情報は、ゲームプレイを進めるために完了すべき次のタスクを達成するためにユーザが必要とするダウンロード可能なコンテンツ(DLC)を受信または購入するオファーを含み得る。
さらに別の実施形態では、コンテキスト関連情報は、最初にユーザにより生成され得る。例えば、メッセージは、他のユーザへ一斉送信するためのものであり得(例えばヘルプフラグ)、ゲームアプリケーションの他のプレーヤからの補助の要求を含む。さらに、補助要求を含むメッセージは、ユーザの友達を対象としてもよく、または既知のエキスパート、もしくはゲーム補助を提供する第三者に配信されてもよく、友達、エキスパート、及び第三者は、ゲームアプリケーションを同時にプレイしていても、していなくてもよい。他の実施態様では、メッセージはまた、ユーザにより生成された、ユーザとの双方向通信を開くオファーを含んでもよく、ユーザの友達を対象としてもよい。さらに別の実施態様では、メッセージは、別のユーザとの双方向通信を開くオファーを含み、メッセージは他のユーザにより生成される。
例示すると、一斉送信メッセージは、ユーザからのヘルプ要求の受信に応じて生成され得、ユーザは、自身のゲームプレイの進行が行き詰っている場合がある。メッセージは、バックエンドサーバ(例えばコンパニオンアプリケーション生成器213を実行するサーバ)により受信され得る。例えば、ヘルプ要求に対応付けられたビーコン及び/またはフラグは、ゲームアプリケーションをプレイしているユーザの1人以上の友達の1つ以上のコンパニオンインターフェースにわたり一斉送信され得る。1つ以上のユーザインターフェースにおいてゲーム世界を示す1つ以上のレーダーマッピングに、ビーコンを挿入してもよく、各ビーコンは、ゲーム世界内のユーザのキャラクタの位置に対応する箇所に配置される。バックエンドサーバは、要求の受諾を受信してもよく、受諾は、ユーザの友達により生成され得る。一実施形態では、ユーザのゲームプレイを表すデータは、友達に対応付けられた第3のコンピューティングデバイスにストリーミングされる。すなわち、ユーザのゲームプレイは、該当コンパニオンインターフェースを介して、友達にストリーミングされ得る。さらに、ユーザと友達が通信し得るように、双方向通信セッション(例えばコンパニオンインターフェース、音声などを介したメッセージ通信)が確立され得る。このようにして、友達は、ユーザがゲームアプリケーションをプレイする時にリアルタイムで手引きを提供する手伝いをしてもよい。
他の実施態様では、コンテキスト関連情報はまた、ユーザ体験を向上させるために提供される他の種類の情報も提供し得る。情報は、ユーザのゲームプレイに関連し、一般的に役立つ、支援する、興味深い情報などであり得る。例えば、情報は、ゲームアプリケーションをプレイしている他のユーザの位置(例えばゲーム世界のレーダーマッピング内の他のユーザのキャラクタのいる位置)、特にユーザのキャラクタの近くに存在する他のユーザの位置を、提供し得る。コンテキスト関連情報は、ナビゲーションポインタ、興味深いゲーム特徴及びその位置、他の特徴へのアイコンまたはリンク(例えばスナップショット、ジャンプゲームインスタンス化など)を含み得る。
さらに他の実施態様では、コンテキスト関連情報は、他のユーザからのメッセージを含み得る(例えばからかいの記述、励ましの言葉などを含む、ユーザの友達からの情報または記述を含んだエッグドロップ)。例示すると、事前に定義されたイベントが、ユーザのゲームプレイ内で検出され得る。事前に定義されたイベントには、ゲーム世界内のある位置にキャラクタが到達することが含まれ得る。検出されると、ユーザの友達からの事前に生成されたメッセージにアクセスし得る。このメッセージは、コンテキスト関連情報としてユーザに配信され得る。例えば、メッセージには、友達からのからかいが含まれてもよい(例えば「アハハ、君がここまで来られるとは思わなかったよ!」)。別の実施例では、メッセージには、友達からの励ましの言葉が含まれてもよい(例えば「おめでとう、ついにやったね!私はここにたどり着くのにものすごく時間がかかったよ。次のセクション、早く通り抜けて、(ゲーム内の)裏面で会おうね。」)。例えば、図4A~4Cは、後述されるように、友達が生成して、ゲームアプリケーションをプレイするユーザのコンパニオンインターフェースに配信されるメッセージを例示する。
方法は、330にて、複数のゲームプレイからの位置ベース情報(例えばスナップショット情報)、及びユーザのゲームプレイからの位置ベース情報に基づいたコンテキスト関連情報を含むコンパニオンインターフェースを生成することを含み、情報は、ユーザのゲームプレイ内のキャラクタの位置を基にして生成される(例えば位置ベースコンテキスト関連情報)。すなわち、一般にコンパニオンインターフェースは、ユーザのゲームプレイを支援する機能を提供し、ユーザまたは任意の他の閲覧者が、ゲームアプリケーションのプレイ中、ユーザに概して役立つ情報にリアルタイムでアクセスすることを可能にする。
例えば、一実施形態では、コンパニオンインターフェースは、ゲームアプリケーションのゲーム世界の少なくとも一部を示すレーダーマッピングを含み、レーダーマッピングは、ゲーム世界内に配置された少なくともオブジェクト/地物、ならびにユーザ及び他のプレーヤのキャラクタの位置を含む。ユーザ体験を向上させる一般情報を提供するメッセージ通信、またはユーザのゲームプレイを進めるために必要な予測タスクを達成するための解決策といった追加情報も、レーダーマッピング内に、またはレーダーマッピングに隣接して含まれ得る。前に紹介した実施例では、解決策は、コンパニオンインターフェースにおいてユーザに提示するために、統計的に予測され、選択される。
コンテキスト関連情報としてユーザに提示するために、解決策のうち少なくとも1つが選択されてもよく、その解決策には、タスクを達成するために必要な一連のステップが含まれ得る。第1のステップは、第1の位置/第1の行動の組み合わせに対応付けられ得る、第2のステップは、第2の位置/第2の行動の組み合わせに対応付けられ得るなど、一連のステップはさらに、ユーザのゲームプレイ内の位置及び/または行動に対応付けられ得る。解決策のステップのそれぞれはさらに、該当メッセージに対応付けられてもよく、それぞれのメッセージは、ユーザのゲームプレイ内のキャラクタの表示される位置及び/または行動に応じて、コンパニオンアプリケーションに提示され得る。例えば、一連のうちの第1のステップが、コンパニオンインターフェース内の第1のメッセージで提示され得る。例示すると、第1のステップには、そのタスクを達成するためにキャラクタが必要とする財産、及びこれらの財産を取得するための指示が含まれ得る。方法は、ユーザのゲームプレイ内で第1のステップが完了したことを特定することを含み、完了はさらに、キャラクタの第1の位置、及び/またはキャラクタが取った第1の行動に対応付けられ得る。この時点で、一連のうちの第2のステップが、コンパニオンインターフェース内の第2のメッセージで提示され得る。
方法は、340にて、コンパニオンインターフェースを、ユーザのゲームプレイと同時に表示するために、ユーザに対応付けられた第2のコンピューティングデバイスに送信することを含む。例えば、一実施形態では、第1のコンピューティングデバイスにユーザのゲームプレイを表すデータを配信するために確立された第1の通信チャネル、及びコンパニオンインターフェースに対応付けられたデータを配信する(例えばインターフェースの配信、及びインターフェースを制御する入力コマンドを提供する)ために確立された第2の通信チャネルなど、情報を配信する2つの通信チャネルが存在し得る。別の実施形態では、ゲームプレイを表示する第1の画面、及びコンパニオンインターフェースを表示する第2の画面を含む分割画面を介するなどして、コンパニオンインターフェースは、ユーザのゲームプレイを表すデータと共に配信され得る。より具体的には、コンパニオンインターフェースは、リアルタイムで生成され、ユーザのゲームプレイと同時に配信されるため、インターフェースを通して提供される情報は、ユーザのゲームプレイを支援する。このようにして、ユーザのゲームプレイは、コンパニオンインターフェースにより提供される情報で拡張され得る。
図4A~4Cは、前に紹介したように、友達が生成して、ゲームアプリケーションをプレイするユーザのコンパニオンインターフェースに配信されるメッセージを例示する。メッセージは、ゲームアプリケーションのゲーム世界内のユーザのキャラクタの位置を示すマッピング400(例えばレーダーマッピング)内に提供され得る。メッセージは、イベントトリガ(例えばユーザのキャラクタがゲーム世界内の特定位置に到達すること)に応じて提示され得る。図4A~4Cに示されるそれぞれのレーダーマッピング400において、方向ポインタ450は、ゲーム世界内のキャラクタの位置を表し、レーダーマッピング400の中央に配置される。さらに、方向ポインタ450はまた、キャラクタの向き(例えばゲーム世界内のキャラクタの視点)を示す。
具体的に、図4Aは、ゲームアプリケーションをプレイするユーザのゲームプレイのマッピング400を例示し、マッピング400は、ユーザのゲームプレイ内のキャラクタの位置の略近傍に第2のユーザ(例えばユーザの友達)のキャラクタがいることを示す。図4Aにおいて、マッピング400は、ウィンドウ430内に提供され得る。第2のユーザはアイコン420で表され、これはゲーム世界内の第2のユーザの位置を示す。マッピング400により、他のユーザの他のキャラクタ405及び410も略近傍に示される。さらに、ユーザのゲームプレイに関連するメッセージ450が、第2のユーザに対応付けられ得る。メッセージは、アイコン420と共に、選択ウィンドウ425に提示され得る。選択ウィンドウは、ゲームアプリケーションの別のプレーヤからのメッセージが利用可能であることを示す見出し441(例えば「John Doenavichからのメモ」)を有し得る。選択ウィンドウ425は、メッセージ450のプレビュー442を含み得る。このようにして、ゲームアプリケーションの別のプレーヤ、すなわちユーザの友達であり得るJohn Doenavichからのメッセージ450が選択可能であることに、ユーザは気付かされる。
別の実施形態では、他のユーザのキャラクタは、ユーザのキャラクタの近くにいる必要はない。この場合、メッセージ450は、エッグドロップの形態で提示され得る。具体的には、図4Bは、本開示の一実施形態による、図4Aにおいて紹介したユーザのゲームプレイのマッピング400を例示し、第2のユーザ、John Doenavichにより残された、ユーザのゲームプレイに関する位置ベースメッセージ450を含む。図示されるように、ウィンドウ430に提示されるマッピング400は、メッセージアイコン421を含む。マッピング400内のメッセージアイコン421の位置は、メッセージ450が作成された時のJohn Doenavichのゲームプレイに対応付けられた、ゲーム世界内のキャラクタの位置を示し得る。メッセージは、アイコン421と共に、図4Aに提示された選択ウィンドウ425に類似する選択ウィンドウ425’に提示され得る。選択ウィンドウは、ゲームアプリケーションの別のプレーヤからのメッセージが利用可能であることを示す同じ見出し441(例えば「John Doenavichからのメモ」)を有し得る。選択ウィンドウ425’は、メッセージ450の同じプレビュー442を含み得る。このようにして、ゲームアプリケーションの別のプレーヤ、すなわちユーザの友達であり得るJohn Doenavichからのメッセージ450が選択可能であることに、ユーザは気付かされる。
図4Cは、本開示の一実施形態による、図4A及び4Bにおいて紹介したユーザのゲームプレイのマッピング400を例示し、他のプレーヤ(例えばJohn Doenavich)により残された位置ベースメッセージ450を表示するウィンドウ435を含む。ユーザによりプレイされ、方向ポインタ450により表されるキャラクタの近くに他のプレーヤのキャラクタが存在しない場合、ユーザが選択ウィンドウ425’を作動させた後、分割画面において、アイコン421を含むマッピング400がウィンドウ430’に含まれる。他のプレーヤのキャラクタがユーザのプレイするキャラクタの近くに存在する場合、図4Aに関連して、アイコン421は、図4Aにて前に紹介したキャラクタアイコン420に置き換えられ得る。特に、ウィンドウ435は、見出し441を表示し、メッセージ450全体も含む。また、アイコン445及び446により、ユーザはメッセージ450を保存または破棄することが可能となる。
図5A~5Eは、本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのコンパニオンインターフェース590を例示し、コンパニオンインターフェースは、ゲームアプリケーションの2人以上のプレーヤ間の双方向通信を促進する。ゲームアプリケーションのゲーム世界内のユーザのキャラクタの位置を示すマッピング500(例えばレーダーマッピング)内に、双方向通信をインスタンス化し継続する機会が提供され得る。図5A~5Eに示されるそれぞれのレーダーマッピング500において、方向ポインタ550は、ゲーム世界内のキャラクタの位置を表し、レーダーマッピング500の中央に配置される。さらに、方向ポインタ550はまた、キャラクタの向き(例えばゲーム世界内のキャラクタの視点)を示す。
具体的には、図5Aは、本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのゲームプレイのマッピング500を例示し、マッピングは、別のプレーヤ(例えば図4A~4Cの実施例で最初に紹介したJohn Doenavich)がゲームアプリケーションを現在プレイしていることを示す。図5Aにおいて、マッピングは、ウィンドウ530内に表示され得る。マッピング500により画定される領域の外側に、弧線560が配置され、弧線560は、マッピング500の中央の方向矢印550により表されるユーザのキャラクタの位置に関して、ゲーム世界内の他のプレーヤのキャラクタの概略方向を示す。弧線560は、マッピング500の外側にあり、他のプレーヤのキャラクタが、ユーザのキャラクタの略近傍内には存在しない(マッピング500の内部により示される)が、ゲームアプリケーションを現在プレイしていることを示す。他のキャラクタ505、510、及び520は、ユーザのキャラクタの略近傍内にいることが示される(マッピング500の内部により表される)。情報ウィンドウ570も、コンパニオンインターフェース590内に提供され、他のプレーヤ、John Doenavichがゲームアプリケーションをプレイしていることをユーザに知らせる。
図5Bは、本開示の一実施形態による、図5Aにおいて紹介したユーザのゲームプレイのマッピング500を例示し、マッピングは、他のプレーヤがユーザのゲームプレイ内のキャラクタの位置の略近傍に接近していることを示し、略近傍は、マッピング500の内部により画定される。マッピング500を含むウィンドウ530は、他のプレーヤのキャラクタがマッピング500の外部境界線501に接近しているが、境界線を突破していないことを表示するように更新される。具体的には、アイコン561が境界線501に隣接したマッピング500内の位置に表示され、これは、マッピング500の中央に配置された方向ポインタ550により示されるユーザのキャラクタの位置に関して略近傍に、他のプレーヤのキャラクタが接近している概略方向を示す。アイコン561は、ゲーム世界内の他のプレーヤのキャラクタの位置を中心とする影響範囲を表し得る(例えばマッピング500内の二次元円により表される)。他のプレーヤのキャラクタがマッピング500により画定される領域の外側にまだいるため、アイコン561は半円で表される。そのキャラクタがマッピング500により画定される略近傍にさらに近づくにつれ、マッピング500において表示されるように、アイコン561は、マッピング500内でより大きく、またはより色濃くなり、全円を完成し始め得る。
図5Cは、本開示の一実施形態による、図5A~5Bにおいて紹介したユーザのゲームプレイのマッピング500を例示し、マッピングは、他のプレーヤがマッピングの外部境界線501に今到着したことを示す。マッピング500を含むウィンドウ530は、第2のプレーヤのキャラクタが今、ユーザのキャラクタの略近傍内、すなわちマッピング500内にいるとみなされることを表示するように更新される。図5A~5Eに例示されるコンパニオンインターフェース590の焦点は、ゲームアプリケーションのユーザと別のプレーヤとの間の通信を開くことであるため、アイコン562は、人(例えば他のプレーヤのJohn Doenavich)を表し、必ずしも他のプレーヤがプレイするゲームアプリケーション内のキャラクタを表すわけではない。
図5Dは、本開示の一実施形態による、図5A~5Cにおいて紹介したユーザのゲームプレイのマッピング500を例示し、他のプレーヤに関する情報を表示するウィンドウ535を含む。ウィンドウ530’には、外部境界線501に位置するアイコン562を含むマッピング500が、分割画面で含まれる。基本的に、マッピング500は図5C及び5D両方と同一である。さらに、ウィンドウ535は、他のプレーヤであるJohn Doenavichに関する情報を表示し、ユーザ名568(「superCooluser88」)、他のユーザが利用可能なゲーム機(例えばSONY PS3及びSONY PS4)、他のプレーヤが話す言語などを含む。重要なのは、ウィンドウ535が、ほかのプレーヤ、John Doenavichとの会話に参加するための招待状を含むことであり、招待状は選択アイコン570内に提示され、これは有効化されると、ユーザと他のプレーヤとの間の双方向通信をインスタンス化する。
図5Eは、本開示の一実施形態による、図5A~5Dにおいて紹介したユーザのゲームプレイのマッピング500を例示し、ユーザと他のプレーヤ、John Doenavichとの間の双方向会話を表示するウィンドウ535’を含む。ウィンドウ530’には、外部境界線501に位置するアイコン562を含むマッピング500が、分割画面で含まれる。図5Eに示されるマッピング500は、図5C及び5Dに示されるマッピング500に類似するが、図5Eに示されるユーザと他のプレーヤとの間の会話にかかる継続時間に応じて、更新され得る。具体的には、ウィンドウ535’は、ユーザと他のプレーヤ、John Doenavichとの間で実行されている会話中に入力されたテキストを表示する。会話では、ユーザと他のプレーヤは、彼らの両キャラクタをゲーム世界内で会わせようと試みている。
ネットワークを介して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細な説明と共に、本開示の一実施形態による、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースであって、ゲームプレイを進める補助を提供するオファーを含む位置ベースコンパニオンインターフェースを実施する別の方法が、図6のフロー図600に関連してここで説明される。フロー図600は、ユーザのクライアントデバイスに表示するためにネットワークを介して送信される、コンパニオンインターフェース内に含まれる位置ベース情報を生成する目的で、ゲームサーバ側が関わる動作のプロセス及びデータフローを例示し、クライアントデバイスは、ゲームアプリケーションをプレイするユーザのゲームプレイを表示する別のデバイスとは分離していてもよい。具体的には、フロー図600の方法は、図1及び2のコンパニオンアプリケーション生成器213により、少なくとも部分的に実行され得る。
方法は、610にて、ゲームアプリケーションをプレイするユーザのゲームプレイ内のキャラクタの位置のコンテキスト関連情報を生成することを含む。例えば、ゲームアプリケーションのインスタンスは、ユーザのゲームプレイに対応付けて実行してもよく、ゲームプレイを表すデータが、ユーザの第1のコンピューティングデバイスに配信される。データは、ユーザによるインタラクションのため、第1の通信チャネルを介して配信される。キャラクタの位置ベース情報は、生成され、取り込まれ、例えばスナップショット内に含まれてもよく、位置情報は、ゲームアプリケーションに対応付けられたゲーム世界を参照して作られる。前述のように、各スナップショットはまた、ビデオゲーム内のある箇所に対応する環境を生成することを可能にする情報(例えばメタデータ、ゲーム状態データ)を含むため、スナップショットに基づいて、該当シーン及び環境を、ゲームアプリケーションの別のインスタンスにおいて生成することができる。すなわち、該当スナップショットが取り込まれた時のゲームプレイの状態に対応するジャンプ箇所に対応するゲームアプリケーション内の箇所から、ジャンプゲームの開始が実行される。
さらに、ゲームアプリケーションをプレイする他のユーザの複数のゲームプレイの位置ベース情報も、生成され、受信され、及び/または取り込まれる。すなわち、他のユーザのゲームプレイ中に取り込まれたスナップショットは、メタデータ/情報、ゲーム状態など、これらのゲームプレイに関連する位置ベース情報を含む。例えば、複数のユーザに対応付けて実行されるゲームアプリケーションの複数のインスタンスから、複数のスナップショットが生成され得る。ビデオゲームの各インスタンスが実行されていると、1つ以上のスナップショットが取り込まれ、前述のように、スナップショットにより、そのスナップショットに対応するビデオゲーム内の箇所から、ビデオゲームのインスタンスの開始を実行することが可能となる。前述のように、ユーザのゲームプレイを含む複数のゲームプレイから収集された位置ベース情報は、分析され、ユーザのゲームプレイに関連する追加コンテキスト関連情報が特定され得る。例えば、ユーザのゲームプレイ中に生成された位置ベース情報を、他のプレーヤの複数のゲームプレイのスナップショットに含まれるメタデータ/情報と組み合わせて分析することで、予測エンジンにより、ユーザのゲームプレイを進めるために必要な行動/財産が、統計的に特定され得る。このコンテキスト関連情報は、例えば、ゲームアプリケーションをプレイしている時に自身のゲームプレイを進展させる及び/または前進させるリアルタイムの補助をユーザに提供するために、リアルタイムで生成される。
一実施形態では、方法において、ユーザのゲームプレイ内で完了すべきタスクが特定される。さらに、タスクを完了するように構成された解決策も、前述のように、他のプレーヤのゲームプレイにおいて収集及び分析されたメタデータ/情報に基づいて特定され、またユーザのゲームプレイ内のキャラクタの位置に基づく。例えば、解決策は、ゲームプレイ内の入力として、キャラクタすなわちユーザが実行すべき一連のステップを含み得る。
方法は、615にて、コンテキスト関連情報を含むコンパニオンインターフェースを生成することを含む。コンパニオンインターフェースは、ユーザのゲームプレイを支援する機能を提供し、ユーザまたは任意の他の閲覧者が、リアルタイムで情報にアクセスすることを可能にする。一実施形態では、コンパニオンインターフェースは、前に紹介したように、タスクを完了するオファーを含み、タスクの完了はユーザのゲームプレイを進めるために必要であり得る。
方法は、620にて、コンパニオンインターフェースを、ユーザのゲームプレイと同時に表示するために、ユーザに対応付けられた第2のコンピューティングデバイスに送信することを含む。例えば、第1のコンピューティングデバイスにユーザのゲームプレイを表すデータを配信するために確立された第1の通信チャネルと、コンパニオンインターフェースに対応付けられたデータを配信する(例えばインターフェースの配信、及びインターフェースを制御する入力コマンドを提供する)ために確立された第2の通信チャネルとが存在し得る。このようにして、ユーザのゲームプレイは、コンパニオンインターフェースにより提供される情報で拡張され得る。
方法は、625にて、オファーの受諾を受信することを含む。例えば、度重なる努力にもかかわらず、ゲームアプリケーション内の特定の箇所を越えて進行できないことが原因であり得るが、ユーザは、自身のゲームプレイの進捗に不満を感じる場合がある。特定のプレーヤがいずれのゲームアプリケーションをプレイしていても起こす問題として知られている、ゲームをやめるという強硬策を取るのではなく、ユーザは、オファー内に提供されたエキスパートの補助を受けることを選択してもよく、補助には、ユーザのタスクをエキスパートに完了してもらうことが含まれ得る。具体的には、方法は、630にて、ユーザのゲームプレイの第1のインスタンスの実行中に生成された第1のスナップショットに基づいて、ジャンプゲームプレイにおけるゲームアプリケーションの第2のインスタンスをインスタンス化することを含む。具体的には、第1のスナップショットは、第1のインスタンスの第1のゲーム状態、及びユーザのゲームプレイ内のキャラクタの位置ベース情報を含む。スナップショットに対応するゲームアプリケーション内のある箇所(ここではジャンプポイントと特定される)からゲームアプリケーションの開始が実行されるように、スナップショット内のゲーム状態データは、ゲームアプリケーション内のある箇所に対応する、キャラクタの生成及びランダムシードデータを含む環境を生成することを可能にするため、第1のジャンプゲームプレイは、第1のスナップショットに対応するゲームアプリケーション内の箇所から開始する。
このようにして、エキスパートは、ユーザのゲームプレイにジャンプすることができる。例えば、エキスパートは、ジャンプゲームにてユーザのゲームプレイで使用されたキャラクタを指示して、ジャンプゲームプレイにてタスクを完了することができる。さらに、方法は、635にて、ゲームアプリケーションの第2のインスタンスの実行中(ジャンプゲームの実行中)に、第2のインスタンスの第2のゲーム状態を含む第2のスナップショットを生成すること及び/または取り込むことを含み、第2のインスタンスはエキスパートにより制御され、第2のスナップショットに取り込まれたジャンプゲームプレイにてタスクは完了される。この時点で、ジャンプゲームプレイに対応付けられた第2のスナップショットは、ユーザが利用できるようにされ得る。第2のスナップショットを選択すると、方法は、640にて、第2のスナップショットに基づいて、第2のジャンプゲームプレイにおけるゲームアプリケーションの第3のインスタンスをインスタンス化することを含む。第3のインスタンスはユーザにより制御され、第2のジャンプゲームプレイにてタスクは完了される。このようにして、ユーザはゲームアプリケーションの第3のインスタンスにより実行される自身のゲームプレイを続けることができ、この時点でゲームプレイはタスクの完了を含む。
ユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースの生成及び実施を明示するために特定の実施形態が提供されたが、コンパニオンインターフェースは、ユーザのゲームプレイ内のキャラクタの位置に基づいて生成されるコンテキスト関連情報(例えばメッセージ通信、補助情報、補助のオファーなど)を含み、これらの実施形態は、限定としてではなく実施例として説明されている。本開示を読んだ当業者は、本開示の趣旨及び範囲に含まれる追加の実施形態を実現するであろう。
現在の実施形態のゲームへアクセスを提供するといった、広い地域にわたって配信されるアクセスサービスは、多くの場合、クラウドコンピューティングを使用することに留意されたい。クラウドコンピューティングは、動的に拡張縮小可能で多くの場合仮想化されたリソースがインターネットを介してサービスとして提供される、コンピューティング様式である。ユーザは、ユーザを支援する「クラウド」の技術インフラストラクチャの専門家である必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ(Infrastructure as a Service(IaaS))、サービスとしてのプラットフォーム(Platform as a Service(PaaS))、及びサービスとしてのソフトウェア(Software as a Service(SaaS))などの異なるサービスに分類することができる。クラウドコンピューティングサービスは、多くの場合、ビデオゲームなどの一般的なアプリケーションを、ウェブブラウザからアクセスするオンラインで提供するが、ソフトウェア及びデータは、クラウド内のサーバに格納される。クラウドという用語は、コンピュータネットワーク図においてインターネットが描かれる様子に基づいたインターネットの隠喩として使われ、及び隠し持つ複雑なインフラストラクチャの抽象である。
ゲーム処理サーバ(Game Processing Server(GPS))(または単純に「ゲームサーバ」)は、ゲームクライアントがシングル及びマルチプレーヤビデオゲームをプレイするのに使用される。インターネット上でプレイされる大半のビデオゲームは、ゲームサーバへの接続を介して作動する。通常、ゲームは、プレーヤからデータを収集し、収集したデータを他のプレーヤに配信する専用サーバアプリケーションを使用する。これは、ピアツーピア構造よりも効率的で効果的であるが、サーバアプリケーションをホストする別個のサーバを必要とする。別の実施形態では、GPSは、プレーヤとそれぞれのゲームプレイデバイスとの間の通信を確立し、集中型GPSに依存せずに情報を交換する。
専用GPSは、クライアントとは無関係に作動するサーバである。このようなサーバは、通常、データセンタに配置された専用ハードウェア上で稼働し、より多くの帯域幅及び専用処理能力を提供する。専用サーバは、ほとんどのPCベースマルチプレーヤゲームのゲームサーバをホストする好ましい方法である。大規模なマルチプレーヤオンラインゲームは、ゲームタイトルを所有するソフトウェア会社が通常ホストする専用サーバ上で作動し、専用サーバによりコンテンツを制御及び更新することが可能である。
ユーザは、少なくともCPU、ディスプレイ、及びI/Oを含むクライアントデバイスにより、遠隔サービスにアクセスする。クライアントデバイスは、PC、モバイルフォン、ネットブック、PDAなどであり得る。一実施形態では、ゲームサーバ上で実行されるネットワークは、クライアントが使用するデバイスの種類を認識し、採用される通信方法を調整する。他の事例では、クライアントデバイスは、HTMLなどの標準的な通信方法を使用して、インターネットを介してゲームサーバ上のアプリケーションにアクセスする。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成により実施され得る。本開示はまた、有線ベースまたは無線のネットワークを通してリンクされる遠隔処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
所定のビデオゲームは、特定のプラットフォーム及び特定の関連コントローラデバイス用に、開発されてもよいことを理解されたい。しかし、このようなゲームが、本明細書において提示されるようなゲームクラウドシステムを介して利用可能となる場合、ユーザは、別のコントローラデバイスでビデオゲームにアクセスしてもよい。例えば、あるゲームは、あるゲーム機及びその関連コントローラ用に開発されたかもしれないが、ユーザは、キーボードとマウスを使ってパーソナルコンピュータから、クラウドベースのゲームバージョンにアクセスするかもしれない。このようなシナリオでは、入力パラメータ設定により、ユーザが利用可能なコントローラデバイス(この事例ではキーボード及びマウス)により生成され得る入力から、ビデオゲームの実行で受諾可能な入力へ、マッピングを定義することができる。
別の実施例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介して、クラウドゲームシステムにアクセスしてもよい。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイス内に一緒に統合され、検出されたタッチスクリーン入力/ジェスチャにより入力が提供される。このようなデバイスの場合、入力パラメータ設定により、特定のタッチスクリーン入力が、ビデオゲームのゲーム入力に対応することが定義され得る。例えば、ユーザがタッチしてゲーム入力を生成することができるタッチスクリーン上の位置を示すように、ボタン、方向パッド、または他の種類の入力要素を、ビデオゲームの作動中に表示またはオーバーレイしてもよい。特定の方向のスワイプまたは特定のタッチ動作などのジェスチャも、ゲーム入力として検出され得る。一実施形態では、例えばタッチスクリーン上での制御動作にユーザを慣らすために、ビデオゲームのゲームプレイを始める前に、タッチスクリーンを介してゲームプレイに入力する方法を示すチュートリアルが、ユーザに提供され得る。
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスの接続ポイントとして機能する。すなわち、コントローラデバイスは、無線または有線接続を介してクライアントデバイスと通信し、コントローラデバイスからの入力をクライアントデバイスに送信する。クライアントデバイスは次に、これらの入力を処理し、それから入力データを、ネットワークを介して(例えばルータなどのローカルネットワークデバイスを介してアクセスされる)、クラウドゲームサーバへ送信し得る。しかしながら、他の実施形態では、コントローラ自体が、このような入力をまずクライアントデバイスを通して通信する必要なく、ネットワークを介して入力を直接クラウドゲームサーバに通信する能力を有するネットワークデバイスであり得る。例えば、コントローラは、ローカルネットワークデバイス(前述のルータなど)に接続して、クラウドゲームサーバとデータを送受信するかもしれない。従って、クライアントデバイスは依然として、クラウドベースビデオゲームからの映像出力を受信して、それをローカルディスプレイ上にレンダリングする必要はあるが、コントローラがクライアントデバイスを迂回して、ネットワークを介して直接クラウドゲームサーバに入力を送信することを可能にすることで、入力待機時間が低減され得る。
一実施形態では、ある種類の入力は直接コントローラからクラウドゲームサーバへ、他の種類の入力はクライアントデバイスを介して送信するように、ネットワーク化されたコントローラ及びクライアントデバイスを構成することができる。例えば、コントローラ自体とは別の任意の追加のハードウェアまたは処理に依存しない検出による入力は、クライアントデバイスを迂回して、ネットワークを介して直接コントローラからクラウドゲームサーバへ送信することができる。このような入力には、ボタン入力、ジョイスティック入力、埋込型動作検出入力(例えば加速度計、磁力計、ジャイロスコープ)などが含まれ得る。しかしながら、追加のハードウェアを利用する、またはクライアントデバイスによる処理を要する入力は、クライアントデバイスによりクラウドゲームサーバへ送信され得る。これには、クラウドゲームサーバへ送信する前にクライアントデバイスにより処理され得る、ゲーム環境から取り込まれた映像または音声が含まれ得る。さらに、コントローラの位置及び動作を検出するために、コントローラの動作検出ハードウェアからの入力が、取り込まれた映像と併せてクライアントデバイスにより処理され、処理された入力はその後、クライアントデバイスによりクラウドゲームサーバへ通信される。様々な実施形態によるコントローラデバイスはまた、クライアントデバイスから、または直接クラウドゲームサーバから、データ(例えばフィードバックデータ)を受信し得ることを理解されたい。
本明細書において説明される実施形態は、任意の種類のクライアントデバイス上で実行され得ることを理解されたい。いくつかの実施形態では、クラアイントデバイスは、ヘッドマウントディスプレイ(HMD)である。
本開示の一実施形態による、ヘッドマウントディスプレイ750の構成要素を例示する図である図7が示される。ヘッドマウントディスプレイ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が提供される。後面の(ユーザがヘッドマウントディスプレイ750のディスプレイを見ている時にユーザから離れる方向に向けられた)カメラと、前面の(ユーザがヘッドマウントディスプレイ750のディスプレイを見ている時にユーザに向けられた)カメラとを含む複数のカメラが、ヘッドマウントディスプレイ750に含まれ得る。さらに、実環境内のオブジェクトの深度情報を感知するために、深度カメラ718がヘッドマウントディスプレイ750に含まれ得る。
一実施形態では、HMDの前面に統合されたカメラを使用して、安全に関する警告が提供され得る。例えば、ユーザが壁またはオブジェクトに接近している場合、ユーザに警告が与えられ得る。一実施形態では、部屋の中の物理的オブジェクトの外観図をユーザに提供して、ユーザにそれらの存在を警告してもよい。外形は、例えば仮想環境内にオーバーレイされ得る。いくつかの実施形態では、例えば床にオーバーレイされた参照マーカの視界が、HMDユーザに提供され得る。例えば、マーカは、ユーザがゲームをプレイしている部屋の中心の参照を、ユーザに提供し得る。これは、例えば部屋の中の壁または他のオブジェクトに衝突しないようにユーザが移動すべき場所の視覚情報を、ユーザに提供し得る。ユーザがHMDを装着してゲームをプレイする、またはコンテンツを操縦する場合、安全性を高めるために、触覚的警告、及び/または音声警告も、ユーザに提供することができる。
ヘッドマウントディスプレイ750は、音声出力を提供するスピーカ720を含む。また、周辺環境からの音、ユーザによる発言などを含む実環境からの音声を取り込むために、マイクロホン722が含まれ得る。ヘッドマウントディスプレイ750は、ユーザに触覚フィードバックを提供する触覚フィードバックモジュール724を含む。一実施形態では、触覚フィードバックモジュール724は、ユーザに触覚フィードバックを提供するために、ヘッドマウントディスプレイ750の動き及び/または振動を引き起こすことが可能である。
LED726は、ヘッドマウントディスプレイ750の状態の視覚的インジケータとして提供される。例えば、LEDは、バッテリレベル、起動状態などを示し得る。ヘッドマウントディスプレイ750がメモリカードからの情報を読み出し、メモリカードに情報を書き込むことを可能にするために、カードリーダ728が提供される。周辺デバイスの接続、または他の携帯デバイス、コンピュータなどの他の携帯デバイスへの接続を可能にするインターフェースの一実施例として、USBインターフェース730が含まれる。ヘッドマウントディスプレイ750の様々な実施形態では、ヘッドマウントディスプレイ750のより良い接続性を可能にするために、様々な種類のインターフェースのうちのいずれかが含まれ得る。
無線ネットワーク技術を介してインターネットへの接続を可能にするために、WiFi(登録商標)モジュール732が含まれる。また、他のデバイスへの無線接続を可能にするために、ヘッドマウントディスプレイ750は、ブルートゥース(登録商標)モジュール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人、3人、4人以上の同時プレーヤを支援するように構成され得る。これらのプレーヤのそれぞれは別個の映像ストリームを受信し得る、または単一の映像ストリームは、各プレーヤのために特別に生成された、例えば各プレーヤの視点に基づいて生成されたフレームの領域を含み得る。クライアント810は、任意で地理的に分散される。ゲームシステム800に含まれるクライアントの数は、1つまたは2つから数千、数万以上まで、幅広く変化し得る。本明細書において用いられるように、用語「ゲームプレーヤ」は、ゲームをプレイする人を指すために用いられ、用語「ゲームプレイデバイス」は、ゲームをプレイするために使用されるデバイスを指すために用いられる。いくつかの実施形態では、ゲームプレイデバイスは、協働してユーザにゲーム体験を届ける複数のコンピューティングデバイスを指し得る。例えば、ゲーム機及びHMDは、HMDを通して見られるゲームを配信するために、映像サーバシステム820と協働し得る。一実施形態では、ゲーム機は、映像サーバシステム820から映像ストリームを受信し、ゲーム機は、レンダリングを行うHMDに対し、映像ストリームを転送する、または映像ストリームを更新する。
クライアント810は、ネットワーク815を介して映像ストリームを受信するように構成される。ネットワーク815は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び/またはプライベートネットワークなどを含む任意の種類の通信ネットワークであり得る。典型的な実施形態では、映像ストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルを介して通信される。あるいは、映像ストリームは、プロプライエタリ規格を介して通信される。
クライアント810の典型的実施例には、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信能力、及び入力デバイスを備えるパーソナルコンピュータが挙げられる。復号化ロジックは、コンピュータ可読媒体に格納されたハードウェア、ファームウェア、及び/またはソフトウェアを含み得る。映像ストリームを復号化(及び符号化)するシステムは、当技術分野においてよく知られており、使用される特定の符号化スキームに応じて変わる。
クライアント810は、必須ではないが、受信した映像を変更するように構成されたシステムをさらに含み得る。例えば、クライアントは、1つの映像を別の映像上にオーバーレイするために、及び/または映像を切り取るためになど、さらなるレンダリングを行うように構成され得る。例えば、クライアント810は、I‐フレーム、P‐フレーム、及びB‐フレームなどの様々な種類の映像フレームを受信し、これらのフレームを、ユーザに表示するための画像に処理するように構成され得る。いくつかの実施形態では、クライアント810の一員は、映像ストリームに対しさらなるレンダリング、シェーディング、または3D変換などの動作を行うように構成される。クライアント810の一員は、任意で複数の音声または映像ストリームを受信するように構成される。クライアント810の入力デバイスには、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、位置指示デバイス、力フィードバックデバイス、動作及び/または位置感知デバイス、マウス、タッチスクリーン、神経インターフェース、カメラ、及び/または開発中の入力デバイスなどが含まれ得る。
クライアント810が受信する映像ストリーム(及び任意で音声ストリーム)は、映像サーバシステム820により生成及び提供される。本明細書の別の箇所でさらに説明されるように、この映像ストリームは、映像フレームを含む(及び音声ストリームは、音声フレームを含む)。映像フレームは、ユーザに表示する画像に有意義に貢献するように構成される(例えば映像フレームは、好適なデータ構造の画素情報を含む)。本明細書において使用される用語「映像フレーム」は、ユーザに表示する画像に、例えば作用するなど、貢献するように構成された情報を主として含むフレームを指すために使用される。「映像フレーム」に関する本明細書の教示のうちのほとんどは、「音声フレーム」にも適用することができる。
クライアント810は通常、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変化する、あるいはゲームプレイに作用するように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを用いて受信され得、及び/またはクライアント810上で作動するコンピューティング命令により自動的に生成され得る。受信されたゲームコマンドは、ネットワーク815を介してクライアント810から、映像サーバシステム820及び/またはゲームサーバ825へ通信される。例えば、いくつかの実施形態では、ゲームコマンドは、映像サーバシステム820を介してゲームサーバ825へ通信される。いくつかの実施形態では、ゲームコマンドの別個の複製が、クライアント810から、ゲームサーバ825及び映像サーバシステム820へ通信される。ゲームコマンドの通信は、任意でコマンドの識別に依存する。クライアント810Aに音声または映像ストリームを提供するために使用される異なる経路または通信チャネルを通して、クライアント810Aからゲームコマンドが任意で通信される。
ゲームサーバ825は任意で、映像サーバシステム820とは異なるエンティティにより運用される。例えば、ゲームサーバ825は、マルチプレーヤゲームの発行者により運営され得る。この実施例では、映像サーバシステム820は、ゲームサーバ825により任意でクライアントとして見なされ、ゲームサーバ825の観点から、従来技術のゲームエンジンを実行する従来技術のクライアントであるように任意で構成される。映像サーバシステム820とゲームサーバ825との間の通信は、ネットワーク815を介して任意で起こる。よって、ゲームサーバ825は、映像サーバシステム820を含む複数のクライアントにゲーム状態情報を送信する従来技術のマルチプレーヤゲームサーバであり得る。映像サーバシステム820は、ゲームサーバ825の複数のインスタンスと同時に通信するように構成され得る。例えば、映像サーバシステム820は、異なるユーザに複数の異なるビデオゲームを提供するように構成され得る。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ825により支援され、及び/または異なるエンティティにより発行され得る。いくつかの実施形態では、映像サーバシステム820のいくつかの地理的に分散されたインスタンスは、複数の異なるユーザにゲーム映像を提供するように構成される。映像サーバシステム820のこれらのインスタンスのそれぞれが、ゲームサーバ825の同一インスタンスと通信し得る。映像サーバシステム820と1つ以上のゲームサーバ825との間の通信は、専用通信チャネルを介して任意で起こる。例えば、映像サーバシステム820は、ゲームサーバ825に対し、これらの2つのシステム間の通信専用である高帯域幅チャネルを介して接続され得る。
映像サーバシステム820は、映像源830、I/Oデバイス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)、1024×768が含まれるが、任意の他のフレームサイズも使用してもよい。フレームレートは、毎秒の映像フレームの数である。映像ストリームは、様々な種類の映像フレームを含み得る。例えば、H.264規格は、「P」フレーム及び「I」フレームを含む。I‐フレームは、ディスプレイデバイス上の全てのマクロブロック/画素をリフレッシュする情報を含み、一方P‐フレームは、そのサブセットをリフレッシュする情報を含む。P‐フレームは通常、I‐フレームよりデータサイズが小さい。本明細書において使用される用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するのに必要なバイト数を指すために使用される。
代替的な実施形態では、映像源830は、カメラなどの映像記録デバイスを含む。このカメラは、コンピュータゲームの映像ストリームに含めることができる遅延またはライブ映像を生成するために使用され得る。得られた映像ストリームは、レンダリングされた画像と、静止画カメラまたは動画カメラを使用して記録された画像との両方を任意で含む。映像源830はまた、映像ストリームに含めるために前に記録した映像を記憶するように構成されたストレージデバイスを含み得る。映像源830はまた、例えば人といったオブジェクトの動作または位置を検出するように構成された動作または位置感知デバイス、及びゲーム状態を特定する、あるいは検出された動作及び/または位置に基づいた映像を生成するように構成されたロジックを含み得る。
映像源830は任意で、他の映像上に配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン指示、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤの映像配信(例えばウェブカメラ映像)を含み得る。クライアント810Aがタッチスクリーンインターフェースまたは視線検出インターフェースを含む実施形態において、オーバーレイには、仮想キーボード、ジョイスティック、及び/またはタッチパッドなどが含まれ得る。オーバーレイの一実施例では、プレーヤの声は音声ストリームにオーバーレイされる。映像源830は任意でさらに1つ以上の音声源を含む。
映像サーバシステム820が複数のプレーヤからの入力に基づいてゲーム状態を維持するように構成された実施形態において、視野の位置及び方向を含む視点は、プレーヤごとに異なり得る。映像源830は任意で、各プレーヤの視点に基づいて、別個の映像ストリームを各プレーヤに提供するように構成される。さらに、映像源830は、クライアント810それぞれに対し、異なるフレームサイズ、フレームデータサイズ、及び/または符号化を提供するように構成され得る。映像源830は任意で、三次元映像を提供するように構成される。
I/Oデバイス845は、映像サーバシステム820のために、映像、コマンド、情報要求、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアント識別、プレーヤ識別、ゲームコマンド、セキュリティ情報、及び/または音声などの情報を、送信及び/または受信するように構成される。I/Oデバイス845は通常、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/Oデバイス845は、ゲームサーバ825、ネットワーク815、及び/またはクライアント810と通信するように構成される。
プロセッサ850は、本明細書において論述される映像サーバシステム820の様々な構成要素内に含まれる、例えばソフトウェアといったロジックを実行するように構成される。例えば、プロセッサ850は、映像源830、ゲームサーバ825、及び/またはクライアントクオリファイア860の機能を実行するように、ソフトウェア命令でプログラムされ得る。映像サーバシステム820は任意で、プロセッサ850の複数のインスタンスを含む。プロセッサ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にテスト映像を送信することにより、起こり得る。エージェントは、ウェブページに埋め込まれた、またはアドオンとしてインストールされた、ジャバスクリプトなどのコンピューティング命令を備え得る。エージェントは任意で、クライアントクオリファイア860により提供される。様々な実施形態では、エージェントは、クライアント810Aの処理能力、クライアント810Aの復号化及び表示能力、クライアント810Aと映像サーバシステム820との間の通信チャネルの遅延時間信頼性及び帯域幅、クライアント810Aのディスプレイの種類、クライアント810A上に存在するファイアウォール、クライアント810Aのハードウェア、クライアント810A上で実行されるソフトウェア、及び/またはクライアント810A内のレジストリエントリなどを、発見し得る。
クライアントクオリファイア860は、コンピュータ可読媒体に格納されたハードウェア、ファームウェア、及び/またはソフトウェアを含む。クライアントクオリファイア860は任意で、映像サーバシステム820の1つ以上の他の要素とは分離したコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクオリファイア860は、クライアント810と映像サーバシステム820の複数のインスタンスとの間の通信チャネルの特性を特定するように構成される。これらの実施形態では、クライアント810のうちの1つにストリーミング映像を配信するのに、映像サーバシステム820のどのインスタンスが最適であるかを特定するために、クライアントクオリファイアが発見した情報が使用され得る。
本明細書で定義される様々な実施形態は、本明細書で開示される様々な特徴を用いる特定の実施態様に組み合わされ得る、または組み立てられ得ることを理解されたい。従って、提供される実施例は、いくつかの可能な実施例にすぎず、様々な要素を組み合わせることでより多くの実施態様を定義することが可能な様々な実施態様に限定されない。いくつかの実施例では、いくつかの実施態様は、開示または同等の実施態様の趣旨から逸脱することなく、より少ない要素を含んでもよい。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成により実施され得る。本開示の実施形態はまた、有線ベースまたは無線のネットワークを通してリンクされる遠隔処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
前述の実施形態を念頭に、本開示の実施形態は、コンピュータシステムに記憶されるデータを伴う様々なコンピュータ実施動作を用いることができることを理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の実施形態の一部を形成する、本明細書で説明される動作のうちのいずれも、有益な機械動作である。本発明の実施形態はまた、これらの動作を実行するためのデバイスまたは機器に関する。機器は、必要な目的のために特別に構築され得る、または機器は、コンピュータに記憶されたコンピュータプログラムにより選択的に有効化もしくは構成された汎用コンピュータであり得る。具体的には、様々な汎用機械が、本明細書における教示に従って書かれたコンピュータプログラムと共に使用することができる、または、必要動作を実行するためにより特化した機器を構築するほうがより便利であり得る。
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化することができる。コンピュータ可読媒体は、後でコンピュータシステムにより読み出され得るデータを記憶可能な任意のデータストレージデバイスである。コンピュータ可読媒体の実施例には、ハードドライブ、ネットクワーク接続ストレージ(NAS)、読み出し専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で記憶及び実行されるように、ネットワークに接続されたコンピュータシステムにわたり分散されたコンピュータ可読有形媒体が含まれ得る。
方法動作は特定の順序で説明されたが、オーバーレイ動作の処理が所望のやり方で実行される限り、動作の合間に他の維持管理動作が実行されてもよく、もしくは動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起きることを可能にしてもよいことを、理解されたい。
前述の開示は、理解を明確にするために若干詳細に説明されたが、ある変更及び修正は、添付の特許請求の範囲内で実施できることは明らかであろう。従って、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示の実施形態は、本明細書に提供される詳細に限定されるものではなく、添付の請求項の範囲内及び均等物内で変更されてもよい。