(57)【要約】【解決手段】ゲーム世界を通過するための方法である。ビデオゲームのインスタンスから生成される複数のスナップショットをキャプチャする。ビデオゲームをプレイしている第１のユーザのタイムラインを表示のために生成する。タイムラインが、第１のユーザに関連して表示される現在の描画画像との関係で表示されるビデオゲームの少なくとも１つのユーザの進行の、スナップショット画像を含む。第１のユーザに関連する第１のスナップショット画像を含むサムネイルを、タイムラインにおける表示のために生成する。第１のスナップショットが、第１のユーザの過去の進行を現在の描画画像と比較して示す。第２のユーザに関連する第２のスナップショット画像を含む第２のサムネイルを、タイムラインにおける表示のために生成する。第２のスナップショット画像が、現在の描画画像の後のビデオゲーム内のポイントにおける第２のユーザの進行を示す。【選択図】図５Ｃ
2019527079.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム世界を通過するための方法であって、
第１のユーザについて実行されるビデオゲームから生成される複数のスナップショットをキャプチャすることと、
前記ビデオゲームをプレイしている前記第１のユーザによるゲームプレイの第１のタイムラインを表示のために生成することであって、前記第１のタイムラインが、前記ゲームプレイのスナップショット画像を、前記第１のユーザに関連して実行中の前記ビデオゲームの現在の描画画像との関係で表示される前記ビデオゲーム中の前記第１のユーザの進行として含む、前記生成することと、
前記第１のユーザのゲームプレイに関連する複数の第１のスナップショット画像を含む複数の第１のサムネイルを、前記第１のタイムラインにおける表示のために生成することであって、前記複数の第１のスナップショットが、前記第１のユーザの過去の進行を前記現在の描画画像と比較して示す少なくとも１つの描画画像を含む、前記生成することと、
第２のユーザのゲームプレイに関連する複数の第２のスナップショット画像を含む複数の第２のサムネイルを、前記タイムラインにおける表示のために生成することであって、前記複数の第２のスナップショット画像が、前記現在の描画画像と関係する前記ビデオゲーム内のポイントにおける前記第２のユーザの進行を示す少なくとも１つの描画画像を含む、前記生成することと、を含む、方法。
【請求項２】
第１のスナップショットが、前記第１のスナップショットに対応する前記ビデオゲーム内の第１のポイントから始まる前記ビデオゲームのインスタンスの実行を可能にする、請求項１に記載の方法。
【請求項３】
前記第１のスナップショットが、
対応するユーザのゲームプレイに関連する前記ビデオゲームの実行によって生成される描画画像を含む、第１のスナップショット画像と、
前記ビデオゲーム内の前記第１のポイントに対応する環境の前記生成を可能にするゲーム状態データと、
前記環境についての追加特徴を提供するランダムシードデータと、
前記対応するユーザの前記ゲームプレイについてのキャラクタの生成を可能にする、ユーザ保存データであって、前記キャラクタが、前記ビデオゲーム内の前記第１のポイントに対応する第１の状態を有する、前記ユーザ保存データと、
を含む、請求項２に記載の方法。
【請求項４】
前記複数の第２のスナップショットが、前記現在の描画画像の前の前記ビデオゲーム内のポイントにおける、前記第２のユーザの進行を示す少なくとも１つの描画画像を含む、請求項１に記載の方法。
【請求項５】
前記複数の第２のスナップショットが、前記現在の描画画像の後の前記ビデオゲーム内のポイントにおける、前記第２のユーザの進行を示す少なくとも１つの描画画像を含む、請求項１に記載の方法。
【請求項６】
前記第１のタイムライン内の前記複数の第２のスナップショットの選択されたスナップショット画像の選択を受信することであって、前記選択されたスナップショット画像が、第２のユーザのゲームプレイに関連する、前記受信することと、
前記選択されたスナップショット画像に関連する前記ビデオゲーム内のジャンプポイントに、前記第１のユーザのゲームプレイに関連して実行される前記ビデオゲームの実行をジャンプさせることと、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記ビデオゲームの実行を前記ジャンプさせることが、
前記第１のユーザのゲームプレイに関連して実行される前記ビデオゲームの実行を休止させることと、
前記選択されたスナップショット画像の対応するスナップショットに基づいて、前記ビデオゲームのインスタンスを起動することと、
をさらに含む、請求項６に記載の方法。
【請求項８】
前記対応するスナップショットが、前記第１のユーザのゲームプレイについての第２のキャラクタの生成を可能にする第２のユーザ保存データを含み、前記第２のユーザ保存データ及び第２のキャラクタが、前記第２のユーザのゲームプレイから生じる、請求項７に記載の方法。
【請求項９】
前記ビデオゲームの前記インスタンスの実行を終了させることと、
前記第１のユーザのゲームプレイに関連して実行される前記ビデオゲームの実行を再開させることと、
をさらに含む、請求項７に記載の方法。
【請求項１０】
前記ビデオゲームの前記インスタンスでインスタンス化されるジャンプゲームプレイに対応するスナップショットをキャプチャすることをさらに含む、請求項７に記載の方法。
【請求項１１】
前記第１のユーザの前のゲームプレイに関連する前記複数の第１のスナップショット画像のうち選択されたスナップショット画像の選択を受信することと、
前記選択されたスナップショット画像に関連する前記ビデオゲーム内のジャンプポイントに、前記選択されたスナップショット画像に対応する選択されたスナップショットに基づいて前記ビデオゲームの実行をジャンプさせることと、
をさらに含む、請求項１に記載の方法。
【請求項１２】
前記現在の描画画像と同時に前記タイムラインを表示することをさらに含む、請求項１に記載の方法。
【請求項１３】
前記タイムラインに表示されるスナップショット画像に対応する複数のスナップショットノードを含むノードグラフを表示することと、
前記複数のスナップショットノード間の複数のパスを表示することであって、前記パス及びスナップショットノードが、前記第１のユーザ及び前記第２のユーザのゲームプレイに関連付けられ、各スナップショットノードが、対応するスナップショットノードに関連付けられる、前記表示することと、
をさらに含む、請求項１に記載の方法。
【請求項１４】
前記ノードグラフ内の選択されたスナップショットノードの選択を受信することと、
前記選択されたスナップショットノードに対応する選択されたスナップショット画像を表示することと、
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記ノードグラフ内の選択されたスナップショットノードの選択を受信することであって、前記選択されたスナップショットノードが、対応するユーザのゲームプレイに関連付けられる、前記受信することと、
前記選択されたスナップショットノードに関連する前記ビデオゲーム内のジャンプポイントに、前記第１のユーザのゲームプレイに関連する前記ビデオゲームの実行をジャンプさせることと、
をさらに含む、請求項１４に記載の方法。
【請求項１６】
第３のユーザの第２のタイムラインを表示することであって、前記第２のタイムラインが、前記第３のユーザの複数の第３のスナップショット画像を含み、前記第２のタイムラインが、前記現在の描画画像の前及び後の前記ビデオゲーム内の複数のポイントにおける前記第３のユーザのゲームプレイの進行を示す複数の描画画像を含む、前記表示することをさらに含む、請求項１に記載の方法。
【請求項１７】
前記第１のタイムライン内の選択されたスナップショット画像の選択を受信することと、
前記選択されたスナップショット画像を拡張ウィンドウに表示することと、
をさらに含む、請求項１に記載の方法。
【請求項１８】
前記第１のユーザに関連するローカルコンピューティングデバイス上で前記ビデオゲームを実行することをさらに含む、請求項１に記載の方法。
【請求項１９】
前記第１のユーザの前記ゲームプレイをサポートするために、バックエンドゲームプロセッサのゲーム実行エンジン上で前記ビデオゲームのインスタンスを実行することをさらに含む、請求項１に記載の方法。
【請求項２０】
ゲーム世界を通過するための方法であって、
ビデオゲームをプレイしている第１のユーザに関連して、ゲームクラウドシステム上で前記ビデオゲームの第１のインスタンスを実行することと、
前記ビデオゲームの前記第１のインスタンスの実行に関連して生成される、第１の複数の描画画像の複数の第１のスナップショットをキャプチャすることであって、前記第１のスナップショットのそれぞれが、前記ビデオゲーム内の進行の一意のポイントに関連付けられる、前記キャプチャすることと、
前記ビデオゲームをプレイしている第２のユーザに関連する前記ビデオゲームの第２のインスタンスの実行に関連して生成される第２の複数の描画画像の複数の第２のスナップショットをキャプチャすることと、
前記ビデオゲームをプレイしている前記第１のユーザ及び前記第２のユーザの進行を示すタイムラインを表示することであって、前記タイムラインが、前記第１のインスタンスの実行から生成される現在の描画画像と同時に表示される、前記表示することと、を含む、方法。
【請求項２１】
前記タイムラインが、第１のユーザの過去の進行を前記現在の描画画像と比較して示す前記複数の第１のスナップショットからの少なくとも１つの描画画像を含み、
前記タイムラインが、前記現在の描画画像の後の前記ビデオゲーム内のポイントにおける前記第２のユーザの進行を示す前記複数の第２のスナップショットからの、少なくとも１つの描画画像を含む、請求項２０に記載の方法。
【請求項２２】
対応するスナップショットが、前記対応するスナップショットから始まる前記ビデオゲームのインスタンスの実行を可能にし、
前記タイムライン内の選択されたスナップショットの選択を受信することであって、前記選択されたスナップショットが、第２のユーザに関連付けられる、前記受信することと、
前記選択されたスナップショットに基づく前記第２のユーザの前記選択されたスナップショットに関連する前記ビデオゲーム内のポイントに、前記ビデオゲームの前記第１のインスタンスの実行をジャンプさせることと、
をさらに含む、請求項２０に記載の方法。
【請求項２３】
前記ビデオゲームの実行を前記ジャンプさせることが、
前記第１のユーザに関連して実行中の前記ビデオゲームの第１のインスタンスの実行を休止させることと、
前記選択されたスナップショットに基づいて実行中の前記ビデオゲームの第２のインスタンスを起動することと、
をさらに含む、請求項２２に記載の方法。
【請求項２４】
ゲーム世界を通過するためのゲームクラウドシステムであって、
ビデオゲームをプレイしている複数のユーザに関連する、前記ビデオゲームの複数のインスタンスを実行するように構成される複数の仮想ゲームエンジンを管理するように構成されるゲームサーバであって、前記仮想ゲームエンジンが、前記複数のインスタンスの実行から生成される、描画画像の複数のスナップショットをキャプチャするように構成され、対応するスナップショットが、前記対応するスナップショットから始まる前記ビデオゲームのインスタンスの実行を可能にする、前記ゲームサーバと、
前記複数のスナップショットを記憶するためのスナップショットデータストアと、
第１のユーザに関連する前記ビデオゲームの第１のインスタンスを実行するように構成される、第１の仮想ゲームエンジンであって、前記第１の仮想ゲームエンジンが、前記ビデオゲームをプレイしている前記第１のユーザの第１のタイムラインを生成するように構成され、前記第１のタイムラインが、前記第１のユーザの過去の進行を前記第１のインスタンスの現在の描画画像と比較して示す少なくとも１つの描画画像を含む、複数の第１のスナップショット画像、及び第２のユーザに関連する複数の第２のスナップショット画像を含み、前記複数の第２のスナップショット画像が、前記現在の描画画像の後の前記ビデオゲーム内のポイントにおける前記第２のユーザの進行を示す少なくとも１つの描画画像を含む、前記第１の仮想ゲームエンジンと、
を備える、ゲームクラウドシステム。
【請求項２５】
前記第１の仮想ゲームエンジンが、選択されたスナップショットに基づいて、前記第１のタイムライン内の前記選択されたスナップショットに関連する前記ビデオゲーム内のポイントに前記ビデオゲームの前記第１のインスタンスの実行をジャンプさせるように構成され、前記選択されたスナップショットが、前記第２のユーザに関連付けられる、請求項２４に記載のゲームクラウドシステム。
【請求項２６】
ゲーム世界を通過するための方法であって、
ストリーミングゲームサービスを介してビデオゲームを実行することであって、前記ビデオゲームが、ネットワークを通して通信するユーザデバイスのディスプレイ上に描画され、前記ユーザデバイスが、第１のユーザに関連付けられる、前記実行することと、
前記ユーザデバイスの前記ディスプレイ上に示すために前記ビデオゲームの複数のシーンを生成することであって、前記シーンが、前記ビデオゲームの異なるパスを通って進行する、前記生成することと、
現在の描画シーンと共に表示するためのタイムラインを生成することであって、前記タイムラインが、前記第１のユーザによる前記ビデオゲームの進行に関連するスナップショット画像を示す複数の第１のサムネイルを含み、前記タイムラインが、第２のユーザによる前記ビデオゲームの将来の進行に関連するスナップショット画像を示す複数の第２のサムネイルを含み、前記複数の第２のサムネイル内の第１のサムネイルの選択が、前記第２のユーザのために描画される前記ビデオゲームの将来の状態にジャンプすることを可能にする、前記生成することと、
を含む、方法。
【請求項２７】
前記第１のサムネイルは、前記第１のユーザが、前記将来の状態における前記第２のユーザのゲームプレイにジャンプすることを可能にする、請求項２６に記載の方法。
【請求項２８】
ゲーム世界をプレビューするための方法であって、
ビデオゲームをプレイしている複数のユーザの複数のゲームプレイから生成される複数のスナップショットをキャプチャすることであって、第１のスナップショットが、前記第１のスナップショットに対応する前記ビデオゲーム内のポイントから始まる前記ビデオゲームのインスタンスの実行を可能にする、前記キャプチャすることと、
第１のユーザの第１のタイムラインを表示のために生成することであって、前記第１のタイムラインが、前記ビデオゲーム中を進行する前記第１のユーザの前記ゲームプレイの複数の第１のスナップショット画像を含む複数の第１のサムネイルを含む、前記生成することと、
を含む、方法。
【請求項２９】
第２のユーザの第２のタイムラインを表示のために生成することであって、前記第２のタイムラインが、前記ビデオゲーム中を進行する前記第２のユーザのゲームプレイの複数の第２のスナップショット画像を含む複数の第２のサムネイルを含む、前記生成することをさらに含む、請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ゲームクラウドシステム上で実行される、任意のユーザによるゲームプレイ実行を後で開始するために使用される、ゲームプレイのスナップショットを保存するための方法及びシステム。
【背景技術】
【０００２】
計算リソース（ハードウェア及びソフトウェア）を使用するクラウドベースシステムは、ネットワーク（例えば、インターネット）を介してサービスを配信する。サービスは、ゲームという文脈においては、リモートクライアントに対するコンテンツのストリーミングを可能にし、その場合、大抵の処理がサーバ上で行われ、それが分散され得る。リモートクライアントにおいて与えられる入力は、次に、クライアントのロケーションにおいて専用のゲームハードウェアを必要とすることなく、ビデオゲームの実行を推進することとなる。ユーザは、複雑なハードウェア制限なしにより多くのビデオゲームタイトルへのアクセスがより容易であると分かっており、ゲーム供給元は、集中ロケーションからゲームコードを管理するのがより容易であると分かっているため、クラウドベースのゲームは、したがって、人気が高まってきている。
【０００３】
ユーザが、異なる結果をもたらす複数のオプションを提示し得るビデオゲームのゲームプレイ中を進行しているとき、ゲームプレイをどの方向に操縦するかを決定するのが困難であることがある。例えば、ユーザは、ゲームプレイにおいて何ら明らかな進展をもたらさない方向を回避したい場合があるが、外部ソースを通して得られる事前知識なしに、ユーザが、デッドエンドの結果となる特定の方向を回避することはできない。いくつかの場合において、ユーザは、ゲームプレイを進展させる結果をもたらす適切な方向を発見する前に、ゲームのある部分においてビデオゲームが提示し得る、可能な方向全てを使い果たすことがある。ビデオゲームにおいては、全ての可能な方向をプレイすることを回避することが望ましいことがある。
このような状況において、本開示の実施形態が生じる。
【発明の概要】
【０００４】
本開示の実施形態は、ビデオゲームの複数のユーザによるゲームプレイ中に様々なポイントで生成されるスナップショットを保存し、ビデオゲームのゲームプレイ中にユーザに対し表示可能なタイムラインを生成し、スナップショットが、選択されたスナップショットに対応するポイントにおいて始まる、同一または別のユーザによるゲームプレイにジャンプするために使用される、システム及び方法に関する。本開示の複数の創造性のある実施形態は、以下に記載されている。
【０００５】
１つの実施形態では、ゲーム世界を通過するための方法が開示される。方法は、複数のユーザに関連して実行されるビデオゲームの複数のインスタンスから生成される複数のスナップショットをキャプチャすることを含む。方法は、ビデオゲームをプレイしている第１のユーザの第１のタイムラインを表示することであって、第１のタイムラインが、第１のユーザに関連して実行中のビデオゲームの第１のインスタンスの現在の描画画像との関係で、少なくとも１つのユーザのビデオゲームの進行のスナップショット画像を含む、表示することをさらに含む。方法は、また、第１のタイムラインにおける第１のユーザに関連する複数の第１のスナップショット画像を、複数の第１のサムネイルに表示することであって、複数の第１のスナップショットが、第１のユーザの過去の進行を現在の描画画像と比較して示す少なくとも１つの描画画像を含む、表示することを含む。方法は、第２のユーザに関連する複数の第２のスナップショットを、複数の第２のサムネイルに表示することであって、複数の第２のスナップショットが、現在の描画画像の後のビデオゲーム内のポイントにおける第２のユーザの進行を示す少なくとも１つの描画画像を含む、表示することと、をさらに含む。
【０００６】
別の実施形態では、ゲーム世界を通過するための方法が開示される。方法は、ビデオゲームをプレイしている第１のユーザに関連して、ゲームクラウドシステム上でビデオゲームの第１のインスタンスを実行することを含む。方法は、ビデオゲームの第１のインスタンスの実行に関連して生成される、第１の複数の描画画像の複数の第１のスナップショットをキャプチャすることであって、第１のスナップショットそれぞれが、ビデオゲーム内の進行の一意のポイントに関連付けられる、キャプチャすることを含む。方法は、ビデオゲームをプレイしている第２のユーザに関連するビデオゲームの第２のインスタンスの実行に関連して生成される第２の複数の描画画像の複数の第２のスナップショットをキャプチャすることをさらに含む。方法は、ビデオゲームをプレイしている第１のユーザ及び第２のユーザの進行を示すタイムラインを表示することであって、タイムラインが、第１のインスタンスの実行から生成される現在の描画画像と同時に表示される、表示することをさらに含む。
【０００７】
さらに別の実施形態では、ゲーム世界を通過するために構成されるゲームクラウドシステムが開示される。ゲームクラウドシステムは、ビデオゲームをプレイしている複数のユーザに関連する、ビデオゲームの複数のインスタンスを実行するように構成される複数の仮想ゲームエンジンを管理するように構成されるゲームサーバであって、仮想ゲームエンジンが、複数のインスタンスの実行から生成される、描画画像の複数のスナップショットをキャプチャするように構成され、対応するスナップショットが、対応するスナップショットから始まるビデオゲームのインスタンスの実行を可能にする、ゲームサーバを含む。ゲームクラウドシステムは、複数のスナップショットを記憶するためのスナップショットデータストアを含む。ゲームクラウドシステムは、第１のユーザに関連するビデオゲームの第１のインスタンスを実行するように構成される、第１の仮想ゲームエンジンであって、第１の仮想ゲームエンジンが、ビデオゲームをプレイしている第１のユーザの第１のタイムラインを生成するように構成され、第１のタイムラインが、第１のユーザの過去の進行を第１のインスタンスの現在の描画画像と比較して示す少なくとも１つの描画画像を含む、複数の第１のスナップショット画像、及び第２のユーザに関連する複数の第２のスナップショットを含み、複数の第２のスナップショットが、現在の描画画像の後のビデオゲーム内のポイントにおける、第２のユーザの進行を示す少なくとも１つの描画画像を含む、第１の仮想ゲームエンジンを含む。
【０００８】
別の実施形態では、ゲーム世界を通過するための方法が開示される。方法は、ストリーミングゲームサービスを介してビデオゲームを実行することであって、ビデオゲームが、ネットワークを通して通信するユーザデバイスのディスプレイ上に描画され、ユーザデバイスが、第１のユーザに関連付けられる、実行することを含む。方法は、ユーザデバイスのディスプレイのためにビデオゲームの複数のシーンを生成することであって、シーンが、ビデオゲームの異なるパスを通って進行する、生成することを含む。方法は、現在の描画シーンと共に表示するためのタイムラインを生成することであって、タイムラインが、第１のユーザによるビデオゲームの進行に関連するスナップショット画像を示す複数の第１のサムネイルを含み、タイムラインが、第２のユーザによるビデオゲームの将来の進行に関連するスナップショット画像を示す複数の第２のサムネイルを含み、複数の第２のサムネイル内の第１のサムネイルの選択が、第２のユーザのために描画されるビデオゲームの将来の状態にジャンプすることを可能にする、生成することを含む。
【０００９】
本開示の他の態様は、本発明の原理を例として示す添付図面と併せて掲げる、以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１０】
本開示は、添付図面と併せて掲げる以下の説明を参照することによって、最もよく理解され得る。
【００１１】
【図１】本開示の１つの実施形態による、クラウドゲームネットワークを介して実行される複数のユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存するために使用されるシステムを示す。
【００１２】
【図２】本開示の実施形態による、ゲームクラウドシステム（ＧＣＳ）に記憶されたビデオゲームのアクセスを可能にし、及びプレイし、ゲームプレイに関連して生成されるスナップショットを記憶し、記憶されたゲームプレイをスナップショットを介してプレビューし、スナップショットを介してビデオゲームを通過し、ならびに記憶されたゲームプレイにスナップショットを介してジャンプするための、システム図を示す。
【００１３】
【図３Ａ】本開示の１つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムラインの例示であり、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。
【００１４】
【図３Ｂ】本開示の１つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示される１つまたは複数のタイムラインの例示であり、タイムラインは、１人または複数のユーザのビデオゲームのゲームプレイのスナップショット画像を示す。
【００１５】
【図４Ａ】本開示の１つの実施形態による、少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示すタイムラインの例示であり、スナップショットの選択が、スナップショット画像の拡大図を可能にする。
【００１６】
【図４Ｂ】本開示の１つの実施形態による、そのそれぞれが少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す、１つまたはタイムラインの例示であり、スナップショットの選択が、スナップショット画像の拡大図を可能にする。
【００１７】
【図５Ａ】本開示の１つの実施形態による、ビデオゲームのゲームプレイのノードグラフの例示であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中にタイムラインと共に表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。
【００１８】
【図５Ｂ】本開示の１つの実施形態による、ビデオゲームにおいて利用可能な全ての可能なパスを示すユニバーサルノードグラフまたはノードツリーの例示である。
【００１９】
【図５Ｃ】本開示の１つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるノード階層を示すノードグラフの例示であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中にタイムラインと共に表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。
【００２０】
【図５Ｄ】本開示の１つの実施形態による、非線形の進行部分を有するビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるスナップショットノード階層を示す、ノードグラフの拡張された例示である。
【００２１】
【図６Ａ】本開示の１つの実施形態による、選択されたスナップショットノードに接近して線形的に整列されたスナップショットノードのクラスタの例示であり、スナップショットノードは、タイムラインまたはノードグラフを通して選択され得る。
【００２２】
【図６Ｂ】本開示の１つの実施形態による、選択されたスナップショットノードに接近して非線形的に整列されたスナップショットノードのクラスタの例示であり、スナップショットノードは、タイムラインまたはノードグラフを通して選択され得る。
【００２３】
【図６Ｃ】本開示の１つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
【図６Ｄ】本開示の１つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
【図６Ｅ】本開示の１つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
【図６Ｆ】本開示の１つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
【００２４】
【図７】本開示の１つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショット、及びそれらのスナップショットのそれぞれをスナップショットデータベースの１つまたは複数のマスタファイルに記憶することの例示である。
【００２５】
【図８】本開示の１つの実施形態による、同一または別のユーザによるビデオゲームの別のゲームプレイ中にキャプチャされるスナップショットに基づく、個別のジャンプゲームプレイへのそのユーザによる仲介ジャンプを含む、ビデオゲームのユーザのゲームプレイの複数セグメントの例示である。
【００２６】
【図９】本開示の１つの実施形態による、ゲーム世界を通過するための方法におけるステップを例示するフロー図である。
【００２７】
【図１０】本開示の実施形態による、示されるヘッドマウントディスプレイのコンポーネントを例示する図である。
【００２８】
【図１１】本発明の多様な実施形態による、ゲームシステムのブロック図である。ゲームシステムは、ネットワークを介して１つまたは複数のクライアントにビデオストリームを提供するように構成される。
【発明を実施するための形態】
【００２９】
以下の詳細な説明は、例示のための多数の具体的詳細を含むが、当業者であれば誰でも、以下の詳細に対する多数の変形及び変更が本開示の範囲内にあると、理解するであろう。したがって、以下に記載される本開示の態様は、この説明に続く特許請求の範囲に対する普遍性のいかなる損失もなく、かつ特許請求の範囲に対して制限を課すことなく、明記される。
【００３０】
概して言うと、本開示の多様な実施形態は、特にクラウドベースゲームシステム上で実行される際に、複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存し、ビデオゲームを通過し、ビデオゲームをプレビューし、別のユーザのゲームプレイを体験するためにビデオゲーム内の選択されたポイントにジャンプするために提供するシステム及び方法を説明する。スナップショットは、ビデオゲームをプレイしているユーザのために、タイムライン内に表示されてもよい。タイムライン内で選択されたスナップショットは、選択されたスナップショットに対応するビデオゲーム内のジャンプポイントにおけるビデオゲームのインスタンスのインスタンス化を可能にする、メタデータ及び／または情報を含む。要求側のユーザが、元のユーザとは異なり得るとしても、ジャンプポイントにおいて始まるビデオゲームのインスタンスは、以前に実行されたゲームプレイにおいて元のユーザが選択されたスナップショットを生成することに関連して実行される。本開示の実施形態は、以前は利用不可能であった、同一または別のユーザのビデオゲームのインスタンスをロードし、実行する方法のために提供する。このようにして、ユーザは、自分自身のゲームプレイを危険にさらすことなく、他のユーザのゲームプレイを能動的にプレビューすることができる。また、ユーザは、自分自身の現在のゲームプレイを危険にさらすことなく、自分自身の以前のゲームプレイを能動的にプレビューすることができる。このような状況において、本開示の実施形態が生じる。
【００３１】
したがって、本開示の実施形態は、ゲームアプリケーションの追加のユーザのために提供する。例えば、本開示の実施形態は、ユーザが、ゲームアプリケーションの任意の部分に、そのゲームアプリケーションの以前のゲームプレイに基づいてジャンプするために提供する。例えば、いくつかの実施形態では、スナップショット画像（例えば、スクリーンショット）の選択を通して、対応するスナップショット情報が、ゲームアプリケーションへのジャンプを可能にするためにアクセスされる。このようにして、ユーザは、楽しむためにゲームアプリケーションのミニセクションを素早くプレイすること、またはゲームアプリケーションの異なるセクションをうまく通過する方法を発見することができる。ユーザが初期起動シーケンスを用いてゲームアプリケーションをロードしなくても、ミニセクションへのアクセスが達成される。さらに、ユーザは、関心のあるセクション（例えば、レベルのボス達、または最終ボスとのバトル）に到達するためにゲーム全体をプレイする必要がなく、迅速なゲームプレイのためにこれらの関心あるセクションに直接行くことができるため、人気の廃れた古いアプリケーションが、新たな関心を招くこととなる。始め（例えば、ユーザが、スクラッチからゲームアプリケーションを最初にロードするとき）から初期シーケンスを実行する代わりに、ゲームサーバは、中間ポイントまたはジャンプポイントから直接始まるゲームアプリケーションを実行するだけでよいため、さらなる他の実施形態は、上記の成果をもたらし、ゲームサーバのより良い活用を含む追加の恩恵及び利点をもたらす。したがって、選択されたジャンプポイントからゲームを開始するために必要なコードを直接アップロードすることによって、ゲームサーバは、初期シーケンス、及びゲームアプリケーション内のジャンプポイントに進むための任意のさらなる実行可能シーケンスをスキップする。
【００３２】
多様な実施形態の上記概略的理解とともに、実施形態の例としての詳細について、ここで多様な図面を参照して説明される。
【００３３】
明細書全体を通して、「ビデオゲーム」に対する参照は、入力コマンドの実行を通して指示される、任意の種類の対話型アプリケーションを表すように意味される。例示の目的でのみ、対話型アプリケーションは、ゲーム、文書処理、ビデオ処理、ビデオゲーム処理などのためのアプリケーションを含む。さらに、ビデオゲーム及びゲームアプリケーションという用語は、交換可能である。
【００３４】
図１は、本開示の１つの実施形態による、クラウドゲームネットワークを介して実行される複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存し、１人または複数のユーザのビデオゲームのゲームプレイをプレビューし、ビデオゲームを通過し、同一または別のユーザのゲームプレイを体験するためにビデオゲーム内の選択されたポイントにジャンプするために使用されるシステムを示す。
【００３５】
いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパバイザ上で動作する複数の仮想マシン（ＶＭ）を含んでもよく、１つまたは複数の仮想マシンが、単一プレーヤまたはマルチプレーヤビデオゲームを支援して、ホストのハイパバイザに利用可能なハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。他の実施形態では、クラウドゲームネットワークは、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成される。その場合に、各ローカルコンピューティングデバイスは、単一プレーヤまたはマルチプレーヤビデオゲームなどにおいて、ビデオゲームのインスタンスを実行していてもよい。例えば、マルチプレーヤモードでは、ビデオゲームがローカルに実行している間、クラウドゲームネットワークは、情報（例えば、ゲーム状態データ）を各ローカルコンピューティングデバイスから同時に受信し、それに応じてその情報を１つまたは複数のローカルコンピューティングデバイスの至る所に分散する。それによって、各ユーザは、マルチプレーヤビデオゲームのゲーム環境において、他のユーザと（例えば、ビデオゲーム内の対応するキャラクタを通して）対話することができる。このようにして、クラウドゲームネットワークは、マルチプレーヤゲーム環境内でユーザそれぞれについてのゲームプレイを協調させ、結合する。
【００３６】
図示するように、システム１０は、複数の対話型ビデオゲームへのアクセスを提供するゲームプロセッサモジュール２１０を実行する、ゲームサーバ２０５を含む。ゲームサーバ２０５は、クラウド内で利用可能な任意の種類のサーバコンピューティングデバイスであってもよく、１つまたは複数のホスト上で実行する１つまたは複数の仮想マシンとして構成されてもよい。例えば、ゲームサーバ２０５は、ゲームプロセッサ２１０をサポートする仮想マシンを管理してもよい。
【００３７】
クライアントデバイス１００は、インターネットなどのネットワーク１５０を介してビデオゲームへのアクセスを要求するため、及びゲームサーバ２０５により実行され、ユーザ５に関連するディスプレイデバイス１２に配信されるビデオゲームのインスタンスを描画するために構成される。例えば、ユーザ５は、クライアントデバイス１００を通して、ゲームプロセッサ２１０上で実行中のビデオゲームのインスタンスと対話していてもよい。クライアントデバイス１００は、また、ビデオゲームのローカル実行用に構成されるゲーム実行エンジン１１１を含んでもよい。クライアントデバイス１００は、ゲームコントローラ６、タブレットコンピュータ１１、キーボード、ビデオカメラによってキャプチャされるジェスチャ、マウス、タッチバッドなどの多様な種類の入力デバイスからの入力を受信し得る。クライアントデバイス１００は、メモリと、ネットワーク１５０を介してゲームサーバ２０５に接続可能なプロセッサモジュールと、を少なくとも有する、任意の種類のコンピューティングデバイスであってもよい。クライアントデバイス１００のいくつかの例は、パーソナルコンピュータ（ＰＣ）、ゲームコンソール、ホームシアタデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話、またはビデオゲームのインスタンスを実行するためにゲームサーバ２０５と対話し得る任意の他の種類のコンピューティングデバイスを含む。
【００３８】
クライアントデバイス１００は、ゲームサーバ２０５によって配信される、またはゲーム実行エンジン１１１によってローカルに、描画された画像を受信するため、及び描画画像をディスプレイ１２上に表示するために構成される。例えば、描画画像は、ユーザ５に関連するゲームサーバ２０５のゲーム実行エンジン２１１上で実行中のビデオゲームのインスタンスに関連付けられてもよい。特に、クライアントデバイス１００は、ゲームプレイを推進するために使用される入力コマンドなどによって、ユーザ５のゲームプレイに関連するビデオゲームのインスタンスと対話するように構成される。
【００３９】
さらに、クライアントデバイス１００は、ゲームサーバ２０５と対話して、ビデオゲームをプレイしている際にユーザ５のゲームプレイのスナップショットをキャプチャし、記憶するように構成される。加えて、クライアントデバイス１００は、ゲームサーバ２０５と対話して、ユーザ５のゲームプレイのスナップショット、及び同じビデオゲームをプレイしている他のユーザの保存済みのゲームプレイのスナップショットを含むタイムラインを表示するように構成される。それぞれのスナップショットは、ユーザ５が、選択されたスナップショットに対応するビデオゲーム内のジャンプポイントにおいて保存済みのゲームプレイにジャンプすることを可能にする。その場合に、保存済みのゲームプレイは、１つの実施形態において、ユーザ５とは異なる別のユーザに関連付けられてもよい。
【００４０】
より詳細には、ゲームサーバ２０５のゲームプロセッサ２１０は、ビデオゲームをプレイしている際に、ユーザ５のゲームプレイのスナップショットを生成するように構成される。他の仮想マシンに関連するゲームサーバ２０５の他のゲームプロセッサは、他のユーザのゲームプレイに関連するビデオゲームのインスタンスを実行し、それらのゲームプレイ中にスナップショットをキャプチャするように構成される。先に紹介したように、ビデオゲームのインスタンスは、ユーザ５のゲームプレイに関連してゲーム実行エンジン２１１上で実行している。
【００４１】
スナップショット生成器２１２は、ユーザ５のゲームプレイから生成される複数のスナップショットをキャプチャするように構成される。それぞれのスナップショットは、対応するスナップショットに関連するビデオゲーム内のポイントから始まるビデオゲームのインスタンスの実行を可能にする情報を提供する。スナップショットは、ユーザ５によるビデオゲームのゲームプレイ中に自動的に生成される。スナップショットのそれぞれの部分は、実施形態において、独立して構成される、またはデータストア１４０の下に構成される関連データベース内に記憶される。別の実施形態では、スナップショットは、ユーザ５による命令によって手動で生成されてもよい。このようにして、対応するスナップショットの選択を経た任意のユーザは、対応するスナップショットに関連するビデオゲーム内のポイントにおける、ユーザ５のゲームプレイにジャンプし得る。ゲームプロセッサ２１０は、対応するスナップショットに基づいて任意のユーザの保存済みゲームプレイにジャンプすることを可能にするために、データベース１４０内の情報にアクセスするように構成される。即ち、要求側のユーザは、スナップショットを生成及び保存した元のユーザのゲームプレイのゲームキャラクタを使用して、選択されたスナップショットに対応するジャンプポイントにおいてビデオゲームのプレイを開始することができる。
【００４２】
特に、各スナップショットは、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームのインスタンスの実行を可能にするためのメタデータ及び／または情報を含む。例えば、ユーザ５のゲームプレイにおいて、スナップショットは、レベルの中間などの、ビデオゲームの進行内の特定のポイントにおいて生成されてもよい。関連するスナップショット情報は、データベース１４０の１つまたは複数のデータベースに記憶される。ポインタは、特定のスナップショットに対応する各データベース内の情報を関連付けるために使用され得る。このようにして、ユーザ５のゲームプレイを体験したい別のユーザは、関心のあるビデオゲーム内のポイントに対応するスナップショットを選択してもよい。
【００４３】
スナップショットは、そのポイントにおいて描画される、シーンのスナップショット画像を含む。スナップショット画像は、スナップショット画像データベース１４６に記憶される。タイムラインにおいてサムネイルの形式で提示されるスナップショット画像は、ビデオゲーム中のユーザによる進行における対応するポイントで、ユーザのゲームプレイにビューを提供する。
【００４４】
スナップショットは、また、そのポイントにおけるゲームの状態を定義するゲーム状態データも含む。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバレイなどを含んでもよい。このようにして、ゲーム状態データは、ビデオゲーム内の対応するポイントにおいて存在したゲーム環境の生成を可能にする。ゲーム状態データは、ＣＰＵの状態、ＧＰＵ、メモリ、レジスタ値、プログラムカウンタ値、プログラマブルＤＭＡ状態、ＤＭＡ用にバッファされたデータ、オーディオチップ状態、ＣＤ−ＲＯＭ状態などの、ゲームプレイを描画するために使用されるあらゆるデバイスの状態も含んでもよい。ゲーム状態データは、ビデオゲームをそのポイントから実行するために、実行可能コードのどの部分がロードされる必要があるかも識別してもよい。ゲーム状態データ全てがキャプチャされ記憶される必要はなく、実行可能コードがスナップショットに対応するポイントにおいてゲームを開始するのに十分なデータだけでよい。ゲーム状態データは、ゲーム状態データベース１４５に記憶される。
【００４５】
スナップショットはまた、ユーザ保存データも含む。概して、ユーザ保存データは、対応するユーザのためにビデオゲームをパーソナライズする情報を含む。これは、ユーザのキャラクタに関連する情報を含み、それによって、ビデオゲームは、そのユーザに一意であり得るキャラクタ（例えば、形状、外見、衣服、兵器類など）で描画される。このようにして、ユーザ保存データは、対応するユーザのゲームプレイについてのキャラクタの生成を可能にし、キャラクタは、スナップショットに関連するビデオゲーム内のポイントに対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイする際にユーザ５によって選択されるゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタロケーション、残りのライフ数、利用可能ライフの合計可能数、防御手段、賞品、時間カウンタ値などを含んでもよい。ユーザ保存データは、例えば、ユーザ５を識別するユーザプロファイルデータも含んでもよい。ユーザ保存データは、データベース１４１に記憶される。
【００４６】
加えて、スナップショットは、人工知能（ＡＩ）モジュール２１５により生成されるランダムシードデータも含む。ランダムシードデータは、元のゲームコードの一部でなくともよいが、ゲーム環境をよりリアルに、及び／またはユーザに対し魅力的に見えるようにするために、オーバレイに追加されてもよい。即ち、ランダムシードデータは、ユーザのゲームプレイ内の対応するポイントにおいて存在する、ゲーム環境のための追加特徴を提供する。例えば、ＡＩキャラクタは、オーバレイにおいてランダムに生成され、提供されてもよい。ＡＩキャラクタは、ゲームをプレイしているどのユーザにも関連付けられないが、ユーザエクスペリエンスを強化するためにゲーム環境内に置かれる。例示として、これらのＡＩキャラクタは、都市のシーンにおいて通りをランダムに歩いてもよい。加えて、他のオブジェクトが、オーバレイにおいて生成され、提示されてもよい。例えば、背景の雲、及び空間内を飛んでいる鳥が、オーバレイにおいて生成され、提示されてもよい。ランダムシードデータは、ランダムシードデータベース１４３に記憶される。
【００４７】
このようにして、ユーザ５のゲームプレイを体験したい別のユーザは、関心のあるビデオゲーム内のポイントに対応するスナップショットを選択してもよい。例えば、タイムラインまたはノードグラフ内のノードにおいて提示されるスナップショット画像をユーザが選択することによって、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が、対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することが可能となる。このようにして、スナップショットは、要求側のユーザが、スナップショットに対応するポイントにおけるユーザ５のゲームプレイにジャンプすることを可能にする。
【００４８】
ゲームプロセッサ２１０は、ビデオゲームをプレイしているユーザ５のタイムラインを表示している、タイムライン生成器２１３を含む。タイムラインは、ビデオゲーム中を進行している少なくとも１人のユーザ（例えば、ユーザ５及び／または他のユーザ）のスナップショット画像を含み、スナップショット画像は、ユーザ５に関連して実行中のビデオゲームのインスタンスの現在の描画画像との関係で提示される。それぞれのスナップショット画像は、ユーザ５によるビデオゲームの進行内の特定のポイントにおいてキャプチャされる特定のスナップショットに対応する。例えば、ユーザ５のゲームプレイに関連して生成されるスナップショット及びスナップショット画像は、ユーザ５のゲームプレイに関連して実行中のビデオゲームのインスタンスの現在の描画画像の前に発生する、ビデオゲーム内のポイントに対応する。即ち、ユーザ５は、以前にビデオゲーム内のそれらのポイントを通ってプレイしており、複数のスナップショット及びスナップショット画像が、それらのポイントに対応して生成された。
【００４９】
加えて、第２のユーザのゲームプレイに関連して生成されるスナップショット及びそれらの対応するスナップショット画像は、ユーザ５のゲームプレイの現在の描画画像の前、または後に発生するビデオゲーム内のポイントに対応し得る。即ち、第２のユーザは、ビデオゲームをプレイしている際に、ユーザ５よりもさらに進行している場合がある。したがって、第２のユーザのゲームプレイに対応するスナップショットは、ユーザ５のゲームプレイに関連する現在の描画画像の前のビデオゲーム内のポイントにおいて発生してもよく、または、現在の描画画像の後のポイントにおいて発生してもよい。タイムラインは、現在の描画画像の後に発生するビデオゲーム内のポイントに対応するスナップショット画像を含んでもよく、及び／または現在の描画画像の前に発生するビデオゲーム内のポイントに対応するスナップショット画像を含んでもよい。
【００５０】
タイムライン内に提示されるスナップショットは、１つの実施形態において、他のユーザのゲームプレイにアクセスするためにユーザ５によって使用されてもよい。即ち、タイムライン内で選択されたスナップショットの選択によって、ユーザ５が、スナップショットに対応するポイントにおける別のユーザのゲームプレイにジャンプすることが可能となる。例えば、ジャンプゲーム実行エンジン２１６は、選択されたスナップショットに対応するポイントにおいてビデオゲームの実行を開始するために、スナップショット（例えば、メタデータ及び／または情報）を多様なデータベースから（例えば、データベース１４０から）収集する。１つの実施形態では、ユーザ５のゲームプレイは、別のユーザのゲームプレイにジャンプすることによって、影響されない。
【００５１】
別の実施形態では、タイムライン内に提示されるスナップショットは、現在の描画画像の前に発生するユーザ自身のゲームプレイ内のポイントにアクセスするために、ユーザ５によって使用されてもよい。例えば、スナップショットは、ユーザ５のゲームプレイ内に生成され、タイムラインに提示されてもよい。ユーザ５によるスナップショットの選択によって、実行エンジン２１６が、選択されたスナップショットに対応する以前のポイントにおいてビデオゲームの実行を開始するために、スナップショット（例えば、メタデータ及び／または情報）を多様なデータベースから（例えば、データベース１４０から）収集することが可能となる。このようにして、ユーザ５は、ビデオのある部分（例えば、以前のレベル）に戻って再プレイしてもよい。１つの実施形態では、ユーザ５の現在のゲームプレイは、同一ユーザの以前のゲームプレイにジャンプすることによって、影響されない。
【００５２】
ゲームプロセッサ２１０は、ノードグラフ生成器２１４も含む。ユーザ５が、ビデオゲーム中を進行すると、ゲームを通るパスが生成される。別のユーザは、特に、ビデオゲームが複雑である場合、ビデオゲームを通る異なるパスを生成してもよい。パスは、ビデオゲームによって確立される共通論理パスの一部であってもよく、その場合、共通論理パスは、ビデオゲームをプレイしている際に任意のユーザが取り得る全てのパスを含む。したがって、ユーザ５のゲームプレイに関連するパスは、共通論理パスのサブセットであってもよく、ビデオゲームを通るユーザ５の進行を定義する。論理ノードは、共通論理パス内の多様なポイントにおいて定義されてもよい。例えば、例示として、ノードは、ゲームの開始、レベルの開始、ゲームの終了、レベルの終了、ユーザが２つ以上の任意選択パス間で選択することを可能にする分岐点、ビデオゲーム内の重要ポイントなどにおいて確立されてもよい。
【００５３】
加えて、ノードは、ユーザ５のゲームプレイに関連するパス内の多様なポイントにおいて、またはより概略的には、任意のユーザのゲームプレイに関連するパス内において定義されてもよい。例えば、ノードは、スナップショットに関連して定義されてもよい。これらのノードは、周期的な間隔（例えば、毎分、５分おき、１０分おきなど）で定義されてもよい。加えて、これらのノードは、ユーザによって手動で定義されてもよい。例示として、これらのノードもまた、ゲームの開始、レベルの開始、ゲームの終了、レベルの終了、ユーザが２つ以上の任意選択パス間で選択することを可能にする分岐点、ビデオゲーム内の重要ポイントなどにおいて確立されてもよい。
【００５４】
図２は、本開示の実施形態による、ゲームクラウドシステム（ＧＣＳ）２０１に記憶されるビデオゲームのアクセスを可能にし、プレイするためのシステム図２００を示す。概して言うと、ゲームクラウドシステムＧＣＳ２０１は、複数のユーザをサポートするようにネットワーク２２０を介して動作するクラウドコンピューティングシステムであってもよい。追加的に、ＧＣＳ２０１は、複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存するように構成され、スナップショットは、スナップショットに対応するビデオゲーム内のポイントにおいて始まる、要求側ユーザのためのビデオゲームのインスタンスを起動するために使用され得る。加えて、スナップショットの使用を経たＧＣＳ２０１は、ユーザが、ビデオゲームを通過すること、ならびにビデオゲームの過去及び将来のシーンをプレビューすることを可能にする。さらに、スナップショットは、要求側ユーザが、別のユーザのゲームプレイを体験するために、対応するスナップショットを通してビデオゲーム内の選択されたポイントにジャンプすることを可能にする。特に、システム２００は、ＧＣＳ２０１、１つまたは複数のソーシャルメディアプロバイダ２４０、及びユーザデバイス２３０を含み、その全てが、ネットワーク２２０（例えば、インターネット）を介して接続される。１つまたは複数のユーザデバイスは、ＧＣＳ２０１及びソーシャルメディアプロバイダ２４０によって提供されるサービスにアクセスするためにネットワーク２２０に接続されてもよい。
【００５５】
１つの実施形態では、ゲームクラウドシステム２０１は、ゲームサーバ２０５と、ビデオレコーダ２７１と、タグプロセッサ２７３と、ユーザプロファイルマネージャを含むアカウントマネージャ２７４と、ゲーム選択エンジン２７５と、ゲームセッションマネージャ２８５と、ユーザアクセスロジック２８０と、ネットワークインタフェース２９０と、ソーシャルメディアマネージャ２９５と、を含む。ＧＣＳ２０１は、ゲーム状態ストア、ランダムシードストア、ユーザ保存データストア、スナップショットストア、などの複数のゲームストレージシステムをさらに含んでもよく、それらは、概してデータストア１４０に記憶され得る。他のゲームストレージシステムは、ゲームコードストア２６１、記録済みゲームストア２６２、タグデータストア２６３、ビデオゲームデータストア２６４、及びゲームネットワークユーザストア２６５を含んでもよい。１つの実施形態では、ＧＣＳ２０１は、ゲームアプリケーション、サービス、ゲーム関連デジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ、及びソーシャルネットワーク間の相互接続性を提供し得るシステムである。ＧＣＳ２０１は、ソーシャルメディアマネージャ２９５を通しネットワークインタフェース２９０を介して、ユーザデバイス２３０及びソーシャルメディアプロバイダ２４０と通信してもよい。ソーシャルメディアマネージャ２９５は、１人または複数の友達を関連付けるように構成されてもよい。１つの実施形態では、各ソーシャルメディアプロバイダ２４０は、ユーザにソーシャルネットワーク接続を示す少なくとも１つのソーシャルグラフ２４５を含む。
【００５６】
ユーザＵ０は、ゲームセッションマネージャ２８５を介してＧＣＳ２０１によって提供されるサービスにアクセスすることができ、その場合に、ユーザＵ０は、図１のユーザ５の代表であってもよい。例えば、アカウントマネージャ２７４は、ユーザＵ０によるＧＣＳ２０１への認証及びアクセスを可能にする。アカウントマネージャ２７４は、メンバユーザについての情報を記憶する。例えば、各メンバユーザについてのユーザプロファイルは、アカウントマネージャ２７４によって管理されてもよい。このようにして、メンバ情報は、認証の目的でアカウントマネージャ２７４によって使用され得る。例えば、アカウントマネージャ２２７４は、メンバユーザに関するユーザ情報を更新及び管理するために使用されてもよい。追加的に、メンバユーザにより所有されるゲームタイトルは、アカウントマネージャ２７４によって管理されてもよい。このようにして、データストア２６４に記憶されるビデオゲームは、それらのビデオゲームを所有する任意のメンバユーザに利用可能とされる。
【００５７】
１つの実施形態では、ユーザ、例えば、ユーザＵ０は、ネットワーク２２０上の接続を通しユーザデバイス２３０を経由して、ＧＣＳ２０１及びソーシャルメディアプロバイダ２４０によって提供されるサービスにアクセスし得る。ユーザデバイス２３０は、プロセッサ及びメモリを有し、有線または無線の、携帯型または非携帯型の、任意の種類のデバイスを含み得る。１つの実施形態では、ユーザデバイス２３０は、スマートフォン、タブレットコンピュータ、または携帯型フォームファクタにおいてタッチスクリーンケイパビリティを提供するハイブリッドの形態であってもよい。１つの例示的なデバイスは、オペレーティングシステムを実行し、かつネットワーク２２０を介して取得され、ローカル携帯型デバイス（例えば、スマートフォン、タブレット、ラップトップ、デスクトップなど）上で実行され得る多様なアプリケーション（ａｐｐｓ）へのアクセスが提供される、携帯電話デバイスを含み得る。
【００５８】
ユーザデバイス２３０は、ユーザＵ０が、入力コマンド２３６を送信するため、ならびにＧＣＳ２０１及びソーシャルメディアプロバイダ２４０から受信されるデータ及び／または情報２３５を表示するためのインタフェースとして振る舞うディスプレイ２３２を含む。ディスプレイ２３２は、フラットパネルディスプレイ、陰極線管（ＣＲＴ）、または表示を描画可能な他のデバイスによって典型的に提供される、タッチスクリーンまたはディスプレイとして構成され得る。代替的には、ユーザデバイス２３０は、デスクトップコンピュータ、またはラップトップコンピュータと同様に、デバイスから分離してそのディスプレイ２３２を有してもよい。
【００５９】
１つの実施形態では、ユーザデバイス１３０は、ＧＣＳ２０１と通信して、ユーザＵ０がビデオゲームをプレイすることを可能にするように構成される。いくつかの実施形態では、ＧＣＳ２０１は、ホストマシンのハイパバイザ上で動作する複数の仮想マシン（ＶＭ）を含んでもよく、１つまたは複数の仮想マシンが、ホストのハイパバイザに利用可能なハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。例えば、ユーザＵ０は、ゲーム選択エンジン２７５を介して、ビデオゲームデータストア２６４内の利用可能なビデオゲームを（例えば、ゲームタイトルなどによって）選択してもよい。ビデオゲームは、単一プレーヤゲーム環境において、またはマルチプレーヤゲーム環境において、プレイされてもよい。このようにして、選択されたビデオゲームが、ＧＣＳ２０１上のゲームサーバ２０５による実行のために、有効にされロードされる。１つの実施形態では、ユーザデバイス２３０が、ゲームビデオフレーム２３５のストリームをＧＣＳ２０１から受信することとなるように、ゲームプレイが、ＧＣＳ２０１において第１に実行され、ゲームプレイを推進するユーザ入力コマンド２３６が、ＧＣＳ２０１に返送される。ストリーミングゲームプレイから受信されるビデオフレーム２３５は、ユーザデバイス２３０のディスプレイ２３２に示される。他の実施形態では、ＧＣＳ２０１は、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成され、各ローカルコンピューティングデバイスは、単一プレーヤビデオゲームまたはマルチプレーヤビデオゲームなどのビデオゲームのインスタンスを実行していてもよい。例えば、マルチプレーヤゲーム環境では、ビデオゲームがローカルに実行している間、クラウドゲームネットワークは、情報（例えば、ゲーム状態データ）を各ローカルコンピューティングデバイスから同時に受信し、それに応じてその情報を１つまたは複数のローカルコンピューティングデバイスの至る所に分散する。それによって、各ユーザは、マルチプレーヤビデオゲームのゲーム環境内において、他のユーザと（例えば、ビデオゲーム内の対応するキャラクタを通して）対話することができる。このようにして、クラウドゲームネットワークは、マルチプレーヤゲーム環境内でユーザそれぞれについてのゲームプレイを協調させ、結合する。
【００６０】
１つの実施形態では、ユーザＵ０が、プレイする利用可能なゲームタイトルを選んだ後、選んだゲームタイトルについてのゲームセッションが、ゲームセッションマネージャ２８５を通して、ユーザＵ０により起動されてもよい。ゲームセッションマネージャ２８５は、まず、データストア１４０内のゲーム状態ストアにアクセスして、ユーザＵ０によってプレイされた（選択されたゲームについての）最後のセッションの保存済みゲーム状態が、もしあれば、取り出す。それによって、ユーザＵ０は、前回のゲームプレイの停止ポイントからゲームプレイを再スタートすることができる。一旦再開または開始ポイントが識別されると、ゲームセッションマネージャ２８５は、ゲームプロセッサ２１０内のゲーム実行エンジンに、ゲームコードストア２６１から選ばれたゲームタイトルのゲームコードを実行するように通知してもよい。ゲームセッションが起動された後、ゲームセッションマネージャ２８５は、ネットワークインタフェース２９０を介してユーザデバイス、例えば、ユーザデバイス２３０に、ゲームビデオフレーム２３５（即ち、ストリーミングビデオデータ）を渡してもよい。
【００６１】
ゲームプレイ中、ゲームセッションマネージャ２８５は、ゲームプロセッサ２１０、レコーディングエンジン２７１、及びタグプロセッサ２７３と通信して、ゲームプレイまたはゲームプレイセッションの記録（例えば、ビデオ）を生成または保存してもよい。１つの実施形態では、ゲームプレイのビデオ記録は、ゲームプレイ中に入力または提供されるタグコンテンツ、及び他のゲーム関連メタデータを含んでもよい。タグコンテンツは、また、スナップショットを介して保存されてもよい。ゲームプレイのビデオ記録は、そのゲームプレイに対応する任意のゲーム測定基準と共に、記録済みゲームストア２６２に保存されてもよい。任意のタグコンテンツは、タグデータストア２６３に保存されてもよい。
【００６２】
ゲームプレイ中、ゲームセッションマネージャ２８５は、ゲームプロセッサ２０４と通信して、ビデオゲームの対応するゲームプレイの結果に影響を与えるために使用されるユーザ入力コマンド２３６を配信及び取得してもよい。ユーザＵ０によって入力される入力コマンド２３６は、ユーザデバイス２３０からＧＣＳ２０１のゲームセッションマネージャ２８５に送信されてもよい。ゲームプレイを推進するために使用される入力コマンドを含む入力コマンド２３６は、タグコンテンツ（例えば、テキスト、画像、ビデオ記録クリップなど）を含むような、ユーザ対話型入力を含んでもよい。ゲーム入力コマンド及び任意のユーザプレイ測定基準（ユーザがゲームをプレイする時間の長さなど）が、ゲームネットワークユーザストアに記憶されてもよい。ビデオゲームについてのゲームプレイに関する選択情報は、ユーザに利用可能であり得る複数の特徴を有効にするために使用されてもよい。
【００６３】
ゲームプレイは、複数ユーザによってＧＣＳ２０１上で実行されるため、それらのゲームプレイから生成され記憶される情報は、特に、ゲームプレイがＧＣＳ２０１上で実行されるときに、任意の要求側ユーザが他のユーザのゲームプレイを体験することを可能にする。特に、ＧＣＳ２０１は、ＧＣＳ２０１を通してビデオゲームをプレイしているユーザのゲームプレイによって生成されるスナップショットを保存するように構成される。ユーザＵ０の場合、ユーザデバイスは、ユーザＵ０が、ゲームプレイ中にビデオゲームと戦うことを可能にするインタフェースを提供する。ユーザＵ０によるゲームプレイのスナップショットは、ＧＣＳ２０１上に生成及び保存される。
【００６４】
また、ユーザデバイス１３０は、ユーザＵ０が、スナップショットを使用してビデオゲームをプレビューすることを可能にするインタフェースを提供するように構成される。別のユーザが、既にそのポイントを通ってプレイし、スナップショットを生成したことがある限り、例えば、ゲームプレイまたは１人もしくは複数のユーザのスナップショット画像を見ることによって、ユーザＵ０は、ビデオゲーム内の任意のポイントにおけるビデオゲームの１つまたは複数の部分をプレビューすることが可能である。さらに、以下でより詳細に説明されるように、タイムライン内に提示されるスナップショット及び／またはスナップショット画像は、そのポイントにおいて必ずしもビデオゲームをプレイしなくても、様々なポイントにおけるビデオゲームへのプレビューをユーザに提供し得る。例えば、スナップショット及び／またはスナップショット画像を見ることによって、タイムラインは、ビデオゲーム内の特定のポイントにおいてビデオゲームが続く方向を示してもよい。方向が、デッドエンドまたは望ましくない結果をユーザにもたらす場合、ユーザは、スナップショットに対応するそれらのポイントに至るビデオゲーム内のパスを取ることを回避することを選んでもよい。一方、方向が、望ましい結果（例えば、戦利品、面白いバトルまたは対話など）をもたらす場合、ユーザは、スナップショットに対応するそれらのポイントに至る、ビデオゲーム内のパスを取ることを選んでもよい。加えて、ユーザデバイス１３０は、ユーザＵ０がビデオゲームを通過することを可能にするインタフェースを提供するように構成される。例えば、以下でより詳細に説明されるように、スナップショットは、ビデオゲーム中を進行している１人または複数のユーザによって取られるパスを示すノードグラフを生成するために使用されてもよい。ユーザは、必ずしもそれらのポイントでビデオゲームをプレイしなくても、ビデオゲームの様々なノードにおけるビデオゲームへのプレビューをユーザに提供するノードグラフにおいて、選択されたノードにおけるスナップショット及び／またはスナップショット画像を表示するように、ノードグラフとインタフェースしてもよい。ノードグラフ内の方向が、デッドエンドまたは望ましくない結果をユーザにもたらす場合、ユーザは、ノードに対応するそれらのポイントに至る、ビデオゲーム内のノードパスを取ることを回避することを選んでもよい。一方、ノードグラフ内の方向が、望ましい結果をもたらす場合、ユーザは、ノードに対応するこれらのポイントに至る、ビデオゲーム内のノードパスを取ることを選んでもよい。
【００６５】
さらに、ユーザデバイス１３０は、ユーザＵ０または別のユーザのゲームプレイにおいて生成されたスナップショットを使用して、ビデオゲーム内の選択されたポイントにジャンプすることを可能にするインタフェースを提供するように構成される。このようにして、ユーザＵ０は、任意の他のユーザのゲームプレイを体験すること、または自分自身のゲームプレイに戻って、レビュー及び／もしくは再プレイすることができる。即ち、要求側ユーザは、対応するゲームプレイのスナップショットによって、そのゲームプレイ内で使用され、かつそのゲームプレイに対応するキャラクタを使用して、ビデオゲームをプレイする。
【００６６】
図３〜８は、ユーザがビデオゲームをプレイしている状況内において説明される。概して、ビデオゲームは、ユーザ入力に応答する任意の対話型ゲームであってもよい。例示の目的でのみ、図３〜８に関して説明されるビデオゲームは、アドベンチャーゲームであってもよく、その中で、キャラクタは、世界中を旅しながら様々な障害及び課題に遭遇する。キャラクタは、ビデオゲームの中で、徒歩、または任意の機械化された手段を通して旅していてもよい。加えて、キャラクタは、ビデオゲーム中を始まりから終わりまで進行しているときに、遅れにつながり得る１つまたは複数の課題に遭遇してもよい。
【００６７】
明細書全体を通して、図３〜８の１つまたは複数のタイムラインにおける時間の使用は、ビデオゲームの進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度を示すことを意味しない。
【００６８】
図３Ａは、本開示の１つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムライン３１０ａの例示であり、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。さらに、タイムライン３１０ａは、１つの実施形態では、ＧＣＳ２０１のゲームサーバ２０５のゲームプロセッサ２１０のタイムライン生成器２１３によって生成される。タイムライン３１０ａは、ユーザによる以前のゲームプレイ、及び１人または複数の他のユーザのゲームプレイを素早くプレビューするために使用され得る。
【００６９】
ゲームプロセッサ２１０のゲーム実行エンジン２１１が、ビデオゲームのインスタンスをインスタンス化する間、ウィンドウ３５０ａ及びタイムライン３１０ａが表示される。例えば、ウィンドウ３００が、特定のビデオゲームについてのユーザのゲームプレイ中の描画画像３０５を示す。描画画像は、ビデオゲーム中のユーザの進行における現在のポイントに関連付けられる。図示するように、描画画像３０５において、ゲームプレイ内でユーザを表すキャラクタ３０６は、オートバイに乗っている。キャラクタ３０６は、山岳地域を通る道を走っており、落石３０７に遭遇している。ユーザのゲームプレイにおいて、キャラクタは、描画画像３０５に示されるように、短いスパイキーヘアの男性であるように選ばれている。このポイントでは、ユーザは、ビデオゲームの進行に不満を持っている可能性があり、落石を迂回して操作するための道を探索したい場合がある。例えば、ユーザは、ユーザが落石を通り過ぎるのを可能にする解決法を探索するため、及び描画画像３０５により表されるような、ユーザの現在の進行を越えるポイントにおける、ビデオゲーム内の将来の体験を探索するために、他のユーザのゲームプレイをプレビューしたい場合がある。これらの他のゲームプレイの探索は、タイムライン３１０ａ、より具体的には、スナップショット画像、及びタイムライン３１０ａに表示されるような、それらに対応するスナップショットを通して可能にされてもよい。先に紹介したように、スナップショットは、対応するスナップショットに関連するビデオゲーム内のポイントから始まる、対応するビデオゲームのインスタンスの実行を可能にする。特に、タイムラインまたはノードグラフ内のノードにおいて提示されるスナップショット画像のユーザによるさらなる選択は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が、対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することを可能にする。
【００７０】
タイムライン３１０ａは、ウィンドウ３５０ａに表示される。概して、１人または複数のユーザの１つまたは複数のゲームプレイのスナップショット画像を含む複数のタイムラインが、ウィンドウ３５０ａに表示されてもよい。図３Ａに示すように、ウィンドウ３５０ａは、単一のタイムライン３１０ａを表示してもよく、その場合に、タイムライン３１０ａは、ユーザによるゲームプレイのスナップショット画像、及び別のユーザによるゲームプレイのスナップショット画像を含む。スナップショット画像は、サムネイル及び／またはウィンドウに提示され、ユーザのゲームプレイ内のビデオゲームの現在の描画画像との関係で表示される。例えば、現在の描画画像３０５によって表されるビデオゲーム内のポイントの前に発生するスナップショット画像は、空のサムネイル３４０ｃの左に表示されてもよく、ポイントの後に発生するスナップショット画像は、サムネイル３４０ｃの右に表示されてもよい。図３Ｂに関してさらに説明されるように、ウィンドウ３５０ａは、また、１人または複数のユーザによるビデオゲームの１つまたは複数のゲームプレイのスナップショット画像を含む追加のタイムラインを表示してもよい。タイムラインは、ビデオゲームの進行を示し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度を示さない。
【００７１】
特に、タイムライン３１０ａは、ユーザによるゲームプレイについてのスナップショット画像を含む。例えば、ユーザによるゲームプレイ中にキャプチャされるスナップショットに対応する複数のスナップショット画像（例えば、画像３４０ａ、３４０ｂ、．．．）が、サムネイル及び／またはウィンドウ内のタイムライン３１０ａに表示される。スナップショット画像を一緒に見せることによって、ユーザのゲームプレイの短い履歴が与えられる。例えば、スナップショット画像３４０ａは、傾斜路または崖をオートバイで飛び降りているキャラクタ３０６を示している。ゲーム中のこのポイントにおいて、キャラクタ３０６は、スナップショット画像３４０ａの左上の隅に２つの丸で示されるように、２つの可能ライフを有する。その後、ビデオゲーム中のユーザの進行において、スナップショット画像３４０ｂは、オートバイに乗って森を通り、山に近づいているキャラクタ３０６（依然として２つの可能ライフを有する）を示している。ウィンドウ３００に示される現在の描画画像３０５は、キャラクタ３０６が山に到着し、落石３０７に近づいたことを示している。このポイントでは、キャラクタ３０６は、２つの可能ライフを有する。
【００７２】
描画画像３０５は、現在表示され、ビデオゲーム中のユーザの進行を表しているため、ユーザによる以前のゲームプレイを表すスナップショット画像のみが、表示される。これらのスナップショット画像は、典型的には、現在表示される描画画像３０５によって表されるポイントの前に発生する、ゲーム内のポイントを表す。例示の目的でのみ、キャラクタについての可能ライフの合計数は、ユーザについてのビデオゲームの進行のおおよその見積もりを与える。しかしながら、いくつかのビデオゲームは、ユーザがビデオゲームをプレイするときに、ユーザが前後に進行することを可能にしてもよい。任意の場合に、以前の描画画像に対応するスナップショット画像のみが、１つの実施形態において、ユーザのためのタイムライン３１０ａに表示されてもよい。これらのスナップショット画像は、タイムライン３１０ａ内の現在の描画画像３０５との関係で表示され、現在の描画画像３０５は、空のサムネイル３４０ｃによって表される。例えば、スナップショット画像は、空のサムネイル３４０ｃの左に表示されてもよい。さらに、ビデオゲーム内の第１のポイントにおいてキャプチャされる第１のスナップショット画像を、ビデオゲームのユーザの全体的な進行において第１のポイントの後に生じる第２のポイントで発生する第２のスナップショット画像の左に表示することによって、２つのスナップショット画像間で順序付けが達成され得る。別の実施態様では、サムネイル３４０ｃに、タイムライン３１０ａにおいてユーザの現在の進行を示すために、描画画像３０５が配置され得る。
【００７３】
現在の描画画像３０５の前に発生するビデオゲーム内のポイントを表すスナップショット画像は、現在の描画画像３０５の後に発生するビデオゲーム内のポイント、即ち、将来のポイントを表すスナップショット画像から、それらを区別するように表示されてもよい。１つの実施形態では、スナップショット画像は、グレーアウトされてもよい。即ち、現在の描画画像３０５の前に発生するポイントに対応するスナップショット画像は、ビデオゲームの進行において後で発生するポイントに対応するスナップショット画像よりも、低い輝度及び／または解像度で表示される。スナップショット画像をクロスハッチングで示す、またはスナップショット画像をぼかすなどの、他の実施形態がサポートされる。
【００７４】
さらに、タイムライン３１０ａは、別のユーザによるゲームプレイについてのスナップショット画像を含む。この他のユーザは、１つの実施形態では、ソーシャルメディアマネージャ２９５を通して発見される友達であってもよい。スナップショット画像は、また、ランダムなユーザ、またはビデオゲームでハイスコアを有するユーザなど高い関心のあるユーザの、ゲームプレイに対応してもよい。例示の目的でのみ、図３〜８に関して提供される例では、これらの他のユーザは、第１の友達Ｆ１、第２の友達Ｆ２、及び第３の友達Ｆ３などの、現在のユーザの友達と呼ばれる。第１の友達Ｆ１は、長い髪の女性として描かれるキャラクタ３０８をプレイしている。第２の友達Ｆ２は、頭全体に髪がある男性として描かれるキャラクタ３０９をプレイしている。第３の友達Ｆ３は、頭の禿げた男性として描かれるキャラクタ３０３をプレイしている。
【００７５】
特に、タイムライン３１０ａは、第２のユーザ（例えば、女性のキャラクタ３０８をプレイしている友達Ｆ１）によるゲームプレイについてのスナップショット画像を含む。例えば、第２のユーザによるゲームプレイ中にキャプチャされるスナップショットに対応する複数のスナップショット画像（例えば、画像３６０ｄ、３６０ｅ、３６０ｆ、．．．）が、サムネイル及び／またはウィンドウ内のタイムライン３１０ａに表示される。これらのスナップショット画像は、現在の描画画像３０５との関係で表示される。例えば、空のサムネイル３４０ｃの右に表示されるスナップショット画像３６０ｄ、３６０ｅ、及び３６０ｆは、現在の描画画像３０５の後の、ビデオゲーム内のポイントにおいて発生する。タイムライン３１０ａには示されないが、現在の描画画像の周辺または前の、ビデオゲーム内のポイントにおいて発生するスナップショット画像（例えば、スナップショット画像３６０ａ、３６０ｂ、及び３６０ｃ）もまた、任意選択で示されてもよく、図３Ｂのウィンドウ３５０ｂに表示されるタイムライン３１０ｂに関してさらに説明される。
【００７６】
スナップショット画像を一緒に見せることによって、現在の描画画像３０５の後に発生する将来のポイントにおける第２のユーザ（例えば、友達Ｆ１）のゲームプレイの短い履歴が与えられる。例えば、スナップショット画像３６０ｄは、川を渡る方法を考えており、３つの可能ライフを有するキャラクタ３０８を示している。ビデオゲームに沿ってさらに進行すると、キャラクタ３０８は、スナップショット画像３６０ｅにおいて、ここでは４つの可能ライフを有し、クマとバトルしている。ビデオゲームに沿ってなおもさらに進行すると、キャラクタ３０８は、スナップショット画像３６０ｆにおいて、ここでは５つの可能ライフを有し、砂漠を通って車を運転していることが示されている。
【００７７】
１つの実施形態では、タイムラインは、ビデオゲーム中のユーザによる進行、及び利用可能なスナップショット画像に依存して修正されてもよい。例えば、現在の描画画像３０５に対して（例えば、ユーザまたは他のユーザについての）遠すぎる過去に発生したスナップショット画像は、表示されなくともよく、（例えば、他のユーザについての）遠すぎる将来に発生するスナップショット画像もまた、表示されなくともよい。さらに、他のユーザが、変更及び／または置換されると、対応するスナップショット画像は、タイムライン内で更新される。
【００７８】
図３Ｂは、本開示の１つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示される複数のタイムラインの例示であり、タイムラインは、１人または複数のユーザのビデオゲームのゲームプレイのスナップショット画像を示す。タイムラインは、ウィンドウ３５０ｂに表示される。１つの実施形態では、ウィンドウ３５０ｂは、ユーザのゲームプレイにおける現在の描画画像３０５と共に表示される。例えば、タイムライン３１０ｂ、３２０、及び３３０は、１つの実施形態において、ウィンドウ３５０ｂに表示され、ＧＣＳ２０１のゲームサーバ２０５のゲームプロセッサ２１０のタイムライン生成器２１３によって生成される。タイムラインは、ユーザによる以前のゲームプレイ、及び１人または複数の他のユーザ（例えば、友達、ランダムなユーザ、関心のあるユーザなど）のゲームプレイを素早くプレビューするために使用され得る。
【００７９】
図示するように、タイムライン３１０ｂは、図３Ａに関して前述したように、ユーザによるゲームプレイのスナップショット画像（例えば、３４０ａ、３４０ｂ、．．．）を含む。これらのスナップショット画像は、図３Ｂに示されるようなサムネイルに表示されてもよく、現在の描画画像３０５との関係で配置される。例えば、これらのスナップショット画像は、前述したように、現在の描画画像３０５の左に表示され、概して第１のスナップショット画像が後で発生するスナップショット画像の左に位置して、配置される。
【００８０】
さらに、タイムライン３１０ｂは、第２のユーザ（例えば、女性のキャラクタ３０８をプレイしている第１の友達Ｆ１）によるゲームプレイ中にキャプチャされるスナップショットに対応する複数のスナップショット画像（３６０ａ、３６０ｂ、３６０ｃ、３６０ｄ、３６０ｅ、３６０ｆ、．．．）を含む。これらのスナップショット画像は、サムネイル内のタイムライン３１０ｂに表示され、前述したように、現在の描画画像３０５との関係で配置される。より詳細には、友達Ｆ１によるゲームプレイに対応し、現在の描画画像の周辺または前のビデオゲーム内のポイントにおいて発生するスナップショット画像（例えば、スナップショット画像３６０ａ、３６０ｂ、及び３６０ｃ）は、また、任意選択で、ユーザのスナップショット画像（例えば、３４０ａ、３４０ｂ）の下に含まれてもよい。現在の描画画像の前のビデオゲームの進行におけるポイントで発生するスナップショット画像（例えば、３６０ａ、３６０ｂ、．．．）は、空のサムネイル３４０ｃの左に配置されてもよい。ゲーム進行の標識として、スナップショット画像３６０ａ〜ｃは、キャラクタが２つの可能ライフを有することを示している。スナップショット画像３６０ｃは、現在の描画画像３０５と、ビデオゲームの進行のほぼ同じポイントにおいて発生し、空のサムネイル３４０ｃのほぼ下に位置する。例えば、スナップショット画像３６０ｃ及び現在の描画画像３０５の両方が、それぞれ２つの可能ライフを有する、対応するキャラクタを示す。さらに、前述したように、第１のスナップショット画像が後で発生するスナップショット画像の左に位置するように、タイムライン３１０ｂ内のスナップショット画像は、概して配置され得る。矢印３９９は、第２のユーザ、友達Ｆ１に関連するスナップショット画像にリンクしてもよい。
【００８１】
一緒に見せることによって、スナップショット画像は、第１の友達Ｆ１のゲームプレイの短い履歴を与える。例えば、友達Ｆ１のキャラクタ３０８は、まず、スナップショット画像３６０ａにおいて市街地の道路でオートバイに乗っていることが示されている。その後、ビデオゲーム中の友達Ｆ１の進行において、スナップショット画像３６０ｂは、オートバイに乗って森を通り、山に近づいているキャラクタ３０８（２つの可能ライフを有する）を示している。ビデオゲームに沿ってさらに進行すると、キャラクタ３０８は、スナップショット画像３６０ｃにおいて山道でオートバイに乗っている。例えば、友達Ｆ１のキャラクタ３０８は、ユーザのキャラクタ３０６が、描画画像３０５において現在遭遇している落石を迂回して操作した可能性がある。その後、キャラクタ３０８（３つの可能ライフを有する）が、スナップショット画像３６０ｄにおいて川に近づいていることが示されている。依然としてさらに進行すると、キャラクタ３０８（４つの可能ライフを有する）は、スナップショット画像３６０ｅにおいてクマとバトルしており、次いでその後、キャラクタ３０８（５つの可能ライフを有する）は、スナップショット画像３６０ｆにおいて、砂漠を通って車を運転していることが示されている。
【００８２】
ウィンドウ３５０ｂは、第２の友達Ｆ２などの別のユーザのゲームプレイに関連する別のタイムライン３２０を示す。図示するように、タイムライン３２０は、友達Ｆ２によるゲームプレイのスナップショット画像（３７０ａ、３７０ｂ、３７０ｃ、３７０ｄ、３７０ｅ、．．．）を含む。これらのスナップショット画像は、サムネイルに表示されてもよく、１つの実施形態では、現在の描画画像３０５との関係で配置される。例えば、現在の描画画像の前のビデオゲームの進行におけるポイントで発生するスナップショット画像（例えば、３７０ａ、３７０ｂ、．．．）は、空のサムネイル３４０ｃのほぼ左に配置される。これらのスナップショット画像は、前述のように、表示されるコンテンツをグレーアウトすることによって容易に識別されてもよい。スナップショット画像３７０ｃは、現在の描画画像３０５と、ビデオゲームの進行のほぼ同じポイントにおいて発生し、空のサムネイル３４０ｃのほぼ下に位置する。現在の描画画像の後のビデオゲームの進行におけるポイントで発生するスナップショット画像（例えば、３７０ｄ、３７０ｅ、．．．）は、空のサムネイル３４０ｃのほぼ右に配置される。さらに、前述したように、概して、第１のスナップショット画像が後で発生するスナップショット画像の左に位置するように、タイムライン３２０内のスナップショット画像は配置されてもよい。
【００８３】
一緒に見せることによって、スナップショット画像は、第２の友達Ｆ２のゲームプレイの短い履歴を与える。例えば、友達Ｆ２のキャラクタ３０９（２つの可能ライフを有する）は、まず、スナップショット画像３７０ａにおいて、川を歩いて渡っていることが示されている。その後、ビデオゲーム中の友達Ｆ２の進行において、スナップショット画像３７０ｂは、徒歩で森を通って横切り、より高い山脈に近づいているキャラクタ３０９を示している。なおもさらに進行すると、キャラクタ３０９（２つの可能ライフを有する）は、スナップショット画像３７０ｃにおいて、間違った山の頂上に登頂していることが示されている。さらに後で、キャラクタ３０９（４つの可能ライフを有する）は、スナップショット画像３７０ｄにおいて山の切り立った斜面をフリークライミングしていることが示され、その後さらに後で、スナップショット画像３７０ｅにおいて、ボートで湖を渡っていることが示されている。
【００８４】
ウィンドウ３５０ｂは、第３の友達Ｆ３などの別のユーザのゲームプレイに関連する別のタイムライン３３０を示している。図示するように、タイムライン３３０は、友達Ｆ３によるゲームプレイのスナップショット画像（３８０ａ、３８０ｂ、３８０ｃ、３８０ｄ、３８０ｅ、３８０ｆ、．．．）を含む。これらのスナップショット画像は、サムネイルに表示されてもよく、１つの実施形態では、現在の描画画像３０５との関係で配置される。例えば、現在の描画画像の前のビデオゲームの進行におけるポイントで発生するスナップショット画像（例えば、３８０ａ、３８０ｂ、．．．）は、空のサムネイル３４０ｃのほぼ左に配置される。これらのスナップショット画像は、前述のように、表示されるコンテンツをグレーアウトすることによって容易に識別されてもよい。スナップショット画像３８０ｃは、現在の描画画像３０５と、ビデオゲームの進行のほぼ同じポイントにおいて発生し、空のサムネイル３４０ｃのほぼ下に位置する。現在の描画画像の後のビデオゲームの進行におけるポイントで発生するスナップショット画像（例えば、３８０ｄ、３８０ｅ、３８０ｆ、．．．）は、空のサムネイル３４０ｃのほぼ右に配置される。さらに、前述したように、概して、第１のスナップショット画像が後で発生するスナップショット画像の左に位置するように、タイムライン３２０内のスナップショット画像は配置されてもよい。
【００８５】
一緒に見せることによって、スナップショット画像は、第３の友達Ｆ３のゲームプレイの短い履歴を与える。例えば、友達Ｆ３のキャラクタ３０３（２つの可能ライフを有する）は、まず、スナップショット画像３８０ａにおいて、オートバイに乗って森を通っている。その後、ビデオゲーム中の友達Ｆ３の進行において、スナップショット画像３８０ｂは、川を歩いて渡っているキャラクタ３０３（２つの可能ライフを有する）を示している。なおもさらに進行すると、キャラクタ３０３９（３つの可能ライフを有する）は、スナップショット画像３８０ｃにおいて、カヤックで滝を下っていることが示されている。さらに後で、キャラクタ３０３は、スナップショット画像３８０ｄにおいて、モータボートで湖を渡っていることが示され、次いで、スナップショット画像３９０ｅにおいて、キャラクタ３０３は、ボートを波止場に着けていることが示されている。進行においてさらに後で、キャラクタ３０３（５つの可能ライフを有する）は、スナップショット画像３８０ｆにおいて、飛行機で次の目的地へ飛んでいることが示されている。
【００８６】
異なるタイムラインとして参照されるが、ウィンドウ内のタイムラインは全て、ビデオゲームをプレイしているユーザに属する１つのタイムラインとして参照され得る。加えて、他のユーザに関連するタイムライン（例えば、タイムライン３２０、３３０、及び３１０の一部）は、１つの実施形態において、新たなユーザのタイムラインと置換されてもよい。このようにして、ローテーションするユーザのスナップショット画像が、ユーザに示されてもよい。別の実施形態では、より多くのタイムラインが示されてもよく、または、明確化のためにより少ない数のタイムラインが示されてもよい。
【００８７】
さらに別の実施形態では、ウィンドウ３５０ａまたは３５０ｂ内のタイムラインは、完全に異なるゲームまたはコンテンツに関連するスナップショット画像を表示してもよい。例えば、タイムラインは、ユーザの気を引いて、別のビデオゲームをプレビューさせ試させるため、または他のコンテンツを見させるために示されてもよい。別の実施形態では、１人または複数のユーザの１つまたは複数のタイムラインが、ビデオゲームをプレイすることに関心のある新たなユーザに示されてもよい。新たなユーザは、必ずしもビデオゲームをプレイしていなくともよいが、ビデオゲームをプレイしている他人のゲームプレイをプレビューすることに関心がある。その他の場合、新たなユーザは、ビデオゲームを始めたばかりであってもよい。例示として、ゲーム世界をプレビューするための方法は、本開示の１つの実施形態による、線形または非線形の進行を有するビデオゲームにおいて実施されてもよい。特に、方法は、ビデオゲームをプレイしている複数のユーザの複数のゲームプレイから生成される、複数のスナップショットをキャプチャすることを含む。前述したように、各スナップショットは、スナップショットがキャプチャされたビデオゲーム内の場所などの、そのスナップショットに対応するビデオゲーム内のポイントから始まる、ビデオゲームのインスタンスの実行を可能にする。方法は、第１のユーザの第１のタイムラインを表示のために生成することであって、第１のタイムラインが、ビデオゲーム中を進行する第１のユーザのゲームプレイの複数の第１のスナップショット画像を含む複数の第１のサムネイルを含む、生成することを含む。方法は、他のタイムラインの提示を含んでもよい。例えば、方法は、第２のユーザの第２のタイムラインを表示のために生成することであって、第２のタイムラインが、ビデオゲーム中を進行する第２のユーザのゲームプレイの複数の第２のスナップショット画像を含む複数の第２のサムネイルを含む、生成することを含んでもよい。
【００８８】
実施形態において、１人または複数のユーザについて生成されるタイムラインが、線形の進行、複数の線形の進行、非線形の進行、またはそれらの組み合わせを有するビデオゲームに関連付けられてもよい。例えば、線形の進行を有するビデオゲームでは、第１のポイントが、対応する線形進行において第２のポイントの前にあるように、ビデオゲーム内のポイントが、互いに対して線形に発生してもよい。分岐点は、２つ以上の線形の延長部分を提示してもよく、そのそれぞれが、それ自体の線形進行に関連付けられる。他の実施形態では、非線形進行を有するビデオゲームにおいては、ビデオゲームの進行に関して非線形であるため、ビデオゲーム内のポイントが互いにいかなる関係も有しなくともよい。例えば、非線形のビデオゲームは、世界の異なる部分または異なる全世界を探索するビデオゲームのように、互いにいかなる関係もなしに並行して動作する複数の筋書きを有してもよく、主要な目標を有しても有しなくてもよい。その場合、特定のユーザについて示されるタイムラインが、ユーザが関与する同一の筋書きに対応してもよく、または他の筋書きに対応してもよい。さらに、探索されている世界の一部または探索されている全世界においてでさえも、対応する筋書きが非線形の形式で生成され得るように、筋書きは、互いにいかなる関係もなしに動作してもよい。非線形のビデオゲームの場合、別のプレーヤついての特定のタイムラインに示されるスナップショットは、ユーザについての現在の描画画像、ユーザについてのタイムライン、または他のプレーヤについてのタイムラインとの関係で、任意に配置されてもよい。さらなる他の実施形態では、ビデオゲームは、線形及び非線形の部分を含んでもよい。例えば、世界の異なる部分または異なる全世界を非線形方式で探索するビデオゲームの場合、世界の特定部分または１つの全世界の中での探索は、線形の進行の後に続いてもよい。
【００８９】
図４Ａは、本開示の１つの実施形態による、ウィンドウ３５０ａに提示されるタイムライン３１０ａの例示であり、タイムライン３１０ａは、図３Ａにおいて最初に紹介され、少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示し、スナップショットの選択が、スナップショット画像の拡大図を可能にする。前述したように、ウィンドウ３００は、ユーザによるビデオゲームのゲームプレイの現在の描画画像３０５を示す。タイムライン３１０ａは、現在の描画画像３０５の前に発生するビデオゲームの進行内のポイントにおける、（キャラクタ３０６をプレイしている）ユーザによるゲームプレイのスナップショット画像（３４０ａ、３４０ｂ、．．．）を含む。タイムライン３１０は、現在の描画画像３０５の後に発生するビデオゲームの進行内のポイントにおける、別のユーザ（例えば、キャラクタ３０８をプレイしている友達Ｆ１）によるゲームプレイのスナップショット画像（３６０ｄ、３６０ｅ、３６０ｆ、．．．）も含む。
【００９０】
より詳細には、スナップショット画像は、サムネイルを介してタイムライン３１０ａに提示される。したがって、サムネイルの大きさによっては、描画画像が、多くの詳細を示すには小さすぎることがある。ユーザは、拡大のためにスナップショットを選択してもよい。例えば、ユーザは、１つの実施形態では、スナップショット画像３６０ｅを提示しているサムネイル上でカーソル４９０ａを回転させてもよい。表示されているスナップショット画像にタッチスクリーン上でタッチするなどの他の方法が、拡大のためのスナップショット画像の選択に対してサポートされる。ウィンドウ４１０は、選択されたサムネイルのほぼ同一の領域に生成され、表示される。ウィンドウ４１０は、描画されたスナップショット画像３６０ｅを表示し、その場合に、ウィンドウ４１０は、スナップショット画像３６０ｅのより良好なビューをユーザにもたらすのに十分な大きさのものである。
【００９１】
明確化のため、スナップショット画像３６０ｅの引き伸ばし画像が、ボックス４２０内に提示される。しかしながら、１つの実施形態では、ウィンドウ４１０及び／またはスナップショット画像３６０ｅのさらなる選択を通して、ボックス４２０が、ウィンドウ４１０に提示されるものよりもさらに大きなスナップショット画像３６０ｅを示すウィンドウとして表示されてもよい。前述したように、スナップショット画像３６０ｅは、別のユーザ（例えば、女性のキャラクタ３０８をプレイしている友達Ｆ１）のゲームプレイに関連付けられ、クマに遭遇しているキャラクタ３０８を示している。タイムライン３１０ａに提示されるスナップショット画像をスクロールすること、及び拡大された画像を見ることによって、ユーザは、友達Ｆ１のゲームプレイをプレビューすることができる。このようにして、タイムライン３１０ａ及び／またはノードグラフ（以下で説明する）内のノードにおいて提示される選択されたスナップショット画像の、ユーザによるさらなる選択によって、ゲームプロセッサ２１０のジャンプ実行エンジン２１６は、対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することが可能となる。例えば、ユーザは、別のユーザ（例えば、友達Ｆ１）のゲームプレイを体験してもよく、または自分自身のゲームプレイに戻って、再体験及び／または再プレイしてもよい。
【００９２】
図４Ｂは、本開示の１つの実施形態による、ウィンドウ３５０ｂに提示される１つまたはタイムラインの例示であり、そのそれぞれが、少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示し、スナップショットの選択が、スナップショット画像の拡大図を可能にする。図４Ｂに示されるタイムラインは、図３Ｂに関して前述されており、タイムライン３１０ｂ、３２０、及び３３０を含む。特に、タイムライン３１０ｂは、現在の描画画像３０５の前に発生するビデオゲームの進行内のポイントにおける、キャラクタ３０６をプレイしているユーザによるゲームプレイのスナップショット画像を含む。タイムライン３１０ｂは、現在の描画画像３０５の前、ほぼ同時、及び後に発生するビデオゲームの進行内のポイントにおいて、キャラクタ３０８をプレイしている友達Ｆ１によるゲームプレイ中にキャプチャされるスナップショットに対応するスナップショット画像をさらに含む。スナップショット画像は、１つの実施形態では、サムネイル内に提示される。タイムライン３２０は、現在の描画画像３０５の前、ほぼ同時、及び後に発生するビデオゲームの進行内のポイントにおいて、キャラクタ３０９をプレイしている友達Ｆ２によるゲームプレイ中にキャプチャされるスナップショットに対応するスナップショット画像（３７０ａ、３７０ｂ、３７０ｃ、３７０ｄ、３７０ｅ、．．．）を含む。タイムライン３３０は、現在の描画画像３０５の前、ほぼ同時、及び後に発生するビデオゲームの進行内のポイントにおいて、キャラクタ３０３をプレイしている友達Ｆ３によるゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像を含む。図４Ｂに示すように、タイムライン３２０のためのスナップショット画像との対話についてさらに説明され、したがって、タイムライン３１０ｂ及び３３０内のスナップショット画像は、理解を容易にするためにラベル付けされていない。
【００９３】
より詳細には、スナップショット画像は、サムネイルを介してタイムライン３１０ｂ、３２０、及び３３０に提示される。したがって、サムネイルの大きさによっては、描画画像は、多くの詳細を示すには小さすぎることがある。ユーザは、拡大のためにタイムラインのうちのいずれかのスナップショットを選択してもよい。図４Ａは、ユーザに関連するタイムラインにおけるスナップショット画像の選択を示し、図４Ｂは、友達に対応するタイムラインのうちの１つにおける、拡大のためのスナップショット画像の選択を示す。例えば、ユーザは、１つの実施形態では、タイムライン３２０においてスナップショット画像３７０ｄを提示しているサムネイル上でカーソル４９０ｂを回転させてもよい。表示されているスナップショット画像にタッチスクリーン上でタッチするなどの他の方法が、拡大のためのスナップショット画像の選択に対してサポートされる。拡大されたウィンドウ４６０は、選択されたサムネイルのほぼ同一の領域に生成され、表示される。ウィンドウ４６０は、描画されたスナップショット画像３７０ｄを表示し、その場合、ウィンドウ４６０は、スナップショット画像３７０ｄのより良好なビューをユーザにもたらすのに十分な大きさの（例えば、対応するサムネイルよりも大きい）ものである。
【００９４】
明確化及び理解のために、スナップショット画像３７０ｄの引き伸ばし画像が、ボックス４６５内に提示される。しかしながら、１つの実施形態では、ウィンドウ４６０及び／またはスナップショット画像３７０ｄのさらなる選択を通して、ボックス４６５が、ウィンドウ４６０に提示されるものよりもさらに大きなスナップショット画像３７０ｄを示すウィンドウとして表示されてもよい。前述したように、スナップショット画像３７０ｄは、友達Ｆ２のゲームプレイに関連付けられ、切り立った岩壁をフリークライミングで上っているキャラクタ３０９を示している。タイムライン３２０に提示されるスナップショット画像をスクロールすること、及び拡大された画像を見ることによって、ユーザは、友達Ｆ２のゲームプレイをプレビューすることができる。このようにして、タイムライン３２０またはユーザにより対応するノードグラフ（以下でさらに詳細に説明する）内のノードにおいて提示される選択されたスナップショット画像の、ユーザによるさらなる選択によって、ゲームプロセッサ２１０のジャンプ実行エンジン２１６は、対応するスナップショットにアクセスし、選択されたスナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、選択されたスナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することが可能となる。
【００９５】
図５Ａは、ビデオゲームのゲームプレイのノードグラフ５３０の例示であり、ノードグラフは、図３Ｂにおいて最初に紹介されたウィンドウ３５０ｂ内のタイムライン３１０ｂ、３２０、及び３３０と共に、ユーザによるビデオゲームのゲームプレイ中に表示される。特に、タイムライン３１０ｂは、ポイントにおいてキャラクタ３０６をプレイするユーザのゲームプレイのスナップショット画像、及び別のユーザ（例えば、キャラクタ３０８をプレイする友達Ｆ１）のゲームプレイのスナップショット画像を示し、タイムライン３２０は、キャラクタ３０９をプレイする友達Ｆ２によるゲームプレイのスナップショット画像を示し、タイムライン３３０は、キャラクタ３０３をプレイする友達Ｆ３によるゲームプレイのスナップショット画像を示している。タイムラインのそれぞれにおけるスナップショット画像は、前述したように、現在の描画画像３０５（例えば、空のサムネイル３４０ｃによって表されるような）との関係で提示される。ウィンドウ３００は、また、ユーザによるビデオゲームのゲームプレイの現在の描画画像３０５を示す。
【００９６】
図５Ａに示されるように、スナップショット画像３６０ｅは、タイムライン３１０ｂでの拡大のために（例えば、対応するサムネイルの対話を通して）選択される。スナップショット画像３６０ｅは、現在の描画画像３０５の後に（例えば、将来）発生する、ゲーム内のポイントにおいて友達Ｆ１のゲームプレイに関連付けられる。特に、ユーザは、１つの実施形態では、タイムライン３１０ｂにおいてスナップショット画像３６０ｅを提示しているサムネイル上でカーソル５９０ａを回転させてもよい。表示されているスナップショット画像にタッチスクリーン上でタッチするなどの他の方法が、拡大のためのスナップショット画像の選択に対してサポートされる。ウィンドウ４１０は、前述したように、拡大されたスナップショット画像３６０ｅを示す。
【００９７】
さらに、ノードグラフ５３０は、ウィンドウ５１０に提示される。１つの実施形態では、ノードグラフ５３０は、キャラクタがビデオゲーム中のユーザの進行として選び得る様々なパスに対応する複数のノードを含む。１つの実施形態では、ノードグラフ５３０は、図５Ｂにおいてさらに説明されるように、ビデオゲームのノード全てを示すユニバーサルグラフとして、ウィンドウ５１０に提示されてもよい。１つの実施形態では、ノードグラフ５３０は、ユニバーサルグラフのノードのサブセットを含むように提示されてもよく、それは、図５Ｃに関してさらに説明されるように、特に関心のあるノードを示している。例えば、ノードのサブセットは、１つまたは複数のタイムラインに表示されるスナップショット画像に対応してもよい。
【００９８】
ウィンドウ５１０は、右下の隅に示されているが、ウィンドウ５１０は、ウィンドウ３００のどこにでも位置し得ると理解される。さらに、ウィンドウ５１０は、見るのに適した情報を提供するのに十分な大きさのものであってもよい。さらなる選択によって、ウィンドウ３００内またはフルスクリーン上に、拡大されたウィンドウとしてウィンドウ５１０を表示してもよい。
【００９９】
図示するように、ノードグラフ５３０内のノード５７２は、ユーザが、拡大のためにタイムライン３１０ａ内のスナップショット画像３６０ｅを選択することに応答して、自動的にハイライト（例えば、肉太化、拡大、着色など）されてもよい。ノード５７２は、スナップショット画像３６０ｅの位置にほぼ対応し、スナップショット画像３６０ｅについてのビデオゲームの全世界の中の状況を与える。即ち、ユーザはスナップショット画像３６０ｅに関心があるため、タイムライン３１０ｂ内のスナップショット画像３６０ｅの選択を通して、ウィンドウ４１０が、スナップショット画像３６０ｅの拡大図を示して提示され、ノード５７２は、ノードグラフ５３０内でハイライトされる。ノード５７２は、また、ユーザによるノードグラフ５３０内でのノードの手動選択を通してハイライトされてもよい。
【０１００】
要約すると、ノードグラフ５３０は、自動的に、またはユーザの要求に応答して、ウィンドウ５１０に提示されてもよく、ノードグラフ５３０は、タイムライン３１０ａに提示されるスナップショット画像に対応するノードのサブセットを含む。さらに、ノード５７２は、提示され、ハイライトされてもよく、ノード５７２は、スナップショット画像３６０ｅに対応するビデオゲームのゲームプレイ内のポイントのおおよその位置を示している。加えて、ノード３７２に対応するスナップショット画像３６０ｅが、ウィンドウ５２０に提示されてもよく、その場合、ウィンドウ５２０は、ウィンドウ４１０よりも大きく、スナップショット画像３６０ｅのさらに大きなビューを示してもよい。
【０１０１】
このようにして、ユーザには、ビデオゲームの複数次元ビューが提示される。例えば、ユーザには、描画画像３０５によって、自分自身のゲームプレイの現在のビューが提示される。ユーザのゲームプレイ（例えば、描画画像３０５及びユーザタイムライン内のスナップショット画像を通して）もまた、ビデオゲームの進行の様々なポイントの至る所の他のユーザのゲームプレイの短いプレビューを示す、１人または複数のユーザの１つまたは複数のタイムラインの横に提示される。スナップショット画像は、タイムライン内のスナップショット画像に関連するビデオゲームを通るパス、またはビデオゲーム内の全ての可能なパスを示すノードグラフと共に提示されてもよい。
【０１０２】
図５Ｂは、本開示の１つの実施形態による、ビデオゲームにおいて利用可能な全ての可能なパスを示すユニバーサルノードグラフ５５０またはノードツリーの例示である。ユニバーサルノードグラフ５５０は、図５Ａのウィンドウ５１０に表示され得る。例えば、ビデオゲームは、ノード５５１によって示される開始ポイント、及びノード５５２によって示される終了ポイントを含んでもよい。１つの終了ポイントが示されているが、概して、ユニバーサルノードグラフは、１つまたは複数の終了ポイントを有してもよく、ビデオゲームを終了するための１つまたは複数のオプションを表している。さらに、ビデオゲームは、対応するユニバーサルノードグラフにおいて表される１つまたは複数の開始ポイントを有してもよい。
【０１０３】
ユニバーサルノードグラフ５５０は、キャラクタがビデオゲーム中のユーザ進行として選び得る、様々な論理パス（明細書では「パス」とも呼ばれる）を定義する複数のノード（例えば、論理ノード）を含む。例えば、論理パス５１１は、ノード５０２と５０３との間に定義される。加えて、ユニバーサルノードグラフ５５０は、ノードのサブセットも含んでもよい。例えば、ユニバーサルノードグラフ５５０のサブセットであるノードグラフ５３０は、図５Ｂのタイムライン３１０ｂに表示されるスナップショット画像に対応するノード及びパスを含む。ノードグラフ５３０は、図５Ａのウィンドウ５１０にも示され得る。
【０１０４】
複数の論理パスは、ノードからノードへ線形にユニバーサルグラフ５５０を通って進行するように構成され得る。例えば、ユーザは、ノード５０１から５０３（例えば、ノード５１０からノード５０２、次いでノード５０３）の間論理パス５１４及び５１１に沿って、ノードグラフ５３０を通って線形に移動する。即ち、ノード５０１とノード５０３との間を横断するとき、他の論理パスは取られ得ない。
【０１０５】
加えて、複数の論理パスは、ノードからノードへ非線形で進行するように構成されてもよい。例えば、ユーザは、論理パス５１１に沿ってノード５０３に到達するとき、ノードグラフ５５０を通って非線形で移動する。特に、２つのオプションが、ノード５０３において利用可能であり、その場合に、第１のオプションでは、キャラクタはパス５１２を取ってもよく、第２のオプションでは、キャラクタはパス５１３を取ってもよい。異なる結果が、２つの異なるパスを取ることから生じ得る。
【０１０６】
ビデオゲームの進行は、概して、開始ポイント５５１に関連する時間またはマーク５２１において開始し、終了ポイント５５２に関連する時間またはマーク５２２において終了する、ユニバーサルタイムライン５２９によって定義され得る。タイムライン５２９における時間の使用は、ビデオゲームの進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度を示すことを意味しない。ユーザが、ノードからノードへユニバーサルノードグラフ５３０を通って移動すると、それを表す時間またはマークは、タイムライン５２９上に位置し得る。例えば、タイムライン５２９において、ノード５０１はマーク５２３として表されてもよく、ノード５０３はマーク５２４として表されてもよい。進行は、タイムライン５２９に沿って左から右へと測定され得る。例示として、ノード５０１は、ビデオゲームの進行においてノード５０３の前に発生する。したがって、ノード５０１を表すマーク５２３は、ノード５０３を表すマーク５２４の左に表示される。さらに、進行は、前述したように、ユーザに関連する様々なキャラクタ値を通して、タイムライン５２９及びノードグラフ５５０に関連してさらに示されてもよい。例えば、進行は、何個の可能ライフがキャラクタに利用可能であるか、またはどのくらいのポイントまたは現金をキャラクタが蓄積しているかによって測定されてもよい。
【０１０７】
図５Ｃは、本開示の１つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるスナップショットノード階層を示す、図５Ａにおいて最初に紹介されたノードグラフ５３０の拡張された例示である。１つの実施形態では、ノードグラフ５３０は、ユーザによるビデオゲームのゲームプレイ中に、１つまたは複数のタイムライン（例えば、タイムライン３１０ｂ、３２０、及び３３０）と共に表示される。例えば、ノードグラフ５３０は、図５Ａのウィンドウ５１０に表示されてもよく、またはさらに大きなウィンドウに表示されてもよい。ウィンドウ５１０に表示されるノードグラフ５３０の拡張ビューは、例示として図５Ｃに示されている。ウィンドウ３５０ｂの輪郭は、スナップショット画像及びノードグラフ５３０内の対応するスナップショットノードを参照するために、図５Ｃにおいて提示される。
【０１０８】
特に、スナップショットノードは、スナップショットがキャプチャされたビデオゲームのゲームプレイ中のポイントに対応する。概して、スナップショットは、ユニバーサルノードグラフ５５０のノードにおいてキャプチャされ得る。したがって、スナップショットノードは、ユニバーサルノードグラフ５５０内のノードと整列させてもよい。しかしながら、スナップショットが、ユニバーサルグラフの２つのノード間（例えば、論理パスの中間）でキャプチャされているときなどに、いくつかのスナップショットノードは、ユニバーサルグラフ５５０内のノードと整列させなくともよい。例えば、スナップショットノード５６１は、ユニバーサルノードグラフ５５０内の（ノード５６０及び５６２に対応する）２つのノード間でキャプチャされてもよい。
【０１０９】
ノードグラフ５３０は、対応するユーザのゲームプレイ中にキャラクタが取った、様々な実際のパスを定義する、複数のスナップショットノードを含む。例えば、パス５７９は、スナップショットノード５６０と５６１との間に定義される。パス５７９は、ユーザのゲームプレイ及び友達Ｆ１のゲームプレイにおいて取られているように示されている。ノードグラフ５３０は、１人または複数のユーザのゲームプレイにおいて定義されるように、線形及び非線形のパスのうちの１つまたは両方を示してもよい。
【０１１０】
ノードグラフ５３０は、１つの実施形態において、ウィンドウ３５０に表示されるタイムライン３１０ｂ、３２０、及び３３０に示されるスナップショット画像に対応する。例えば、スナップショットノード５６２は、ユーザの現在の描画画像３０５を表すボックス３４０ｃに対応し、スナップショットノード５０７は、友達Ｆ１のスナップショット画像３６０ｅに対応し、スナップショットノード５９５は、友達Ｆ２のスナップショット画像３７０ａに対応し、スナップショットノード５６５は、友達Ｆ３のスナップショット画像３８０ｄに対応する。このようにして、ユーザには、タイムライン内のスナップショット画像及び現在の描画画像、ならびにノードグラフ５３０内のスナップショットノードなど、関連するビデオゲームの少なくとも２つ以上のビューが提示される。現在の描画画像３０５（ノードグラフ５３０内のその位置と共に）と他のスナップショット画像（及びそれらのノードグラフ５３０内の位置）を相互参照することによって、ユーザは、現在の描画画像に関連するビデオゲーム内のポイント周辺のユーザにはどのパスが利用可能であるかを理解することが可能である。したがって、ユーザは、ビデオゲームのユニバーサルノードグラフ５５０及びノードグラフ５３０内でキャラクタ３０６を方向付けることができる。このようにして、ユーザは、ゲーム内の１つのポイントから別のポイントへ通過することができる。１つの実施形態では、スナップショットノードが図５Ｃに示されるが、ノードグラフ５３０は、ユニバーサルノードグラフ５５０によって定義されるような論理パスを定義するノードを含んでもよい。
【０１１１】
より詳細には、キャラクタ３０６をプレイしているユーザによって取られるパスは、細かい解像度で点が打たれている線Ａによって示される。例えば、ユーザは、スナップショットノード５６０、５６１、及び５６２間を横断している。スナップショットノード５６２から、ユーザのキャラクタ３０６は、スナップショットノード５６２からスナップショットノード５６３及び５６４を通って上に進む第１のルート、ならびにスナップショットノード５６２からスナップショットノード５６５を通って５６９へ（例えば、ノード５６５からノード５６６、ノード５６７、ノード５６８、及びノード５６９へ）下方向に進む第２のルートを取っている。友達Ｆ１のキャラクタ３０８によって取られるパスは、実線Ｂによって示される。例えば、友達Ｆ１のキャラクタ３０８は、スナップショットノード５６０、５６１、５６２、５６５、５７０、５７１、５７２、５７３、及び５７４によって定義されるパスに沿って進んでいる。また、友達Ｆ２のキャラクタ３０８によって取られるパスは、粗い解像度で点が打たれている線Ｃによって示される。例えば、友達Ｆ２のキャラクタ３０８は、スナップショットノード５９５、５９６、５９７、５９８、５９９、及び５６９によって定義されるパスに沿って進んでいる。友達Ｆ３のキャラクタ３０３によって取られるパスは、線Ｄによって示され、キャラクタ３０３が、スナップショットノード５６０、５８１、５８２、５８３、５６５、５８４、５８５、及び５６８によって定義されるパスに沿って進んでいることを示す。
【０１１２】
ビデオゲームの進行において、ユーザは、スナップショットノード５６２を越えて、またはスナップショットノード５６２の将来に発生するパスを取っており、それは、現在の描画画像３０５に関連するビデオゲーム内のポイントに対応するが、スナップショットノード５６２に戻っている。例えば、スナップショットノード５６２を越えて取られ、スナップショットノード５６４において終了する第１のルートは、デッドエンドに到達している可能性がある。また、スナップショットノード５６２を越えて取られ、ノード５６９において終了する第２のルートは、ユーザにとって不満足である可能性がある。ユーザに関連する現在の描画画像３０５を越えて発生するスナップショットノードに対応するスナップショット画像は、タイムライン３１０ｂには示されていないが、他の実施形態では示されてもよい。
【０１１３】
ユーザは、このエリア内のビデオゲームの刺激的な部分（クマに遭遇すること）についての噂を聞いた可能性があるが、これまでにそのアクションの機会を失っているため、ユーザは、ゲーム進行においてノード５６２に戻っている。ユーザは、ノード５６２を通って刺激的な部分に何とかして到達されると信じている。本開示の実施形態は、他のユーザのゲームプレイをプレビューすること、及びビデオゲームの刺激的な部分に到達するためにビデオゲーム内で取る潜在的なルートを展開することによって、ユーザがビデオゲームを通る代替パスを発見するための方法を提供する。例えば、ユーザは、タイムライン３１０ｂにおいてキャラクタ３０８をプレイする友達Ｆ１のスナップショット画像をプレビューし、クマとの遭遇がスナップショット画像３６０ｅに対応するスナップショットノード５０７に関連して発生することを発見してもよい。参照のために、スナップショット画像３６０ｅは、ボックス５０９に示される。タイムライン及び／またはノードグラフ内に提示されるスナップショット画像の導入がなければ、ユーザは、関心のあるこれらのエリアをプレビューし、及び／または発見するのに大変な苦労をすることとなる。
【０１１４】
特に、ユーザは、タイムライン３１０ｂ内のスナップショット画像を見ることによって、スナップショット画像３６０ｅを発見したか、またはノードグラフ５３０を探索することによって、それを発見した可能性がある。例えば、タグ５０７は、図５Ｃのノードグラフ５３０内のスナップショットノード５７２の隣に示されており、それが、ユーザの注意を引いた可能性がある。ノードグラフ５３０内のノード５７２と対話することによって、スナップショット画像３６０ｅのビューが、図５Ａのウィンドウ５２０などにおいてユーザに提示されてもよい。また、ノードグラフ５３０内でスナップショットノード５７２を選択することによって、タイムライン３１０ｂ内の対応するスナップショット画像３６０ｅは、注意を引くためにハイライト（例えば、肉太化）されてもよい。このようにして、ユーザは、前述したように、スナップショット画像３６０ｅの拡大バージョンを見るために、対応するサムネイル上で回転させてもよい。別の実施態様では、ノードグラフ５３０が、それ自体の優先ウィンドウ（例えば、フルスクリーン、またはオーバレイされたウィンドウ３００）に提示される場合、スナップショットノード５７２との対話は、別のウィンドウ（図示しない）にスナップショット画像３６０ｅを取り出してもよい。
【０１１５】
友達Ｆ１のゲームプレイ及びノードグラフ５３０をプレビューした後、ユーザは、スナップショット画像３６０ｅに対応するビデオゲーム、より詳細には、友達Ｆ１のゲームプレイをさらに探索したい場合がある。前述したように、本開示の実施形態は、ユーザが友達Ｆ１のゲームプレイにジャンプすることを可能にする。特に、タイムライン３１０ｂまたはノードグラフ５３を介したスナップショット画像３６０ｅの、ユーザによるさらなる選択によって、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が、スナップショット画像３６０ｅに対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショット及びそのスナップショット画像３６０ｅに対応するビデオゲーム内のポイント（ジャンプポイントとしてここでは識別される）において始まるビデオゲームを実行することが可能となる。このようにして、ユーザは、友達Ｆ１のゲームプレイを通して、ノード５０７（クマとの遭遇）においてビデオゲームを十分に体験し得る。即ち、ユーザは、ジャンプノード５７２における友達Ｆ１のキャラクタ３０８にジャンプし、（スナップショット画像３６０ｅに対応する）ジャンプノード５７２に対応するビデオゲームのポイントにおいて始まる、友達Ｆ１のゲームプレイのインスタンス化をプレイする。したがって、ユーザは、最も刺激的な部分におけるゲームプレイにジャンプすることができる。
【０１１６】
ユーザは、友達Ｆ１のゲームプレイを体験した後、友達Ｆ１のゲームプレイによって以前にキャプチャされた同じスナップショットノード５７２（クマとの遭遇）まで通過するように試みることを決定してもよい。ノードグラフ５３０は、ユーザの現在の位置からスナップショットノード５７２に到達するために、友達Ｆ１によって取られたルートへのビューを提供する。ユーザの現在の位置は、現在の描画画像３０５に関連付けられる、ノード５６２である。例えば、ノードグラフは、ノード５６２とスナップショットノード５７２との間の移動が、スナップショットノード５６５及び５７０を介して可能であることを示している。
【０１１７】
図５Ｄは、本開示の１つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるスナップショットノード階層を示す、ノードグラフ５４０の拡張された例示である。ノードグラフ５４０は、図５Ｃのノードグラフに関連し得るが、非線形進行の部分を有するビデオゲームにおいて使用されるタイムラインを例示するために使用される。例えば、レベル内のゲームプレイは、別のレベル内のゲームプレイに無関係であってもよい。また、単一レベル内の異なるユーザによるゲームプレイもまた、ビデオゲームの進行に関しては互いに無関係であってもよい。
【０１１８】
ノードグラフ５４０において示されるように、ビデオゲームは、ビデオゲーム内でプレイ可能な４つの異なるレベルを含んでもよい。レベル間の横断は、ビデオゲームにおいて可能である。例えば、ユーザ、友達１、及び友達２のゲームプレイは、４つのレベル全てを横断する。友達３のゲームプレイは、３つのレベルを横断する。友達４のゲームプレイは、２つのレベルのみを横断する。友達５のゲームプレイは、レベル３及び４を横断する。図５Ｄに示すように、ビデオゲームは、任意のレベルで開始されてもよい。例えば、友達４のゲームプレイは、レベル２で開始し、レベル２に留まっている。友達５のゲームプレイは、レベル３で開始し、いかなる他のレベルへも拡張することなく、レベル４に続いている。いくつかのゲームプレイは、オーバラップし、線形進行のある部分を示し得る（例えば、ユーザ及び友達１のゲームプレイ）が、図５Ｄに示される他のゲームプレイは、ビデオゲームを通して非線形進行を示し得る。例えば、友達４のビデオゲームを通したゲームプレイ及び進行は、友達５のビデオゲームを通したゲームプレイ及び進行とは無関係である。
【０１１９】
図６Ａは、本開示の１つの実施形態による、選択されたスナップショットノードに接近して線形的に整列されたスナップショットノードのクラスタの例示（例えば、スナップショット画像３６０ｅに関連するスナップショットノード５７２）であり、スナップショットノードは、タイムライン３１０ａまたはノードグラフ５３０を通して選択され得る。特に、タイムライン３１０ａは、現在の描画画像３０５（空のサムネイル３４０ｃによって表される）の前に発生するビデオゲームの進行内のポイントにおける、ユーザによるゲームプレイのスナップショット画像（３４０ａ、３４０ｂ、．．．）を含む。タイムライン３１０ａは、前述したように、友達Ｆ１によるゲームプレイ中にキャプチャされるスナップショットに対応するスナップショット画像（３６０ｄ、３６０ｅ、３６０ｆ、．．．）をさらに含む。さらに、スナップショット画像のそれぞれは、ノードグラフ５３０に提示されるもののようなスナップショットノードに対応する。
【０１２０】
タイムライン３１０ａは、ユーザ及び友達Ｆ１のゲームプレイ中にキャプチャされる複数のスナップショットから選択されたスナップショット画像を示し得る。友達Ｆ１についてのスナップショット及びスナップショット画像は、粗い、及びより高い解像度のスナップショット画像の提示を示すために使用される。例示のため、友達Ｆ１のゲームプレイ中に１００個のスナップショットがキャプチャされ、それらがキャプチャされた順に１から１００まで番号が付され得る。タイムライン３１０ａには、キャプチャされたスナップショットに対応するスナップショット画像全てを示すのに十分な場所がない場合がある。したがって、スナップショット画像のサブセットのみが、タイムライン３１０に提示される。さらに、タイムライン３１０ａにおいて並んで提示されるスナップショット画像は、連続的及び／または逐次的にキャプチャされていなくともよい。例えば、図６Ａのタイムライン３１０ａに示されるように、スナップショット画像３６０ｅは、キャプチャされた順で番号５０が付され、すぐ右のスナップショット画像は、番号６０が付されたスナップショット画像３６０ｆである。したがって、９個のスナップショット画像が、スナップショット画像３６０ｅとスナップショット画像３６０ｆとの間でキャプチャされたが、タイムライン３１０ａには示されていない。
【０１２１】
１つの実施形態では、より細かい解像度のスナップショット画像が、キャプチャされたスナップショットに基づく表示用に生成及び提示されてもよい。特に、タイムライン３１０ａまたはノードグラフ５３０のいずれかを通して、画像３６０ｅなどのスナップショット画像をさらに選択することによって、より高い解像度のスナップショット画像の提示が可能となる。さらに、１つの実施形態では、スナップショット画像は、ユーザ（例えば、友達Ｆ１）がゲームプレイ中に取ったパスを示すノードグラフ／木構造に提示される。それは、ノードを表す各スナップショット画像であり、スナップショット画像が、ノードグラフ構成に提示される。例えば、ウィンドウは、スナップショットノードをそれらに対応する画像を介して表示してもよく、その場合に、スナップショットノードは、選択されたスナップショット画像３６０ｅに対応するスナップショットの前、及び／または後で逐次的にキャプチャされる。スナップショット画像３６０ｅは、前述したように、友達Ｆ１のゲームプレイを起動するためにユーザによって選択されたジャンプポイントに対応する。ジャンプポイントとして選択されている前、または後に、ユーザは、スナップショット画像３６０ｅに関連する様々なスナップショット画像を見たい場合がある。
【０１２２】
図６Ａに示すように、スナップショット画像の線形進行が、選択されたスナップショット画像３６０ｅに関係する様々なサムネイルに提示される。スナップショット画像３６０ｅ及びその対応するスナップショットは、前述したように、ジャンプポイント（ＪＰ）とも呼ばれる。選択されたスナップショット画像３６０ｅ及びＪＰは、キャプチャされたスナップショットの順番で番号５０が付されたスナップショットに関連付けられている。図６Ａは、４つのスナップショット画像６１０、３６０ｅ、６１５、及び６２０が示され、ＪＰの前にキャプチャされた１つのスナップショット（スナップショットＪＰ−１）、ＪＰ、ならびにＪＰの後にキャプチャされた２つのスナップショット（スナップショットＪＰ＋１及びＪＰ＋２）に対応することを示している。即ち、スナップショット画像は、連続的に番号４９〜５２が付されたスナップショットに対応する。例えば、スナップショット画像６１０（ＪＰ−１）、スナップショット画像３６０ｅ（ＪＰ）、スナップショット画像６１５（ＪＰ＋１）、及びスナップショット画像６２０（ＪＰ＋２）は、４９〜５２と連続的に順番が付けられている。このようにして、ユーザは、ノードグラフ構成においてスナップショット画像３６０ｅの周辺の、友達Ｆ１のゲームプレイにおけるアクションを高解像度で見ることができる。
【０１２３】
図６Ｂは、本開示の１つの実施形態による、選択されたスナップショットノード（例えば、スナップショット画像３６０ｅに対応するスナップショットノード５７２）に接近して非線形的に整列されたスナップショットノードのクラスタの例示であり、スナップショットノードは、図６Ａに関して前に紹介されたように、タイムライン３１０ａまたはノードグラフ５３０を通して選択され得る。図６Ａは、スナップショット画像３６０ｅに対応するジャンプポイントＪＰ周辺のビデオゲームの線形進行を示し、図６Ｂは、ＪＰ周辺のビデオゲームの非線形進行を示す。
【０１２４】
例えば、スナップショット画像は、友達Ｆ１がゲームプレイ中に取ったパスを示すノードグラフ／木構造に提示される。それは、ノードを表す各スナップショット画像であり、スナップショット画像は、ノードグラフ構成に提示される。図６Ｂに示すように、スナップショット画像の非線形進行が、順番５０のＪＰとも呼ばれる、選択されたスナップショット画像３６０ｅに関係する様々なサムネイルに提示される。８個のスナップショット画像が示されている。特に、スナップショット画像６０５は、順番４８のスナップショットノードＪＰ−２に対応する。また、スナップショット画像６１０は、順番４９のスナップショットノードＪＰ−１に対応し、スナップショットＪＰ−１は、非線形構成を示す決定ノードである。順番５０Ａ〜Ｂによって表されるように、２つの選択が利用可能である。スナップショットノードＪＰ−１から生じる１つの選択は、順番５０Ｂのスナップショット画像６１３に進む。スナップショットノードＪＰ−１から生じる他の選択は、スナップショットノードＪＰへのルートであり、スナップショットノードＪＰは、スナップショット画像３６０ｅ及び順番５０Ａに対応する。このルートは、（スナップショット画像６１５及び順番５１に関係する）連続的に番号が付されたスナップショットＪＰ＋１、ならびに（スナップショット画像６２０及び順番５２に関係する）スナップショットＪＰ＋２を通って続く。
【０１２５】
図６Ｃ〜６Ｆは、本開示の１つの実施形態による、選択されたスナップショットに接近して整列されるスナップショットノードのクラスタに対応し、図６Ａ〜６Ｂに関して説明されたスナップショット画像の例示である。例えば、図６Ｃは、スナップショット画像６１０を示し、クマがその洞窟から出て行くとき、クマに最初に遭遇する友達Ｆ１のゲームプレイにおいて使用されるキャラクタ３０８を示す。スナップショット画像６１０は、順番４９のスナップショットノードＪＰ−１に対応する。図６Ｄは、（スナップショットノードＪＰ及び順番５０に関係する）スナップショット画像３６０ｅを示し、クマと接触して交戦するキャラクタ３０８を示す。キャラクタ３０８は、キャラクタ３０８にとって利用可能なおそらく唯一の道具及び／または武器である、グルグル巻きのロープを手に取っていることが示されている。図６Ｅは、（スナップショットノードＪＰ＋１及び順番５１に関係する）スナップショット画像６１５を示し、キャラクタ３０８が、ロープを用いて木にクマの足それぞれを縛ることによってクマを制圧したことを示している。図６Ｆは、（スナップショットノードＪＰ＋２及び順番５２に関係する）スナップショット画像６２０を示し、キャラクタ３０８が、クマに対する勝利の果物を楽しんでいること、及び、武器及び他の報酬アイテム（例えば、コイン、宝石など）を獲得可能であることを示している。
【０１２６】
図７は、本開示の１つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショット、及びデータストア７５０の個別マスタファイルとしてそれらのスナップショットのそれぞれを記憶することの例示である。これらのマスタファイルは、産業界では典型的であるが、ビデオゲームのユーザの進行として自動的に消去または上書きされない。このようにして、各スナップショットに関係する情報及びメタデータは、スナップショット画像（例えば、タイムライン内の）、ノードグラフを提示するため、及び同一または他のユーザのゲームプレイ内のジャンプポイントへのジャンプを可能にするために、いつでも容易にアクセスされ得る。
【０１２７】
例えば、複数のスナップショットが、特定ユーザのゲームプレイに関連してキャプチャされる。スナップショットは、キャプチャの順序（即ち、１〜Ｎ）で連続して番号が付される。図７に示すように、少なくともスナップショット７１１（順序２０）、スナップショット７１２（順序３１）、スナップショット７１３（順序３２）、及びスナップショット７１４（順序３３）が、キャプチャされる。
【０１２８】
各スナップショットは、スナップショットに対応するビデオゲーム内のポイントで始まるビデオゲームのインスタンスをロード及び実行するのに十分な情報及び／またはメタデータを含む。例えば、各スナップショットは、前述したように、データベース１４５に記憶されるゲーム状態データ、データベース１４６に記憶されるスナップショット画像データ、データベース１４３に記憶されるランダムシードデータ、及びデータベース１４１に記憶されるユーザ保存データを少なくとも含む。１つの実施形態では、メタデータは、２つの連続した順序のスナップショットにおいて、及びスナップショット間で、ビデオゲームのインスタンスを推進するために使用される入力コマンドを含む。各スナップショットは、データストア７５０内の対応するマスタファイルに記憶され、特定のスナップショットに対応するマスタファイルは、関連するアクセスについてのこれらのデータベースのそれぞれへのポインタを含み得る。図示するように、スナップショット７１１は、マスタファイル７５１に記憶され、スナップショット７１２は、マスタファイル７５２に記憶され、スナップショット７１３は、マスタファイル７５３に記憶され、スナップショット７１４は、マスタファイル７５４に記憶される。
【０１２９】
図８は、本開示の１つの実施形態による、同一または別のユーザによるビデオゲームの別のゲームプレイ中にキャプチャされるスナップショットに基づく、個別のジャンプゲームプレイへのそのユーザによる仲介ジャンプを含む、ビデオゲームのユーザのゲームプレイの複数のセグメントの例示である。例えば、図３〜６に関連して前述したように現在の描画画像３０５がウィンドウ３００上に表示されるキャラクタ３０６でゲームをプレイしているユーザは、スナップショット画像３６０ｅによって定義されるジャンプポイント（ＪＰ）における友達Ｆ１（キャラクタ３０８を有する）のゲームプレイにジャンプすることを選択してもよい。タイムライン３１０ａ及び／または３１０ｂは、ユーザにスナップショット画像３６０ｅのプレビューを提供する。さらに、スナップショット画像３６０ｅは、前述したように、スナップショットノード５７２におけるその対応する位置に（例えば、ハイライトなどによって）関連付けられ得るため、ノードグラフ５３０は、ビデオゲーム内のスナップショット画像に状況を与える。友達Ｆ１及びキャラクタ３０８のゲームプレイへのジャンプをユーザにより起動することは、友達Ｆ１の元のゲームプレイ中にスナップショットノード５７２においてキャプチャされるスナップショットに基づいて可能となる。ジャンプの起動は、タイムライン３１０ａもしくは３１０ｂにおけるスナップショット画像３６０ｅのさらなる選択を通して、またはノードグラフ５３０におけるノード５７２の選択を通して、可能となり得る。同一または別のユーザのゲームプレイへのジャンプの起動のためのサポートが、任意の手段または方法（例えば、ジャンプ選択ウィンドウなど）を通して達成され得る。
【０１３０】
１つの実施形態では、複数のスナップショットが、ジャンプゲームプレイにおいてキャプチャされる。さらに、ジャンプゲームプレイのビデオ記録は、後のアクセスのためにキャプチャされ記憶されてもよい。このようにして、任意のユーザが、ジャンプゲームプレイにおける任意のスナップショットを介して、ジャンプゲームプレイをプレイし得る。１つの実施形態では、ジャンプゲームプレイのスナップショット画像が、タイムラインに置かれ、前述したように、それを通してジャンプゲームプレイが起動され得る。
【０１３１】
ビデオゲームとのユーザの対話は、ユーザのゲームプレイ８３０のセグメントに関係して説明されてもよい。図示するように、ユーザのゲームプレイ８３０は、第１のセグメント８３１及び第２のセグメント８３２を含む。特に、ユーザのゲームプレイ８３０の第１のセグメント８３１は、ビデオゲームとのユーザの現在または最初の対話を定義する。したがって、図３Ａの現在の描画画像３０５は、第１のセグメント８３１に関連付けられてもよい。例示として、スナップショットノードグラフ８１０は、図５Ｃに関連して前述したノードグラフ５３０の一部を示している。ユーザのゲームプレイ８３０の第１のセグメント８３１においてキャラクタ３０６により取られるルートは、破線８１１によって示され、スナップショットノード５６０、５６１、及び５６２を含む。スナップショットノードグラフ８１０は、キャラクタ３０６が、１つのパス８１２を経由してノード５６３及び５６４へ、第２のパス８１３を経由してノード５６５及び５６６へ、スナップショットノード５６２の右へさらに行ってしまった（例えば、さらに進行した）ことを示しているが、現在の描画画像３０５は、スナップショットノード５６２に関連付けられ、例示及び明確化のため、第１のセグメント８３１の終わりを示している。キャラクタ３０６によって取られるルートの（スナップショットノード５６２で終わる）この部分は、また、ノードグラフ８２０において繰り返される。ノードグラフ８２０は、第１のセグメント８３１の終わりまでの、キャラクタ３０６を用いたユーザのゲームプレイを示している。
【０１３２】
スナップショットノード５６２において、ユーザは、前述したように、ビデオゲーム内の他のポイントを探索することを選び、友達Ｆ１のゲームプレイ（例えば、スナップショット画像３６０ｅのさらなるセクション）にジャンプすることを選択し得る。友達Ｆ１のゲームプレイは、スナップショットノードグラフ８１０の太い実線８９９によって示されている。このポイントでは、ユーザのゲームプレイ８３０の第１のセグメント８３１は、休止され、ユーザは、スナップショットノード５７２に対応するポイントにおいて、友達Ｆ１のゲームプレイにジャンプする。例示として、ジャンプゲームプレイは、キャラクタがクマに接近して交戦しているポイントにおいて始まる。特に、ユーザのゲームプレイ８３０を実行するビデオゲームのインスタンスが休止され（例えば、第１のセグメント８３１の終わり）、ジャンプポイント（スナップショットノード５７２）において始まる友達Ｆ１のジャンプゲームプレイを実行するビデオゲームのインスタンスが、スナップショットノード５７２においてキャプチャされる対応するスナップショットに基づいてインスタンス化される。ノード５７２へのジャンプの表現が、曲線矢印８９１によって示されている。ジャンプゲームプレイは、ジャンプセグメント８４０によって定義される。
【０１３３】
別の実施形態では、ユーザのゲームプレイ８３０は、ジャンプゲームプレイを開始する前に第１のセグメント８３１の終わりにおいて保存され、終了される。このようにして、ユーザは、将来ビデオゲームに戻り、スナップショットノード５６２に対応するポイント（例えば、第１のセグメント８３１の終わり）から再開し得る。即ち、ユーザは、休止されたゲームを効果的に再開し得る。
【０１３４】
１つの実施形態では、ユーザのゲームプレイ８３０を実行するビデオゲームのインスタンスは、ユーザがそれを通して対話するジャンプゲームプレイを実行するビデオゲームのインスタンスから分離される。この場合に、ジャンプゲームプレイは、友達Ｆ１の元のゲームプレイに基づく。例示として、スナップショットノードグラフ８５０は、ユーザによってプレイされるジャンプゲームプレイのジャンプセグメント８４０においてキャラクタ３０８によって取られるルートを示し、ジャンプゲームプレイ内のキャラクタ３０８は、友達Ｆ１のゲームプレイによって元々生成され、定義された。ジャンプゲームプレイにおいて取られるルートは、太い破線８９６によって示されている。
【０１３５】
ノードグラフ８５０において例示される、ジャンプゲームプレイにおいてキャラクタ３０８によって取られるルートは、スナップショットノード５７２において始まり、ノード８５１、８５２、及び終了ノード８５９に連続的に続いている。終了ノード８５９は、ジャンプゲームプレイを実行するビデオゲームのインスタンスの終了を示している。破線８９６によって示される、ジャンプゲームプレイにおいてキャラクタ３０８によって取られるルート（ノード５７２、８５１、８５２、及び８５９を含む）は、ノードグラフ８１０において示される、友達Ｆ１のゲームプレイにおいてキャラクタ３０８によって取られるルート８９７（ノード５７２、５７３、及び５７４を含む）とは異なることに留意することが重要である。即ち、ユーザは、ジャンプゲームプレイを方向付けるために新たな入力コマンドを提供しているため、ユーザによって実行されるジャンプゲームプレイは、友達Ｆ１の以前記憶されたゲームプレイとは異なる。例えば、ユーザは、自分自身のゲームプレイ８３０においてビデオゲームのこの部分をプレイするか否かを決定するために、このポイントにおいてゲームを素早くプレビューしていることがあるため、ジャンプゲームプレイにおいて、クマとの不運な遭遇が起こる場合がある。一方、友達Ｆ１のゲームプレイが、クマとの成功した遭遇を示す場合がある。
【０１３６】
１つの実施形態では、ジャンプゲームプレイ中、スナップショットは、ジャンプセグメント８４０（例えば、ノード５７２、８５１、８５２、及び８５９）内に示されるノードのそれぞれにおいてキャプチャされてもよい。ジャンプゲームプレイ及びその関連するスナップショットは、後のアクセス用に記憶されてもよい。さらに、ジャンプゲームプレイのビデオ記録が、記録され記憶されてもよい。例えば、ユーザは、ユーザにより生成され、ビデオゲームに関連するジャンプゲームプレイをレビューし、インスタンス化したい場合がある。他の実施形態では、ユーザは、他のビデオゲームに関連するジャンプゲームプレイをレビューし、インスタンス化したい場合があり、その場合に、ジャンプゲームプレイは、ユーザまたは他のユーザによって生成されている。さらに、任意のユーザが、キャプチャされたスナップショットを介し、新たにインスタンス化される２次的ジャンプゲームプレイを通して、ユーザのジャンプゲームプレイを体験してもよい。特に、ジャンプゲームプレイ中にキャプチャされた、選択されたスナップショットは、１次的ジャンプゲームプレイ中にキャプチャされた、選択されたスナップショットに基づいて２次的ジャンプゲームプレイを実行するために、ゲームアプリケーションのインスタンスをインスタンス化するために使用され得る。したがって、任意のユーザが、同一ユーザによって生成される任意の以前のジャンプゲームプレイを体験することができ、または他のプレーヤの記憶済みジャンプゲームプレイを体験することが可能であってもよい。
【０１３７】
ジャンプゲームプレイの実行後、ユーザのゲームプレイ８３０が、再開されてもよい。ユーザは、ここで友達Ｆ１のゲームプレイをプレビューしており、自分自身のキャラクタ３０６に、ジャンプポイントに関連するスナップショットノード５７２に到達させることを希望してもよい。このようにして、ユーザのゲームプレイ８３０は、ジャンプポイントに向かって方向付けされるルートを含んでもよく、それによって、ユーザのゲームプレイ内のキャラクタが、同じクマ遭遇をすることとなる。
【０１３８】
スナップショットノードグラフ８２０は、ここで再開されるユーザのゲームプレイ８３０においてキャラクタによって取られるルートを示す。ゲームプレイ８３０の再開は、第２のセグメント８３２によって定義され、再開されたゲームプレイは、太い破線８０９によって定義される。したがって、ユーザによるゲームプレイ８３０の全体が、第１のセグメント８３１０（破線８１１）及び第２のセグメント８３２（太い破線８０９）によって示されている。１つの実施形態では、ゲームプレイ８３０の第２のセグメント８３２は、休止されているビデオゲームのインスタンスを継続する。別の実施形態では、第１のセグメント８３１は終了されたため、ゲームプレイ８３０の第２のセグメント８３２は、スナップショット５６２に関連するビデオゲームのポイントにおいて始まるビデオゲームの新たなインスタンス上で実行される。第２のセグメント８３２は、スナップショットノード５６２において始まり、スナップショットノード８２１、８２２、８２３、８２４、及び８２９に連続的に続く。
【０１３９】
ノードグラフ８２０において、スナップショットノード８２３は、ジャンプポイントに関連するスナップショットノード５７２におおよそ対応する。例えば、ユーザは、自分自身のゲームプレイ８３０においてクマに遭遇したいと考える。特に、ユーザのゲームプレイにおけるスナップショットノード５７２への通過は、スナップショットノードグラフ５３０及び／またはユニバーサルノードグラフ５５０を介してユーザにより可能である。特に、ユーザは、スナップショットノードグラフ５３０をレビューすることによって、他のユーザ（例えば、友達Ｆ１）により遭遇される、スナップショットノード５６２とスナップショットノード５７２との間で利用できる可能パスを発見することができる。追加的に、ユーザは、ユニバーサルノードグラフ５５０をレビューすることによって、スナップショットノード５６２とスナップショットノード５７２との間で利用できる汎用論理パスを発見することができる。このようにして、ユーザは、（例えば、ノード８２１及び８２２を介して）スナップショットノード８２３まで通過し、クマに遭遇することができる。ノード８２１及び８２２は、友達Ｆ１のゲームプレイ中に元々キャプチャされたスナップショットノード５６５及び５７０とおおよそ整列されているが、一致していなくともよいことに留意することが重要である。
【０１４０】
スナップショットノード８２３、８２４、及び８２９などは、第２のセグメント８３２において、ユーザのゲームプレイ８３０において取られるルートを示し、キャラクタ３０６は、ここでクマと遭遇し交戦している。スナップショットノード８２３におけるクマとの最初の遭遇後に取られるルート（ノード８２４、８２９などを含む）は、ジャンプゲーム内のルート（例えば、ノード５７２、８５１、８５２、及び８５９）と一致しなくともよく、友達Ｆ１のゲームプレイ内のルート（例えば、ノード５７２、５７３、及び５７４）とも一致しなくともよい。これは、ユーザのゲームプレイ８３０が、ビデオゲームを推進するそれ自体の一意な入力コマンドを有するからである。
【０１４１】
ネットワーク上で通信するゲームサーバとクライアントデバイスの多様なモジュールの詳細な説明と共に、ゲームネットワーク上で実行するビデオゲームのゲーム世界を通過するための方法が、本開示の１つの実施形態による、図９のフロー図９００に関してここで説明される。フロー図９００は、クライアントデバイスにおいてネットワーク上で表示される情報を生成する目的で、ゲームサーバ側において伴われる動作のプロセス及びデータフローを示す。
【０１４２】
方法は、動作９１０において開始し、複数のユーザに関連して実行されるビデオゲームの複数のインスタンスから生成される、複数のスナップショットをキャプチャすることを含む。特に、ビデオゲームのインスタンスは、図１の１つまたは複数のゲームサーバ２０５の１つまたは複数のゲームプロセッサ２１０によって実行されている。ビデオゲームの各インスタンスが実行されているとき、１つまたは複数のスナップショットがキャプチャされ、スナップショットは、前述したように、そのスナップショットに対応するビデオゲーム内のポイントから始まるビデオゲームのインスタンスの実行を可能にする。
【０１４３】
特に、スナップショットは、対応するユーザのゲームプレイに関連して実行される、ビデオゲームのインスタンスによって生成される描画画像を含むスナップショット画像を含む。描画画像は、ビデオゲーム内のポイントに対応するビデオゲームのシーンを示し、ポイントは、ビデオゲームを通るユーザのゲームプレイにおける進行を示す。
【０１４４】
加えて、スナップショットは、ビデオゲーム内のポイントに対応する環境の生成を可能にするゲーム状態データも含む。即ち、スナップショットに基づいて、対応するシーン及び環境が生成され、キャラクタは、ユーザのゲームプレイを通して環境と対話するように命令される。
【０１４５】
さらに、スナップショットは、前述したように、シーン及び環境についての追加特徴を提供するランダムシードデータを含む。例えば、クラウド構成、及び１つまたは複数の包括的キャラクタの移動が、ユーザのゲームプレイに関連するシーン及び環境内に含めるために、一意に生成され得る。したがって、クラウド構成及び１つまたは複数の包括的キャラクタの移動は、ビデオゲームのインスタンス毎に異なり得る。
【０１４６】
また、スナップショットは、対応するユーザのゲームプレイについてのキャラクタの生成を可能にする、ユーザ保存データを含む。キャラクタは、スナップショットがキャプチャされたビデオゲーム内のポイントに対応する第１の状態を有する。例えば、第１の状態は、キャラクタの外見及び種類、キャラクタが着る衣服、キャラクタについての達成されるレベル、キャラクタが利用可能な兵器類、そのポイントにおけるキャラクタのライフ状態を定義する。
【０１４７】
動作９２０において、方法は、ビデオゲームをプレイしている第１のユーザの第１のタイムラインを表示のために生成することを含む。第１のタイムラインは、ビデオゲーム中を進行する少なくとも１人のユーザ（第１のユーザ及び／または他のユーザ）のスナップショット画像を含む。タイムライン内のスナップショット画像は、第１のユーザに関連して実行するビデオゲームの第１のインスタンスの現在の描画画像との関係で表示される。各スナップショット画像は、対応するスナップショットを相互参照し得る。現在の描画画像は、第１のユーザによるビデオゲームの進行における現在のポイントに関連付けられる。
【０１４８】
動作９３０において、方法は、第１のユーザに関連する複数の第１のスナップショット画像を含む複数の第１のサムネイルを、第１のタイムラインでの表示のために生成することを含む。即ち、第１のサムネイルは、第１のユーザのビデオゲームの進行を示す。特に、複数の第１のスナップショットは、第１のユーザの過去の進行を現在の描画画像と比較して示す、少なくとも１つの描画画像を含む。
【０１４９】
動作９４０において、方法は、第２のユーザに関連する複数の第２のスナップショット画像を含む複数の第２のサムネイルを、第１のタイムラインでの表示のために生成することを含む。即ち、第２のサムネイルは、第２のユーザのビデオゲームの進行を示す。特に、複数の第２のスナップショット画像は、現在の描画画像の後のビデオゲーム内のポイントにおける、第２のユーザの将来の進行の進行を示す少なくとも１つの描画画像を含む。
【０１５０】
他の実施態様では、複数の第２のスナップショット画像は、第２のユーザの過去及び／または現在の進行を示す。例えば、第２のスナップショットは、第１のユーザのクライアントデバイスにおいて表示のために生成される、現在の描画画像の前のビデオゲーム内のポイントにおける第２のユーザの進行を示す、少なくとも１つの描画画像を含む。
【０１５１】
さらに他の実施形態では、追加のタイムラインが、クライアントデバイスにおいて表示のために生成されてもよい。例えば、第３のユーザの第２のタイムラインが、表示のために生成される。第２のタイムラインは、第３のユーザの複数の第３のスナップショット画像を含む。第２のタイムラインは、第１のユーザのゲームプレイに関連する、現在の描画画像の前及び後のビデオゲーム内の複数のポイントにおいて、ビデオゲームのゲームプレイ中の第３のユーザの進行を示す複数の描画画像を含む。
【０１５２】
前述したように、選択されたスナップショット画像は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が、スナップショット画像に対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイント（ジャンプポイントとしてここでは識別される）において始まるビデオゲームを実行することを可能にする。例えば、ゲームプロセッサ２１０は、第１のタイムライン内の複数の第２のスナップショットから選択されたスナップショット画像の、第１のユーザによる選択を受信し、選択されたスナップショット画像は、第２のユーザのゲームプレイに関連付けられる。さらに、ゲームプロセッサは、選択されたスナップショット画像に関連するビデオゲーム内のジャンプポイントに、第１のユーザのゲームプレイに関連して実行されるビデオゲームの第１のインスタンスの実行をジャンプさせるように構成される。１つの実施態様では、ビデオゲームの第１のインスタンスは、休止及び／または終了され、ビデオゲームの別のインスタンス、ジャンプゲームは、選択されたスナップショット画像のスナップショットに基づいてインスタンス化される。
【０１５３】
このようにして、第１のユーザは、第２のユーザのゲームプレイにジャンプすることができる。例えば、第１のユーザは、ジャンプゲーム内の第２のユーザのゲームプレイにおいて使用されるキャラクタに命令することができる。選択されたスナップショット画像の対応するスナップショットは、第２のユーザのゲームプレイにおいて使用され、ジャンプゲームにおいて第１のユーザのジャンプゲームプレイにも使用されるキャラクタの生成を可能にする、第２のユーザ保存データを含む。第２のユーザ保存データ及び第２のキャラクタは、第２のユーザのゲームプレイから生じる。したがって、第１のユーザは、ジャンプゲームの実行中に、ジャンプゲームプレイを生成する。
【０１５４】
第１のユーザが、ジャンプゲームを終了した後、ビデオゲームの第１のインスタンスが、再開されてもよい。即ち、ジャンプゲームを実行するビデオゲームの第２のインスタンスが終了され、第１のユーザのゲームプレイに関連するビデオゲームの第１のインスタンスが、再開される。このようにして、第１のユーザは、ビデオゲームの自分自身のプレイを再開し得る。
【０１５５】
第１のユーザは、また、第１のユーザの前のゲームプレイにおいてスナップショット画像を選択してもよい。例えば、ゲームプロセッサは、前のゲームプレイに関連する複数の第１のスナップショット画像において選択されたスナップショット画像の選択を受信するように構成されてもよい。ビデオゲームの第１のインスタンスの実行は、選択されたスナップショット画像に関連するビデオゲーム内のジャンプポイントにジャンプされる。１つの実施態様では、ジャンプすることは、選択されたスナップショット画像に対応するスナップショットに基づくビデオゲームの別のインスタンスを通して可能にされる。別の実施態様では、ジャンプすることは、ビデオゲームの第１のインスタンスを通して可能にされる。
【０１５６】
加えて、ノードグラフが、クライアントデバイスにおいて表示のために生成されてもよい。ノードグラフは、前述したように、タイムラインに表示されるスナップショット画像に対応する複数のスナップショットノードを含む。複数のスナップショットノードは、複数のパスを定義し、パス及びノードは、第１のユーザ及び第２のユーザのゲームプレイに関連付けられる。ノードグラフ内の各ノードは、対応するスナップショットに関連付けられる。
【０１５７】
さらに、ノードグラフは、第１のユーザによって、同一または別のユーザのゲームプレイへジャンプすることを可能にし得る。例えば、ゲームプロセッサは、ノードグラフ内の選択されたスナップショットノードの選択を受信するように構成される。スナップショットノードは、対応するスナップショットに関連付けられる。選択されたスナップショットノードに対応する、選択されたスナップショット画像は、任意選択で、クライアントデバイスにおいて表示のために生成されてもよい。特に、選択されたスナップショットノード及び／または対応するスナップショット画像の選択は、第１のユーザのゲームプレイに関連して実行されるビデオゲームの第１のインスタンスの実行が、選択されたノードに関連するビデオゲーム内のジャンプポイントへジャンプすることを可能にする。
【０１５８】
特定の実施形態は、同一または別のユーザの以前実行されたゲームプレイのプレビュー及び／またはゲームプレイへのジャンプのために使用される、複数ユーザのためのビデオゲームのゲームプレイ内のポイントのスナップショットの生成及びキャプチャを実際に説明するために提供されてきたが、これらは、限定としてではなく、例として説明される。本開示を読んだ当業者は、本開示の趣旨及び範囲内に入る追加の実施形態を認識するであろう。
【０１５９】
現在の実施形態のゲームへのアクセスを提供するなどの、広い地理的エリアにわたって配信されるアクセスサービスは、クラウドコンピューティングを使用することが多いことに留意すべきである。クラウドコンピューティングは、動的にスケーラブルで、しばしば仮想化されたリソースがインターネットを介してサービスとして提供されるコンピューティングスタイルである。ユーザは、それらをサポートする「クラウド」における技術インフラに熟練している必要はない。クラウドコンピューティングは、サービスとしてのインフラ（ＩａａＳ）、サービスとしてのプラットフォーム（ＰａａＳ）、及びサービスとしてのソフトウェア（ＳａａＳ）などの、異なるサービスに分割され得る。クラウドコンピューティングサービスは、しばしばウェブブラウザからアクセスされる、ビデオゲームなどの共通アプリケーションをオンラインで提供するが、ソフトウェア及びデータは、クラウド内のサーバ上に記憶されている。クラウドという用語は、インターネットがコンピュータネットワーク図でどのように描写されているかに基づく、インターネットについてのメタファとして使用され、それが隠している複雑なインフラについての抽象的概念である。
【０１６０】
ゲーム処理サーバ（ＧＰＳ）（または、単に「ゲームサーバ」）は、単一及びマルチプレーヤのビデオゲームをプレイするために、ゲームクライアントによって使用される。インターネットを介してプレイされるビデオゲームのほとんどは、ゲームサーバへの接続を介して動作する。典型的には、ゲームは、プレーヤからデータを収集し、それを他のプレーヤに分配する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするために別個のサーバを必要とする。別の実施形態では、ＧＰＳは、プレーヤと彼らそれぞれのゲームプレイデバイスとの間で通信を確立して、集中型ＧＰＳに依存することなく情報を交換する。
【０１６１】
専用ＧＰＳは、クライアントから独立して動作するサーバである。このようなサーバは、通常、データセンタに位置する専用ハードウェア上で動作し、より多くの帯域幅及び専用処理能力を提供する。専用サーバは、ほとんどのＰＣベースのマルチプレーヤゲームにとって、ゲームサーバをホストする好ましい方法である。多人数同時参加型オンラインゲームは、ゲームタイトルを所有するソフトウェア会社によって通常ホストされる専用サーバ上で動作し、それらがコンテンツの制御及び更新を行うことを可能にする。
【０１６２】
ユーザは、クライアントデバイスでリモートサーバにアクセスし、クライアントデバイスは、ＣＰＵ、ディスプレイ、及びＩ／Ｏを少なくとも含む。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、ＰＤＡなどであってもよい。１つの実施形態では、ゲームサーバ上で実行するネットワークは、クライアントによって使用されるデバイスの種類を認識し、採用される通信方法を調整する。その他の場合、クライアントデバイスは、ｈｔｍｌなどの標準的な通信方法を使用して、ゲームサーバ上のアプリケーションにインターネットを介してアクセスする。
【０１６３】
本開示の実施形態は、手持ち式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、多様なコンピュータシステム構成で実施されてもよい。本開示は、また、有線ベースの、または無線ネットワークを通してリンクされるリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境においても実施され得る。
【０１６４】
所与のビデオゲームは、特定のプラットフォーム及び特定の付属コントローラデバイスのために開発され得ると、理解されるべきである。しかしながら、そのようなゲームが、本明細書で提示されるようなゲームクラウドシステムを介して利用可能にされるとき、ユーザは、異なるコントローラデバイスでビデオゲームにアクセスしていてもよい。例えば、ゲームは、ゲームコンソール及びその付属コントローラのために開発されており、一方、ユーザは、ゲームのクラウドベースバージョンに、パーソナルコンピュータからキーボード及びマウスを利用してアクセスしていてもよい。そのようなシナリオでは、入力パラメータ構成は、ユーザが利用可能なコントローラデバイス（この場合、キーボード及びマウス）によって生成され得る入力から、ビデオゲームの実行に対して受け入れ可能な入力へのマッピングを定義し得る。
【０１６５】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスによってクラウドゲームシステムにアクセスしてもよい。この場合、クライアントデバイス及びコントローラデバイスは、共に同一デバイスに統合され、入力は、検出されるタッチスクリーン入力／ジェスチャとして提供される。このようなデバイスの場合、入力パラメータ構成は、ビデオゲームに対するゲーム入力に対応する特定のタッチスクリーン入力を定義してもよい。例えば、ボタン、指向性パッド、または他の種類の入力素子が、ユーザがゲーム入力を生成するために接触可能なタッチスクリーン上の位置を示すように、ビデオゲームの実行中に表示またはオーバレイされてもよい。特定方向へのスワイプまたは特定のタッチ動作などのジェスチャもまた、ゲーム入力として検出されてもよい。１つの実施形態では、ユーザをタッチスクリーン上の制御動作に慣れさせるように、例えばビデオゲームのゲームプレイ開始の前に、チュートリアルがユーザに提供されて、ゲームプレイのためにタッチスクリーンによって入力を与える方法を指示してもよい。
【０１６６】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスのための接続ポイントとしてサービスする。即ち、コントローラデバイスは、無線または有線接続を介してクライアントデバイスと通信して、入力をコントローラデバイスからクライアントデバイスに送信する。クライアントデバイスは、今度は、これらの入力を処理し、次いで、入力データを（例えば、ルータなどのローカルネットワーキングデバイスを介してアクセスされる）ネットワークを介してクラウドゲームサーバに送信してもよい。しかしながら、他の実施形態では、コントローラ自体が、最初にクライアントデバイスを通してそのような入力を通信する必要なしに、ネットワークを介して直接クラウドゲームサーバに入力を通信する能力を有する、ネットワーク化デバイスであってもよい。例えば、コントローラは、ローカルネットワーキングデバイス（前述のルータなど）に接続して、データをクラウドゲームサーバに送信し、クラウドゲームサーバから受信してもよい。したがって、クライアントデバイスは、依然としてクラウドベースビデオゲームからのビデオ出力を受信し、それをローカルディスプレイ上に描画する必要があり得るが、コントローラがネットワークを介して直接クラウドゲームサーバに入力を送信することを可能にすること、クライアントデバイスを迂回することによって、入力レイテンシは減少され得る。
【０１６７】
１つの実施形態では、ネットワーク化コントローラ及びクライアントデバイスは、ある種類の入力をコントローラから直接クラウドゲームサーバへ、及び他の種類の入力をクライアントデバイスを介して、送信するように構成されてもよい。例えば、検出が任意の追加ハードウェアまたはコントローラ自体から離れた処理に依存しない入力が、クライアントデバイスを迂回して、ネットワークを介してコントローラから直接クラウドゲームサーバに送信されてもよい。このような入力は、ボタン入力、ジョイスティック入力、組込型動作検出入力（例えば、加速度計、磁力計、ジャイロスコープ）などを含んでもよい。しかしながら、追加のハードウェアを利用し、またはクライアントデバイスによる処理が必要な入力は、クライアントデバイスによってクラウドゲームサーバに送信されてもよい。これらは、クラウドゲームサーバに送信する前にクライアントデバイスによって処理され得る、ゲーム環境からキャプチャされたビデオまたは音声を含み得る。追加的に、コントローラの動作検出ハードウェアからの入力は、コントローラの位置及び動作を検出するためにキャプチャされたビデオと併せて、クライアントデバイスによって処理されてもよく、それは、その後、クライアントデバイスによってクラウドゲームサーバに通信されることとなる。多様な実施形態によるコントローラデバイスは、また、クライアントデバイスから、またはクラウドゲームサーバから直接、データ（例えば、フィードバックデータ）を受信してもよいと理解されるべきである。
【０１６８】
本明細書で説明される実施形態は、任意の種類のクライアントデバイス上で実行され得ると理解されるべきである。いくつかの実施形態では、クライアントデバイスは、ヘッドマウントディスプレイ（ＨＭＤ）である。
【０１６９】
図１０は、本開示の実施形態による、図示されるヘッドマウントディスプレイ１０５０のコンポーネントを示す図である。ヘッドマウントディスプレイ１０５０は、プログラム命令を実行するためのプロセッサ１０００を含む。メモリ１００２は、記憶の目的で提供され、揮発性及び不揮発性メモリの両方を含んでもよい。ユーザが視聴し得る視覚的インタフェースを提供するディスプレイ１００４が含まれる。電池１００６は、ヘッドマウントディスプレイ１０５０のための電源として提供される。動作検出モジュール１００８は、磁力計１０１０、加速度計１０１２、及びジャイロスコープ１０１４などの、多様な種類の動作感知型ハードウェアのいずれかを含んでもよい。
【０１７０】
加速度計は、加速度及び重力誘発性反力を測定するためのデバイスである。単一及び複数の軸モデルが、異なる方向での加速度の大きさ及び方向を検出するために利用可能である。加速度計は、傾斜、振動、及び衝撃を感知するために使用される。１つの実施形態では、重力方向を提供するために３つの加速度計１０１２が使用され、重力方向が、２つの角度（ワールド空間のピッチ及びワールド空間のロール）のための絶対基準を与える。
【０１７１】
磁力計は、ヘッドマウントディスプレイ周辺の磁界の強度及び方向を測定する。１つの実施形態では、３つの磁力計１０１０がヘッドマウントディスプレイ内で使用され、ワールド空間のヨー角度のための絶対基準を確保する。１つの実施形態では、磁力計は、地球の磁界に及ぶように設計され、それは±８０マイクロテスラである。磁力計は、金属によって影響を受け、実際のヨーとは単調であるヨー測定をもたらす。磁界は、環境内の金属によって歪むことがあり、それがヨー測定の歪みの原因となる。必要であれば、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を用いて較正され得る。１つの実施形態では、加速度計１０１２は、ヘッドマウントディスプレイ１０５０の傾斜及び方位角を取得するために、磁力計１０１０と共に使用される。
【０１７２】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定または維持するためのデバイスである。１つの実施形態では、３つのジャイロスコープ１０１４は、慣性感知に基づいてそれぞれの軸（ｘ、ｙ、及びｚ）にわたる動作についての情報を提供する。ジャイロスコープは、高速回転の検出を支援する。しかしながら、ジャイロスコープは、絶対基準が存在しなければ経時的にドリフトし得る。このため、ジャイロスコープを周期的に再設定する必要があり、再設定は、オブジェクト、加速度計、磁力計などを視覚的に追跡することに基づく配置／向き判断などの他の利用可能な情報を用いて行われ得る。
【０１７３】
カメラ１０１６は、実環境の画像及び画像ストリームをキャプチャするために提供される。１つより多くのカメラが、ヘッドマウントディスプレイ１０５０に含まれてもよく、（ユーザがヘッドマウントディスプレイ１０５０のディスプレイを見ているときにユーザから離れる方向に向けられる）後ろ向きのカメラ、及び（ユーザがヘッドマウントディスプレイ１０５０のディスプレイを見ているときにユーザの方に向かう方向に向けられる）前向きのカメラを含む。追加的に、実環境におけるオブジェクトの深度情報を感知するために、深度カメラ１０１８がヘッドマウントディスプレイ１０５０に含まれてもよい。
【０１７４】
１つの実施形態では、ＨＭＤの正面に統合されたカメラは、安全に関する警告を提供するために使用されてもよい。例えば、ユーザが、壁またはオブジェクトに近づいている場合に、ユーザに警告してもよい。１つの実施形態では、ユーザには、室内の物理的オブジェクトの輪郭ビューが提供されて、それらの存在がユーザに警告されてもよい。輪郭は、例えば、仮想環境内でのオーバレイであってもよい。いくつかの実施形態では、ＨＭＤユーザには、例えば、床にオーバレイされている、参照マーカに対するビューが提供されてもよい。例えば、マーカは、ユーザがゲームをプレイしている部屋の中心の位置の参照をユーザに提供してもよい。これは、例えば、部屋の中の壁または他のオブジェクトにぶつかることを回避するためにユーザが移動すべき場所の、ユーザに対する視覚的情報を提供してもよい。ユーザが着用してゲームをプレイし、またはＨＭＤでコンテンツをナビゲートするときのために、さらなる安全をもたらすために、触覚的警告及び／または音声警告もまた、ユーザに提供されてもよい。
【０１７５】
ヘッドマウントディスプレイ１０５０は、オーディオ出力を提供するためのスピーカ１０２０を含む。また、周囲の環境、ユーザにより行われる会話などからの音を含む、実環境からの音声をキャプチャするために、マイクロホン１０２２が含まれてもよい。ヘッドマウントディスプレイ１０５０は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール１０２４を含む。１つの実施形態では、触覚フィードバックモジュール１０２４は、触覚フィードバックをユーザに提供するように、ヘッドマウントディスプレイ１０５０の移動及び／または振動を引き起こすことができる。
【０１７６】
ＬＥＤ１０２６は、ヘッドマウントディスプレイ１０５０の状態の視覚的指標として提供される。例えば、ＬＥＤは、電池レベル、電源オンなどを示してもよい。カードリーダ１０２８は、ヘッドマウントディスプレイ１０５０が、メモリカードからの情報の読み出し及びメモリカードへの情報の書き込みを可能にするために提供される。ＵＳＢインタフェース１０３０は、周辺デバイスの接続、または他の携帯型デバイス、コンピュータなどの他のデバイスへの接続を可能にするためのインタフェースの一例として含まれる。ヘッドマウントディスプレイ１０５０の多様な実施形態では、多様な種類のインタフェースのうちのいずれかが、ヘッドマウントディスプレイ１０５０の接続性をより高めるために含まれてもよい。
【０１７７】
ＷｉＦｉ（登録商標）モジュール１０３２は、無線ネットワーキング技術によってインターネットへの接続を可能にするために含まれる。また、ヘッドマウントディスプレイ１０５０は、他のデバイスへの無線接続を可能にするためにＢｌｕｅｔｏｏｔｈ（登録商標）モジュール１０３４を含む。通信リンク１０３６は、また、他のデバイスへの接続のために含まれてもよい。１つの実施形態では、通信リンク１０３６は、無線通信のために赤外線送信を利用する。他の実施形態では、通信リンク１０３６は、他のデバイスとの通信のために様々な無線または有線伝送プロトコルのうちのいずれかを利用してもよい。
【０１７８】
入力ボタン／センサ１０３８は、ユーザに対し入力インタフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなどの、多様な種類の入力インタフェースのうちのいずれかが含まれてもよい。超音波通信モジュール１０４０は、超音波技術により他のデバイスとの通信を容易にするために、ヘッドマウントディスプレイ１０５０に含まれてもよい。
【０１７９】
バイオセンサ１０４２は、ユーザからの生理学的データの検出を可能にするために含まれる。１つの実施形態では、バイオセンサ１０４２は、ユーザの皮膚を通したユーザの生体電気信号検出のための１つまたは複数のドライ電極を含む。
【０１８０】
ヘッドマウントディスプレイ１０５０の前述のコンポーネントは、ヘッドマウントディスプレイ１０５０に含まれ得る単なる例示的なコンポーネントとして説明された。本開示の多様な実施形態では、ヘッドマウントディスプレイ１０５０は、多様な前述したコンポーネントのうちのいくつかを含んでもよく、または含まなくてもよい。本明細書で説明される本開示の態様を容易にするために、ヘッドマウントディスプレイ１０５０の実施形態は、ここでは説明されないが当該技術分野において既知の他のコンポーネントを追加的に含んでもよい。
【０１８１】
本開示の多様な実施形態において、前述した手持ち型デバイスが、多様な対話型機能を提供するためにディスプレイ上に表示される対話型アプリケーションと共に利用され得ることが、当業者により理解されるであろう。本明細書で説明される例示的な実施形態は、限定としてではなく、例としてのみ提供される。
【０１８２】
図１１は、本開示の多様な実施形態による、ゲームシステム１１００のブロック図である。ゲームシステム１１００は、ネットワーク１１１５を介して１つまたは複数のクライアント１１１０にビデオストリームを提供するように構成される。ゲームシステム１１００は、典型的には、ビデオサーバシステム１１２０及び任意選択ゲームサーバ１１２５を含む。ビデオサーバシステム１１２０は、最小限のサービス品質で、ビデオストリームを１つまたは複数のクライアント１１１０に提供するように構成される。例えば、ビデオサーバシステム１１２０は、ビデオゲーム内のビューの状態または視点を変更するゲームコマンドを受信し、この変更を最小ラグタイムで状態に反映して、更新されたビデオストリームをクライアント１１１０に提供してもよい。ビデオサーバシステム１１２０は、今後定義されることとなるフォーマットを含む、多岐にわたる代替的なビデオフォーマットでビデオストリームを提供するように構成されてもよい。さらに、ビデオストリームは、多種多様なフォーマットレートでユーザへの提示のために構成されるビデオフレームを含んでもよい。典型的なフレームレートは、毎秒３０フレーム、毎秒６０フレーム、及び毎秒１１２０フレームである。とはいえ、より高い、またはより低いフレームレートが、本開示の代替的実施形態に含まれる。
【０１８３】
本明細書で個々に１１１０Ａ、１１１０Ｂなどと呼ばれるクライアント１１１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、手持ち型ゲームプレイデバイスなどを含んでもよい。典型的には、クライアント１１１０は、符号化ビデオストリーム（即ち、圧縮された）を受信し、ビデオストリームを復号し、結果として得られるビデオをユーザ、例えばゲームのプレーヤに提示するように構成される。符号化ビデオストリームの受信及び／またはビデオストリームの復号のプロセスは、典型的には、クライアントの受信バッファに個々のビデオフレームを記憶することを含む。ビデオストリームは、クライアント１１１０と一体化したディスプレイ上、またはモニタもしくはテレビなどの別個のデバイス上で、ユーザに提示されてもよい。クライアント１１１０は、任意選択で、１人よりも多くのゲームプレーヤをサポートするように構成される。例えば、ゲームコンソールは、２人、３人、４人、またはそれ以上の同時プレーヤをサポートするように構成されてもよい。これらのプレーヤのそれぞれが、個別のビデオストリームを受信してもよく、または単一のビデオストリームが、各プレーヤに対して具体的に生成される、例えば、各プレーヤの視点に基づいて生成されるフレームの領域を含んでもよい。クライアント１１１０は、任意選択で、地理的に分散される。ゲームシステム１１００に含まれるクライアントの数は、１もしくは２から数千、数万またはそれ以上にまで幅広く変化してもよい。本明細書で使用される、「ゲームプレーヤ」という用語は、ゲームをプレイする人を指すために使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするのに使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、協調してゲーム体験をユーザに配信する複数のコンピューティングデバイスを指してもよい。例えば、ゲームコンソール及びＨＭＤが、ビデオサーバシステム１１２０と協調して、ＨＭＤを通して見られるゲームを配信してもよい。１つの実施形態では、ゲームコンソールは、ビデオサーバシステム１１２０からビデオストリームを受信し、ゲームコンソールは、描画のためにＨＭＤにビデオストリームを転送し、またはビデオストリームを更新する。
【０１８４】
クライアント１１１０は、ネットワーク１１１５を介してビデオストリームを受信するように構成される。ネットワーク１１１５は、電話ネットワーク、インターネット、無線ネットワーク、送電線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む、任意の種類の通信ネットワークであってもよい。典型的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルによって通信される。代替的には、ビデオストリームは、独自仕様の標準によって通信される。
【０１８５】
クライアント１１１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信ケイパビリティ、及び入力デバイスを備えるパーソナルコンピュータである。復号ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体上に記憶されたソフトウェアを含んでもよい。ビデオストリームを復号（及び符号化）するためのシステムは、当該技術分野において周知であり、使用される特定の符号化方式に依存して変化する。
【０１８６】
クライアント１１１０は、受信したビデオを修正するように構成されるシステムをさらに含んでもよいが、必須ではない。例えば、クライアントは、あるビデオ画像を別のビデオ画像上にオーバレイするため、ビデオ画像をトリミングするため、などのために、さらなる描画を実行するように構成されてもよい。例えば、クライアント１１１０は、Ｉフレーム、Ｐフレーム、及びＢフレームなどの多様な種類のビデオフレームを受信し、これらのフレームを処理してユーザに表示するための画像にするように構成されてもよい。いくつかの実施形態では、クライアント１１１０のメンバは、描画、シェーディング、３Ｄへの変換、またはビデオストリームに対する類似の動作をさらに実行するように構成される。クライアント１１１０のメンバは、任意選択で、１つよりも多くの音声またはビデオストリームを受信するように構成される。クライアント１１１０の入力デバイスは、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動作及び／または位置感知デバイス、マウス、タッチスクリーン、ニューラルインタフェース、カメラ、今後開発されることとなる入力デバイスなどを含んでもよい。
【０１８７】
クライアント１１１０によって受信されるビデオストリーム（及び、任意選択で、音声ストリーム）は、ビデオサーバシステム１１２０によって生成され、提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームは、ビデオフレームを含む（及び、音声フレームは音声フレームを含む）。ビデオフレームは、ユーザに表示される画像に有意に貢献するように構成される（例えば、それらは、適当なデータ構造にピクセル情報を含む）。本明細書で使用される、「ビデオフレーム」という用語は、ユーザに示される画像に貢献する、例えば、効果を与えるように構成される情報を主に含むフレームを指して使用される。「ビデオフレーム」に関する本明細書での教示のほとんどは、「音声フレーム」にも適用され得る。
【０１８８】
クライアント１１１０は、典型的には、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変更し、またはゲームプレイに影響を及ぼすように構成されるゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを用いて受信されてもよく、及び／またはクライアント１１１０上で実行中の命令を計算することによって自動的に生成されてもよい。受信されるゲームコマンドは、クライアント１１１０からネットワーク１１１５を介してビデオサーバシステム１１２０及び／またはゲームサーバ１１２５に通信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム１１２０を介してゲームサーバ１１２５に通信される。いくつかの実施形態では、ゲームコマンドの個別のコピーが、クライアント１１１０からゲームサーバ１１２５及びビデオサーバシステム１１２０に通信される。ゲームコマンドの通信は、任意選択で、コマンドの識別に依存する。ゲームコマンドは、任意選択で、クライアント１１１０Ａに音声またはビデオストリームを提供するために使用される異なるルートまたは通信チャネルを通って、クライアント１１１０Ａから通信される。
【０１８９】
ゲームサーバ１１２５は、任意選択で、ビデオサーバシステム１１２０とは異なる主体によって運用される。例えば、ゲームサーバ１１２５は、マルチプレーヤゲームの発行元によって運用されてもよい。この例では、ビデオサーバシステム１１２０は、任意選択で、ゲームサーバ１１２５によってクライアントとして見られ、任意選択で、ゲームサーバ１１２５の視点からは、先行技術のゲームエンジンを実行する先行技術クライアントであるように見えるよう構成される。ビデオサーバシステム１１２０とゲームサーバ１１２５との通信は、任意選択で、ネットワーク１１１５を介して発生する。したがって、ゲームサーバ１１２５は、その１つがゲームサーバシステム１１２０である複数クライアントにゲーム状態情報を送信する、先行技術のマルチプレーヤゲームサーバであってもよい。ビデオサーバシステム１１２０は、ゲームサーバ１１２５の複数インスタンスと同時に通信するように構成されてもよい。例えば、ビデオサーバシステム１１２０は、複数の異なるビデオゲームを異なるユーザに提供するように構成されてもよい。これらの異なるビデオゲームのそれぞれが、異なるゲームサーバ１１２５によってサポートされ、及び／または異なる主体によって発行されてもよい。いくつかの実施形態では、ビデオサーバシステム１１２０の複数の地理的に分散されたインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム１１２０のこれらのインスタンスのそれぞれが、ゲームサーバ１１２５の同一インスタンスと通信していてもよい。ビデオサーバシステム１１２０と１つまたは複数のゲームサーバ１１２５との通信は、任意選択で、専用通信チャネルを介して発生する。例えば、ビデオサーバシステム１１２０は、これら２つのシステム間の通信専用の高帯域幅チャネルを介して、ゲームサーバ１１２５と接続されてもよい。
【０１９０】
ビデオサーバシステム１１２０は、ビデオソース１１３０、Ｉ／Ｏデバイス１１４５、プロセッサ１１５０、及び非一時的ストレージ１１５５を少なくとも備える。ビデオサーバシステム１１２０は、１つのコンピューティングデバイスを含んでもよく、または複数のコンピューティングデバイス間に分散されてもよい。これらのコンピューティングデバイスは、任意選択で、ローカルエリアネットワークなどの通信システムを介して接続される。
【０１９１】
ビデオソース１１３０は、ビデオストリーム、例えば、ストリーミングビデオ、または動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース１１３０は、ビデオゲームエンジン及び描画ロジックを含む。ビデオゲームエンジンは、プレーヤからゲームコマンドを受信し、受信されたコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、及び典型的には、視点を含む。ゲーム状態は、オブジェクトのプロパティ、画像、色、及び／またはテクスチャも含んでもよい。
【０１９２】
ゲーム状態は、典型的には、ゲームルール、及び移動、回転、攻撃、フォーカス設定、対話、使用などのゲームコマンドに基づいて、維持される。ゲームエンジンの一部は、任意選択で、ゲームサーバ１１２５内に配置される。ゲームサーバ１１２５は、地理的に分散したクライアントを使用して、複数プレーヤから受信されるゲームコマンドに基づくゲーム状態のコピーを維持してもよい。これらの場合、ゲーム状態は、ゲームサーバ１１２５によってビデオソース１１３０に提供され、ゲーム状態のコピーが記憶され、描画が実行される。ゲームサーバ１１２５は、ネットワーク１１１５を介してクライアント１１１０から直接ゲームコマンドを受信してもよく、及び／またはビデオサーバシステム１１２０を介してゲームコマンドを受信してもよい。
【０１９３】
ビデオソース１１３０は、典型的には、描画ロジック、例えば、ハードウェア、ファームウェア、及び／またはストレージ１１５５などのコンピュータ可読媒体上に記憶されるソフトウェアを含む。この描画ロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。描画ロジックの全てまたは一部は、任意選択で、グラフィックス処理ユニット（ＧＰＵ）内に配置される。描画ロジックは、典型的には、オブジェクト間の３次元空間の関係性を判断するため、ならびに／またはゲーム状態及び視点に基づいて適当なテクスチャなどを適用するために構成される処理段階を含む。描画ロジックは、その際クライアント１１１０との通信の前に通常符号化される生ビデオを制作する。例えば、生ビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３などにしたがって符号化されてもよい。符号化プロセスは、リモートデバイス上の復号器への配信用に任意選択でパッケージ化されるビデオストリームを制作する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。典型的なフレームサイズは、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８を含むが、任意の他のフレームサイズが使用されてもよい。フレームレートは、１秒当たりのビデオフレーム数である。ビデオストリームは、様々な種類のビデオフレームを含んでもよい。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは、ディスプレイデバイス上で全てのマクロブロック／画素をリフレッシュするための情報を含み、一方、Ｐフレームは、そのサブセットをリフレッシュするための情報を含む。Ｐフレームは、典型的には、Ｉフレームよりデータサイズが小さい。本明細書で使用される「フレームサイズ」という用語は、１つのフレーム内の画素数を指すように意味される。「フレームデータサイズ」という用語は、フレームを記憶するのに必要なバイト数を指すために使用される。
【０１９４】
代替的実施形態では、ビデオソース１１３０は、カメラなどのビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含まれ得る、遅延された、またはライブのビデオを生成するために使用されてもよい。結果として得られるビデオストリームは、任意選択で、描画画像、及びスチルカメラまたはビデオカメラを用いて記録された画像の両方を含む。ビデオソース１１３０は、また、ビデオストリームに含まれるように、以前記録されたビデオを記憶するよう構成される。ビデオソース１１３０は、また、オブジェクト、例えば、人の動作または位置を検出するように構成される動作または位置感知デバイス、ならびに検出された動作及び／または位置に基づいて、ゲーム状態を判断し、またはビデオを製作するように構成されるロジックを含んでもよい。
【０１９５】
ビデオソース１１３０は、任意選択で、他のビデオ上に置かれるように構成されるオーバレイを提供するように構成される。例えば、これらのオーバレイは、コマンドインタフェース、ログイン命令、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤのビデオフィード（例えば、ウェブカメラビデオ）を含んでもよい。タッチスクリーンインタフェースまたは視線検出インタフェースを含むクライアント１１１０Ａの実施形態では、オーバレイは、仮想キーボード、ジョイスティック、タッチパッドなどを含んでもよい。オーバレイの１つの例では、プレーヤの声が、音声ストリーム上にオーバレイされてもよい。ビデオソース１１３０は、任意選択で、１つまたは複数の音声ソースをさらに含む。
【０１９６】
ビデオサーバシステム１１２０が、１人より多くのプレーヤからの入力に基づいてゲーム状態を維持するように構成される実施形態では、各プレーヤは、ビューの位置及び方向を含む異なる視点を有してもよい。ビデオソース１１３０は、任意選択で、プレーヤ毎にその視点に基づいて個別のビデオストリームを提供するように構成される。さらに、ビデオソース１１３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント１１１０のそれぞれに提供するように構成されてもよい。ビデオソース１１３０は、任意選択で、３Ｄビデオを提供するように構成される。
【０１９７】
Ｉ／Ｏデバイス１１４５は、ビデオサーバシステム１１２０が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイスの動き、デバイス位置、ユーザの動き、クライアント識別、プレーヤ識別、ゲームコマンド、セキュリティ情報、音声などの情報を、送信及び／または受信するように構成される。Ｉ／Ｏデバイス１１４５は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス１１４５は、ゲームサーバ１１２５、ネットワーク１１１５、及び／またはクライアント１１１０と通信するように構成される。
【０１９８】
プロセッサ１１５０は、本明細書で述べたビデオサーバシステム１１２０の多様なコンポーネント内に含まれるロジック、例えば、ソフトウェアを実行するように構成される。例えば、プロセッサ１１５０は、ビデオソース１１３０、ゲームサーバ１１２５、及び／またはクライアントクォリファイア１１６０の機能を実行するために、ソフトウェア命令でプログラムされてもよい。ビデオサーバシステム１１２０は、任意選択で、プロセッサ１１５０の１つより多くのインスタンスを含む。プロセッサ１１５０は、また、ビデオサーバシステム１１２０によって受信されるコマンドを実行するために、または本明細書で述べたゲームシステム１１００の多様な要素の動作を協調させるために、ソフトウェア命令でプログラムされてもよい。プロセッサ１１５０は、１つまたは複数のハードウェアデバイスを含んでもよい。プロセッサ１１５０は、電子プロセッサである。
【０１９９】
ストレージ１１５５は、非一時的アナログ及び／またはデジタル記憶デバイスを含む。例えば、ストレージ１１５５は、ビデオフレームを記憶するように構成されるアナログ記憶デバイスを含んでもよい。ストレージ１１５５は、コンピュータ可読デジタルストレージ、例えば、ハードドライブ、光ドライブ、またはソリッドステートストレージを含んでもよい。ストレージ１１１５は、ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレーム両方を含むビデオストリーム、音声フレーム、音声ストリームなどを記憶するように（例えば、適当なデータ構造またはファイルシステムを経由して）構成される。ストレージ１１５５は、任意選択で、複数のデバイス間に分散される。いくつかの実施形態では、ストレージ１１５５は、本明細書の他の箇所で述べたビデオソース１１３０のソフトウェアコンポーネントを記憶するように構成される。これらのコンポーネントは、必要な時にいつでも供給できるフォーマットに記憶されてもよい。
【０２００】
ビデオサーバシステム１１２０は、任意選択で、クライアントクォリファイア１１６０をさらに含む。クライアントクォリファイア１１６０は、クライアント１１１０Ａまたは１１１０Ｂなどのクライアントのケイパビリティをリモートで判断するために構成される。これらのケイパビリティは、クライアント１１１０Ａ自体のケイパビリティ、及びクライアント１１１０Ａとビデオサーバシステム１１２０との間の１つまたは複数の通信チャネルのケイパビリティの両方を含み得る。例えば、クライアントクォリファイア１１６０は、ネットワーク１１１５を通して通信チャネルをテストするように構成されてもよい。
【０２０１】
クライアントクォリファイア１１６０は、クライアント１１１０Ａのケイパビリティを手動または自動で判断（例えば、発見）してもよい。手動判断は、クライアント１１１０Ａのユーザと通信すること、及びケイパビリティを提供するようにユーザに依頼することを含む。例えば、いくつかの実施形態では、クライアントクォリファイア１１６０は、画像、テキストなどをクライアント１１１０Ａのブラウザ内に表示するように構成される。１つの実施形態では、クライアント１１１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント１１１０Ａは、ＨＭＤ上に表示され得るブラウザを有するゲームコンソールである。表示されるオブジェクトは、ユーザが、クライアント１１１０Ａのオペレーティングシステム、プロセッサ、ビデオ復号器の種類、ネットワーク接続の種類、ディスプレイ解像度などの情報を入力することを要求する。ユーザにより入力される情報は、クライアントクォリファイア１１６０に通信して返される。
【０２０２】
例えば、クライアント１１１０Ａ上のエージェントの実行によって、及び／またはクライアント１１１０Ａへのテストビデオの送信によって、自動判断が発生し得る。エージェントは、ｊａｖａ（登録商標）スクリプトなどの、ウェブページに組み込まれ、またはアドオンとしてインストールされたコンピュータ命令を含んでもよい。エージェントは、任意選択で、クライアントクォリファイア１１６０によって提供される。多様な実施形態では、エージェントは、クライアント１１１０Ａの処理能力、クライアント１１１０Ａの復号及び表示ケイパビリティ、クライアント１１１０Ａとビデオサーバシステム１１２０との間の通信チャネルのラグタイム信頼性及び帯域幅、クライアント１１１０Ａのディスプレイ種類、クライアント１１１０Ａ上のファイアウォールの存在、クライアント１１１０Ａのハードウェア、クライアント１１１０Ａ上で実行するソフトウェア、クライアント１１１０Ａ内のレジストリエントリなどを発見し得る。
【０２０３】
クライアントクォリファイア１１６０は、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体上に記憶されたソフトウェアを含む。クライアントクォリファイア１１６０は、任意選択で、ビデオサーバシステム１１２０の１つまたは複数の他の要素とは別のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア１１６０は、クライアント１１１０とビデオサーバシステム１１２０の１つ以上のインスタンスとの間の通信チャネルの特性を判断するように構成される。これらの実施形態では、クライアントクォリファイアにより発見される情報は、ビデオサーバシステム１１２０のどのインスタンスが、クライアント１１１０のうちの１つへのストリーミングビデオの配信に最も適しているかを判断するために使用され得る。
【０２０４】
本明細書で定義される多様な実施形態は、本明細書で開示される多様な特徴を用いて特定の実施態様に組み合わされ、またはまとめられてもよいと、理解すべきである。したがって、提供される例は、より多くの実施態様を定義するために多様な要素を組み合わせることにより可能な多様な実施態様への限定ではなく、単にいくつかの可能な例である。いくつかの例では、いくつかの実施態様は、開示された、または均等な実施態様の趣旨から逸脱することなく、より少ない要素を含んでもよい。
【０２０５】
本開示の実施形態は、手持ち式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、多様なコンピュータシステム構成で実施されてもよい。本開示の実施形態は、また、有線ベースの、または無線ネットワークを通してリンクされるリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境においても実施され得る。
【０２０６】
上記実施形態を考慮して、本開示の実施形態は、コンピュータシステムに記憶されたデータを伴う多様なコンピュータ実装された動作を採用し得ると理解すべきである。これらの動作は、物理量の物理的操作を必要とするものである。本開示の実施形態の一部を形成する、本明細書に記載された動作のいずれかは、有用な機械動作である。本発明の実施形態は、これらの動作を実行するためのデバイスまたは装置にも関係する。装置は、必要な目的のために特別に構築されてもよく、または、装置は、コンピュータに記憶されるコンピュータプログラムによって選択的にアクティブ化もしくは構成される汎用コンピュータであってもよい。特に、多様な汎用機械が、本明細書の教示に従って書かれたコンピュータプログラムとともに使用されてもよく、または、必要な動作を実行するためにより専用化した装置を構築することが、より便利であってもよい。
【０２０７】
本開示は、また、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化され得る。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、データは、コンピュータシステムによってその後読み出され得る。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学式及び非光学式データストレージデバイスを含む。コンピュータ可読媒体は、コンピュータ可読コードが分散型で記憶及び実行されるように、ネットワーク連結コンピュータシステムにわたって分散されるコンピュータ可読有形媒体を含み得る。
【０２０８】
方法の動作について、特定の順序で説明してきたが、オーバレイ動作の処理が所望のやり方で行われる限り、動作の合間に他のハウスキーピング動作が実行されてもよく、または、動作が、わずかに異なる時間で発生するように調整されてもよく、もしくは処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散されてもよいと、理解されるべきである。
【０２０９】
前述の開示は、理解を明確にするために、多少詳細に説明されているが、添付の特許請求の範囲内において、ある変更及び修正が実施され得ることは明らかである。したがって、本実施形態は例示的なものであって限定的なものでないと考えられるべきであり、本開示の実施形態は、本明細書で与えられる詳細に限定されるべきではなく、添付の特許請求の範囲及び均等物の範囲内において修正され得る。
【図１】
2019527079.tif 000003
【図２】
2019527079.tif 000004
【図３Ａ】
2019527079.tif 000005
【図３Ｂ】
2019527079.tif 000006
【図４Ａ】
2019527079.tif 000007
【図４Ｂ】
2019527079.tif 000008
【図５Ａ】
2019527079.tif 000009
【図５Ｂ】
2019527079.tif 000010
【図５Ｃ】
2019527079.tif 000011
【図５Ｄ】
2019527079.tif 000012
【図６Ａ】
2019527079.tif 000013
【図６Ｂ】
2019527079.tif 000014
【図６Ｃ】
2019527079.tif 000015
【図６Ｄ】
2019527079.tif 000016
【図６Ｅ】
2019527079.tif 000017
【図６Ｆ】
2019527079.tif 000018
【図７】
2019527079.tif 000019
【図８】
2019527079.tif 000020
【図９】
2019527079.tif 000021
【図１０】
2019527079.tif 000022
【図１１】
2019527079.tif 000023
【国際調査報告】
2019527079.tif 000024
2019527079.tif 000025
2019527079.tif 000026