(57)【特許請求の範囲】
【請求項１】
第１のコンピューティングデバイス上に表示されるゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を受信することであって、前記位置ベース情報は、前記ゲームアプリケーションに対応付けられたゲーム世界における前記ユーザの前記ゲームプレイ内のキャラクタの位置を参照して作られる、前記ユーザの前記ゲームプレイの前記位置ベース情報を受信することと、
前記ユーザの前記ゲームプレイ内の前記キャラクタの予測される位置を特定することと、
前記ユーザの前記ゲームプレイ内の前記キャラクタの前記予測される位置に対して、前記ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を集約することと、
集約された前記複数のゲームプレイの前記位置ベース情報に基づいて、前記キャラクタの前記予測される位置のコンテキスト関連情報を生成することであって、前記コンテキスト関連情報は、前記ユーザの前記ゲームプレイを進行する際の補助を提供する、前記コンテキスト関連情報を生成することと、
前記コンテキスト関連情報を含むコンパニオンインターフェースを生成することと、
前記コンパニオンインターフェースを、前記ユーザの前記ゲームプレイと同時に表示するために、前記ユーザに対応付けられた第２のコンピューティングデバイスに送信することと、
を含む、ゲーム方法。
【請求項２】
前記ゲームアプリケーションは、前記第１のコンピューティングデバイス上でローカルに実行される、請求項１に記載の方法。
【請求項３】
前記ユーザの前記ゲームプレイに対応付けられた前記ゲームアプリケーションのインスタンスをインスタンス化することと、
前記ユーザの前記ゲームプレイを表すデータを、前記ユーザによるインタラクションのため、第１の通信チャネルを介して前記第１のコンピューティングデバイスへ配信することと、
をさらに含む、請求項１に記載の方法。
【請求項４】
コンテキスト関連情報を生成することは、
前記ユーザの前記ゲームプレイ内で完了すべきタスクを特定することと、
前記タスクを完了するための１つ以上の解決策を特定することであって、前記コンテキスト関連情報は前記１つ以上の解決策に基づいて前記タスクを完了する補助を提供する、前記タスクを完了するための前記１つ以上の解決策を特定することと、
を含む、請求項１に記載の方法。
【請求項５】
１つ以上の解決策を特定することは、
前記タスクを達成するために必要な一連のステップを特定することと、
コンパニオンインターフェースで、前記一連のステップの第１のステップを配信することと、
前記ユーザの前記ゲームプレイ内で、前記第１のステップの完了を特定することと、
前記コンパニオンインターフェースで、前記一連のステップの次のステップを配信することと、
を含む、請求項４に記載の方法。
【請求項６】
前記ゲームアプリケーションをプレイする１人以上のユーザの１つ以上のゲームプレイ、
前記ゲームアプリケーションをプレイする前記ユーザの友達のゲームプレイ、
前記ゲームアプリケーションをプレイするエキスパートのゲームプレイ、
以上の中から前記ユーザにより選択された１つに基づいて、前記一連のステップは決定される、請求項５に記載の方法。
【請求項７】
前記タスクを達成するために、前記キャラクタが必要な財産を特定することと、
前記コンパニオンインターフェースで、前記キャラクタに前記財産を提案するメッセージを配信することと、
をさらに含む、請求項４に記載の方法。
【請求項８】
前記ユーザのゲームプレイ中に第１のスナップショットを生成することであって、前記第１のスナップショットは、ゲームアプリケーションのゲーム状態データと、前記ユーザの前記ゲームプレイの前記位置ベース情報とを含み、前記第１のスナップショットにより、前記第１のスナップショットに対応する前記ゲームアプリケーション内の箇所から、前記ゲームアプリケーションのインスタンスの開始を実行することが可能になる、前記ユーザの前記ゲームプレイ中に前記第１のスナップショットを生成することと、
前記第１のスナップショットを出力することと、
出力された前記第１のスナップショットを収集することと、
をさらに含む、請求項１に記載の方法。
【請求項９】
前記ゲーム状態データは、
前記キャラクタの現在の財産と、
前記キャラクタの現在のスキルと、
前記ゲームアプリケーション内のタスク達成履歴と、
前記ゲーム世界内の前記キャラクタの現在の地理的位置と、
前記ユーザの前記ゲームプレイにおける前記ゲームアプリケーションの進捗と、
前記ゲームプレイの現在の状態と、
を含む、請求項８に記載の方法。
【請求項１０】
前記ユーザからヘルプ要求を受信することと、
前記ゲームアプリケーションをプレイする前記ユーザの１人以上の友達の１つ以上のコンパニオンインターフェースにわたり、前記ヘルプ要求に対応付けられたビーコンを送信することであって、前記１つ以上のユーザインターフェースにおいて前記ゲーム世界を示す１つ以上のレーダーマッピングにビーコンは挿入され、各ビーコンは、前記ゲーム世界内の前記ユーザの前記キャラクタの前記位置に対応する箇所に配置される、前記ヘルプ要求に対応付けられた前記ビーコンを送信することと、
第１の友達による前記要求の受諾を受信することと、
前記友達に対応付けられた第３のコンピューティングデバイスに、前記ユーザの前記ゲームプレイを表すデータをストリーミングすることと、
前記ユーザ及び前記第１の友達のコンパニオンインターフェースを通して行われる通信セッションを確立することと、
をさらに含む、請求項１に記載の方法。
【請求項１１】
前記コンテキスト関連情報を生成することは、
前記ユーザの前記ゲームプレイ内で、事前に定義されたイベントを検出することと、
前記ユーザの友達からの事前に生成されたメッセージにアクセスすることと、
前記コンテキスト関連情報内で、前記メッセージを配信することと、
を含む、請求項１に記載の方法。
【請求項１２】
ユーザのゲームプレイに対応付けられたゲームアプリケーションの第１のインスタンスをインスタンス化することと、
前記ユーザの前記ゲームプレイを表すデータを、前記ユーザによるインタラクションのため、第１の通信チャネルを介して第１のコンピューティングデバイスへ配信することと、
前記ユーザの前記ゲームプレイ内のキャラクタの位置ベース情報を特定することであって、前記位置ベース情報は、前記ゲームアプリケーションに対応付けられたゲーム世界を参照して作られる、前記ユーザの前記ゲームプレイ内の前記キャラクタの前記位置ベース情報を特定することと、
前記ユーザの前記ゲームプレイ内の前記キャラクタの予測される位置を特定することと、
前記ユーザの前記ゲームプレイ内の前記キャラクタの前記予測される位置に対して、前記ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を集約することと、
集約された前記複数のゲームプレイの前記位置ベース情報に基づいて、前記キャラクタの前記予測される位置のコンテキスト関連情報を生成することであって、前記コンテキスト関連情報は、前記ユーザの前記ゲームプレイを進行する際の補助を提供する、前記コンテキスト関連情報を生成することと、
前記コンテキスト関連情報を含むコンパニオンインターフェースを生成することと、
前記コンパニオンインターフェースを、前記ユーザの前記ゲームプレイと同時に表示するために、第２の通信チャネルを介して前記ユーザに対応付けられた第２のコンピューティングデバイスに送信することと、
を含む、ゲーム方法。
【請求項１３】
前記ユーザの前記ゲームプレイ内で完了すべきタスクを特定することと、
前記タスクを完了するためのオファーを、前記コンテキスト関連情報に含めることと、
前記オファーの受諾を受信することと、
前記第１のインスタンスの実行中に生成された第１のスナップショットに基づいて、第１のジャンプゲームプレイにおける前記ゲームアプリケーションの第２のインスタンスをインスタンス化することであって、前記第１のスナップショットは、前記第１のインスタンスの第１のゲーム状態と、前記位置ベース情報とを含み、前記第１のジャンプゲームプレイは、前記第１のスナップショットに対応する前記ゲームアプリケーション内の箇所から開始する、前記第１のジャンプゲームプレイにおける前記ゲームアプリケーションの前記第２のインスタンスをインスタンス化することと、
前記ゲームアプリケーションの前記第２のインスタンスの実行中に、前記第２のインスタンスの第２のゲーム状態を含む第２のスナップショットを生成することであって、前記第２のインスタンスはエキスパートにより制御され、前記タスクは前記第１のジャンプゲームプレイにて完了される、前記ゲームアプリケーションの前記第２のインスタンスの実行中に前記第２のスナップショットを生成することと、
前記第２のスナップショットに基づいて、第２のジャンプゲームプレイにおける前記ゲームアプリケーションの第３のインスタンスをインスタンス化することであって、前記第３のインスタンスは前記ユーザにより制御され、前記タスクは前記第２のジャンプゲームプレイにて完了される、前記第２のジャンプゲームプレイにおける前記ゲームアプリケーションの前記第３のインスタンスをインスタンス化することと、
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記ユーザのゲームプレイの位置ベース情報を特定することは、
前記ユーザのゲームプレイ中に第１のスナップショットを生成することであって、前記第１のスナップショットは、ゲームアプリケーションのゲーム状態と、前記ユーザの前記ゲームプレイの前記位置ベース情報とを含み、前記第１のスナップショットにより、前記第１のスナップショットに対応する前記ゲームアプリケーション内の箇所から、前記ゲームアプリケーションのインスタンスの開始を実行することが可能になる、前記ユーザの前記ゲームプレイ中に前記第１のスナップショットを生成することと、
前記第１のスナップショットを出力することと、
出力された前記第１のスナップショットを収集することと、
を含む、請求項１２に記載の方法。
【請求項１５】
ゲームのコンピュータプログラムを記憶する非一時的コンピュータ可読媒体であって、
第１のコンピューティングデバイス上に表示されるゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を受信するプログラム命令であって、前記位置ベース情報は、前記ゲームアプリケーションに対応付けられたゲーム世界における前記ユーザの前記ゲームプレイ内のキャラクタの位置を参照して作られる、前記ユーザの前記ゲームプレイの前記位置ベース情報を受信する前記プログラム命令と、
前記ユーザの前記ゲームプレイ内の前記キャラクタの予測される位置を特定するプログラム命令と、
前記ユーザの前記ゲームプレイ内の前記キャラクタの前記予測される位置に対して、前記ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を集約するプログラム命令と、
集約された前記複数のゲームプレイの前記位置ベース情報に基づいて、前記キャラクタの前記予測される位置のコンテキスト関連情報を生成するプログラム命令であって、前記コンテキスト関連情報は、前記ユーザの前記ゲームプレイを進行する際の補助を提供する、前記コンテキスト関連情報を生成する前記プログラム命令と、
前記コンテキスト関連情報を含むコンパニオンインターフェースを生成するプログラム命令と、
前記コンパニオンインターフェースを、前記ユーザの前記ゲームプレイと同時に表示するために、前記ユーザに対応付けられた第２のコンピューティングデバイスに送信するプログラム命令と、
を備える、コンピュータ可読媒体。
【請求項１６】
前記ユーザの前記ゲームプレイに対応付けられた前記ゲームアプリケーションのインスタンスをインスタンス化するプログラム命令と、
前記ユーザの前記ゲームプレイを表すデータを、前記ユーザによるインタラクションのため、第１の通信チャネルを介して前記第１のコンピューティングデバイスへ配信するプログラム命令と、
をさらに備える、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
コンテキスト関連情報を生成するプログラム命令は、
前記ユーザの前記ゲームプレイ内で完了すべきタスクを特定するプログラム命令と、
前記タスクを完了するための１つ以上の解決策を特定するプログラム命令であって、前記コンテキスト関連情報は前記１つ以上の解決策に基づいて前記タスクを完了する補助を提供する、前記タスクを完了するための前記１つ以上の解決策を特定する前記プログラム命令と、
を備える、請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
前記タスクを達成するために、前記キャラクタが必要な財産を特定するプログラム命令と、
前記コンパニオンインターフェースで、前記キャラクタに前記財産を提案するメッセージを配信するプログラム命令と、
をさらに備える、請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
１つ以上の解決策を特定する前記プログラム命令は、
前記タスクを達成するために必要な一連のステップを特定するプログラム命令と、
コンパニオンインターフェースで、前記一連のステップの第１のステップを配信するプログラム命令と、
前記ユーザの前記ゲームプレイ内で、前記第１のステップの完了を特定するプログラム命令と、
前記コンパニオンインターフェースで、前記一連のステップの次のステップを配信するプログラム命令と、
を備える、請求項１７に記載のコンピュータ可読媒体。
【請求項２０】
前記ユーザのゲームプレイ中に第１のスナップショットを生成するプログラム命令であって、前記第１のスナップショットは、ゲームアプリケーションのゲーム状態と、前記ユーザの前記ゲームプレイの前記位置ベース情報とを含み、前記第１のスナップショットにより、前記第１のスナップショットに対応する前記ゲームアプリケーション内の箇所から、前記ゲームアプリケーションのインスタンスの開始を実行することが可能になる、前記ユーザの前記ゲームプレイ中に前記第１のスナップショットを生成する前記プログラム命令と、
前記第１のスナップショットを出力するプログラム命令と、
出力された前記第１のスナップショットを収集するプログラム命令と、
をさらに備える、請求項１５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオゲームに関する。特に本開示は、ゲームアプリケーションをプレイするユーザのゲームプレイを支援する位置ベースコンパニオンアプリケーションの方法及びシステムを説明する。
【背景技術】
【０００２】
コンピューティングリソース（ハードウェア及びソフトウェア）を使用するクラウドベースシステムは、ネットワーク（例えばインターネット）を介してサービスを配信する。ゲームにおいては、このサービスにより、遠隔クライアントへのコンテンツのストリーミングが可能となり、ほとんどの処理はサーバ上で行われ、分散され得る。場合によっては、ビデオゲームはクラウドベースシステム内で実行され、クライアントの場所に専用ゲームハードウェアを要することなく、遠隔クライアントが提供する入力は同様にビデオゲームの実行を駆動する。よって、ユーザが複雑なハードウェアの制限なしでより多くのビデオゲームタイトルにアクセスすることはより容易になり、ゲームサプライヤが集中管理された場所からゲームコードを管理することはより容易になることから、クラウドベース処理及びゲームの人気は高まっている。また、クラウドサーバのより高い処理能力により、ビデオゲームは、より複雑かつ拡張的になる。
【０００３】
しかしながら、ビデオゲームが複雑になると、ユーザがビデオゲームを進める及び／または完了することは、ますます困難になり得る。例えば、ビデオゲームは、より拡張的になり、数百万、さらには数兆のユーザが利用可能なオプションを含む場合がある。よって、ユーザは、これらの利用可能なオプションのそれぞれを試すことすら、またはこれらのオプションのうちどれが利用可能であるかを理解することすら、不可能であろう。別の場合では、ユーザはビデオゲーム内で、進めるまたは解決することが不可能に思われる箇所に到達し得る。これはユーザにかなり頻繁に起こり、ユーザはその難しさまたはゲームを進められないことからゲームに次第に不満を募らせ、最終的にビデオゲームを辞めてしまう。例えば、ビデオゲームのゲームプレイにおいて、ユーザは、ゲームプレイを進めるために、明白な通路を通ってゲーム世界の別の部分に到達することを試みる場合がある。例示すると、ユーザは、通路として機能する滝を通る必要がある場合があり、通過を試みるのに利用可能な全てのオプションを使い果たしたように思っている。しかし、解決策は利用可能であり、知っていれば単純であるのだが（例えば安定化岩を持ち上げて滝を通り抜ける）、何らかの理由でユーザは、正しい通路または一連の操作を見つけて入り込むことができない。無用な時間を過ごした後、ユーザは前に進める方法を見つけることができないため、ついにはゲームを辞めてしまう場合がある。
【０００４】
このような状況において、本開示の実施形態は生じる。
【発明の概要】
【０００５】
本開示の実施形態は、ゲームアプリケーションをプレイするユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースに関する。本開示のいくつかの発明実施形態が、以下に説明される。
【０００６】
一実施形態において、ゲーム方法が開示される。方法は、第１のコンピューティングデバイス上に表示されるゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を受信することを含み、位置ベース情報は、ゲームアプリケーションに対応付けられたゲーム世界におけるユーザのゲームプレイ内のキャラクタの位置を参照して作られる。方法は、ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を受信し、集約することを含む。方法は、複数のゲームプレイの位置ベース情報に基づいて、キャラクタの位置のコンテキスト関連情報を生成することを含む。方法は、コンテキスト関連情報を含むコンパニオンインターフェースを生成することを含む。方法は、コンパニオンインターフェースを、ユーザのゲームプレイと同時に表示するために、ユーザに対応付けられた第２のコンピューティングデバイスに送信することを含む。
【０００７】
別の実施形態において、ゲーム方法が開示される。方法は、ユーザのゲームプレイに対応付けられたゲームアプリケーションの第１のインスタンスをインスタンス化することを含む。方法は、ユーザのゲームプレイを表すデータを、ユーザによるインタラクションのため、第１の通信チャネルを介して第１のコンピューティングデバイスへ配信することを含む。方法は、ユーザのゲームプレイ内のキャラクタの位置ベース情報を特定することを含み、位置情報は、ゲームアプリケーションに対応付けられたゲーム世界を参照して作られる。方法は、ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を集約することを含む。方法は、複数のゲームプレイの位置ベース情報に基づいて、キャラクタの位置のコンテキスト関連情報を生成することを含む。方法は、コンテキスト関連情報を含むコンパニオンインターフェースを生成することを含む。方法は、コンパニオンインターフェースを、ユーザのゲームプレイと同時に表示するために、第２の通信チャネルを介してユーザに対応付けられた第２のコンピューティングデバイスに送信することを含む。
【０００８】
さらに別の実施形態において、別のゲーム方法が開示される。方法は、ユーザのゲームプレイに対応付けられたゲームアプリケーションの第１のインスタンスをインスタンス化することを含む。方法は、ユーザのゲームプレイを表すデータを、ユーザによるインタラクションのため、第１の通信チャネルを介して第１のコンピューティングデバイスへ配信することを含む。方法は、ユーザのゲームプレイ内のキャラクタの位置ベース情報を特定することを含み、位置情報は、ゲームアプリケーションに対応付けられたゲーム世界を参照して作られる。方法は、位置ベース情報に基づいてキャラクタの位置のコンテキスト関連情報を生成することを含み、コンテキスト関連情報は、ユーザのゲームプレイ内のタスクを完了するためのオファーを含む。方法は、コンテキスト関連情報を含むコンパニオンインターフェースを生成することを含む。方法は、コンパニオンインターフェースを、ユーザのゲームプレイと同時に表示するために、第２の通信チャネルを介してユーザに対応付けられた第２のコンピューティングデバイスに送信することを含む。方法は、オファーの受諾を受信することを含む。方法は、第１のインスタンスの実行中に生成された第１のスナップショットに基づいて、第１のジャンプゲームプレイにおけるゲームアプリケーションの第２のインスタンスをインスタンス化することを含む。第１のスナップショットには、第１のインスタンスの第１のゲーム状態と、位置ベース情報とが含まれ、第１のジャンプゲームプレイは、第１のスナップショットに対応するゲームアプリケーション内の箇所から開始する。方法は、ゲームアプリケーションの第２のインスタンスの実行中に、第２のインスタンスの第２のゲーム状態を含む第２のスナップショットを生成することを含む。第２のインスタンスはエキスパートにより制御され、第１のジャンプゲームプレイにてタスクは完了される。方法は、第２のスナップショットに基づいて、第２のジャンプゲームプレイにおけるゲームアプリケーションの第３のインスタンスをインスタンス化することを含み、第３のインスタンスはユーザにより制御され、タスクは第２のジャンプゲームプレイにて完了される。
【０００９】
別の実施形態において、ゲームのコンピュータプログラムを記憶する非一時的コンピュータ可読媒体が開示される。コンピュータ可読媒体は、第１のコンピューティングデバイス上に表示される、ゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を受信するプログラム命令を含み、位置ベース情報は、ゲームアプリケーションに対応付けられたゲーム世界におけるユーザのゲームプレイ内のキャラクタの位置を参照して作られる。コンピュータ可読媒体は、ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を集約するプログラム命令を含む。コンピュータ可読媒体は、複数のゲームプレイの位置ベース情報に基づいて、キャラクタの位置のコンテキスト関連情報を生成するプログラム命令を含む。コンピュータ可読媒体は、コンテキスト関連情報を含むコンパニオンインターフェースを生成するプログラム命令を含む。コンピュータ可読媒体は、ユーザのゲームプレイと同時に表示するため、コンパニオンインターフェースを、ユーザに対応付けられた第２のコンピューティングデバイスに送信するプログラム命令を含む。
【００１０】
本開示の他の態様は、本開示の原理の実施例として示す添付図面と併せて、下記の発明を実施するための形態から明らかになるであろう。
【図面の簡単な説明】
【００１１】
本開示は、添付図面と併せて、以下の説明を参照することにより、最も良く理解され得る。
【００１２】
【図１Ａ】本開示の一実施形態による、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施するために使用されるシステムであって、ゲームアプリケーションは、ローカルコンピューティングデバイス上またはクラウドゲームネットワークを介して実行することができる、システムを例示する。
【００１３】
【図１Ｂ】本開示の一実施形態による、該当ユーザのローカルで実行される１つ以上のゲームアプリケーションをプレイする１人以上のユーザに対しゲーム制御を提供するシステムであって、バックエンドサーバサポートは、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施し得る、システムを例示する。
【００１４】
【図１Ｃ】本開示の一実施形態による、クラウドゲームネットワークを介して実行されるゲームアプリケーションをプレイする１人以上のユーザに対しゲーム制御を提供するシステムであって、バックエンドサーバサポートは、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施し得る、システムを例示する。
【００１５】
【図２】本開示の一実施形態による、ゲームクラウドシステム（ＧＣＳ）内のゲームアプリケーションへのアクセス及びプレイ、ならびに該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースの実施態様を可能にするシステム図を例示する。
【００１６】
【図３】本開示の一実施形態による、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施する方法におけるステップを例示するフロー図である。
【００１７】
【図４Ａ】本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのゲームプレイのマッピングであって、マッピングは、ユーザのゲームプレイ内のキャラクタの位置の略近傍に第２のユーザ（例えばユーザの友達）がいることを示し、第２のユーザはユーザのゲームプレイに関するメッセージを有する、ユーザのゲームプレイのマッピングを例示する。
【００１８】
【図４Ｂ】本開示の一実施形態による、図４Ａにおいて紹介したユーザのゲームプレイのマッピングを例示し、第２のユーザにより残された、ユーザのゲームプレイに関する位置ベースメッセージを含む。
【００１９】
【図４Ｃ】本開示の一実施形態による、図４Ａ及び４Ｂにおいて紹介したユーザのゲームプレイのマッピングを例示し、第２のユーザにより残された位置ベースメッセージを表示するウィンドウを含む。
【００２０】
【図５Ａ】本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのゲームプレイのマッピングであって、マッピングは、マッピングにより画定された領域に第２のユーザが接近していることを示す、ユーザのゲームプレイのマッピングを例示する。
【００２１】
【図５Ｂ】本開示の一実施形態による、図５Ａにおいて紹介したユーザのゲームプレイのマッピングであって、マッピングは、第２のユーザがマッピングの外部境界線に接近しているように、ユーザのゲームプレイ内のキャラクタの位置の略近傍に第２のユーザが接近していることを示す、ユーザのゲームプレイのマッピングを例示する。
【００２２】
【図５Ｃ】本開示の一実施形態による、図５Ａ〜５Ｂにおいて紹介したユーザのゲームプレイのマッピングであって、マッピングは、第２のユーザがマッピングの外部境界線に今到着したことを示す、ユーザのゲームプレイのマッピングを例示する。
【００２３】
【図５Ｄ】本開示の一実施形態による、図５Ａ〜５Ｃにおいて紹介したユーザのゲームプレイのマッピングを例示し、第２のユーザに関する情報を表示するウィンドウであって、第２のユーザとの会話に参加するための招待状を含むウィンドウを含む。
【００２４】
【図５Ｅ】本開示の一実施形態による、図５Ａ〜５Ｄにおいて紹介したユーザのゲームプレイのマッピング５００を例示し、ユーザと他のプレーヤとの間の双方向会話を表示するウィンドウ５３５’を含む。
【００２５】
【図６】本開示の一実施形態による、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースであって、ゲームプレイを進める補助を提供するオファーを含む位置ベースコンパニオンインターフェースを実施する方法におけるステップを例示するフロー図である。
【００２６】
【図７】本開示の一実施形態による、ヘッドマウントディスプレイの構成要素を例示する図である。
【００２７】
【図８】本発明の様々な実施形態による、ネットワークを介して１つ以上のクライアントに対し映像ストリームを提供するように構成されたゲームシステムのブロック図である。
【発明を実施するための形態】
【００２８】
以下の詳細説明は例示目的で多数の具体的な詳細を含むが、当業者の誰もが以下の詳細の多数の変形及び改変が本開示の範囲内であることを理解するであろう。従って、後述の本開示の態様は、この説明に続く特許請求項の普遍性を失うことなく、かつ特許請求項に制限を課すことなく、明記される。
【００２９】
概して、本開示の様々な実施形態は、ユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースを実施するシステム及び方法を説明する。本開示の実施形態は、位置ベースコンパニオンインターフェースを通してゲームアプリケーションの付加的使用を提供する。コンパニオンインターフェースは、ユーザのゲームプレイ内のキャラクタの位置に基づいて生成されるコンテキスト関連情報（例えばメッセージ通信、補助情報など）を含む。位置ベース情報は、ユーザのゲームプレイ中に定期的に収集されるスナップショットのために生成された定義パラメータを含む。具体的には、スナップショットは、ユーザのゲームプレイに関するメタデータ及び／または情報を含み、スナップショットに対応するゲームアプリケーション内のジャンプ箇所で、該当ゲームアプリケーションの別のインスタンスを使用可能にするように構成可能である。コンテキスト関連情報はまた、同じゲームアプリケーションをプレイする他のユーザのゲームプレイ中に収集される情報も含む。このようにして、ユーザは、ユーザの現在の進捗（例えばゲーム世界における位置など）に基づいて、コンテキスト関連情報を受信することができる。例えば、コンテキスト関連情報は、ユーザのゲームプレイにおいて補助を提供することができ、情報は、ゲームプレイ位置、過去のゲームプレイ、及び予想されるゲームプレイに基づき得る。さらに、コンパニオンインターフェースを使用して、ユーザからのメッセージを作成することができる。例えば、メッセージはヘルプの要求であり得、メッセージは、対象ユーザに配信され、または定義されたグループ（例えばユーザの友達）に一斉送信され、該当コンパニオンインターフェース内で表示可能である。コンパニオンインターフェースは、ゲームアプリケーションをプレイする他のユーザにより作成されたユーザへのメッセージを含み得る。他の実施例では、メッセージを作成し、１人以上の対象ユーザに配信することで、ゲームプレイを向上させることができる。例えば、ゲーム世界内の地理的位置に到達する、またはボスを倒すなどのイベントが発生すると、メッセージは、対象ユーザのコンパニオンインターフェースに表示されるように引き起こされ得る。メッセージはまた、個人的に設定してもよく、個人対個人のゲーム、またはユーザ間通信を可能にする。すなわち、ゲームアプリケーションは、該当コンパニオンインターフェースを介してマルチプレーヤ環境で使用してもよく、ゲームアプリケーションをプレイする２人以上のユーザ間でリアルタイム通信が可能であり、各コンパニオンインターフェースは、他のユーザのゲームプレイに関連する情報を提供する。コンテキスト関連情報は、ユーザのゲームプレイを通してユーザを手引するエキスパートによる補助のオファー、またはユーザのゲームプレイ内のタスクをエキスパートが達成する補助のオファーを含み得る。
【００３０】
様々な実施形態の上記の一般的な理解と共に、ここで実施形態の例示的な詳細が、様々な図面を参照して説明される。
【００３１】
本明細書を通して、「ゲームアプリケーション」への言及は、入力コマンドの実行により指示される任意の種類のインタラクティブアプリケーションを表すことを意図する。単に例示の目的のために、インタラクティブアプリケーションには、ゲーム、ワード処理、映像処理、ビデオゲーム処理などのアプリケーションが含まれる。さらに、ビデオゲーム及びゲームアプリケーションという用語は、置換可能である。
【００３２】
図１Ａは、本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースを実施するために使用されるシステム１０であって、ゲームアプリケーションは、ローカルコンピューティングデバイス上またはクラウドゲームネットワークを介して実行することができる、システム１０を例示する。コンパニオンインターフェースを使用して、ゲームアプリケーションをプレイする他のユーザによるインタラクションのためのコンテンツ（例えば補助情報、メッセージなど）を作成してもよく、インタラクションは、該当コンパニオンインターフェースを介され得る。コンテンツは、スナップショット情報など、ゲームアプリケーションをプレイするユーザのゲームプレイ中に取り込まれた位置ベース情報に基づいて作成される。コンパニオンインターフェースはまた、ユーザの過去のゲームプレイ、同じゲームアプリケーションをプレイする複数のユーザの集約されたゲームプレイ、ユーザのゲームプレイの位置情報、及びユーザのゲームプレイの現在の進捗（財産及びスキル蓄積、タスク完了、レベル完了などを含む）に基づいて、コンテキスト関連情報をユーザに提供することにより、ユーザのゲームプレイに補助を提供するように構成され得る。
【００３３】
図１Ａに図示されるように、ゲームアプリケーションは、ユーザ５のクライアントデバイス１００のローカルで実行され得る、あるいはクラウドゲームネットワークまたはゲームクラウドシステムのバックエンドゲームサーバ２０５で作動するバックエンドゲーム実行エンジン２１１にて実行され得る。ゲーム実行エンジン２１１は、ゲームサーバ２０５の多数のゲームプロセッサ２０１のうちの１つの中で作動し得る。いずれの場合でも、クラウドゲームネットワークは、ゲームアプリケーションをプレイする１人以上のユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを提供するように構成される。さらに、ゲームアプリケーションは、シングルプレーヤモードまたはマルチプレーヤモードで実行してもよく、本発明の実施形態は、両動作モードに対するマルチプレーヤ強化（例えば補助、通信など）を提供する。
【００３４】
いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で作動する複数の仮想マシン（ＶＭ）を含んでもよく、１つ以上の仮想マシンは、シングルプレーヤまたはマルチプレーヤのビデオゲームを支援する際、ホストのハイパーバイザが使用可能なハードウェアリソースを利用するゲームプロセッサモジュール２０１を実行するように構成される。他の実施形態では、クラウドゲームネットワークは、複数のユーザを支援する複数のローカルコンピューティングデバイスを支援するように構成され、各ローカルコンピューティングデバイスは、シングルプレーヤまたはマルチプレーヤビデオゲーム内などのビデオゲームのインスタンスを実行し得る。例えば、マルチプレーヤモードで、ビデオゲームがローカルで実行されている間、クラウドゲームネットワークは同時に各ローカルコンピューティングデバイスから情報（例えばゲーム状態データ）を受信し、その情報をローカルコンピューティングデバイスのうちの１つ以上にわたって適宜配信し、これにより各ユーザは、マルチプレーヤビデオゲームのゲーム環境で他のユーザとインタラクションを行うことができる（例えばビデオゲーム内の該当キャラクタを介して）。このようにして、クラウドゲームネットワークは、マルチプレーヤゲーム環境内のユーザそれぞれのゲームプレイを調整し、組み合わせる。
【００３５】
図示されるように、システム１０は、複数のインタラクティブゲームアプリケーションへのアクセスを提供するゲームプロセッサモジュール２０１を実行するゲームサーバ２０５を含む。ゲームサーバ２０５は、クラウド内で利用可能な任意の種類のサーバコンピューティングデバイスであり得、前述のような１つ以上のホスト上で実行される１つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ２０５は、ゲームプロセッサ２０１を支援する仮想マシンを管理し得る。ゲームサーバ２０５はまた、付加サービス及び／またはコンテンツをユーザ５に提供するように構成される。例えば、ゲームサーバは、さらに後述されるように、コンテキスト関連情報を生成及び／または受信するために、ユーザ５に表示可能なコンパニオンインターフェースを提供するように構成可能である。
【００３６】
クライアントデバイス１００は、インターネットなどのネットワーク１５０を介してゲームアプリケーションへのアクセスを要求するように、ならびに、ゲームサーバ２０５により実行され、ユーザ５に対応付けられたディスプレイデバイス１２に配信されるビデオゲームまたはゲームアプリケーションのインスタンスをレンダリングするように、構成される。例えば、ユーザ５は、クライアントデバイス１００を通して、ゲームプロセッサ２０１上で実行されるゲームアプリケーションのインスタンスとインタラクションを行い得る。クライアントデバイス１００はまた、前述のように、ゲームアプリケーションのローカル実行のために構成されたゲーム実行エンジン１１１を含み得る。クライアントデバイス１００は、ゲームコントローラ６、タブレットコンピュータ１１、キーボードなどの様々な種類の入力デバイスからの入力、及びビデオカメラ、マウス、タッチパッドなどにより取り込まれたジェスチャを受信し得る。クライアントデバイス１００は、メモリと、ネットワーク１５０を介してゲームサーバ２０５に接続することが可能なプロセッサモジュールとを少なくとも有する任意の種類のコンピューティングデバイスであり得る。クライアントデバイス１００のいくつかの実施例には、パーソナルコンピュータ（ＰＣ）、ゲーム機、ホームシアターデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話、ゲームサーバ２０５とインタラクションを行ってビデオゲームのインスタンスを実行することが可能な任意の他の種類のコンピューティングデバイスが挙げられる。
【００３７】
クライアントデバイス１００は、レンダリングされた画像を受信し、レンダリングされた画像をディスプレイ１２に表示するように構成される。例えば、クラウドベースサービスを通して、レンダリングされた画像は、ユーザ５に対応付けられたゲームサーバ２０５のゲーム実行エンジン２１１上で実行されるゲームアプリケーションのインスタンスにより配信され得る。別の実施例では、ローカルゲーム処理を通して、レンダリングされた画像は、ローカルゲーム実行エンジン１１１により配信され得る。いずれの場合も、クライアントデバイス１００は、ゲームプレイを作動させるのに使用される入力コマンドを介するなどして、ユーザ５のゲームプレイに対応付けられた実行エンジン２１１または１１１とインタラクションを行うように構成される。
【００３８】
さらに、クライアントデバイス１００は、ゲームサーバ２０５とインタラクションを行って、ゲームアプリケーションをプレイする時にユーザ５のゲームプレイのスナップショットを取り込み記憶するように構成され、各スナップショットは、ゲームプレイに関連する情報（例えばゲーム状態など）を含む。例えば、スナップショットは、ユーザ５のゲームプレイのゲーム世界内のキャラクタの位置に対応する位置ベース情報を含み得る。さらに、スナップショットは、該当ユーザが、スナップショットのキャプチャに対応するゲームアプリケーション内のジャンプ箇所で、保存されたゲームプレイ内にジャンプすることを可能にする。よって、ユーザ５は、選択されたスナップショットに対応するジャンプ箇所で保存された自身のゲームプレイ内にジャンプすることができ、別のユーザは、ユーザ５のゲームプレイ内にジャンプしてもよく、またはユーザ５は、選択されたスナップショットに対応するジャンプ箇所で保存された別のユーザのゲームプレイ内にジャンプしてもよい。さらに、クライアントデバイス１００は、ゲームサーバ２０５とインタラクションを行って、コンパニオンインターフェース生成器２１３から位置ベースコンパニオンインターフェースを表示するように構成され、コンパニオンインターフェースは、補助情報、メッセージ通信、インタラクティブクエスト及び課題など、コンテキスト関連コンテンツを受信及び／または生成するように構成される。具体的には、ゲームプレイに関連する位置ベース情報など、ユーザ５のゲームプレイ中に取り込まれたスナップショットに含まれる情報、ならびに他のユーザのゲームプレイ中に取り込まれた情報は、コンテキスト関連コンテンツを生成するために使用される。
【００３９】
より具体的には、ゲームサーバ２０５のゲームプロセッサ２０１は、ゲームアプリケーションをプレイする時にユーザ５のゲームプレイのスナップショットを生成及び／または受信するように構成される。例えば、スナップショットは、クライアントデバイス１００上のローカルゲーム実行エンジン１１１により生成され、出力され、ネットワーク１５０を介してゲームプロセッサ２０１へ配信され得る。さらに、スナップショットは、エンジン２１１上で実行されるゲームアプリケーションのインスタンスによるなど、ゲームプロセッサ２０１内のゲーム実行エンジン２１１により生成され得る。さらに、他の仮想マシンに対応付けられたゲームサーバ２０５の他のゲームプロセッサは、他のユーザのゲームプレイに対応付けられたゲームアプリケーションのインスタンスを実行し、これらのゲームプレイの間にスナップショットを取り込むように構成され、この追加情報を使用して、コンテキスト関連情報が作成され得る。
【００４０】
スナップショット生成器２１２は、ユーザ５のゲームプレイから生成される複数のスナップショットを取り込むように構成される。各スナップショットは、該当スナップショットに対応付けられたビデオゲーム内の箇所からビデオゲームのインスタンスの開始を実行することを可能にする情報を提供する。スナップショットは、ユーザ５によるゲームアプリケーションのゲームプレイ中に、自動で生成される。それぞれのスナップショットの部分は、実施形態では、独立して構成された関連データベース、またはデータストア１４０の下に構成された関連データベースに記憶される。別の実施形態では、スナップショットは、ユーザ５による命令を介して手動で生成され得る。このようにして、いずれのユーザも、該当スナップショットの選択を通して、該当スナップショットに対応付けられたゲームアプリケーション内の箇所で、ユーザ５のゲームプレイ内にジャンプしてもよい。加えて、複数のゲームアプリケーションをプレイする他のユーザのゲームプレイのスナップショットも取り込まれ得る。よって、ゲームプロセッサ２０１は、該当スナップショットに基づいて任意のユーザの保存されたゲームプレイにジャンプすることを可能にするために、データベース１４０内の情報にアクセスするように構成される。すなわち、要求ユーザは、スナップショットを生成し保存した元のユーザのゲームプレイのゲームキャラクタを使用して、選択されたスナップショットに対応するジャンプ箇所から、ビデオゲームのプレイを開始することができる。
【００４１】
スナップショットの作成及び仕様に関する詳論は、「Ｍｅｔｈｏｄ  Ａｎｄ  Ｓｙｓｔｅｍ  Ｆｏｒ  Ｓａｖｉｎｇ  Ａ  Ｓｎａｐｓｈｏｔ  ｏｆ  Ｇａｍｅ  Ｐｌａｙ  Ａｎｄ  Ｕｓｅｄ  Ｔｏ  Ｂｅｇｉｎ  Ｌａｔｅｒ  Ｅｘｅｃｕｔｉｏｎ  Ｏｆ  Ｔｈｅ  Ｇａｍｅ  Ｐｌａｙ  Ｂｙ  Ａｎｙ  Ｕｓｅｒ  Ａｓ  Ｅｘｅｃｕｔｅｄ  Ｏｎ  Ａ  Ｇａｍｅ  Ｃｌｏｕｄ  Ｓｙｓｔｅｍ」と題する米国特許出願第１５／４１１，４２１号内に提供され、その全体は参照により前に組み込まれたものとする。以下が、スナップショットの作成及び実施態様の簡単な説明である。
【００４２】
具体的には、各スナップショットは、スナップショットに対応するゲームアプリケーション内の箇所から、ゲームアプリケーションのインスタンスの開始を実行することを可能にするメタデータ及び／または情報を含む。例えば、ユーザ５のゲームプレイにおいて、レベルの途中など、ゲームアプリケーションの進行中の特定の箇所で、スナップショットは生成され得る。関連スナップショット情報は、データベース１４０の１つ以上のデータベースに記憶される。ポインタを使用して、特定のスナップショットに対応する各データベースに情報を関連付けることができる。このようにして、ユーザ５のゲームプレイを体験したい別のユーザ、または自身の以前のゲームプレイを再度体験したい同一ユーザ５は、関心のあるゲームアプリケーション内の箇所に対応するスナップショットを選択してもよい。
【００４３】
各スナップショット内のメタデータ及び情報は、ユーザのゲームプレイに関連する追加情報を提供し得る、及び／または提供するために分析され得る。例えば、スナップショットは、ゲームアプリケーション内でユーザ（例えばユーザのキャラクタ）がいた場所、ゲームアプリケーション内でユーザがいる場所、ユーザがしたこと、ユーザが蓄積した財産及びスキル、及びゲームアプリケーション内でユーザが行こうとしている場所を、特定するのに役立ち得る。この追加情報を使用して、コンパニオンアプリケーションインターフェースにてユーザに表示されるコンテキスト関連コンテンツ（例えば補助情報）を生成してもよく、またはこの追加情報を使用して、他のユーザとのインタラクションのために構成されるコンテンツ（例えばクエスト、課題、メッセージなど）を生成してもよい。さらに、コンテキスト関連コンテンツは、ゲームアプリケーションをプレイする他のユーザの他のゲームプレイから収集される他の情報（例えば位置ベース情報）に基づいて生成され得る。
【００４４】
スナップショットは、その箇所でレンダリングされた景色のスナップショット画像を含む。スナップショット画像は、スナップショット画像データベース１４６に記憶される。時系列のサムネイル形式で提示されるスナップショット画像は、ビデオゲームを通してユーザが進行している該当箇所におけるユーザのゲームプレイのビューを提供する。
【００４５】
より具体的には、スナップショットはまた、その箇所でのゲームの状態を定義するゲーム状態データを含む。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイなどを含み得る。このようにして、ゲーム状態データにより、ビデオゲーム内の該当箇所に存在したゲーム環境の生成が可能となる。ゲーム状態データはまた、ＣＰＵ、ＧＰＵ、及びメモリの状態、レジスタ値、プログラムカウンタ値、プログラム可能ＤＭＡ状態、ＤＭＡのバッファされたデータ、音声チップ状態、ＣＤ‐ＲＯＭ状態など、ゲームプレイをレンダリングするために使用される全てのデバイスの状態を含み得る。ゲーム状態データはまた、ビデオゲームをその箇所から実行するために、実行可能コードのどの部分をロードする必要があるかを特定し得る。全てのゲーム状態データが取り込まれ記憶される必要はなく、スナップショットに対応する箇所から実行可能コードがゲームを開始するのに十分なデータだけが取り込まれ記憶されればよい。ゲーム状態データは、ゲーム状態データベース１４５に記憶される。
【００４６】
スナップショットはまた、ユーザ保存データを含む。一般に、ユーザ保存データは、該当ユーザのビデオゲームを個人的に設定する情報を含む。これには、ユーザのキャラクタに対応付けられた情報が含まれるため、ビデオゲームは、そのユーザに固有であり得るキャラクタ（例えば形状、外観、衣服、兵器類など）でレンダリングされる。このようにして、ユーザ保存データにより、該当ユーザのゲームプレイ用のキャラクタを生成することが可能となり、キャラクタは、スナップショットに対応付けられたビデオゲーム内の箇所に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイする時にユーザ５が選択したゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残存命数、利用可能命数の可能総数、防護具、トロフィ、タイムカウンタ値、及び他の財産情報などを含み得る。ユーザ保存データはまた、例えばユーザ５を識別するユーザプロファイルデータを含み得る。ユーザ保存データは、データベース１４１に記憶される。
【００４７】
さらに、スナップショットはまた、人工知能（ＡＩ）モジュール２１５により生成されるランダムシードデータを含む。ランダムシードデータは、元のゲームコードの一部ではなくてもよいが、オーバーレイで追加することで、ゲーム環境はユーザにとってより現実的及び／または魅力的なものになり得る。すなわち、ランダムシードデータは、ユーザのゲームプレイ内の該当箇所に存在するゲーム環境に、追加の機能を提供する。例えば、ＡＩキャラクタは、ランダムに生成され、オーバーレイで提供され得る。ＡＩキャラクタは、ゲームをプレイするいずれのユーザにも対応付けられていないが、ユーザ体験を向上させるために、ゲーム環境内に配置される。例示すると、これらのＡＩキャラクタは、都市の景色内の通りをランダムに歩き得る。さらに、他のオブジェクトも生成され、オーバーレイで提示され得る。例えば、背景の雲及び空間を飛ぶ鳥が生成され、オーバーレイで提示され得る。ランダムシードデータは、ランダムシードデータベース１４３に記憶される。
【００４８】
このようにして、ユーザ５のゲームプレイを体験したい別のユーザは、関心のあるビデオゲーム内の箇所に対応するスナップショットを選択し得る。例えば、時系列で提示されたスナップショット画像、またはノードグラフ内のノードをユーザが選択することにより、ゲームプロセッサ２０１のジャンプ実行エンジン２１６は、該当スナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内の箇所からビデオゲームの開始を実行することが可能になる。このようにして、スナップショットにより、要求ユーザは、スナップショットに対応する箇所でユーザ５のゲームプレイ内にジャンプすることが可能になる。さらに、ユーザ５は、他のユーザのゲームプレイにアクセスしてもよく、または該当スナップショットを使用して、同じまたは他のゲームアプリケーション内の前の自分のゲームプレイにアクセスすることさえしてもよい。具体的には、ユーザ５がスナップショットを選択することにより（例えば時系列から、またはメッセージを介してなど）、実行エンジン２１６は、該当ゲームアプリケーション内の該当スナップショットが取り込まれた箇所から、該当ゲームアプリケーションを実行し始めるために、様々なデータベースから（例えばデータベース１４０から）スナップショット（例えばメタデータ及び／または情報）を収集することが可能になる。
【００４９】
ゲームプロセッサ２０１は、ゲームアプリケーションをプレイする時にユーザ５のゲームプレイを支援するコンパニオンインターフェースを生成するように構成された位置ベースコンパニオンアプリケーション生成器２１３を含む。生成器２１３を使用して、ユーザ５のゲームプレイに基づく、ユーザ５へ配信またはユーザ５から受信されるコンテキスト関連情報（例えば補助情報、メッセージなど）を作成することができ、コンテキスト関連情報は、位置ベース情報（例えばスナップショット）を用いて作成される。コンテキスト関連情報はまた、ゲームアプリケーションをプレイする他のユーザのゲームプレイから収集された情報にも基づき得る。具体的には、生成器２１３は、ゲームプレイの特定のコンテキスト（例えばキャラクタの現在位置、ゲーム状態情報など）に関して、特定のゲームアプリケーションのユーザ５のゲームプレイの進捗を特定し（例えばスナップショットに基づいて）、ユーザ５のゲームプレイを表示するデバイスとは分離したデバイス１１上で表示可能なコンパニオンインターフェースに配信してもよいコンテキスト関連情報を特定するように構成可能である。例えば、コンテキスト関連情報は、ゲームアプリケーションを進行する補助を提供する情報を提供し得る。コンテキスト関連情報は、ユーザ５のゲームプレイが行く場所を予測するように構成された予測エンジン２１４により提供される情報を検討することで、キャラクタが訪れるエリア、ゲームプレイを進めるために求められるタスク、ゲームプレイを進めるために必要な財産（例えば求められるタスクを達成するために必要な財産）などを含み得る。コンパニオンインターフェースを使用して、他のユーザによるインタラクションに対し、ユーザ５によるコンテキスト関連情報を作成してもよい。例えば、コンパニオンインターフェースに表示される位置ベース情報（例えばレーダーマッピング、ウェイポイントなど）は、インタラクティブコンテンツ（例えばクエスト、課題、メッセージなど）を作成することを容易にし得る。すなわち、ユーザ５は、位置ベース情報（例えばスナップショット）を使用して、インタラクティブコンテキスト関連コンテンツを作成してもよい。別の実施例では、コンパニオンインターフェースを使用して、ユーザからのメッセージを作成することができ、メッセージは、ユーザの友だちに助けを求める、またはインタラクティブなコミュニケーション（例えばマルチプレーヤでのゲーム、からかいなど）を促進することを対象にし得る。コンパニオンインターフェースを使用して、他のユーザからのメッセージを表示し得る。コンパニオンインターフェースを使用して、補助のオファーを表示し得る。
【００５０】
例えば、実施形態では、位置ベース情報は、群衆ソーシング環境内の同じゲームアプリケーションをプレイする複数のユーザの現在及び／または過去のゲームプレイに基づき得るため、情報は、複数のゲームプレイの観察及び／または分析を通して決定され得る。このようにして、群衆ソースコンテンツはゲームプレイ中に発見する場合があり、コンテンツは、同じゲームアプリケーションをプレイする他のプレーヤに役立ち得る、またはこれらの他のプレーヤに向上したユーザ体験を提供し得る。別の実施形態では、コンパニオンインターフェース内で提供される情報は、同じゲームアプリケーションを同時にプレイしているユーザのゲームプレイに関連し得（例えば情報は、ゲームアプリケーションを同時にプレイしているユーザの友達のゲームプレイに関連し、情報は友達間のリアルタイムのインタラクションを提供する）、情報は、ユーザのゲームプレイを進める、または向上したユーザ体験を提供する。すなわち、それぞれのコンパニオンインターフェースは、ユーザ間のリアルタイムのインタラクションを提供する。さらに別の実施形態では、ユーザは孤立してゲームアプリケーションをプレイし（例えば単独でプレイし）、コンパニオンインターフェースを介して、第１のユーザのゲームプレイを進めるのに役立つ情報、または向上したユーザ体験を提供する情報を受信する。１人プレイの場合、情報（例えばヘルプ、コーチングなど）は、記録された映像、画像、及び／またはテキストコンテンツの形態で配信され得る。この情報は、リアルタイムで生成される場合はなく、それぞれのコンパニオンインターフェースを介して伝達される、ユーザの利益となる情報を生成する役割のゲーム開発者（例えばゲームソフトメーカ、ゲーム機メーカなどにより採用されているゲーム開発者）に関連する人により生成され得る。さらに、第３者（営利ベース、非営利ベースなど）は、ゲームをする公衆の利益となる情報を生成する役目を、自ら引き受け得る。さらに、情報は、第１のユーザの友達により、そのプレーヤのためだけの利益、またはグループ内の友達のためだけの利益のために、生成されてもよい。また情報は、ゲームインターフェース（例えばクラウドソースのゲームインターフェース）をプレイする他の関連する及び／または無関連ユーザにより生成されてもよい。さらに、コンパニオンインターフェースの実施態様に使用される構成要素は、ユーザのローカルの（例えばデバイス１１またはクライアントデバイス１００上に配置された）ゲームプロセッサ内に含まれてもよく、またはバックエンドサーバ（例えばゲームサーバ２０１５）内に含まれてもよい。
【００５１】
図示されるように、コンパニオンインターフェースは、表示及びインタラクションのためにデバイス１１（例えばタブレット）へ配信され、デバイス１１は、ユーザ５のインタラクションのためにゲームアプリケーションを実行する及び／または実行することを支援するように構成されたクライアントデバイス１００とは分離していてもよい。例えば、第１の通信チャネルは、ゲームサーバ２０５とクライアントデバイス１００との間に確立されてもよく、別個の第２の通信チャネルは、ゲームサーバ２０５とデバイス１１との間に確立されてもよい。
【００５２】
図１Ｂは、本開示の一実施形態による、該当ユーザのローカルで実行される１つ以上のゲームアプリケーションをプレイする１人以上のユーザに対しゲーム制御を提供するシステム１０６Ｂであって、バックエンドサーバサポート（例えばゲームサーバ２０５を介してアクセス可能）は、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施し得る、システム１０６Ｂを例示する。一実施形態では、システム１０６Ｂは、図１Ａのシステム１０及び図２のシステム２００と連携して作動し、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施する。ここで図面を参照すると、同様の参照番号は、同一または対応する部分を示す。
【００５３】
図１Ｂに示されるように、複数のユーザ１１５（例えばユーザ５Ａ、ユーザ５Ｂ、・・・、ユーザ５Ｎ）は、複数のゲームアプリケーションをプレイしており、ゲームアプリケーションのそれぞれは、該当ユーザの該当クライアントデバイス１００（例えばゲーム機）のローカルで実行される。さらに、複数のユーザ１１５のそれぞれは、前に紹介したように、デバイス１１上に表示するためのコンパニオンインターフェースを受信及び／または生成するように構成されたデバイス１１へアクセスすることができ、コンパニオンインターフェースは、前述のように、該当ゲームアプリケーションをプレイする該当ユーザにコンテキスト関連情報を提供する。クライアントデバイス１００のそれぞれは、該当ゲームアプリケーションのローカル実行が行われる点で、同様に構成され得る。例えば、ユーザ５Ａは、該当クライアントデバイス１００上の第１のゲームアプリケーションをプレイしていてもよく、第１のゲームアプリケーションのインスタンスは、該当ゲームタイトル実行エンジン１１１により実行される。第１のゲームアプリケーションを実施するゲームロジック１２６Ａ（例えば実行可能コード）は、該当クライアントデバイス１００上に記憶され、第１のゲームアプリケーションを実行するために使用される。例示として、ゲームロジックは、該当クライアントデバイス１００に、携帯媒体（例えばフラッシュドライブ、コンパクトディスクなど）を介して、またはネットワークを介して配信され得る（例えばインターネット１５０を介してゲームプロバイダからダウンロードされ得る）。例えば、ユーザ５Ｂは、該当クライアントデバイス１００上の第２のゲームアプリケーションをプレイしており、第２のゲームアプリケーションのインスタンスは、該当ゲームタイトル実行エンジン１１１により実行される。第２のゲームアプリケーションは、ユーザ５Ａのために実行されている第１のゲームアプリケーションと同一であり得る、または異なるゲームアプリケーションであり得る。第２のゲームアプリケーションを実施するゲームロジック１２６Ｂ（例えば実行可能コード）は、前述のように該当クライアントデバイス１００上に記憶され、第２のゲームアプリケーションを実行するために使用される。さらに、ユーザ１１５Ｎは、該当クライアントデバイス１００上の第Ｎのゲームアプリケーションをプレイしており、第Ｎのゲームアプリケーションのインスタンスは、該当ゲームタイトル実行エンジン１１１により実行される。第Ｎのゲームアプリケーションは、第１または第２のゲームアプリケーションと同一であり得る、または全く異なるゲームアプリケーションであり得る。第３のゲームアプリケーションを実施するゲームロジック１２６Ｎ（例えば実行可能コード）は、前述のように該当クライアントデバイス１００上に記憶され、第Ｎのゲームアプリケーションを実行するために使用される。
【００５４】
前述のように、クライアントデバイス１００は、ゲームコントローラ、タブレットコンピュータ、キーボードなどの様々な種類の入力デバイスからの入力、及びビデオカメラ、マウス、タッチパッドなどにより取り込まれたジェスチャを受信し得る。クライアントデバイス１００は、メモリと、ネットワーク１５０を介してゲームサーバ２０５に接続することが可能なプロセッサモジュールとを少なくとも有する任意の種類のコンピューティングデバイスであり得る。また、該当ユーザのクライアントデバイス１００は、ローカルまたはリモートで作動するゲームタイトル実行エンジン１１１により実行されるレンダリング画像を生成して、レンダリング画像をディスプレイ上に表示するように構成される。例えば、レンダリング画像は、ユーザ５Ａのクライアントデバイス１００上で実行される第１のゲームアプリケーションのインスタンスに対応付けられ得る。例えば、該当クライアントデバイス１００は、ゲームプレイを駆動するために使用される入力コマンドを介するなどして、該当ユーザのゲームプレイを実施するためにローカルまたはリモートで実行される該当ゲームアプリケーションのインスタンスとインタラクションを行うように構成される。
【００５５】
一実施形態では、クライアントデバイス１００は、ゲームアプリケーションをプレイしている該当ユーザのために、シングルプレーヤモードで作動している。後述されるように、本開示の一実施形態によれば、ゲームサーバ２０５を介したバックエンドサーバサポートにより、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースサービスが提供され得る。
【００５６】
別の実施形態では、複数のクライアントデバイス１００は、特定のゲームアプリケーションをそれぞれプレイしている該当ユーザのために、マルチプレーヤモードで作動している。この場合、ゲームサーバを介したバックエンドサーバサポートは、マルチプレーヤ処理エンジン１１９を通すなどして、マルチプレーヤ機能を提供し得る。具体的には、マルチプレーヤ処理エンジン１１９は、特定のゲームアプリケーションのマルチプレーヤゲームセッションを制御するように構成される。例えば、マルチプレーヤ処理エンジン１１９は、マルチプレーヤゲームセッションに参加しているユーザ及び／またはプレーヤのそれぞれと通信セッションを確立及び維持するように構成されたマルチプレーヤセッションコントローラ１１６と通信する。このように、マルチプレーヤセッションコントローラ１１６により制御されることにより、セッション内のユーザは相互通信を行うことができる。
【００５７】
さらに、マルチプレーヤ処理エンジン１１９は、各ユーザの該当ゲーム環境内のユーザ間のインタラクションを可能にするために、マルチプレーヤロジック１１８と通信する。特に、状態共有モジュール１１７は、マルチプレーヤゲームセッション内のユーザそれぞれの状態を管理するように構成される。例えば、状態データは、特定箇所の該当ユーザの（ゲームアプリケーションの）ゲームプレイ状態を定義するゲーム状態データを含み得る。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイなどを含み得る。このようにして、ゲーム状態データにより、ゲームアプリケーション内の該当箇所に存在するゲーム環境の生成が可能となる。ゲーム状態データはまた、ＣＰＵ、ＧＰＵ、及びメモリの状態、レジスタ値、プログラムカウンタ値、プログラム可能ＤＭＡ状態、ＤＭＡのバッファされたデータ、音声チップ状態、ＣＤ‐ＲＯＭ状態など、ゲームプレイをレンダリングするために使用される全てのデバイスの状態を含み得る。ゲーム状態データはまた、ビデオゲームをその箇所から実行するために、実行可能コードのどの部分をロードする必要があるかを特定し得る。ゲーム状態データは、図１Ａ及び図２のデータベース１４０に記憶されてもよく、状態共有モジュール１１７によりアクセス可能である。
【００５８】
さらに、状態データは、該当プレーヤのビデオゲームを個人的に設定する情報を含むユーザ保存データを含み得る。これには、ユーザがプレイするキャラクタに対応付けられた情報が含まれるため、ビデオゲームは、そのユーザに固有であり得るキャラクタ（例えば位置、形状、外観、衣服、兵器類など）でレンダリングされる。このようにして、ユーザ保存データにより、該当ユーザのゲームプレイ用のキャラクタを生成することが可能となり、キャラクタは、該当ユーザが現在体験しているゲームアプリケーション内の箇所に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイする時に該当ユーザ１１５Ａが選択したゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残存命数、利用可能命数の可能総数、防護具、トロフィ、タイムカウンタ値などを含み得る。ユーザ保存データはまた、例えば該当ユーザ１１５Ａを識別するユーザプロファイルデータを含み得る。ユーザ保存データは、データベース１４０に記憶され得る。
【００５９】
このようにして、状態共有データ１１７及びマルチプレーヤロジック１１８を用いるマルチプレーヤ処理エンジン１１９は、マルチプレーヤゲームセッションに参加するユーザのゲーム環境のそれぞれに、オブジェクト及びキャラクタをオーバーレイ／挿入することができる。例えば、第１のユーザのキャラクタは、第２のユーザのゲーム環境にオーバーレイ／挿入される。これにより、各自それぞれのゲーム環境（例えば画面上に表示される）を介して、マルチプレーヤゲームセッション内のユーザ間のインタラクションが可能になる。
【００６０】
さらに、ゲームサーバ２０５を介したバックエンドサーバサポートは、コンパニオンアプリケーション生成器２１３により生成されたコンパニオンインターフェースを通して提供される位置ベースコンパニオンアプリケーションサービスを提供し得る。前に紹介したように、生成器２１３は、ユーザ５へ配信される、またはユーザ５から受信されるコンテキスト関連情報（例えば補助情報、メッセージなど）を作成するように構成される。情報は、特定のアプリケーションのユーザ５のゲームプレイに基づいて（例えばスナップショット内に提供される情報に基づいて）生成される。このようにして、生成器２１３は、ユーザ５のゲームプレイのコンテキストを特定し、デバイス１１（例えばユーザ５のゲームプレイを表示するデバイスとは分離したデバイス）上に表示可能なコンパニオンインターフェースに配信可能なコンテキスト関連情報を提供することができる。
【００６１】
図１Ｃは、本開示の一実施形態による、クラウドゲームネットワークを介して実行されるゲームアプリケーションをプレイする複数のユーザ１１５（例えばユーザ５Ｌ、５Ｍ、・・・、５Ｚ）にゲーム制御を提供するシステム１０６Ｃを例示する。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で作動する複数の仮想マシン（ＶＭ）を含むゲームクラウドシステム２１０であり得、１つ以上の仮想マシンは、ホストのハイパーバイザが使用可能なハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。一実施形態では、システム１０６Ｃは、図１Ａのシステム１０及び／または図２のシステム２００と連携して作動し、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施する。ここで図面を参照すると、同様の参照番号は、同一または対応する部分を示す。
【００６２】
図示されるように、ゲームクラウドシステム２１０は、複数のインタラクティブビデオゲームまたはゲームアプリケーションへのアクセスを提供するゲームサーバ２０５を含む。ゲームサーバ２０５は、クラウド内で利用可能な任意の種類のサーバコンピューティングデバイスであり得、１つ以上のホスト上で実行される１つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ２０５は、ユーザのゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサを支援する仮想マシンを管理し得る。よって、複数の仮想マシンに対応付けられたゲームサーバ２０５の複数のゲームプロセッサは、複数のユーザ１１５のゲームプレイに対応付けられたゲームアプリケーションの複数のインスタンスを実行するように構成される。このようにして、バックエンドサーバサポートは、複数の該当ユーザに対し、複数のゲームアプリケーションのゲームプレイの媒体（例えば映像、音声など）のストリーミングを提供する。
【００６３】
複数のユーザ１１５は、ネットワーク１５０を介してゲームクラウドシステム２１０にアクセスし、ユーザ（例えばユーザ５Ｌ、５Ｍ、・・・、５Ｚ）は、該当クライアントデバイス１００’を介してネットワーク１５０にアクセスし、クライアントデバイス１００’は、図１Ａ〜１Ｂのクライアントデバイス１００と同様に構成され得る（例えばゲーム実行エンジン１１１などを含む）、または計算機能を提供するバックエンドサーバとのインターフェースを提供するシンクライアントとして構成され得る（例えばゲーム実行エンジン２１１を含む）。さらに、複数のユーザ１１５のそれぞれは、前に紹介したように、デバイス１１上に表示するためのコンパニオンインターフェースを受信及び／または生成するように構成されたデバイス１１へアクセスすることができ、コンパニオンインターフェースは、前述のように、該当ゲームアプリケーションをプレイする該当ユーザにコンテキスト関連情報を提供する。具体的には、該当ユーザ５Ｌのクライアントデバイス１００’は、インターネットなどのネットワーク１５０を介してゲームアプリケーションへのアクセスを要求するように、ならびに、ゲームサーバ２０５により実行され、該当ユーザ５Ｌに対応付けられたディスプレイデバイスに配信されるゲームアプリケーション（例えばビデオゲーム）のインスタンスをレンダリングするように、構成される。例えば、ユーザ５Ｌは、クライアントデバイス１００’を通して、ゲームサーバ２０５のゲームプロセッサ上で実行されるゲームアプリケーションのインスタンスとインタラクションを行い得る。より具体的には、ゲームアプリケーションのインスタンスは、ゲームタイトル実行エンジン２１１により実行される。ゲームアプリケーションを実施するゲームロジック（例えば実行可能コード）は、前述のようにデータストア１４０に記憶され、アクセス可能であり、ゲームアプリケーションを実行するために使用される。ゲームタイトル処理エンジン２１１は、図示されるように、複数のゲームロジック１７７を使用して、複数のゲームアプリケーションを支援することができる。
【００６４】
前述のように、クライアントデバイス１００’は、ゲームコントローラ、タブレットコンピュータ、キーボードなどの様々な種類の入力デバイスからの入力、及びビデオカメラ、マウス、タッチパッドなどにより取り込まれたジェスチャを受信し得る。クライアントデバイス１００’は、メモリと、ネットワーク１５０を介してゲームサーバ２０５に接続することが可能なプロセッサモジュールとを少なくとも有する任意の種類のコンピューティングデバイスであり得る。また、該当ユーザのクライアントデバイス１００’は、ローカルまたはリモートで作動するゲームタイトル実行エンジン２１１により実行されるレンダリング画像を生成して、レンダリング画像をディスプレイ上に表示するように構成される。例えば、レンダリング画像は、ユーザ５Ｌのクライアントデバイス１００’上で実行される第１のゲームアプリケーションのインスタンスに対応付けられ得る。例えば、該当クライアントデバイス１００’は、ゲームプレイを駆動するために使用される入力コマンドを介するなどして、該当ユーザのゲームプレイを実施するためにローカルまたはリモートで実行される該当ゲームアプリケーションのインスタンスとインタラクションを行うように構成される。
【００６５】
別の実施形態では、マルチプレーヤ処理エンジン１１９は、前述のように、ゲームアプリケーションのマルチプレーヤゲームセッションの制御を提供する。具体的には、マルチプレーヤ処理エンジン１１９がマルチプレーヤゲームセッションを管理している時、マルチプレーヤセッションコントローラ１１６は、マルチプレーヤセッション内のユーザ及び／またはプレーヤのそれぞれと通信セッションを確立及び維持するように構成される。このように、マルチプレーヤセッションコントローラ１１６により制御されることにより、セッション内のユーザは相互通信を行うことができる。
【００６６】
さらに、マルチプレーヤ処理エンジン１１９は、各ユーザの該当ゲーム環境内のユーザ間のインタラクションを可能にするために、マルチプレーヤロジック１１８と通信する。特に、状態共有モジュール１１７は、マルチプレーヤゲームセッション内のユーザそれぞれの状態を管理するように構成される。例えば、状態データは、前述のように、特定箇所の該当ユーザ１１５Ａの（ゲームアプリケーションの）ゲームプレイ状態を定義するゲーム状態データを含み得る。さらに、状態データは、前述のように、該当プレーヤのビデオゲームを個人的に設定する情報を含むユーザ保存データを含み得る。例えば、状態データは、ユーザのキャラクタに対応付けられた情報を含むため、ビデオゲームは、そのユーザに固有であり得るキャラクタ（例えば形状、外観、衣服、兵器類など）でレンダリングされる。このようにして、状態共有データ１１７及びマルチプレーヤロジック１１８を用いるマルチプレーヤ処理エンジン１１９は、マルチプレーヤゲームセッションに参加するユーザのゲーム環境のそれぞれに、オブジェクト及びキャラクタをオーバーレイ／挿入することができる。これにより、各自それぞれのゲーム環境（例えば画面上に表示される）を介して、マルチプレーヤゲームセッション内のユーザ間のインタラクションが可能になる。
【００６７】
さらに、ゲームサーバ２０５を介したバックエンドサーバサポートは、コンパニオンアプリケーション生成器２１３により生成されたコンパニオンインターフェースを通して提供される位置ベースコンパニオンアプリケーションサービスを提供し得る。前に紹介したように、生成器２１３は、該当ユーザ（例えばユーザ５Ｌ）へ配信される、または該当ユーザ（例えばユーザ５Ｌ）から受信されるコンテキスト関連情報（例えば補助情報、メッセージなど）を作成するように構成される。情報は、特定のアプリケーションのユーザのゲームプレイに基づいて（例えばスナップショット内に提供される情報に基づいて）生成される。このようにして、生成器２１３は、該当ユーザのゲームプレイのコンテキストを特定し、デバイス１１（例えばユーザ５Ｌのゲームプレイを表示するデバイスとは分離したデバイス）上に表示可能なコンパニオンインターフェースに配信可能なコンテキスト関連情報を提供することができる。
【００６８】
図２は、本開示の一実施形態による、ゲームクラウドシステム（ＧＣＳ）２１０に格納されたゲームアプリケーションへのアクセス及びプレイを可能にするシステム図２００を例示する。概して、ゲームクラウドシステムＧＣＳ２１０は、複数のユーザを支援するために、ネットワーク２２０を介して作動するクラウドコンピューティングシステムであり得る。さらに、ＧＣＳ２１０は、複数のユーザのゲームアプリケーションのゲームプレイ中に生成されるスナップショットを保存するように構成され、スナップショットを使用することで、スナップショットに対応するゲームアプリケーション内の箇所から、要求ユーザのゲームアプリケーションの開始のインスタンスを開始することができる。例えば、スナップショット生成器２１２は、ゲームアプリケーションをプレイする１人以上のプレーヤのゲームプレイのスナップショットを生成する及び／または取り込むように構成される。スナップショット生成器２１２は、ゲームサーバ２０５の外部または内部で実行され得る。さらに、ＧＣＳ２１０は、スナップショットの使用を通じて、ユーザが、ゲームアプリケーション内を移動し、ゲームアプリケーションの過去及び将来のシーンをプレビューすることを可能にする。さらに、スナップショットにより、要求ユーザは、該当するスナップショットを通じてビデオゲーム内の選択箇所にジャンプし、別のユーザのゲームプレイを体験することができる。具体的には、システム２００は、ＧＣＳ２１０、１つ以上のソーシャルメディアプロバイダ２４０、及びユーザデバイス２３０を含み、これらの全ては、ネットワーク２２０（例えばインターネット）を介して接続されている。１つ以上のユーザデバイスは、ネットワーク２２０に接続され、ＧＣＳ２１０及びソーシャルメディアプロバイダ２４０により提供されるサービスにアクセスし得る。
【００６９】
一実施形態では、ゲームクラウドシステム２１０は、ゲームサーバ２０５、映像レコーダ２７１、タグプロセッサ２７３、及びユーザプロフィールマネジャを含むアカウントマネジャ２７４、ゲーム選択エンジン２７５、ゲームセッションマネジャ２８５、ユーザアクセスロジック２８０、ネットワークインターフェース２９０、及びソーシャルメディアマネジャ２９５を含む。ＧＣＳ２１０はさらに、一般にデータストア１４０に格納され得るゲーム状態ストア、ランダムシードストア、ユーザ保存データストア、スナップショットストアなどの複数のゲームストレージシステムを含み得る。他のゲームストレージシステムには、ゲームコードストア２６１、記録ゲームストア２６２、タグデータストア２６３、ビデオゲームデータストア２６４、及びゲームネットワークユーザストア２６５が含まれ得る。一実施形態では、ＧＣＳ２１０は、ゲームアプリケーション、サービス、ゲーム関連デジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ、及びソーシャルネットワークの間の相互接続を提供し得るシステムである。ＧＣＳ２１０は、ソーシャルメディアマネジャ２９５を通しネットワークインターフェース２９０を介して、ユーザデバイス２３０及びソーシャルメディアプロバイダ２４０と通信し得る。ソーシャルメディアマネジャ２９５は、１人以上の友達と関連するように構成され得る。一実施形態では、各ソーシャルメディアプロバイダ２４０は、ユーザソーシャルネットワーク接続を示す少なくとも１つのソーシャルグラフ２４５を含む。
【００７０】
ユーザＵ０は、ゲームセッションマネジャ２８５を介して、ＧＣＳ２１０により提供されるサービスにアクセスすることができ、ユーザＵ０は、図１のユーザ５を表し得る。例えば、アカウントマネジャ２７４により、ＧＣＳ２１０へのユーザＵ０の認証及びアクセスが可能になる。アカウントマネジャ２７４は、会員ユーザに関する情報を記憶する。例えば、各会員ユーザのユーザプロファイルは、アカウントマネジャ２７４により管理され得る。このように、アカウントマネジャ２７４は、認証目的で会員情報を使用することができる。例えば、アカウントマネジャ２７４は、会員ユーザに関するユーザ情報を更新及び管理するために使用され得る。さらに、会員ユーザが所持するゲームタイトルは、アカウントマネジャ２７４により管理され得る。このようにして、データストア２６４に格納されるゲームアプリケーションは、これらのゲームアプリケーションを所持する全ての会員ユーザに利用可能となっている。
【００７１】
一実施形態では、ユーザ、例えばユーザＵ０は、ユーザデバイス２３０により、ネットワーク２２０を介した接続を通して、ＧＣＳ２１０及びソーシャルメディアプロバイダ２４０により提供されるサービスにアクセスすることができる。ユーザデバイス２３０には、プロセッサ及びメモリを有する、有線または無線の、携帯または非携帯の任意の種類のデバイスが含まれ得る。一実施形態では、ユーザデバイス２３０は、スマートフォン、タブレットコンピュータ、または携帯フォームファクタでタッチスクリーン能力を提供するハイブリッドの形態であり得る。１つの例示的なデバイスには、オペレーティングシステムを作動させる携帯電話デバイスであって、ネットワーク２２０を介して取得され、ローカル携帯デバイス（例えばスマートフォン、タブレット、ラップトップ、デスクトップなど）上で実行され得る様々なアプリケーション（ａｐｐ）へのアクセスが与えられた携帯電話デバイスが含まれ得る。
【００７２】
ユーザデバイス２３０は、ユーザＵ０が入力コマンド２３６を送信し、ＧＣＳ２１０及びソーシャルメディアプロバイダ２４０から受信されたデータ及び／または情報２３５を表示するインターフェースとして機能するディスプレイ２３２を含む。ディスプレイ２３２は、タッチスクリーン、あるいはフラットパネルディスプレイ、ブラウン管（ＣＲＴ）、または表示をレンダリング可能な他のデバイスにより典型的に提供されるディスプレイとして構成され得る。あるいは、ユーザデバイス２３０は、デスクトップコンピュータまたはラップトップコンピュータと同様に、デバイスとは分離した自身のディスプレイ２３２を有し得る。ユーザＵ０は、位置ベースコンパニオンインターフェースを実施するのに、追加のデバイス２３１（例えば図１Ａのデバイス１１）を利用可能であり得る。
【００７３】
一実施形態では、ユーザデバイス１３は、ＧＣＳ２１０と通信して、ユーザＵ０がゲームアプリケーションをプレイすることを可能にするように構成される。いくつかの実施形態では、ＧＣＳ２１０は、ホストマシンのハイパーバイザ上で作動する複数の仮想マシン（ＶＭ）を含んでもよく、１つ以上の仮想マシンは、ホストのハイパーバイザが使用可能なハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。例えば、ユーザＵ０は、ゲーム選択エンジン２７５を介して、ビデオゲームデータストア２６４内の利用可能なゲームアプリケーションを選択し得る（例えばゲームタイトルなどにより）。ゲームアプリケーションは、シングルプレーヤゲーム環境内、またはマルチプレーヤゲーム環境内で、プレイされ得る。このようにして、選択されたゲームアプリケーションは、ＧＣＳ２１０上のゲームサーバ２０５により実行されるように、利用可能となり、ロードされる。一実施形態では、ゲームプレイは主にＧＣＳ２１０において実行されるため、ユーザデバイス２３０は、ＧＣＳ２１０からゲーム映像フレーム２３５のストリームを受信し、ゲームプレイを駆動するユーザ入力コマンド２３６がＧＣＳ２１０へ返送される。ゲームプレイのストリーミングから受信された映像フレーム２３５は、ユーザデバイス２３０のディスプレイ２３２に表示される。他の実施形態では、ＧＣＳ２１０は、複数のユーザを支援する複数のローカルコンピューティングデバイスを支援するように構成され、各ローカルコンピューティングデバイスは、シングルプレーヤゲームアプリケーションまたはマルチプレーヤゲームアプリケーション内などのゲームアプリケーションのインスタンスを実行し得る。例えば、マルチプレーヤゲーム環境で、ゲームアプリケーションがローカルで実行されている間、クラウドゲームネットワークは同時に各ローカルコンピューティングデバイスから情報（例えばゲーム状態データ）を受信し、その情報をローカルコンピューティングデバイスのうちの１つ以上にわたって適宜配信し、これにより各ユーザは、マルチプレーヤゲームアプリケーションのゲーム環境で他のユーザとインタラクションを行うことができる（例えばビデオゲーム内の該当キャラクタを介して）。このようにして、クラウドゲームネットワークは、マルチプレーヤゲーム環境内のユーザそれぞれのゲームプレイを調整し、組み合わせる。
【００７４】
一実施形態では、ユーザＵ０がプレイしたい利用可能なゲームタイトルを選択した後、選択されたゲームタイトルのゲームセッションは、ユーザＵ０によりゲームセッションマネジャ２８５を通して開始され得る。ユーザＵ０が前回のゲームプレイ停止箇所からゲームプレイを再開することができるように、ゲームセッションマネジャ２８５は、まずデータストア１４０内のゲーム状態ストアにアクセスし、（選択されたゲームに関して）ユーザＵ０がプレイした最後のセッションの保存ゲーム状態が存在する場合は、これを取得する。一度レジューム箇所または開始箇所が特定されると、ゲームセッションマネジャ２８５は、ゲームプロセッサ２０１内のゲーム実行エンジンに、ゲームコードストア２６１から選ばれたゲームタイトルのゲームコードを実行するように通知し得る。ゲームセッションが開始された後、ゲームセッションマネジャ２８５は、ネットワークインターフェース２９０を介して、例えばユーザデバイス２３０などのユーザデバイスに、ゲーム映像フレーム２３５（すなわち映像データのストリーミング）を引き渡し得る。
【００７５】
ゲームプレイ中、ゲームセッションマネジャ２８５は、ゲームプロセッサ２０１、記録エンジン２７１、及びタグプロセッサ２７３と通信して、ゲームプレイまたはゲームプレイセッションの記録（例えば映像）を生成または保存し得る。一実施形態では、ゲームプレイの映像記録には、ゲームプレイ中に入力または提供されたタグコンテンツ、及び他のゲーム関連メタデータが含まれ得る。タグコンテンツはまた、スナップショットを介して保存され得る。ゲームプレイの映像記録は、そのゲームプレイに対応する任意のゲームメトリクスと共に、記録ゲームストア２６２に保存され得る。いずれのタグコンテンツも、タグデータストア２６３に保存され得る。
【００７６】
ゲームプレイ中、ゲームセッションマネジャ２８５は、ゲームサーバ２０５のゲームプロセッサ２０１と通信して、ゲームアプリケーションの該当ゲームプレイの結果に影響を与えるために使用されるユーザ入力コマンド２３６を、配信及び取得し得る。ユーザＵ０が入力した入力コマンド２３６は、ユーザデバイス２３０から、ＧＣＳ２１０のゲームセッションマネジャ２８５へ送信され得る。ゲームプレイを駆動するために使用される入力コマンドを含む入力コマンド２３６には、タグコンテンツ（例えばテキスト、画像、映像記録クリップなど）を含むようなユーザインタラクティブ入力が含まれ得る。ゲーム入力コマンド、ならびに任意のユーザプレイメトリクス（ユーザがゲームをプレイする時間の長さなど）は、ゲームネットワークユーザストアに記憶され得る。ゲームアプリケーションのゲームプレイに関連する選択情報を使用して、ユーザが利用可能であり得る複数の機能を有効にすることができる。
【００７７】
ゲームプレイは複数のユーザによりＧＣＳ２１０上で実行されるため、これらのゲームから生成され記憶された情報は、特にゲームプレイがＧＣＳ２１０を介して実行される場合、任意の要求ユーザが他のユーザのゲームプレイを体験することを可能にする。具体的には、ＧＣＳ２１０のスナップショット生成器２１２は、ＧＣＳ２１０を通してゲームアプリケーションをプレイするユーザのゲームプレイにより生成されたスナップショットを保存するように構成される。ユーザＵ０の場合、ユーザデバイスは、ユーザＵ０がゲームプレイ中にゲームアプリケーションと連動することを可能にするインターフェースを提供する。ユーザＵ０によるゲームプレイのスナップショットが生成され、ＧＣＳ２１０上に保存される。スナップショット生成器２１２は、図２に示されるようにゲームサーバ２０５の外部で実行され得る、または図１Ａに示されるようにゲームサーバ２０５の内部で実行され得る。
【００７８】
さらに、これらのゲームプレイから収集された情報を使用して、該当コンパニオンアプリケーションにてユーザＵ０に提供されるコンテキスト関連情報が生成され得る。例えば、前に紹介したように、コンパニオンアプリケーション生成器２１３は、ユーザＵ０のゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースを実施するように構成され、コンパニオンインターフェースは、ユーザＵ０のゲームプレイ内のキャラクタの位置に基づいて生成されるコンテキスト関連情報（例えばメッセージ通信、補助情報、補助のオファーなど）を含む。コンパニオンアプリケーション生成器２１３は、図２に示されるようにゲームサーバ２０５の外部で実行され得る、または図１Ａに示されるようにゲームサーバ２０５の内部で実行され得る。これらの実施態様では、コンテキスト関連情報を含むコンパニオンアプリケーションインターフェースの表示のため、コンテキスト関連情報は、ネットワーク２２０を介してユーザデバイス２３１へ配信され得る。別の実施形態では、コンパニオンアプリケーション生成器２１３は、ユーザのローカルに存在し（例えばユーザデバイス２３１内に実装され）、コンテキスト関連情報を生成かつ表示するように構成され得る。この実施態様では、ユーザデバイス２３１は、ローカルネットワークを介して（または外部ネットワーク２２０を通して）直接ユーザデバイス２３０と通信して、コンパニオンアプリケーションインターフェースを実施する場合があり、ユーザデバイス２３１は、ユーザデバイス２３０に位置ベース情報を配信する場合があり、デバイス２３０は、コンテキスト関連情報を含むコンパニオンアプリケーションインターフェースを生成し表示するように構成される。
【００７９】
さらに、ユーザデバイス２３０は、ユーザＵ０または別のユーザのゲームプレイにおいて生成されたスナップショットを用いて、ゲームアプリケーション内の選択箇所にジャンプすることを可能にするインターフェースを提供するように構成される。例えば、ジャンプゲーム実行エンジン２１６は、該当スナップショットにアクセスし、スナップショットに基づいてゲームアプリケーションのインスタンスをインスタンス化し、スナップショットに対応するゲームアプリケーション内の箇所からゲームアプリケーションの開始を実行するように構成される。このようにして、スナップショットにより、要求ユーザは、スナップショットに対応する箇所で該当ユーザのゲームプレイ内にジャンプすることが可能になる。例えば、ユーザＵ０は、任意の他のユーザのゲームプレイを体験する、または自身のゲームプレイを戻って見直す及び／または再生することができる。すなわち、該当ゲームプレイのスナップショットを介して、要求ユーザは、そのゲームプレイ内で使用され、そのゲームプレイに対応したキャラクタを用いて、ゲームアプリケーションをプレイする。ジャンプゲーム実行エンジン２１６は、図２に示されるようにゲームサーバ２０５の外部で実行され得る、または図１Ａに示されるようにゲームサーバ２０５の内部で実行され得る。
【００８０】
図３〜８は、ユーザがゲームアプリケーションをプレイする状況において説明される。概して、ゲームアプリケーションは、ユーザ入力に応答する任意のインタラクティブゲームであり得る。具体的に、図３〜８は、ユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースを説明し、コンパニオンインターフェースは、ユーザのゲームプレイ内のキャラクタの位置に基づいて生成されたコンテキスト関連情報（例えばメッセージ通信、補助情報など）を含む。
【００８１】
ネットワークを介して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細な説明と共に、本開示の一実施形態による、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースを実施する方法が、図３のフロー図３００に関連してここで説明される。フロー図３００は、ユーザのクライアントデバイスに表示するためにネットワークを介して送信される、コンパニオンインターフェース内に含まれる位置ベース情報を生成する目的で、ゲームサーバ側が関わる動作のプロセス及びデータフローを例示し、クライアントデバイスは、ゲームアプリケーションをプレイするユーザのゲームプレイを表示する別のデバイスとは分離していてもよい。具体的には、フロー図３００の方法は、図１及び２のコンパニオンアプリケーション生成器２１３により、少なくとも部分的に実行され得る。
【００８２】
図３において開示される本発明の実施形態は、ゲームサーバ側の立場から説明されるが、本発明の他の実施形態は、ユーザのゲームプレイを支援してゲームアプリケーションを実行するように構成され、ゲームプレイの位置ベース情報を生成するように構成されたゲームプロセッサを含むローカルユーザシステム内の位置ベースコンパニオンインターフェースと、ローカルネットワークを介して位置ベース情報を受信して、コンテキスト関連情報を表示するように構成された別のデバイスのコンパニオンアプリケーション生成器とを実施するのによく適している。例えば、コンパニオンインターフェースは、ローカル及び孤立システム内で実施され、他のユーザのゲームプレイからの情報は、コンテキスト関連情報を生成するのに必ずしも使用されるわけではない。別の実施態様では、他のユーザのゲームプレイからの情報は、別のネットワークを介してバックエンドゲームサーバから受信され、コンテキスト関連情報を生成するために使用され得る。
【００８３】
フロー図３００は、ゲームアプリケーションを実行し、ゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を生成する動作３０５、３１０、及び３１５を含む。具体的には、方法は、動作３０５にて、ユーザのゲームプレイに対応付けられたゲームアプリケーションの第１のインスタンスをインスタンス化することを含む。前述のように、一実施形態では、ゲームアプリケーションのインスタンスは、ユーザのクライアントデバイスにてローカルで実行することができる。別の実施形態では、ゲームアプリケーションのインスタンスは、バックエンドゲームサーバのバックエンドゲーム実行エンジンにて実行してもよく、サーバは、クラウドゲームネットワークまたはゲームクラウドシステムの一部であり得る。方法は、動作３１０にて、ユーザのゲームプレイを表すデータを、ユーザによるインタラクションのため、第１の通信チャネルを介して第１のコンピューティングデバイスへ配信することを含む。通信チャネルは、例えばインターネットなどのネットワークを通して実施され得る。よって、第１のコンピューティングデバイスにて表示されるレンダリング画像が配信され得、レンダリング画像は、ユーザのゲームプレイに対応付けられた入力コマンドに応じて、ゲームアプリケーションのインスタンスにより生成される。
【００８４】
方法は、動作３１５にて、ユーザのゲームプレイ内のキャラクタの位置ベース情報を特定することを含む。具体的には、位置ベース情報は、ゲームアプリケーションに対応付けられたゲーム世界におけるユーザのゲームプレイ内のキャラクタの位置を参照して作られる。位置ベース情報は、前述のように、ユーザのゲームプレイ中に生成、取り込み、及び／または記憶されたスナップショット内に含まれ得る。例えば、各スナップショットは、キャラクタの位置を参照して生成されたメタデータ及び／または情報を含む。一実施形態では、メタデータ及び／または情報は、スナップショットに対応するゲームアプリケーション内の箇所から、ゲームアプリケーションのインスタンスの開始の実行を可能にするように構成される（例えばゲームプレイ内のキャラクタの位置を反映した、スナップショットが取り込まれた時のゲームプレイの状態に対応するジャンプ箇所からの開始）。例えば、スナップショットは、ゲームプレイの位置ベース情報、及び該当箇所でのゲームプレイの状態を定義するゲーム状態データを含み（例えばゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、オブジェクト属性、グラフィックオーバーレイ、キャラクタの財産、キャラクタのスキルセット、キャラクタのゲームアプリケーション内のタスク達成履歴、ゲーム世界内のキャラクタの現在の地理的位置、ユーザのゲームプレイにおけるゲームアプリケーションの進捗、キャラクタのゲームプレイの現在の状態などを含む）、よってゲーム状態データにより、ゲームプレイ内の該当箇所で存在したゲーム環境を生成することが可能となる。スナップショットは、ユーザのためにゲームアプリケーションを個人的に設定するために使用されるユーザ保存データを含んでもよく、データは、ゲームプレイ内のキャラクタ（例えば形状、外観、衣服、武器類、ゲーム難易度、ゲームレベル、キャラクタ属性など）を個人的に設定する情報を含み得る。スナップショットはまた、前述のように、ゲーム状態に関連するランダムシードデータを含み得る。
【００８５】
フロー図３００の残りの動作は、コンパニオンアプリケーション生成器により実行してもよく、前述のように、コンパニオンアプリケーション生成器は、ローカルで、またはクラウドゲームネットワークのバックエンドサーバで実行され得る。具体的に、方法は、動作３２０にて、ゲームアプリケーションをプレイするユーザのゲームプレイの位置ベース情報を受信することを含む。第１のコンピューティングデバイスのローカルでゲームアプリケーションが実行される場合、ゲームプレイ中に生成される位置ベース情報は、ネットワークを介してローカルの第１のコンピューティングデバイスから受信され得る。例えば、位置ベース情報は、第１のコンピューティングデバイスにより生成されローカルに記憶され得る。クラウドゲームネットワークまたはゲームクラウドシステムのバックエンドゲームサーバで作動するゲーム実行エンジンにてゲームアプリケーションが実行される場合、ゲームプレイ中に生成される位置ベース情報は、クラウドゲームネットワークがゲームアプリケーションを実行し、コンパニオンインターフェースを生成するように構成されている時は内部的に、またはクラウドゲームネットワークがゲームアプリケーションを実行するように構成され、別のサーバがコンパニオンインターフェースを生成する時は外部的に、バックエンドゲームサーバから受信され得る。
【００８６】
方法は、動作３２５にて、ゲームアプリケーションをプレイする複数のユーザの複数のゲームプレイの位置ベース情報を受信及び／または集約することを含む。例えば、ユーザのゲームプレイ中にスナップショットが取り込まれるのと同様に、他のユーザのゲームプレイ中にスナップショットを取り込んでもよく、前述のように、スナップショットは、他のユーザのゲームプレイに関連する位置ベース情報を含む。スナップショット及び／またはこれらのスナップショットに含まれる位置ベース情報は、ユーザデバイスのローカルで生成され、クラウドゲームネットワークまたはゲームクラウドシステムのバックエンドサーバに配信され得る、あるいはスナップショットは、他のゲームプレイを支援してゲームアプリケーションのインスタンスも実行するクラウドゲームネットワークのバックエンドサーバにて生成され得る。位置ベース情報はまた、ローカルネットワーク（サーバが、ゲームアプリケーションのインスタンスを実行し、コンパニオンアプリケーションを生成するように機能する場合のネットワーク）を通して、または遠隔ネットワーク（クラウドゲームネットワークのバックエンドサーバが、コンパニオンアプリケーションの生成とは無関係に機能する場合のネットワーク）を通して、バックエンドサーバから受信される。
【００８７】
スナップショット内に含まれる、または他のユーザのゲームプレイ中に生成されたスナップショットから推測されるメタデータ／情報を含むこれらのスナップショットは、位置ベース情報（ユーザのゲームプレイ中に生成）と組み合わせることで、ユーザのゲームプレイに関連する追加情報を提供し得る。例えば、ユーザのゲームプレイ中に生成された位置ベース情報を使用して、ゲームプレイ中にキャラクタがいた場所、ゲームプレイ中にキャラクタが達成したタスク、キャラクタの現在の財産及びスキル、キャラクタが現在いる位置（例えばゲーム世界内）などを特定することができる。ユーザのゲームプレイ中に生成された位置ベース情報と、スナップショット内に含まれる、または他のユーザのゲームプレイ中に生成されたスナップショットから推測されるメタデータ／情報とを組み合わせて分析することで、ゲームプレイ内のキャラクタがこの先行く場所、ゲームプレイを進めるために次に来る及び／または必要なタスク、ならびにこれらのタスクを達成するためにキャラクタが必要な財産またはスキルなど、ユーザのゲームプレイを進めるために必要な行動／財産が、統計的に特定され得る（例えば予測エンジンにより特定され得る）。
【００８８】
方法は、動作３３０にて、キャラクタの位置のコンテキスト関連情報を生成することを含み、コンテキスト関連情報は、ユーザのゲームプレイを含む複数のゲームプレイの位置ベース情報に基づいて、リアルタイムで生成される。いくつかの実施態様では、コンテキスト関連情報は、前述のように統計的予測に基づいて、実施形態におけるゲームアプリケーションを進展及び／または前進する補助を提供し得る。
【００８９】
例えば、コンテキスト関連情報は、メッセージの形態で提供されてもよく、メッセージを使用して、ゲームプレイを前進させる役立つ情報（例えば要求されるタスクを達成するようにユーザを導くステップ、次に何が来るかの通知など）を提供してもよい。一実施態様では、一連の関連メッセージは、ゲーム世界内のキャラクタの位置及び／または動作に応じて生成され、例えば、より大きな指示セットの一部であるチャンクサイズの指示を提供する段階的指示が生成され、各チャンクは、キャラクタが該当位置に到達した時に配信される。特に、ユーザのゲームプレイを進めるために必要とされるタスクは、統計的に予測され得る。タスクを達成するための１つ以上の解決策が特定され得る。これらの解決策は、他のユーザの複数のゲームプレイの以前に収集された情報（例えばスナップショット）から特定され、ユーザの将来のゲームプレイの識見を提供し得る。例えば、収集された情報は、前述のタスクが、ゲームプレイ内の同じ箇所で他のユーザによる他のゲームプレイにおいて通常に対処されたこと、及びそのタスクを完了するための１つ以上の解決策をこれらのユーザが見つけたことを示し得る。これらの解決策には、これらのタスクを達成するために必要な財産が含まれ得る。さらに、分析された収集情報は、ユーザによりさらにフィルタリングされ得る。例えば、ユーザは、全てのゲームプレイ（例えば初期設定による）、有名なエキスパートのゲームプレイ、ユーザの友達の１つ以上の選択されたゲームプレイなどからの解決策に関心を持ち得る。
【００９０】
メッセージは、エキスパート、友達もしくは第三者からの助言、またはユーザのゲームプレイ内で友達もしくはエキスパートがユーザを手引きすることを可能にする双方向インタラクティブ通信を開くリンクなど、補助のオファーを含み得る。図６に関連してさらに説明されるように、いくつかの実施形態では、メッセージは、ジャンプゲームにおいてユーザがゲームアプリケーションをプレイしてタスクを達成するオファーを含む。いくつかの実施形態では、メッセージは、ユーザがゲームアプリケーション内の特定箇所を前進することができないことを認識するといったトリガに応じて生成される。他の実施例では、コンテキスト関連情報は、ゲームプレイを進めるために完了すべき次のタスクを達成するためにユーザが必要とするダウンロード可能なコンテンツ（ＤＬＣ）を受信または購入するオファーを含み得る。
【００９１】
さらに別の実施形態では、コンテキスト関連情報は、最初にユーザにより生成され得る。例えば、メッセージは、他のユーザへ一斉送信するためのものであり得（例えばヘルプフラグ）、ゲームアプリケーションの他のプレーヤからの補助の要求を含む。さらに、補助要求を含むメッセージは、ユーザの友達を対象としてもよく、または既知のエキスパート、もしくはゲーム補助を提供する第三者に配信されてもよく、友達、エキスパート、及び第三者は、ゲームアプリケーションを同時にプレイしていても、していなくてもよい。他の実施態様では、メッセージはまた、ユーザにより生成された、ユーザとの双方向通信を開くオファーを含んでもよく、ユーザの友達を対象としてもよい。さらに別の実施態様では、メッセージは、別のユーザとの双方向通信を開くオファーを含み、メッセージは他のユーザにより生成される。
【００９２】
例示すると、一斉送信メッセージは、ユーザからのヘルプ要求の受信に応じて生成され得、ユーザは、自身のゲームプレイの進行が行き詰っている場合がある。メッセージは、バックエンドサーバ（例えばコンパニオンアプリケーション生成器２１３を実行するサーバ）により受信され得る。例えば、ヘルプ要求に対応付けられたビーコン及び／またはフラグは、ゲームアプリケーションをプレイしているユーザの１人以上の友達の１つ以上のコンパニオンインターフェースにわたり一斉送信され得る。１つ以上のユーザインターフェースにおいてゲーム世界を示す１つ以上のレーダーマッピングに、ビーコンを挿入してもよく、各ビーコンは、ゲーム世界内のユーザのキャラクタの位置に対応する箇所に配置される。バックエンドサーバは、要求の受諾を受信してもよく、受諾は、ユーザの友達により生成され得る。一実施形態では、ユーザのゲームプレイを表すデータは、友達に対応付けられた第３のコンピューティングデバイスにストリーミングされる。すなわち、ユーザのゲームプレイは、該当コンパニオンインターフェースを介して、友達にストリーミングされ得る。さらに、ユーザと友達が通信し得るように、双方向通信セッション（例えばコンパニオンインターフェース、音声などを介したメッセージ通信）が確立され得る。このようにして、友達は、ユーザがゲームアプリケーションをプレイする時にリアルタイムで手引きを提供する手伝いをしてもよい。
【００９３】
他の実施態様では、コンテキスト関連情報はまた、ユーザ体験を向上させるために提供される他の種類の情報も提供し得る。情報は、ユーザのゲームプレイに関連し、一般的に役立つ、支援する、興味深い情報などであり得る。例えば、情報は、ゲームアプリケーションをプレイしている他のユーザの位置（例えばゲーム世界のレーダーマッピング内の他のユーザのキャラクタのいる位置）、特にユーザのキャラクタの近くに存在する他のユーザの位置を、提供し得る。コンテキスト関連情報は、ナビゲーションポインタ、興味深いゲーム特徴及びその位置、他の特徴へのアイコンまたはリンク（例えばスナップショット、ジャンプゲームインスタンス化など）を含み得る。
【００９４】
さらに他の実施態様では、コンテキスト関連情報は、他のユーザからのメッセージを含み得る（例えばからかいの記述、励ましの言葉などを含む、ユーザの友達からの情報または記述を含んだエッグドロップ）。例示すると、事前に定義されたイベントが、ユーザのゲームプレイ内で検出され得る。事前に定義されたイベントには、ゲーム世界内のある位置にキャラクタが到達することが含まれ得る。検出されると、ユーザの友達からの事前に生成されたメッセージにアクセスし得る。このメッセージは、コンテキスト関連情報としてユーザに配信され得る。例えば、メッセージには、友達からのからかいが含まれてもよい（例えば「アハハ、君がここまで来られるとは思わなかったよ！」）。別の実施例では、メッセージには、友達からの励ましの言葉が含まれてもよい（例えば「おめでとう、ついにやったね！私はここにたどり着くのにものすごく時間がかかったよ。次のセクション、早く通り抜けて、（ゲーム内の）裏面で会おうね。」）。例えば、図４Ａ〜４Ｃは、後述されるように、友達が生成して、ゲームアプリケーションをプレイするユーザのコンパニオンインターフェースに配信されるメッセージを例示する。
【００９５】
方法は、３３０にて、複数のゲームプレイからの位置ベース情報（例えばスナップショット情報）、及びユーザのゲームプレイからの位置ベース情報に基づいたコンテキスト関連情報を含むコンパニオンインターフェースを生成することを含み、情報は、ユーザのゲームプレイ内のキャラクタの位置を基にして生成される（例えば位置ベースコンテキスト関連情報）。すなわち、一般にコンパニオンインターフェースは、ユーザのゲームプレイを支援する機能を提供し、ユーザまたは任意の他の閲覧者が、ゲームアプリケーションのプレイ中、ユーザに概して役立つ情報にリアルタイムでアクセスすることを可能にする。
【００９６】
例えば、一実施形態では、コンパニオンインターフェースは、ゲームアプリケーションのゲーム世界の少なくとも一部を示すレーダーマッピングを含み、レーダーマッピングは、ゲーム世界内に配置された少なくともオブジェクト／地物、ならびにユーザ及び他のプレーヤのキャラクタの位置を含む。ユーザ体験を向上させる一般情報を提供するメッセージ通信、またはユーザのゲームプレイを進めるために必要な予測タスクを達成するための解決策といった追加情報も、レーダーマッピング内に、またはレーダーマッピングに隣接して含まれ得る。前に紹介した実施例では、解決策は、コンパニオンインターフェースにおいてユーザに提示するために、統計的に予測され、選択される。
【００９７】
コンテキスト関連情報としてユーザに提示するために、解決策のうち少なくとも１つが選択されてもよく、その解決策には、タスクを達成するために必要な一連のステップが含まれ得る。第１のステップは、第１の位置／第１の行動の組み合わせに対応付けられ得る、第２のステップは、第２の位置／第２の行動の組み合わせに対応付けられ得るなど、一連のステップはさらに、ユーザのゲームプレイ内の位置及び／または行動に対応付けられ得る。解決策のステップのそれぞれはさらに、該当メッセージに対応付けられてもよく、それぞれのメッセージは、ユーザのゲームプレイ内のキャラクタの表示される位置及び／または行動に応じて、コンパニオンアプリケーションに提示され得る。例えば、一連のうちの第１のステップが、コンパニオンインターフェース内の第１のメッセージで提示され得る。例示すると、第１のステップには、そのタスクを達成するためにキャラクタが必要とする財産、及びこれらの財産を取得するための指示が含まれ得る。方法は、ユーザのゲームプレイ内で第１のステップが完了したことを特定することを含み、完了はさらに、キャラクタの第１の位置、及び／またはキャラクタが取った第１の行動に対応付けられ得る。この時点で、一連のうちの第２のステップが、コンパニオンインターフェース内の第２のメッセージで提示され得る。
【００９８】
方法は、３４０にて、コンパニオンインターフェースを、ユーザのゲームプレイと同時に表示するために、ユーザに対応付けられた第２のコンピューティングデバイスに送信することを含む。例えば、一実施形態では、第１のコンピューティングデバイスにユーザのゲームプレイを表すデータを配信するために確立された第１の通信チャネル、及びコンパニオンインターフェースに対応付けられたデータを配信する（例えばインターフェースの配信、及びインターフェースを制御する入力コマンドを提供する）ために確立された第２の通信チャネルなど、情報を配信する２つの通信チャネルが存在し得る。別の実施形態では、ゲームプレイを表示する第１の画面、及びコンパニオンインターフェースを表示する第２の画面を含む分割画面を介するなどして、コンパニオンインターフェースは、ユーザのゲームプレイを表すデータと共に配信され得る。より具体的には、コンパニオンインターフェースは、リアルタイムで生成され、ユーザのゲームプレイと同時に配信されるため、インターフェースを通して提供される情報は、ユーザのゲームプレイを支援する。このようにして、ユーザのゲームプレイは、コンパニオンインターフェースにより提供される情報で拡張され得る。
【００９９】
図４Ａ〜４Ｃは、前に紹介したように、友達が生成して、ゲームアプリケーションをプレイするユーザのコンパニオンインターフェースに配信されるメッセージを例示する。メッセージは、ゲームアプリケーションのゲーム世界内のユーザのキャラクタの位置を示すマッピング４００（例えばレーダーマッピング）内に提供され得る。メッセージは、イベントトリガ（例えばユーザのキャラクタがゲーム世界内の特定位置に到達すること）に応じて提示され得る。図４Ａ〜４Ｃに示されるそれぞれのレーダーマッピング４００において、方向ポインタ４５０は、ゲーム世界内のキャラクタの位置を表し、レーダーマッピング４００の中央に配置される。さらに、方向ポインタ４５０はまた、キャラクタの向き（例えばゲーム世界内のキャラクタの視点）を示す。
【０１００】
具体的に、図４Ａは、ゲームアプリケーションをプレイするユーザのゲームプレイのマッピング４００を例示し、マッピング４００は、ユーザのゲームプレイ内のキャラクタの位置の略近傍に第２のユーザ（例えばユーザの友達）のキャラクタがいることを示す。図４Ａにおいて、マッピング４００は、ウィンドウ４３０内に提供され得る。第２のユーザはアイコン４２０で表され、これはゲーム世界内の第２のユーザの位置を示す。マッピング４００により、他のユーザの他のキャラクタ４０５及び４１０も略近傍に示される。さらに、ユーザのゲームプレイに関連するメッセージ４５０が、第２のユーザに対応付けられ得る。メッセージは、アイコン４２０と共に、選択ウィンドウ４２５に提示され得る。選択ウィンドウは、ゲームアプリケーションの別のプレーヤからのメッセージが利用可能であることを示す見出し４４１（例えば「Ｊｏｈｎ  Ｄｏｅｎａｖｉｃｈからのメモ」）を有し得る。選択ウィンドウ４２５は、メッセージ４５０のプレビュー４４２を含み得る。このようにして、ゲームアプリケーションの別のプレーヤ、すなわちユーザの友達であり得るＪｏｈｎ  Ｄｏｅｎａｖｉｃｈからのメッセージ４５０が選択可能であることに、ユーザは気付かされる。
【０１０１】
別の実施形態では、他のユーザのキャラクタは、ユーザのキャラクタの近くにいる必要はない。この場合、メッセージ４５０は、エッグドロップの形態で提示され得る。具体的には、図４Ｂは、本開示の一実施形態による、図４Ａにおいて紹介したユーザのゲームプレイのマッピング４００を例示し、第２のユーザ、Ｊｏｈｎ  Ｄｏｅｎａｖｉｃｈにより残された、ユーザのゲームプレイに関する位置ベースメッセージ４５０を含む。図示されるように、ウィンドウ４３０に提示されるマッピング４００は、メッセージアイコン４２１を含む。マッピング４００内のメッセージアイコン４２１の位置は、メッセージ４５０が作成された時のＪｏｈｎ  Ｄｏｅｎａｖｉｃｈのゲームプレイに対応付けられた、ゲーム世界内のキャラクタの位置を示し得る。メッセージは、アイコン４２１と共に、図４Ａに提示された選択ウィンドウ４２５に類似する選択ウィンドウ４２５’に提示され得る。選択ウィンドウは、ゲームアプリケーションの別のプレーヤからのメッセージが利用可能であることを示す同じ見出し４４１（例えば「Ｊｏｈｎ  Ｄｏｅｎａｖｉｃｈからのメモ」）を有し得る。選択ウィンドウ４２５’は、メッセージ４５０の同じプレビュー４４２を含み得る。このようにして、ゲームアプリケーションの別のプレーヤ、すなわちユーザの友達であり得るＪｏｈｎ  Ｄｏｅｎａｖｉｃｈからのメッセージ４５０が選択可能であることに、ユーザは気付かされる。
【０１０２】
図４Ｃは、本開示の一実施形態による、図４Ａ及び４Ｂにおいて紹介したユーザのゲームプレイのマッピング４００を例示し、他のプレーヤ（例えばＪｏｈｎ  Ｄｏｅｎａｖｉｃｈ）により残された位置ベースメッセージ４５０を表示するウィンドウ４３５を含む。ユーザによりプレイされ、方向ポインタ４５０により表されるキャラクタの近くに他のプレーヤのキャラクタが存在しない場合、ユーザが選択ウィンドウ４２５’を作動させた後、分割画面において、アイコン４２１を含むマッピング４００がウィンドウ４３０’に含まれる。他のプレーヤのキャラクタがユーザのプレイするキャラクタの近くに存在する場合、図４Ａに関連して、アイコン４２１は、図４Ａにて前に紹介したキャラクタアイコン４２０に置き換えられ得る。特に、ウィンドウ４３５は、見出し４４１を表示し、メッセージ４５０全体も含む。また、アイコン４４５及び４４６により、ユーザはメッセージ４５０を保存または破棄することが可能となる。
【０１０３】
図５Ａ〜５Ｅは、本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのコンパニオンインターフェース５９０を例示し、コンパニオンインターフェースは、ゲームアプリケーションの２人以上のプレーヤ間の双方向通信を促進する。ゲームアプリケーションのゲーム世界内のユーザのキャラクタの位置を示すマッピング５００（例えばレーダーマッピング）内に、双方向通信をインスタンス化し継続する機会が提供され得る。図５Ａ〜５Ｅに示されるそれぞれのレーダーマッピング５００において、方向ポインタ５５０は、ゲーム世界内のキャラクタの位置を表し、レーダーマッピング５００の中央に配置される。さらに、方向ポインタ５５０はまた、キャラクタの向き（例えばゲーム世界内のキャラクタの視点）を示す。
【０１０４】
具体的には、図５Ａは、本開示の一実施形態による、ゲームアプリケーションをプレイするユーザのゲームプレイのマッピング５００を例示し、マッピングは、別のプレーヤ（例えば図４Ａ〜４Ｃの実施例で最初に紹介したＪｏｈｎ  Ｄｏｅｎａｖｉｃｈ）がゲームアプリケーションを現在プレイしていることを示す。図５Ａにおいて、マッピングは、ウィンドウ５３０内に表示され得る。マッピング５００により画定される領域の外側に、弧線５６０が配置され、弧線５６０は、マッピング５００の中央の方向矢印５５０により表されるユーザのキャラクタの位置に関して、ゲーム世界内の他のプレーヤのキャラクタの概略方向を示す。弧線５６０は、マッピング５００の外側にあり、他のプレーヤのキャラクタが、ユーザのキャラクタの略近傍内には存在しない（マッピング５００の内部により示される）が、ゲームアプリケーションを現在プレイしていることを示す。他のキャラクタ５０５、５１０、及び５２０は、ユーザのキャラクタの略近傍内にいることが示される（マッピング５００の内部により表される）。情報ウィンドウ５７０も、コンパニオンインターフェース５９０内に提供され、他のプレーヤ、Ｊｏｈｎ  Ｄｏｅｎａｖｉｃｈがゲームアプリケーションをプレイしていることをユーザに知らせる。
【０１０５】
図５Ｂは、本開示の一実施形態による、図５Ａにおいて紹介したユーザのゲームプレイのマッピング５００を例示し、マッピングは、他のプレーヤがユーザのゲームプレイ内のキャラクタの位置の略近傍に接近していることを示し、略近傍は、マッピング５００の内部により画定される。マッピング５００を含むウィンドウ５３０は、他のプレーヤのキャラクタがマッピング５００の外部境界線５０１に接近しているが、境界線を突破していないことを表示するように更新される。具体的には、アイコン５６１が境界線５０１に隣接したマッピング５００内の位置に表示され、これは、マッピング５００の中央に配置された方向ポインタ５５０により示されるユーザのキャラクタの位置に関して略近傍に、他のプレーヤのキャラクタが接近している概略方向を示す。アイコン５６１は、ゲーム世界内の他のプレーヤのキャラクタの位置を中心とする影響範囲を表し得る（例えばマッピング５００内の二次元円により表される）。他のプレーヤのキャラクタがマッピング５００により画定される領域の外側にまだいるため、アイコン５６１は半円で表される。そのキャラクタがマッピング５００により画定される略近傍にさらに近づくにつれ、マッピング５００において表示されるように、アイコン５６１は、マッピング５００内でより大きく、またはより色濃くなり、全円を完成し始め得る。
【０１０６】
図５Ｃは、本開示の一実施形態による、図５Ａ〜５Ｂにおいて紹介したユーザのゲームプレイのマッピング５００を例示し、マッピングは、他のプレーヤがマッピングの外部境界線５０１に今到着したことを示す。マッピング５００を含むウィンドウ５３０は、第２のプレーヤのキャラクタが今、ユーザのキャラクタの略近傍内、すなわちマッピング５００内にいるとみなされることを表示するように更新される。図５Ａ〜５Ｅに例示されるコンパニオンインターフェース５９０の焦点は、ゲームアプリケーションのユーザと別のプレーヤとの間の通信を開くことであるため、アイコン５６２は、人（例えば他のプレーヤのＪｏｈｎ  Ｄｏｅｎａｖｉｃｈ）を表し、必ずしも他のプレーヤがプレイするゲームアプリケーション内のキャラクタを表すわけではない。
【０１０７】
図５Ｄは、本開示の一実施形態による、図５Ａ〜５Ｃにおいて紹介したユーザのゲームプレイのマッピング５００を例示し、他のプレーヤに関する情報を表示するウィンドウ５３５を含む。ウィンドウ５３０’には、外部境界線５０１に位置するアイコン５６２を含むマッピング５００が、分割画面で含まれる。基本的に、マッピング５００は図５Ｃ及び５Ｄ両方と同一である。さらに、ウィンドウ５３５は、他のプレーヤであるＪｏｈｎ  Ｄｏｅｎａｖｉｃｈに関する情報を表示し、ユーザ名５６８（「ｓｕｐｅｒＣｏｏｌｕｓｅｒ８８」）、他のユーザが利用可能なゲーム機（例えばＳＯＮＹ  ＰＳ３及びＳＯＮＹ  ＰＳ４）、他のプレーヤが話す言語などを含む。重要なのは、ウィンドウ５３５が、ほかのプレーヤ、Ｊｏｈｎ  Ｄｏｅｎａｖｉｃｈとの会話に参加するための招待状を含むことであり、招待状は選択アイコン５７０内に提示され、これは有効化されると、ユーザと他のプレーヤとの間の双方向通信をインスタンス化する。
【０１０８】
図５Ｅは、本開示の一実施形態による、図５Ａ〜５Ｄにおいて紹介したユーザのゲームプレイのマッピング５００を例示し、ユーザと他のプレーヤ、Ｊｏｈｎ  Ｄｏｅｎａｖｉｃｈとの間の双方向会話を表示するウィンドウ５３５’を含む。ウィンドウ５３０’には、外部境界線５０１に位置するアイコン５６２を含むマッピング５００が、分割画面で含まれる。図５Ｅに示されるマッピング５００は、図５Ｃ及び５Ｄに示されるマッピング５００に類似するが、図５Ｅに示されるユーザと他のプレーヤとの間の会話にかかる継続時間に応じて、更新され得る。具体的には、ウィンドウ５３５’は、ユーザと他のプレーヤ、Ｊｏｈｎ  Ｄｏｅｎａｖｉｃｈとの間で実行されている会話中に入力されたテキストを表示する。会話では、ユーザと他のプレーヤは、彼らの両キャラクタをゲーム世界内で会わせようと試みている。
【０１０９】
ネットワークを介して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細な説明と共に、本開示の一実施形態による、該当ユーザのゲームプレイを支援する位置ベースコンパニオンインターフェースであって、ゲームプレイを進める補助を提供するオファーを含む位置ベースコンパニオンインターフェースを実施する別の方法が、図６のフロー図６００に関連してここで説明される。フロー図６００は、ユーザのクライアントデバイスに表示するためにネットワークを介して送信される、コンパニオンインターフェース内に含まれる位置ベース情報を生成する目的で、ゲームサーバ側が関わる動作のプロセス及びデータフローを例示し、クライアントデバイスは、ゲームアプリケーションをプレイするユーザのゲームプレイを表示する別のデバイスとは分離していてもよい。具体的には、フロー図６００の方法は、図１及び２のコンパニオンアプリケーション生成器２１３により、少なくとも部分的に実行され得る。
【０１１０】
方法は、６１０にて、ゲームアプリケーションをプレイするユーザのゲームプレイ内のキャラクタの位置のコンテキスト関連情報を生成することを含む。例えば、ゲームアプリケーションのインスタンスは、ユーザのゲームプレイに対応付けて実行してもよく、ゲームプレイを表すデータが、ユーザの第１のコンピューティングデバイスに配信される。データは、ユーザによるインタラクションのため、第１の通信チャネルを介して配信される。キャラクタの位置ベース情報は、生成され、取り込まれ、例えばスナップショット内に含まれてもよく、位置情報は、ゲームアプリケーションに対応付けられたゲーム世界を参照して作られる。前述のように、各スナップショットはまた、ビデオゲーム内のある箇所に対応する環境を生成することを可能にする情報（例えばメタデータ、ゲーム状態データ）を含むため、スナップショットに基づいて、該当シーン及び環境を、ゲームアプリケーションの別のインスタンスにおいて生成することができる。すなわち、該当スナップショットが取り込まれた時のゲームプレイの状態に対応するジャンプ箇所に対応するゲームアプリケーション内の箇所から、ジャンプゲームの開始が実行される。
【０１１１】
さらに、ゲームアプリケーションをプレイする他のユーザの複数のゲームプレイの位置ベース情報も、生成され、受信され、及び／または取り込まれる。すなわち、他のユーザのゲームプレイ中に取り込まれたスナップショットは、メタデータ／情報、ゲーム状態など、これらのゲームプレイに関連する位置ベース情報を含む。例えば、複数のユーザに対応付けて実行されるゲームアプリケーションの複数のインスタンスから、複数のスナップショットが生成され得る。ビデオゲームの各インスタンスが実行されていると、１つ以上のスナップショットが取り込まれ、前述のように、スナップショットにより、そのスナップショットに対応するビデオゲーム内の箇所から、ビデオゲームのインスタンスの開始を実行することが可能となる。前述のように、ユーザのゲームプレイを含む複数のゲームプレイから収集された位置ベース情報は、分析され、ユーザのゲームプレイに関連する追加コンテキスト関連情報が特定され得る。例えば、ユーザのゲームプレイ中に生成された位置ベース情報を、他のプレーヤの複数のゲームプレイのスナップショットに含まれるメタデータ／情報と組み合わせて分析することで、予測エンジンにより、ユーザのゲームプレイを進めるために必要な行動／財産が、統計的に特定され得る。このコンテキスト関連情報は、例えば、ゲームアプリケーションをプレイしている時に自身のゲームプレイを進展させる及び／または前進させるリアルタイムの補助をユーザに提供するために、リアルタイムで生成される。
【０１１２】
一実施形態では、方法において、ユーザのゲームプレイ内で完了すべきタスクが特定される。さらに、タスクを完了するように構成された解決策も、前述のように、他のプレーヤのゲームプレイにおいて収集及び分析されたメタデータ／情報に基づいて特定され、またユーザのゲームプレイ内のキャラクタの位置に基づく。例えば、解決策は、ゲームプレイ内の入力として、キャラクタすなわちユーザが実行すべき一連のステップを含み得る。
【０１１３】
方法は、６１５にて、コンテキスト関連情報を含むコンパニオンインターフェースを生成することを含む。コンパニオンインターフェースは、ユーザのゲームプレイを支援する機能を提供し、ユーザまたは任意の他の閲覧者が、リアルタイムで情報にアクセスすることを可能にする。一実施形態では、コンパニオンインターフェースは、前に紹介したように、タスクを完了するオファーを含み、タスクの完了はユーザのゲームプレイを進めるために必要であり得る。
【０１１４】
方法は、６２０にて、コンパニオンインターフェースを、ユーザのゲームプレイと同時に表示するために、ユーザに対応付けられた第２のコンピューティングデバイスに送信することを含む。例えば、第１のコンピューティングデバイスにユーザのゲームプレイを表すデータを配信するために確立された第１の通信チャネルと、コンパニオンインターフェースに対応付けられたデータを配信する（例えばインターフェースの配信、及びインターフェースを制御する入力コマンドを提供する）ために確立された第２の通信チャネルとが存在し得る。このようにして、ユーザのゲームプレイは、コンパニオンインターフェースにより提供される情報で拡張され得る。
【０１１５】
方法は、６２５にて、オファーの受諾を受信することを含む。例えば、度重なる努力にもかかわらず、ゲームアプリケーション内の特定の箇所を越えて進行できないことが原因であり得るが、ユーザは、自身のゲームプレイの進捗に不満を感じる場合がある。特定のプレーヤがいずれのゲームアプリケーションをプレイしていても起こす問題として知られている、ゲームをやめるという強硬策を取るのではなく、ユーザは、オファー内に提供されたエキスパートの補助を受けることを選択してもよく、補助には、ユーザのタスクをエキスパートに完了してもらうことが含まれ得る。具体的には、方法は、６３０にて、ユーザのゲームプレイの第１のインスタンスの実行中に生成された第１のスナップショットに基づいて、ジャンプゲームプレイにおけるゲームアプリケーションの第２のインスタンスをインスタンス化することを含む。具体的には、第１のスナップショットは、第１のインスタンスの第１のゲーム状態、及びユーザのゲームプレイ内のキャラクタの位置ベース情報を含む。スナップショットに対応するゲームアプリケーション内のある箇所（ここではジャンプポイントと特定される）からゲームアプリケーションの開始が実行されるように、スナップショット内のゲーム状態データは、ゲームアプリケーション内のある箇所に対応する、キャラクタの生成及びランダムシードデータを含む環境を生成することを可能にするため、第１のジャンプゲームプレイは、第１のスナップショットに対応するゲームアプリケーション内の箇所から開始する。
【０１１６】
このようにして、エキスパートは、ユーザのゲームプレイにジャンプすることができる。例えば、エキスパートは、ジャンプゲームにてユーザのゲームプレイで使用されたキャラクタを指示して、ジャンプゲームプレイにてタスクを完了することができる。さらに、方法は、６３５にて、ゲームアプリケーションの第２のインスタンスの実行中（ジャンプゲームの実行中）に、第２のインスタンスの第２のゲーム状態を含む第２のスナップショットを生成すること及び／または取り込むことを含み、第２のインスタンスはエキスパートにより制御され、第２のスナップショットに取り込まれたジャンプゲームプレイにてタスクは完了される。この時点で、ジャンプゲームプレイに対応付けられた第２のスナップショットは、ユーザが利用できるようにされ得る。第２のスナップショットを選択すると、方法は、６４０にて、第２のスナップショットに基づいて、第２のジャンプゲームプレイにおけるゲームアプリケーションの第３のインスタンスをインスタンス化することを含む。第３のインスタンスはユーザにより制御され、第２のジャンプゲームプレイにてタスクは完了される。このようにして、ユーザはゲームアプリケーションの第３のインスタンスにより実行される自身のゲームプレイを続けることができ、この時点でゲームプレイはタスクの完了を含む。
【０１１７】
ユーザのゲームプレイを支援するように構成された位置ベースコンパニオンインターフェースの生成及び実施を明示するために特定の実施形態が提供されたが、コンパニオンインターフェースは、ユーザのゲームプレイ内のキャラクタの位置に基づいて生成されるコンテキスト関連情報（例えばメッセージ通信、補助情報、補助のオファーなど）を含み、これらの実施形態は、限定としてではなく実施例として説明されている。本開示を読んだ当業者は、本開示の趣旨及び範囲に含まれる追加の実施形態を実現するであろう。
【０１１８】
現在の実施形態のゲームへアクセスを提供するといった、広い地域にわたって配信されるアクセスサービスは、多くの場合、クラウドコンピューティングを使用することに留意されたい。クラウドコンピューティングは、動的に拡張縮小可能で多くの場合仮想化されたリソースがインターネットを介してサービスとして提供される、コンピューティング様式である。ユーザは、ユーザを支援する「クラウド」の技術インフラストラクチャの専門家である必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ））、サービスとしてのプラットフォーム（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ））、及びサービスとしてのソフトウェア（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ））などの異なるサービスに分類することができる。クラウドコンピューティングサービスは、多くの場合、ビデオゲームなどの一般的なアプリケーションを、ウェブブラウザからアクセスするオンラインで提供するが、ソフトウェア及びデータは、クラウド内のサーバに格納される。クラウドという用語は、コンピュータネットワーク図においてインターネットが描かれる様子に基づいたインターネットの隠喩として使われ、及び隠し持つ複雑なインフラストラクチャの抽象である。
【０１１９】
ゲーム処理サーバ（Ｇａｍｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｅｒｖｅｒ（ＧＰＳ））（または単純に「ゲームサーバ」）は、ゲームクライアントがシングル及びマルチプレーヤビデオゲームをプレイするのに使用される。インターネット上でプレイされる大半のビデオゲームは、ゲームサーバへの接続を介して作動する。通常、ゲームは、プレーヤからデータを収集し、収集したデータを他のプレーヤに配信する専用サーバアプリケーションを使用する。これは、ピアツーピア構造よりも効率的で効果的であるが、サーバアプリケーションをホストする別個のサーバを必要とする。別の実施形態では、ＧＰＳは、プレーヤとそれぞれのゲームプレイデバイスとの間の通信を確立し、集中型ＧＰＳに依存せずに情報を交換する。
【０１２０】
専用ＧＰＳは、クライアントとは無関係に作動するサーバである。このようなサーバは、通常、データセンタに配置された専用ハードウェア上で稼働し、より多くの帯域幅及び専用処理能力を提供する。専用サーバは、ほとんどのＰＣベースマルチプレーヤゲームのゲームサーバをホストする好ましい方法である。大規模なマルチプレーヤオンラインゲームは、ゲームタイトルを所有するソフトウェア会社が通常ホストする専用サーバ上で作動し、専用サーバによりコンテンツを制御及び更新することが可能である。
【０１２１】
ユーザは、少なくともＣＰＵ、ディスプレイ、及びＩ／Ｏを含むクライアントデバイスにより、遠隔サービスにアクセスする。クライアントデバイスは、ＰＣ、モバイルフォン、ネットブック、ＰＤＡなどであり得る。一実施形態では、ゲームサーバ上で実行されるネットワークは、クライアントが使用するデバイスの種類を認識し、採用される通信方法を調整する。他の事例では、クライアントデバイスは、ＨＴＭＬなどの標準的な通信方法を使用して、インターネットを介してゲームサーバ上のアプリケーションにアクセスする。
【０１２２】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成により実施され得る。本開示はまた、有線ベースまたは無線のネットワークを通してリンクされる遠隔処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
【０１２３】
所定のビデオゲームは、特定のプラットフォーム及び特定の関連コントローラデバイス用に、開発されてもよいことを理解されたい。しかし、このようなゲームが、本明細書において提示されるようなゲームクラウドシステムを介して利用可能となる場合、ユーザは、別のコントローラデバイスでビデオゲームにアクセスしてもよい。例えば、あるゲームは、あるゲーム機及びその関連コントローラ用に開発されたかもしれないが、ユーザは、キーボードとマウスを使ってパーソナルコンピュータから、クラウドベースのゲームバージョンにアクセスするかもしれない。このようなシナリオでは、入力パラメータ設定により、ユーザが利用可能なコントローラデバイス（この事例ではキーボード及びマウス）により生成され得る入力から、ビデオゲームの実行で受諾可能な入力へ、マッピングを定義することができる。
【０１２４】
別の実施例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介して、クラウドゲームシステムにアクセスしてもよい。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイス内に一緒に統合され、検出されたタッチスクリーン入力／ジェスチャにより入力が提供される。このようなデバイスの場合、入力パラメータ設定により、特定のタッチスクリーン入力が、ビデオゲームのゲーム入力に対応することが定義され得る。例えば、ユーザがタッチしてゲーム入力を生成することができるタッチスクリーン上の位置を示すように、ボタン、方向パッド、または他の種類の入力要素を、ビデオゲームの作動中に表示またはオーバーレイしてもよい。特定の方向のスワイプまたは特定のタッチ動作などのジェスチャも、ゲーム入力として検出され得る。一実施形態では、例えばタッチスクリーン上での制御動作にユーザを慣らすために、ビデオゲームのゲームプレイを始める前に、タッチスクリーンを介してゲームプレイに入力する方法を示すチュートリアルが、ユーザに提供され得る。
【０１２５】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスの接続ポイントとして機能する。すなわち、コントローラデバイスは、無線または有線接続を介してクライアントデバイスと通信し、コントローラデバイスからの入力をクライアントデバイスに送信する。クライアントデバイスは次に、これらの入力を処理し、それから入力データを、ネットワークを介して（例えばルータなどのローカルネットワークデバイスを介してアクセスされる）、クラウドゲームサーバへ送信し得る。しかしながら、他の実施形態では、コントローラ自体が、このような入力をまずクライアントデバイスを通して通信する必要なく、ネットワークを介して入力を直接クラウドゲームサーバに通信する能力を有するネットワークデバイスであり得る。例えば、コントローラは、ローカルネットワークデバイス（前述のルータなど）に接続して、クラウドゲームサーバとデータを送受信するかもしれない。従って、クライアントデバイスは依然として、クラウドベースビデオゲームからの映像出力を受信して、それをローカルディスプレイ上にレンダリングする必要はあるが、コントローラがクライアントデバイスを迂回して、ネットワークを介して直接クラウドゲームサーバに入力を送信することを可能にすることで、入力待機時間が低減され得る。
【０１２６】
一実施形態では、ある種類の入力は直接コントローラからクラウドゲームサーバへ、他の種類の入力はクライアントデバイスを介して送信するように、ネットワーク化されたコントローラ及びクライアントデバイスを構成することができる。例えば、コントローラ自体とは別の任意の追加のハードウェアまたは処理に依存しない検出による入力は、クライアントデバイスを迂回して、ネットワークを介して直接コントローラからクラウドゲームサーバへ送信することができる。このような入力には、ボタン入力、ジョイスティック入力、埋込型動作検出入力（例えば加速度計、磁力計、ジャイロスコープ）などが含まれ得る。しかしながら、追加のハードウェアを利用する、またはクライアントデバイスによる処理を要する入力は、クライアントデバイスによりクラウドゲームサーバへ送信され得る。これには、クラウドゲームサーバへ送信する前にクライアントデバイスにより処理され得る、ゲーム環境から取り込まれた映像または音声が含まれ得る。さらに、コントローラの位置及び動作を検出するために、コントローラの動作検出ハードウェアからの入力が、取り込まれた映像と併せてクライアントデバイスにより処理され、処理された入力はその後、クライアントデバイスによりクラウドゲームサーバへ通信される。様々な実施形態によるコントローラデバイスはまた、クライアントデバイスから、または直接クラウドゲームサーバから、データ（例えばフィードバックデータ）を受信し得ることを理解されたい。
【０１２７】
本明細書において説明される実施形態は、任意の種類のクライアントデバイス上で実行され得ることを理解されたい。いくつかの実施形態では、クラアイントデバイスは、ヘッドマウントディスプレイ（ＨＭＤ）である。
【０１２８】
本開示の一実施形態による、ヘッドマウントディスプレイ７５０の構成要素を例示する図である図７が示される。ヘッドマウントディスプレイ７５０は、プログラム命令を実行するプロセッサ７００を含む。メモリ７０２は、記憶目的で提供され、揮発性及び不揮発性メモリの両方を含み得る。ユーザが見得る視覚インターフェースを提供するディスプレイ７０４が含まれる。バッテリ７０６は、ヘッドマウントディスプレイ７５０の電源として提供される。動作検出モジュール７０８は、磁力計７１０、加速度計７１２、及びジャイロスコープ７１４などの様々な種類の動作感知ハードウェアのうちのいずれかを含み得る。
【０１２９】
加速度計は、加速及び重力誘起反力を測定するデバイスである。様々な方向における加速の大きさ及び方向を検出するために、単一及び複数軸モデルが利用可能である。傾き、振動、及び衝撃を感知するために、加速度計が使用される。一実施形態では、３つの加速度計７１２を使用して、重力の方向が提供され、これは２つの角（世界空間ピッチ及び世界空間ロール）の絶対基準を与える。
【０１３０】
磁力計は、ヘッドマウントディスプレイ付近の磁場の強度及び方向を測定する。一実施形態では、３つの磁力計７１０がヘッドマウントディスプレイ内で使用され、世界空間ヨー角の絶対基準を確保する。一実施形態では、磁力計は、±８０マイクロテスラの地磁場範囲を有するように設計される。磁力計は、金属の影響を受けて、実際のヨーによる単調なヨー測定を提供する。磁場は環境内の金属により歪む場合があり、これはヨー測定において歪みを生じる。必要であれば、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を用いて、較正することができる。一実施形態では、加速度計７１２を磁力計７１０と共に使用して、ヘッドマウントディスプレイ７５０の傾き及び方位が取得される。
【０１３１】
ジャイロスコープは、角運動量の原理に基づいて、配向を測定または維持するためのデバイスである。一実施形態では、３つのジャイロスコープ７１４は、慣性感知に基づいて、それぞれの軸（ｘ、ｙ、及びｚ）にわたる動きに関する情報を提供する。ジャイロスコープは、高速回転の検出に役立つ。しかしながら、ジャイロスコープは、絶対基準の存在なしには、長時間変動し得る。これは、周期的にジャイロスコープを再設定することを必要とし、再設定は、オブジェクト、加速度計、磁力計などの視覚追跡に基づく位置／配向の特定といった、他の利用可能な情報を用いて行うことができる。
【０１３２】
実環境の画像及び画像ストリームを取り込むために、カメラ７１６が提供される。後面の（ユーザがヘッドマウントディスプレイ７５０のディスプレイを見ている時にユーザから離れる方向に向けられた）カメラと、前面の（ユーザがヘッドマウントディスプレイ７５０のディスプレイを見ている時にユーザに向けられた）カメラとを含む複数のカメラが、ヘッドマウントディスプレイ７５０に含まれ得る。さらに、実環境内のオブジェクトの深度情報を感知するために、深度カメラ７１８がヘッドマウントディスプレイ７５０に含まれ得る。
【０１３３】
一実施形態では、ＨＭＤの前面に統合されたカメラを使用して、安全に関する警告が提供され得る。例えば、ユーザが壁またはオブジェクトに接近している場合、ユーザに警告が与えられ得る。一実施形態では、部屋の中の物理的オブジェクトの外観図をユーザに提供して、ユーザにそれらの存在を警告してもよい。外形は、例えば仮想環境内にオーバーレイされ得る。いくつかの実施形態では、例えば床にオーバーレイされた参照マーカの視界が、ＨＭＤユーザに提供され得る。例えば、マーカは、ユーザがゲームをプレイしている部屋の中心の参照を、ユーザに提供し得る。これは、例えば部屋の中の壁または他のオブジェクトに衝突しないようにユーザが移動すべき場所の視覚情報を、ユーザに提供し得る。ユーザがＨＭＤを装着してゲームをプレイする、またはコンテンツを操縦する場合、安全性を高めるために、触覚的警告、及び／または音声警告も、ユーザに提供することができる。
【０１３４】
ヘッドマウントディスプレイ７５０は、音声出力を提供するスピーカ７２０を含む。また、周辺環境からの音、ユーザによる発言などを含む実環境からの音声を取り込むために、マイクロホン７２２が含まれ得る。ヘッドマウントディスプレイ７５０は、ユーザに触覚フィードバックを提供する触覚フィードバックモジュール７２４を含む。一実施形態では、触覚フィードバックモジュール７２４は、ユーザに触覚フィードバックを提供するために、ヘッドマウントディスプレイ７５０の動き及び／または振動を引き起こすことが可能である。
【０１３５】
ＬＥＤ７２６は、ヘッドマウントディスプレイ７５０の状態の視覚的インジケータとして提供される。例えば、ＬＥＤは、バッテリレベル、起動状態などを示し得る。ヘッドマウントディスプレイ７５０がメモリカードからの情報を読み出し、メモリカードに情報を書き込むことを可能にするために、カードリーダ７２８が提供される。周辺デバイスの接続、または他の携帯デバイス、コンピュータなどの他の携帯デバイスへの接続を可能にするインターフェースの一実施例として、ＵＳＢインターフェース７３０が含まれる。ヘッドマウントディスプレイ７５０の様々な実施形態では、ヘッドマウントディスプレイ７５０のより良い接続性を可能にするために、様々な種類のインターフェースのうちのいずれかが含まれ得る。
【０１３６】
無線ネットワーク技術を介してインターネットへの接続を可能にするために、ＷｉＦｉ（登録商標）モジュール７３２が含まれる。また、他のデバイスへの無線接続を可能にするために、ヘッドマウントディスプレイ７５０は、ブルートゥース（登録商標）モジュール７３４を含む。他のデバイスへの接続のために、通信リンク７３６も含まれ得る。一実施形態では、通信リンク７３６は、無線通信のために赤外線通信を利用する。他の実施形態では、通信リンク７３６は、他のデバイスと通信するために、様々な無線または有線伝送プロトコルのうちのいずれかを利用し得る。
【０１３７】
ユーザに入力インターフェースを提供するために、入力ボタン／センサ７３８が含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなど、様々な種類の入力インターフェースのうちのいずれかが含まれ得る。超音波技術を介した他のデバイスとの通信を促進するために、超音波通信モジュール７４０がヘッドマウントディスプレイ７５０に含まれ得る。
【０１３８】
ユーザから生理学的データを検出することを可能にするために、生体センサ７４２が含まれる。一実施形態では、生体センサ７４２は、ユーザの皮膚を通してユーザの生体電気信号を検出するために、１つ以上の乾電極を含む。
【０１３９】
ヘッドマウントディスプレイ７５０の前述の構成要素は、ヘッドマウントディスプレイ７５０に含まれ得る単なる代表的構成要素として説明されている。本開示の様々な実施形態では、ヘッドマウントディスプレイ７５０は、前述の様々な構成要素のうちのいくつかを、含んでも含まなくてもよい。本明細書において説明される本開示の態様を簡易にするために、ここでは説明されていないが当技術分野では既知の他の構成要素が、ヘッドマウントディスプレイ７５０の実施形態にさらに含まれ得る。
【０１４０】
本開示の様々な実施形態では、様々なインタラクティブ機能を提供するために、前述のハンドヘルドデバイスが、ディスプレイ上に表示されるインタラクティブアプリケーションと併せて使用され得ることが、当業者には理解されよう。本明細書において説明される代表的な実施形態は、限定としてではなく、実施例としてのみ提供される。
【０１４１】
図８は、本開示の様々な実施形態による、ゲームシステム８００のブロック図である。ゲームシステム８００は、ネットワーク８１５を介して１つ以上のクライアント８１０に対し、映像ストリームを提供するように構成される。ゲームシステム８００は通常、映像サーバシステム８２０、及び任意のゲームサーバ８２５を含む。映像サーバシステム８２０は、１つ以上のクライアント８１０に対し、最小限のサービス品質の映像ストリームを提供するように構成される。例えば、映像サーバシステム８２０は、ビデオゲームの状態またはビデオゲーム内の視点を変更するゲームコマンドを受信し、この状態変更を反映した更新済映像ストリームを、最小の遅延時間でクライアント８１０に提供し得る。映像サーバシステム８２０は、映像ストリームを、まだ定義されていないフォーマットを含む多種多様な代替的映像フォーマットで提供するように構成され得る。さらに、映像ストリームは、多種多様なフレームレートでユーザに提示されるように構成された映像フレームを含み得る。通常のフレームレートは毎秒３０フレーム、毎秒６０フレーム、及び毎秒８２０フレームである。しかし本開示の代替的な実施形態には、より高いまたはより低いフレームレートが含まれる。
【０１４２】
本明細書において個別に８１０Ａ、８１０Ｂなどと称されるクライアント８１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲーム機、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、及び／またはハンドヘルドゲームプレイデバイスなどを含み得る。通常、クライアント８１０は、符号化された（すなわち圧縮された）映像ストリームを受信し、映像ストリームを復号化し、得られた映像をユーザ、例えばゲームのプレーヤに提示するように構成される。符号化された映像ストリームを受信し、及び／または映像ストリームを復号化するプロセスは通常、クライアントの受信バッファに個々の映像フレームを記憶することを含む。映像ストリームは、クライアント８１０と一体のディスプレイ上、またはモニタもしくはテレビなどの別個のデバイス上で、ユーザに提示され得る。クライアント８１０は、任意で複数のゲームプレーヤを支援するように構成される。例えば、ゲーム機は、２人、３人、４人以上の同時プレーヤを支援するように構成され得る。これらのプレーヤのそれぞれは別個の映像ストリームを受信し得る、または単一の映像ストリームは、各プレーヤのために特別に生成された、例えば各プレーヤの視点に基づいて生成されたフレームの領域を含み得る。クライアント８１０は、任意で地理的に分散される。ゲームシステム８００に含まれるクライアントの数は、１つまたは２つから数千、数万以上まで、幅広く変化し得る。本明細書において用いられるように、用語「ゲームプレーヤ」は、ゲームをプレイする人を指すために用いられ、用語「ゲームプレイデバイス」は、ゲームをプレイするために使用されるデバイスを指すために用いられる。いくつかの実施形態では、ゲームプレイデバイスは、協働してユーザにゲーム体験を届ける複数のコンピューティングデバイスを指し得る。例えば、ゲーム機及びＨＭＤは、ＨＭＤを通して見られるゲームを配信するために、映像サーバシステム８２０と協働し得る。一実施形態では、ゲーム機は、映像サーバシステム８２０から映像ストリームを受信し、ゲーム機は、レンダリングを行うＨＭＤに対し、映像ストリームを転送する、または映像ストリームを更新する。
【０１４３】
クライアント８１０は、ネットワーク８１５を介して映像ストリームを受信するように構成される。ネットワーク８１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び／またはプライベートネットワークなどを含む任意の種類の通信ネットワークであり得る。典型的な実施形態では、映像ストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。あるいは、映像ストリームは、プロプライエタリ規格を介して通信される。
【０１４４】
クライアント８１０の典型的実施例には、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信能力、及び入力デバイスを備えるパーソナルコンピュータが挙げられる。復号化ロジックは、コンピュータ可読媒体に格納されたハードウェア、ファームウェア、及び／またはソフトウェアを含み得る。映像ストリームを復号化（及び符号化）するシステムは、当技術分野においてよく知られており、使用される特定の符号化スキームに応じて変わる。
【０１４５】
クライアント８１０は、必須ではないが、受信した映像を変更するように構成されたシステムをさらに含み得る。例えば、クライアントは、１つの映像を別の映像上にオーバーレイするために、及び／または映像を切り取るためになど、さらなるレンダリングを行うように構成され得る。例えば、クライアント８１０は、Ｉ‐フレーム、Ｐ‐フレーム、及びＢ‐フレームなどの様々な種類の映像フレームを受信し、これらのフレームを、ユーザに表示するための画像に処理するように構成され得る。いくつかの実施形態では、クライアント８１０の一員は、映像ストリームに対しさらなるレンダリング、シェーディング、または３Ｄ変換などの動作を行うように構成される。クライアント８１０の一員は、任意で複数の音声または映像ストリームを受信するように構成される。クライアント８１０の入力デバイスには、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、位置指示デバイス、力フィードバックデバイス、動作及び／または位置感知デバイス、マウス、タッチスクリーン、神経インターフェース、カメラ、及び／または開発中の入力デバイスなどが含まれ得る。
【０１４６】
クライアント８１０が受信する映像ストリーム（及び任意で音声ストリーム）は、映像サーバシステム８２０により生成及び提供される。本明細書の別の箇所でさらに説明されるように、この映像ストリームは、映像フレームを含む（及び音声ストリームは、音声フレームを含む）。映像フレームは、ユーザに表示する画像に有意義に貢献するように構成される（例えば映像フレームは、好適なデータ構造の画素情報を含む）。本明細書において使用される用語「映像フレーム」は、ユーザに表示する画像に、例えば作用するなど、貢献するように構成された情報を主として含むフレームを指すために使用される。「映像フレーム」に関する本明細書の教示のうちのほとんどは、「音声フレーム」にも適用することができる。
【０１４７】
クライアント８１０は通常、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変化する、あるいはゲームプレイに作用するように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを用いて受信され得、及び／またはクライアント８１０上で作動するコンピューティング命令により自動的に生成され得る。受信されたゲームコマンドは、ネットワーク８１５を介してクライアント８１０から、映像サーバシステム８２０及び／またはゲームサーバ８２５へ通信される。例えば、いくつかの実施形態では、ゲームコマンドは、映像サーバシステム８２０を介してゲームサーバ８２５へ通信される。いくつかの実施形態では、ゲームコマンドの別個の複製が、クライアント８１０から、ゲームサーバ８２５及び映像サーバシステム８２０へ通信される。ゲームコマンドの通信は、任意でコマンドの識別に依存する。クライアント８１０Ａに音声または映像ストリームを提供するために使用される異なる経路または通信チャネルを通して、クライアント８１０Ａからゲームコマンドが任意で通信される。
【０１４８】
ゲームサーバ８２５は任意で、映像サーバシステム８２０とは異なるエンティティにより運用される。例えば、ゲームサーバ８２５は、マルチプレーヤゲームの発行者により運営され得る。この実施例では、映像サーバシステム８２０は、ゲームサーバ８２５により任意でクライアントとして見なされ、ゲームサーバ８２５の観点から、従来技術のゲームエンジンを実行する従来技術のクライアントであるように任意で構成される。映像サーバシステム８２０とゲームサーバ８２５との間の通信は、ネットワーク８１５を介して任意で起こる。よって、ゲームサーバ８２５は、映像サーバシステム８２０を含む複数のクライアントにゲーム状態情報を送信する従来技術のマルチプレーヤゲームサーバであり得る。映像サーバシステム８２０は、ゲームサーバ８２５の複数のインスタンスと同時に通信するように構成され得る。例えば、映像サーバシステム８２０は、異なるユーザに複数の異なるビデオゲームを提供するように構成され得る。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ８２５により支援され、及び／または異なるエンティティにより発行され得る。いくつかの実施形態では、映像サーバシステム８２０のいくつかの地理的に分散されたインスタンスは、複数の異なるユーザにゲーム映像を提供するように構成される。映像サーバシステム８２０のこれらのインスタンスのそれぞれが、ゲームサーバ８２５の同一インスタンスと通信し得る。映像サーバシステム８２０と１つ以上のゲームサーバ８２５との間の通信は、専用通信チャネルを介して任意で起こる。例えば、映像サーバシステム８２０は、ゲームサーバ８２５に対し、これらの２つのシステム間の通信専用である高帯域幅チャネルを介して接続され得る。
【０１４９】
映像サーバシステム８２０は、映像源８３０、Ｉ／Ｏデバイス８４５、プロセッサ８５０、及び非一時的ストレージ８５５を少なくとも備える。映像サーバシステム８２０は、１つのコンピューティングデバイスを含み得る、または複数のコンピューティングデバイスに分散され得る。これらのコンピューティングデバイスは任意で、ローカルエリアネットワークなどの通信システムを介して接続される。
【０１５０】
映像源８３０は、例えば動画を形成するストリーミング映像または一連の映像フレームといった映像ストリームを提供するように構成される。いくつかの実施形態では、映像源８３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態の複製を保持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、ならびに通常では視点を含む。ゲーム状態はまた、プロパティ、画像、色、及び／またはオブジェクトの質感も含み得る。
【０１５１】
ゲーム状態は、ゲームルール、ならびに移動する、方向転換する、攻撃する、焦点を設定する、インタラクションを行う、及び／または使用するなどのゲームコマンドに基づいて、通常維持される。ゲームエンジンの一部は任意で、ゲームサーバ８２５内に配置される。ゲームサーバ８２５は、地理的分散クライアントを用いて複数のプレーヤから受信したゲームコマンドに基づいて、ゲームの状態の複製を維持し得る。これらの場合、ゲーム状態はゲームサーバ８２５により映像源８３０に提供され、ゲーム状態の複製が記憶され、レンダリングが行われる。ゲームサーバ８２５は、ネットワーク８１５を介して直接クライアント８１０からゲームコマンドを受信してもよく、及び／または映像サーバシステム８２０を介してゲームコマンドを受信してもよい。
【０１５２】
映像源８３０は、例えば、ストレージ８５５などのコンピュータ可読媒体に記憶されたハードウェア、ファームウェア、及び／またはソフトウェアといったレンダリングロジックを通常含む。このレンダリングロジックは、ゲーム状態に基づいて、映像ストリームの映像フレームを作成するように構成される。レンダリングロジックの全てまたは一部は任意で、グラフィック処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、ゲーム状態及び視点に基づいて、オブジェクト間の３次元空間関係を特定し、及び／または好適な質感などを適用するように構成された処理段階を通常含む。レンダリングロジックは、クライアント８１０へ通信する前に通常符号化される生の映像を生成する。例えば、生の映像は、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ‐１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ‐ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６‐８、ｒｅａｌｖｉｄｅｏ、またはｍｐ３などに従って符号化され得る。符号化プロセスは、遠隔デバイス上のデコーダに配信するために任意でパッケージされた映像ストリームを生成する。映像ストリームは、フレームサイズ及びフレームレートにより特徴付けられる。典型的なフレームサイズには、８００×６００、１２８０×７２０（例えば７２０ｐ）、１０２４×７６８が含まれるが、任意の他のフレームサイズも使用してもよい。フレームレートは、毎秒の映像フレームの数である。映像ストリームは、様々な種類の映像フレームを含み得る。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉ‐フレームは、ディスプレイデバイス上の全てのマクロブロック／画素をリフレッシュする情報を含み、一方Ｐ‐フレームは、そのサブセットをリフレッシュする情報を含む。Ｐ‐フレームは通常、Ｉ‐フレームよりデータサイズが小さい。本明細書において使用される用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するのに必要なバイト数を指すために使用される。
【０１５３】
代替的な実施形態では、映像源８３０は、カメラなどの映像記録デバイスを含む。このカメラは、コンピュータゲームの映像ストリームに含めることができる遅延またはライブ映像を生成するために使用され得る。得られた映像ストリームは、レンダリングされた画像と、静止画カメラまたは動画カメラを使用して記録された画像との両方を任意で含む。映像源８３０はまた、映像ストリームに含めるために前に記録した映像を記憶するように構成されたストレージデバイスを含み得る。映像源８３０はまた、例えば人といったオブジェクトの動作または位置を検出するように構成された動作または位置感知デバイス、及びゲーム状態を特定する、あるいは検出された動作及び／または位置に基づいた映像を生成するように構成されたロジックを含み得る。
【０１５４】
映像源８３０は任意で、他の映像上に配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン指示、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤの映像配信（例えばウェブカメラ映像）を含み得る。クライアント８１０Ａがタッチスクリーンインターフェースまたは視線検出インターフェースを含む実施形態において、オーバーレイには、仮想キーボード、ジョイスティック、及び／またはタッチパッドなどが含まれ得る。オーバーレイの一実施例では、プレーヤの声は音声ストリームにオーバーレイされる。映像源８３０は任意でさらに１つ以上の音声源を含む。
【０１５５】
映像サーバシステム８２０が複数のプレーヤからの入力に基づいてゲーム状態を維持するように構成された実施形態において、視野の位置及び方向を含む視点は、プレーヤごとに異なり得る。映像源８３０は任意で、各プレーヤの視点に基づいて、別個の映像ストリームを各プレーヤに提供するように構成される。さらに、映像源８３０は、クライアント８１０それぞれに対し、異なるフレームサイズ、フレームデータサイズ、及び／または符号化を提供するように構成され得る。映像源８３０は任意で、三次元映像を提供するように構成される。
【０１５６】
Ｉ／Ｏデバイス８４５は、映像サーバシステム８２０のために、映像、コマンド、情報要求、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアント識別、プレーヤ識別、ゲームコマンド、セキュリティ情報、及び／または音声などの情報を、送信及び／または受信するように構成される。Ｉ／Ｏデバイス８４５は通常、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス８４５は、ゲームサーバ８２５、ネットワーク８１５、及び／またはクライアント８１０と通信するように構成される。
【０１５７】
プロセッサ８５０は、本明細書において論述される映像サーバシステム８２０の様々な構成要素内に含まれる、例えばソフトウェアといったロジックを実行するように構成される。例えば、プロセッサ８５０は、映像源８３０、ゲームサーバ８２５、及び／またはクライアントクオリファイア８６０の機能を実行するように、ソフトウェア命令でプログラムされ得る。映像サーバシステム８２０は任意で、プロセッサ８５０の複数のインスタンスを含む。プロセッサ８５０はまた、映像サーバシステム８２０が受信したコマンドを実行するように、または本明細書において論述されるゲームシステム８００の様々な要素の動作を調整するように、ソフトウェア命令でプログラムされ得る。プロセッサ８５０は、１つ以上のハードウェアデバイスを含み得る。プロセッサ８５０は電子プロセッサである。
【０１５８】
ストレージ８５５は、非一時的アナログ及び／またはデジタルストレージデバイスを含む。例えば、ストレージ８５５は、映像フレームを記憶するように構成されたアナログストレージデバイスを含み得る。ストレージ８５５は、例えばハードドライブ、光学ドライブ、またはソリッドステートストレージといったコンピュータ可読デジタルストレージを含み得る。ストレージ８５５は、映像フレーム、人工フレーム、映像フレームと人工フレームの両方を含む映像ストリーム、音声フレーム、及び／または音声ストリームなどを記憶するように構成される（例えば好適なデータ構造またはファイルシステムにより）。ストレージ８５５は任意で、複数のデバイスに分散される。いくつかの実施形態では、ストレージ８５５は、本明細書の別の箇所で論述される映像源８３０のソフトウェア構成要素を格納するように構成される。これらの構成要素は、必要時にいつでも提供可能なフォーマットで記憶され得る。
【０１５９】
映像サーバシステム８２０は任意でさらに、クライアントクオリファイア８６０を備える。クライアントクオリファイア８６０は、クライアント８１０Ａまたは８１０Ｂなどのクライアントの性能をリモートで特定するように構成される。これらの性能には、クライアント８１０Ａ自体の性能、ならびにクライアント８１０Ａと映像サーバシステム８２０との間の１つ以上の通信チャネルの性能の両方が含まれ得る。例えば、クライアントクオリファイア８６０は、ネットワーク８１５を通して、通信チャネルを試すように構成され得る。
【０１６０】
クライアントクオリファイア８６０は、手動または自動で、クライアント８１０Ａの性能を特定（例えば発見）し得る。手動特定は、クライアント８１０Ａのユーザと通信して、ユーザに性能を提供するように依頼することを含む。例えば、いくつかの実施形態では、クライアントクオリファイア８６０は、クライアント８１０Ａのブラウザ内に画像及び／またはテキストなどを表示するように構成される。一実施形態では、クライアント８１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント８１０Ａは、ＨＭＤ上に表示され得るブラウザを有するゲーム機である。表示されるオブジェクトは、ユーザに、クライアント８１０Ａのオペレーティングシステム、プロセッサ、映像デコーダの種類、ネットワーク接続の種類、ディスプレイの解像度などの情報を入力するように要求する。ユーザにより入力された情報は、クライアントクオリファイア８６０へ返信される。
【０１６１】
自動特定は、例えば、クライアント８１０Ａ上でエージェントを実行することにより、及び／またはクライアント８１０Ａにテスト映像を送信することにより、起こり得る。エージェントは、ウェブページに埋め込まれた、またはアドオンとしてインストールされた、ジャバスクリプトなどのコンピューティング命令を備え得る。エージェントは任意で、クライアントクオリファイア８６０により提供される。様々な実施形態では、エージェントは、クライアント８１０Ａの処理能力、クライアント８１０Ａの復号化及び表示能力、クライアント８１０Ａと映像サーバシステム８２０との間の通信チャネルの遅延時間信頼性及び帯域幅、クライアント８１０Ａのディスプレイの種類、クライアント８１０Ａ上に存在するファイアウォール、クライアント８１０Ａのハードウェア、クライアント８１０Ａ上で実行されるソフトウェア、及び／またはクライアント８１０Ａ内のレジストリエントリなどを、発見し得る。
【０１６２】
クライアントクオリファイア８６０は、コンピュータ可読媒体に格納されたハードウェア、ファームウェア、及び／またはソフトウェアを含む。クライアントクオリファイア８６０は任意で、映像サーバシステム８２０の１つ以上の他の要素とは分離したコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクオリファイア８６０は、クライアント８１０と映像サーバシステム８２０の複数のインスタンスとの間の通信チャネルの特性を特定するように構成される。これらの実施形態では、クライアント８１０のうちの１つにストリーミング映像を配信するのに、映像サーバシステム８２０のどのインスタンスが最適であるかを特定するために、クライアントクオリファイアが発見した情報が使用され得る。
【０１６３】
本明細書で定義される様々な実施形態は、本明細書で開示される様々な特徴を用いる特定の実施態様に組み合わされ得る、または組み立てられ得ることを理解されたい。従って、提供される実施例は、いくつかの可能な実施例にすぎず、様々な要素を組み合わせることでより多くの実施態様を定義することが可能な様々な実施態様に限定されない。いくつかの実施例では、いくつかの実施態様は、開示または同等の実施態様の趣旨から逸脱することなく、より少ない要素を含んでもよい。
【０１６４】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成により実施され得る。本開示の実施形態はまた、有線ベースまたは無線のネットワークを通してリンクされる遠隔処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
【０１６５】
前述の実施形態を念頭に、本開示の実施形態は、コンピュータシステムに記憶されるデータを伴う様々なコンピュータ実施動作を用いることができることを理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の実施形態の一部を形成する、本明細書で説明される動作のうちのいずれも、有益な機械動作である。本発明の実施形態はまた、これらの動作を実行するためのデバイスまたは機器に関する。機器は、必要な目的のために特別に構築され得る、または機器は、コンピュータに記憶されたコンピュータプログラムにより選択的に有効化もしくは構成された汎用コンピュータであり得る。具体的には、様々な汎用機械が、本明細書における教示に従って書かれたコンピュータプログラムと共に使用することができる、または、必要動作を実行するためにより特化した機器を構築するほうがより便利であり得る。
【０１６６】
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化することができる。コンピュータ可読媒体は、後でコンピュータシステムにより読み出され得るデータを記憶可能な任意のデータストレージデバイスである。コンピュータ可読媒体の実施例には、ハードドライブ、ネットクワーク接続ストレージ（ＮＡＳ）、読み出し専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で記憶及び実行されるように、ネットワークに接続されたコンピュータシステムにわたり分散されたコンピュータ可読有形媒体が含まれ得る。
【０１６７】
方法動作は特定の順序で説明されたが、オーバーレイ動作の処理が所望のやり方で実行される限り、動作の合間に他の維持管理動作が実行されてもよく、もしくは動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起きることを可能にしてもよいことを、理解されたい。
【０１６８】
前述の開示は、理解を明確にするために若干詳細に説明されたが、ある変更及び修正は、添付の特許請求の範囲内で実施できることは明らかであろう。従って、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示の実施形態は、本明細書に提供される詳細に限定されるものではなく、添付の請求項の範囲内及び均等物内で変更されてもよい。
【図１Ａ】
0006989533.tif 000002
【図１Ｂ】
0006989533.tif 000003
【図１Ｃ】
0006989533.tif 000004
【図２】
0006989533.tif 000005
【図３】
0006989533.tif 000006
【図４Ａ】
0006989533.tif 000007
【図４Ｂ】
0006989533.tif 000008
【図４Ｃ】
0006989533.tif 000009
【図５Ａ】
0006989533.tif 000010
【図５Ｂ】
0006989533.tif 000011
【図５Ｃ】
0006989533.tif 000012
【図５Ｄ】
0006989533.tif 000013
【図５Ｅ】
0006989533.tif 000014
【図６】
0006989533.tif 000015
【図７】
0006989533.tif 000016
【図８】
0006989533.tif 000017