(57)【要約】【解決手段】ゲームアプリケーションについてのプレイヤのゲームプレイのビデオ記録のユーザ選択をクライアント装置から受信することと、ビデオ記録をクライアント装置にストリーミングすることとを含む、ゲーム方法である。ビデオ記録は、記録されたゲームプレイの第１の時点でキャプチャされたスナップショットに関連付けられている。記録されたゲームプレイにおけるジャンプ点の選択がクライアント装置から受信される。ゲームアプリケーションのインスタンスは、ジャンプゲームプレイを開始するようにスナップショットに基づいて開始される。ゲームプレイを指示するために使用され且つスナップショットに関連する入力コマンドがアクセスされる。画像フレームは、入力コマンドに基づき、クライアント装置においてレンダリングするために生成され、画像フレームは、ゲームプレイをジャンプ点まで再生する。クライアント装置からの入力コマンドは、ジャンプゲームプレイについてのジャンプ点から始めて処理される。【選択図】図１３Ａ
2019523596.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム方法であって、
ゲームアプリケーションに対するプレイヤのゲームプレイのビデオ記録の選択を、ユーザに関連するクライアント装置から受信することと、
前記ビデオ記録を前記クライアント装置にストリーミングすることであって、前記ビデオ記録が、前記プレイヤの前記ゲームプレイの第１の時点でキャプチャされたスナップショットと関連付けられる、前記ストリーミングすることと、
前記記録されたゲームプレイにおけるジャンプ点の選択を前記クライアント装置から受信することと、
前記スナップショットに基づいて前記ゲームアプリケーションのインスタンスを開始することであって、前記インスタンスがジャンプゲームプレイをインスタンス化する、前記開始することと、
前記スナップショットに関連し且つ前記ゲームプレイを指示するために使用された一連の入力コマンドにアクセスすることと、
前記ゲームアプリケーションの前記インスタンスにおいて、前記一連の入力コマンドに基づき、前記クライアント装置においてレンダリングするための複数の画像フレームを生成することであって、前記複数の画像フレームが前記第１の時点から前記ジャンプ点まで前記ゲームプレイを再生する、前記生成することと、
前記ジャンプ点から開始して前記ゲームアプリケーションの前記インスタンスにおいて前記クライアント装置からの入力コマンドを処理することとを備える、方法。
【請求項２】
前記複数の画像フレームが、前記第１の時点の第１のビデオフレームに対応する第１の画像フレームから前記ジャンプ点の第２のビデオフレームに対応する第２の画像フレームまで前記ゲームプレイを再生する、請求項１記載の方法。
【請求項３】
さらに、
前記一連の入力コマンドを使用して、前記ゲームプレイの再生中に前記ゲームアプリケーションの前記インスタンスにおいて前記クライアント装置から受信した入力コマンドの実行をブロックすることを備える、請求項１に記載の方法。
【請求項４】
前記複数の画像フレームを生成することが、
前記一連の入力コマンド内の入力コマンドを順方向に実行することによって再現される前記ゲームプレイを送ることを備える、請求項１に記載の方法。
【請求項５】
さらに、
前記ゲームプレイの前記再生中に、前記ジャンプゲームプレイをインスタンス化するために、前記ジャンプ点の前の点から始めて前記ゲームアプリケーションの前記インスタンスにおいて前記クライアント装置からの入力コマンドを処理することと、
前記ジャンプゲームプレイ中に、前記ジャンプ点に至る経路を促進しない第１の入力コマンドの実行を制限することとを備える、請求項４に記載の方法。
【請求項６】
前記ビデオ記録が、前記ビデオ記録における開始点でキャプチャされた先頭スナップショットと前記ビデオ記録における終了点でキャプチャされた終了スナップショットとに関連付けられ、前記第１の時点が、前記先頭スナップショットまたは前記終了スナップショットに関連付けられる、請求項１記載の方法。
【請求項７】
前記複数の画像フレームを生成することが、
前記一連の入力コマンド内の入力コマンドを逆の順序に実行することによって再現される前記ゲームプレイを巻き戻すことを備える、請求項１に記載の方法。
【請求項８】
前記複数の画像フレームを生成することが、
前記一連の入力コマンドの実行をオーバークロックすることを備える、請求項１に記載の方法。
【請求項９】
前記スナップショットが、
前記プレイヤの前記ゲームプレイに関連して実行される前記ゲームアプリケーションの第１のインスタンスによって生成されたレンダリング画像を含む第１のスナップショット画像であって、前記第１の時点の第１のビデオフレームに対応する、前記第１のスナップショット画像と、
前記ゲームプレイにおける前記第１の時点に対応する環境の生成を可能にするゲーム状態データと、
前記環境に追加の特徴を提供するランダムシードデータと、
前記プレイヤの前記ゲームプレイに対するキャラクタの生成を可能にするユーザ保存データであって、前記キャラクタは、前記ゲームプレイにおける前記第１の時点に対応する第１の状態を有する、前記ユーザ保存データと、
前記一連の入力コマンドのうちの少なくとも１つの入力コマンドとを含む、請求項１に記載の方法。
【請求項１０】
さらに、
前記ゲームアプリケーションをプレイする前記ユーザのタイムラインとの対話を介して前記ビデオ記録の選択を受信することを備え、前記タイムラインが、前記プレイヤの前記ゲームプレイの複数のスナップショット画像を含む、請求項９に記載の方法。
【請求項１１】
前記ゲームプレイにおけるジャンプ点の前記クライアント装置からの選択を受信することが、
前記ジャンプ点として前記ビデオ記録におけるビデオフレームの選択を受信することを備える、請求項１に記載の方法。
【請求項１２】
前記スナップショットが、前記ビデオ記録のビデオフレームに関連付けられている、請求項１に記載の方法。
【請求項１３】
前記ジャンプ点が前記第１の時点を含む、請求項１に記載の方法。
【請求項１４】
さらに、
前記複数の画像フレーム内に補助コンテンツをオーバーレイすることを備える、請求項１に記載の方法。
【請求項１５】
前記ビデオ記録を配信することが、
ネットワークを介して前記クライアント装置にライブビデオをストリーミングすることを備え、前記ビデオ記録が前記ライブビデオを含む、請求項１に記載の方法。
【請求項１６】
ゲーム方法であって、
プレイヤのゲームプレイの第１の時点でキャプチャされた開始スナップショットに基づいてゲームアプリケーションのインスタンスを開始することと、
前記スナップショットに関連し且つ前記ゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることと、
前記ゲームアプリケーションの前記インスタンスにおいて、前記一連の入力コマンドに基づき、ユーザのクライアント装置においてレンダリングするための複数の画像フレームを生成することであって、前記複数の画像フレームが前記ゲームプレイの前記点から前記ゲームプレイを再生する、前記生成することと、
前記複数の画像フレームのうちの第１の画像フレームに対応する前記クライアント装置からジャンプゲームを開始するための開始要求を受信することであって、前記第１の画像フレームが前記ゲームプレイにおけるジャンプ点に対応する、前記受信することと、
前記ジャンプ点から開始して前記ゲームアプリケーションの前記インスタンスにおいて前記クライアント装置からの入力コマンドを処理することとを備える、方法。
【請求項１７】
前記スナップショットが、
前記プレイヤの前記ゲームプレイに関連して実行される前記ゲームアプリケーションの第１のインスタンスによって生成されたレンダリング画像を含む第１のスナップショット画像であって、前記第１の時点の第１のビデオフレームに対応する、前記第１のスナップショット画像と、
前記ゲームプレイにおける前記第１の時点に対応する環境の生成を可能にするゲーム状態データと、
前記環境に追加の特徴を提供するランダムシードデータと、
前記プレイヤの前記ゲームプレイに対するキャラクタの生成を可能にするユーザ保存データであって、前記キャラクタは、前記ゲームプレイにおける前記第１の時点に対応する第１の状態を有する、前記ユーザ保存データと、
前記一連の入力コマンドのうちの少なくとも１つの入力コマンドとを含む、請求項１６に記載の方法。
【請求項１８】
さらに、
前記プレイヤの前記ゲームプレイの複数のスナップショット画像を含むタイムラインを、表示のために生成することであって、前記複数のスナップショット画像が、前記ゲームプレイ中に複数の点でキャプチャされた複数のスナップショットに対応する、前記生成することと、
選択されたスナップショットに対応する選択されたスナップショット画像の選択を受信することと、
前記選択されたスナップショットに基づいて前記開始スナップショットを決定することとを備える、請求項１６に記載の方法。
【請求項１９】
さらに、
前記プレイヤの前記ゲームプレイのビデオ記録を、ネットワークを介して前記クライアント装置にストリーミングすることであって、前記ビデオ記録が前記開始スナップショットと関連付けられる、前記ストリーミングすることと、
前記ビデオ記録のビデオフレームの選択を、前記開始要求として前記クライアント装置から受信することであって、前記ビデオフレームが前記ゲームプレイにおける前記ジャンプ点に対応する、前記受信することとを備える、請求項１６に記載の方法。
【請求項２０】
さらに、
前記プレイヤの前記ゲームプレイの複数のスナップショット画像を含むタイムラインを、表示のために生成することであって、前記複数のスナップショット画像が、前記ゲームプレイ中に複数の点でキャプチャされた複数のスナップショットに対応する、前記生成することと、
前記タイムラインとの対話を介して前記ビデオ記録の選択を受信することとを備える、請求項１９に記載の方法。
【請求項２１】
ゲーム用のゲームクラウドシステムであって、
ビデオゲームをプレイする複数のユーザに関連して前記ビデオゲームの複数のインスタンスを実行するように構成された複数の仮想ゲームエンジンを管理するように構成されたゲームサーバであって、前記仮想ゲームエンジンが、前記複数のインスタンスの実行から生成されたレンダリング画像の複数のスナップショットをキャプチャし、前記複数のスナップショットのそれぞれに関する情報をキャプチャするように構成され、対応するスナップショットに関する情報が、前記対応するスナップショットから始まる前記ビデオゲームのインスタンスの実行を可能にする、前記ゲームサーバと、
前記複数のスナップショットを記憶するスナップショットデータストアと、
前記情報を記憶するユーザデータストアと、
仮想ゲームエンジンであって、
ゲームアプリケーションに対するプレイヤのゲームプレイのビデオ記録の選択を、ユーザに関連するクライアント装置から受信し、
前記ビデオ記録を前記クライアント装置にストリーミングし、前記ビデオ記録が、前記プレイヤの前記ゲームプレイの第１の時点でキャプチャされたスナップショットと関連付けられ、
前記記録されたゲームプレイにおけるジャンプ点の選択を前記クライアント装置から受信し、
前記スナップショットに基づいて前記ゲームアプリケーションのインスタンスを開始し、前記インスタンスがジャンプゲームプレイをインスタンス化し、
前記スナップショットに関連し且つ前記ゲームプレイを指示するために使用される一連の入力コマンドにアクセスし、
前記ゲームアプリケーションの前記インスタンスにおいて、前記一連の入力コマンドに基づき、前記クライアント装置においてレンダリングするための複数の画像フレームを生成し、前記複数の画像フレームが、前記第１の時点から前記ジャンプ点まで前記ゲームプレイを再生し、
前記ジャンプ点から始めて前記ゲームアプリケーションの前記インスタンスにおいて前記クライアント装置からの入力コマンドを処理するように構成された、前記仮想ゲームエンジンとを備える、システム。
【請求項２２】
前記ビデオ記録が、前記ビデオ記録における開始点でキャプチャされた先頭スナップショットと前記ビデオ記録における終了点でキャプチャされた終了スナップショットとに関連付けられ、前記第１の時点が、前記先頭スナップショットまたは前記終了スナップショットに関連付けられる、請求項２１記載のシステム。
【請求項２３】
前記複数の画像フレームが、前記第１の時点の第１のビデオフレームに対応する第１の画像フレームから前記ジャンプ点の第２のビデオフレームに対応する第２の画像フレームまで前記ゲームプレイを再生する、請求項２１記載のシステム。
【請求項２４】
前記仮想ゲームエンジンが、前記一連の入力コマンドを使用して前記ゲームプレイの再生中に前記ゲームアプリケーションの前記インスタンスにおいて前記クライアント装置から受信した入力コマンドの実行をブロックするように構成されている、請求項２１に記載のシステム。
【請求項２５】
前記仮想ゲームエンジンが、順方向に前記一連の入力コマンドにおける入力コマンドを実行することによって再現される前記ゲームプレイを進めるように構成されている、請求項２１に記載のシステム。
【請求項２６】
前記スナップショットが、
前記プレイヤの前記ゲームプレイに関連して実行される前記ゲームアプリケーションの第１のインスタンスによって生成されたレンダリング画像を含む第１のスナップショット画像であって、前記第１の時点の第１のビデオフレームに対応する、前記第１のスナップショット画像と、
前記ゲームプレイにおける前記第１の時点に対応する環境の生成を可能にするゲーム状態データと、
前記環境に追加の特徴を提供するランダムシードデータと、
前記プレイヤの前記ゲームプレイに対するキャラクタの生成を可能にするユーザ保存データであって、前記キャラクタが、前記ゲームプレイにおける前記第１の時点に対応する第１の状態を有する、前記ユーザ保存データと、
前記一連の入力コマンドのうちの少なくとも１つの入力コマンドとを含む、請求項２１に記載のシステム。
【請求項２７】
ゲーム方法であって、
ゲームアプリケーションに対するプレイヤのゲームプレイのビデオ記録をユーザに関連付けられたクライアント装置にネットワークを介してストリーミングすることであって、前記ビデオ記録が、前記プレイヤの前記ゲームプレイの第１の時点でキャプチャされたスナップショットと関連付けられる、前記ストリーミングすることと、
前記記録されたゲームプレイにおけるジャンプ点の選択を前記クライアント装置から受信することと、
前記スナップショットに基づいて前記ゲームアプリケーションのインスタンスを開始することであって、前記インスタンスがジャンプゲームプレイをインスタンス化する、前記開始することと、
前記スナップショットに関連し且つ前記ゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることと、
前記ゲームアプリケーションの前記インスタンスにおいて、前記一連の入力コマンドに基づき、前記クライアント装置においてレンダリングするための複数の画像フレームを生成することであって、前記複数の画像フレームが前記第１の時点から前記ジャンプ点まで前記ゲームプレイを再生する、前記生成することと、
前記ジャンプ点から開始して前記ゲームアプリケーションの前記インスタンスにおいて前記クライアント装置からの入力コマンドを処理することとを備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオゲームに関する。とりわけ、本開示は、ビデオゲームまたはゲームアプリケーションの複数のユーザによるゲームプレイ中に様々な点で生成されたスナップショットであって、ゲームプレイのビデオ記録を介して他のユーザの以前に保存されたゲームプレイにジャンプするためにユーザの１人によって使用されることができるスナップショットを保存するための方法およびシステムを記載している。
【背景技術】
【０００２】
コンピューティングリソース（ハードウェアおよびソフトウェア）を使用するクラウドベースのシステムは、ネットワーク（例えば、インターネット）を介してサービスを配信する。サービスは、ゲームの文脈において、リモートクライアントへのコンテンツのストリーミングを可能にし、ほとんどの処理は、分散されることができるサーバ上で行われる。リモートクライアントに提供された入力は、クライアントの場所に専用のゲーム用ハードウェアを必要とせずに、ビデオゲームの実行を順次促進する。したがって、クラウドベースのゲームは、ユーザが複雑なハードウェア制限なしでより多くのビデオゲームタイトルにアクセスするのが容易であることがわかり、ゲームサプライヤが集中管理された場所からゲームコードを管理するのが容易であることがわかるため、人気が高まっている。
【０００３】
ユーザが、異なる結果を与える複数の選択肢を提示することがあるビデオゲームのゲームプレイを進行しているとき、ゲームプレイをどの方向に操縦するかを決定することが困難なことがある。例えば、ユーザは、ゲームプレイにおいてそれほどの進歩をもたらさない方向を避けたいが、外部の情報源を通して事前の知識を得ることなく、ユーザは、行き止まりにつながる特定の方向を避けることができない。場合によっては、ユーザは、ゲームプレイの進行結果を与える適切な方向を発見する前に、ビデオゲームがゲームの特定の部分に提示する可能性がある全ての可能な方向を使い果たすことがある。ビデオゲームにおいて全ての可能な方向をプレイすることを避けることが望ましくあり得る。
【０００４】
この文脈において、本開示の実施形態が生じる。
【発明の概要】
【０００５】
本開示の実施形態は、ビデオゲームの複数のユーザによるゲームプレイ中に様々な点で生成されたスナップショットを保存し、ビデオゲームのゲームプレイ中にユーザに表示可能なタイムラインを生成するためのシステムおよび方法において、スナップショットが、選択されたスナップショットに対応する点から始まる同じまたは他のユーザによるゲームプレイにジャンプするために使用されるシステムおよび方法に関する。本開示のいくつかの発明の実施形態が以下に記載される。
【０００６】
一実施形態では、ゲーム世界をナビゲートする方法が開示されている。本方法は、複数のユーザに関連して実行されたビデオゲームの複数のインスタンスから生成された複数のスナップショットをキャプチャすることを含む。本方法は、ビデオゲームをプレイしている第１のユーザの第１のタイムラインを表示することをさらに含み、第１のタイムラインは、第１のユーザに関連して実行中のビデオゲームの第１のインスタンスの現在レンダリングされた画像に関してビデオゲームを進行する少なくとも１人のユーザのスナップショット画像を含む。本方法はまた、第１のタイムラインにおいて第１のユーザに関連する複数の第１のスナップショット画像を複数の第１サムネイルに表示することを含み、複数の第１のスナップショットは、現在レンダリングされている画像と比較した第１のユーザの過去の進行を示す少なくとも１つのレンダリング画像を含む。本方法は、第２のユーザに関連する複数の第２のスナップショットを複数の第２のサムネイルに表示することをさらに含み、複数の第２のスナップショットは、現在レンダリングされている画像後のビデオゲームの点における第２のユーザの進行を示す少なくとも１つのレンダリング画像を含む。
【０００７】
他の実施形態では、ゲーム世界をナビゲートする方法が開示されている。本方法は、ビデオゲームをプレイする第１のユーザに関連してゲームクラウドシステム上でビデオゲームの第１のインスタンスを実行することを含む。本方法は、ビデオゲームの第１のインスタンスの実行に関連して生成された第１の複数のレンダリング画像の複数の第１のスナップショットをキャプチャすることを含み、第１のスナップショットのそれぞれは、ビデオゲームの固有の進行点に関連付けられる。本方法は、ビデオゲームをプレイする第２のユーザに関連してビデオゲームの第２のインスタンスの実行に関連して生成された第２の複数のレンダリング画像の複数の第２のスナップショットをキャプチャすることをさらに含む。本方法は、ビデオゲームをプレイしている第１のユーザおよび第２のユーザの進行を示すタイムラインを表示することをさらに含み、タイムラインは、第１のインスタンスの実行から生成された現在レンダリングされている画像と同時に表示される。
【０００８】
さらに他の実施形態では、ゲーム世界をナビゲートするように構成されたゲームクラウドシステムが開示されている。ゲームクラウドシステムは、ビデオゲームをプレイする複数のユーザに関連してビデオゲームの複数のインスタンスを実行するように構成された複数の仮想ゲームエンジンを管理するように構成されたゲームサーバを含み、仮想ゲームエンジンは、複数のインスタンスの実行から生成されたレンダリング画像の複数のスナップショットをキャプチャするように構成され、対応するスナップショットは、対応するスナップショットから始まるビデオゲームのインスタンスの実行を可能にする。ゲームクラウドシステムは、複数のスナップショットを記憶するためのスナップショットデータストアを含む。ゲームクラウドシステムは、第１のユーザに関連してビデオゲームの第１のインスタンスを実行するように構成された第１の仮想ゲームエンジンを含み、第１の仮想ゲームエンジンは、ビデオゲームをプレイする第１のユーザの第１のタイムラインを生成するように構成され、第１のタイムラインは、第１のインスタンスの現在レンダリングされている画像と比較して第１のユーザの過去の進行を示す少なくとも１つのレンダリング画像を含む複数の第１のスナップショット画像と、第２のユーザに関連する複数の第２のスナップショットとを含み、複数の第２のスナップショットは、現在レンダリングされている画像後のビデオゲーム内の所定点における第２のユーザの進行を示す少なくとも１つのレンダリング画像を含む。
【０００９】
他の実施形態では、ゲーム世界をナビゲートする方法が開示されている。本方法は、ストリーミングゲームサービスを介してビデオゲームを実行することを含み、ビデオゲームは、ネットワークを介して通信するユーザ装置のディスプレイ上にレンダリングされ、ユーザ装置は、第１のユーザに関連付けられる。本方法は、ユーザ装置の表示のためにビデオゲームの複数のシーンを生成することを含み、シーンは、ビデオゲームの異なる経路を通って進行する。本方法は、現在レンダリングされているシーンとともに表示するためのタイムラインを生成することを含み、タイムラインは、第１のユーザによるビデオゲームの進行に関連するスナップショット画像を示す複数の第１のサムネイルを含み、タイムラインは、第２のユーザによるビデオゲームの将来の進行に関連するスナップショット画像を示す複数の第２のサムネイルを含み、複数の第２のサムネイルにおける第１のサムネイルの選択は、第２のユーザについてレンダリングされたビデオゲームの将来の状態にジャンプすることを可能にする。
【００１０】
一実施形態では、ゲーム方法が開示されている。本方法は、ゲームアプリケーションに対するプレイヤのゲームプレイのビデオ記録の選択を、ユーザに関連するクライアント装置から受信することを含む。本方法は、ビデオ記録をクライアント装置にストリーミングすることを含み、ビデオ記録は、プレイヤのゲームプレイの第１の時点でキャプチャされたスナップショットに関連付けられる。本方法は、記録されたゲームプレイにおけるジャンプ点の選択をクライアント装置から受信することと、スナップショットに基づいてゲームアプリケーションのインスタンスを開始することとを含み、インスタンスは、ジャンプゲームプレイをインスタンス化する。本方法は、スナップショットに関連し且つゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることを含む。本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、クライアント装置においてレンダリングするための複数の画像フレームを生成することを含み、複数の画像フレームは、ゲームプレイを第１の時点からジャンプ点まで再生する。本方法は、ジャンプゲームプレイについてのジャンプ点から始まるゲームアプリケーションのインスタンスにおいてクライアント装置からの入力コマンドを処理することを含む。
【００１１】
一実施形態では、ゲーム方法が開示されている。本方法は、ゲームアプリケーションについてのプレイヤのゲームプレイのビデオ記録をユーザに関連するクライアント装置にネットワークを介して配信することを含み、ビデオ記録は、プレイヤのゲームプレイの第１の時点でキャプチャされたスナップショットに関連付けられる。本方法は、ゲームプレイにおけるジャンプ点の選択をクライアント装置から受信することを含む。本方法は、スナップショットに基づいてゲームアプリケーションのインスタンスを開始することを含み、インスタンスは、ジャンプゲームプレイをインスタンス化する。本方法は、ゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることを含み、一連の入力コマンドは、スナップショットに関連付けられている。本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、クライアント装置においてレンダリングするための複数の画像フレームを生成することを含む。複数の画像フレームは、第１の時点からジャンプ点までのプレイヤのゲームプレイを再生する。本方法は、ジャンプ点から始まるジャンプゲームプレイにおいて前記ゲームアプリケーションのインスタンスについてのクライアント装置からの入力コマンドを処理することを含む。
【００１２】
他のゲーム方法が開示されている。本方法は、プレイヤのゲームプレイの第１の時点でキャプチャされた開始スナップショットに基づいてゲームアプリケーションのインスタンスを開始することを含む。本方法は、スナップショットに関連し且つゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることを含む。本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、ユーザのクライアント装置においてレンダリングするための複数の画像フレームを生成することを含み、複数の画像フレームは、ゲームプレイの時点からゲームプレイを再生する。本方法は、複数の画像フレームのうちの第１の画像フレームに対応するクライアント装置からジャンプゲームを開始するための開始要求を受信することを含み、第１の画像フレームは、ゲームプレイにおけるジャンプ点に対応する。本方法は、ジャンプ点から始まるジャンプゲームプレイを実行するゲームアプリケーションのインスタンスにおいてクライアント装置からの入力コマンドを処理することを含む。
【００１３】
他の実施形態では、ゲーム用に構成されたゲームクラウドシステムが開示されている。ゲームクラウドシステムは、ゲームアプリケーションをプレイする複数のユーザに関連してゲームアプリケーションの複数のインスタンスを実行するように構成された複数の仮想ゲームエンジンを管理するように構成されたゲームサーバを含み、仮想ゲームエンジンは、複数のインスタンスを実行することから生成されたレンダリング画像の複数のスナップショットをキャプチャし、複数のスナップショットのそれぞれに関する情報をキャプチャするように構成されており、対応するスナップショットに関する情報は、対応するスナップショットから始まるゲームアプリケーションのインスタンスの実行を可能にする。ゲームクラウドシステムは、複数のスナップショットを記憶するためのスナップショットデータストアと、情報を記憶するためのユーザデータストアとを含む。ゲームクラウドシステムは、ゲームアプリケーションについてのプレイヤのゲームプレイのビデオ記録をユーザに関連するクライアント装置にネットワークを介して配信するように構成された仮想ゲームエンジンを含む。ビデオ記録は、プレイヤのゲームプレイの第１の時点でキャプチャされたスナップショットに関連付けられている。仮想ゲームエンジンは、ゲームプレイにおけるジャンプ点の選択をクライアント装置から受信するように構成されている。仮想ゲームエンジンは、スナップショットに基づいてゲームアプリケーションのインスタンスを開始するように構成され、インスタンスは、ジャンプゲームプレイをインスタンス化する。仮想ゲームエンジンは、ゲームプレイを指示するために使用される一連の入力コマンドにアクセスするように構成され、入力コマンドは、スナップショットと関連付けられる。仮想ゲームエンジンは、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づきクライアント装置においてレンダリングするための複数の画像フレームを生成するように構成されている。画像フレームは、ゲームプレイを第１の時点からジャンプ点まで再生する。仮想ゲームエンジンは、ジャンプ点から始めてジャンプゲームプレイを実行するゲームアプリケーションのインスタンスにおいてクライアント装置からの入力コマンドを処理するように構成されている。
【００１４】
本開示の他の態様は、本開示の原理を例として示す添付の図面と併せて、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００１５】
本開示は、添付の図面と併せて以下の説明を参照することによって最もよく理解されることができる。
【００１６】
【図１】本開示の一実施形態にかかる、クラウドゲームネットワークを介して実行される複数のユーザのビデオゲームのゲームプレイ中に生成されたスナップショットを保存するために使用されるシステムを示している。
【００１７】
【図２】本開示の一実施形態にかかる、ゲームクラウドシステム（ＧＣＳ）に記憶されたビデオゲームのアクセスを可能にしてプレイし、ゲームプレイに関連して生成されたスナップショットを記憶し、スナップショットを介して記憶されたゲームプレイをプレビューし、スナップショットを介してビデオゲームによるナビゲーションを行い、スナップショットを介して記憶されたゲームプレイにジャンプするためのシステム図を示している。
【００１８】
【図３Ａ】本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムラインの図であり、タイムラインは、他のユーザのゲームプレイのスナップショット画像とともに、ユーザのゲームプレイのスナップショット画像を示している。
【００１９】
【図３Ｂ】本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示される１つ以上のタイムラインの図であり、タイムラインは、１人以上のユーザのビデオゲームのゲームプレイのスナップショット画像を示している。
【００２０】
【図４Ａ】本開示の一実施形態にかかる、少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示すタイムラインの図であり、スナップショットの選択は、スナップショット画像の拡大図を可能にする。
【００２１】
【図４Ｂ】本開示の一実施形態にかかる、そのそれぞれが少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す１つ以上のタイムラインの図であり、スナップショットの選択は、スナップショット画像の拡大図を可能にする。
【００２２】
【図５Ａ】本開示の一実施形態にかかる、ビデオゲームのゲームプレイのノードグラフの図であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中のタイムラインとともに表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、ならびに他のユーザのゲームプレイのスナップショット画像を示している。
【００２３】
【図５Ｂ】本開示の一実施形態にかかる、ビデオゲームで利用可能な全ての可能な経路を示すユニバーサルノードグラフまたはノードツリーの図である。
【００２４】
【図５Ｃ】本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショットに関連して生成されたノードの階層を示すノードグラフの図であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中のタイムラインとともに表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、ならびに他のユーザのゲームプレイのスナップショット画像を示している。
【００２５】
【図６Ａ】本開示の一実施形態にかかる、選択されたスナップショットノードと密接且つ線形的に位置合わせされたスナップショットノードのクラスタの図であり、スナップショットノードは、タイムラインまたはノードグラフを介して選択されることができる。
【００２６】
【図６Ｂ】本開示の一実施形態にかかる、選択されたスナップショットノードと密接且つ非線形に位置合わせされたスナップショットノードのクラスタの図であり、スナップショットノードは、タイムラインまたはノードグラフを介して選択されることができる。
【００２７】
【図６Ｃ】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【図６Ｄ】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【図６Ｅ】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【図６Ｆ】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【００２８】
【図７】本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショット、およびスナップショットデータベースの１つ以上のマスタファイルにおけるそれらのスナップショットのそれぞれの記憶の図である。
【００２９】
【図８】本開示の一実施形態にかかる、同じまたは他のユーザによるビデオゲームの他のゲームプレイ中にキャプチャされたスナップショットに基づくそのユーザによる他のジャンプゲームプレイへの間欠的なジャンプを含む、ビデオゲームのユーザのゲームプレイの複数のセグメントの図である。
【００３０】
【図９】本開示の一実施形態にかかる、ゲーム世界をナビゲートするための方法におけるステップを示すフロー図である。  レビューノート：第２のケースは、ここから始まる
【００３１】
【図１０】本開示の一実施形態にかかる、システムによってプレイヤのゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加している任意のプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする、ビデオ記録を介したゲームプレイアクセスに使用されるシステムの構成要素を示している。
【００３２】
【図１１】本開示の一実施形態にかかる、ゲーム方法、より詳細には、ゲームプレイ中に生成されてキャプチャされ、記憶されたゲームプレイのビデオ記録を介して選択可能であるスナップショットに基づいて、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする方法におけるステップを示すフロー図である。
【００３３】
【図１２Ａ】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイのビデオ記録内の複数のビデオフレームの図であり、いくつかのビデオフレームは、対応するスナップショットと関連付けられており、ビデオフレームの選択は、ジャンプゲームプレイが要求ユーザによってプレイ可能であるように、プレイヤのゲームプレイ中にキャプチャされた関連するスナップショットに基づいてジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化する。
【００３４】
【図１２Ｂ】本開示の一実施形態にかかる、ユーザによるゲームアプリケーションのゲームプレイ中に表示されるタイムラインの図であり、タイムラインは、プレイヤによるゲームアプリケーションのゲームプレイのスナップショット画像を示し、タイムライン内のスナップショット画像の選択は、スナップショット画像に関連付けられたゲームプレイにおける点におおよそ対応するゲームプレイのビデオ記録の表示を提供し、ビデオ記録におけるビデオフレームの選択は、ジャンプゲームプレイがユーザによってプレイ可能であるように、プレイヤのゲームプレイ中にキャプチャされたスナップショットに基づいてジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化する。
【００３５】
【図１３Ａ】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイを指示するために以前に使用された複数の入力コマンドの図であり、入力コマンドの一部（例えばシーケンス）は、ジャンプゲームプレイの再生部分を実行するために使用される。
【００３６】
【図１３Ｂ】本開示の一実施形態にかかる、ジャンプゲームプレイのジャンプ点に対応する画像フレームの図であり、ジャンプゲームプレイは、ゲームプレイを指示する保存された入力コマンドを使用して、その後にジャンプゲームプレイが要求ユーザからの入力コマンドを処理することによってライブになるジャンプ点までプレイヤのゲームプレイを再生するように自動的に実行される。
【００３７】
【図１４】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤのゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中に提示される一連の入力コマンドの図であり、一連の入力コマンドは、その後にジャンプゲームプレイが要求ユーザからの入力コマンドを処理することによってライブになるジャンプ点までのプレイヤのゲームプレイを再生するように自動的に実行され、要求ユーザは、オリジナルとともに提示されるゴーストオブジェクトおよび対応する画像フレームにおける対応するオブジェクトを指示するために入力コマンドのシーケンスを模倣することができる。
【００３８】
【図１５Ａ】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【図１５Ｂ】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【図１５Ｃ】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【図１５Ｄ】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【図１５Ｅ】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【００３９】
【図１６】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイにおいてジャンプ点にプレイヤを案内するために使用される特徴の図である。
【００４０】
【図１７】本開示の一実施形態にかかる、ゲーム方法、より詳細には、ゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする方法におけるステップを示すフロー図である。
【００４１】
【図１８】本開示の一実施形態にかかる、ヘッドマウントディスプレイの構成要素を示す図である。
【００４２】
【図１９】本開示の様々な実施形態にかかる、ゲームシステムのブロック図である。ゲームシステムは、ネットワークを介して１つ以上のクライアントにビデオストリームを提供するように構成されている。
【発明を実施するための形態】
【００４３】
以下の詳細な説明は、例示の目的のための多くの特定の詳細を含むが、当業者は、以下の詳細に対する多くの変形および変更が本開示の範囲内であることを理解するであろう。したがって、以下に説明される本開示の態様は、この説明に続く特許請求の範囲に対する一般性を失うことなく、またそれに限定を課すことなく説明される。
【００４４】
一般的に言えば、本開示の様々な実施形態は、特にクラウドベースのゲームシステムで実行されたときに、複数のユーザのビデオゲームのゲームプレイ中に生成されるスナップショットの保存、ビデオゲームのナビゲート、ビデオゲームのプレビュー、および他のユーザのゲームプレイを体験するためのビデオゲームにおける選択された点へのジャンプを提供するシステムおよび方法を説明する。スナップショットは、ビデオゲームをプレイするユーザについてのタイムラインで表示されることができる。タイムライン内の選択されたスナップショットは、選択されたスナップショットに対応するビデオゲーム内のジャンプ点におけるビデオゲームのインスタンスのインスタンス化を可能にするメタデータおよび／または情報を含む。ジャンプ点で始まるビデオゲームのインスタンスは、要求ユーザがオリジナルユーザと異なっていても、以前に実行されたゲームプレイにおいて選択されたスナップショットを生成するオリジナルユーザに関連して実行される。本開示の実施形態は、以前は利用不可能であった同じまたは他のユーザのビデオゲームのインスタンスをロードして実行する方法を提供する。このようにして、ユーザは、自己のゲームプレイを危険にさらすことなく他のユーザのゲームプレイを積極的にプレビューすることができる。また、ユーザは、自己の現在のゲームプレイを危険にさらすことなく、自己の以前のゲームプレイを積極的にプレビューすることができる。この文脈において、本開示の実施形態が生じる。
【００４５】
したがって、本開示の実施形態は、ゲームアプリケーションのさらなる用途を提供する。例えば、本開示の実施形態は、そのゲームアプリケーションの以前のゲームプレイに基づいて、ユーザがゲームアプリケーションの任意の部分にジャンプすることを提供する。例えば、いくつかの実施形態では、スナップショット画像（例えば、スクリーンショット）の選択を通じて、対応するスナップショット情報がアクセスされてそのゲームアプリケーションへのジャンプを可能にする。さらに他の実施形態は、そのゲームアプリケーションの以前のゲームプレイのビデオ記録に基づいて、ユーザがゲームアプリケーションの任意の部分にジャンプすることを提供する。例えば、ビデオ記録からの（例えば、スナップショット画像に対応することができる）ビデオ画像の選択によって、ビデオ画像（またはスナップショット画像）に関連する対応するスナップショット情報がアクセスされて、そのゲームアプリケーションへのジャンプを可能にする。そのようにして、ユーザは、楽しむためにゲームアプリケーションのミニセクションを素早くプレイすること、またはゲームアプリケーションの難しいセクションをどのようにしてうまくナビゲートするかを発見することができる。ミニセクションへのアクセスは、初期起動シーケンスを使用してユーザがゲームアプリケーションをロードする必要なく達成される。さらにまた、ユーザが興味のあるセクション（例えば、レベルボス、または最終ボスとのバトル）に到達するためにゲーム全体をプレイする必要はないため、好まれなくなった古いアプリケーションは、新たな興味を生み出し、即時のゲームプレイのためにそれらの興味のあるセクションに直接行くことができる。さらに他の実施形態は、初期化シーケンスを最初（例えば、ユーザが初めて最初からゲームアプリケーションをロードするとき）から実行する代わりに、ゲームサーバが中間点またはジャンプ点から直接始まるゲームアプリケーションを実行する必要があるのみであるため、上記の達成を提供し、ゲームサーバのよりよい利用を含む追加の利益および利点を提供する。したがって、選択されたジャンプ点からゲームを開始するのに必要なコードを直接アップロードすることによって、ゲームサーバは、初期化シーケンス、およびゲームアプリケーションにおけるジャンプ点にナビゲートするための任意のさらなる実行可能シーケンスもスキップする。
【００４６】
様々な実施形態の上記の一般的な理解の下で、様々な図面を参照しながら実施形態の例示的な詳細がここで説明される。
【００４７】
本明細書を通して、「ビデオゲーム」に対する参照は、入力コマンドの実行を通じて指示される任意の種類の対話型アプリケーションを表すことを意味する。説明のみを目的として、対話型アプリケーションは、ゲーム、ワープロ、ビデオ処理、ビデオゲーム処理などのためのアプリケーションを含む。さらに、ビデオゲームおよびゲームアプリケーションという用語は交換可能である。
【００４８】
スナップショットキャプチャおよびゲームプレイアクセス
図１は、本開示の一実施形態にかかる、クラウドゲームネットワーク上で実行される複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットの保存、１人以上のユーザのビデオゲームのゲームプレイのプレビュー、ビデオゲームのナビゲート、および同じまたは他のユーザのゲームプレイを体験するためのビデオゲームにおける選択された点へのジャンプに使用されるシステムを示している。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で実行される複数の仮想マシン（ＶＭ）を含むことができ、１つ以上の仮想マシンは、ホストのハイパーバイザに利用可能なハードウェアリソースを利用してゲームプロセッサモジュールを実行するように構成されている。
【００４９】
示されるように、システム１０は、複数の対話型ビデオゲームへのアクセスを提供するゲームプロセッサモジュール２１０を実行するゲームサーバ２０５を含む。ゲームサーバ２０５は、クラウド内で利用可能な任意の種類のサーバコンピューティング装置とすることができ、１つ以上のホスト上で実行される１つ以上の仮想マシンとして構成されることができる。例えば、ゲームサーバ２０５は、ゲームプロセッサ２１０をサポートする仮想マシンを管理してもよい。
【００５０】
クライアント装置１００は、インターネットなどのネットワーク１５０を介してビデオゲームへのアクセスを要求し、ゲームサーバ２０５によって実行されてユーザ５に関連付けられた表示装置１２に配信されるビデオゲームのインスタンスをレンダリングするように構成されている。例えば、ユーザ５は、クライアント装置１００を介してゲームプロセッサ２１０上で実行されているビデオゲームのインスタンスと対話することができる。クライアント装置１００は、ゲームコントローラ６、タブレットコンピュータ１１、キーボード、およびビデオカメラ、マウス、タッチパッドなどによってキャプチャされたジェスチャなど、様々な種類の入力装置からの入力を受信することができる。クライアント装置１００は、ネットワーク１５０を介してゲームサーバ２０５に接続することができる少なくともメモリおよびプロセッサモジュールを有する任意の種類のコンピューティング装置とすることができる。クライアント装置１００のいくつかの例は、パーソナルコンピュータ（ＰＣ）、ゲーム機、ホームシアター装置、汎用コンピュータ、モバイルコンピューティング装置、タブレット、電話、またはビデオゲームのインスタンスを実行するようにゲームサーバ２０５と対話することができる任意の他の種類のコンピューティング装置を含む。
【００５１】
クライアント装置１００は、ゲームサーバ２０５によって配信されたレンダリング画像を受信し、レンダリング画像をディスプレイ１２に表示するように構成されている。例えば、レンダリング画像は、ユーザ５に関連してゲームサーバ２０５のゲーム実行エンジン２１１上で実行されるビデオゲームのインスタンスに関連付けられてもよい。特に、クライアント装置１００は、ゲームプレイを推進するために使用される入力コマンドなどを介して、ユーザ５のゲームプレイに関連するビデオゲームのインスタンスと対話するように構成されている。
【００５２】
さらに、クライアント装置１００は、ビデオゲームをプレイするときにユーザ５のゲームプレイのスナップショットをキャプチャして記憶するためにゲームサーバ２０５と対話するように構成されている。さらに、クライアント装置１００は、ゲームサーバ２０５と対話して、ユーザ５のゲームプレイのスナップショット、および同じビデオゲームをプレイしている他のユーザの保存されたゲームプレイのスナップショットを含むタイムラインを表示するように構成されている。各スナップショットは、選択されたスナップショットに対応するビデオゲームにおけるジャンプ点においてユーザ５が保存されたゲームプレイにジャンプすることを可能にし、一実施形態では、保存されたゲームプレイは、ユーザ５とは異なる他のユーザに関連付けられてもよい。
【００５３】
より具体的には、ゲームサーバ２０５のゲームプロセッサ２１０は、ビデオゲームをプレイするときにユーザ５のゲームプレイのスナップショットを生成するように構成されている。他の仮想マシンに関連付けられたゲームサーバ２０５の他のゲームプロセッサは、他のユーザのゲームプレイに関連付けられたビデオゲームのインスタンスを実行し、それらのゲームプレイ中にスナップショットをキャプチャするように構成されている。前述したように、ビデオゲームのインスタンスは、ユーザ５のゲームプレイに関連してゲーム実行エンジン２１１上で実行されている。
【００５４】
スナップショットジェネレータ２１２は、ユーザ５のゲームプレイから生成された複数のスナップショットをキャプチャするように構成されている。各スナップショットは、対応するスナップショットに関連するビデオゲームにおける所定点から始まるビデオゲームのインスタンスの実行を可能にする情報を提供する。スナップショットは、ユーザ５によるビデオゲームのゲームプレイ中に自動的に生成される。実施形態では、スナップショットのそれぞれの部分は、独立して構成された、またはデータストア１４０の下に構成された関連データベースに記憶される。他の実施形態では、スナップショットは、ユーザ５による指示を介して手動で生成されてもよい。そのようにして、対応するスナップショットの選択を通じた任意のユーザは、対応するスナップショットに関連するビデオゲームにおける所定点でユーザ５のゲームプレイにジャンプすることができる。ゲームプロセッサ２１０は、対応するスナップショットに基づいて任意のユーザの保存されたゲームプレイへのジャンプを可能にするためにデータベース１４０内の情報にアクセスするように構成されている。すなわち、要求ユーザは、スナップショットを生成して保存したオリジナルユーザのゲームプレイのゲームキャラクタを使用して、選択されたスナップショットに対応するジャンプ点でビデオゲームのプレイを開始することができる。
【００５５】
特に、各スナップショットは、スナップショットに対応するビデオゲームにおける所定点で始まるビデオゲームのインスタンスの実行を可能にするためのメタデータおよび／または情報を含む。例えば、ユーザ５のゲームプレイでは、スナップショットは、レベルの中央などのビデオゲームの進行中の特定点で生成されてもよい。関連スナップショット情報は、データベース１４０の１つ以上のデータベースに記憶される。特定のスナップショットに対応する各データベース内の情報を関連付けるためにポインタが使用されることができる。そのようにして、ユーザ５のゲームプレイを体験したい他のユーザは、興味のあるビデオゲームにおける所定点に対応するスナップショットを選択することができる。
【００５６】
スナップショットは、その時点でレンダリングされているシーンのスナップショット画像を含む。スナップショット画像は、スナップショット画像データベース１４６に記憶される。タイムライン内にサムネイルの形態で提示されたスナップショット画像は、ビデオゲームを通じたユーザによる進行の対応する点におけるユーザのゲームプレイへのビューを提供する。
【００５７】
スナップショットはまた、その時点でのゲームの状態を定義するゲーム状態データを含む。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイなどを含むことができる。そのようにして、ゲーム状態データは、ビデオゲームにおける対応する点に存在したゲーム環境の生成を可能にする。ゲーム状態データはまた、ＣＰＵ、ＧＰＵ、メモリの状態、レジスタ値、プログラムカウンタ値、プログラム可能ＤＭＡ状態、ＤＭＡ用のバッファデータ、オーディオチップ状態、ＣＤ−ＲＯＭ状態など、ゲームプレイをレンダリングするために使用される全ての装置の状態を含むことができる。ゲーム状態データはまた、その点からビデオゲームを実行するために実行可能コードのどの部分がロードされる必要があるかを識別することもできる。全てのゲーム状態データがキャプチャされて保存される必要はなく、スナップショットに対応する点で実行可能コードがゲームを開始するのに十分なデータのみが必要である。ゲーム状態データは、ゲーム状態データベース１４５に記憶される。
【００５８】
スナップショットはまた、ユーザ保存データも含む。一般に、ユーザ保存データは、対応するユーザについてビデオゲームをパーソナライズする情報を含む。これは、ビデオゲームがそのユーザに固有とすることができるキャラクタ（例えば、形状、外観、服装、武器など）によってレンダリングされるように、ユーザのキャラクタに関連付けられた情報を含む。そのようにして、ユーザ保存データは、対応するユーザのゲームプレイについてのキャラクタの生成を可能にし、キャラクタは、スナップショットに関連するビデオゲームにおける所定点に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイするときにユーザ５によって選択されたゲームの難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残りのライフ数、利用可能な総ライフ数、防具、賞品、タイムカウンタ値などを含むことができる。ユーザ保存データはまた、例えば、ユーザ５を識別するユーザプロファイルデータも含むことができる。ユーザ保存データは、データベース１４１に記憶される。
【００５９】
さらに、スナップショットはまた、人工知能（ＡＩ）モジュール２１５によって生成されるランダムシードデータも含む。ランダムシードデータは、オリジナルゲームコードの一部ではないことがあるが、ゲーム環境をより現実的に見えるようにするためにおよび／またはユーザを引き付けるためにオーバーレイに追加されることができる。すなわち、ランダムシードデータは、ユーザのゲームプレイにおける対応する点に存在する追加の特徴をゲーム環境に提供する。例えば、ＡＩキャラクタがランダムに生成されてオーバーレイに表示されることができる。ＡＩキャラクタは、ゲームをプレイするいかなるユーザとも関連付けられないが、ユーザの体験を向上させるためにゲーム環境に配置される。実例として、これらのＡＩキャラクタは、都市のシーンで通りをランダムに歩行することができる。さらに、他のオブジェクトが生成されてオーバーレイに表示されてもよい。例えば、背景における雲や宇宙を飛ぶ鳥が生成され、オーバーレイに表示されてもよい。ランダムシードデータは、ランダムシードデータベース１４３に記憶される。
【００６０】
そのようにして、ユーザ５のゲームプレイを体験したい他のユーザは、興味のあるビデオゲームにおける所定点に対応するスナップショットを選択することができる。例えば、ユーザによってタイムラインまたはノードグラフ内のノードに提示されるスナップショット画像の選択は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が対応するスナップショットにアクセスし、そのスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、そのスナップショットに対応するビデオゲームにおける所定点から始めてビデオゲームを実行することを可能にする。そのようにして、スナップショットは、スナップショットに対応する時点で要求ユーザがユーザ５のゲームプレイにジャンプすることを可能にする。
【００６１】
ゲームプロセッサ２１０は、ビデオゲームをプレイしているユーザ５のタイムラインを表示しているタイムラインジェネレータ２１３を含む。タイムラインは、ビデオゲームを進行している少なくとも１人のユーザ（例えば、ユーザ５および／または他のユーザ）のスナップショット画像を含み、スナップショット画像は、ユーザ５に関連して実行されているビデオゲームのインスタンスの現在レンダリングされている画像に関して提示される。各スナップショット画像は、ユーザ５によるビデオゲームの進行における特定の点でキャプチャされた特定のスナップショットに対応する。例えば、ユーザ５のゲームプレイに関連して生成されたスナップショットおよびスナップショット画像は、ユーザ５のゲームプレイに関連して実行中のビデオゲームのインスタンスの現在レンダリングされている画像の前に発生するビデオゲームにおける点に対応する。すなわち、ユーザ５は、以前にビデオゲームのそれらの点を介してプレイし、それらの点に対応して複数のスナップショットおよびスナップショット画像が生成された。
【００６２】
さらに、第２のユーザのゲームプレイに関連して生成されたスナップショットおよびそれらの対応するスナップショット画像は、ユーザ５のゲームプレイの現在レンダリングされている画像の前後に発生するビデオゲームにおける点に対応することができる。すなわち、第２のユーザは、ビデオゲームをプレイするときにユーザ５よりもさらに進行することができる。したがって、第２のユーザのゲームプレイに対応するスナップショットは、ユーザ５のゲームプレイに関連付けられた現在レンダリングされている画像の前のビデオゲームにおける点で発生してもよく、または現在レンダリングされている画像の後の点で発生してもよい。タイムラインは、現在レンダリングされている画像の後に発生するビデオゲームにおける点に対応するスナップショット画像を含むことができ、および／または現在レンダリングされている画像の前に発生するビデオゲームにおける点に対応するスナップショット画像を含むことができる。
【００６３】
一実施形態では、タイムラインに提示されたスナップショットがユーザ５によって他のユーザのゲームプレイにアクセスするために使用されることができる。すなわち、タイムライン内の選択されたスナップショットの選択は、ユーザ５がスナップショットに対応する点で他のユーザのゲームプレイにジャンプすることを可能にする。例えば、ジャンプゲーム実行エンジン２１６は、選択されたスナップショットに対応する点でビデオゲームの実行を開始するために、様々なデータベースから（例えば、データベース１４０から）スナップショット（例えば、メタデータおよび／または情報）を収集する。一実施形態では、ユーザ５のゲームプレイは、他のユーザのゲームプレイにジャンプすることによって影響を受けない。
【００６４】
他の実施形態では、タイムラインに提示されたスナップショットは、現在レンダリングされている画像の前に発生するユーザ自身のゲームプレイにおける点にアクセスするためにユーザ５によって使用されてもよい。例えば、スナップショットは、ユーザ５のゲームプレイにおいて生成され、タイムラインに提示されることができる。ユーザ５によるスナップショットの選択は、実行エンジン２１６が選択されたスナップショットに対応する以前の点においてビデオゲームの実行を開始するために、様々なデータベースから（例えば、データベース１４０から）スナップショット（例えば、メタデータおよび／または情報）を収集することを可能にする。そのようにして、ユーザ５は、ビデオの特定の部分（例えば、前のレベル）に戻って再生することができる。一実施形態では、ユーザ５の現在のゲームプレイは、同じユーザの以前のゲームプレイにジャンプすることによって影響を受けない。
【００６５】
ゲームプロセッサ２１０はまた、ノードグラフジェネレータ２１４を含む。ユーザ５がビデオゲームを進行するにつれて、ゲームを介した経路が生成される。他のユーザは、特にビデオゲームが複雑な場合、ビデオゲームを介して異なる経路を生成することができる。経路は、ビデオゲームによって確立されたユニバーサル論理経路の一部とすることができ、ユニバーサル論理経路は、ビデオゲームをプレイするときに任意のユーザがとることができる全ての経路を含む。したがって、ユーザ５のゲームプレイに関連する経路は、ユニバーサル論理経路のサブセットとすることができ、ビデオゲームを介したユーザ５の進行を定義する。論理ノードは、ユニバーサル論理経路における様々な点で定義されることができる。例えば、例示として、ノードは、ゲームの開始時、レベルの開始時、ゲームの終了時、レベルの終了時、ユーザが２つ以上の任意の経路間で選択することを可能にする分岐点、ビデオゲームにおける臨界点などで確立されてもよい。
【００６６】
さらに、ノードは、ユーザ５のゲームプレイに関連した経路内の、またはより一般的には任意のユーザのゲームプレイに関連した経路内の様々な点に定義されてもよい。例えば、ノードは、スナップショットに関連して定義されてもよい。これらのノードは、周期的な間隔（例えば、毎分、５分、１０分など）で定義されてもよい。さらに、これらのノードは、ユーザによって手動で定義されてもよい。説明のために、これらのノードはまた、ゲームの開始時、レベルの開始時、ゲームの終了時、レベルの終了時、ユーザが２つ以上の任意の経路間で選択することを可能にする分岐点、ビデオゲームにおける臨界点などで確立されてもよい。
【００６７】
図２は、本開示の実施形態にかかる、ゲームクラウドシステム（ＧＣＳ）２０１に記憶されたビデオゲームのアクセス可能にしてプレイするためのシステムダイアグラム２００を示している。一般的に言えば、ゲームクラウドシステムＧＣＳ２０１は、複数のユーザをサポートするためにネットワーク２２０を介して動作するクラウドコンピューティングシステムとすることができる。さらに、ＧＣＳ２０１は、複数のユーザのビデオゲームのゲームプレイ中に生成されたスナップショットを保存するように構成され、スナップショットは、要求ユーザがスナップショットに対応するビデオゲームの点で始まるビデオゲームのインスタンスを開始するために使用されることができる。さらに、スナップショットの使用によるＧＣＳ２０１は、ユーザがビデオゲームをナビゲートし、ビデオゲームの過去および将来のシーンをプレビューすることを可能にする。さらに、スナップショットは、要求ユーザが対応するスナップショットを介してビデオゲームにおける選択された点にジャンプして他のユーザのゲームプレイを体験することを可能にする。特に、システム２００は、ＧＣＳ２０１、１つ以上のソーシャルメディアプロバイダ２４０、およびユーザ装置２３０を含み、これらは全てネットワーク２２０（例えば、インターネット）を介して接続されている。１つ以上のユーザ装置は、ＧＣＳ２０１およびソーシャルメディアプロバイダ２４０によって提供されるサービスにアクセスするためにネットワーク２２０に接続されることができる。
【００６８】
一実施形態では、ゲームクラウドシステム２０１は、ゲームサーバ２０５、ビデオレコーダ２７１、タグプロセッサ２７３、およびユーザプロファイルマネージャを含むアカウントマネージャ２７４、ゲーム選択エンジン２７５、ゲームセッションマネージャ２８５、ユーザアクセスロジック２８０、ネットワークインターフェース２９０、およびソーシャルメディアマネージャ２９５を含む。ＧＣＳ２０１は、一般にデータストア１４０に記憶されることができる、ゲーム状態ストア、ランダムシードストア、ユーザ保存データストア、スナップショットストアなどの複数のゲーム記憶システムをさらに含むことができる。他のゲーム記憶システムは、ゲームコードストア２６１、記録ゲームストア２６２、タグデータストア２６３、ビデオゲームデータストア２６４、およびゲームネットワークユーザストア２６５を含むことができる。一実施形態では、ＧＣＳ２０１は、ゲームアプリケーション、サービス、ゲーム関連デジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ、およびソーシャルネットワーク間の相互接続性を提供することができるシステムである。ＧＣＳ２０１は、ネットワークインターフェース２９０を介してソーシャルメディアマネージャ２９５を介してユーザ装置２３０およびソーシャルメディアプロバイダ２４０と通信することができる。ソーシャルメディアマネージャ２９５は、１人以上の友達を関連付けるように構成されてもよい。一実施形態では、各ソーシャルメディアプロバイダ２４０は、ユーザのソーシャルネットワーク接続を示す少なくとも１つのソーシャルグラフ２４５を含む。
【００６９】
ユーザＵ０は、ゲームセッションマネージャ２８５を介してＧＣＳ２０１によって提供されるサービスにアクセスすることができ、ユーザＵ０は、図１のユーザ５を表すことができる。例えば、アカウントマネージャ２７４は、ユーザＵ０によるＧＣＳ２０１への認証およびアクセスを可能にする。アカウントマネージャ２７４は、会員ユーザに関する情報を記憶する。例えば、各会員ユーザのユーザプロファイルは、アカウントマネージャ２７４によって管理されることができる。そのようにして、会員情報は、認証目的でアカウントマネージャ２７４によって使用されることができる。例えば、アカウントマネージャ２２７４は、会員ユーザに関するユーザ情報を更新および管理するために使用されることができる。さらに、会員ユーザによって所有されるゲームタイトルは、アカウントマネージャ２７４によって管理されることができる。そのようにして、データストア２６４に記憶されているビデオゲームは、それらのビデオゲームを所有する任意の会員ユーザに利用可能にされる。
【００７０】
一実施形態では、ユーザ、例えばユーザＵ０は、ネットワーク２２０を介した接続によってユーザ装置２３０を介してＧＣＳ２０１およびソーシャルメディアプロバイダ２４０によって提供されるサービスにアクセスすることができる。ユーザ装置２３０は、有線接続または無線接続された、携帯用または非携帯用のプロセッサおよびメモリを有する任意の種類の装置を含むことができる。一実施形態では、ユーザ装置２３０は、スマートフォン、タブレットコンピュータ、または携帯型フォームファクタでタッチスクリーン機能を提供するハイブリッドの形態とすることができる。１つの例示的な装置は、オペレーティングシステムを実行し、ネットワーク２２０を介して取得され、ローカルの携帯型装置（例えば、スマートフォン、タブレット、ラップトップ、デスクトップなど）上で実行されることができる様々なアプリケーション（アプリ）へのアクセスを備える携帯電話装置を含むことができる。
【００７１】
ユーザ装置２３０は、入力コマンド２３６を送信してＧＣＳ２０１およびソーシャルメディアプロバイダ２４０から受信したデータおよび／または情報２３５を表示するためのユーザＵ０に対するインターフェースとして機能するディスプレイ２３２を含む。ディスプレイ２３２は、タッチスクリーン、またはフラットパネルディスプレイ、陰極線管（ＣＲＴ）、またはディスプレイをレンダリングすることができる他の装置によって通常提供されるディスプレイとして構成されることができる。あるいは、ユーザ装置２３０は、デスクトップコンピュータまたはラップトップコンピュータと同様に、装置とは別個にそのディスプレイ２３２を有することができる。
【００７２】
一実施形態では、ユーザ装置１３０は、ユーザＵ０がビデオゲームをプレイすることを可能にするためにＧＣＳ２０１と通信するように構成されている。例えば、ユーザＵ０は、ゲーム選択エンジン２７５を介してビデオゲームデータストア２６４で利用可能なビデオゲームを（例えば、ゲームタイトルなどによって）選択することができる。そのようにして、選択されたビデオゲームが有効化され、ゲームサーバ２０５による実行のためにＧＣＳ２０１にロードされる。一実施形態では、ユーザ装置２３０がＧＣＳ２０１からゲームビデオフレーム２３５のストリームを受信し、ゲームプレイを推進するためのユーザ入力コマンド２３６がＧＣＳ２０１に返送されるように、ゲームプレイは、主にＧＣＳ２０１において実行される。ストリーミングゲームプレイから受信したビデオフレーム２３５は、ユーザ装置２３０のディスプレイ２３２に示される。
【００７３】
一実施形態では、ユーザＵ０がプレイするために利用可能なゲームタイトルを選択した後、選択されたゲームタイトルについてのゲームセッションは、ゲームセッションマネージャ２８５を介してユーザＵ０によって開始されてもよい。ゲームセッションマネージャ２８５は、データストア１４０内のゲーム状態ストアに最初にアクセスし、ユーザＵ０が以前のゲームプレイの停止点からゲームプレイを再開することができるように、もしあれば（選択されたゲームに対して）ユーザＵ０によってプレイされた最後のセッションの保存されたゲーム状態を検索する。再開または開始点が特定されると、ゲームセッションマネージャ２８５は、ゲームコードストア２６１から選択されたゲームタイトルのゲームコードを実行するようにゲームプロセッサ２１０内のゲーム実行エンジンに通知することができる。ゲームセッションが開始された後、ゲームセッションマネージャ２８５は、ネットワークインターフェース２９０を介してゲームビデオフレーム２３５（すなわち、ストリーミングビデオデータ）をユーザ装置、例えばユーザ装置２３０に渡すことができる。
【００７４】
ゲームプレイ中、ゲームセッションマネージャ２８５は、ゲームプロセッサ２１０、記録エンジン２７１、およびタグプロセッサ２７３と通信して、ゲームプレイまたはゲームプレイセッションの記録（例えば、ビデオ）を生成または保存することができる。一実施形態では、ゲームプレイのビデオ記録は、ゲームプレイ中に入力または提供されたタグコンテンツ、および他のゲーム関連メタデータを含むことができる。タグコンテンツはまた、スナップショットを介して保存されることもできる。ゲームプレイのビデオ記録は、そのゲームプレイに対応する任意のゲームメトリクスとともに、記録されたゲームストア２６２に保存されることができる。いかなるタグコンテンツも、タグデータストア２６３に保存されることができる。
【００７５】
ゲームプレイ中、ゲームセッションマネージャ２８５は、ゲームプロセッサ２０４と通信して、ビデオゲームの対応するゲームプレイの結果に影響を及ぼすために使用されるユーザ入力コマンド２３６を配信および取得することができる。ユーザＵ０によって入力された入力コマンド２３６は、ユーザ装置２３０からＧＣＳ２０１のゲームセッションマネージャ２８５に送信されることができる。ゲームプレイを推進するために使用される入力コマンドを含む入力コマンド２３６は、タグコンテンツ（例えば、テキスト、画像、ビデオ記録クリップなど）などを含むユーザ対話型入力を含むことができる。ゲーム入力コマンドならびに任意のユーザプレイメトリクス（ユーザがゲームをプレイする時間など）は、ゲームネットワークユーザストアに記憶されることができる。ビデオゲームについてのゲームプレイに関する選択情報は、ユーザに利用可能とすることができる複数の特徴を可能にするために使用されることができる。
【００７６】
ゲームプレイは、複数のユーザによってＧＣＳ２０１上で実行されることから、これらのゲームプレイから生成されて記憶された情報は、特にゲームプレイがＧＣＳ２０１上で実行されるとき、任意の要求ユーザが他のユーザのゲームプレイを体験することを可能にする。特に、ＧＣＳ２０１は、ＧＣＳ２０１を介してビデオゲームをプレイするユーザのゲームプレイによって生成されたスナップショットを保存するように構成されている。ユーザＵ０の場合、ユーザ装置は、ゲームプレイ中にユーザＵ０がビデオゲームに参加することを可能にするインターフェースを提供する。ユーザＵ０によるゲームプレイのスナップショットが生成されてＧＣＳ２０１に保存される。
【００７７】
また、ユーザ装置１３０は、ユーザＵ０がスナップショットを使用してビデオゲームをプレビューすることを可能にするインターフェースを提供するように構成されている。例えば、ゲームプレイまたは１人以上のユーザのスナップショット画像を見ることによって、ユーザＵ０は、他のユーザがその点を通して既にプレイしてスナップショットを生成している限り、ビデオゲームの任意の点でビデオゲームの１つ以上の部分をプレビューすることができる。さらに、ユーザ装置１３０は、ユーザＵ０がビデオゲームをナビゲートすることを可能にするインターフェースを提供するように構成されている。例えば、スナップショットは、ビデオゲームを進行している１人以上のユーザによってとられた経路を示すノードグラフを生成するために使用されることができる。
【００７８】
さらに、ユーザ装置１３０は、ユーザＵ０または他のユーザのゲームプレイで生成されたスナップショットを使用してビデオゲーム内の選択された点へジャンプすることを可能にするインターフェースを提供するように構成されている。そのようにして、ユーザＵ０は、任意の他のユーザのゲームプレイを体験すること、または自己のゲームプレイに戻って見直しおよび／または再生することを可能にする。すなわち、要求ユーザは、対応するゲームプレイのスナップショットを介して、そのゲームプレイで使用され且つそれに対応するキャラクタを使用してビデオゲームをプレイする。
【００７９】
図３〜図８は、ビデオゲームをプレイするユーザのコンテキスト内で説明される。一般に、ビデオゲームは、ユーザ入力に応答する任意の対話型ゲームとすることができる。説明のみを目的として、図３〜図８に関連して説明されたビデオゲームは、アドベンチャーゲームとすることができ、キャラクタは、世界中を旅しながら様々な障害および困難に遭遇する。キャラクタは、徒歩で移動することができ、またはビデオゲーム内の任意の機械化された手段を介して移動することができる。さらに、キャラクタは、ビデオゲームを最初から最後まで進行するときに遅延をもたらす可能性がある１つ以上の困難に遭遇することがある。
【００８０】
本明細書を通して、図３〜図８の１つ以上のタイムラインにおける時間の使用は、ビデオゲームを通しての進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度ではない。
【００８１】
図３Ａは、本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムライン３１０ａの図であり、タイムラインは、他のユーザのゲームプレイのスナップショット画像とともに、ユーザのゲームプレイのスナップショット画像を示している。さらに、一実施形態では、タイムライン３１０ａは、ＧＣＳ２０１のゲームサーバ２０５のゲームプロセッサ２１０のタイムラインジェネレータ２１３によって生成される。タイムライン３１０ａは、ユーザによる以前のゲームプレイ、ならびに１人以上の他のユーザのゲームプレイを迅速にプレビューするために使用されることができる。
【００８２】
ウィンドウ３５０ａおよびタイムライン３１０ａは、ゲームプロセッサ２１０のゲーム実行エンジン２１１がビデオゲームのインスタンスをインスタンス化する間に表示される。例えば、ウィンドウ３００は、特定のビデオゲームに対するユーザのゲームプレイ中のレンダリング画像３０５を示す。レンダリング画像は、ビデオゲームを通じたユーザの進行における現在点に関連付けられる。示されるように、レンダリング画像３０５において、ゲームプレイにおけるユーザを表すキャラクタ３０６は、オートバイ上にある。キャラクタ３０６は、山岳地形を通る道路を走っているが、落石３０７に遭遇した。ユーザのゲームプレイでは、キャラクタは、レンダリング画像３０５に示されるように、短くてとがった髪を持つ男性であるように選択される。この時点で、ユーザは、ビデオゲームの進行に不満を感じていることがあり、落石のまわりで操縦するための道を模索することを望むことがある。例えば、ユーザは、他のユーザのゲームプレイをプレビューし、ユーザが落石を乗り越えることを可能にする解決策を探り、レンダリング画像３０５によって表されるようにユーザの現在の進行を超えた時点でビデオゲームにおける将来の体験を探ることを望むことがある。これらの他のゲームプレイの探索は、タイムライン３１０ａを介して、より具体的には、タイムライン３１０ａに表示されるように、スナップショット画像、およびそれらの対応するスナップショットを介して可能にされることができる。前述したように、スナップショットは、対応するスナップショットに関連するビデオゲームにおける所定点から始まる対応するビデオゲームのインスタンスの実行を可能にする。特に、ユーザによってタイムラインまたはノードグラフ内のノードに提示されるスナップショット画像のさらなる選択は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が対応するスナップショットにアクセスし、そのスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、そのスナップショットに対応するビデオゲームにおける所定点から始めてビデオゲームを実行することを可能にする。
【００８３】
タイムライン３１０ａは、ウィンドウ３５０ａに表示される。一般に、１人以上のユーザの１つ以上のゲームプレイのスナップショット画像を含む複数のタイムラインがウィンドウ３５０ａに表示されることができる。図３Ａに示すように、ウィンドウ３５０ａは、単一のタイムライン３１０ａを表示することができ、タイムライン３１０ａは、他のユーザによるゲームプレイのスナップショット画像と同様に、ユーザによるゲームプレイのスナップショット画像を含む。スナップショット画像は、サムネイルおよび／またはウィンドウに提示され、ユーザのゲームプレイにおいてビデオゲームの現在レンダリングされている画像に関連して表示される。例えば、現在レンダリングされている画像３０５によって表されるビデオゲームにおける所定点の前に発生するスナップショット画像は、空白のサムネイル３４０ｃの左側に表示されることができ、その点の後に発生するスナップショット画像は、サムネイル３４０ｃの右側に表示されることができる。ウィンドウ３５０ａはまた、図３Ｂに関連してさらに説明されるように、１人以上のユーザによるビデオゲームの１つ以上のゲームプレイのスナップショット画像を含む追加のタイムラインを表示することができる。タイムラインは、ビデオゲームの進行を示しており、必ずしもユーザがビデオゲームをプレイしている時間の長さの尺度ではない。
【００８４】
特に、タイムライン３１０ａは、ユーザによるゲームプレイについてのスナップショット画像を含む。例えば、ユーザによるゲームプレイ中にキャプチャされたスナップショットに対応する複数のスナップショット画像（例えば、画像３４０ａ、３４０ｂ、・・・）は、サムネイルおよび／またはウィンドウのタイムライン３１０ａに表示される。スナップショット画像をまとめて見ると、ユーザのゲームプレイの迅速な履歴が得られる。例えば、スナップショット画像３４０ａは、ランプまたは崖からオートバイを飛び降りるキャラクタ３０６を示している。ゲームのこの時点で、キャラクタ３０６は、スナップショット画像３４０ａの左上隅にある２つの円によって示されるように、２つの可能なライフを有する。その後、ビデオゲームを介したユーザの進行において、スナップショット画像３４０ｂは、森を通ってオートバイで走って山岳に近付いているキャラクタ３０６（まだ２つの可能なライフを有する）を示している。ウィンドウ３００に示されている現在レンダリングされている画像３０５は、キャラクタ３０６が山に到達し、落石３０７に近付いたことを示している。この時点で、キャラクタ３０６は、２つの可能なライフを有する。
【００８５】
レンダリング画像３０５が現在表示されており、ビデオゲームを通じたユーザの進行を表すことから、ユーザによる以前のゲームプレイを表すスナップショット画像のみが表示される。これらのスナップショット画像は、通常、現在表示されているレンダリング画像３０５によって表される点の前に発生するゲーム内の点を表す。説明のみを目的として、キャラクタの可能な総ライフ数は、ユーザにとってビデオゲームの進行の概算を与える。しかしながら、いくつかのビデオゲームは、ユーザがビデオゲームをプレイするにつれて、ユーザが前後に進むことを可能にすることができる。いずれの場合にも、一実施形態では、以前にレンダリングされた画像に対応するスナップショット画像のみがユーザのタイムライン３１０ａに表示されることができる。これらのスナップショット画像は、空白のサムネイル３４０ｃによって表されるタイムライン３１０ａ内の現在レンダリングされている画像３０５に関連して表示される。例えば、スナップショット画像は、空白のサムネイル３４０ｃの左側に表示されてもよい。ビデオゲームの第１の時点でキャプチャされた第１のスナップショット画像を、ビデオゲームを通したユーザの一般的な進行における第１の時点の後に発生する第２の時点で発生する第２のスナップショット画像の左側に表示することによって、２つのスナップショット画像間のさらなる順序付けが達成されることができる。他の実装では、サムネイル３４０ｃは、レンダリング画像３０５に埋められて、タイムライン３１０ａにおけるユーザの現在の進行を示すことができる。
【００８６】
現在レンダリングされている画像３０５の前に発生するビデオゲーム内の点を表すスナップショット画像は、現在レンダリングされている画像３０５の後に発生するビデオゲーム内の点、すなわち将来点を表すスナップショット画像と区別して表示されることができる。一実施形態では、スナップショット画像は、グレーアウトされてもよい。すなわち、現在レンダリングされている画像３０５の前に発生する点に対応するスナップショット画像は、ビデオゲームの進行中に後に発生する点に対応するスナップショット画像よりも低い強度および／または解像度で表示される。スナップショット画像をクロスハッチングで示すこと、またはスナップショット画像をぼかすことなど、他の実施形態がサポートされる。
【００８７】
さらに、タイムライン３１０ａは、他のユーザによるゲームプレイのためのスナップショット画像を含む。一実施形態では、この他のユーザは、ソーシャルメディアマネージャ２９５を通じて発見された友達とすることができる。スナップショット画像はまた、ランダムユーザ、またはビデオゲームで高得点を有するユーザなど、関心の高いユーザのゲームプレイに対応することができる。説明のみを目的として、図３〜図８に関連して提供される例では、これらの他のユーザは、第１の友達Ｆ１、第２の友達Ｆ２、および第３の友達Ｆ３など、現在のユーザの友達と呼ばれる。第１の友達Ｆ１は、長い髪を持つ女性として描かれているキャラクタ３０８をプレイしている。第２の友達Ｆ２は、髪の毛がたくさんある男性として描かれているキャラクタ３０９をプレイしている。第３の友達Ｆ３は、禿頭の男性として描かれているキャラクタ３０３をプレイしている。
【００８８】
特に、タイムライン３１０ａは、第２のユーザ（例えば、女性キャラクタ３０８をプレイしている友達Ｆ１）によるゲームプレイについてのスナップショット画像を含む。例えば、第２のユーザによるゲームプレイ中にキャプチャされたスナップショットに対応する複数のスナップショット画像（例えば、画像３６０ｄ、３６０ｅ、３６０ｆ、・・・）が、サムネイルおよび／またはウィンドウのタイムライン３１０ａに表示される。これらのスナップショット画像は、現在レンダリングされている画像３０５に関連して表示される。例えば、空白のサムネイル３４０ｃの右側に表示されているスナップショット画像３６０ｄ、３６０ｅ、および３６０ｆは、現在レンダリングされている画像３０５の後のビデオゲームにおける所定点で発生する。タイムライン３１０ａには示されていないが、現在レンダリングされている画像の前後のビデオゲームにおける所定点で発生するスナップショット画像（例えば、スナップショット画像３６０ａ、３６０ｂ、および３６０ｃ）もまた、必要に応じて示されることができ、図３Ｂのウィンドウ３５０ｂに表示されているタイムライン３１０ｂに関連してさらに説明される。
【００８９】
スナップショット画像をまとめて見ると、現在レンダリングされている画像３０５の後に発生する将来点における第２のユーザ（例えば、友達Ｆ１）のゲームプレイの迅速な履歴が得られる。例えば、スナップショット画像３６０ｄは、どのようにして川を渡るかを熟考し、３つの可能なライフを有するキャラクタ３０８を示す。ビデオゲームにおいてさらに進行すると、ここでは４つの可能なライフを有するキャラクタ３０８は、スナップショット画像３６０ｅにおいて熊と戦っている。ビデオゲームにおいてさらに進行すると、スナップショット画像３６０ｆにおいて砂漠を運転するここでは５つの可能なライフを有するキャラクタ３０８が示されている。
【００９０】
一実施形態では、タイムラインは、ビデオゲームを通じたユーザによる進行、および利用可能なスナップショット画像に応じて変更されることができる。例えば、現在レンダリングされている画像３０５に関して（例えばユーザまたは他のユーザについて）過去にあまりにも多く発生したスナップショット画像は表示されなくてもよく、（例えば、他のユーザについて）将来にあまりにも早く発生するスナップショット画像もまた、表示されなくてもよい。さらに、他のユーザが変更および／または交換されると、対応するスナップショット画像がタイムラインで更新される。
【００９１】
図３Ｂは、本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示される複数のタイムラインの図であり、タイムラインは、１人以上のユーザのビデオゲームのゲームプレイのスナップショット画像を示している。タイムラインは、ウィンドウ３５０ｂに表示される。一実施形態において、ウィンドウ３５０ｂは、ユーザのゲームプレイにおいて現在レンダリングされている画像３０５とともに表示される。例えば、一実施形態では、タイムライン３１０ｂ、３２０および３３０は、ウィンドウ３５０ｂに表示され、ＧＣＳ２０１のゲームサーバ２０５のゲームプロセッサ２１０のタイムラインジェネレータ２１３によって生成される。タイムラインは、ユーザによる以前のゲームプレイ、ならびに１人以上の他のユーザ（例えば、友達、ランダムユーザ、興味のあるユーザなど）のゲームプレイを素早くプレビューするために使用されることができる。
【００９２】
示されるように、タイムライン３１０ｂは、図３Ａに関して前述したように、ユーザによるゲームプレイのスナップショット画像（例えば、３４０ａ、３４０ｂ、・・・）を含む。これらのスナップショット画像は、図３Ｂに示されるようにサムネイルで表示されてもよく、現在レンダリングされている画像３０５に関して配置される。例えば、これらのスナップショット画像は、現在レンダリングされている画像３０５の左側に表示され、前述したように、後に発生するスナップショット画像の左側に配置された第１のスナップショット画像と一般に並べられる。
【００９３】
さらに、タイムライン３１０ｂは、第２のユーザ（例えば、女性キャラクタ３０８をプレイする第１の友達Ｆ１）によるゲームプレイ中にキャプチャされたスナップショットに対応する複数のスナップショット画像（３６０ａ、３６０ｂ、３６０ｃ、３６０ｄ、３６０ｅ、３６０ｆ、・・・）を含む。これらのスナップショット画像は、タイムライン３１０ｂにサムネイルで表示され、前述したように、現在レンダリングされている画像３０５に関連して配置されている。より具体的には、現在レンダリングされている画像（例えば、スナップショット画像３６０ａ、３６０ｂ、および３６０ｃ）の前後のビデオゲームにおける所定点で発生する、友達Ｆ１によるゲームプレイに対応するスナップショット画像もまた、必要に応じてユーザのスナップショット画像（例えば、３４０ａ、３４０ｂ、・・・）の下方に含まれることができる。現在レンダリングされている画像の前のビデオゲーム進行中の点で発生するスナップショット画像（例えば、３６０ａ、３６０ｂ、・・・）は、空白のサムネイル３４０ｃの左側に配置されることができる。ゲーム進行の指標として、スナップショット画像３６０ａ〜ｃは、２つの可能なライフを有するキャラクタを示す。スナップショット画像３６０ｃは、現在レンダリングされている画像３０５としてビデオゲームの進行のほぼ同じ点で発生し、空白のサムネイル３４０ｃのほぼ下方に配置される。例えば、スナップショット画像３６０ｃおよび現在レンダリングされている画像３０５は、双方とも、それぞれ２つの可能なライフを有する対応するキャラクタを示す。さらにまた、タイムライン３１０ｂにおけるスナップショット画像は、一般に、前述したように、第１のスナップショット画像が後に発生するスナップショット画像の左側に位置するように配置されてもよい。矢印３９９は、第２のユーザである友達Ｆ１に関連付けられたスナップショット画像をリンクすることができる。
【００９４】
まとめて見ると、スナップショット画像は、第１の友達Ｆ１のゲームプレイの迅速な履歴を与える。例えば、友達Ｆ１のキャラクタ３０８は、スナップショット画像３６０ａにおいて、ダウンタウンの街の通りでオートバイに乗って最初に示されている。その後、ビデオゲームによる友達Ｆ１の進行において、スナップショット画像３６０ｂは、森を通ってオートバイに乗り、山岳に近付いているキャラクタ３０８（２つの可能なライフを有する）を示す。ビデオゲームにおいてさらに進行すると、キャラクタ３０８は、スナップショット画像３６０ｃにおいて山岳道路でオートバイに乗っている。例えば、友達Ｆ１のキャラクタ３０８は、ユーザのキャラクタ３０６がレンダリング画像３０５内で現在遭遇している落石のまわりを操縦したことがある。後に、スナップショット画像３６０ｄにおいて、キャラクタ３０８（３つの可能なライフを有する）が川に近付いているのが示される。さらに進行すると、キャラクタ３０８（４つの可能なライフを有する）は、スナップショット画像３６０ｅにおいて熊と戦っており、その後、キャラクタ３０８（５つの可能なライフを有する）は、スナップショット画像３６０ｆにおいて砂漠を運転しているのが示される。
【００９５】
ウィンドウ３５０ｂは、第２の友達Ｆ２などの他のユーザのゲームプレイに関連する他のタイムライン３２０を示している。示されるように、タイムライン３２０は、友達Ｆ２によるゲームプレイのスナップショット画像（３７０ａ、３７０ｂ、３７０ｃ、３７０ｄ、３７０ｅ・・・）を含む。一実施形態では、これらのスナップショット画像は、サムネイルで表示され、現在レンダリングされている画像３０５に関連して配置される。例えば、現在レンダリングされている画像の前のビデオゲーム進行中の点で発生するスナップショット画像（例えば、３７０ａ、３７０ｂ、・・・）は、空白のサムネイル３４０ｃのほぼ左側に配置される。これらのスナップショット画像は、前述したように、表示されているコンテンツをグレーアウトすることによって容易に識別されることができる。スナップショット画像３７０ｃは、現在レンダリングされている画像３０５としてビデオゲームの進行のほぼ同じ点で発生し、空白のサムネイル３４０ｃのほぼ下方に配置される。現在レンダリングされている画像の後のビデオゲーム進行中の点で発生するスナップショット画像（例えば、３７０ｄ、３７０ｅ、・・・）は、空白のサムネイル３４０ｃのほぼ右側に配置される。さらにまた、タイムライン３２０におけるスナップショット画像は、一般に、前述したように、第１のスナップショット画像が後に発生するスナップショット画像の左側に位置するように配置されてもよい。
【００９６】
まとめて見ると、スナップショット画像は、第２の友達Ｆ２のゲームプレイの迅速な履歴を与える。例えば、友達Ｆ２のキャラクタ３０９（２つの可能なライフを有する）は、スナップショット画像３７０ａにおいて川を渡って最初に示される。その後、ビデオゲームによる友達Ｆ２の進行において、スナップショット画像３７０ｂは、徒歩で森を通り抜け、より背の高い山の範囲に近付いているキャラクタ３０９を示す。さらに進行すると、スナップショット画像３７０ｃにおいて偽りの山頂を登る（２つの可能なライフを有する）キャラクタ３０９が示される。さらに後に、スナップショット画像３７０ｄにおいて山の面をフリークライムし、その後、スナップショット画像３７０ｅにおいてボートで湖を渡るキャラクタ３０９（４つの可能なライフを有する）が示される。
【００９７】
ウィンドウ３５０ｂは、第３の友達Ｆ３などの他のユーザのゲームプレイに関連する他のタイムライン３３０を示す。示されるように、タイムライン３３０は、友達Ｆ３によるゲームプレイのスナップショット画像（３８０ａ、３８０ｂ、３８０ｃ、３８０ｄ、３８０ｅ、３８０ｆ、・・・）を含む。一実施形態では、これらのスナップショット画像は、サムネイルで表示され、現在レンダリングされている画像３０５に関連して配置される。例えば、現在レンダリングされている画像の前のビデオゲーム進行中の点で発生するスナップショット画像（例えば、３８０ａ、３８０ｂ、・・・）は、空白のサムネイル３４０ｃのほぼ左側に配置される。これらのスナップショット画像は、前述したように、表示されているコンテンツをグレーアウトすることによって容易に識別されることができる。スナップショット画像３８０ｃは、現在レンダリングされている画像３０５としてビデオゲームの進行のほぼ同じ点で発生し、空白のサムネイル３４０ｃのほぼ下方に配置される。現在レンダリングされている画像の後のビデオゲーム進行中の点で発生するスナップショット画像（例えば、３８０ｄ、３８０ｅ、３８０ｆ、・・・）は、空白のサムネイル３４０ｃのほぼ右側に配置される。さらにまた、タイムライン３２０におけるスナップショット画像は、一般に、前述したように、第１のスナップショット画像が後に発生するスナップショット画像の左側に位置するように配置されてもよい。
【００９８】
まとめて見ると、スナップショット画像は、第３の友達Ｆ３のゲームプレイの迅速な履歴を与える。例えば、友達Ｆ３のキャラクタ３０３（２つの可能なライフを有する）は、スナップショット画像３８０ａにおいて最初に森を通ってオートバイに乗っている。その後、ビデオゲームを介した友達Ｆ３の進行において、スナップショット画像３８０ｂは、川を渡る（２つの可能なライフを有する）キャラクタ３０３を示す。さらに進行すると、スナップショット画像３８０ｃにおいて滝をカヤックで降りるキャラクタ３０３９（３つの可能なライフを有する）が示される。さらに後に、スナップショット画像３８０ｄにおいてモーターボートで湖を横断するキャラクタ３０３が示され、次にスナップショット画像３９０ｅにおいてボートをドッキングするキャラクタ３０３が示される。さらに後の進行において、キャラクタ３０３（５つの可能なライフを有する）は、スナップショット画像３８０ｆにおいて次の目的地まで飛行機で飛んでいるのが示される。
【００９９】
異なるタイムラインと呼ばれるが、ウィンドウ内の全てのタイムラインは、ビデオゲームをプレイしているユーザに属する１つのタイムラインと呼ばれることがある。さらに、一実施形態では、他のユーザに関連付けられたタイムライン（例えば、タイムライン３２０、３３０、および３１０の一部）は、新たなユーザのタイムラインと置き換えることができる。そのようにして、ユーザを回転させるスナップショット画像をユーザに見せることができる。他の実施形態では、明確にするために、より多くのタイムラインが示されてもよく、またはより少ない数のタイムラインが示されてもよい。
【０１００】
さらに他の実施形態では、ウィンドウ３５０ａまたは３５０ｂ内のタイムラインは、完全に異なるゲームまたはコンテンツに関連したスナップショット画像を表示することができる。例えば、タイムラインは、他のビデオゲームをプレビューして試すこと、または他のコンテンツを見ることをユーザに誘惑するように示されてもよい。
【０１０１】
図４Ａは、本開示の一実施形態にかかる、ウィンドウ３５０ａ内に提示されたタイムライン３１０ａの図であり、タイムライン３１０ａは、少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す図３Ａにおいて最初に導入され、スナップショット画像の選択は、スナップショット画像の拡大図を可能にする。前述したように、ウィンドウ３００は、ユーザによるビデオゲームのゲームプレイの現在レンダリングされている画像３０５を示している。タイムライン３１０ａは、現在レンダリングされている画像３０５の前に発生したビデオゲームを介した進行点での（キャラクタ３０６をプレイしている）ユーザによるゲームプレイのスナップショット画像（３４０ａ、３４０ｂ、・・・）を含む。タイムライン３１０はまた、現在レンダリングされている画像３０５の後に発生したビデオゲームを介した進行点での他のユーザ（例えば、キャラクタ３０８をプレイしている友達Ｆ１）によるゲームプレイのスナップショット画像（３６０ｄ、３６０ｅ、３６０ｆ、・・・）を含む。
【０１０２】
より具体的には、スナップショット画像は、サムネイルを介してタイムライン３１０ａに提示される。そのため、サムネイルのサイズに応じて、レンダリング画像がより詳細を表示するには小さすぎることがある。ユーザは、拡大のためにスナップショットを選択することができる。例えば、一実施形態では、ユーザは、スナップショット画像３６０ｅを提示するサムネイル上にカーソル４９０ａを重ねることができる。タッチスクリーン上に表示されたスナップショット画像をタッチするなど、拡大のためのスナップショット画像の選択のための他の方法がサポートされる。ウィンドウ４１０が生成され、選択されたサムネイルのほぼ同じ領域に表示される。ウィンドウ４１０は、レンダリングされたスナップショット画像３６０ｅを表示し、ウィンドウ４１０は、スナップショット画像３６０ｅのより良いビューをユーザに与えるのに十分なサイズからなる。
【０１０３】
明確にするために、スナップショット画像３６０ｅの拡大図がボックス４２０に提示されている。しかしながら、一実施形態では、ウィンドウ４１０および／またはスナップショット画像３６０ｅをさらに選択することによって、ボックス４２０は、ウィンドウ４１０に提示されたものよりもさらに大きいスナップショット画像３６０ｅを示すウィンドウとして表示されることができる。前述したように、スナップショット画像３６０ｅは、他のユーザ（例えば、女性キャラクタ３０８をプレイしている友達Ｆ１）のゲームプレイに関連付けられており、熊に遭遇しているキャラクタ３０８を示している。タイムライン３１０ａに提示されたスナップショット画像をスクロールして拡大画像を見ることによって、ユーザは、友達Ｆ１のゲームプレイをプレビューすることができる。そのようにして、タイムライン３１０ａに提示された選択されたスナップショット画像および／またはユーザによるノードグラフ内のノード（後述）のユーザによるさらなる選択は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、スナップショットに対応するビデオゲームにおける点から初めてビデオゲームを実行することを可能にする。例えば、ユーザは、他のユーザ（例えば、友達Ｆ１）のゲームプレイを体験することができ、または自己のゲームプレイに戻って再体験および／または再生することができる。
【０１０４】
図４Ｂは、本開示の一実施形態にかかる、そのそれぞれが少なくとも１人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す、ウィンドウ３５０ｂに提示された１つ以上のタイムラインの図であり、スナップショットの選択は、スナップショット画像の拡大図を可能にする。図４Ｂに示すタイムラインは、図３Ｂに関連して前述したものであり、タイムライン３１０ｂ、３２０および３３０を含む。特に、タイムライン３１０ｂは、現在レンダリングされている画像３０５の前に発生したビデオゲームを介した進行点でのキャラクタ３０６をプレイしているユーザによるゲームプレイのスナップショット画像を含む。タイムライン３１０ｂは、さらに、現在レンダリングされている画像３０５の前、ほぼ同時に、およびその後に発生したビデオゲームの進行点でキャラクタ３０８をプレイしている友達Ｆ１によってゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像を含む。一実施形態では、スナップショット画像は、サムネイルで提示される。タイムライン３２０は、現在レンダリングされている画像３０５の前、ほぼ同時に、およびその後に発生したビデオゲームの進行点でキャラクタ３０９をプレイしている友達Ｆ２によってゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像（３７０ａ、３７０ｂ、３７０ｃ、３７０ｄ、３７０ｅ・・・）を含む。タイムライン３３０は、現在レンダリングされている画像３０５の前、ほぼ同時に、およびその後に発生したビデオゲームの進行点でキャラクタ３０３をプレイしている友達Ｆ３によってゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像を含む。図４Ｂに示されるように、タイムライン３２０のスナップショット画像との相互作用がさらに説明され、したがって、タイムライン３１０ｂおよび３３０におけるスナップショット画像は、理解を容易にするためにラベル付けされていない。
【０１０５】
より具体的には、スナップショット画像は、サムネイルを介してタイムライン３１０ｂ、３２０および３３０に提示される。そのため、サムネイルのサイズに応じて、レンダリング画像がより詳細を表示するには小さすぎることがある。ユーザは、拡大のために任意のタイムラインでスナップショットを選択することができる。図４Ａは、ユーザに関連するタイムラインにおけるスナップショット画像の選択を示しているが、図４Ｂは、友達に対応するタイムラインのうちの１つにおける拡大のためのスナップショット画像の選択を示している。例えば、一実施形態では、ユーザは、タイムライン３２０内のスナップショット画像３７０ｄを提示するサムネイル上にカーソル４９０ｂを重ねることができる。タッチスクリーン上に表示されたスナップショット画像をタッチするなど、拡大のためのスナップショット画像の選択のための他の方法がサポートされる。拡大ウィンドウ４６０が生成され、選択されたサムネイルのほぼ同じ領域に表示される。ウィンドウ４６０は、レンダリングされたスナップショット画像３７０ｄを表示し、ウィンドウ４６０は、ユーザにスナップショット画像３７０ｄをより良く見せるのに十分なサイズ（例えば、対応するサムネイルよりも大きい）からなる。
【０１０６】
明確さと理解のために、ボックス４６５にスナップショット画像３７０ｄの拡大図が提示されている。しかしながら、一実施形態では、ウィンドウ４６０および／またはスナップショット画像３７０ｄをさらに選択することによって、ボックス４６５は、ウィンドウ４６０に提示されたものよりもさらに大きいスナップショット画像３７０ｄを示すウィンドウとして表示されることができる。前述したように、スナップショット画像３７０ｄは、友達Ｆ２のゲームプレイに関連付けられており、単なる岩の面をフリークライムしているキャラクタ３０９を示している。タイムライン３２０に提示されたスナップショット画像をスクロールして拡大画像を見ることによって、ユーザは、友達Ｆ２のゲームプレイをプレビューすることができる。そのようにして、タイムライン３２０に提示された選択されたスナップショット画像またはユーザによる対応するノードグラフ内のノード（さらに詳細に後述）のユーザによるさらなる選択は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６が対応するスナップショットにアクセスし、選択されたスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、選択されたスナップショットに対応するビデオゲームにおける点から初めてビデオゲームを実行することを可能にする。
【０１０７】
図５Ａは、ビデオゲームのゲームプレイのノードグラフ５３０の図であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中に、図３Ｂにおいて最初に紹介されたウィンドウ３５０ｂ内のタイムライン３１０ｂ、３２０および３３０とともに表示される。特に、タイムライン３１０ｂは、所定点でキャラクタ３０６をプレイしているユーザのゲームプレイのスナップショット画像、ならびに他のユーザ（例えば、キャラクタ３０８をプレイしている友達Ｆ１）のゲームプレイのスナップショット画像を示し、タイムライン３２０は、キャラクタ３０９をプレイしている友達Ｆ２によるゲームプレイのスナップショット画像を示し、タイムライン３３０は、キャラクタ３０３をプレイしている友達Ｆ３によるゲームプレイのスナップショット画像を示している。前述したように、各タイムライン内のスナップショット画像は、現在レンダリングされている画像３０５に関連して提示される（例えば、空白のサムネイル３４０ｃによって表されるように）。ウィンドウ３００はまた、ユーザによるビデオゲームのゲームプレイの現在レンダリングされている画像３０５を示す。
【０１０８】
図５Ａに示されるように、スナップショット画像３６０ｅは、タイムライン３１０ｂにおける拡大のために（例えば、対応するサムネイルの対話を介して）選択される。スナップショット画像３６０ｅは、現在レンダリングされている画像３０５の後（例えば、将来）に発生するゲームにおける所定点での友達Ｆ１のゲームプレイに関連付けられる。特に、一実施形態では、ユーザは、タイムライン３１０ｂ内のスナップショット画像３６０ｅを提示するサムネイル上にカーソル５９０ａを重ねることができる。タッチスクリーン上に表示されたスナップショット画像をタッチするなど、拡大のためのスナップショット画像の選択のための他の方法がサポートされる。前述したように、ウィンドウ４１０は、拡大されたスナップショット画像３６０ｅを示す。
【０１０９】
さらに、ノードグラフ５３０がウィンドウ５１０に提示される。一実施形態では、ノードグラフ５３０は、ユーザがビデオゲームを進行するにつれてキャラクタが選択することができる様々な経路に対応する複数のノードを含む。一実施形態では、ノードグラフ５３０は、図５Ｂでさらに説明されるように、ビデオゲームの全てのノードを示すユニバーサルグラフとしてウィンドウ５１０に提示されることができる。一実施形態では、ノードグラフ５３０は、図５Ｃに関連してさらに説明されるように、特に関心のあるノードを示すユニバーサルグラフのノードのサブセットを含むように提示されてもよい。例えば、ノードのサブセットは、１つ以上のタイムラインに表示されるスナップショット画像に対応することができる。
【０１１０】
ウィンドウ５１０は、右下隅に示されているが、ウィンドウ５１０は、ウィンドウ３００内のどこにでも配置できることを理解されたい。さらに、ウィンドウ５１０は、見るのに適した情報を提供するのに十分な大きさとすることができる。さらなる選択は、ウィンドウ３００内の拡大ウィンドウとして、またはフルスクリーン上にウィンドウ５１０を表示することができる。
【０１１１】
示されるように、ユーザが拡大のためにタイムライン３１０ａ内のスナップショット画像３６０ｅを選択することに応答して、ノードグラフ５３０内のノード５７２が自動的に強調表示されることができる（例えば、太字、拡大、着色など）。ノード５７２は、スナップショット画像３６０ｅの位置にほぼ対応し、スナップショット画像３６０ｅについてビデオゲームの世界内のコンテキストを与える。すなわち、ユーザは、タイムライン３１０ｂ内のスナップショット画像３６０ｅの選択を通じてスナップショット画像３６０ｅに関心があることから、スナップショット画像３６０ｅのより大きなビューを示すウィンドウ４１０が提示され、ノード５７２がノードグラフ５３０において強調表示される。ノード５７２はまた、ユーザによるノードグラフ５３０内のノードの手動選択を通じて強調表示されてもよい。
【０１１２】
要約すると、ノードグラフ５３０は、ウィンドウ５１０内に自動的にまたはユーザ要求に応じて提示されてもよく、ノードグラフ５３０は、タイムライン３１０ａに提示されるスナップショット画像に対応するノードのサブセットを含む。さらに、ノード５７２は、提示されて強調表示されることができ、ノード５７２は、スナップショット画像３６０ｅに対応するビデオゲームのゲームプレイにおける点のおおよその位置を示す。さらに、ノード３７２に対応するスナップショット画像３６０ｅは、ウィンドウ５２０に提示されてもよく、ウィンドウ５２０は、ウィンドウ４１０よりも大きく、スナップショット画像３６０ｅのさらに大きなビューを示してもよい。
【０１１３】
そのようにして、ユーザには、ビデオゲームの多次元ビューが提示される。例えば、ユーザには、レンダリング画像３０５を介して自己のゲームプレイの現在のビューが提示される。ユーザのゲームプレイ（例えば、レンダリング画像３０５およびユーザタイムライン内のスナップショット画像を介して）もまた、ビデオゲームにおける様々な進行点を通して他のユーザのゲームプレイのクイックプレビューを示す１人以上のユーザの１つ以上のタイムラインとともに提示される。スナップショット画像は、タイムライン内のスナップショット画像に関連付けられたビデオゲームを通る経路、またはビデオゲーム内の全ての可能な経路を示すノードグラフとともに提示されてもよい。
【０１１４】
図５Ｂは、本開示の一実施形態にかかる、ビデオゲームで利用可能な全ての可能な経路を示すユニバーサルノードグラフ５５０またはノードツリーの図である。ユニバーサルノードグラフ５５０は、図５Ａのウィンドウ５１０に表示されることができる。例えば、ビデオゲームは、ノード５５１によって示されるような開始点と、ノード５５２によって示されるような終了点とを含むことができる。１つの終了点が示されているが、一般にユニバーサルノードグラフは、ビデオゲームを終了するための１つ以上の選択肢を表す１つ以上の終了点を有することができる。さらに、ビデオゲームは、対応するユニバーサルノードグラフに表される１つ以上の開始点を有することができる。
【０１１５】
ユニバーサルノードグラフ５５０は、ユーザがビデオゲームを進行するにつれてキャラクタが選択することができる様々な論理経路（本明細書では「経路」とも呼ばれる）を定義する複数のノード（例えば、論理ノード）を含む。例えば、論理経路５１１は、ノード５０２および５０３の間に定義される。さらに、ユニバーサルノードグラフ５５０はまた、ノードのサブセットを含むことができる。例えば、ユニバーサルノードグラフ５５０のサブセットであるノードグラフ５３０は、図５Ｂのタイムライン３１０ｂに表示されたスナップショット画像に対応するノードおよび経路を含む。ノードグラフ５３０もまた、図５Ａのウィンドウ５１０に示されている。
【０１１６】
複数の論理経路は、ユニバーサルグラフ５５０を介してノードからノードへと線形に進行するように構成されることができる。例えば、ユーザは、論理経路５１４および５１１に沿ってノード５０１から５０３の間で（例えば、ノード５１０からノード５０２へ、そしてノード５０３へ）ノードグラフ５３０を通って線形に移動する。すなわち、ノード５０１とノード５０３との間を移動するときに他の論理経路をとることはできない。
【０１１７】
さらに、複数の論理経路がノードからノードへと非線形に進行するように構成されることができる。例えば、ユーザは、論理経路５１１に沿ってノード５０３に到達すると、ノードグラフ５５０を通って非線形に移動する。特に、ノード５０３では２つの選択肢が利用可能であり、第１の選択肢では、キャラクタは経路５１２をとることができ、第２の選択肢では、キャラクタは経路５１３をとることができる。２つの異なる経路をとることから異なる結果が生じることがある。
【０１１８】
ビデオゲームの進行は、一般に、開始点５５１に関連付けられた時間またはマーク５２１で始まり、終了点５５２に関連付けられた時間またはマーク５２２で終わるユニバーサルタイムライン５２９によって定義されることができる。タイムライン５２９における時間の使用は、ビデオゲームを通して進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイした時間の長さの尺度ではない。ユーザがユニバーサルノードグラフ５３０を介してノードからノードへ移動するにつれて、代表的な時間またはマークは、タイムライン５２９上に配置されることができる。例えば、タイムライン５２９において、ノード５０１はマーク５２３として表されることができ、ノード５０３はマーク５２４として表されることができる。進行は、タイムライン５２９に沿って左から右へと測定されることができる。例示として、ノード５０１は、ビデオゲームの進行においてノード５０３の前に発生する。したがって、ノード５０１を表すマーク５２３は、ノード５０３を表すマーク５２４の左側に表示される。さらに、進行は、前述したように、ユーザに関連付けられた様々なキャラクタ値を介してタイムライン５２９およびノードグラフ５５０に関連してさらに示されることができる。例えば、進行は、どの程度多くの可能なライフがキャラクタに利用可能であるか、またはどの程度多くの点数またはキャッシュをキャラクタが累積したかによって測定されることができる。
【０１１９】
図５Ｃは、本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショットに関連して生成されたスナップショットノードの階層を示す、図５Ａにおいて最初に紹介されたノードグラフ５３０の拡大図である。一実施形態では、ノードグラフ５３０は、ユーザによるビデオゲームのゲームプレイ中に１つ以上のタイムライン（例えばタイムライン３１０ｂ、３２０、および３３０）とともに表示される。例えば、ノードグラフ５３０は、図５Ａのウィンドウ５１０内に表示されてもよく、またはさらに大きなウィンドウ内に表示されてもよい。例示のために、ウィンドウ５１０に表示されたノードグラフ５３０の拡大図が図５Ｃに示される。ノードグラフ５３０内のスナップショット画像および対応するスナップショットノードを参照するためのウィンドウ３５０ｂの概要が図５Ｃに提示されている。
【０１２０】
特に、スナップショットノードは、スナップショットがキャプチャされたビデオゲームのゲームプレイにおける点に対応する。一般に、スナップショットは、ユニバーサルノードグラフ５５０のノードでキャプチャされてもよい。したがって、スナップショットノードは、ユニバーサルノードグラフ５５０内のノードと整列してもよい。しかしながら、スナップショットがユニバーサルグラフの２つのノード間で（例えば、論理経路の途中で）キャプチャされたときなど、いくつかのスナップショットノードは、ユニバーサルグラフ５５０内のノードと整列しないことがある。例えば、スナップショットノード５６１は、ユニバーサルノードグラフ５５０内の２つのノード（ノード５６０および５６２に対応する）間でキャプチャされてもよい。
【０１２１】
ノードグラフ５３０は、対応するユーザのゲームプレイ中にキャラクタがたどった様々な実際の経路を定義する複数のスナップショットノードを含む。例えば、経路５７９は、スナップショットノード５６０および５６１の間に定義される。経路５７９は、友達Ｆ１のゲームプレイと同様に、ユーザのゲームプレイにおいてもとられるように示されている。ノードグラフ５３０は、１人以上のユーザのゲームプレイで定義されるように、線形経路および非線形経路の一方または双方を示してもよい。
【０１２２】
一実施形態では、ノードグラフ５３０は、ウィンドウ３５０に表示されたタイムライン３１０ｂ、３２０および３３０に示されたスナップショット画像に対応する。例えば、スナップショットノード５６２は、ユーザの現在レンダリングされている画像３０５を表すボックス３４０ｃに対応し、スナップショットノード５０７は、友達Ｆ１のスナップショット画像３６０ｅに対応し、スナップショットノード５９５は、友達Ｆ２のスナップショット画像３７０ａに対応し、スナップショットノード５６５は、友達Ｆ３のスナップショット画像３８０ｄに対応する。そのようにして、タイムライン内のスナップショット画像および現在レンダリングされている画像、ならびにノードグラフ５３０内のスナップショットノードなど、関連するビデオゲームの少なくとも２つ以上のビューがユーザに提示される。現在レンダリングされている画像３０５を（ノードグラフ５３０内のその位置とともに）他のスナップショット画像（およびノードグラフ５３０内のそれらの位置）と相互参照することによって、ユーザは、どの経路が現在レンダリングされている画像に関連付けられているビデオゲームにおける点の周囲でユーザに利用できるかを理解することができる。したがって、ユーザは、ビデオゲームのユニバーサルノードグラフ５５０およびノードグラフ５３０内でキャラクタ３０６を方向付けることができる。そのようにして、ユーザは、ゲーム内の１つの点から他の点へナビゲートすることができる。一実施形態では、スナップショットノードが図５Ｃに示されているが、ノードグラフ５３０は、ユニバーサルノードグラフ５５０によって定義されるように論理経路を定義するノードを含むことができる。
【０１２３】
より具体的には、ユーザがキャラクタ３０６をプレイすることによってたどられる経路は、細かい解像度で点在している線Ａによって示されている。例えば、ユーザはスナップショットノード５６０、５６１、および５６２の間を移動している。スナップショットノード５６２から、ユーザのキャラクタ３０６は、スナップショットノード５６２からスナップショットノード５６３および５６４を通って上向きに移動する第１の経路と、スナップショットノード５６２からスナップショットノード５６５乃至５６９を通って（例えば、ノード５６５からノード５６６へ、ノード５６７へ、ノード５６８へ、そしてノード５６９へ）下向きに移動する第２の経路とをとっている。友達Ｆ１のキャラクタ３０８がたどる経路は、実線Ｂで示されている。例えば、友達Ｆ１のキャラクタ３０８は、スナップショットノード５６０、５６１、５６２、５６５、５７０、５７１、５７２、５７３、および５７４によって定義された経路に沿って移動している。また、友達Ｆ２のキャラクタ３０８がたどる経路は、これが粗い解像度で点在している線Ｃで示されている。例えば、友達Ｆ２のキャラクタ３０８は、スナップショットノード５９５、５９６、５９７、５９８、５９９、および５６９によって定義された経路に沿って移動している。友達Ｆ３のキャラクタ３０３がたどる経路は、線Ｄで示されており、キャラクタ３０３がスナップショットノード５６０、５８１、５８２、５８３、５６５、５８４、５８５、および５６８によって定義された経路に沿って移動していることを示している。
【０１２４】
ビデオゲームの進行において、ユーザは、現在レンダリングされている画像３０５に関連するビデオゲームにおける所定点に対応するが、スナップショットノード５６２に戻ってきたスナップショットノード５６２を越えて発生するまたはその将来に発生する経路をたどっている。例えば、スナップショットノード５６２を越えてスナップショットノード５６４で終わる第１の経路は、行き止まりに到達したかもしれない。また、スナップショットノード５６２を越えてノード５６９で終わる第２の経路は、ユーザにとって不満足なものである可能性がある。ユーザに関連付けられている現在レンダリングされている画像３０５を超えて発生しているスナップショットノードに対応するスナップショット画像は、タイムライン３１０ｂには示されていないが、他の実施形態では示されてもよい。
【０１２５】
ユーザは、この領域でビデオゲームの刺激的な部分（熊に遭遇すること）についての噂を聞くことがあるため、ゲーム進行においてノード５６２に戻ったが、これまでのところアクションを見逃している。ユーザは、刺激的な部分に何らかの形でノード５６２を介して到達していると考えている。本開示の実施形態は、他のユーザのゲームプレイをプレビューし、ビデオゲームの刺激的な部分に到達するためにビデオゲームにおいてとるための潜在的な経路をレイアウトすることによって、ユーザがビデオゲームを通る代替経路を発見する方法を提供する。例えば、ユーザは、タイムライン３１０ｂにおいてキャラクタ３０８をプレイしている友達Ｆ１のスナップショット画像をプレビューし、スナップショット画像３６０ｅに対応するスナップショットノード５０７に関連して熊との遭遇が発生することを発見することができる。参考のために、スナップショット画像３６０ｅがボックス５０９に示されている。タイムラインで提示されたスナップショット画像、および／またはノードグラフを導入しなければ、ユーザは、これらの関心のある領域をプレビューおよび／または発見するのに苦労するであろう。
【０１２６】
特に、ユーザは、タイムライン３１０ｂ内のスナップショット画像を見ることによってスナップショット画像３６０ｅを発見することができ、またはノードグラフ５３０を探索することによってそれを発見することができる。例えば、タグ５０７は、ユーザの注意を引くことができる図５Ｃのノードグラフ５３０においてスナップショットノード５７２の隣に示されている。ノードグラフ５３０内のノード５７２と対話することによって、図５Ａのウィンドウ５２０のように、スナップショット画像３６０ｅのビューがユーザに提示されることができる。また、ノードグラフ５３０内のスナップショットノード５７２を選択することによって、注意のためにタイムライン３１０ｂ内の対応するスナップショット画像３６０ｅが強調表示（例えば太字）されることができる。そのようにして、ユーザは、対応するサムネイルをロールオーバーしてスナップショット画像３６０ｅの拡大版を見ることができる。前述の通りである。他の実装では、ノードグラフ５３０がそれ自体の支配的なウィンドウ（例えば、フルスクリーン、またはオーバーレイウィンドウ３００）に提示されている場合、スナップショットノード５７２との対話は、スナップショット画像３６０ｅを他のウィンドウ（図示せず）に表示することができる。
【０１２７】
友達Ｆ１のゲームプレイおよびノードグラフ５３０をプレビューした後、ユーザは、スナップショット画像３６０ｅに対応するビデオゲーム、より具体的には友達Ｆ１のゲームプレイをさらに探索したいと思うことがある。前述したように、本開示の実施形態は、ユーザが友達Ｆ１のゲームプレイにジャンプすることを可能にする。特に、タイムライン３１０ｂまたはノードグラフ５３を介したスナップショット画像３６０ｅのユーザによるさらなる選択は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６がスナップショット画像３６０ｅに対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、スナップショットおよびそのスナップショット画像３６０ｅに対応するビデオゲームにおける所定点（ここではジャンプ点として特定される）から始めてビデオゲームを実行することを可能にする。そのようにして、ユーザは、友達Ｆ１のゲームプレイを通してノード５０７（熊に遭遇する）においてビデオゲームを完全に体験することができる。すなわち、ユーザは、ジャンプノード５７２において友達Ｆ１のキャラクタ３０８にジャンプし、（スナップショット画像３６０ｅに対応する）ジャンプノード５７２に対応するビデオゲームの時点で始まる友達Ｆ１のゲームプレイのインスタンス化をプレイする。したがって、ユーザは、最も刺激的な部分でゲームプレイにジャンプすることができる。
【０１２８】
ユーザは、友達Ｆ１のゲームプレイを体験した後に、友達Ｆ１のゲームプレイによって以前にキャプチャされたのと同じスナップショットノード５７２（熊に遭遇）へのナビゲートを試みることを決定してもよい。ノードグラフ５３０は、現在レンダリングされている画像３０５に関連付けられているノード５６２であるユーザの現在位置からスナップショットノード５７２に到達するために友達Ｆ１がたどる経路へのビューを提供する。例えば、ノードグラフは、ノード５６２とスナップショットノード５７２との間の移動がスナップショットノード５６５および５７０を介して可能であることを示す。
【０１２９】
図６Ａは、本開示の一実施形態にかかる、選択されたスナップショットノード（例えば、スナップショット画像３６０ｅに関連付けられたスナップショットノード５７２）と密接に且つ線形的に整列したスナップショットノードのクラスタの図であり、スナップショットノードは、タイムライン３１０ａまたはノードグラフ５３０を通じて選択されることができる。特に、タイムライン３１０ａは、（空白のサムネイル３４０ｃによって表されるように）現在レンダリングされている画像３０５の前に発生したビデオゲームを介した進行点におけるユーザによるゲームプレイのスナップショット画像（３４０ａ、３４０ｂ、・・・）を含む。タイムライン３１０ａは、さらに、前述したように、友達Ｆ１によるゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像（３６０ｄ、３６０ｅ、３６０ｆ、・・・）を含む。さらに、スナップショット画像のそれぞれは、ノードグラフ５３０に提示されるものなどのスナップショットノードに対応する。
【０１３０】
タイムライン３１０ａは、ユーザおよび友達Ｆ１のゲームプレイ中にキャプチャされた複数のスナップショットから選択されたスナップショット画像を示してもよい。友達Ｆ１のスナップショットおよびスナップショット画像は、粗いおよびより高い解像度を有するスナップショット画像の提示を説明するために使用される。例示の目的のために、友達Ｆ１のゲームプレイ中に、１００個のスナップショットがキャプチャされ、それらがキャプチャされた順に１から１００まで番号を付けることができる。タイムライン３１０ａは、キャプチャされたスナップショットに対応する全てのスナップショット画像を表示するのに十分なスペースを持たないことがある。したがって、スナップショット画像のサブセットのみがタイムライン３１０に提示される。さらに、タイムライン３１０ａ内に並べて提示されたスナップショット画像は、連続的におよび／または順番にキャプチャされないことがある。例えば、図６Ａのタイムライン３１０ａに示されるように、スナップショット画像３６０ｅは、キャプチャされた順序で５０の番号が付けられ、すぐ右側のスナップショット画像は、６０の番号が付けられたスナップショット画像３６０ｆである。そのため、スナップショット画像３６０ｅとスナップショット画像３６０ｆとの間に９つのスナップショット画像がキャプチャされたが、タイムライン３１０ａには示されていない。
【０１３１】
一実施形態では、キャプチャされたスナップショットに基づいて、より高解像度のスナップショット画像が生成されて提示されることができる。特に、タイムライン３１０ａまたはノードグラフ５３０を介した画像３６０ｅなどのスナップショット画像のさらなる選択は、より高い解像度でのスナップショット画像の提示を可能にするであろう。さらに、一実施形態では、スナップショット画像は、ゲームプレイ中にユーザ（例えば、友達Ｆ１）がたどった経路を示すノードグラフ／ツリー構成で提示される。すなわち、各スナップショット画像は、ノードを表し、スナップショット画像は、ノードグラフ構成で提示される。例えば、ウィンドウは、それらの対応する画像を介してスナップショットノードを表示することができ、スナップショットノードは、選択されたスナップショット画像３６０ｅに対応するスナップショットの前および／または後に連続的にキャプチャされる。スナップショット画像３６０ｅは、前述したように、友達Ｆ１のゲームプレイを開始するためにユーザによって選択されたジャンプ点に対応する。ジャンプ点として選択される前後に、ユーザは、スナップショット画像３６０ｅに関連する様々なスナップショット画像を見たいと思うことがある。
【０１３２】
図６Ａに示されるように、スナップショット画像の線形進行は、選択されたスナップショット画像３６０ｅに関して様々なサムネイルで提示される。スナップショット画像３６０ｅおよびその対応するスナップショットはまた、前述したようにジャンプ点（ＪＰ）とも呼ばれる。選択されたスナップショット画像３６０ｅおよびＪＰは、キャプチャされたスナップショットの順序で５０と番号付けされたスナップショットに関連付けられる。図６Ａは、４つのスナップショット画像６１０、３６０ｅ、６１５、および６２０が示されており、ＪＰの前にキャプチャされた１つのスナップショット（スナップショットＪＰ−１）、ＪＰ、およびＪＰの後にキャプチャされた２つのスナップショット（スナップショットＪＰ＋１およびＪＰ＋２）に対応することを示している。すなわち、スナップショット画像は、連続した番号のスナップショット４９〜５２に対応する。例えば、スナップショット画像６１０（ＪＰ−１）、スナップショット画像３６０ｅ（ＪＰ）、スナップショット画像６１５（ＪＰ＋１）、およびスナップショット画像６２０（ＪＰ＋２）は、４９〜５２の順番に並べられている。そのようにして、ユーザは、ノードグラフ構成でスナップショット画像３６０ｅの周りの友達Ｆ１のゲームプレイにおける動作をより高い解像度で見ることができる。
【０１３３】
図６Ｂは、本開示の一実施形態にかかる、選択されたスナップショットノード（例えば、スナップショット画像３６０ｅに対応するスナップショットノード５７２）と密接に且つ非線形に整列されたスナップショットノードのクラスタの図であり、スナップショットノードは、図６Ａに関連して前述したように、タイムライン３１０ａまたはノードグラフ５３０を通じて選択されることができる。図６Ａは、スナップショット画像３６０ｅに対応するジャンプ点ＪＰの周囲のビデオゲームの線形進行を示しているが、図６Ｂは、ＪＰの周囲のビデオゲームの非線形進行を示している。
【０１３４】
例えば、スナップショット画像は、ゲームプレイ中に友達Ｆ１がたどった経路を示すノードグラフ／ツリー構成で提示される。すなわち、各スナップショット画像は、ノードを表し、スナップショット画像は、ノードグラフ構成で提示される。図６Ｂに示すように、スナップショット画像の非線形進行は、５０の順序番号を有するＪＰとも呼ばれる選択されたスナップショット画像３６０ｅに関して様々なサムネイルで提示される。８枚のスナップショット画像が示されている。特に、スナップショット画像６０５は、順序４８のスナップショットノードＪＰ−２に対応する。また、スナップショット画像６１０は、順序４９のスナップショットノードＪＰ−１に対応し、スナップショットノードＪＰ−１は、非線形構成を示す決定ノードである。順序番号５０Ａ〜Ｂで表されるように、２つの選択肢が利用可能である。スナップショットノードＪＰ−１から生じる１つの選択は、順序５０Ｂのスナップショット画像６１３に行く。スナップショットノードＪＰ−１から生じる他の選択は、スナップショット画像３６０ｅおよび順序番号５０Ａに対応するスナップショットノードＪＰにルーティングする。この経路は、（スナップショット画像６１５および順序番号５１に関連する）連続番号のスナップショットＪＰ＋１および（スナップショット画像６２０および順序番号５２に関連する）スナップショットＪＰ＋２を通って続く。
【０１３５】
図６Ｃ〜Ｆは、本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされ且つ図６Ａ〜Ｂに関連して説明されたスナップショットノードのクラスタに対応するスナップショット画像の図である。例えば、図６Ｃは、スナップショット画像６１０を示しており、洞窟を出るときに最初に熊に遭遇する友達Ｆ１のゲームプレイで使用されるキャラクタ３０８を示している。スナップショット画像６１０は、順序番号４９のスナップショットノードＪＰ−１に対応する。図６Ｄは、スナップショット画像３６０ｅ（スナップショットノードＪＰおよび順序番号５０に関連する）を示しており、熊と密接に接触しているキャラクタ３０８を示している。キャラクタ３０８は、おそらくキャラクタ３０８に利用可能な唯一の道具および／または武器であるコイル状ロープを取り扱うように示されている。図６Ｅは、スナップショット画像６１５（スナップショットノードＪＰ＋１および順序番号５１に関連する）を示しており、ロープを使用して熊の各脚を木に結び付けることによってキャラクタ３０８が熊を抑制したことを示している。図６Ｆは、スナップショット画像６２０（スナップショットノードＪＰ＋２および順序番号５２に関連する）を示しており、熊に対する彼女の勝利の成果を楽しんでいるキャラクタ３０８を示している：武器および他の報酬アイテム（例えば、コイン、貴石など）がとるために利用可能である。
【０１３６】
図７は、本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショット、およびそれらのスナップショットのそれぞれをデータストア７５０の別個のマスタファイルとして記憶することの図である。これらのマスタファイルは、業界で一般的であるように、ユーザがビデオゲームを進行するにつれて自動的に消去されたり上書きされたりすることはない。そのようにして、各スナップショットに関連する情報およびメタデータは、（例えば、タイムラインに）スナップショット画像、ノードグラフを提示し、同じまたは他のユーザのゲームプレイにおけるジャンプ点へのジャンプを可能にするために、いつでも容易にアクセスされることができる。
【０１３７】
例えば、特定のユーザのゲームプレイに関して複数のスナップショットがキャプチャされる。スナップショットは、キャプチャの順序で連続的に番号付けされる（すなわち、１−Ｎ）。図７に示すように、少なくともスナップショット７１１（順序２０）、スナップショット７１２（順序３１）、スナップショット７１３（順序３２）、およびスナップショット７１４（順序３３）がキャプチャされる。
【０１３８】
各スナップショットは、スナップショットに対応するビデオゲームにおける所定点から始まるビデオゲームのインスタンスをロードして実行するのに十分な情報および／またはメタデータを含む。例えば、各スナップショットは、前述したように、データベース１４５に記憶されたゲーム状態データ、データベース１４６に記憶されたスナップショット画像データ、データベース１４３に記憶されたランダムシードデータ、およびデータベース１４１に記憶されたユーザ保存データを少なくとも含む。一実施形態では、メタデータは、２つの連続して順序付けられたスナップショットで、およびその間でビデオゲームのインスタンスを推進するために使用される入力コマンドを含む。各スナップショットは、データストア７５０内の対応するマスタファイルに記憶され、特定のスナップショットに対応するマスタファイルは、関連アクセスのためのこれらのデータベースのそれぞれへのポインタを含むことができる。示されるように、スナップショット７１１は、マスタファイル７５１に記憶され、スナップショット７１２は、マスタファイル７５２に記憶され、スナップショット７１３は、マスタファイル７５３に記憶され、スナップショット７１４は、マスタファイル７５４に記憶される。
【０１３９】
図８は、本開示の一実施形態にかかる、同じまたは他のユーザによるビデオゲームの他のゲームプレイ中にキャプチャされたスナップショットに基づくそのユーザによる他のジャンプゲームプレイへの間欠的なジャンプを含む、ビデオゲームのユーザのゲームプレイの複数のセグメントの図である。例えば、図３〜図６に関連して前述したように、現在レンダリングされている画像３０５がウィンドウ３００上に表示されているキャラクタ３０６を用いてゲームをプレイするユーザは、スナップショット画像３６０ｅによって定義されるジャンプ点（ＪＰ）において（キャラクタ３０８によって）友達Ｆ１のゲームプレイにジャンプすることを選択することができる。タイムライン３１０ａおよび／または３１０ｂは、ユーザにスナップショット画像３６０ｅのプレビューを提供する。さらに、スナップショット画像３６０ｅは、前述したように（例えば、強調表示などによって）スナップショットノード５７２におけるその対応する位置に関連付けられることができるため、ノードグラフ５３０は、ビデオゲーム内のスナップショット画像にコンテキストを与える。ユーザによる友達Ｆ１およびキャラクタ３０８のゲームプレイへのジャンプの開始は、友達Ｆ１のオリジナルゲームプレイ中にスナップショットノード５７２でキャプチャされたスナップショットに基づいて可能にされる。ジャンプの開始は、タイムライン３１０ａまたは３１０ｂにおけるスナップショット画像３６０ｅのさらなる選択を通して、またはノードグラフ５３０におけるノード５７２の選択を通して可能にされることができる。同じまたは他のユーザのゲームプレイへのジャンプの開始のサポートは、任意の手段または方法（例えば、ジャンプ選択ウィンドウなど）を介して達成されることができる。
【０１４０】
一実施形態では、ジャンプゲームプレイにおいて複数のスナップショットがキャプチャされる。さらに、ジャンプゲームプレイのビデオ記録は、後のアクセスのためにキャプチャされて記憶されてもよい。そのようにして、任意のユーザは、ジャンプゲームプレイにおける任意のスナップショットを介してジャンプゲームプレイをプレイすることができる。一実施形態では、ジャンプゲームプレイのスナップショット画像は、タイムラインに配置され、それを通してジャンプゲームプレイが前述したようにインスタンス化されてもよい。
【０１４１】
ユーザとビデオゲームとの対話は、ユーザのゲームプレイ８３０のセグメントに関連して説明されることができる。示されるように、ユーザのゲームプレイ８３０は、第１のセグメント８３１と第２のセグメント８３２とを含む。特に、ユーザのゲームプレイ８３０の第１のセグメント８３１は、ユーザとビデオゲームとの現在のまたは最初の対話を定義する。したがって、図３Ａの現在レンダリングされている画像３０５は、第１のセグメント８３１と関連付けられてもよい。例示のために、スナップショットノードグラフ８１０は、図５Ｃに関連して前述したノードグラフ５３０の一部を示している。ユーザのゲームプレイ８３０の第１のセグメント８３１内でキャラクタ３０６がたどる経路は、破線８１１で示されており、スナップショットノード５６０、５６１、および５６２を含む。キャラクタ３０６が１つの経路８１２を介してスナップショットノード５６２のさらに右側に（例えば、さらに進行して）ノード５６３および５６４まで、および第２の経路８１３を介してノード５６５および５６６まで進んでいることをスナップショットノードグラフ８１０が示しているとしても、現在レンダリングされている画像３０５は、スナップショットノード５６２に関連付けられ、説明および明確さのために第１のセグメント８３１の終わりを示している。キャラクタ３０６がたどる経路のこの部分（スナップショットノード５６２で終わる）もまた、ノードグラフ８２０において繰り返され、これは、キャラクタ３０６を使用するユーザの第１のセグメント８３１の終わりまでのゲームプレイを示している。
【０１４２】
スナップショットノード５６２において、ユーザは、前述したように、ビデオゲーム内の他の点を探索し、友達Ｆ１のゲームプレイにジャンプすることを選択することができる（例えば、スナップショット画像３６０ｅのさらなる選択）。友達Ｆ１のゲームプレイは、スナップショットノードグラフ８１０の太実線８９９によって示されている。この時点で、ユーザのゲームプレイ８３０の第１のセグメント８３１は一時停止され、ユーザは、スナップショットノード５７２に対応する点で友達Ｆ１のゲームプレイにジャンプする。説明のために、ジャンプゲームプレイは、キャラクタが熊と密接に関わっている点で始まる。特に、ユーザのゲームプレイ８３０を実行するビデオゲームのインスタンスは一時停止され（例えば、第１のセグメント８３１の終わり）、ジャンプ点で始まる友達Ｆ１のジャンプゲームプレイを実行するビデオゲームのインスタンス（スナップショットノード５７２）は、スナップショットノード５７２でキャプチャされた対応するスナップショットに基づいてインスタンス化される。ノード５７２へのジャンプの表現は、曲線矢印８９１によって示されている。ジャンプゲームプレイは、ジャンプセグメント８４０によって定義される。
【０１４３】
他の実施形態では、ユーザのゲームプレイ８３０は、ジャンプゲームプレイを始める前に、第１のセグメント８３１の終わりに保存されて終了する。そのようにして、ユーザは、将来ビデオゲームに戻り、スナップショットノード５６２に対応する点（例えば、第１のセグメント８３１の終わり）から再開することができる。すなわち、ユーザは、一時停止されたゲームを効果的に再開することができる。
【０１４４】
一実施形態では、ユーザのゲームプレイ８３０を実行するビデオゲームのインスタンスは、ユーザが対話するジャンプゲームプレイを実行するビデオゲームのインスタンスとは別であり、ジャンプゲームプレイは、友達Ｆ１のオリジナルゲームプレイに基づいている。説明のために、スナップショットノードグラフ８５０は、ユーザによってプレイされたジャンプゲームプレイのジャンプセグメント８４０においてキャラクタ３０８がたどった経路を示し、ジャンプゲームプレイにおけるキャラクタ３０８は、友達Ｆ１のゲームプレイによってもともと作成されて定義された。ジャンプゲームプレイでたどった経路は、太破線８９６によって示されている。
【０１４５】
ノードグラフ８５０に示すように、ジャンプゲームプレイにおいてキャラクタ３０８がたどる経路は、スナップショットノード５７２から始まり、ノード８５１、８５２、および終了ノード８５９に連続して続く。終了ノード８５９は、ジャンプゲームプレイを実行するビデオゲームのインスタンスの終了を示している。破線８９６によって示すように、ジャンプゲームプレイにおいてキャラクタ３０８がたどる経路（ノード５７２、８５１、８５２、および８５９を含む）は、ノードグラフ８１０に示される友達Ｆ１のゲームプレイにおいてキャラクタ３０８がたどった経路８９７（ノード５７２、５７３、および５７４を含む）とは異なることに留意することが重要である。すなわち、ユーザがジャンプゲームプレイを指示するために新たな入力コマンドを提供していることから、ユーザによって実行されるジャンプゲームプレイは、以前に記憶された友達Ｆ１のゲームプレイとは異なる。例えば、ジャンプゲームプレイでは、ユーザがこの時点でゲームを迅速にプレビューして自己のゲームプレイ８３０においてビデオゲームのこの部分をプレイするかどうかを決定することができることから、熊との遭遇が不成功であることが起こり得る。一方、友達Ｆ１のゲームプレイは、熊との成功した遭遇を示すことができる。
【０１４６】
一実施形態では、ジャンプゲームプレイ中に、スナップショットは、ジャンプセグメント８４０に示される各ノード（例えば、ノード５７２、８５１、８５２、および８５９）でキャプチャされてもよい。ジャンプゲームプレイおよびそれに関連するスナップショットは、後でアクセスするために記憶されることができる。例えば、ユーザは、ユーザによって作成されてビデオゲームに関連付けられたジャンプゲームプレイを見直してインスタンス化したいと思うことがある。他の実施形態では、ユーザは、他のビデオゲームに関連するジャンプゲームプレイを見直してインスタンス化することを望むことがあり、ジャンプゲームプレイは、ユーザまたは他のユーザによって作成された。
【０１４７】
ジャンプゲームプレイの実行後、ユーザのゲームプレイ８３０を再開することができる。ユーザは、ここで友達Ｆ１のゲームプレイをプレビューしており、ジャンプ点に関連するスナップショットノード５７２に自己のキャラクタ３０６を到達させることを望むことがある。そのようにして、ユーザのゲームプレイ８３０は、ユーザのゲームプレイにおけるキャラクタが同じ熊との遭遇を有するようにジャンプ点に向けられた経路を含むことができる。
【０１４８】
スナップショットノードグラフ８２０は、現在再開されたユーザのゲームプレイ８３０内のキャラクタがたどる経路を示す。ゲームプレイ８３０の再開は、第２のセグメント８３２によって定義され、再開されたゲームプレイは、太破線８０９によって定義される。したがって、ユーザによるゲームプレイ８３０の全体は、第１のセグメント８３１０（破線８１１）および第２のセグメント８３２（太破線８０９）によって示されている。一実施形態では、ゲームプレイ８３０の第２のセグメント８３２は、一時停止されているビデオゲームのインスタンスを継続する。他の実施形態では、ゲームプレイ８３０の第２のセグメント８３２は、第１のセグメント８３１が終了したことから、スナップショット５６２に関連するビデオゲームの点で始まるビデオゲームの新たなインスタンスで実行される。第２のセグメント８３２は、スナップショットノード５６２から始まり、スナップショットノード８２１、８２２、８２３、８２４、および８２９に連続して続く。
【０１４９】
ノードグラフ８２０では、スナップショットノード８２３は、ジャンプ点に関連するスナップショットノード５７２におおよそ対応する。例えば、ユーザは、自己のゲームプレイ８３０で熊に遭遇したいと思う。特に、ユーザのゲームプレイにおけるスナップショットノード５７２へのナビゲーションは、スナップショットノードグラフ５３０および／またはユニバーサルノードグラフ５５０を介してユーザによって可能とされる。特に、ユーザは、スナップショットノードグラフ５３０を見直すことによって、他のユーザ（例えば友達Ｆ１）が遭遇するスナップショットノード５６２とスナップショットノード５７２との間で利用することができる可能な経路を発見することができる。さらに、ユーザは、ユニバーサルノードグラフ５５０を見直すことによって、スナップショットノード５６２とスナップショットノード５７２との間で利用可能な一般的な論理経路を発見することができる。そのようにして、ユーザは、（例えば、ノード８２１および８２２を介して）スナップショットノード８２３までナビゲートして熊に遭遇することができる。ノード８２１および８２２は、友達Ｆ１のゲームプレイ中にもともとキャプチャされたスナップショットノード５６５および５７０とおおよそ整列するが、同一ではない場合があることに留意することが重要である。
【０１５０】
スナップショットノード８２３、８２４、および８２９などは、第２のセグメント８３２において、ユーザのゲームプレイ８３０でとられた経路を示しており、ここでは、キャラクタ３０６は、熊に遭遇して関わっている。スナップショットノード８２３（ノード８２４、８２９などを含む）で熊と最初に遭遇した後にとられた経路は、ジャンプゲームの経路（例えば、ノード５７２、８５１、８５２、および８５９）と同一ではないことがあり、友達Ｆ１のゲームプレイにおける経路（例えば、ノード５７２、５７３、および５７４）と同一ないこともある。これは、ユーザのゲームプレイ８３０がビデオゲームを駆動するそれ自体の固有の入力コマンドを有するためである。
【０１５１】
ネットワークを介して通信するゲームサーバおよびクライアント装置の様々なモジュールの詳細な説明とともに、本開示の一実施形態にかかる、ゲームネットワークを介して実行されるビデオゲームのゲーム世界をナビゲートする方法が図９のフロー図９００に関連して説明される。フロー図９００は、クライアント装置においてネットワークを介して表示される情報を生成する目的でゲームサーバ側において行われる動作のプロセスおよびデータフローを示している。
【０１５２】
本方法は、動作９１０で始まり、複数のユーザに関連して実行されたビデオゲームの複数のインスタンスから生成された複数のスナップショットをキャプチャすることを含む。特に、ビデオゲームのインスタンスは、図１の１つ以上のゲームサーバ２０５の１つ以上のゲームプロセッサ２１０によって実行されている。ビデオゲームの各インスタンスが実行されているとき、１つ以上のスナップショットがキャプチャされ、スナップショットは、前述したように、そのスナップショットに対応する前記ビデオゲームにおける所定点から始まるビデオゲームのインスタンスの実行を可能にする。
【０１５３】
特に、スナップショットは、対応するユーザのゲームプレイに関連して実行されるビデオゲームのインスタンスによって生成されるレンダリング画像を含むスナップショット画像を含む。レンダリング画像は、ビデオゲームにおける所定点に対応するビデオゲームのシーンを示し、その点は、ビデオゲームを通じたユーザのゲームプレイにおける進行を示す。
【０１５４】
さらに、スナップショットはまた、前記ビデオゲームにおける所定点に対応する環境の生成を可能にするゲーム状態データも含む。すなわち、スナップショットに基づいて、対応するシーンおよび環境が生成され、キャラクタは、ユーザのゲームプレイを通じて環境と対話するように指示される。
【０１５５】
さらに、スナップショットは、前述したように、シーンおよび環境に追加の特徴を提供するランダムシードデータを含む。例えば、クラウド構成および１つ以上の一般的なキャラクタの動きは、ユーザのゲームプレイに関連するシーンおよび環境への包含のために一意に生成されることができる。したがって、クラウド構成および１つ以上の一般的なキャラクタの動きは、ビデオゲームのインスタンスごとに異なることがある。
【０１５６】
また、スナップショットは、対応するユーザのゲームプレイのためのキャラクタの生成を可能にするユーザ保存データを含む。キャラクタは、スナップショットがキャプチャされたビデオゲームにおける所定点に対応する第１の状態を有する。例えば、第１の状態は、キャラクタの外観と種類、キャラクタが着用する服装、キャラクタの達成レベル、キャラクタが利用できる武器、その時点でのキャラクタのライフ状態などを定義する。
【０１５７】
動作９２０において、本方法は、ビデオゲームをプレイしている第１のユーザの第１のタイムラインを表示するために生成することを含む。第１のタイムラインは、ビデオゲームを通じて進行している少なくとも１人のユーザ（第１のユーザおよび／または他のユーザ）のスナップショット画像を含む。タイムライン内のスナップショット画像は、第１のユーザに関連して実行されるビデオゲームの第１のインスタンスの現在レンダリングされている画像に関連して表示される。各スナップショット画像は、対応するスナップショットと相互参照されることができる。現在レンダリングされている画像は、第１のユーザによるビデオゲームの現在の進行点に関連付けられる。
【０１５８】
動作９３０において、本方法は、第１のタイムライン内に表示するために、第１のユーザに関連する複数の第１のスナップショット画像を含む複数の第１のサムネイルを生成することを含む。すなわち、第１のサムネイルは、第１のユーザのビデオゲームの進行を示している。特に、複数の第１のスナップショットは、現在レンダリングされている画像と比較して第１のユーザの過去の進行を示す少なくとも１つのレンダリング画像を含む。
【０１５９】
動作９４０において、本方法は、第２のユーザに関連する複数の第２のスナップショット画像を含む複数の第２のサムネイルを第１のタイムラインに表示するために生成することを含む。すなわち、第２のサムネイルは、第２のユーザのビデオゲームによる進行を示す。特に、複数の第２のスナップショット画像は、現在レンダリングされている画像の後のビデオゲームにおける所定点における第２のユーザの将来の進行を示す少なくとも１つのレンダリング画像を含む。
【０１６０】
他の実装形態では、複数の第２のスナップショット画像は、第２のユーザの過去および／または現在の進行を示す。例えば、第２のスナップショットは、第１のユーザのクライアント装置に表示するために生成された現在レンダリングされている画像の前のビデオゲームにおける所定点における第２のユーザの進行を示す少なくとも１つのレンダリング画像を含む。
【０１６１】
さらに他の実施形態では、クライアント装置で表示するために追加のタイムラインを生成することができる。例えば、第３のユーザの第２のタイムラインが表示のために生成される。第２のタイムラインは、第３のユーザの複数の第３のスナップショット画像を含む。第２のタイムラインは、第１のユーザのゲームプレイに関連付けられている現在レンダリングされている画像の前後のビデオゲームの複数の点におけるビデオゲームのゲームプレイ中の第３のユーザの進行を示す複数のレンダリング画像を含む。
【０１６２】
前述したように、選択されたスナップショット画像は、ゲームプロセッサ２１０のジャンプ実行エンジン２１６がスナップショット画像に対応するスナップショットにアクセスし、そのスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、そのスナップショットに対応するビデオゲームにおける所定点（ここでは、ジャンプ点として特定される）から始めてビデオゲームを実行することを可能にする。例えば、ゲームプロセッサ２１０は、第１のタイムライン内の複数の第２のスナップショットからの選択されたスナップショット画像の第１のユーザによる選択を受信し、選択されたスナップショット画像は、第２のユーザのゲームプレイに関連付けられる。さらに、ゲームプロセッサは、第１のユーザのゲームプレイに関連して実行されたビデオゲームの第１のインスタンスの実行を、選択されたスナップショット画像に関連したビデオゲーム内のジャンプ点にジャンプするように構成される。一実装では、ビデオゲームの第１のインスタンスは、一時停止および／または終了し、ビデオゲームの他のインスタンスであるジャンプゲームは、選択されたスナップショット画像のスナップショットに基づいてインスタンス化される。
【０１６３】
そのようにして、第１のユーザは、第２のユーザのゲームプレイにジャンプすることができる。例えば、第１のユーザは、ジャンプゲームにおいて第２のユーザのゲームプレイに使用されるキャラクタを指示することができる。選択されたスナップショット画像の対応するスナップショットは、第２ユーザのゲームプレイに使用され、ジャンプゲームにおいて第１ユーザのジャンプゲームプレイにも使用されるキャラクタの生成を可能にする第２のユーザ保存データを含む。第２のユーザ保存データおよび第２のキャラクタは、第２のユーザのゲームプレイに由来する。したがって、第１のユーザは、ジャンプゲームの実行中にジャンプゲームプレイを作成する。
【０１６４】
第１のユーザがジャンプゲームを終了した後、ビデオゲームの第１のインスタンスが再開されてもよい。すなわち、ジャンプゲームを実行しているビデオゲームの第２インスタンスが終了し、第１ユーザのゲームプレイに関連するビデオゲームの第１インスタンスが再開される。そのようにして、第１のユーザは、ビデオゲームの自己のゲームプレイを再開することができる。
【０１６５】
第１のユーザはまた、第１のユーザの以前のゲームプレイにおいてスナップショット画像を選択することができる。例えば、ゲームプロセッサは、以前のゲームプレイに関連した複数の第１のスナップショット画像の中から選択されたスナップショット画像の選択を受信するように構成されてもよい。ビデオゲームの第１のインスタンスの実行は、選択されたスナップショット画像に関連するビデオゲーム内のジャンプ点にジャンプされる。一実装では、ジャンプは、選択されたスナップショット画像に対応するスナップショットに基づいてビデオゲームの他のインスタンスを介して可能にされる。他の実装では、ジャンプは、ビデオゲームの第１のインスタンスを介して可能にされる。
【０１６６】
さらに、ノードグラフは、クライアント装置における表示のために生成されてもよい。ノードグラフは、前述したように、タイムラインに表示されたスナップショット画像に対応する複数のスナップショットノードを含む。複数のスナップショットノードは、複数の経路を定義し、経路およびノードは、第１のユーザおよび第２のユーザのゲームプレイに関連付けられる。ノードグラフの各ノードは、対応するスナップショットに関連付けられる。
【０１６７】
さらに、ノードグラフは、第１のユーザによる同じまたは他のユーザのゲームプレイへのジャンプを可能にすることができる。例えば、ゲームプロセッサは、ノードグラフ内の選択されたスナップショットノードの選択を受信するように構成されている。スナップショットノードは、対応するスナップショットに関連付けられる。選択されたスナップショットノードに対応する選択されたスナップショット画像は、クライアント装置に表示するために必要に応じて生成されてもよい。特に、選択されたスナップショットノードおよび／または対応するスナップショット画像の選択は、選択されたノードに関連するビデオゲームにおけるジャンプ点への第１のユーザのゲームプレイに関連して実行されるビデオゲームの第１のインスタンスの実行のジャンプを可能にする。
【０１６８】
［ビデオ記録によるゲームプレイアクセス］
一般的に言えば、本開示の様々な実施形態は、特にクラウドベースのゲームシステム上で実行されたときに、記憶されたゲームプレイのストリーミングビデオ記録を介してゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを提供するシステムおよび方法を説明する。ビデオ記録は、ゲームプレイ中にもともとキャプチャされた複数のスナップショットを含むかまたは参照し、スナップショットは、スナップショットキャプチャに対応する時点でゲームアプリケーションのインスタンスのインスタンス化を可能にするメタデータおよび／または情報を含む。スナップショットは、要求ユーザが記憶されたゲームプレイを生成するプレイヤではない場合であっても、任意の要求ユーザがゲームアプリケーションのインスタンスをインスタンス化して指示することを可能にする。ビデオ記録は、記憶されたゲームプレイの１つ以上のスナップショット画像を含むタイムラインを通じて選択可能であり、各スナップショット画像は、スナップショットに対応し、スナップショット画像は、閲覧者にゲームアプリケーションのプレイヤの進行の感覚を与える方法で表示される。タイムラインは、ユーザがゲームアプリケーションをプレイしているときに提示されてもよく、それによって他のプレイヤのゲームプレイをプレビューすることによってユーザのゲームプレイにおける可能性の感覚をユーザに与える。ストリーミングビデオ記録におけるビデオフレームの選択は、ジャンプ点を特定し、選択されたビデオフレームは、ジャンプゲームプレイをインスタンス化するために使用される対応するスナップショットと関連付けられる。選択されたビデオフレームは、スナップショットに対応していなくてもよく、１つ以上のスナップショットに、またはその近くに、あるいはその間に配置されてもよい。ジャンプゲームプレイは、プレイヤのゲームプレイを指示するために以前に使用された保存された入力コマンドを使用してジャンプ点に到達するまでプレイヤのゲームプレイを再生するために自動的に実行され、その後に、ジャンプゲームプレイは、要求ユーザにとってライブになる（すなわち、ジャンプゲームプレイは、ユーザ入力コマンドによって指示される）。
【０１６９】
ビデオ記録を介してゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを提供する本開示の実施形態は、前述した図１〜図２のシステム内で実行されることができる。
【０１７０】
図１０は、本開示の一実施形態にかかる、システムによってプレイヤのゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加している任意のプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする、クライアント装置にストリーミングされるビデオ記録を介したゲームプレイアクセスに使用されるシステムの構成要素を示している。例えば、いくつかの実施形態では、ストリーミングビデオ記録を介したゲームプレイアクセスに使用される構成要素は、図１において以前に紹介したゲームサーバ２０５のゲームプロセッサ２１０内に含まれてもよい。さらに、他の実施形態では、ゲームサーバ２０５は、ＧＣＳ２０１がビデオ記録を介してゲームプレイアクセスを提供するように構成可能であるように、図２のゲームクラウドシステム（ＧＣＳ）２０１内に含まれる。
【０１７１】
特に、ゲームプロセッサ２１０は、ゲームアプリケーションに参加しているプレイヤの以前のゲームプレイ中にキャプチャされたスナップショットに基づいてゲームアプリケーションのインスタンスをインスタンス化するように構成された様々な構成要素を含む。ゲームプロセッサ２１０は、先に図１において紹介されており、ゲーム実行エンジン２１１、スナップショットジェネレータ２１２、タイムラインジェネレータ２１３、ノードグラフジェネレータ２１４、ＡＩオーバーレイモジュール２１５、およびジャンプゲーム実行エンジン２１６を含んでいた。さらに、図１０に示すように、ゲームプロセッサ２１０は、ビデオ記録をクライアント装置にストリーミングするように構成されたビデオプレイヤ１０１０と、再生エンジン１０１５と、ジャンプゲーム入力マネージャ１０２０と、再生開始点セレクタ１０２５と、ゴーストエンジン１０３０と、ガイドエンジン１０３５とをさらに含む。単独または組み合わせて採用されるゲームプロセッサ２１０の１つ以上の構成要素は、記憶されたゲームプレイのストリーミングビデオ記録を介してゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにジャンプすることを提供するように構成可能である。さらに、本開示の他の実施形態では、ゲームプロセッサ２１０の１つ以上の構成要素は、ＧＣＳ２０１などのクラウドベースのゲームシステム内のビデオ記録を介したゲームプレイアクセスを提供する。
【０１７２】
特に、図１のシステム１０は、複数の対話型ビデオゲームまたはゲームアプリケーションへのアクセスを提供し、より詳細には、例えば、クライアント装置にストリーミングされるゲームプレイのビデオ記録を介したゲームアプリケーションの記憶されたゲームプレイへの対話型アクセスを提供する、ゲームプロセッサモジュール２１０を実行するゲームサーバ２０５を含む。図１に示すように、クライアント装置１００は、ジャンプゲームプレイの形態で、プレイヤの特定のゲームプレイへのアクセスを要求するように構成されている。アクセス要求は、ビデオ記録を介して含まれるおよび／または参照される関連するスナップショットがジャンプゲームプレイをインスタンス化するために使用されるように、クライアント装置にストリーミングされるプレイヤのゲームプレイのビデオ記録を介して行われてもよい。特に、ゲームサーバ２０１５は、スナップショットに基づいてジャンプゲームプレイをインスタンス化するためにゲームアプリケーションのインスタンスを実行し、表示のためにクライアント装置１００に配信されるレンダリング画像を生成する。
【０１７３】
例えば、ビデオプレイヤ１０１０は、ゲームアプリケーションに参加しているプレイヤの選択されたゲームプレイのビデオ記録をプレイするときに複数のビデオフレームを生成するように構成される。ビデオプレイヤ１０１０は、ビデオレコーダ２７１とは独立してまたは協働して、そのゲームプレイに対応する任意のゲームメトリクスとともに、ゲームプレイの記録（例えば、ビデオ、オーディオなど）を生成、保存、アクセス、および／または再生するように動作することができる。一実施形態では、記憶されたゲームプレイのビデオ記録は、クライアント装置１００に表示するためにレンダリングされるタイムラインを通して提示される記憶されたゲームプレイの１つ以上のスナップショット画像を介して選択可能であり、スナップショット画像は、ゲームアプリケーションにおけるゲームプレイの進行を示すために提示される。すなわち、ゲームプレイ中にキャプチャされたスナップショット画像のうちの１つの選択は、記憶されたゲームプレイのビデオ記録の選択およびプレイを提供する。ビデオ記録の画像フレームは、表示のためにネットワークを介してユーザのクライアント装置にストリーミングおよび／または配信される。
【０１７４】
さらに、ビデオ記録は、ゲームプレイ中にキャプチャされた複数のスナップショットを含むかまたは参照し、スナップショットは、スナップショットキャプチャに対応するゲームプレイ中の時点におけるゲームアプリケーションのインスタンスのインスタンス化を可能にするメタデータおよび／または情報を含む。したがって、（例えば、ビデオフレームを介した）ビデオ記録におけるジャンプ点の選択は、ジャンプ点で始まるジャンプゲームプレイのインスタンス化を提供する。具体的には、再生エンジン１０１５は、ジャンプゲームプレイをインスタンス化するためにゲームアプリケーションのインスタンスを作成および実行するように構成されている。ゲームアプリケーションのインスタンスは、ジャンプ点の選択を介して決定された関連するスナップショットに基づいてインスタンス化され、ジャンプ点は、関連するスナップショットに直接対応してもよく、またはジャンプ点は、関連するスナップショットの近く、または関連するスナップショットと他のスナップショットとの間に配置されてもよい。したがって、関連するスナップショットは、ジャンプゲームプレイをインスタンス化するために使用される。一実装では、再生エンジン１０１５は、ジャンプゲーム実行エンジン２１６とは独立して、または協働して、記憶されたゲームプレイへの対話型アクセスを提供するように動作する。
【０１７５】
特に、再生開始点セレクタ１０２５は、ジャンプゲームプレイの再生部分の開始点を決定するように構成されている。すなわち、ジャンプ点の選択後、適切で関連する開始スナップショットが選択され、プレイヤのゲームプレイを実行するために使用されるゲームアプリケーションのインスタンスを開始および／またはインスタンス化し、ジャンプ点は、開始スナップショットがキャプチャされたゲームプレイにおける点に対応しないことがある。ジャンプゲームプレイの再生部分の間、記憶されたゲームプレイは、開始スナップショットがキャプチャされたゲームプレイ内の点からジャンプ点まで自動的に再生され、その後、ジャンプゲームプレイは、再生エンジン１０１５および／またはジャンプゲーム実行エンジン２１６が要求ユーザのクライアント装置１００からの入力コマンドを処理するように、要求ユーザにとってライブになる。
【０１７６】
特に、ジャンプゲームプレイの再生部分の間、ジャンプゲーム入力マネージャ１０２０は、ゲームアプリケーションのインスタンスによる実行に使用される複数の入力コマンドを決定してアクセスする。複数の入力コマンドは、プレイヤの記録されたまたは記憶された（互換的に使用される）ゲームプレイを指示するために以前に使用された。複数の入力コマンドは、プレイヤの記憶されたゲームプレイ中に生成された１つ以上のスナップショットに関連して（例えば、図１のデータストア１４０のデータベース１０４０に）キャプチャされて記憶された。例えば、スナップショットは、対応するスナップショットがキャプチャされた点までに使用された入力コマンドを記憶して含むことができ、以前のスナップショットおよび最も近いスナップショットに関連する点から始めて収集されることができる。すなわち、対応するスナップショットについて記憶された入力コマンドは、ゲームプレイを以前のスナップショットから対応するスナップショットへともたらす。また、スナップショットは、対応するスナップショットがキャプチャされた点以降に使用され、次のおよび／または最も近いスナップショットに関連する点で終わる入力コマンドを記憶することができる。すなわち、対応するスナップショットについて記憶された入力コマンドは、対応するスナップショットから次のスナップショットへゲームプレイをもたらす。他の実装では、スナップショットは、対応するスナップショットがキャプチャされた点の前後に使用された入力コマンドを記憶することができる。
【０１７７】
ネットワーク１５０を介して通信するゲームサーバ２０５およびクライアント装置１００の様々なモジュールの詳細な説明を用いて、本開示の一実施形態にかかるゲーム方法がフロー図１１００に関連してここで説明される。特に、フロー図１１００は、ユーザのクライアント装置にストリーミングされるゲームプレイのビデオ記録を介してなど、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイへの対話型アクセスを提供する方法におけるステップを示している。より具体的には、フロー図１１００の方法は、ゲームプレイ中に生成およびキャプチャされたスナップショットに基づいてユーザが記憶されたゲームプレイにジャンプすることを提供する方法を開示し、スナップショットは、クライアント装置にストリーミングされる記憶されたゲームプレイのビデオ記録を介して選択可能である。フロー図１１００は、クライアント装置２００においてネットワーク１５０を介して表示される情報を生成する目的でクラウドベースのゲームシステム２０１（例えば、ＧＣＳ２０１）のゲームサーバ２０５側で行われる動作のプロセスおよびデータフローを示している。
【０１７８】
本方法における動作１１０５は、ゲームアプリケーションに対するプレイヤのゲームプレイのビデオ記録の選択を、ユーザに関連するクライアント装置から受信することを含む。例えば、ビデオ記録は、プレイヤのゲームプレイの一部のビデオクリップとすることができる。プレイヤは、ゲームプレイの一部が重要であると判定し（例えば、関連情報を含む、ボスを倒すことを含むなど）、ビデオ記録におけるゲームプレイのその部分を生成して記憶することを選択することができる。ビデオ記録は、データベースに記憶されてもよく、それによって他のユーザがプレイヤの記録または記憶されたゲームプレイを見ることを可能にする。すなわち、他のユーザおよび／またはプレイヤは、（例えば、ストリーミングを介して）アクセスし、対応するクライアント装置上でビデオ記録をプレイすることができる。データベースは、複数のゲームアプリケーションの複数のゲームプレイに関連する複数のビデオ記録を記憶することができ、それによって複数のユーザによってアクセス可能な記憶されたゲームプレイのリポジトリを作成する。
【０１７９】
一実施形態では、ビデオ記録は、ゲームプレイの１つ以上のスナップショット画像を含むタイムラインを介して選択される。タイムラインは、図１〜図９に関して前述したように、ゲームアプリケーションに参加している間にユーザのゲームプレイと同時に提示されてもよい。すなわち、ユーザがゲームアプリケーションをプレイしている間に、ユーザは、ユーザのクライアント装置にストリーミングされるそのゲームプレイのビデオ記録を介して、さらに他のプレイヤの記憶されたゲームプレイの対話型アクセスを介して、他のプレイヤのゲームプレイをプレビューしたいことがある。また、ユーザがゲームアプリケーションをプレイしている間、ユーザは、そのユーザのクライアント装置にもストリーミングされているユーザの記憶されたゲームプレイのビデオ記録を介して、さらにユーザの記憶されたゲームプレイの対話型アクセスを介して、自己のゲームプレイをレビューしたいことがある。すなわち、タイムライン内のスナップショット画像は、ジャンプゲームプレイの形態で、対応するビデオ記録との関連付けおよびアクセス、および／または記憶されたゲームプレイへの対話型アクセスを提供する。
【０１８０】
本方法の動作１１１０は、ネットワークを介して、記録または記憶されたゲームプレイを含むビデオ記録をユーザに関連付けられたクライアント装置にストリーミングすることを含む。記憶されたゲームプレイは、ゲームアプリケーションに参加しているプレイヤのためのものである。ユーザは、閲覧のために記憶されたゲームプレイへのアクセスを獲得し、ゲームプレイは、ユーザ以外のプレイヤからなるものとすることができるか、またはユーザであるプレイヤからなるものとすることができる。
【０１８１】
１１２０において、本方法は、ビデオ記録を介して記憶されたゲームプレイにおけるジャンプ点の選択をクライアント装置から受信することを含む。すなわち、ビデオ記録内の選択された点は、要求ユーザがプレイヤのゲームプレイに基づくジャンプゲームプレイで対話型アクセスを開始したいジャンプ点を定義する。換言すれば、要求ユーザは、ジャンプゲームプレイを介して、プレイヤのゲームプレイへの対話型アクセスを得ることを望む。
【０１８２】
１１３０において、本方法は、開始スナップショットなどのスナップショットに基づいてゲームアプリケーションのインスタンスをインスタンス化および／または開始することを含む。ゲームアプリケーションのインスタンスは、ジャンプゲームプレイをインスタンス化する。特に、ビデオ記録は、プレイヤのゲームプレイ中の第１の時点でキャプチャされた開始スナップショットを含む、プレイヤのゲームプレイ中にキャプチャされた１つ以上のスナップショットに関連付けられる。一実施形態では、ビデオ記録は、少なくとも、記録されたゲームプレイの開始点（すなわち、ビデオ記録の開始）でキャプチャされた先頭スナップショット、および記憶および／または記録されたゲームプレイの終了点（すなわち、ビデオ記録の終了）でキャプチャされた終了スナップショットに関連付けられる。実施形態では、開始スナップショットは、先頭スナップショットまたは終了スナップショットのうちの１つ、または先頭スナップショットと終了スナップショットとの間に位置するスナップショット、またはビデオ記録の記録されたゲームプレイ以外であるがさらに関連付けられているゲームプレイにおける点でキャプチャされたスナップショットに対応することができる。スナップショットは、スナップショットキャプチャに対応する点でのゲームアプリケーションのインスタンスのインスタンス化および／または開始を可能にするメタデータおよび／または情報を含む。例えば、スナップショットは、プレイヤのゲームプレイに関連して実行されたゲームアプリケーションの第１のインスタンスによって生成されたレンダリング画像を含むスナップショット画像を含む。スナップショット画像は、プレイヤのゲームプレイにおける点に対応するビデオフレームに対応する。
【０１８３】
例示のために、開始スナップショットは、ゲームプレイの第１の時点にさらに対応するビデオ記録の第１のビデオフレームに対応する第１のスナップショット画像を含む。スナップショットはまた、前述したように、ゲームプレイの第１の時点に対応する環境の生成を可能にするゲーム状態データも含む。前述したように、スナップショットには、環境に追加の特徴を提供するランダムシードデータも含む。スナップショットはまた、前記プレイヤのゲームプレイについてのキャラクタの生成を可能にするユーザ保存データも含み、キャラクタは、ゲームプレイの第１の時点に対応する第１の状態を有する。例えば、ユーザ保存データは、プレイヤによって選択されたゲームの難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残りのライフ数、利用可能な総ライフ数、防具、賞品、タイムカウンタ値などを含むことができる。スナップショットはまた、一連の入力コマンドのうちの少なくとも１つの入力コマンドを含み、スナップショットに関連する入力コマンド（例えば、スナップショットまで至るまたはスナップショットから遠ざかる）は、キャプチャされて記憶される。
【０１８４】
したがって、ゲームアプリケーションは、開始スナップショットのキャプチャに対応する点で開始され、プレイヤの記憶されたゲームプレイ（例えば、シーン、キャラクタなど）によって以前に定義されたゲーム環境に基づいている。例えば、開始スナップショットは、プレイヤのゲームプレイの第１の時点で始まるゲームアプリケーションのインスタンスのインスタンス化および／または開始を可能にする。
【０１８５】
一実施形態では、ジャンプ点は、キャプチャされたスナップショットに対応することができ、キャプチャされたスナップショットは、前述したように、ジャンプゲームプレイをインスタンス化および／または開始するために使用されることができる。例えば、ジャンプ点が開始スナップショット（および第１の時点）に直接対応するとき、開始スナップショットは、ジャンプ点で始まるジャンプゲームプレイをインスタンス化および／または開始するために使用されることができ、ジャンプゲームプレイは、要求ユーザからの入力コマンドの実行によって要求ユーザについてライブになる。
【０１８６】
他の実施形態では、ジャンプ点は、ジャンプゲームプレイをインスタンス化するために使用されるスナップショットに対応しない場合がある。すなわち、ジャンプゲームプレイは、開始スナップショットに基づいてゲームアプリケーションのインスタンスによってインスタンス化されて実行されるが、ジャンプ点は、開始スナップショットと直接対応するプレイヤのゲームプレイにおける第１の時点と直接には対応しないことがある。しかしながら、ジャンプ点は、ジャンプゲームプレイがジャンプ点に到達するために使用されることができるように、ジャンプゲームプレイをインスタンス化および／または開始するために使用される開始スナップショット（例えば、ジャンプ点に最も近いスナップショット）と関連付けられる。特に、ジャンプゲームプレイは、再生部分とライブ部分とを含む。したがって、ジャンプゲームプレイは、（例えば、記憶されたゲームプレイからの保存された入力コマンドを使用して）ジャンプ点に到達するために再生部分を介して自動的に実行されることができ、その後、ジャンプゲームプレイは、要求ユーザからの入力コマンドの実行によって要求ユーザにとってライブになる。
【０１８７】
具体的には、再生部分の間に、動作１１４０において、本方法は、開始スナップショットおよび／またはジャンプ点に関連する複数のおよび／または一連の入力コマンドにアクセスすることを含む。入力コマンドは、プレイヤの記憶および／または記録されたゲームプレイを以前に指示するために使用された。
【０１８８】
再生部分の間、ジャンプゲームプレイをインスタンス化するゲームアプリケーションのインスタンスによって実行されたときの入力コマンドは、プレイヤの記憶されたゲームプレイを第１の時点からジャンプ点まで再生する。具体的には、動作１１５０において、本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、クライアント装置においてレンダリングするための複数の画像フレームを生成することを含む。複数の画像フレームは、第１の時点からジャンプ点までの（ジャンプゲームプレイにおける）プレイヤのゲームプレイを再生する。例えば、複数の画像フレームは、プレイヤのゲームプレイにおける第１の時点の第１のビデオフレームに対応する第１の画像フレームと、ジャンプ点の第２のビデオフレームに対応する第２の画像フレームとを含む。再生部分は、第１の時点に対応する第１の画像フレームとジャンプ点に対応する第２の画像フレームとの間に画像フレームを生成する。
【０１８９】
一実施形態では、本方法は、ジャンプゲームプレイの再生部分の間に再生および／または再現されたプレイヤのゲームプレイを介して転送することを含む。すなわち、一連の入力コマンドは、ゲームアプリケーションのインスタンスにおいて順方向に実行され、入力コマンドは、記憶されたゲームプレイのもともとの実行を指示する目的で連続的に順序付けられることができる。他の実施形態では、本方法は、ジャンプゲームプレイの再生部分の間に再生および／または再現されたプレイヤのゲームプレイを介して巻き戻すことを含む。すなわち、一連の入力コマンドは、ゲームアプリケーションのインスタンスにおいて逆順序で実行され、入力コマンドは、記憶されたゲームプレイのもともとの実行を指示する目的で連続的に順序付けられることができる。
【０１９０】
一実施形態では、本方法は、一連の入力コマンドのオーバークロック実行を含む。すなわち、ジャンプゲームプレイの再生部分は、図１３Ａに関連して以下でさらに説明されるように、ゲームプレイが第１の時点からジャンプ点まで早送りで示されるように、またはゲームプレイが第１の時点からジャンプ点まで早戻しされるように、速い動きでプレイされる。一実施形態では、再生部分の間に、追加のコンテンツ（例えば、広告、ミュージックビデオ、ニュースクリップ、他のビデオ記録など）をユーザに見せることができる。
【０１９１】
再生部分の後、ジャンプゲームプレイはライブ部分に進む。具体的には、動作１１６０において、本方法は、クライアント装置から受信してジャンプ点から始まるゲームアプリケーションのインスタンスにおいて実行される入力コマンドを処理することを含む。以前は、ジャンプゲームプレイの再生部分の間、クライアント装置から受信した入力コマンドは、ゲームアプリケーションのインスタンスによって処理されることからブロックされていた。
【０１９２】
一実施形態では、アクティブに生成されてリアルタイムに記憶されている現在のゲームプレイへのアクセスが提供される。特に、ビデオ記録の代わりに、ストリーミングライブビデオがネットワークを介してクライアント装置に配信される。すなわち、フロー図１１００において、動作１１１０において配信されるコンテンツは、ゲームアプリケーションに参加しているプレイヤのライブゲームプレイのライブストリーミングビデオである。そのようにして、ライブゲームプレイ中にキャプチャされたスナップショットは、ユーザがジャンプゲームプレイを介してライブゲームプレイを体験することを可能にするように選択可能とすることができる。すなわち、ユーザは、ライブゲームプレイ中にキャプチャされたスナップショットをストリーミングライブビデオのビデオフレームを介して選択し、ゲームアプリケーションのインスタンスを開始してジャンプゲームプレイを実行することができる。
【０１９３】
図１２Ａは、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイのビデオ記録１２０１における複数のレンダリングビデオフレームの図であり、ビデオ記録は、記憶されたゲームプレイへの対話型アクセスに使用される。一実装では、ビデオ記録１２０１は、図１１の動作１１２０において説明されているようにジャンプ点１２９０の選択において、および動作１１３０において説明されているようにジャンプゲームプレイをインスタンス化するためにゲームアプリケーションのインスタンスを開始するために使用される。例示のために、ビデオ記録１２０１は、ビデオ記録１２０１内の各ビデオフレームの記録の長さ、およびおおよその位置を表すバーとして示されている。
【０１９４】
特に、ビデオ記録１２０１は、クライアント装置でレンダリングされたときに順次表示される複数のビデオフレームを含む。ビデオ記録１２０１は、前述したようにゲームアプリケーションに参加しているプレイヤのゲームプレイ中に生成されたものであり、選択可能な長さのものとすることができる。例示の目的のために、ビデオ記録は、ナビゲーションバー１２６０に示されるように様々な点に配置されたビデオフレーム１２１０〜１２１４を少なくとも含む。１つ以上の追加のビデオフレームが、図１２Ａに示されるビデオフレームのうちの任意の２つの間に配置されることができることが理解される。
【０１９５】
さらに、ビデオフレームのそれぞれは、プレイヤのゲームプレイ中にキャプチャされた少なくとも１つのスナップショットに関連付けられることができる。例示の目的のために、図１２Ａは、ビデオフレームが生成されたゲームプレイの点でまたはその近くでスナップショットがキャプチャされたことからビデオフレーム１２１０〜１２１４が示されるように、ビデオフレームとスナップショットとの間の密接な相関関係を示している。特定のビデオフレームがスナップショットに直接対応しないことがあるが、スナップショットと密接に関連していることがあることに留意することが重要である。例えば、ビデオフレームは、最も近いキャプチャされたスナップショットと関連付けられてもよい。そのようにして、ビデオフレーム／ビデオ記録とスナップショットとの間の関係は、関連付けによる選択を可能にする。例えば、スナップショットを選択することによって、それに関連するビデオフレームおよび／またはビデオ記録がわかる。また、ビデオ記録内のビデオフレームを選択することによって、それに関連するスナップショットがわかる。
【０１９６】
一実施形態では、ビデオ記録１２０１は、記憶されたゲームプレイの開始点（すなわち、ビデオ記録１２１０の開始）でキャプチャされた先頭スナップショット（例えば、スナップショット画像６１０として記憶されることができるビデオフレーム１２１０に関連付けられたＳＳ−１）、および記憶されたゲームプレイの終了点（すなわち、ビデオ記録１２１０の終了）でキャプチャされた終了スナップショット（例えば、スナップショット画像６２０として記憶されることができるビデオフレーム１２１４に関連付けられたＳＳ−２）を含む少なくとも２つのスナップショットに関連付けられる。他の実施形態では、ビデオ記録は、ビデオ記録の記憶されたゲームプレイの外側でキャプチャされたスナップショットと関連付けられる。例えば、ビデオ記録１２０２は、ジャンプ点１２９０を含むが、プレイヤのゲームプレイ中にキャプチャされるがビデオ記録１２０２の記憶されたゲームプレイの外側にある２つのスナップショット（例えば、スナップショット画像６１０に関連付けられたＳＳ−１およびスナップショット画像６２０に関連付けられたＳＳ−２）の間に配置される。
【０１９７】
特に、ビデオ記録１２０１は、キャプチャされたスナップショットＳＳ−１およびそのスナップショット画像６１０と密接に相関するビデオフレーム１２１０を含む。特に、ビデオフレーム１２１０およびスナップショット画像６１０は、キャラクタ３０８（女性主人公）が最初に森の中にある洞窟の前で徘徊する熊に出会うゲームプレイにおける点を示している。さらに、ビデオ記録１２０１は、キャプチャされたスナップショットＳＳ−２およびそのスナップショット画像３６０ｅと密接に相関するビデオフレーム１２１２を含む。特に、ビデオフレーム１２１２およびスナップショット画像３６０ｅは、キャラクタ３０８が攻撃的な熊と積極的に交戦または戦っているゲームプレイにおける点を示しており、キャラクタ３０８は、武器として使用されるコイル状ロープで示されている。ビデオ記録１２０１は、キャプチャされたスナップショットＳＳ−３およびそのスナップショット画像６１５と密接に相関するビデオフレーム１２１３を含む。特に、ビデオフレーム１２１３およびスナップショット画像６１５は、キャラクタ３０８が熊を首尾よく鎮圧し、コイル状ロープを使用して熊の手足を結んだゲームプレイにおける点を示している。さらに、ビデオ記録１２０１は、キャプチャされたスナップショットＳＳ−４およびそのスナップショット画像６２０と密接に相関するビデオフレーム１２１４を含む。特に、ビデオフレーム１２１４およびスナップショット画像６２０は、コインでいっぱいの宝箱ならびに後続の戦いのために使用されることができるライフルを含むように、キャラクタが熊との戦いが成功した後に報酬を獲得したゲームプレイにおける点を示している。
【０１９８】
さらに、ビデオ記録１２０１は、ビデオフレーム１２１０（例えば、ＳＳ−１）とビデオフレーム１２１２（例えば、ＳＳ−２）との間に位置するビデオフレーム１２１１を含む。すなわち、ビデオフレーム１２１１は、２つのスナップショットＳＳ−１とＳＳ−２との間にあるプレイヤのゲームプレイにおける所定点に位置する。スナップショットＳＳ−１またはＳＳ−２のいずれかを使用してプレイヤのゲームプレイへの対話型アクセスを提供することができるように、ビデオフレーム１２１１と２つのスナップショットＳＳ−１およびＳＳ−２のうちの少なくとも一方との間で密接な関連付けを行うことができる。具体的には、本発明の実施形態は、ジャンプゲームプレイを開始するためにスナップショットＳＳ−１またはＳＳ−２のいずれかを使用して、中間スナップショットジャンプ点として２つのスナップショットＳＳ−１およびＳＳ−２の間に位置する矢印によって示されるビデオフレーム１２１１の選択を提供する。ジャンプゲームプレイは、（例えば、記憶されたゲームプレイからの保存された入力コマンドを使用して）ジャンプゲームプレイが再生部分を介して自動的に実行されてジャンプ点に到達するように再生部分とライブ部分とを含み、その後、ジャンプゲームプレイは、ユーザからの入力コマンドを処理することによって要求ユーザにとってライブになる。
【０１９９】
図１２Ｂは、本開示の一実施形態にかかる、ユーザによるゲームアプリケーションのゲームプレイ中に表示されるタイムライン３１０ａの図であり、タイムライン３１０ａとの受動的または能動的対話は、プレイヤの記憶されたゲームプレイのストリーミングビデオ記録の表示を提供し、ストリーミングビデオ記録との受動的または能動的な対話は、プレイヤのゲームプレイとの対話型アクセスを提供する。一実装では、タイムライン３１０ａは、図１１の動作１１１０において説明したようにビデオ記録の選択において、図１１の動作１１２０において説明したようにジャンプ点１２９０の選択のために、オペレーション１１３０において説明したようにジャンプゲームプレイをインスタンス化するようにゲームアプリケーションのインスタンスを開始するために使用される。
【０２００】
前述したように、ウィンドウ３００は、ユーザによるゲームアプリケーションのゲームプレイの現在レンダリングされている画像３０５を示す。タイムライン３１０ａは、現在レンダリングされている画像３０５の後に発生するゲームアプリケーションを介した進行点でのプレイヤ（例えば、キャラクタ３０８をプレイしている友達Ｆ１）によるゲームプレイのスナップショット画像（例えば、３６０ｄ、３６０ｅ、３６０ｆ、・・・）を含むスナップショット画像を含む。スナップショット画像は、例えば、サムネイルを介してタイムライン３１０ａに提示されることができる。サムネイルの能動的または受動的選択は、選択されたサムネイルのほぼ同じ領域に生成されて表示されるウィンドウ４１０によって示されるように、対応するスナップショット画像の拡大を提供する。
【０２０１】
一実施形態では、タイムライン３１０ａとの能動的または受動的対話は、プレイヤのゲームプレイのビデオ記録１２０１の選択を提供する。特に、タイムライン３１０ａ内のスナップショット画像３６０ｅの（例えば、カーソル４９０ａを介した）さらなる能動的または受動的選択は、プレイヤのゲームプレイのビデオ記録１２０１の選択を提供する。例えば、スナップショット画像３６０ｅの選択は、ウィンドウ４１０の能動的または受動的選択を介してもよい。一実装では、ビデオ記録１２０１は、現在表示されている画像３０５と同時に（例えば、ストリーミングを介して）ウィンドウ１２１２に示されることができる。他の実装では、ウィンドウ１２１２は、フルスクリーンモードなどでウィンドウ３００とは独立して表示されることができる。ビデオ記録１２０１は、選択されたスナップショット画像３６０ｅに関連するゲームプレイにおける所定点におおよそ対応する。例えば、ビデオ記録１２０１に示されるクリップは、キャラクタ３０８と熊との間のボス戦に焦点を合わせ、キャラクタ３０８が最初に熊に接触するビデオフレーム１２１０で始まり、キャラクタ３０８がボス熊の戦いに成功した後に戦利品を調べるビデオフレーム１２１４で終わることができる。したがって、ビデオ記録１２０１は、ビデオフレーム１２１０からプレイを開始してもよく、または選択されたスナップショット３６０ｅの近くのビデオフレームなどのユーザ選択を介してビデオ記録１２０１内の任意のビデオフレームからプレイを開始してもよい。
【０２０２】
さらにまた、ウィンドウ１２１２に示されているビデオ記録１２０１は、ナビゲーションバー１２６０によって示され且つそれを介して選択可能な任意のビデオフレームを表示することができる。例えば、可動ロケータ１２６５は、ビデオ記録１２０１内のビデオフレーム１２１１のおおよその位置を示す。また、可動ロケータ１２６５は、ビデオ記録１２０１内の任意の点および／またはビデオフレームに向けられてもよい。そのため、ビデオ記録１２０１は、ビデオフレーム全体を（例えば、順方向、逆方向、高速、低速）プレイすることができ、または特定のビデオフレーム上で一時停止することができる。例えば、ビデオ記録１２０１の全体を見た後、ユーザは、ロケータ１２６５をナビゲーションバー１２６０上の適切な位置に移動させることによってビデオフレーム１２１１に戻ることを選択することができる。すなわち、ユーザは、ビデオ記録１２０１のコンテンツに興味をそそられており、以下に説明するように、プレイヤの記憶されたゲームプレイに対話的にアクセスしたいと思う。例示として、ユーザは、熊とのボス戦を体験したいと思い、熊が積極的にキャラクタ３０８に近付いているビデオフレーム１２１１で戦闘を始めたいと思う。
【０２０３】
特に、ビデオ記録のさらなる能動的または受動的選択は、記憶されたゲームプレイへの対話型アクセスを提供する。より具体的には、ビデオ記録１２０１内のビデオフレーム（例えば、フレーム１２１１）のさらなる能動的または受動的選択は、ジャンプ点１２９０を定義し、ジャンプゲームプレイが選択されたジャンプ点１２９０から始めて要求ユーザによってプレイ可能であるように、プレイヤのゲームプレイ中にキャプチャされた関連するスナップショット（例えば、ＳＳ−１またはＳＳ−２）に基づいてジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化する。前述したように、ジャンプゲームプレイは、（例えば、記憶されたゲームプレイからの保存された入力コマンドを使用して）ジャンプゲームプレイが再生部分を介して自動的に実行されてジャンプ点１２９０に到達するように再生部分とライブ部分とを含み、その後、ジャンプゲームプレイは、ユーザからの入力コマンドを処理することによって要求ユーザにとってライブになる。関連するスナップショット（例えば、ＳＳ−１またはＳＳ−２）は、ビデオ記録１２０１内に対応するビデオフレームを有するように示されているが、他の実施形態では、関連するスナップショットは、ビデオ記録１２０１のビデオフレームに対応しないかまたは関連しないことがある。すなわち、関連するスナップショットは、ビデオ記録１２０１の外部にあり得る。いずれの場合にも、関連するスナップショットは、ジャンプゲームプレイにおいて記憶されたゲームプレイへの対話型アクセスを提供し、ジャンプ点１２９０で始まるジャンプゲームプレイでユーザが対話型プレイを始めることを可能にする。
【０２０４】
図１３Ａは、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイ１３１０を指示するために以前に使用された複数の入力コマンド１３３０の図であり、入力コマンドの一部（例えば、シーケンス）は、ジャンプゲームプレイの再生部分を実行するために使用される。特に、記憶されたゲームプレイ１３１０は、少なくともＳＳ−１およびＳＳ−２を含む複数のスナップショットを含み、スナップショットは、前述したように、スナップショットキャプチャに対応する時点でゲームアプリケーションのインスタンスのインスタンス化を可能にするメタデータおよび／または情報を含む。スナップショットＳＳ−１およびＳＳ−２は、プレイヤのゲームプレイ１３１０中にキャプチャ点を定義するそれらのおおよその位置に示されている。
【０２０５】
さらに、記憶されたゲームプレイ１３１０は、複数の入力コマンド１３３０を含む。単に例示のために、これらの入力コマンドは、トグル、左フロントボタン、右フロントボタン、上、下、右、左、および記号によって定義される対応する他の選択可能なコマンド（例えば、ボックス、三角形、クロスなど）または文字などを介して発行される方向コマンドを含むことができる。これらの入力コマンドは、記憶されたゲームプレイ１３１０を指示するために以前に使用された。示されるように、一実施形態では、入力コマンドは、コマンド間に周期的な間隔をあけてまたはあけずに連続的に順序付けされることができる。他の実施形態では、入力コマンドは、順序付けされなくてもよく、および／または連続的でなくてもよい。例えば、複数の入力コマンドは、異なるコントローラにわたって同時に発行されて複数のオブジェクトを指示することができ、その順序は、重要ではないことがある。
【０２０６】
図１３Ａに示すように、ジャンプ点１２９０は、ゲームプレイ１３１０のコンテキスト内で定義される。例えば、ビデオフレーム（例えば、ビデオフレーム１２１１）の選択は、ゲームプレイ１３１０のコンテキスト内でも、新たにインスタンス化されたジャンプゲームプレイのコンテキスト内でも、ジャンプ点１２９０を定義する。例えば、ジャンプ点は、ＳＳ−１とＳＳ−２との間に定義されてもよく、一例として、ビデオ記録１２０１の対応するビデオフレーム１２１１を介して選択可能である。より具体的には、複数の入力コマンド１３３０は、ＳＳ−１とジャンプ点１２９０との間に発行された一連の入力コマンド１３３５を含む。また、複数の入力コマンド１３３０は、ジャンプ点１２９０とＳＳ−２との間に発行された一連の入力コマンド１３３７を含む。これらのシーケンス１３３５および１３３７は、以下でさらに説明されるように、ジャンプゲームプレイの再生部分を実行および説明するために使用される。ＳＳ−１の前とＳＳ−２の後の双方に追加の入力コマンドが示されている。
【０２０７】
ビデオ記録、より具体的にはビデオフレーム１２１１の能動的または受動的選択は、前述したように、ＳＳ−１またはＳＳ−２などの関連するスナップショットを使用してジャンプゲームプレイのインスタンス化を提供する。どのスナップショットが選択されるかに応じて、ジャンプゲームプレイは、ジャンプ点１２９０に到達するために一連の入力コマンドを介して進むか、またはジャンプ点１２９０に到達するために一連の入力コマンドを介して巻き戻される。
【０２０８】
ジャンプゲームプレイ１３４０は、ＳＳ−１がジャンプゲームプレイ１３４０をインスタンス化するためにゲームアプリケーションのインスタンスを開始するために使用される関連スナップショットであるという決定を示す。示されるように、ジャンプゲームプレイ１３４０は、セクションＡによって定義された再生部分と、セクションＢによって定義されたライブ部分とを含む。セクションＡの再生部分において、ジャンプゲームプレイ１３４０は、記憶されたゲームプレイ１３１０からの保存された入力コマンド（例えば、一連の入力コマンド１３３５）を使用して、ＳＳ−１とジャンプ点１２９０との間でプレイヤのゲームプレイ１３１０を自動的に実行する。この場合、一連の入力コマンド１３３５は、ジャンプ点１２９０に到達するように順方向に実行される。一実施形態では、シーケンス１３３５の実行はオーバークロックされてジャンプ点に素早く到達する。再生部分のジャンプ点１２９０に到達した後、セクションＡの再生部分からセクションＢによって示されるライブ部分への遷移が行われ、ユーザがインタラクティブにジャンプゲームプレイ１３４０を指示しているように、ユーザからの入力コマンドを処理することによってジャンプゲームプレイ１３４０がライブになる。ライブ部分は、ユーザがジャンプゲームをプレイしたい限り延長し、一実施形態では、プレイヤの記憶されたゲームプレイにおける任意の点を超えて延長することができることに留意することが重要である。
【０２０９】
ジャンプゲームプレイ１３４５は、ＳＳ−２がゲームアプリケーションのインスタンスを開始してジャンプゲームプレイ１３４５をインスタンス化するのに使用される関連スナップショットであるという決定を示す。示されるように、ジャンプゲームプレイ１３４５は、セクションＣによって定義された再生部分と、セクションＤによって定義されたライブ部分とを含む。セクションＣの再生部分において、ジャンプゲームプレイ１３４５は、記憶されたゲームプレイ１３１０からの保存された入力コマンド（例えば、一連の入力コマンド１３３７）を使用して、ＳＳ−２とジャンプ点１２９０との間でプレイヤのゲームプレイ１３１０を自動的に実行する。この場合、一連の入力コマンド１３３７は、ジャンプ点１２９０に到達するように逆の方法で実行される。一実施形態では、シーケンス１３３７の実行はオーバークロックされてジャンプ点に素早く到達する。セクションＣの再生部分のジャンプ点１２９０に到達した後、セクションＣの再生部分からセクションＤによって示されるライブ部分への遷移が行われ、ユーザがインタラクティブにジャンプゲームプレイ１３４５を指示しているように、ユーザからの入力コマンドを処理することによってジャンプゲームプレイ１３４５がライブになる。
【０２１０】
さらに他の実施形態では、再生部分の間、ジャンプゲームプレイ１３４５が実行されているとき、追加または補助コンテンツが他のウィンドウ（図示せず）に表示されてもよい。一実施形態では、補助コンテンツは、再生部分に表示するために生成されている画像フレームに重ね合わせることができる。例えば、補助コンテンツは、再生部分の間にジャンプゲームプレイ１３４５が実行されているときに示される広告を含むことができる。さらに、他の実施形態では、補助コンテンツは、ユーザ入力に応答してもよい。例えば、補助コンテンツは、他のジャンプゲームプレイとすることができる。
【０２１１】
図１３Ｂは、本開示の一実施形態にかかる、ウィンドウ１３９０に示されるジャンプゲームプレイにおける画像フレーム１３１１の図であり、プレイヤのゲームプレイ中にキャプチャされた関連スナップショットに基づいてジャンプゲームプレイを実行するように、ビデオ記録のビデオフレームの選択は、ジャンプゲームプレイが要求ユーザによってプレイ可能であるように、ゲームアプリケーションのインスタンスをインスタンス化する。示されるように、画像フレーム１３１１は、ビデオ記録１２０１のビデオフレーム１２１１に関連するジャンプ点１２９０におおよそ対応する。すなわち、画像フレーム１３１１は、熊がキャラクタ３０８に向かって向きを変えて歩くことによって積極的に行動していることを示す。したがって、ユーザは、ジャンプゲームプレイのライブ部分において、ジャンプ点１２９０におおよそ対応する画像フレーム１３１１からほぼ始まるウィンドウ１３９０に示されるジャンプゲームプレイを対話的に指示することができる。
【０２１２】
様々な実施形態において、ウィンドウ１３９０は、ウィンドウ３００から独立しているかまたは同時に表示されてもよく、ウィンドウ３００は、ゲームアプリケーションに参加しているユーザの現在のゲームプレイを示す。そのようにして、ジャンプゲームプレイは、ユーザの現在のゲームプレイと同時に（例えば、ウィンドウ１２１２によって示されるウィンドウオーバーレイにおいて）示されることができるか、またはジャンプゲームプレイは、フルスクリーンモードのように独立して示されることができる。実施形態では、ユーザの現在のゲームプレイおよびジャンプゲームプレイは、同じゲームアプリケーションであっても、または異なるゲームアプリケーションであってもよい。
【０２１３】
一実施形態では、ジャンプゲームプレイは、別々に記録され、ビデオ記録に記憶される。さらに、ジャンプゲームプレイの実行中の任意の時点で、ジャンプゲームプレイ中に複数のスナップショットをキャプチャすることができる。例えば、スナップショットＳＳ−００は、進行バー１３９５に示されるように、ライブジャンプゲームプレイにおいてキャプチャされ、スナップショットＳＳ−００の右側への将来の／予想される進行が破線で示される。そのようにして、任意のユーザは、キャプチャされたスナップショットを介して、および新たにインスタンス化された二次ジャンプゲームプレイを介してジャンプゲームプレイを体験することができる。特に、一次ジャンプゲームプレイ中にキャプチャされた選択されたスナップショットに基づいて、二次ジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化するために、ジャンプゲームプレイ中にキャプチャされた選択されたスナップショットが使用されることができる。そのようにして、ユーザは、同じユーザによって作成された任意の以前のジャンプゲームプレイを体験することができ、または他のプレイヤの記憶されたジャンプゲームプレイを体験することができることがある。
【０２１４】
図１４は、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤのゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中に提示された一連の入力コマンドの図である。一連の入力コマンドを表示することによって、追加の機能をユーザに提供することができる。一実施形態では、表示された一連の入力コマンドは、ユーザをジャンプ点にガイドするのを助けるガイド特徴を提供することができる。他の実施形態では、表示された一連の入力コマンドは、ゴースト化の目的で使用されることができ、ユーザは、例えば正しい同じタイミングで一連の入力コマンドを模倣しようと試みる。ユーザがオリジナルゲームプレイをどれほど厳密に模倣することができるかを示すランニングスコア１４６０が提供されることができる。
【０２１５】
示されるように、ウィンドウ１４１０は、画像フレーム１４０５を含む１つ以上の画像フレームを介してジャンプゲームプレイを表示する。一実施形態では、ジャンプゲームプレイの再生部分がウィンドウ１４１０に表示される。例えば、オブジェクト１４２０は、ジャンプゲームプレイの再生部分の実行可能ファイルとして表示され、一連の入力コマンド１４５０は、自動的に実行されてジャンプ点までプレイヤのゲームプレイを再生し、その後、ジャンプゲームプレイは、要求ユーザからの入力コマンドを処理することによってライブになる。オブジェクト１４２０は、もともとプレイヤのゲームプレイで生成されたものである。プレイヤのゲームプレイを指示するために使用される一連の入力コマンド１４５０も示されている。シーケンス１４５０は、順序付けされたシーケンスで提供されてもよく、入力コマンドは、それらがクライアント装置によって生成された順序で提示される。例えば、シーケンス１４５０は、ジャンプゲームプレイの再生部分の間に生成された複数の画像フレームのそれぞれの上にオーバーレイされる。進行バー１４３０上のロケータ１４３５は、画像フレーム１４０５に対応する現在の入力コマンド（例えば下）を示す。一実装では、ロケータ１４３５は、一連の入力コマンド１４５０が右から左へ、または左から右へスクロールするので静的である。他の実装では、ロケータ１４３５が現在表示されている画像フレーム１４０５と対応する入力コマンドとの間の関係を与える限り、ロケータ１４３５はまた、一連の入力コマンド１４５０に関して移動する。トップダウン方式でシーケンス１４５０を表示するなど、他の実装もサポートされる。
【０２１６】
一実施形態では、要求ユーザは、一連の入力コマンドを模倣して、対応する画像フレーム内のオリジナルオブジェクトおよび対応するオブジェクトとともに提示されるゴーストオブジェクトを指示することができる。特に、ゴーストオブジェクト１４２５は、模倣された複数の入力コマンド（図示せず）に応答する。ゴーストオブジェクト１４２５は、オブジェクト１４２０を示す画像フレーム１４０５をオーバーレイし、オブジェクト１４２０または画像フレーム１４０５内の他のオブジェクトと干渉しないように提示されることができる。模倣されたコマンドは、ユーザのクライアント装置で生成され、一連の入力コマンド１４５０にしたがうことを試みる。模倣されたコマンドが一連の入力コマンド１４５０にどれだけ厳密にしたがうかに応じて、ゴーストオブジェクト１４２５の位置および移動を決定する。模倣されたコマンドがシーケンス１４５０に厳密にしたがうほど、ゴーストオブジェクト１４２５とオブジェクト１４２０との間のアライメントは近くなる。
【０２１７】
スコア１４６０は、コマンド、コマンドの順序、および／またはコマンドのタイミングなどに関して、模倣されたコマンドが一連の入力コマンド１４５０にどれだけ密接にしたがうかに基づいて生成されることができる。スコアは、画像フレーム１４０５をオーバーレイしてもよい。例示のために、図１５Ａ〜図１５Ｅは、ユーザが一連の入力コマンド１４５０にしたがって模倣されたコマンドを提供するときの、様々な画像フレーム全体にわたるオブジェクト１４２０とゴーストオブジェクト１４２５との間の関係および／またはアライメントを示す。示されるように、オブジェクト間のアライメントは、画像フレームの進行を通してより近くなる。図１５ａの画像フレーム１５０１は、オブジェクト１４２０とゴーストオブジェクト１４２５との間の粗いアライメント（すなわち、厳密に整列していない）を示すが、図１５Ｅの画像フレーム１５０５は、オブジェクト間のより細かいアライメント（すなわち、密接に整列している）を示す。
【０２１８】
他の実施形態では、一連の入力コマンド１４５０は、チュートリアルの形態で提示される。すなわち、入力コマンドは、ゲームプレイの特定の部分をどのように進めるかについてユーザに指示する。例えば、ジャンプゲームプレイ中に、オリジナルゲームプレイを自動的に再生する代わりに、再生部分の制御は、実際にはユーザによって指示されてもよい。チュートリアルの間、ゴーストオブジェクト１４２５は、図１４に示されても示されなくてもよい。したがって、再生部分の間、クライアント装置からの入力コマンドは、少なくともオブジェクト１４２０を制御するために処理されて使用されることができる。一連の入力コマンドが表示され、ユーザをジャンプ点に向けるのに役立つことができる。さらに、ジャンプゲームプレイをジャンプ点に到達させるための努力において、クライアント装置からの入力コマンドは、処理に関して制限されることがあり、制限された入力コマンドは、ジャンプ点への経路をたどらず、例えば、ジャンプ点から不可避的に遠ざけられることがある。したがって、入力コマンドは、ジャンプゲームプレイをジャンプ点にもたらすために、（例えば、一連の入力コマンドを介して）ユーザへのガイダンスとして提供されることができる。
【０２１９】
図１６は、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイにおいてジャンプ点にプレイヤを案内するために使用される特徴の図である。示されるように、実行されるとジャンプ点に至る方向にキャラクタ３０８をガイドするのを助ける一連の入力コマンド１６２０が表示されることができる。例えば、画像フレーム１６１０は、ビデオフレーム１２１１（キャラクタ３０８の方を向いて歩いている積極的な熊）に関連するジャンプ点１２９０の前に発生するスナップショット画像３６０ｄと密接に対応する。ユーザは、キャラクタ３０８が森の中を歩いているときなど、（洞窟の前の熊を示す）ビデオフレーム１２１０に対応するＳＳ−１の前に発生した点でジャンプゲームプレイを開始することを選択することができる。ガイド特徴は、記憶されたゲームプレイにおいてプレイヤによって使用された一連の入力コマンド１６２０を表示することによって、キャラクタ３０８をジャンプ点１２９０に導くのを助ける。さらに、キャラクタ３０８を正しい方向（例えば、川を渡る方向）に向けるのを助けるために、矢印１６３０（視覚的補助）のような補助が提示されてもよい。
【０２２０】
図１７は、本開示の一実施形態にかかる、ゲーム方法、より詳細には、ゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする方法におけるステップを示すフロー図１７００である。フロー図１７００は、ネットワーク１５０を介して通信しているゲームサーバ２０５およびクライアント装置１００の様々なモジュールによって実行されることができる。特に、フロー図１７００は、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイへの対話型アクセスを提供する方法におけるステップを示す。より具体的には、フロー図１１００の方法は、ゲームプレイ中に生成およびキャプチャされたスナップショットに基づいてユーザが記憶されたゲームプレイにジャンプすることを提供する方法を開示している。フロー図１１００は、クライアント装置２００においてネットワーク１５０を介して表示される情報を生成する目的でクラウドベースのゲームシステム２０１（例えば、ＧＣＳ２０１）のゲームサーバ２０５側で行われる処理のプロセスおよびデータフローを示している。
【０２２１】
動作１７１０において、本方法は、プレイヤのゲームプレイの第１の時点でキャプチャされた開始スナップショットに基づいてゲームアプリケーションのインスタンスを開始することを含む。ゲームアプリケーションのインスタンスは、ジャンプゲームプレイをインスタンス化する。開始スナップショットは、開始スナップショットがゲームプレイ内でキャプチャされた場所に対応する点でゲームアプリケーションのインスタンスのインスタンス化および／または開始を可能にするメタデータおよび／または情報を含む。
【０２２２】
開始スナップショットは、ゲームプレイのビデオ記録を通して選択可能とすることができる。一実装では、ビデオ記録は、記憶されたゲームプレイが同時にリアルタイムで記憶されるライブゲームプレイとみなされるように、ライブストリーミングビデオである。ビデオ記録内のビデオフレームは、プレイヤのゲームプレイ中の第１の時点でキャプチャされた開始スナップショットを含む、プレイヤのゲームプレイ中に生成されてキャプチャされた１つ以上のスナップショットに関連付けられることができる。例えば、スナップショットは、プレイヤのゲームプレイに関連して実行されたゲームアプリケーションの第１のインスタンスによって生成されたレンダリング画像を含むスナップショット画像を含む。スナップショット画像は、プレイヤのゲームプレイにおける点に対応するビデオフレームに対応し、その点から始まるジャンプゲームプレイを開始するために使用されることができる。
【０２２３】
動作１７２０において、本方法は、開始スナップショットに関連する一連の入力コマンドにアクセスすることを含み、一連の入力コマンドは、プレイヤの記憶されたゲームプレイを指示するために以前に使用された。
【０２２４】
動作１７３０において、本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、ユーザのクライアント装置においてレンダリングするための複数の画像フレームを生成することを含む。特に、複数の画像フレームは、ゲームプレイの第１の時点からゲームプレイを再生する。この時点で、ジャンプゲームプレイの再生部分が実行されている。一実施形態では、再生部分は、ビデオ記録のビデオフレームの能動的または受動的選択を介して定義されることができるジャンプ点に達するまで実行される。
【０２２５】
他の実施形態では、ジャンプ点は、再生部分の間に能動的に定義される。特に、動作１７４０において、本方法は、複数の画像フレームのうちの選択された画像フレームでジャンプゲームプレイのライブ部分を開始するための開始要求を受信することを含む。例えば、再生部分中に複数の画像フレームが表示されているとき、第１の画像フレームとの能動的または受動的対話は、ライブ部分を開始するための開始要求を提供し、その後、ジャンプゲームプレイは、ユーザのクライアント装置からの入力コマンドの処理によってユーザにとってライブになる。さらに、実行されていないシーケンス内の残りの入力コマンドがジャンプゲームプレイをインスタンス化するゲームアプリケーションのインスタンスでの実行からブロックされるように、再生部分は非アクティブ化される。そのようにして、（ビデオ記録のビデオフレームを介して選択された）以前に定義されたジャンプ点が再生部分の間に再定義されることができるように、ジャンプ点は、再生部分の間に選択可能とすることができる。例えば、ユーザは、ジャンプゲームプレイ内で積極的に対話を始めたいと思うことがある。他の実装では、ジャンプ点は、ジャンプゲームプレイの再生部分との対話を通じて最初に定義されてもよい。
【０２２６】
ゲームプレイのビデオ記録を介して同じまたは他のユーザの以前に実行されたゲームプレイにプレビューおよび／またはジャンプするために使用される複数のユーザのビデオゲームのゲームプレイにおける点のスナップショットの生成およびキャプチャを実証するために特定の実施形態が提供されているが、これらは、例として記載されており、限定として記載されていない。本開示を読んだ当業者は、本開示の精神および範囲内に含まれるさらなる実施形態を理解するであろう。
【０２２７】
現在の実施形態のゲームへのアクセスを提供するなど、広い地理的領域にわたって配信されるアクセスサービスは、クラウドコンピューティングを使用することが多いことに留意されたい。クラウドコンピューティングは、動的にスケーラブルであり且つ大抵の場合に仮想化されたリソースがインターネット上のサービスとして提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家になる必要はありません。クラウドコンピューティングは、サービスとしてのインフラストラクチャ（ＩａａＳ）、サービスとしてのプラットフォーム（ＰａａＳ）、およびサービスとしてのソフトウェア（ＳａａＳ）など、様々なサービスに分類されることができる。クラウドコンピューティングサービスは、大抵の場合、ウェブブラウザからアクセスされるビデオゲームなどの一般的なアプリケーションをオンラインで提供し、ソフトウェアおよびデータは、クラウド内のサーバに記憶される。クラウドという用語は、インターネットがコンピュータネットワーク図でどのように表現されているかに基づいて、インターネットの比喩として使用され、それが隠蔽する複雑なインフラストラクチャの抽象概念である。
【０２２８】
ゲーム処理サーバ（ＧＰＳ）（または単に「ゲームサーバ」）は、シングルおよびマルチプレイヤビデオゲームをプレイするためにゲームクライアントによって使用される。インターネットを介してプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームは、プレイヤからデータを収集して他のプレイヤに配信する専用のサーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的で効果的であるが、サーバアプリケーションをホストするために他のサーバが必要である。他の実施形態では、ＧＰＳは、集中型ＧＰＳに頼ることなく情報を交換するためにプレイヤとそれらの各ゲームプレイ装置との間の通信を確立する。
【０２２９】
専用ＧＰＳは、クライアントとは独立して動作するサーバである。そのようなサーバは、通常、データセンタにある専用ハードウェア上で稼働し、より広い帯域幅と専用処理能力を提供する。専用サーバは、ほとんどのＰＣベースの多人数参加型ゲームについてのゲームサーバをホストするための好ましい方法である。大規模多人数参加型オンラインゲームは、通常、ゲームタイトルを所有するソフトウェア会社によってホストされる専用サーバ上で実行され、コンテンツを制御および更新することを可能にする。
【０２３０】
ユーザは、少なくともＣＰＵ、ディスプレイ、およびＩ／Ｏを含むクライアント装置を使用してリモートサービスにアクセスする。クライアント装置は、ＰＣ、携帯電話、ネットブック、ＰＤＡなどとすることができる。一実施形態では、ゲームサーバ上で実行されているネットワークは、クライアントによって使用される装置の種類を認識し、使用される通信方法を調整する。他の場合では、クライアント装置は、インターネットを介してゲームサーバ上のアプリケーションにアクセスするために、ｈｔｍｌなどの標準的な通信方法を使用する。
【０２３１】
本開示の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成を用いて実施されることができる。本開示はまた、有線または無線ネットワークを介してリンクされているリモート処理装置によってタスクが実行される分散コンピューティング環境でも実施されることができる。
【０２３２】
所与のビデオゲームは、特定のプラットフォームおよび特定の関連するコントローラ装置用に開発されてもよいことを理解されたい。しかしながら、そのようなゲームが本明細書に提示されるようなゲームクラウドシステムを介して利用可能にされるとき、ユーザは、異なるコントローラ装置を用いてビデオゲームにアクセスしていることがある。例えば、ゲームは、ゲーム機およびそれに関連するコントローラ用に開発されているのに対して、ユーザは、キーボードおよびマウスを利用してパーソナルコンピュータからクラウド版のゲームにアクセスしていることがある。そのようなシナリオでは、入力パラメータ設定は、ユーザの利用可能なコントローラ装置（この場合にはキーボードおよびマウス）によって生成されることができる入力からビデオゲームの実行に受け入れられる入力へのマッピングを定義することができる。
【０２３３】
他の例では、ユーザは、タブレットコンピューティング装置、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動装置を介してクラウドゲームシステムにアクセスすることができる。この場合、クライアント装置とコントローラ装置は、同じ装置内にともに統合され、入力は検出されたタッチスクリーン入力／ジェスチャによって提供される。そのような装置の場合、入力パラメータ設定は、ビデオゲーム用のゲーム入力に対応する特定のタッチスクリーン入力を定義することができる。例えば、ボタン、方向パッド、または他の種類の入力要素は、ユーザがゲーム入力を生成するためにタッチすることができるタッチスクリーン上の位置を示すためにビデオゲームの実行中に表示またはオーバーレイされてもよい。特定の方向へのスワイプまたは特定のタッチ動作などのジェスチャもまた、ゲーム入力として検出されることができる。一実施形態では、ユーザをタッチスクリーン上のコントロールの操作に順応させるために、例えば、ビデオゲームのゲームプレイを開始する前に、ゲームプレイのためにタッチスクリーンを介して入力を提供する方法を示すチュートリアルがユーザに提供されることができる。
【０２３４】
いくつかの実施形態では、クライアント装置は、コントローラ装置用の接続点として機能する。すなわち、コントローラ装置は、無線または有線接続を介してクライアント装置と通信し、コントローラ装置からクライアント装置へ入力を送信する。クライアント装置は、次にこれらの入力を処理し、次いで（例えば、ルータなどのローカルネットワーキング装置を介してアクセスされる）ネットワークを介してクラウドゲームサーバに入力データを送信することができる。しかしながら、他の実施形態では、コントローラは、それ自体がネットワーク化された装置とすることができ、最初にクライアント装置を介してそのような入力を通信する必要なしに、ネットワークを介してクラウドゲームサーバに直接通信することができる。例えば、コントローラは、クラウドゲームサーバとの間でデータを送受信するために（前述のルータなどの）ローカルネットワーキング装置に接続することができる。したがって、クライアント装置は、依然としてクラウドベースのビデオゲームからビデオ出力を受信し、それをローカルディスプレイ上にレンダリングすることを必要とすることがあるが、コントローラがネットワークを介してクライアント装置をバイパスしてクラウドゲームサーバに直接入力を送信できるようにすることによって入力待ち時間を短縮することができる。
【０２３５】
一実施形態では、ネットワーク化されたコントローラおよびクライアント装置は、特定の種類の入力をコントローラからクラウドゲームサーバに直接送信し、他の種類の入力を、クライアント装置を介して送信するように構成されることができる。例えば、検出がコントローラ自体とは他の追加のハードウェアまたは処理に依存しない入力は、クライアント装置をバイパスしてネットワークを介してコントローラからクラウドゲームサーバに直接送信されることができる。そのような入力は、ボタン入力、ジョイスティック入力、埋め込まれた動き検出入力（例えば、加速度計、磁力計、ジャイロスコープ）などを含むことができる。しかしながら、追加のハードウェアを利用するか、またはクライアント装置による処理を必要とする入力は、クライアント装置によってクラウドゲームサーバに送信されることができる。これらは、クラウドゲームサーバに送信する前にクライアント装置によって処理されることができるゲーム環境からキャプチャされたビデオまたはオーディオを含むことができる。さらに、コントローラの動き検出ハードウェアからの入力は、キャプチャされたビデオとともにクライアント装置によって処理されてコントローラの位置および動きを検出することができ、その後にクライアント装置によってクラウドゲームサーバに通信される。様々な実施形態にかかるコントローラ装置はまた、クライアント装置からまたはクラウドゲームサーバから直接、データ（例えば、フィードバックデータ）を受信してもよいことを理解されたい。
【０２３６】
本明細書に記載の実施形態は、任意の種類のクライアント装置上で実行されることができることを理解されたい。いくつかの実施形態では、クライアント装置は、ヘッドマウントディスプレイ（ＨＭＤ）である。
【０２３７】
図１８には、本開示の一実施形態にかかる、ヘッドマウントディスプレイ１８５０の構成要素を示す図が示されている。ヘッドマウントディスプレイ１８５０は、プログラム命令を実行するためのプロセッサ１８００を含む。メモリ１８０２は、記憶目的で提供され、揮発性メモリと不揮発性メモリの双方を含むことができる。ユーザが見ることができる視覚的インターフェースを提供するディスプレイ１８０４が含まれる。ヘッドマウントディスプレイ１８５０の電源として電池１８０６が設けられている。動き検出モジュール１８０８は、磁力計１８１０、加速度計１８１２、およびジャイロスコープ１８１４などの任意の様々な種類の動き検知ハードウェアを含むことができる。
【０２３８】
加速度計は、加速度と重力による反力を測定するための装置である。加速度の大きさおよび方向を様々な方向で検出するために単軸および多軸モデルが利用可能である。加速度計は、傾き、振動、および衝撃を検知するために使用される。一実施形態では、２つの角度（世界空間ピッチおよび世界空間ロール）に対する絶対基準を与える重力方向を提供するために３つの加速度計１８１２が使用される。
【０２３９】
磁力計は、ヘッドマウントディスプレイ付近の磁界の強度および方向を測定する。一実施形態では、３つの磁力計１８１０がヘッドマウントディスプレイ内で使用され、世界空間ヨー角に対する絶対基準を保証する。一実施形態では、磁力計は、±８０マイクロテスラである地球磁場に及ぶように設計されている。磁力計は、金属の影響を受け、実際のヨーと単調なヨー測定を提供する。環境内の金属によって磁場が反っていることがあり、これはヨー測定に反りを引き起こす。必要に応じて、この反りは、ジャイロスコープやカメラなどの他のセンサからの情報を使用して較正されることができる。一実施形態では、加速度計１８１２は、ヘッドマウントディスプレイ１８５０の傾斜および方位角を取得するために磁力計１８１０とともに使用される。
【０２４０】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定または維持するための装置である。一実施形態では、３つのジャイロスコープ１８１４は、慣性検知に基づいて各軸（ｘ、ｙ、およびｚ）を横切る動きに関する情報を提供する。ジャイロスコープは、速い回転を検出するのを助ける。しかしながら、ジャイロスコープは、絶対基準の存在なしに時間とともにドリフトする可能性がある。これは、ジャイロスコープを定期的にリセットすることを必要とし、これは、オブジェクトの視覚的追跡、加速度計、磁力計などに基づく位置／方位決定の他の利用可能な情報を使用して行うことができる。
【０２４１】
カメラ１８１６は、現実環境の画像および画像ストリームをキャプチャするために提供される。背面向き（ユーザがヘッドマウントディスプレイ１８５０のディスプレイを見ているときにユーザから離れる方向に向いている）のカメラと、正面向き（ユーザがヘッドマウントディスプレイ１８５０のディスプレイを見ているときにユーザに向いている）のカメラとを含む、２つ以上のカメラがヘッドマウントディスプレイ１８５０に含まれてもよい。さらに、現実環境におけるオブジェクトの奥行き情報を検知するために、深度カメラ１８１８がヘッドマウントディスプレイ１８５０に含まれてもよい。
【０２４２】
一実施形態では、ＨＭＤの前面に組み込まれたカメラを使用して安全性に関する警告を出すことができる。例えば、ユーザが壁またはオブジェクトに近付いている場合、ユーザは警告されてもよい。一実施形態では、ユーザには、部屋内の物理的オブジェクトの外形図が提供され、それらの存在をユーザに警告することができる。外形は、例えば、仮想環境におけるオーバーレイとすることができる。いくつかの実施形態では、ＨＭＤユーザには、例えば床にオーバーレイされる、基準マーカへのビューが提供されてもよい。例えば、マーカは、部屋の中心がどこにあり、ユーザがどこでゲームをプレイしているかの基準をユーザに提供することができる。これは、例えば、部屋の壁または他のオブジェクトにぶつかることを回避するためにユーザが移動すべき場所の視覚的情報をユーザに提供することができる。ユーザがゲームを身に着けてプレイしたり、ＨＭＤでコンテンツをナビゲートしたりするときの安全性を高めるために、触覚警告および／または音声警告がユーザに提供されることもできる。
【０２４３】
ヘッドマウントディスプレイ１８５０は、音声出力を提供するためのスピーカ１８２０を含む。また、マイクロフォン１８２２は、周囲環境からの音、ユーザによって行われたスピーチなどを含む、現実環境からの音声を取り込むために含まれてもよい。ヘッドマウントディスプレイ１８５０は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール１８２４を含む。一実施形態では、触覚フィードバックモジュール１８２４は、触覚フィードバックをユーザに提供するように、ヘッドマウントディスプレイ１８５０の移動および／または振動を引き起こすことができる。
【０２４４】
ヘッドマウントディスプレイ１８５０の状態の視覚的指標としてＬＥＤ１８２６が設けられている。例えば、ＬＥＤは、電池残量、電源オンなどを示すことができる。ヘッドマウントディスプレイ１８５０がメモリカードに情報を読み書きすることを可能にするためにカードリーダ１８２８が設けられている。ＵＳＢインターフェース１８３０は、周辺装置の接続、または他の携帯型装置、コンピュータなどの他の装置への接続を可能にするためのインターフェースの一例として含まれる。ヘッドマウントディスプレイ１８５０の様々な実施形態において、ヘッドマウントディスプレイ１８５０のより大きな接続性を可能にするために、様々な種類のインターフェースのうちのいずれかが含まれることができる。
【０２４５】
無線ネットワーキング技術を介してインターネットへの接続を可能にするためにＷｉＦｉ（登録商標）モジュール１８３２が含まれる。また、ヘッドマウントディスプレイ１８５０は、他の装置への無線接続を可能にするためのブルートゥース（登録商標）モジュール１８３４を含む。他の装置への接続のために通信リンク１８３６も含まれてもよい。一実施形態では、通信リンク１８３６は、無線通信に赤外線送信を利用する。他の実施形態では、通信リンク１８３６は、他の装置との通信のために様々な無線または有線伝送プロトコルのうちのいずれかを利用することができる。
【０２４６】
ユーザに入力インターフェースを提供するために入力ボタン／センサ１８３８が含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなど、様々な種類の入力インターフェースのいずれかが含まれることができる。超音波通信モジュール１８４０は、超音波技術による他の装置との通信を容易にするためにヘッドマウントディスプレイ１８５０に含まれてもよい。
【０２４７】
バイオセンサ１８４２は、ユーザからの生理学的データの検出を可能にするために含まれる。一実施形態では、バイオセンサ１８４２は、ユーザの皮膚を介してユーザの生体電気信号を検出するための１つ以上の乾式電極を含む。
【０２４８】
ヘッドマウントディスプレイ１８５０の前述の構成要素は、ヘッドマウントディスプレイ１８５０に含まれることができる単なる例示的な構成要素として説明されてきた。本開示の様々な実施形態において、ヘッドマウントディスプレイ１８５０は、様々な前述の構成要素のうちのいくつかを含んでも含まなくてもよい。ヘッドマウントディスプレイ１８５０の実施形態は、本明細書に記載の本開示の態様を容易にする目的で、現在記載されていないが当該技術分野で知られている他の構成要素をさらに含むことができる。
【０２４９】
当業者であれば、本開示の様々な実施形態では、上述したハンドヘルド装置がディスプレイ上に表示される対話型アプリケーションとともに利用されて様々な対話機能を提供することができることを理解されよう。本明細書に記載の例示的な実施形態は、例としてのみ提供されており、限定として提供されていない。
【０２５０】
図１９は、本開示の様々な実施形態にかかる、ゲームシステム１９００のブロック図である。ゲームシステム１９００は、ネットワーク１９１５を介して１つ以上のクライアント１９１０にビデオストリームを提供するように構成されている。ゲームシステム１９００は、通常、ビデオサーバシステム１９２０と任意のゲームサーバ１９２５とを含む。ビデオサーバシステム１９２０は、最小限のサービス品質でビデオストリームを１つ以上のクライアント１９１０に提供するように構成されている。例えば、ビデオサーバシステム１９２０は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、この状態の変更を反映する更新されたビデオストリームを最小の遅延時間でクライアント１９１０に提供することができる。ビデオサーバシステム１９２０は、まだ定義されていないフォーマットを含む多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成されてもよい。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されたビデオフレームを含むことができる。一般的なフレームレートは、毎秒３０フレーム、毎秒６０フレーム、毎秒１９２０フレームである。より高いまたはより低いフレームレートは、本開示の代替実施形態に含まれる。
【０２５１】
本明細書で個々に１９１０Ａ、１９１０Ｂなどと呼ばれるクライアント１９１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲーム機、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線装置、デジタルパッド、スタンドアロン装置、ハンドヘルドゲームプレイ装置などを含むことができる。通常、クライアント１９１０は、符号化ビデオストリームを受信（すなわち、圧縮）し、ビデオストリームを復号し、その結果得られるビデオをユーザ、例えばゲームのプレイヤに提示するように構成されている。符号化ビデオストリームを受信すること、および／またはビデオストリームを復号することのプロセスは、通常、個々のビデオフレームをクライアントの受信バッファに記憶することを含む。ビデオストリームは、クライアント１９１０に一体化されたディスプレイ上で、またはモニタもしくはテレビなどの別個の装置上でユーザに提示されることができる。クライアント１９１０は、必要に応じて、２人以上のゲームプレイヤをサポートするように構成されている。例えば、ゲーム機は、２人、３人、４人またはそれ以上の同時プレイヤをサポートするように構成されてもよい。これらの各プレイヤは、別々のビデオストリームを受信することができ、あるいは単一のビデオストリームは、各プレイヤのために特に生成された、例えば各プレイヤの視点に基づいて生成されたフレームの領域を含むことができる。クライアント１９１０は、必要に応じて地理的に分散している。ゲームシステム１９００に含まれるクライアントの数は、１または２から数千、数万、またはそれ以上まで幅広く変化することができる。本明細書で使用される場合、用語「ゲームプレイヤ」は、ゲームをプレイする人を指すのに使用され、用語「ゲームプレイ装置」は、ゲームをプレイするのに使用される装置を指すのに使用される。いくつかの実施形態では、ゲームプレイ装置は、ゲーム体験をユーザに提供するために協働する複数のコンピューティング装置を指すことがある。例えば、ゲーム機およびＨＭＤは、ビデオサーバシステム１９２０と協働して、ＨＭＤを介して見たゲームを配信することができる。一実施形態では、ゲーム機は、ビデオサーバシステム１９２０からビデオストリームを受信し、ゲーム機は、レンダリングのためにビデオストリームをＨＭＤに転送するか、またはビデオストリームを更新する。
【０２５２】
クライアント１９１０は、ネットワーク１９１５を介してビデオストリームを受信するように構成されている。ネットワーク１９１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む任意の種類の通信ネットワークとすることができる。典型的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信される。
【０２５３】
クライアント１９１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信機能、および入力装置を備えるパーソナルコンピュータである。復号ロジックは、コンピュータ可読媒体に記憶されたハードウェア、ファームウェア、および／またはソフトウェアを含むことができる。ビデオストリームを復号（および符号化）するためのシステムは、当該技術分野で周知であり、使用される特定の符号化方式に応じて変わる。
【０２５４】
クライアント１９１０は、受信したビデオを修正するように構成されたシステムをさらに含むことができるが、必ずしもそうである必要はない。例えば、クライアントは、さらなるレンダリングを実行し、１つのビデオ画像を他のビデオ画像上にオーバーレイし、ビデオ画像をトリミングするなどのために構成されることができる。例えば、クライアント１９１０は、Ｉフレーム、Ｐフレーム、およびＢフレームなどの様々な種類のビデオフレームを受信し、これらのフレームをユーザに表示するために画像に処理するように構成されることができる。いくつかの実施形態では、クライアント１９１０の会員は、ビデオストリームに対してさらなるレンダリング、シェーディング、３Ｄへの変換、または同様の動作を実行するように構成される。クライアント１９１０の会員は、必要に応じて、複数のオーディオまたはビデオストリームを受信するように構成される。クライアント１９１０の入力装置は、例えば、いまだ開発されている片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバック装置、動きおよび／または位置検知装置、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、入力装置などを含むことができる。
【０２５５】
クライアント１９１０によって受信されたビデオストリーム（および必要に応じてオーディオストリーム）は、ビデオサーバシステム１９２０によって生成されて提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームは、ビデオフレームを含む（そしてオーディオストリームは、オーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される（例えば、それらは適切なデータ構造における画素情報を含む）。本明細書で使用される場合、用語「ビデオフレーム」は、ユーザに見せられる画像に寄与する、例えば画像を引き起こすように構成されている情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示の大部分はまた、「オーディオフレーム」にも適用することができる。
【０２５６】
クライアント１９１０は、通常、ユーザからの入力を受信するように構成されている。これらの入力は、ビデオゲームの状態を変更するか、または他の方法でゲームプレイに影響を与えるように構成されたゲームコマンドを含むことができる。ゲームコマンドは、入力装置を使用して受信されることができ、および／またはクライアント１９１０上で実行される計算命令によって自動的に生成されることができる。受信したゲームコマンドは、クライアント１９１０からネットワーク１９１５を介してビデオサーバシステム１９２０および／またはゲームサーバ１９２５に通信される。例えば、いくつかの実施形態において、ゲームコマンドは、ビデオサーバシステム１９２０を介してゲームサーバ１９２５に通信される。いくつかの実施形態では、ゲームコマンドの別々のコピーがクライアント１９１０からゲームサーバ１９２５およびビデオサーバシステム１９２０に通信される。ゲームコマンドの通信は、必要に応じて、コマンドの識別に依存する。ゲームコマンドは、オーディオまたはビデオストリームをクライアント１９１０Ａに提供するために使用されたものとは異なる経路または通信チャネルを介してクライアント１９１０Ａから必要に応じて通信される。
【０２５７】
ゲームサーバ１９２５は、ビデオサーバシステム１９２０とは異なるエンティティによって必要に応じて動作される。例えば、ゲームサーバ１９２５は、多人数参加型ゲームの発行者によって運営されてもよい。この例では、ビデオサーバシステム１９２０は、ゲームサーバ１９２５によって必要に応じてクライアントとして見られ、必要に応じて、ゲームサーバ１９２５の観点から見ると、先行技術のゲームエンジンを実行する先行技術のクライアントであるように構成される。ビデオサーバシステム１９２０とゲームサーバ１９２５との間の通信は、必要に応じてネットワーク１９１５を介して行われる。したがって、ゲームサーバ１９２５は、ゲーム状態情報を複数のクライアントに送信する先行技術の多人数参加型ゲームサーバとすることができ、そのうちの１つはゲームサーバシステム１９２０である。ビデオサーバシステム１９２０は、ゲームサーバ１９２５の複数のインスタンスと同時に通信するように構成されてもよい。例えば、ビデオサーバシステム１９２０は、複数の異なるビデオゲームを異なるユーザに提供するように構成されることができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１９２５によってサポートされてもよく、および／または異なるエンティティによって公開されてもよい。いくつかの実施形態では、ビデオサーバシステム１９２０のいくつかの地理的に分散したインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム１９２０のこれらの各インスタンスは、ゲームサーバ１９２５の同じインスタンスと通信することができる。ビデオサーバシステム１９２０と１つ以上のゲームサーバ１９２５との間の通信は、必要に応じて、専用の通信チャネルを介して行われる。例えば、ビデオサーバシステム１９２０は、これら２つのシステム間の通信に専用の高帯域幅チャネルを介してゲームサーバ１９２５に接続されることができる。
【０２５８】
ビデオサーバシステム１９２０は、少なくともビデオソース１９３０、Ｉ／Ｏ装置１９４５、プロセッサ１９５０、および非一時的記憶装置１９５５を含む。ビデオサーバシステム１９２０は、１つのコンピューティング装置を含むことができるか、または複数のコンピューティング装置の間で分散されることができる。これらのコンピューティング装置は、必要に応じて、ローカルエリアネットワークなどの通信システムを介して接続される。
【０２５９】
ビデオソース１９３０は、ビデオストリーム、例えばストリーミングビデオまたは動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース１９３０は、ビデオゲームエンジンおよびレンダリングロジックを含む。ビデオゲームエンジンは、プレイヤからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、および通常は視点を含む。ゲーム状態はまた、オブジェクトの特性、画像、色および／またはテクスチャも含むことができる。
【０２６０】
ゲーム状態は、通常、ゲームルール、ならびに移動、回転、攻撃、フォーカス設定、対話、使用などのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、必要に応じて、ゲームサーバ１９２５内に配置される。ゲームサーバ１９２５は、地理的に分散したクライアントを使用して複数のプレイヤから受信したゲームコマンドに基づいてゲームの状態のコピーを維持することができる。これらの場合、ゲーム状態は、ゲームサーバ１９２５によってビデオソース１９３０に提供され、ゲーム状態のコピーが記憶され、レンダリングが実行される。ゲームサーバ１９２５は、ネットワーク１９１５を介してクライアント１９１０から直接ゲームコマンドを受信してもよく、および／またはビデオサーバシステム１９２０を介してゲームコマンドを受信してもよい。
【０２６１】
ビデオソース１９３０は、通常、例えば、記憶装置１９５５などのコンピュータ可読媒体に記憶されたハードウェア、ファームウェア、および／またはソフトウェアなどのレンダリングロジックを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成されている。レンダリングロジックの全部または一部は、必要に応じて、グラフィック処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、通常、ゲーム状態および視点に基づいて、オブジェクト間の三次元空間的関係を決定するため、および／または適切なテクスチャなどを適用するために構成された処理段階を含む。レンダリングロジックは、通常、クライアント１９１０への通信前に符号化される生のビデオを生成する。例えば、生のビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ、Ｘｖｉｄ、ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３などにしたがって符号化されることができる。符号化プロセスは、遠隔装置上のデコーダへの配信のために必要に応じてパッケージ化されているビデオストリームを生成する。ビデオストリームは、フレームサイズとフレームレートによって特徴付けられる。典型的なフレームサイズは、８００×６００、１２８０×７２０（例えば７２０ｐ）、１０２４×７６８を含むが、任意の他のフレームサイズが使用されてもよい。フレームレートは、１秒あたりのビデオフレーム数である。ビデオストリームは、異なる種類のビデオフレームを含むことができる。例えば、Ｈ．２６４規格は、「Ｐ」フレームおよび「Ｉ」フレームを含む。Ｉフレームは、表示装置上の全てのマクロブロック／画素をリフレッシュするための情報を含む一方で、Ｐフレームは、そのサブセットをリフレッシュするための情報を含む。Ｐフレームは、通常、Ｉフレームよりもデータサイズが小さい。本明細書で使用される場合、用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するのに必要なバイト数を指すために使用される。
【０２６２】
代替実施形態では、ビデオソース１９３０は、カメラなどのビデオ記録装置を含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延またはライブビデオを生成するために使用されることができる。結果として得られるビデオストリームは、レンダリング画像と、スチルカメラまたはビデオカメラを使用して記録された画像との双方を必要に応じて含む。ビデオソース１９３０はまた、ビデオストリームに含まれるべき以前に記録されたビデオを記憶するように構成された記憶装置を含むことができる。ビデオソース１９３０はまた、例えば人などのオブジェクトの動きまたは姿勢を検出するように構成された動きまたは姿勢検知装置と、検出された動きおよび／または姿勢に基づいてゲーム状態を判定またはビデオを生成するように構成されたロジックとを含むことができる。
【０２６３】
ビデオソース１９３０は、必要に応じて、他のビデオ上に配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン命令、ゲームプレイヤへのメッセージ、他のゲームプレイヤの画像、他のゲームプレイヤのビデオフィード（例えば、ウェブカメラビデオ）を含むことができる。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント１９１０Ａの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッドなどを含むことができる。オーバーレイの一例では、プレイヤの声がオーディオストリームにオーバーレイされる。ビデオソース１９３０は、必要に応じて、１つ以上のオーディオソースをさらに含む。
【０２６４】
ビデオサーバシステム１９２０が２人以上のプレイヤからの入力に基づいてゲーム状態を維持するように構成されている実施形態では、各プレイヤは、位置および視界方向を含む異なる視点を有することができる。ビデオソース１９３０は、必要に応じて、それらの視点に基づいて各プレイヤに別々のビデオストリームを提供するように構成される。さらに、ビデオソース１９３０は、異なるフレームサイズ、フレームデータサイズ、および／または符号化をクライアント１９１０のそれぞれに提供するように構成されることができる。ビデオソース１９３０は、必要に応じて、３−Ｄビデオを供給するように構成される。
【０２６５】
Ｉ／Ｏ装置１９４５は、ビデオサーバシステム１９２０が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、装置動作、装置位置、ユーザ動作、クライアント識別、プレイヤ識別、ゲームコマンド、セキュリティ情報、オーディオなどの情報を送信および／または受信するように構成される。Ｉ／Ｏ装置１９４５は、通常、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏ装置１９４５は、ゲームサーバ１９２５、ネットワーク１９１５、および／またはクライアント１９１０と通信するように構成される。
【０２６６】
プロセッサ１９５０は、例えば、本明細書において説明されるビデオサーバシステム１９２０の様々な構成要素内に含まれるソフトウェアなどのロジックを実行するように構成される。例えば、プロセッサ１９５０は、ビデオソース１９３０、ゲームサーバ１９２５、および／またはクライアントクォリファイア１９６０の機能を実行するためにソフトウェア命令でプログラムされてもよい。ビデオサーバシステム１９２０は、必要に応じて、プロセッサ１９５０の複数のインスタンスを含む。プロセッサ１９５０はまた、ビデオサーバシステム１９２０によって受信したコマンドを実行するために、または本明細書において説明されるゲームシステム１９００の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされてもよい。プロセッサ１９５０は、１つ以上のハードウェア装置を含むことができる。プロセッサ１９５０は、電子プロセッサである。
【０２６７】
記憶装置１９５５は、非一時的アナログおよび／またはデジタル記憶装置を含む。例えば、記憶装置１９５５は、ビデオフレームを記憶するように構成されたアナログ記憶装置を含むことができる。記憶装置１９５５は、例えば、ハードドライブ、光ドライブ、またはソリッドステート記憶装置などのコンピュータ可読デジタル記憶装置を含むことができる。記憶装置１９５５は、（例えば、適切なデータ構造またはファイルシステムによって）ビデオフレーム、人工フレーム、ビデオフレームと人工フレームの双方を含むビデオストリーム、オーディオフレーム、および／またはオーディオストリームなどを記憶するように構成される。記憶装置１９５５は、必要に応じて、複数の装置間に分散される。いくつかの実施形態では、記憶装置１９５５は、本明細書の他の場所で説明されるビデオソース１９３０のソフトウェアコンポーネントを記憶するように構成される。これらのコンポーネントは、必要に応じて、プロビジョニングできるように準備された形式で記憶されることができる。
【０２６８】
ビデオサーバシステム１９２０は、必要に応じて、クライアントクォリファイア１９６０をさらに備える。クライアントクォリファイア１９６０は、クライアント１９１０Ａまたは１９１０Ｂなどのクライアントの機能を遠隔で判定するように構成される。これらの機能は、クライアント１９１０Ａ自体の機能と、クライアント１９１０Ａとビデオサーバシステム１９２０との間の１つ以上の通信チャネルの機能との双方を含むことができる。例えば、クライアントクォリファイア１９６０は、ネットワーク１９１５を介して通信チャネルをテストするように構成されることができる。
【０２６９】
クライアントクォリファイア１９６０は、クライアント１９１０Ａの機能を手動でまたは自動的に判定する（例えば、発見する）ことができる。手動判定は、クライアント１９１０Ａのユーザと通信すること、およびユーザに機能を提供するように求めることを含む。例えば、いくつかの実施形態では、クライアントクォリファイア１９６０は、クライアント１９１０Ａのブラウザ内に画像、テキストなどを表示するように構成される。一実施形態では、クライアント１９１０Ａは、ブラウザを含むＨＭＤである。他の実施形態では、クライアント１９１０Ａは、ＨＭＤに表示されることができるブラウザを有するゲーム機である。表示されたオブジェクトは、クライアント１９１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、表示解像度などの情報をユーザが入力することを要求する。ユーザによって入力された情報は、クライアントクォリファイア１９６０に返信される。
【０２７０】
自動判定は、例えば、クライアント１９１０Ａ上でエージェントを実行することによって、および／またはクライアント１９１０Ａにテストビデオを送信することによって行うことができる。エージェントは、ウェブページに埋め込まれたまたはアドオンとしてインストールされたジャバスクリプトなどの計算命令を含むことができる。エージェントは、必要に応じて、クライアントクォリファイア１９６０によって提供される。様々な実施形態において、エージェントは、クライアント１９１０Ａの処理能力、クライアント１９１０Ａの復号および表示能力、クライアント１９１０Ａとビデオサーバシステム１９２０との間の遅延時間信頼性および通信チャネルの帯域幅、クライアント１９１０Ａの表示タイプ、クライアント１９１０Ａ上に存在するファイアウォール、クライアント１９１０Ａのハードウェア、クライアント１９１０Ａ上で実行されるソフトウェア、クライアント１９１０Ａ内のレジストリエントリなどを見出すことができる。
【０２７１】
クライアントクォリファイア１９６０は、コンピュータ可読媒体に記憶されたハードウェア、ファームウェア、および／またはソフトウェアを含む。クライアントクォリファイア１９６０は、必要に応じて、ビデオサーバシステム１９２０の１つ以上の他の要素とは他のコンピューティング装置上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア１９６０は、クライアント１９１０とビデオサーバシステム１９２０の複数のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施形態では、ビデオサーバシステム１９２０のどのインスタンスがクライアント１９１０のうちの１つへのストリーミングビデオの配信に最も適しているかを判定するために、クライアントクォリファイアによって発見された情報が使用されることができる。
【０２７２】
本明細書で定義された様々な実施形態は、本明細書で開示された様々な特徴を使用して特定の実装を組み合わせることができるまたは組み立てることができることを理解されたい。したがって、提供される例は、いくつかの可能な例にすぎず、さらに多くの実装を定義するために様々な要素を組み合わせることによって可能である様々な実装に限定されるものではない。いくつかの例では、いくつかの実装は、開示されたまたは同等の実装の精神から逸脱することなく、より少ない要素を含むことができる。
【０２７３】
本開示の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成を用いて実施されることができる。本開示の実施形態はまた、有線または無線ネットワークを介してリンクされている遠隔処理装置によってタスクが実行される分散コンピューティング環境でも実施されることができる。
【０２７４】
上記の実施形態を念頭に置いて、本開示の実施形態は、コンピュータシステムに記憶されたデータを含む様々なコンピュータ実装動作を使用することができることを理解されたい。これらの動作は、物理量の物理的操作を必要とするものである。本開示の実施形態の一部を形成する本明細書に記載される動作のいずれも、有用な機械動作である。本開示の実施形態はまた、これらの動作を実行するための機器または装置に関する。装置は、要求される目的のために特別に構成されることができ、または装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動されるかまたは構成される汎用コンピュータとすることができる。特に、本明細書の教示にしたがって書かれたコンピュータプログラムとともに様々な汎用機械が使用されることができ、または必要な動作を実行するためにより専門的な装置を構築することがより便利であり得る。
【０２７５】
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとして具現化されることもできる。コンピュータ可読媒体は、データを記憶することができ、その後にコンピュータシステムによって読み取られることができる任意のデータ記憶装置である。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続記憶装置（ＮＡＳ）、読み出し専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学的および非光学的データ記憶装置を含む。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で記憶および実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
【０２７６】
本方法の動作は、特定の順序で説明されたが、他のハウスキーピング動作は、オーバーレイ動作の処理が所望の方法で実行される限り、動作間で実行されてもよく、または動作が僅かに異なる時間に行われるように調整されてもよく、または処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散されてもよいことを理解されたい。
【０２７７】
理解を明確にするために前述の開示がある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変形および変更が実施されることができることは明らかであろう。したがって、本実施形態は、限定的ではなく例示的とみなされるべきであり、本開示の実施形態は、本明細書に与えられる詳細に限定されるべきではなく、添付の特許請求の範囲およびその均等物の範囲内で変更されることができる。
【図１】
2019523596.tif 000003
【図２】
2019523596.tif 000004
【図３Ａ】
2019523596.tif 000005
【図３Ｂ】
2019523596.tif 000006
【図４Ａ】
2019523596.tif 000007
【図４Ｂ】
2019523596.tif 000008
【図５Ａ】
2019523596.tif 000009
【図５Ｂ】
2019523596.tif 000010
【図５Ｃ】
2019523596.tif 000011
【図６Ａ】
2019523596.tif 000012
【図６Ｂ】
2019523596.tif 000013
【図６Ｃ】
2019523596.tif 000014
【図６Ｄ】
2019523596.tif 000015
【図６Ｅ】
2019523596.tif 000016
【図６Ｆ】
2019523596.tif 000017
【図７】
2019523596.tif 000018
【図８】
2019523596.tif 000019
【図９】
2019523596.tif 000020
【図１０】
2019523596.tif 000021
【図１１】
2019523596.tif 000022
【図１２Ａ】
2019523596.tif 000023
【図１２Ｂ】
2019523596.tif 000024
【図１３Ａ】
2019523596.tif 000025
【図１３Ｂ】
2019523596.tif 000026
【図１４】
2019523596.tif 000027
【図１５Ａ】
2019523596.tif 000028
【図１５Ｂ】
2019523596.tif 000029
【図１５Ｃ】
2019523596.tif 000030
【図１５Ｄ】
2019523596.tif 000031
【図１５Ｅ】
2019523596.tif 000032
【図１６】
2019523596.tif 000033
【図１７】
2019523596.tif 000034
【図１８】
2019523596.tif 000035
【図１９】
2019523596.tif 000036
【国際調査報告】
2019523596.tif 000037
2019523596.tif 000038