IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー・インタラクティブエンタテインメント エルエルシーの特許一覧

特開2024-133532ゲームクラウドシステム上で実行される、任意のユーザによるゲームプレイ実行を後で開始するために使用される、ゲームプレイのスナップショットを保存するための方法及びシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024133532
(43)【公開日】2024-10-02
(54)【発明の名称】ゲームクラウドシステム上で実行される、任意のユーザによるゲームプレイ実行を後で開始するために使用される、ゲームプレイのスナップショットを保存するための方法及びシステム
(51)【国際特許分類】
   A63F 13/53 20140101AFI20240925BHJP
   A63F 13/49 20140101ALI20240925BHJP
   A63F 13/493 20140101ALI20240925BHJP
   G06F 3/04842 20220101ALI20240925BHJP
【FI】
A63F13/53
A63F13/49
A63F13/493
G06F3/04842
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024102927
(22)【出願日】2024-06-26
(62)【分割の表示】P 2021001586の分割
【原出願日】2017-05-12
(31)【優先権主張番号】62/349,546
(32)【優先日】2016-06-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/411,421
(32)【優先日】2017-01-20
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ベネデット、ウォーレン
(72)【発明者】
【氏名】ノス、ランドン
(72)【発明者】
【氏名】シェルワニ、アディル
(72)【発明者】
【氏名】楠本 晶彦
(57)【要約】      (修正有)
【課題】ゲーム世界を通過するための方法である。
【解決手段】ビデオゲームのインスタンスから生成される複数のスナップショットをキャプチャする。ビデオゲームをプレイしている第1のユーザのタイムラインを表示のために生成する。タイムラインが、第1のユーザに関連して表示される現在の描画画像との関係で表示されるビデオゲームの少なくとも1つのユーザの進行の、スナップショット画像を含む。第1のユーザに関連する第1のスナップショット画像を含むサムネイルを、タイムラインにおける表示のために生成する。第1のスナップショットが、第1のユーザの過去の進行を現在の描画画像と比較して示す。第2のユーザに関連する第2のスナップショット画像を含む第2のサムネイルを、タイムラインにおける表示のために生成する。第2のスナップショット画像が、現在の描画画像の後のビデオゲーム内のポイントにおける第2のユーザの進行を示す。
【選択図】図5C
【特許請求の範囲】
【請求項1】
プレーヤについて実行されるビデオゲームのゲームプレイから生成される複数のスナップショットをキャプチャすることであって、前記複数のスナップショットのそれぞれは、自動的に生成されキャプチャされ、前記プレーヤによる前記ゲームプレイのゲーム状態データおよびユーザデータへのアクセスを提供して第2のゲームプレイを起動させる、前記複数のスナップショットをキャプチャすることと、
前記ゲームプレイから複数のスナップショット画像をキャプチャすることであって、前記複数のスナップショット画像のそれぞれは対応する一つのスナップショットに関連付けられている、前記複数のスナップショット画像をキャプチャすることと、
前記複数のスナップショットに対応する複数のスナップショットノードを含むノードグラフを表示することであって、前記複数のスナップショットノードのそれぞれは、対応する一つのスナップショットに関連付けられている、前記表示することと、
前記複数のスナップショットノード間の複数のパスを表示することと、
一つのスナップショットノードの選択または当該スナップショットノードに対応するスナップショット画像の選択を通して前記第2のゲームプレイへのジャンプを可能にすることと、を含み、
前記スナップショット画像は、前記スナップショットノードとの対話を介して表示される、方法。
【請求項2】
前記スナップショットノードに対応するスナップショットまたは前記スナップショットノードに対応する前記スナップショット画像を用いて前記ビデオゲームのインスタンスをインスタンス化することをさらに含み、
前記インスタンスは、前記スナップショットノードに対応する前記スナップショットまたは前記スナップショット画像がキャプチャされた前記ゲームプレイ内のジャンプポイントで始まる、請求項1に記載の方法。
【請求項3】
前記スナップショットノードに対応する前記スナップショットまたは前記スナップショット画像は、リモートストレージに格納された前記ビデオゲームの前記ゲームプレイのゲーム状態データおよびユーザデータへのリンクを提供して前記第2のゲームプレイに対する前記ビデオゲームの前記インスタンスのインスタンス化を可能にする、請求項2に記載の方法。
【請求項4】
前記プレーヤの前記ゲームプレイに関連付けられた前記ビデオゲームの実行を中断することをさらに含む、請求項2に記載の方法。
【請求項5】
前記複数のスナップショットノードのそれぞれは、前記対応するスナップショットがキャプチャされた前記ゲームプレイ内のジャンプポイントで始まる前記第2のゲームプレイに対する前記ビデオゲームの実行を引き起こすように選択可能である、請求項1に記載の方法。
【請求項6】
前記複数のスナップショットに対応する複数のスナップショット画像のそれぞれは、前記ゲームプレイに対して生成された対応する描画画像を含む、請求項1に記載の方法。
【請求項7】
前記複数のスナップショットのそれぞれは、
前記プレーヤの前記ゲームプレイにおいて前記複数のスナップショットのそれぞれがキャプチャされたポイントに対応する環境の生成を可能にするゲーム状態データ、
前記環境についての追加特徴を提供するランダムシードデータ、および
前記プレーヤの前記ゲームプレイに対するキャラクタの生成を可能にするユーザ保存データであって、前記キャラクタは、前記プレーヤの前記ゲームプレイにおいて前記複数のスナップショットのそれぞれがキャプチャされたポイントに対応する状態を有する、前記ユーザ保存データ、
を含む、請求項1に記載の方法。
【請求項8】
前記プレーヤの前記ゲームプレイに関連付けられた前記ビデオゲームの実行を前記対応するスナップショットがキャプチャされた前記ゲームプレイ内のジャンプポイントにジャンプさせることをさらに含み、
前記第2のゲームプレイは前記プレーヤの前記ゲームプレイである、請求項1に記載の方法。
【請求項9】
方法のためのプログラム命令を有する非一時的コンピュータ読み取り可能媒体であって、前記コンピュータ読み取り可能媒体は、
プレーヤについて実行されるビデオゲームのゲームプレイから生成される複数のスナップショットをキャプチャするためのプログラム命令であって、前記複数のスナップショットのそれぞれは、自動的に生成されキャプチャされ、前記プレーヤによる前記ゲームプレイのゲーム状態データおよびユーザデータへのアクセスを提供して第2のゲームプレイを起動させる、前記複数のスナップショットをキャプチャするためのプログラム命令と、
前記ゲームプレイから複数のスナップショット画像をキャプチャするためのプログラム命令であって、前記複数のスナップショット画像のそれぞれは対応する一つのスナップショットに関連付けられている、前記複数のスナップショット画像をキャプチャするためのプログラム命令と、
前記複数のスナップショットに対応する複数のスナップショットノードを含むノードグラフを表示するためのプログラム命令であって、前記複数のスナップショットノードのそれぞれは、対応する一つのスナップショットに関連付けられている、前記表示するためのプログラム命令と、
前記複数のスナップショットノード間の複数のパスを表示するためのプログラム命令と、
一つのスナップショットノードの選択または当該スナップショットノードに対応するスナップショット画像の選択を通して前記第2のゲームプレイへのジャンプを可能にするためのプログラム命令と、を含み、
前記スナップショット画像は、前記スナップショットノードとの対話を介して表示される、非一時的コンピュータ読み取り可能媒体。
【請求項10】
前記スナップショットノードに対応するスナップショットまたは前記スナップショットノードに対応する前記スナップショット画像を用いて前記ビデオゲームのインスタンスをインスタンス化するためのプログラム命令をさらに含み、
前記インスタンスは、前記スナップショットノードに対応する前記スナップショットまたは前記スナップショット画像がキャプチャされた前記ゲームプレイ内のジャンプポイントで始まる、請求項9に記載の非一時的コンピュータ読み取り可能媒体。
【請求項11】
前記スナップショットノードに対応する前記スナップショットまたは前記スナップショット画像は、リモートストレージに格納された前記ビデオゲームの前記ゲームプレイのゲーム状態データおよびユーザデータへのリンクを提供して前記第2のゲームプレイに対する前記ビデオゲームの前記インスタンスのインスタンス化を可能にする、請求項10に記載の非一時的コンピュータ読み取り可能媒体。
【請求項12】
前記複数のスナップショットノードのそれぞれは、前記対応するスナップショットがキャプチャされた前記ゲームプレイ内のジャンプポイントで始まる前記第2のゲームプレイに対する前記ビデオゲームの実行を引き起こすように選択可能であり、
前記複数のスナップショットに対応する複数のスナップショット画像のそれぞれは、前記ゲームプレイに対して生成された対応する描画画像を含む、請求項9に記載の非一時的コンピュータ読み取り可能媒体。
【請求項13】
前記複数のスナップショットのそれぞれは、
前記プレーヤの前記ゲームプレイにおいて前記複数のスナップショットのそれぞれがキャプチャされたポイントに対応する環境の生成を可能にするゲーム状態データ、
前記環境についての追加特徴を提供するランダムシードデータ、および
前記プレーヤの前記ゲームプレイに対するキャラクタの生成を可能にするユーザ保存データであって、前記キャラクタは、前記プレーヤの前記ゲームプレイにおいて前記複数のスナップショットのそれぞれがキャプチャされたポイントに対応する状態を有する、前記ユーザ保存データ、
を含む、請求項9に記載の非一時的コンピュータ読み取り可能媒体。
【請求項14】
前記プレーヤの前記ゲームプレイに関連付けられた前記ビデオゲームの実行を前記対応するスナップショットがキャプチャされた前記ゲームプレイ内のジャンプポイントにジャンプさせるためのプログラム命令をさらに含み、
前記第2のゲームプレイは前記プレーヤの前記ゲームプレイである、請求項9に記載の非一時的コンピュータ読み取り可能媒体。
【請求項15】
コンピュータシステムであって、
プロセッサと、
前記プロセッサに結合され、前記コンピュータシステムによって実行される場合、前記コンピュータシステムに方法を実行させる命令を格納するメモリとを含み、
前記方法は、
プレーヤについて実行されるビデオゲームのゲームプレイから生成される複数のスナップショットをキャプチャすることであって、前記複数のスナップショットのそれぞれは、自動的に生成されキャプチャされ、前記プレーヤによる前記ゲームプレイのゲーム状態データおよびユーザデータへのアクセスを提供して第2のゲームプレイを起動させる、前記複数のスナップショットをキャプチャすることと、
前記ゲームプレイから複数のスナップショット画像をキャプチャすることであって、前記複数のスナップショット画像のそれぞれは対応する一つのスナップショットに関連付けられている、前記複数のスナップショット画像をキャプチャすることと、
前記複数のスナップショットに対応する複数のスナップショットノードを含むノードグラフを表示することであって、前記複数のスナップショットノードのそれぞれは、対応する一つのスナップショットに関連付けられている、前記表示することと、
前記複数のスナップショットノード間の複数のパスを表示することと、
一つのスナップショットノードの選択または当該スナップショットノードに対応するスナップショット画像の選択を通して前記第2のゲームプレイへのジャンプを可能にすることと、を含み、
前記スナップショット画像は、前記スナップショットノードとの対話を介して表示される、コンピュータシステム。
【請求項16】
前記方法は、
前記スナップショットノードに対応するスナップショットまたは前記スナップショットノードに対応する前記スナップショット画像を用いて前記ビデオゲームのインスタンスをインスタンス化することをさらに含み、
前記インスタンスは、前記スナップショットノードに対応する前記スナップショットまたは前記スナップショット画像がキャプチャされた前記ゲームプレイ内のジャンプポイントで始まる、請求項15に記載のコンピュータシステム。
【請求項17】
前記スナップショットノードに対応する前記スナップショットまたは前記スナップショット画像は、リモートストレージに格納された前記ビデオゲームの前記ゲームプレイのゲーム状態データおよびユーザデータへのリンクを提供して前記第2のゲームプレイに対する前記ビデオゲームの前記インスタンスのインスタンス化を可能にする、請求項16に記載のコンピュータシステム。
【請求項18】
前記複数のスナップショットノードのそれぞれは、前記対応するスナップショットがキャプチャされた前記ゲームプレイ内のジャンプポイントで始まる前記第2のゲームプレイに対する前記ビデオゲームの実行を引き起こすように選択可能であり、
前記複数のスナップショットに対応する複数のスナップショット画像のそれぞれは、前記ゲームプレイに対して生成された対応する描画画像を含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記複数のスナップショットのそれぞれは、
前記プレーヤの前記ゲームプレイにおいて前記複数のスナップショットのそれぞれがキャプチャされたポイントに対応する環境の生成を可能にするゲーム状態データ、
前記環境についての追加特徴を提供するランダムシードデータ、および
前記プレーヤの前記ゲームプレイに対するキャラクタの生成を可能にするユーザ保存データであって、前記キャラクタは、前記プレーヤの前記ゲームプレイにおいて前記複数のスナップショットのそれぞれがキャプチャされたポイントに対応する状態を有する、前記ユーザ保存データ、
を含む、請求項15に記載のコンピュータシステム。
【請求項20】
前記方法は、
前記プレーヤの前記ゲームプレイに関連付けられた前記ビデオゲームの実行を前記対応するスナップショットがキャプチャされた前記ゲームプレイ内のジャンプポイントにジャンプさせることをさらに含み、
前記第2のゲームプレイは前記プレーヤの前記ゲームプレイである、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
ゲームクラウドシステム上で実行される、任意のユーザによるゲームプレイ実行を後で開始するために使用される、ゲームプレイのスナップショットを保存するための方法及びシステム。
【背景技術】
【0002】
計算リソース(ハードウェア及びソフトウェア)を使用するクラウドベースシステムは、ネットワーク(例えば、インターネット)を介してサービスを配信する。サービスは、ゲームという文脈においては、リモートクライアントに対するコンテンツのストリーミングを可能にし、その場合、大抵の処理がサーバ上で行われ、それが分散され得る。リモートクライアントにおいて与えられる入力は、次に、クライアントのロケーションにおいて専用のゲームハードウェアを必要とすることなく、ビデオゲームの実行を推進することとなる。ユーザは、複雑なハードウェア制限なしにより多くのビデオゲームタイトルへのアクセスがより容易であると分かっており、ゲーム供給元は、集中ロケーションからゲームコードを管理するのがより容易であると分かっているため、クラウドベースのゲームは、したがって、人気が高まってきている。
【0003】
ユーザが、異なる結果をもたらす複数のオプションを提示し得るビデオゲームのゲームプレイ中を進行しているとき、ゲームプレイをどの方向に操縦するかを決定するのが困難であることがある。例えば、ユーザは、ゲームプレイにおいて何ら明らかな進展をもたらさない方向を回避したい場合があるが、外部ソースを通して得られる事前知識なしに、ユーザが、デッドエンドの結果となる特定の方向を回避することはできない。いくつかの場合において、ユーザは、ゲームプレイを進展させる結果をもたらす適切な方向を発見する前に、ゲームのある部分においてビデオゲームが提示し得る、可能な方向全てを使い果たすことがある。ビデオゲームにおいては、全ての可能な方向をプレイすることを回避することが望ましいことがある。
このような状況において、本開示の実施形態が生じる。
【発明の概要】
【0004】
本開示の実施形態は、ビデオゲームの複数のユーザによるゲームプレイ中に様々なポイントで生成されるスナップショットを保存し、ビデオゲームのゲームプレイ中にユーザに対し表示可能なタイムラインを生成し、スナップショットが、選択されたスナップショットに対応するポイントにおいて始まる、同一または別のユーザによるゲームプレイにジャンプするために使用される、システム及び方法に関する。本開示の複数の創造性のある実施形態は、以下に記載されている。
【0005】
1つの実施形態では、ゲーム世界を通過するための方法が開示される。方法は、複数のユーザに関連して実行されるビデオゲームの複数のインスタンスから生成される複数のスナップショットをキャプチャすることを含む。方法は、ビデオゲームをプレイしている第1のユーザの第1のタイムラインを表示することであって、第1のタイムラインが、第1のユーザに関連して実行中のビデオゲームの第1のインスタンスの現在の描画画像との関係で、少なくとも1つのユーザのビデオゲームの進行のスナップショット画像を含む、表示することをさらに含む。方法は、また、第1のタイムラインにおける第1のユーザに関連する複数の第1のスナップショット画像を、複数の第1のサムネイルに表示することであって、複数の第1のスナップショットが、第1のユーザの過去の進行を現在の描画画像と比較して示す少なくとも1つの描画画像を含む、表示することを含む。方法は、第2のユーザに関連する複数の第2のスナップショットを、複数の第2のサムネイルに表示することであって、複数の第2のスナップショットが、現在の描画画像の後のビデオゲーム内のポイントにおける第2のユーザの進行を示す少なくとも1つの描画画像を含む、表示することと、をさらに含む。
【0006】
別の実施形態では、ゲーム世界を通過するための方法が開示される。方法は、ビデオゲームをプレイしている第1のユーザに関連して、ゲームクラウドシステム上でビデオゲームの第1のインスタンスを実行することを含む。方法は、ビデオゲームの第1のインスタンスの実行に関連して生成される、第1の複数の描画画像の複数の第1のスナップショットをキャプチャすることであって、第1のスナップショットそれぞれが、ビデオゲーム内の進行の一意のポイントに関連付けられる、キャプチャすることを含む。方法は、ビデオゲームをプレイしている第2のユーザに関連するビデオゲームの第2のインスタンスの実行に関連して生成される第2の複数の描画画像の複数の第2のスナップショットをキャプチャすることをさらに含む。方法は、ビデオゲームをプレイしている第1のユーザ及び第2のユーザの進行を示すタイムラインを表示することであって、タイムラインが、第1のインスタンスの実行から生成される現在の描画画像と同時に表示される、表示することをさらに含む。
【0007】
さらに別の実施形態では、ゲーム世界を通過するために構成されるゲームクラウドシステムが開示される。ゲームクラウドシステムは、ビデオゲームをプレイしている複数のユーザに関連する、ビデオゲームの複数のインスタンスを実行するように構成される複数の仮想ゲームエンジンを管理するように構成されるゲームサーバであって、仮想ゲームエンジンが、複数のインスタンスの実行から生成される、描画画像の複数のスナップショットをキャプチャするように構成され、対応するスナップショットが、対応するスナップショットから始まるビデオゲームのインスタンスの実行を可能にする、ゲームサーバを含む。ゲームクラウドシステムは、複数のスナップショットを記憶するためのスナップショットデータストアを含む。ゲームクラウドシステムは、第1のユーザに関連するビデオゲームの第1のインスタンスを実行するように構成される、第1の仮想ゲームエンジンであって、第1の仮想ゲームエンジンが、ビデオゲームをプレイしている第1のユーザの第1のタイムラインを生成するように構成され、第1のタイムラインが、第1のユーザの過去の進行を第1のインスタンスの現在の描画画像と比較して示す少なくとも1つの描画画像を含む、複数の第1のスナップショット画像、及び第2のユーザに関連する複数の第2のスナップショットを含み、複数の第2のスナップショットが、現在の描画画像の後のビデオゲーム内のポイントにおける、第2のユーザの進行を示す少なくとも1つの描画画像を含む、第1の仮想ゲームエンジンを含む。
【0008】
別の実施形態では、ゲーム世界を通過するための方法が開示される。方法は、ストリーミングゲームサービスを介してビデオゲームを実行することであって、ビデオゲームが、ネットワークを通して通信するユーザデバイスのディスプレイ上に描画され、ユーザデバイスが、第1のユーザに関連付けられる、実行することを含む。方法は、ユーザデバイスのディスプレイのためにビデオゲームの複数のシーンを生成することであって、シーンが、ビデオゲームの異なるパスを通って進行する、生成することを含む。方法は、現在の描画シーンと共に表示するためのタイムラインを生成することであって、タイムラインが、第1のユーザによるビデオゲームの進行に関連するスナップショット画像を示す複数の第1のサムネイルを含み、タイムラインが、第2のユーザによるビデオゲームの将来の進行に関連するスナップショット画像を示す複数の第2のサムネイルを含み、複数の第2のサムネイル内の第1のサムネイルの選択が、第2のユーザのために描画されるビデオゲームの将来の状態にジャンプすることを可能にする、生成することを含む。
【0009】
本開示の他の態様は、本発明の原理を例として示す添付図面と併せて掲げる、以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0010】
本開示は、添付図面と併せて掲げる以下の説明を参照することによって、最もよく理解され得る。
【0011】
図1】本開示の1つの実施形態による、クラウドゲームネットワークを介して実行される複数のユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存するために使用されるシステムを示す。
【0012】
図2】本開示の実施形態による、ゲームクラウドシステム(GCS)に記憶されたビデオゲームのアクセスを可能にし、及びプレイし、ゲームプレイに関連して生成されるスナップショットを記憶し、記憶されたゲームプレイをスナップショットを介してプレビューし、スナップショットを介してビデオゲームを通過し、ならびに記憶されたゲームプレイにスナップショットを介してジャンプするための、システム図を示す。
【0013】
図3A】本開示の1つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムラインの例示であり、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。
【0014】
図3B】本開示の1つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示される1つまたは複数のタイムラインの例示であり、タイムラインは、1人または複数のユーザのビデオゲームのゲームプレイのスナップショット画像を示す。
【0015】
図4A】本開示の1つの実施形態による、少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示すタイムラインの例示であり、スナップショットの選択が、スナップショット画像の拡大図を可能にする。
【0016】
図4B】本開示の1つの実施形態による、そのそれぞれが少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す、1つまたはタイムラインの例示であり、スナップショットの選択が、スナップショット画像の拡大図を可能にする。
【0017】
図5A】本開示の1つの実施形態による、ビデオゲームのゲームプレイのノードグラフの例示であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中にタイムラインと共に表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。
【0018】
図5B】本開示の1つの実施形態による、ビデオゲームにおいて利用可能な全ての可能なパスを示すユニバーサルノードグラフまたはノードツリーの例示である。
【0019】
図5C】本開示の1つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるノード階層を示すノードグラフの例示であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中にタイムラインと共に表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。
【0020】
図5D】本開示の1つの実施形態による、非線形の進行部分を有するビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるスナップショットノード階層を示す、ノードグラフの拡張された例示である。
【0021】
図6A】本開示の1つの実施形態による、選択されたスナップショットノードに接近して線形的に整列されたスナップショットノードのクラスタの例示であり、スナップショットノードは、タイムラインまたはノードグラフを通して選択され得る。
【0022】
図6B】本開示の1つの実施形態による、選択されたスナップショットノードに接近して非線形的に整列されたスナップショットノードのクラスタの例示であり、スナップショットノードは、タイムラインまたはノードグラフを通して選択され得る。
【0023】
図6C】本開示の1つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
図6D】本開示の1つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
図6E】本開示の1つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
図6F】本開示の1つの実施形態による、選択されたスナップショットに接近して整列されたスナップショットノードのクラスタに対応するスナップショット画像の例示である。
【0024】
図7】本開示の1つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショット、及びそれらのスナップショットのそれぞれをスナップショットデータベースの1つまたは複数のマスタファイルに記憶することの例示である。
【0025】
図8】本開示の1つの実施形態による、同一または別のユーザによるビデオゲームの別のゲームプレイ中にキャプチャされるスナップショットに基づく、個別のジャンプゲームプレイへのそのユーザによる仲介ジャンプを含む、ビデオゲームのユーザのゲームプレイの複数セグメントの例示である。
【0026】
図9】本開示の1つの実施形態による、ゲーム世界を通過するための方法におけるステップを例示するフロー図である。
【0027】
図10】本開示の実施形態による、示されるヘッドマウントディスプレイのコンポーネントを例示する図である。
【0028】
図11】本発明の多様な実施形態による、ゲームシステムのブロック図である。ゲームシステムは、ネットワークを介して1つまたは複数のクライアントにビデオストリームを提供するように構成される。
【発明を実施するための形態】
【0029】
以下の詳細な説明は、例示のための多数の具体的詳細を含むが、当業者であれば誰でも、以下の詳細に対する多数の変形及び変更が本開示の範囲内にあると、理解するであろう。したがって、以下に記載される本開示の態様は、この説明に続く特許請求の範囲に対する普遍性のいかなる損失もなく、かつ特許請求の範囲に対して制限を課すことなく、明記される。
【0030】
概して言うと、本開示の多様な実施形態は、特にクラウドベースゲームシステム上で実行される際に、複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存し、ビデオゲームを通過し、ビデオゲームをプレビューし、別のユーザのゲームプレイを体験するためにビデオゲーム内の選択されたポイントにジャンプするために提供するシステム及び方法を説明する。スナップショットは、ビデオゲームをプレイしているユーザのために、タイムライン内に表示されてもよい。タイムライン内で選択されたスナップショットは、選択されたスナップショットに対応するビデオゲーム内のジャンプポイントにおけるビデオゲームのインスタンスのインスタンス化を可能にする、メタデータ及び/または情報を含む。要求側のユーザが、元のユーザとは異なり得るとしても、ジャンプポイントにおいて始まるビデオゲームのインスタンスは、以前に実行されたゲームプレイにおいて元のユーザが選択されたスナップショットを生成することに関連して実行される。本開示の実施形態は、以前は利用不可能であった、同一または別のユーザのビデオゲームのインスタンスをロードし、実行する方法のために提供する。このようにして、ユーザは、自分自身のゲームプレイを危険にさらすことなく、他のユーザのゲームプレイを能動的にプレビューすることができる。また、ユーザは、自分自身の現在のゲームプレイを危険にさらすことなく、自分自身の以前のゲームプレイを能動的にプレビューすることができる。このような状況において、本開示の実施形態が生じる。
【0031】
したがって、本開示の実施形態は、ゲームアプリケーションの追加のユーザのために提供する。例えば、本開示の実施形態は、ユーザが、ゲームアプリケーションの任意の部分に、そのゲームアプリケーションの以前のゲームプレイに基づいてジャンプするために提供する。例えば、いくつかの実施形態では、スナップショット画像(例えば、スクリーンショット)の選択を通して、対応するスナップショット情報が、ゲームアプリケーションへのジャンプを可能にするためにアクセスされる。このようにして、ユーザは、楽しむためにゲームアプリケーションのミニセクションを素早くプレイすること、またはゲームアプリケーションの異なるセクションをうまく通過する方法を発見することができる。ユーザが初期起動シーケンスを用いてゲームアプリケーションをロードしなくても、ミニセクションへのアクセスが達成される。さらに、ユーザは、関心のあるセクション(例えば、レベルのボス達、または最終ボスとのバトル)に到達するためにゲーム全体をプレイする必要がなく、迅速なゲームプレイのためにこれらの関心あるセクションに直接行くことができるため、人気の廃れた古いアプリケーションが、新たな関心を招くこととなる。始め(例えば、ユーザが、スクラッチからゲームアプリケーションを最初にロードするとき)から初期シーケンスを実行する代わりに、ゲームサーバは、中間ポイントまたはジャンプポイントから直接始まるゲームアプリケーションを実行するだけでよいため、さらなる他の実施形態は、上記の成果をもたらし、ゲームサーバのより良い活用を含む追加の恩恵及び利点をもたらす。したがって、選択されたジャンプポイントからゲームを開始するために必要なコードを直接アップロードすることによって、ゲームサーバは、初期シーケンス、及びゲームアプリケーション内のジャンプポイントに進むための任意のさらなる実行可能シーケンスをスキップする。
【0032】
多様な実施形態の上記概略的理解とともに、実施形態の例としての詳細について、ここで多様な図面を参照して説明される。
【0033】
明細書全体を通して、「ビデオゲーム」に対する参照は、入力コマンドの実行を通して指示される、任意の種類の対話型アプリケーションを表すように意味される。例示の目的でのみ、対話型アプリケーションは、ゲーム、文書処理、ビデオ処理、ビデオゲーム処理などのためのアプリケーションを含む。さらに、ビデオゲーム及びゲームアプリケーションという用語は、交換可能である。
【0034】
図1は、本開示の1つの実施形態による、クラウドゲームネットワークを介して実行される複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存し、1人または複数のユーザのビデオゲームのゲームプレイをプレビューし、ビデオゲームを通過し、同一または別のユーザのゲームプレイを体験するためにビデオゲーム内の選択されたポイントにジャンプするために使用されるシステムを示す。
【0035】
いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパバイザ上で動作する複数の仮想マシン(VM)を含んでもよく、1つまたは複数の仮想マシンが、単一プレーヤまたはマルチプレーヤビデオゲームを支援して、ホストのハイパバイザに利用可能なハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。他の実施形態では、クラウドゲームネットワークは、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成される。その場合に、各ローカルコンピューティングデバイスは、単一プレーヤまたはマルチプレーヤビデオゲームなどにおいて、ビデオゲームのインスタンスを実行していてもよい。例えば、マルチプレーヤモードでは、ビデオゲームがローカルに実行している間、クラウドゲームネットワークは、情報(例えば、ゲーム状態データ)を各ローカルコンピューティングデバイスから同時に受信し、それに応じてその情報を1つまたは複数のローカルコンピューティングデバイスの至る所に分散する。それによって、各ユーザは、マルチプレーヤビデオゲームのゲーム環境において、他のユーザと(例えば、ビデオゲーム内の対応するキャラクタを通して)対話することができる。このようにして、クラウドゲームネットワークは、マルチプレーヤゲーム環境内でユーザそれぞれについてのゲームプレイを協調させ、結合する。
【0036】
図示するように、システム10は、複数の対話型ビデオゲームへのアクセスを提供するゲームプロセッサモジュール210を実行する、ゲームサーバ205を含む。ゲームサーバ205は、クラウド内で利用可能な任意の種類のサーバコンピューティングデバイスであってもよく、1つまたは複数のホスト上で実行する1つまたは複数の仮想マシンとして構成されてもよい。例えば、ゲームサーバ205は、ゲームプロセッサ210をサポートする仮想マシンを管理してもよい。
【0037】
クライアントデバイス100は、インターネットなどのネットワーク150を介してビデオゲームへのアクセスを要求するため、及びゲームサーバ205により実行され、ユーザ5に関連するディスプレイデバイス12に配信されるビデオゲームのインスタンスを描画するために構成される。例えば、ユーザ5は、クライアントデバイス100を通して、ゲームプロセッサ210上で実行中のビデオゲームのインスタンスと対話していてもよい。クライアントデバイス100は、また、ビデオゲームのローカル実行用に構成されるゲーム実行エンジン111を含んでもよい。クライアントデバイス100は、ゲームコントローラ6、タブレットコンピュータ11、キーボード、ビデオカメラによってキャプチャされるジェスチャ、マウス、タッチバッドなどの多様な種類の入力デバイスからの入力を受信し得る。クライアントデバイス100は、メモリと、ネットワーク150を介してゲームサーバ205に接続可能なプロセッサモジュールと、を少なくとも有する、任意の種類のコンピューティングデバイスであってもよい。クライアントデバイス100のいくつかの例は、パーソナルコンピュータ(PC)、ゲームコンソール、ホームシアタデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話、またはビデオゲームのインスタンスを実行するためにゲームサーバ205と対話し得る任意の他の種類のコンピューティングデバイスを含む。
【0038】
クライアントデバイス100は、ゲームサーバ205によって配信される、またはゲーム実行エンジン111によってローカルに、描画された画像を受信するため、及び描画画像をディスプレイ12上に表示するために構成される。例えば、描画画像は、ユーザ5に関連するゲームサーバ205のゲーム実行エンジン211上で実行中のビデオゲームのインスタンスに関連付けられてもよい。特に、クライアントデバイス100は、ゲームプレイを推進するために使用される入力コマンドなどによって、ユーザ5のゲームプレイに関連するビデオゲームのインスタンスと対話するように構成される。
【0039】
さらに、クライアントデバイス100は、ゲームサーバ205と対話して、ビデオゲームをプレイしている際にユーザ5のゲームプレイのスナップショットをキャプチャし、記憶するように構成される。加えて、クライアントデバイス100は、ゲームサーバ205と対話して、ユーザ5のゲームプレイのスナップショット、及び同じビデオゲームをプレイしている他のユーザの保存済みのゲームプレイのスナップショットを含むタイムラインを表示するように構成される。それぞれのスナップショットは、ユーザ5が、選択されたスナップショットに対応するビデオゲーム内のジャンプポイントにおいて保存済みのゲームプレイにジャンプすることを可能にする。その場合に、保存済みのゲームプレイは、1つの実施形態において、ユーザ5とは異なる別のユーザに関連付けられてもよい。
【0040】
より詳細には、ゲームサーバ205のゲームプロセッサ210は、ビデオゲームをプレイしている際に、ユーザ5のゲームプレイのスナップショットを生成するように構成される。他の仮想マシンに関連するゲームサーバ205の他のゲームプロセッサは、他のユーザのゲームプレイに関連するビデオゲームのインスタンスを実行し、それらのゲームプレイ中にスナップショットをキャプチャするように構成される。先に紹介したように、ビデオゲームのインスタンスは、ユーザ5のゲームプレイに関連してゲーム実行エンジン211上で実行している。
【0041】
スナップショット生成器212は、ユーザ5のゲームプレイから生成される複数のスナップショットをキャプチャするように構成される。それぞれのスナップショットは、対応するスナップショットに関連するビデオゲーム内のポイントから始まるビデオゲームのインスタンスの実行を可能にする情報を提供する。スナップショットは、ユーザ5によるビデオゲームのゲームプレイ中に自動的に生成される。スナップショットのそれぞれの部分は、実施形態において、独立して構成される、またはデータストア140の下に構成される関連データベース内に記憶される。別の実施形態では、スナップショットは、ユーザ5による命令によって手動で生成されてもよい。このようにして、対応するスナップショットの選択を経た任意のユーザは、対応するスナップショットに関連するビデオゲーム内のポイントにおける、ユーザ5のゲームプレイにジャンプし得る。ゲームプロセッサ210は、対応するスナップショットに基づいて任意のユーザの保存済みゲームプレイにジャンプすることを可能にするために、データベース140内の情報にアクセスするように構成される。即ち、要求側のユーザは、スナップショットを生成及び保存した元のユーザのゲームプレイのゲームキャラクタを使用して、選択されたスナップショットに対応するジャンプポイントにおいてビデオゲームのプレイを開始することができる。
【0042】
特に、各スナップショットは、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームのインスタンスの実行を可能にするためのメタデータ及び/または情報を含む。例えば、ユーザ5のゲームプレイにおいて、スナップショットは、レベルの中間などの、ビデオゲームの進行内の特定のポイントにおいて生成されてもよい。関連するスナップショット情報は、データベース140の1つまたは複数のデータベースに記憶される。ポインタは、特定のスナップショットに対応する各データベース内の情報を関連付けるために使用され得る。このようにして、ユーザ5のゲームプレイを体験したい別のユーザは、関心のあるビデオゲーム内のポイントに対応するスナップショットを選択してもよい。
【0043】
スナップショットは、そのポイントにおいて描画される、シーンのスナップショット画像を含む。スナップショット画像は、スナップショット画像データベース146に記憶される。タイムラインにおいてサムネイルの形式で提示されるスナップショット画像は、ビデオゲーム中のユーザによる進行における対応するポイントで、ユーザのゲームプレイにビューを提供する。
【0044】
スナップショットは、また、そのポイントにおけるゲームの状態を定義するゲーム状態データも含む。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバレイなどを含んでもよい。このようにして、ゲーム状態データは、ビデオゲーム内の対応するポイントにおいて存在したゲーム環境の生成を可能にする。ゲーム状態データは、CPUの状態、GPU、メモリ、レジスタ値、プログラムカウンタ値、プログラマブルDMA状態、DMA用にバッファされたデータ、オーディオチップ状態、CD-ROM状態などの、ゲームプレイを描画するために使用されるあらゆるデバイスの状態も含んでもよい。ゲーム状態データは、ビデオゲームをそのポイントから実行するために、実行可能コードのどの部分がロードされる必要があるかも識別してもよい。ゲーム状態データ全てがキャプチャされ記憶される必要はなく、実行可能コードがスナップショットに対応するポイントにおいてゲームを開始するのに十分なデータだけでよい。ゲーム状態データは、ゲーム状態データベース145に記憶される。
【0045】
スナップショットはまた、ユーザ保存データも含む。概して、ユーザ保存データは、対応するユーザのためにビデオゲームをパーソナライズする情報を含む。これは、ユーザのキャラクタに関連する情報を含み、それによって、ビデオゲームは、そのユーザに一意であり得るキャラクタ(例えば、形状、外見、衣服、兵器類など)で描画される。このようにして、ユーザ保存データは、対応するユーザのゲームプレイについてのキャラクタの生成を可能にし、キャラクタは、スナップショットに関連するビデオゲーム内のポイントに対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイする際にユーザ5によって選択されるゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタロケーション、残りのライフ数、利用可能ライフの合計可能数、防御手段、賞品、時間カウンタ値などを含んでもよい。ユーザ保存データは、例えば、ユーザ5を識別するユーザプロファイルデータも含んでもよい。ユーザ保存データは、データベース141に記憶される。
【0046】
加えて、スナップショットは、人工知能(AI)モジュール215により生成されるランダムシードデータも含む。ランダムシードデータは、元のゲームコードの一部でなくともよいが、ゲーム環境をよりリアルに、及び/またはユーザに対し魅力的に見えるようにするために、オーバレイに追加されてもよい。即ち、ランダムシードデータは、ユーザのゲームプレイ内の対応するポイントにおいて存在する、ゲーム環境のための追加特徴を提供する。例えば、AIキャラクタは、オーバレイにおいてランダムに生成され、提供されてもよい。AIキャラクタは、ゲームをプレイしているどのユーザにも関連付けられないが、ユーザエクスペリエンスを強化するためにゲーム環境内に置かれる。例示として、これらのAIキャラクタは、都市のシーンにおいて通りをランダムに歩いてもよい。加えて、他のオブジェクトが、オーバレイにおいて生成され、提示されてもよい。例えば、背景の雲、及び空間内を飛んでいる鳥が、オーバレイにおいて生成され、提示されてもよい。ランダムシードデータは、ランダムシードデータベース143に記憶される。
【0047】
このようにして、ユーザ5のゲームプレイを体験したい別のユーザは、関心のあるビデオゲーム内のポイントに対応するスナップショットを選択してもよい。例えば、タイムラインまたはノードグラフ内のノードにおいて提示されるスナップショット画像をユーザが選択することによって、ゲームプロセッサ210のジャンプ実行エンジン216が、対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することが可能となる。このようにして、スナップショットは、要求側のユーザが、スナップショットに対応するポイントにおけるユーザ5のゲームプレイにジャンプすることを可能にする。
【0048】
ゲームプロセッサ210は、ビデオゲームをプレイしているユーザ5のタイムラインを表示している、タイムライン生成器213を含む。タイムラインは、ビデオゲーム中を進行している少なくとも1人のユーザ(例えば、ユーザ5及び/または他のユーザ)のスナップショット画像を含み、スナップショット画像は、ユーザ5に関連して実行中のビデオゲームのインスタンスの現在の描画画像との関係で提示される。それぞれのスナップショット画像は、ユーザ5によるビデオゲームの進行内の特定のポイントにおいてキャプチャされる特定のスナップショットに対応する。例えば、ユーザ5のゲームプレイに関連して生成されるスナップショット及びスナップショット画像は、ユーザ5のゲームプレイに関連して実行中のビデオゲームのインスタンスの現在の描画画像の前に発生する、ビデオゲーム内のポイントに対応する。即ち、ユーザ5は、以前にビデオゲーム内のそれらのポイントを通ってプレイしており、複数のスナップショット及びスナップショット画像が、それらのポイントに対応して生成された。
【0049】
加えて、第2のユーザのゲームプレイに関連して生成されるスナップショット及びそれらの対応するスナップショット画像は、ユーザ5のゲームプレイの現在の描画画像の前、または後に発生するビデオゲーム内のポイントに対応し得る。即ち、第2のユーザは、ビデオゲームをプレイしている際に、ユーザ5よりもさらに進行している場合がある。したがって、第2のユーザのゲームプレイに対応するスナップショットは、ユーザ5のゲームプレイに関連する現在の描画画像の前のビデオゲーム内のポイントにおいて発生してもよく、または、現在の描画画像の後のポイントにおいて発生してもよい。タイムラインは、現在の描画画像の後に発生するビデオゲーム内のポイントに対応するスナップショット画像を含んでもよく、及び/または現在の描画画像の前に発生するビデオゲーム内のポイントに対応するスナップショット画像を含んでもよい。
【0050】
タイムライン内に提示されるスナップショットは、1つの実施形態において、他のユーザのゲームプレイにアクセスするためにユーザ5によって使用されてもよい。即ち、タイムライン内で選択されたスナップショットの選択によって、ユーザ5が、スナップショットに対応するポイントにおける別のユーザのゲームプレイにジャンプすることが可能となる。例えば、ジャンプゲーム実行エンジン216は、選択されたスナップショットに対応するポイントにおいてビデオゲームの実行を開始するために、スナップショット(例えば、メタデータ及び/または情報)を多様なデータベースから(例えば、データベース140から)収集する。1つの実施形態では、ユーザ5のゲームプレイは、別のユーザのゲームプレイにジャンプすることによって、影響されない。
【0051】
別の実施形態では、タイムライン内に提示されるスナップショットは、現在の描画画像の前に発生するユーザ自身のゲームプレイ内のポイントにアクセスするために、ユーザ5によって使用されてもよい。例えば、スナップショットは、ユーザ5のゲームプレイ内に生成され、タイムラインに提示されてもよい。ユーザ5によるスナップショットの選択によって、実行エンジン216が、選択されたスナップショットに対応する以前のポイントにおいてビデオゲームの実行を開始するために、スナップショット(例えば、メタデータ及び/または情報)を多様なデータベースから(例えば、データベース140から)収集することが可能となる。このようにして、ユーザ5は、ビデオのある部分(例えば、以前のレベル)に戻って再プレイしてもよい。1つの実施形態では、ユーザ5の現在のゲームプレイは、同一ユーザの以前のゲームプレイにジャンプすることによって、影響されない。
【0052】
ゲームプロセッサ210は、ノードグラフ生成器214も含む。ユーザ5が、ビデオゲーム中を進行すると、ゲームを通るパスが生成される。別のユーザは、特に、ビデオゲームが複雑である場合、ビデオゲームを通る異なるパスを生成してもよい。パスは、ビデオゲームによって確立される共通論理パスの一部であってもよく、その場合、共通論理パスは、ビデオゲームをプレイしている際に任意のユーザが取り得る全てのパスを含む。したがって、ユーザ5のゲームプレイに関連するパスは、共通論理パスのサブセットであってもよく、ビデオゲームを通るユーザ5の進行を定義する。論理ノードは、共通論理パス内の多様なポイントにおいて定義されてもよい。例えば、例示として、ノードは、ゲームの開始、レベルの開始、ゲームの終了、レベルの終了、ユーザが2つ以上の任意選択パス間で選択することを可能にする分岐点、ビデオゲーム内の重要ポイントなどにおいて確立されてもよい。
【0053】
加えて、ノードは、ユーザ5のゲームプレイに関連するパス内の多様なポイントにおいて、またはより概略的には、任意のユーザのゲームプレイに関連するパス内において定義されてもよい。例えば、ノードは、スナップショットに関連して定義されてもよい。これらのノードは、周期的な間隔(例えば、毎分、5分おき、10分おきなど)で定義されてもよい。加えて、これらのノードは、ユーザによって手動で定義されてもよい。例示として、これらのノードもまた、ゲームの開始、レベルの開始、ゲームの終了、レベルの終了、ユーザが2つ以上の任意選択パス間で選択することを可能にする分岐点、ビデオゲーム内の重要ポイントなどにおいて確立されてもよい。
【0054】
図2は、本開示の実施形態による、ゲームクラウドシステム(GCS)201に記憶されるビデオゲームのアクセスを可能にし、プレイするためのシステム図200を示す。概して言うと、ゲームクラウドシステムGCS201は、複数のユーザをサポートするようにネットワーク220を介して動作するクラウドコンピューティングシステムであってもよい。追加的に、GCS201は、複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットを保存するように構成され、スナップショットは、スナップショットに対応するビデオゲーム内のポイントにおいて始まる、要求側ユーザのためのビデオゲームのインスタンスを起動するために使用され得る。加えて、スナップショットの使用を経たGCS201は、ユーザが、ビデオゲームを通過すること、ならびにビデオゲームの過去及び将来のシーンをプレビューすることを可能にする。さらに、スナップショットは、要求側ユーザが、別のユーザのゲームプレイを体験するために、対応するスナップショットを通してビデオゲーム内の選択されたポイントにジャンプすることを可能にする。特に、システム200は、GCS201、1つまたは複数のソーシャルメディアプロバイダ240、及びユーザデバイス230を含み、その全てが、ネットワーク220(例えば、インターネット)を介して接続される。1つまたは複数のユーザデバイスは、GCS201及びソーシャルメディアプロバイダ240によって提供されるサービスにアクセスするためにネットワーク220に接続されてもよい。
【0055】
1つの実施形態では、ゲームクラウドシステム201は、ゲームサーバ205と、ビデオレコーダ271と、タグプロセッサ273と、ユーザプロファイルマネージャを含むアカウントマネージャ274と、ゲーム選択エンジン275と、ゲームセッションマネージャ285と、ユーザアクセスロジック280と、ネットワークインタフェース290と、ソーシャルメディアマネージャ295と、を含む。GCS201は、ゲーム状態ストア、ランダムシードストア、ユーザ保存データストア、スナップショットストア、などの複数のゲームストレージシステムをさらに含んでもよく、それらは、概してデータストア140に記憶され得る。他のゲームストレージシステムは、ゲームコードストア261、記録済みゲームストア262、タグデータストア263、ビデオゲームデータストア264、及びゲームネットワークユーザストア265を含んでもよい。1つの実施形態では、GCS201は、ゲームアプリケーション、サービス、ゲーム関連デジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ、及びソーシャルネットワーク間の相互接続性を提供し得るシステムである。GCS201は、ソーシャルメディアマネージャ295を通しネットワークインタフェース290を介して、ユーザデバイス230及びソーシャルメディアプロバイダ240と通信してもよい。ソーシャルメディアマネージャ295は、1人または複数の友達を関連付けるように構成されてもよい。1つの実施形態では、各ソーシャルメディアプロバイダ240は、ユーザにソーシャルネットワーク接続を示す少なくとも1つのソーシャルグラフ245を含む。
【0056】
ユーザUは、ゲームセッションマネージャ285を介してGCS201によって提供されるサービスにアクセスすることができ、その場合に、ユーザUは、図1のユーザ5の代表であってもよい。例えば、アカウントマネージャ274は、ユーザUによるGCS201への認証及びアクセスを可能にする。アカウントマネージャ274は、メンバユーザについての情報を記憶する。例えば、各メンバユーザについてのユーザプロファイルは、アカウントマネージャ274によって管理されてもよい。このようにして、メンバ情報は、認証の目的でアカウントマネージャ274によって使用され得る。例えば、アカウントマネージャ2274は、メンバユーザに関するユーザ情報を更新及び管理するために使用されてもよい。追加的に、メンバユーザにより所有されるゲームタイトルは、アカウントマネージャ274によって管理されてもよい。このようにして、データストア264に記憶されるビデオゲームは、それらのビデオゲームを所有する任意のメンバユーザに利用可能とされる。
【0057】
1つの実施形態では、ユーザ、例えば、ユーザUは、ネットワーク220上の接続を通しユーザデバイス230を経由して、GCS201及びソーシャルメディアプロバイダ240によって提供されるサービスにアクセスし得る。ユーザデバイス230は、プロセッサ及びメモリを有し、有線または無線の、携帯型または非携帯型の、任意の種類のデバイスを含み得る。1つの実施形態では、ユーザデバイス230は、スマートフォン、タブレットコンピュータ、または携帯型フォームファクタにおいてタッチスクリーンケイパビリティを提供するハイブリッドの形態であってもよい。1つの例示的なデバイスは、オペレーティングシステムを実行し、かつネットワーク220を介して取得され、ローカル携帯型デバイス(例えば、スマートフォン、タブレット、ラップトップ、デスクトップなど)上で実行され得る多様なアプリケーション(apps)へのアクセスが提供される、携帯電話デバイスを含み得る。
【0058】
ユーザデバイス230は、ユーザUが、入力コマンド236を送信するため、ならびにGCS201及びソーシャルメディアプロバイダ240から受信されるデータ及び/または情報235を表示するためのインタフェースとして振る舞うディスプレイ232を含む。ディスプレイ232は、フラットパネルディスプレイ、陰極線管(CRT)、または表示を描画可能な他のデバイスによって典型的に提供される、タッチスクリーンまたはディスプレイとして構成され得る。代替的には、ユーザデバイス230は、デスクトップコンピュータ、またはラップトップコンピュータと同様に、デバイスから分離してそのディスプレイ232を有してもよい。
【0059】
1つの実施形態では、ユーザデバイス130は、GCS201と通信して、ユーザUがビデオゲームをプレイすることを可能にするように構成される。いくつかの実施形態では、GCS201は、ホストマシンのハイパバイザ上で動作する複数の仮想マシン(VM)を含んでもよく、1つまたは複数の仮想マシンが、ホストのハイパバイザに利用可能なハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。例えば、ユーザUは、ゲーム選択エンジン275を介して、ビデオゲームデータストア264内の利用可能なビデオゲームを(例えば、ゲームタイトルなどによって)選択してもよい。ビデオゲームは、単一プレーヤゲーム環境において、またはマルチプレーヤゲーム環境において、プレイされてもよい。このようにして、選択されたビデオゲームが、GCS201上のゲームサーバ205による実行のために、有効にされロードされる。1つの実施形態では、ユーザデバイス230が、ゲームビデオフレーム235のストリームをGCS201から受信することとなるように、ゲームプレイが、GCS201において第1に実行され、ゲームプレイを推進するユーザ入力コマンド236が、GCS201に返送される。ストリーミングゲームプレイから受信されるビデオフレーム235は、ユーザデバイス230のディスプレイ232に示される。他の実施形態では、GCS201は、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成され、各ローカルコンピューティングデバイスは、単一プレーヤビデオゲームまたはマルチプレーヤビデオゲームなどのビデオゲームのインスタンスを実行していてもよい。例えば、マルチプレーヤゲーム環境では、ビデオゲームがローカルに実行している間、クラウドゲームネットワークは、情報(例えば、ゲーム状態データ)を各ローカルコンピューティングデバイスから同時に受信し、それに応じてその情報を1つまたは複数のローカルコンピューティングデバイスの至る所に分散する。それによって、各ユーザは、マルチプレーヤビデオゲームのゲーム環境内において、他のユーザと(例えば、ビデオゲーム内の対応するキャラクタを通して)対話することができる。このようにして、クラウドゲームネットワークは、マルチプレーヤゲーム環境内でユーザそれぞれについてのゲームプレイを協調させ、結合する。
【0060】
1つの実施形態では、ユーザUが、プレイする利用可能なゲームタイトルを選んだ後、選んだゲームタイトルについてのゲームセッションが、ゲームセッションマネージャ285を通して、ユーザUにより起動されてもよい。ゲームセッションマネージャ285は、まず、データストア140内のゲーム状態ストアにアクセスして、ユーザUによってプレイされた(選択されたゲームについての)最後のセッションの保存済みゲーム状態が、もしあれば、取り出す。それによって、ユーザUは、前回のゲームプレイの停止ポイントからゲームプレイを再スタートすることができる。一旦再開または開始ポイントが識別されると、ゲームセッションマネージャ285は、ゲームプロセッサ210内のゲーム実行エンジンに、ゲームコードストア261から選ばれたゲームタイトルのゲームコードを実行するように通知してもよい。ゲームセッションが起動された後、ゲームセッションマネージャ285は、ネットワークインタフェース290を介してユーザデバイス、例えば、ユーザデバイス230に、ゲームビデオフレーム235(即ち、ストリーミングビデオデータ)を渡してもよい。
【0061】
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームプロセッサ210、レコーディングエンジン271、及びタグプロセッサ273と通信して、ゲームプレイまたはゲームプレイセッションの記録(例えば、ビデオ)を生成または保存してもよい。1つの実施形態では、ゲームプレイのビデオ記録は、ゲームプレイ中に入力または提供されるタグコンテンツ、及び他のゲーム関連メタデータを含んでもよい。タグコンテンツは、また、スナップショットを介して保存されてもよい。ゲームプレイのビデオ記録は、そのゲームプレイに対応する任意のゲーム測定基準と共に、記録済みゲームストア262に保存されてもよい。任意のタグコンテンツは、タグデータストア263に保存されてもよい。
【0062】
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームプロセッサ204と通信して、ビデオゲームの対応するゲームプレイの結果に影響を与えるために使用されるユーザ入力コマンド236を配信及び取得してもよい。ユーザUによって入力される入力コマンド236は、ユーザデバイス230からGCS201のゲームセッションマネージャ285に送信されてもよい。ゲームプレイを推進するために使用される入力コマンドを含む入力コマンド236は、タグコンテンツ(例えば、テキスト、画像、ビデオ記録クリップなど)を含むような、ユーザ対話型入力を含んでもよい。ゲーム入力コマンド及び任意のユーザプレイ測定基準(ユーザがゲームをプレイする時間の長さなど)が、ゲームネットワークユーザストアに記憶されてもよい。ビデオゲームについてのゲームプレイに関する選択情報は、ユーザに利用可能であり得る複数の特徴を有効にするために使用されてもよい。
【0063】
ゲームプレイは、複数ユーザによってGCS201上で実行されるため、それらのゲームプレイから生成され記憶される情報は、特に、ゲームプレイがGCS201上で実行されるときに、任意の要求側ユーザが他のユーザのゲームプレイを体験することを可能にする。特に、GCS201は、GCS201を通してビデオゲームをプレイしているユーザのゲームプレイによって生成されるスナップショットを保存するように構成される。ユーザUの場合、ユーザデバイスは、ユーザUが、ゲームプレイ中にビデオゲームと戦うことを可能にするインタフェースを提供する。ユーザUによるゲームプレイのスナップショットは、GCS201上に生成及び保存される。
【0064】
また、ユーザデバイス130は、ユーザUが、スナップショットを使用してビデオゲームをプレビューすることを可能にするインタフェースを提供するように構成される。別のユーザが、既にそのポイントを通ってプレイし、スナップショットを生成したことがある限り、例えば、ゲームプレイまたは1人もしくは複数のユーザのスナップショット画像を見ることによって、ユーザUは、ビデオゲーム内の任意のポイントにおけるビデオゲームの1つまたは複数の部分をプレビューすることが可能である。さらに、以下でより詳細に説明されるように、タイムライン内に提示されるスナップショット及び/またはスナップショット画像は、そのポイントにおいて必ずしもビデオゲームをプレイしなくても、様々なポイントにおけるビデオゲームへのプレビューをユーザに提供し得る。例えば、スナップショット及び/またはスナップショット画像を見ることによって、タイムラインは、ビデオゲーム内の特定のポイントにおいてビデオゲームが続く方向を示してもよい。方向が、デッドエンドまたは望ましくない結果をユーザにもたらす場合、ユーザは、スナップショットに対応するそれらのポイントに至るビデオゲーム内のパスを取ることを回避することを選んでもよい。一方、方向が、望ましい結果(例えば、戦利品、面白いバトルまたは対話など)をもたらす場合、ユーザは、スナップショットに対応するそれらのポイントに至る、ビデオゲーム内のパスを取ることを選んでもよい。加えて、ユーザデバイス130は、ユーザUがビデオゲームを通過することを可能にするインタフェースを提供するように構成される。例えば、以下でより詳細に説明されるように、スナップショットは、ビデオゲーム中を進行している1人または複数のユーザによって取られるパスを示すノードグラフを生成するために使用されてもよい。ユーザは、必ずしもそれらのポイントでビデオゲームをプレイしなくても、ビデオゲームの様々なノードにおけるビデオゲームへのプレビューをユーザに提供するノードグラフにおいて、選択されたノードにおけるスナップショット及び/またはスナップショット画像を表示するように、ノードグラフとインタフェースしてもよい。ノードグラフ内の方向が、デッドエンドまたは望ましくない結果をユーザにもたらす場合、ユーザは、ノードに対応するそれらのポイントに至る、ビデオゲーム内のノードパスを取ることを回避することを選んでもよい。一方、ノードグラフ内の方向が、望ましい結果をもたらす場合、ユーザは、ノードに対応するこれらのポイントに至る、ビデオゲーム内のノードパスを取ることを選んでもよい。
【0065】
さらに、ユーザデバイス130は、ユーザUまたは別のユーザのゲームプレイにおいて生成されたスナップショットを使用して、ビデオゲーム内の選択されたポイントにジャンプすることを可能にするインタフェースを提供するように構成される。このようにして、ユーザUは、任意の他のユーザのゲームプレイを体験すること、または自分自身のゲームプレイに戻って、レビュー及び/もしくは再プレイすることができる。即ち、要求側ユーザは、対応するゲームプレイのスナップショットによって、そのゲームプレイ内で使用され、かつそのゲームプレイに対応するキャラクタを使用して、ビデオゲームをプレイする。
【0066】
図3~8は、ユーザがビデオゲームをプレイしている状況内において説明される。概して、ビデオゲームは、ユーザ入力に応答する任意の対話型ゲームであってもよい。例示の目的でのみ、図3~8に関して説明されるビデオゲームは、アドベンチャーゲームであってもよく、その中で、キャラクタは、世界中を旅しながら様々な障害及び課題に遭遇する。キャラクタは、ビデオゲームの中で、徒歩、または任意の機械化された手段を通して旅していてもよい。加えて、キャラクタは、ビデオゲーム中を始まりから終わりまで進行しているときに、遅れにつながり得る1つまたは複数の課題に遭遇してもよい。
【0067】
明細書全体を通して、図3~8の1つまたは複数のタイムラインにおける時間の使用は、ビデオゲームの進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度を示すことを意味しない。
【0068】
図3Aは、本開示の1つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムライン310aの例示であり、タイムラインは、ユーザのゲームプレイのスナップショット画像、及び別のユーザのゲームプレイのスナップショット画像を示す。さらに、タイムライン310aは、1つの実施形態では、GCS201のゲームサーバ205のゲームプロセッサ210のタイムライン生成器213によって生成される。タイムライン310aは、ユーザによる以前のゲームプレイ、及び1人または複数の他のユーザのゲームプレイを素早くプレビューするために使用され得る。
【0069】
ゲームプロセッサ210のゲーム実行エンジン211が、ビデオゲームのインスタンスをインスタンス化する間、ウィンドウ350a及びタイムライン310aが表示される。例えば、ウィンドウ300が、特定のビデオゲームについてのユーザのゲームプレイ中の描画画像305を示す。描画画像は、ビデオゲーム中のユーザの進行における現在のポイントに関連付けられる。図示するように、描画画像305において、ゲームプレイ内でユーザを表すキャラクタ306は、オートバイに乗っている。キャラクタ306は、山岳地域を通る道を走っており、落石307に遭遇している。ユーザのゲームプレイにおいて、キャラクタは、描画画像305に示されるように、短いスパイキーヘアの男性であるように選ばれている。このポイントでは、ユーザは、ビデオゲームの進行に不満を持っている可能性があり、落石を迂回して操作するための道を探索したい場合がある。例えば、ユーザは、ユーザが落石を通り過ぎるのを可能にする解決法を探索するため、及び描画画像305により表されるような、ユーザの現在の進行を越えるポイントにおける、ビデオゲーム内の将来の体験を探索するために、他のユーザのゲームプレイをプレビューしたい場合がある。これらの他のゲームプレイの探索は、タイムライン310a、より具体的には、スナップショット画像、及びタイムライン310aに表示されるような、それらに対応するスナップショットを通して可能にされてもよい。先に紹介したように、スナップショットは、対応するスナップショットに関連するビデオゲーム内のポイントから始まる、対応するビデオゲームのインスタンスの実行を可能にする。特に、タイムラインまたはノードグラフ内のノードにおいて提示されるスナップショット画像のユーザによるさらなる選択は、ゲームプロセッサ210のジャンプ実行エンジン216が、対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することを可能にする。
【0070】
タイムライン310aは、ウィンドウ350aに表示される。概して、1人または複数のユーザの1つまたは複数のゲームプレイのスナップショット画像を含む複数のタイムラインが、ウィンドウ350aに表示されてもよい。図3Aに示すように、ウィンドウ350aは、単一のタイムライン310aを表示してもよく、その場合に、タイムライン310aは、ユーザによるゲームプレイのスナップショット画像、及び別のユーザによるゲームプレイのスナップショット画像を含む。スナップショット画像は、サムネイル及び/またはウィンドウに提示され、ユーザのゲームプレイ内のビデオゲームの現在の描画画像との関係で表示される。例えば、現在の描画画像305によって表されるビデオゲーム内のポイントの前に発生するスナップショット画像は、空のサムネイル340cの左に表示されてもよく、ポイントの後に発生するスナップショット画像は、サムネイル340cの右に表示されてもよい。図3Bに関してさらに説明されるように、ウィンドウ350aは、また、1人または複数のユーザによるビデオゲームの1つまたは複数のゲームプレイのスナップショット画像を含む追加のタイムラインを表示してもよい。タイムラインは、ビデオゲームの進行を示し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度を示さない。
【0071】
特に、タイムライン310aは、ユーザによるゲームプレイについてのスナップショット画像を含む。例えば、ユーザによるゲームプレイ中にキャプチャされるスナップショットに対応する複数のスナップショット画像(例えば、画像340a、340b、...)が、サムネイル及び/またはウィンドウ内のタイムライン310aに表示される。スナップショット画像を一緒に見せることによって、ユーザのゲームプレイの短い履歴が与えられる。例えば、スナップショット画像340aは、傾斜路または崖をオートバイで飛び降りているキャラクタ306を示している。ゲーム中のこのポイントにおいて、キャラクタ306は、スナップショット画像340aの左上の隅に2つの丸で示されるように、2つの可能ライフを有する。その後、ビデオゲーム中のユーザの進行において、スナップショット画像340bは、オートバイに乗って森を通り、山に近づいているキャラクタ306(依然として2つの可能ライフを有する)を示している。ウィンドウ300に示される現在の描画画像305は、キャラクタ306が山に到着し、落石307に近づいたことを示している。このポイントでは、キャラクタ306は、2つの可能ライフを有する。
【0072】
描画画像305は、現在表示され、ビデオゲーム中のユーザの進行を表しているため、ユーザによる以前のゲームプレイを表すスナップショット画像のみが、表示される。これらのスナップショット画像は、典型的には、現在表示される描画画像305によって表されるポイントの前に発生する、ゲーム内のポイントを表す。例示の目的でのみ、キャラクタについての可能ライフの合計数は、ユーザについてのビデオゲームの進行のおおよその見積もりを与える。しかしながら、いくつかのビデオゲームは、ユーザがビデオゲームをプレイするときに、ユーザが前後に進行することを可能にしてもよい。任意の場合に、以前の描画画像に対応するスナップショット画像のみが、1つの実施形態において、ユーザのためのタイムライン310aに表示されてもよい。これらのスナップショット画像は、タイムライン310a内の現在の描画画像305との関係で表示され、現在の描画画像305は、空のサムネイル340cによって表される。例えば、スナップショット画像は、空のサムネイル340cの左に表示されてもよい。さらに、ビデオゲーム内の第1のポイントにおいてキャプチャされる第1のスナップショット画像を、ビデオゲームのユーザの全体的な進行において第1のポイントの後に生じる第2のポイントで発生する第2のスナップショット画像の左に表示することによって、2つのスナップショット画像間で順序付けが達成され得る。別の実施態様では、サムネイル340cに、タイムライン310aにおいてユーザの現在の進行を示すために、描画画像305が配置され得る。
【0073】
現在の描画画像305の前に発生するビデオゲーム内のポイントを表すスナップショット画像は、現在の描画画像305の後に発生するビデオゲーム内のポイント、即ち、将来のポイントを表すスナップショット画像から、それらを区別するように表示されてもよい。1つの実施形態では、スナップショット画像は、グレーアウトされてもよい。即ち、現在の描画画像305の前に発生するポイントに対応するスナップショット画像は、ビデオゲームの進行において後で発生するポイントに対応するスナップショット画像よりも、低い輝度及び/または解像度で表示される。スナップショット画像をクロスハッチングで示す、またはスナップショット画像をぼかすなどの、他の実施形態がサポートされる。
【0074】
さらに、タイムライン310aは、別のユーザによるゲームプレイについてのスナップショット画像を含む。この他のユーザは、1つの実施形態では、ソーシャルメディアマネージャ295を通して発見される友達であってもよい。スナップショット画像は、また、ランダムなユーザ、またはビデオゲームでハイスコアを有するユーザなど高い関心のあるユーザの、ゲームプレイに対応してもよい。例示の目的でのみ、図3~8に関して提供される例では、これらの他のユーザは、第1の友達F1、第2の友達F2、及び第3の友達F3などの、現在のユーザの友達と呼ばれる。第1の友達F1は、長い髪の女性として描かれるキャラクタ308をプレイしている。第2の友達F2は、頭全体に髪がある男性として描かれるキャラクタ309をプレイしている。第3の友達F3は、頭の禿げた男性として描かれるキャラクタ303をプレイしている。
【0075】
特に、タイムライン310aは、第2のユーザ(例えば、女性のキャラクタ308をプレイしている友達F1)によるゲームプレイについてのスナップショット画像を含む。例えば、第2のユーザによるゲームプレイ中にキャプチャされるスナップショットに対応する複数のスナップショット画像(例えば、画像360d、360e、360f、...)が、サムネイル及び/またはウィンドウ内のタイムライン310aに表示される。これらのスナップショット画像は、現在の描画画像305との関係で表示される。例えば、空のサムネイル340cの右に表示されるスナップショット画像360d、360e、及び360fは、現在の描画画像305の後の、ビデオゲーム内のポイントにおいて発生する。タイムライン310aには示されないが、現在の描画画像の周辺または前の、ビデオゲーム内のポイントにおいて発生するスナップショット画像(例えば、スナップショット画像360a、360b、及び360c)もまた、任意選択で示されてもよく、図3Bのウィンドウ350bに表示されるタイムライン310bに関してさらに説明される。
【0076】
スナップショット画像を一緒に見せることによって、現在の描画画像305の後に発生する将来のポイントにおける第2のユーザ(例えば、友達F1)のゲームプレイの短い履歴が与えられる。例えば、スナップショット画像360dは、川を渡る方法を考えており、3つの可能ライフを有するキャラクタ308を示している。ビデオゲームに沿ってさらに進行すると、キャラクタ308は、スナップショット画像360eにおいて、ここでは4つの可能ライフを有し、クマとバトルしている。ビデオゲームに沿ってなおもさらに進行すると、キャラクタ308は、スナップショット画像360fにおいて、ここでは5つの可能ライフを有し、砂漠を通って車を運転していることが示されている。
【0077】
1つの実施形態では、タイムラインは、ビデオゲーム中のユーザによる進行、及び利用可能なスナップショット画像に依存して修正されてもよい。例えば、現在の描画画像305に対して(例えば、ユーザまたは他のユーザについての)遠すぎる過去に発生したスナップショット画像は、表示されなくともよく、(例えば、他のユーザについての)遠すぎる将来に発生するスナップショット画像もまた、表示されなくともよい。さらに、他のユーザが、変更及び/または置換されると、対応するスナップショット画像は、タイムライン内で更新される。
【0078】
図3Bは、本開示の1つの実施形態による、ユーザによるビデオゲームのゲームプレイ中に表示される複数のタイムラインの例示であり、タイムラインは、1人または複数のユーザのビデオゲームのゲームプレイのスナップショット画像を示す。タイムラインは、ウィンドウ350bに表示される。1つの実施形態では、ウィンドウ350bは、ユーザのゲームプレイにおける現在の描画画像305と共に表示される。例えば、タイムライン310b、320、及び330は、1つの実施形態において、ウィンドウ350bに表示され、GCS201のゲームサーバ205のゲームプロセッサ210のタイムライン生成器213によって生成される。タイムラインは、ユーザによる以前のゲームプレイ、及び1人または複数の他のユーザ(例えば、友達、ランダムなユーザ、関心のあるユーザなど)のゲームプレイを素早くプレビューするために使用され得る。
【0079】
図示するように、タイムライン310bは、図3Aに関して前述したように、ユーザによるゲームプレイのスナップショット画像(例えば、340a、340b、...)を含む。これらのスナップショット画像は、図3Bに示されるようなサムネイルに表示されてもよく、現在の描画画像305との関係で配置される。例えば、これらのスナップショット画像は、前述したように、現在の描画画像305の左に表示され、概して第1のスナップショット画像が後で発生するスナップショット画像の左に位置して、配置される。
【0080】
さらに、タイムライン310bは、第2のユーザ(例えば、女性のキャラクタ308をプレイしている第1の友達F1)によるゲームプレイ中にキャプチャされるスナップショットに対応する複数のスナップショット画像(360a、360b、360c、360d、360e、360f、...)を含む。これらのスナップショット画像は、サムネイル内のタイムライン310bに表示され、前述したように、現在の描画画像305との関係で配置される。より詳細には、友達F1によるゲームプレイに対応し、現在の描画画像の周辺または前のビデオゲーム内のポイントにおいて発生するスナップショット画像(例えば、スナップショット画像360a、360b、及び360c)は、また、任意選択で、ユーザのスナップショット画像(例えば、340a、340b)の下に含まれてもよい。現在の描画画像の前のビデオゲームの進行におけるポイントで発生するスナップショット画像(例えば、360a、360b、...)は、空のサムネイル340cの左に配置されてもよい。ゲーム進行の標識として、スナップショット画像360a~cは、キャラクタが2つの可能ライフを有することを示している。スナップショット画像360cは、現在の描画画像305と、ビデオゲームの進行のほぼ同じポイントにおいて発生し、空のサムネイル340cのほぼ下に位置する。例えば、スナップショット画像360c及び現在の描画画像305の両方が、それぞれ2つの可能ライフを有する、対応するキャラクタを示す。さらに、前述したように、第1のスナップショット画像が後で発生するスナップショット画像の左に位置するように、タイムライン310b内のスナップショット画像は、概して配置され得る。矢印399は、第2のユーザ、友達F1に関連するスナップショット画像にリンクしてもよい。
【0081】
一緒に見せることによって、スナップショット画像は、第1の友達F1のゲームプレイの短い履歴を与える。例えば、友達F1のキャラクタ308は、まず、スナップショット画像360aにおいて市街地の道路でオートバイに乗っていることが示されている。その後、ビデオゲーム中の友達F1の進行において、スナップショット画像360bは、オートバイに乗って森を通り、山に近づいているキャラクタ308(2つの可能ライフを有する)を示している。ビデオゲームに沿ってさらに進行すると、キャラクタ308は、スナップショット画像360cにおいて山道でオートバイに乗っている。例えば、友達F1のキャラクタ308は、ユーザのキャラクタ306が、描画画像305において現在遭遇している落石を迂回して操作した可能性がある。その後、キャラクタ308(3つの可能ライフを有する)が、スナップショット画像360dにおいて川に近づいていることが示されている。依然としてさらに進行すると、キャラクタ308(4つの可能ライフを有する)は、スナップショット画像360eにおいてクマとバトルしており、次いでその後、キャラクタ308(5つの可能ライフを有する)は、スナップショット画像360fにおいて、砂漠を通って車を運転していることが示されている。
【0082】
ウィンドウ350bは、第2の友達F2などの別のユーザのゲームプレイに関連する別のタイムライン320を示す。図示するように、タイムライン320は、友達F2によるゲームプレイのスナップショット画像(370a、370b、370c、370d、370e、...)を含む。これらのスナップショット画像は、サムネイルに表示されてもよく、1つの実施形態では、現在の描画画像305との関係で配置される。例えば、現在の描画画像の前のビデオゲームの進行におけるポイントで発生するスナップショット画像(例えば、370a、370b、...)は、空のサムネイル340cのほぼ左に配置される。これらのスナップショット画像は、前述のように、表示されるコンテンツをグレーアウトすることによって容易に識別されてもよい。スナップショット画像370cは、現在の描画画像305と、ビデオゲームの進行のほぼ同じポイントにおいて発生し、空のサムネイル340cのほぼ下に位置する。現在の描画画像の後のビデオゲームの進行におけるポイントで発生するスナップショット画像(例えば、370d、370e、...)は、空のサムネイル340cのほぼ右に配置される。さらに、前述したように、概して、第1のスナップショット画像が後で発生するスナップショット画像の左に位置するように、タイムライン320内のスナップショット画像は配置されてもよい。
【0083】
一緒に見せることによって、スナップショット画像は、第2の友達F2のゲームプレイの短い履歴を与える。例えば、友達F2のキャラクタ309(2つの可能ライフを有する)は、まず、スナップショット画像370aにおいて、川を歩いて渡っていることが示されている。その後、ビデオゲーム中の友達F2の進行において、スナップショット画像370bは、徒歩で森を通って横切り、より高い山脈に近づいているキャラクタ309を示している。なおもさらに進行すると、キャラクタ309(2つの可能ライフを有する)は、スナップショット画像370cにおいて、間違った山の頂上に登頂していることが示されている。さらに後で、キャラクタ309(4つの可能ライフを有する)は、スナップショット画像370dにおいて山の切り立った斜面をフリークライミングしていることが示され、その後さらに後で、スナップショット画像370eにおいて、ボートで湖を渡っていることが示されている。
【0084】
ウィンドウ350bは、第3の友達F3などの別のユーザのゲームプレイに関連する別のタイムライン330を示している。図示するように、タイムライン330は、友達F3によるゲームプレイのスナップショット画像(380a、380b、380c、380d、380e、380f、...)を含む。これらのスナップショット画像は、サムネイルに表示されてもよく、1つの実施形態では、現在の描画画像305との関係で配置される。例えば、現在の描画画像の前のビデオゲームの進行におけるポイントで発生するスナップショット画像(例えば、380a、380b、...)は、空のサムネイル340cのほぼ左に配置される。これらのスナップショット画像は、前述のように、表示されるコンテンツをグレーアウトすることによって容易に識別されてもよい。スナップショット画像380cは、現在の描画画像305と、ビデオゲームの進行のほぼ同じポイントにおいて発生し、空のサムネイル340cのほぼ下に位置する。現在の描画画像の後のビデオゲームの進行におけるポイントで発生するスナップショット画像(例えば、380d、380e、380f、...)は、空のサムネイル340cのほぼ右に配置される。さらに、前述したように、概して、第1のスナップショット画像が後で発生するスナップショット画像の左に位置するように、タイムライン320内のスナップショット画像は配置されてもよい。
【0085】
一緒に見せることによって、スナップショット画像は、第3の友達F3のゲームプレイの短い履歴を与える。例えば、友達F3のキャラクタ303(2つの可能ライフを有する)は、まず、スナップショット画像380aにおいて、オートバイに乗って森を通っている。その後、ビデオゲーム中の友達F3の進行において、スナップショット画像380bは、川を歩いて渡っているキャラクタ303(2つの可能ライフを有する)を示している。なおもさらに進行すると、キャラクタ3039(3つの可能ライフを有する)は、スナップショット画像380cにおいて、カヤックで滝を下っていることが示されている。さらに後で、キャラクタ303は、スナップショット画像380dにおいて、モータボートで湖を渡っていることが示され、次いで、スナップショット画像390eにおいて、キャラクタ303は、ボートを波止場に着けていることが示されている。進行においてさらに後で、キャラクタ303(5つの可能ライフを有する)は、スナップショット画像380fにおいて、飛行機で次の目的地へ飛んでいることが示されている。
【0086】
異なるタイムラインとして参照されるが、ウィンドウ内のタイムラインは全て、ビデオゲームをプレイしているユーザに属する1つのタイムラインとして参照され得る。加えて、他のユーザに関連するタイムライン(例えば、タイムライン320、330、及び310の一部)は、1つの実施形態において、新たなユーザのタイムラインと置換されてもよい。このようにして、ローテーションするユーザのスナップショット画像が、ユーザに示されてもよい。別の実施形態では、より多くのタイムラインが示されてもよく、または、明確化のためにより少ない数のタイムラインが示されてもよい。
【0087】
さらに別の実施形態では、ウィンドウ350aまたは350b内のタイムラインは、完全に異なるゲームまたはコンテンツに関連するスナップショット画像を表示してもよい。例えば、タイムラインは、ユーザの気を引いて、別のビデオゲームをプレビューさせ試させるため、または他のコンテンツを見させるために示されてもよい。別の実施形態では、1人または複数のユーザの1つまたは複数のタイムラインが、ビデオゲームをプレイすることに関心のある新たなユーザに示されてもよい。新たなユーザは、必ずしもビデオゲームをプレイしていなくともよいが、ビデオゲームをプレイしている他人のゲームプレイをプレビューすることに関心がある。その他の場合、新たなユーザは、ビデオゲームを始めたばかりであってもよい。例示として、ゲーム世界をプレビューするための方法は、本開示の1つの実施形態による、線形または非線形の進行を有するビデオゲームにおいて実施されてもよい。特に、方法は、ビデオゲームをプレイしている複数のユーザの複数のゲームプレイから生成される、複数のスナップショットをキャプチャすることを含む。前述したように、各スナップショットは、スナップショットがキャプチャされたビデオゲーム内の場所などの、そのスナップショットに対応するビデオゲーム内のポイントから始まる、ビデオゲームのインスタンスの実行を可能にする。方法は、第1のユーザの第1のタイムラインを表示のために生成することであって、第1のタイムラインが、ビデオゲーム中を進行する第1のユーザのゲームプレイの複数の第1のスナップショット画像を含む複数の第1のサムネイルを含む、生成することを含む。方法は、他のタイムラインの提示を含んでもよい。例えば、方法は、第2のユーザの第2のタイムラインを表示のために生成することであって、第2のタイムラインが、ビデオゲーム中を進行する第2のユーザのゲームプレイの複数の第2のスナップショット画像を含む複数の第2のサムネイルを含む、生成することを含んでもよい。
【0088】
実施形態において、1人または複数のユーザについて生成されるタイムラインが、線形の進行、複数の線形の進行、非線形の進行、またはそれらの組み合わせを有するビデオゲームに関連付けられてもよい。例えば、線形の進行を有するビデオゲームでは、第1のポイントが、対応する線形進行において第2のポイントの前にあるように、ビデオゲーム内のポイントが、互いに対して線形に発生してもよい。分岐点は、2つ以上の線形の延長部分を提示してもよく、そのそれぞれが、それ自体の線形進行に関連付けられる。他の実施形態では、非線形進行を有するビデオゲームにおいては、ビデオゲームの進行に関して非線形であるため、ビデオゲーム内のポイントが互いにいかなる関係も有しなくともよい。例えば、非線形のビデオゲームは、世界の異なる部分または異なる全世界を探索するビデオゲームのように、互いにいかなる関係もなしに並行して動作する複数の筋書きを有してもよく、主要な目標を有しても有しなくてもよい。その場合、特定のユーザについて示されるタイムラインが、ユーザが関与する同一の筋書きに対応してもよく、または他の筋書きに対応してもよい。さらに、探索されている世界の一部または探索されている全世界においてでさえも、対応する筋書きが非線形の形式で生成され得るように、筋書きは、互いにいかなる関係もなしに動作してもよい。非線形のビデオゲームの場合、別のプレーヤついての特定のタイムラインに示されるスナップショットは、ユーザについての現在の描画画像、ユーザについてのタイムライン、または他のプレーヤについてのタイムラインとの関係で、任意に配置されてもよい。さらなる他の実施形態では、ビデオゲームは、線形及び非線形の部分を含んでもよい。例えば、世界の異なる部分または異なる全世界を非線形方式で探索するビデオゲームの場合、世界の特定部分または1つの全世界の中での探索は、線形の進行の後に続いてもよい。
【0089】
図4Aは、本開示の1つの実施形態による、ウィンドウ350aに提示されるタイムライン310aの例示であり、タイムライン310aは、図3Aにおいて最初に紹介され、少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示し、スナップショットの選択が、スナップショット画像の拡大図を可能にする。前述したように、ウィンドウ300は、ユーザによるビデオゲームのゲームプレイの現在の描画画像305を示す。タイムライン310aは、現在の描画画像305の前に発生するビデオゲームの進行内のポイントにおける、(キャラクタ306をプレイしている)ユーザによるゲームプレイのスナップショット画像(340a、340b、...)を含む。タイムライン310は、現在の描画画像305の後に発生するビデオゲームの進行内のポイントにおける、別のユーザ(例えば、キャラクタ308をプレイしている友達F1)によるゲームプレイのスナップショット画像(360d、360e、360f、...)も含む。
【0090】
より詳細には、スナップショット画像は、サムネイルを介してタイムライン310aに提示される。したがって、サムネイルの大きさによっては、描画画像が、多くの詳細を示すには小さすぎることがある。ユーザは、拡大のためにスナップショットを選択してもよい。例えば、ユーザは、1つの実施形態では、スナップショット画像360eを提示しているサムネイル上でカーソル490aを回転させてもよい。表示されているスナップショット画像にタッチスクリーン上でタッチするなどの他の方法が、拡大のためのスナップショット画像の選択に対してサポートされる。ウィンドウ410は、選択されたサムネイルのほぼ同一の領域に生成され、表示される。ウィンドウ410は、描画されたスナップショット画像360eを表示し、その場合に、ウィンドウ410は、スナップショット画像360eのより良好なビューをユーザにもたらすのに十分な大きさのものである。
【0091】
明確化のため、スナップショット画像360eの引き伸ばし画像が、ボックス420内に提示される。しかしながら、1つの実施形態では、ウィンドウ410及び/またはスナップショット画像360eのさらなる選択を通して、ボックス420が、ウィンドウ410に提示されるものよりもさらに大きなスナップショット画像360eを示すウィンドウとして表示されてもよい。前述したように、スナップショット画像360eは、別のユーザ(例えば、女性のキャラクタ308をプレイしている友達F1)のゲームプレイに関連付けられ、クマに遭遇しているキャラクタ308を示している。タイムライン310aに提示されるスナップショット画像をスクロールすること、及び拡大された画像を見ることによって、ユーザは、友達F1のゲームプレイをプレビューすることができる。このようにして、タイムライン310a及び/またはノードグラフ(以下で説明する)内のノードにおいて提示される選択されたスナップショット画像の、ユーザによるさらなる選択によって、ゲームプロセッサ210のジャンプ実行エンジン216は、対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することが可能となる。例えば、ユーザは、別のユーザ(例えば、友達F1)のゲームプレイを体験してもよく、または自分自身のゲームプレイに戻って、再体験及び/または再プレイしてもよい。
【0092】
図4Bは、本開示の1つの実施形態による、ウィンドウ350bに提示される1つまたはタイムラインの例示であり、そのそれぞれが、少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示し、スナップショットの選択が、スナップショット画像の拡大図を可能にする。図4Bに示されるタイムラインは、図3Bに関して前述されており、タイムライン310b、320、及び330を含む。特に、タイムライン310bは、現在の描画画像305の前に発生するビデオゲームの進行内のポイントにおける、キャラクタ306をプレイしているユーザによるゲームプレイのスナップショット画像を含む。タイムライン310bは、現在の描画画像305の前、ほぼ同時、及び後に発生するビデオゲームの進行内のポイントにおいて、キャラクタ308をプレイしている友達F1によるゲームプレイ中にキャプチャされるスナップショットに対応するスナップショット画像をさらに含む。スナップショット画像は、1つの実施形態では、サムネイル内に提示される。タイムライン320は、現在の描画画像305の前、ほぼ同時、及び後に発生するビデオゲームの進行内のポイントにおいて、キャラクタ309をプレイしている友達F2によるゲームプレイ中にキャプチャされるスナップショットに対応するスナップショット画像(370a、370b、370c、370d、370e、...)を含む。タイムライン330は、現在の描画画像305の前、ほぼ同時、及び後に発生するビデオゲームの進行内のポイントにおいて、キャラクタ303をプレイしている友達F3によるゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像を含む。図4Bに示すように、タイムライン320のためのスナップショット画像との対話についてさらに説明され、したがって、タイムライン310b及び330内のスナップショット画像は、理解を容易にするためにラベル付けされていない。
【0093】
より詳細には、スナップショット画像は、サムネイルを介してタイムライン310b、320、及び330に提示される。したがって、サムネイルの大きさによっては、描画画像は、多くの詳細を示すには小さすぎることがある。ユーザは、拡大のためにタイムラインのうちのいずれかのスナップショットを選択してもよい。図4Aは、ユーザに関連するタイムラインにおけるスナップショット画像の選択を示し、図4Bは、友達に対応するタイムラインのうちの1つにおける、拡大のためのスナップショット画像の選択を示す。例えば、ユーザは、1つの実施形態では、タイムライン320においてスナップショット画像370dを提示しているサムネイル上でカーソル490bを回転させてもよい。表示されているスナップショット画像にタッチスクリーン上でタッチするなどの他の方法が、拡大のためのスナップショット画像の選択に対してサポートされる。拡大されたウィンドウ460は、選択されたサムネイルのほぼ同一の領域に生成され、表示される。ウィンドウ460は、描画されたスナップショット画像370dを表示し、その場合、ウィンドウ460は、スナップショット画像370dのより良好なビューをユーザにもたらすのに十分な大きさの(例えば、対応するサムネイルよりも大きい)ものである。
【0094】
明確化及び理解のために、スナップショット画像370dの引き伸ばし画像が、ボックス465内に提示される。しかしながら、1つの実施形態では、ウィンドウ460及び/またはスナップショット画像370dのさらなる選択を通して、ボックス465が、ウィンドウ460に提示されるものよりもさらに大きなスナップショット画像370dを示すウィンドウとして表示されてもよい。前述したように、スナップショット画像370dは、友達F2のゲームプレイに関連付けられ、切り立った岩壁をフリークライミングで上っているキャラクタ309を示している。タイムライン320に提示されるスナップショット画像をスクロールすること、及び拡大された画像を見ることによって、ユーザは、友達F2のゲームプレイをプレビューすることができる。このようにして、タイムライン320またはユーザにより対応するノードグラフ(以下でさらに詳細に説明する)内のノードにおいて提示される選択されたスナップショット画像の、ユーザによるさらなる選択によって、ゲームプロセッサ210のジャンプ実行エンジン216は、対応するスナップショットにアクセスし、選択されたスナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、選択されたスナップショットに対応するビデオゲーム内のポイントにおいて始まるビデオゲームを実行することが可能となる。
【0095】
図5Aは、ビデオゲームのゲームプレイのノードグラフ530の例示であり、ノードグラフは、図3Bにおいて最初に紹介されたウィンドウ350b内のタイムライン310b、320、及び330と共に、ユーザによるビデオゲームのゲームプレイ中に表示される。特に、タイムライン310bは、ポイントにおいてキャラクタ306をプレイするユーザのゲームプレイのスナップショット画像、及び別のユーザ(例えば、キャラクタ308をプレイする友達F1)のゲームプレイのスナップショット画像を示し、タイムライン320は、キャラクタ309をプレイする友達F2によるゲームプレイのスナップショット画像を示し、タイムライン330は、キャラクタ303をプレイする友達F3によるゲームプレイのスナップショット画像を示している。タイムラインのそれぞれにおけるスナップショット画像は、前述したように、現在の描画画像305(例えば、空のサムネイル340cによって表されるような)との関係で提示される。ウィンドウ300は、また、ユーザによるビデオゲームのゲームプレイの現在の描画画像305を示す。
【0096】
図5Aに示されるように、スナップショット画像360eは、タイムライン310bでの拡大のために(例えば、対応するサムネイルの対話を通して)選択される。スナップショット画像360eは、現在の描画画像305の後に(例えば、将来)発生する、ゲーム内のポイントにおいて友達F1のゲームプレイに関連付けられる。特に、ユーザは、1つの実施形態では、タイムライン310bにおいてスナップショット画像360eを提示しているサムネイル上でカーソル590aを回転させてもよい。表示されているスナップショット画像にタッチスクリーン上でタッチするなどの他の方法が、拡大のためのスナップショット画像の選択に対してサポートされる。ウィンドウ410は、前述したように、拡大されたスナップショット画像360eを示す。
【0097】
さらに、ノードグラフ530は、ウィンドウ510に提示される。1つの実施形態では、ノードグラフ530は、キャラクタがビデオゲーム中のユーザの進行として選び得る様々なパスに対応する複数のノードを含む。1つの実施形態では、ノードグラフ530は、図5Bにおいてさらに説明されるように、ビデオゲームのノード全てを示すユニバーサルグラフとして、ウィンドウ510に提示されてもよい。1つの実施形態では、ノードグラフ530は、ユニバーサルグラフのノードのサブセットを含むように提示されてもよく、それは、図5Cに関してさらに説明されるように、特に関心のあるノードを示している。例えば、ノードのサブセットは、1つまたは複数のタイムラインに表示されるスナップショット画像に対応してもよい。
【0098】
ウィンドウ510は、右下の隅に示されているが、ウィンドウ510は、ウィンドウ300のどこにでも位置し得ると理解される。さらに、ウィンドウ510は、見るのに適した情報を提供するのに十分な大きさのものであってもよい。さらなる選択によって、ウィンドウ300内またはフルスクリーン上に、拡大されたウィンドウとしてウィンドウ510を表示してもよい。
【0099】
図示するように、ノードグラフ530内のノード572は、ユーザが、拡大のためにタイムライン310a内のスナップショット画像360eを選択することに応答して、自動的にハイライト(例えば、肉太化、拡大、着色など)されてもよい。ノード572は、スナップショット画像360eの位置にほぼ対応し、スナップショット画像360eについてのビデオゲームの全世界の中の状況を与える。即ち、ユーザはスナップショット画像360eに関心があるため、タイムライン310b内のスナップショット画像360eの選択を通して、ウィンドウ410が、スナップショット画像360eの拡大図を示して提示され、ノード572は、ノードグラフ530内でハイライトされる。ノード572は、また、ユーザによるノードグラフ530内でのノードの手動選択を通してハイライトされてもよい。
【0100】
要約すると、ノードグラフ530は、自動的に、またはユーザの要求に応答して、ウィンドウ510に提示されてもよく、ノードグラフ530は、タイムライン310aに提示されるスナップショット画像に対応するノードのサブセットを含む。さらに、ノード572は、提示され、ハイライトされてもよく、ノード572は、スナップショット画像360eに対応するビデオゲームのゲームプレイ内のポイントのおおよその位置を示している。加えて、ノード372に対応するスナップショット画像360eが、ウィンドウ520に提示されてもよく、その場合、ウィンドウ520は、ウィンドウ410よりも大きく、スナップショット画像360eのさらに大きなビューを示してもよい。
【0101】
このようにして、ユーザには、ビデオゲームの複数次元ビューが提示される。例えば、ユーザには、描画画像305によって、自分自身のゲームプレイの現在のビューが提示される。ユーザのゲームプレイ(例えば、描画画像305及びユーザタイムライン内のスナップショット画像を通して)もまた、ビデオゲームの進行の様々なポイントの至る所の他のユーザのゲームプレイの短いプレビューを示す、1人または複数のユーザの1つまたは複数のタイムラインの横に提示される。スナップショット画像は、タイムライン内のスナップショット画像に関連するビデオゲームを通るパス、またはビデオゲーム内の全ての可能なパスを示すノードグラフと共に提示されてもよい。
【0102】
図5Bは、本開示の1つの実施形態による、ビデオゲームにおいて利用可能な全ての可能なパスを示すユニバーサルノードグラフ550またはノードツリーの例示である。ユニバーサルノードグラフ550は、図5Aのウィンドウ510に表示され得る。例えば、ビデオゲームは、ノード551によって示される開始ポイント、及びノード552によって示される終了ポイントを含んでもよい。1つの終了ポイントが示されているが、概して、ユニバーサルノードグラフは、1つまたは複数の終了ポイントを有してもよく、ビデオゲームを終了するための1つまたは複数のオプションを表している。さらに、ビデオゲームは、対応するユニバーサルノードグラフにおいて表される1つまたは複数の開始ポイントを有してもよい。
【0103】
ユニバーサルノードグラフ550は、キャラクタがビデオゲーム中のユーザ進行として選び得る、様々な論理パス(明細書では「パス」とも呼ばれる)を定義する複数のノード(例えば、論理ノード)を含む。例えば、論理パス511は、ノード502と503との間に定義される。加えて、ユニバーサルノードグラフ550は、ノードのサブセットも含んでもよい。例えば、ユニバーサルノードグラフ550のサブセットであるノードグラフ530は、図5Bのタイムライン310bに表示されるスナップショット画像に対応するノード及びパスを含む。ノードグラフ530は、図5Aのウィンドウ510にも示され得る。
【0104】
複数の論理パスは、ノードからノードへ線形にユニバーサルグラフ550を通って進行するように構成され得る。例えば、ユーザは、ノード501から503(例えば、ノード510からノード502、次いでノード503)の間論理パス514及び511に沿って、ノードグラフ530を通って線形に移動する。即ち、ノード501とノード503との間を横断するとき、他の論理パスは取られ得ない。
【0105】
加えて、複数の論理パスは、ノードからノードへ非線形で進行するように構成されてもよい。例えば、ユーザは、論理パス511に沿ってノード503に到達するとき、ノードグラフ550を通って非線形で移動する。特に、2つのオプションが、ノード503において利用可能であり、その場合に、第1のオプションでは、キャラクタはパス512を取ってもよく、第2のオプションでは、キャラクタはパス513を取ってもよい。異なる結果が、2つの異なるパスを取ることから生じ得る。
【0106】
ビデオゲームの進行は、概して、開始ポイント551に関連する時間またはマーク521において開始し、終了ポイント552に関連する時間またはマーク522において終了する、ユニバーサルタイムライン529によって定義され得る。タイムライン529における時間の使用は、ビデオゲームの進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度を示すことを意味しない。ユーザが、ノードからノードへユニバーサルノードグラフ530を通って移動すると、それを表す時間またはマークは、タイムライン529上に位置し得る。例えば、タイムライン529において、ノード501はマーク523として表されてもよく、ノード503はマーク524として表されてもよい。進行は、タイムライン529に沿って左から右へと測定され得る。例示として、ノード501は、ビデオゲームの進行においてノード503の前に発生する。したがって、ノード501を表すマーク523は、ノード503を表すマーク524の左に表示される。さらに、進行は、前述したように、ユーザに関連する様々なキャラクタ値を通して、タイムライン529及びノードグラフ550に関連してさらに示されてもよい。例えば、進行は、何個の可能ライフがキャラクタに利用可能であるか、またはどのくらいのポイントまたは現金をキャラクタが蓄積しているかによって測定されてもよい。
【0107】
図5Cは、本開示の1つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるスナップショットノード階層を示す、図5Aにおいて最初に紹介されたノードグラフ530の拡張された例示である。1つの実施形態では、ノードグラフ530は、ユーザによるビデオゲームのゲームプレイ中に、1つまたは複数のタイムライン(例えば、タイムライン310b、320、及び330)と共に表示される。例えば、ノードグラフ530は、図5Aのウィンドウ510に表示されてもよく、またはさらに大きなウィンドウに表示されてもよい。ウィンドウ510に表示されるノードグラフ530の拡張ビューは、例示として図5Cに示されている。ウィンドウ350bの輪郭は、スナップショット画像及びノードグラフ530内の対応するスナップショットノードを参照するために、図5Cにおいて提示される。
【0108】
特に、スナップショットノードは、スナップショットがキャプチャされたビデオゲームのゲームプレイ中のポイントに対応する。概して、スナップショットは、ユニバーサルノードグラフ550のノードにおいてキャプチャされ得る。したがって、スナップショットノードは、ユニバーサルノードグラフ550内のノードと整列させてもよい。しかしながら、スナップショットが、ユニバーサルグラフの2つのノード間(例えば、論理パスの中間)でキャプチャされているときなどに、いくつかのスナップショットノードは、ユニバーサルグラフ550内のノードと整列させなくともよい。例えば、スナップショットノード561は、ユニバーサルノードグラフ550内の(ノード560及び562に対応する)2つのノード間でキャプチャされてもよい。
【0109】
ノードグラフ530は、対応するユーザのゲームプレイ中にキャラクタが取った、様々な実際のパスを定義する、複数のスナップショットノードを含む。例えば、パス579は、スナップショットノード560と561との間に定義される。パス579は、ユーザのゲームプレイ及び友達F1のゲームプレイにおいて取られているように示されている。ノードグラフ530は、1人または複数のユーザのゲームプレイにおいて定義されるように、線形及び非線形のパスのうちの1つまたは両方を示してもよい。
【0110】
ノードグラフ530は、1つの実施形態において、ウィンドウ350に表示されるタイムライン310b、320、及び330に示されるスナップショット画像に対応する。例えば、スナップショットノード562は、ユーザの現在の描画画像305を表すボックス340cに対応し、スナップショットノード507は、友達F1のスナップショット画像360eに対応し、スナップショットノード595は、友達F2のスナップショット画像370aに対応し、スナップショットノード565は、友達F3のスナップショット画像380dに対応する。このようにして、ユーザには、タイムライン内のスナップショット画像及び現在の描画画像、ならびにノードグラフ530内のスナップショットノードなど、関連するビデオゲームの少なくとも2つ以上のビューが提示される。現在の描画画像305(ノードグラフ530内のその位置と共に)と他のスナップショット画像(及びそれらのノードグラフ530内の位置)を相互参照することによって、ユーザは、現在の描画画像に関連するビデオゲーム内のポイント周辺のユーザにはどのパスが利用可能であるかを理解することが可能である。したがって、ユーザは、ビデオゲームのユニバーサルノードグラフ550及びノードグラフ530内でキャラクタ306を方向付けることができる。このようにして、ユーザは、ゲーム内の1つのポイントから別のポイントへ通過することができる。1つの実施形態では、スナップショットノードが図5Cに示されるが、ノードグラフ530は、ユニバーサルノードグラフ550によって定義されるような論理パスを定義するノードを含んでもよい。
【0111】
より詳細には、キャラクタ306をプレイしているユーザによって取られるパスは、細かい解像度で点が打たれている線Aによって示される。例えば、ユーザは、スナップショットノード560、561、及び562間を横断している。スナップショットノード562から、ユーザのキャラクタ306は、スナップショットノード562からスナップショットノード563及び564を通って上に進む第1のルート、ならびにスナップショットノード562からスナップショットノード565を通って569へ(例えば、ノード565からノード566、ノード567、ノード568、及びノード569へ)下方向に進む第2のルートを取っている。友達F1のキャラクタ308によって取られるパスは、実線Bによって示される。例えば、友達F1のキャラクタ308は、スナップショットノード560、561、562、565、570、571、572、573、及び574によって定義されるパスに沿って進んでいる。また、友達F2のキャラクタ308によって取られるパスは、粗い解像度で点が打たれている線Cによって示される。例えば、友達F2のキャラクタ308は、スナップショットノード595、596、597、598、599、及び569によって定義されるパスに沿って進んでいる。友達F3のキャラクタ303によって取られるパスは、線Dによって示され、キャラクタ303が、スナップショットノード560、581、582、583、565、584、585、及び568によって定義されるパスに沿って進んでいることを示す。
【0112】
ビデオゲームの進行において、ユーザは、スナップショットノード562を越えて、またはスナップショットノード562の将来に発生するパスを取っており、それは、現在の描画画像305に関連するビデオゲーム内のポイントに対応するが、スナップショットノード562に戻っている。例えば、スナップショットノード562を越えて取られ、スナップショットノード564において終了する第1のルートは、デッドエンドに到達している可能性がある。また、スナップショットノード562を越えて取られ、ノード569において終了する第2のルートは、ユーザにとって不満足である可能性がある。ユーザに関連する現在の描画画像305を越えて発生するスナップショットノードに対応するスナップショット画像は、タイムライン310bには示されていないが、他の実施形態では示されてもよい。
【0113】
ユーザは、このエリア内のビデオゲームの刺激的な部分(クマに遭遇すること)についての噂を聞いた可能性があるが、これまでにそのアクションの機会を失っているため、ユーザは、ゲーム進行においてノード562に戻っている。ユーザは、ノード562を通って刺激的な部分に何とかして到達されると信じている。本開示の実施形態は、他のユーザのゲームプレイをプレビューすること、及びビデオゲームの刺激的な部分に到達するためにビデオゲーム内で取る潜在的なルートを展開することによって、ユーザがビデオゲームを通る代替パスを発見するための方法を提供する。例えば、ユーザは、タイムライン310bにおいてキャラクタ308をプレイする友達F1のスナップショット画像をプレビューし、クマとの遭遇がスナップショット画像360eに対応するスナップショットノード507に関連して発生することを発見してもよい。参照のために、スナップショット画像360eは、ボックス509に示される。タイムライン及び/またはノードグラフ内に提示されるスナップショット画像の導入がなければ、ユーザは、関心のあるこれらのエリアをプレビューし、及び/または発見するのに大変な苦労をすることとなる。
【0114】
特に、ユーザは、タイムライン310b内のスナップショット画像を見ることによって、スナップショット画像360eを発見したか、またはノードグラフ530を探索することによって、それを発見した可能性がある。例えば、タグ507は、図5Cのノードグラフ530内のスナップショットノード572の隣に示されており、それが、ユーザの注意を引いた可能性がある。ノードグラフ530内のノード572と対話することによって、スナップショット画像360eのビューが、図5Aのウィンドウ520などにおいてユーザに提示されてもよい。また、ノードグラフ530内でスナップショットノード572を選択することによって、タイムライン310b内の対応するスナップショット画像360eは、注意を引くためにハイライト(例えば、肉太化)されてもよい。このようにして、ユーザは、前述したように、スナップショット画像360eの拡大バージョンを見るために、対応するサムネイル上で回転させてもよい。別の実施態様では、ノードグラフ530が、それ自体の優先ウィンドウ(例えば、フルスクリーン、またはオーバレイされたウィンドウ300)に提示される場合、スナップショットノード572との対話は、別のウィンドウ(図示しない)にスナップショット画像360eを取り出してもよい。
【0115】
友達F1のゲームプレイ及びノードグラフ530をプレビューした後、ユーザは、スナップショット画像360eに対応するビデオゲーム、より詳細には、友達F1のゲームプレイをさらに探索したい場合がある。前述したように、本開示の実施形態は、ユーザが友達F1のゲームプレイにジャンプすることを可能にする。特に、タイムライン310bまたはノードグラフ53を介したスナップショット画像360eの、ユーザによるさらなる選択によって、ゲームプロセッサ210のジャンプ実行エンジン216が、スナップショット画像360eに対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショット及びそのスナップショット画像360eに対応するビデオゲーム内のポイント(ジャンプポイントとしてここでは識別される)において始まるビデオゲームを実行することが可能となる。このようにして、ユーザは、友達F1のゲームプレイを通して、ノード507(クマとの遭遇)においてビデオゲームを十分に体験し得る。即ち、ユーザは、ジャンプノード572における友達F1のキャラクタ308にジャンプし、(スナップショット画像360eに対応する)ジャンプノード572に対応するビデオゲームのポイントにおいて始まる、友達F1のゲームプレイのインスタンス化をプレイする。したがって、ユーザは、最も刺激的な部分におけるゲームプレイにジャンプすることができる。
【0116】
ユーザは、友達F1のゲームプレイを体験した後、友達F1のゲームプレイによって以前にキャプチャされた同じスナップショットノード572(クマとの遭遇)まで通過するように試みることを決定してもよい。ノードグラフ530は、ユーザの現在の位置からスナップショットノード572に到達するために、友達F1によって取られたルートへのビューを提供する。ユーザの現在の位置は、現在の描画画像305に関連付けられる、ノード562である。例えば、ノードグラフは、ノード562とスナップショットノード572との間の移動が、スナップショットノード565及び570を介して可能であることを示している。
【0117】
図5Dは、本開示の1つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショットに関連して生成されるスナップショットノード階層を示す、ノードグラフ540の拡張された例示である。ノードグラフ540は、図5Cのノードグラフに関連し得るが、非線形進行の部分を有するビデオゲームにおいて使用されるタイムラインを例示するために使用される。例えば、レベル内のゲームプレイは、別のレベル内のゲームプレイに無関係であってもよい。また、単一レベル内の異なるユーザによるゲームプレイもまた、ビデオゲームの進行に関しては互いに無関係であってもよい。
【0118】
ノードグラフ540において示されるように、ビデオゲームは、ビデオゲーム内でプレイ可能な4つの異なるレベルを含んでもよい。レベル間の横断は、ビデオゲームにおいて可能である。例えば、ユーザ、友達1、及び友達2のゲームプレイは、4つのレベル全てを横断する。友達3のゲームプレイは、3つのレベルを横断する。友達4のゲームプレイは、2つのレベルのみを横断する。友達5のゲームプレイは、レベル3及び4を横断する。図5Dに示すように、ビデオゲームは、任意のレベルで開始されてもよい。例えば、友達4のゲームプレイは、レベル2で開始し、レベル2に留まっている。友達5のゲームプレイは、レベル3で開始し、いかなる他のレベルへも拡張することなく、レベル4に続いている。いくつかのゲームプレイは、オーバラップし、線形進行のある部分を示し得る(例えば、ユーザ及び友達1のゲームプレイ)が、図5Dに示される他のゲームプレイは、ビデオゲームを通して非線形進行を示し得る。例えば、友達4のビデオゲームを通したゲームプレイ及び進行は、友達5のビデオゲームを通したゲームプレイ及び進行とは無関係である。
【0119】
図6Aは、本開示の1つの実施形態による、選択されたスナップショットノードに接近して線形的に整列されたスナップショットノードのクラスタの例示(例えば、スナップショット画像360eに関連するスナップショットノード572)であり、スナップショットノードは、タイムライン310aまたはノードグラフ530を通して選択され得る。特に、タイムライン310aは、現在の描画画像305(空のサムネイル340cによって表される)の前に発生するビデオゲームの進行内のポイントにおける、ユーザによるゲームプレイのスナップショット画像(340a、340b、...)を含む。タイムライン310aは、前述したように、友達F1によるゲームプレイ中にキャプチャされるスナップショットに対応するスナップショット画像(360d、360e、360f、...)をさらに含む。さらに、スナップショット画像のそれぞれは、ノードグラフ530に提示されるもののようなスナップショットノードに対応する。
【0120】
タイムライン310aは、ユーザ及び友達F1のゲームプレイ中にキャプチャされる複数のスナップショットから選択されたスナップショット画像を示し得る。友達F1についてのスナップショット及びスナップショット画像は、粗い、及びより高い解像度のスナップショット画像の提示を示すために使用される。例示のため、友達F1のゲームプレイ中に100個のスナップショットがキャプチャされ、それらがキャプチャされた順に1から100まで番号が付され得る。タイムライン310aには、キャプチャされたスナップショットに対応するスナップショット画像全てを示すのに十分な場所がない場合がある。したがって、スナップショット画像のサブセットのみが、タイムライン310に提示される。さらに、タイムライン310aにおいて並んで提示されるスナップショット画像は、連続的及び/または逐次的にキャプチャされていなくともよい。例えば、図6Aのタイムライン310aに示されるように、スナップショット画像360eは、キャプチャされた順で番号50が付され、すぐ右のスナップショット画像は、番号60が付されたスナップショット画像360fである。したがって、9個のスナップショット画像が、スナップショット画像360eとスナップショット画像360fとの間でキャプチャされたが、タイムライン310aには示されていない。
【0121】
1つの実施形態では、より細かい解像度のスナップショット画像が、キャプチャされたスナップショットに基づく表示用に生成及び提示されてもよい。特に、タイムライン310aまたはノードグラフ530のいずれかを通して、画像360eなどのスナップショット画像をさらに選択することによって、より高い解像度のスナップショット画像の提示が可能となる。さらに、1つの実施形態では、スナップショット画像は、ユーザ(例えば、友達F1)がゲームプレイ中に取ったパスを示すノードグラフ/木構造に提示される。それは、ノードを表す各スナップショット画像であり、スナップショット画像が、ノードグラフ構成に提示される。例えば、ウィンドウは、スナップショットノードをそれらに対応する画像を介して表示してもよく、その場合に、スナップショットノードは、選択されたスナップショット画像360eに対応するスナップショットの前、及び/または後で逐次的にキャプチャされる。スナップショット画像360eは、前述したように、友達F1のゲームプレイを起動するためにユーザによって選択されたジャンプポイントに対応する。ジャンプポイントとして選択されている前、または後に、ユーザは、スナップショット画像360eに関連する様々なスナップショット画像を見たい場合がある。
【0122】
図6Aに示すように、スナップショット画像の線形進行が、選択されたスナップショット画像360eに関係する様々なサムネイルに提示される。スナップショット画像360e及びその対応するスナップショットは、前述したように、ジャンプポイント(JP)とも呼ばれる。選択されたスナップショット画像360e及びJPは、キャプチャされたスナップショットの順番で番号50が付されたスナップショットに関連付けられている。図6Aは、4つのスナップショット画像610、360e、615、及び620が示され、JPの前にキャプチャされた1つのスナップショット(スナップショットJP-1)、JP、ならびにJPの後にキャプチャされた2つのスナップショット(スナップショットJP+1及びJP+2)に対応することを示している。即ち、スナップショット画像は、連続的に番号49~52が付されたスナップショットに対応する。例えば、スナップショット画像610(JP-1)、スナップショット画像360e(JP)、スナップショット画像615(JP+1)、及びスナップショット画像620(JP+2)は、49~52と連続的に順番が付けられている。このようにして、ユーザは、ノードグラフ構成においてスナップショット画像360eの周辺の、友達F1のゲームプレイにおけるアクションを高解像度で見ることができる。
【0123】
図6Bは、本開示の1つの実施形態による、選択されたスナップショットノード(例えば、スナップショット画像360eに対応するスナップショットノード572)に接近して非線形的に整列されたスナップショットノードのクラスタの例示であり、スナップショットノードは、図6Aに関して前に紹介されたように、タイムライン310aまたはノードグラフ530を通して選択され得る。図6Aは、スナップショット画像360eに対応するジャンプポイントJP周辺のビデオゲームの線形進行を示し、図6Bは、JP周辺のビデオゲームの非線形進行を示す。
【0124】
例えば、スナップショット画像は、友達F1がゲームプレイ中に取ったパスを示すノードグラフ/木構造に提示される。それは、ノードを表す各スナップショット画像であり、スナップショット画像は、ノードグラフ構成に提示される。図6Bに示すように、スナップショット画像の非線形進行が、順番50のJPとも呼ばれる、選択されたスナップショット画像360eに関係する様々なサムネイルに提示される。8個のスナップショット画像が示されている。特に、スナップショット画像605は、順番48のスナップショットノードJP-2に対応する。また、スナップショット画像610は、順番49のスナップショットノードJP-1に対応し、スナップショットJP-1は、非線形構成を示す決定ノードである。順番50A~Bによって表されるように、2つの選択が利用可能である。スナップショットノードJP-1から生じる1つの選択は、順番50Bのスナップショット画像613に進む。スナップショットノードJP-1から生じる他の選択は、スナップショットノードJPへのルートであり、スナップショットノードJPは、スナップショット画像360e及び順番50Aに対応する。このルートは、(スナップショット画像615及び順番51に関係する)連続的に番号が付されたスナップショットJP+1、ならびに(スナップショット画像620及び順番52に関係する)スナップショットJP+2を通って続く。
【0125】
図6C~6Fは、本開示の1つの実施形態による、選択されたスナップショットに接近して整列されるスナップショットノードのクラスタに対応し、図6A~6Bに関して説明されたスナップショット画像の例示である。例えば、図6Cは、スナップショット画像610を示し、クマがその洞窟から出て行くとき、クマに最初に遭遇する友達F1のゲームプレイにおいて使用されるキャラクタ308を示す。スナップショット画像610は、順番49のスナップショットノードJP-1に対応する。図6Dは、(スナップショットノードJP及び順番50に関係する)スナップショット画像360eを示し、クマと接触して交戦するキャラクタ308を示す。キャラクタ308は、キャラクタ308にとって利用可能なおそらく唯一の道具及び/または武器である、グルグル巻きのロープを手に取っていることが示されている。図6Eは、(スナップショットノードJP+1及び順番51に関係する)スナップショット画像615を示し、キャラクタ308が、ロープを用いて木にクマの足それぞれを縛ることによってクマを制圧したことを示している。図6Fは、(スナップショットノードJP+2及び順番52に関係する)スナップショット画像620を示し、キャラクタ308が、クマに対する勝利の果物を楽しんでいること、及び、武器及び他の報酬アイテム(例えば、コイン、宝石など)を獲得可能であることを示している。
【0126】
図7は、本開示の1つの実施形態による、ビデオゲームのゲームプレイ中にキャプチャされるスナップショット、及びデータストア750の個別マスタファイルとしてそれらのスナップショットのそれぞれを記憶することの例示である。これらのマスタファイルは、産業界では典型的であるが、ビデオゲームのユーザの進行として自動的に消去または上書きされない。このようにして、各スナップショットに関係する情報及びメタデータは、スナップショット画像(例えば、タイムライン内の)、ノードグラフを提示するため、及び同一または他のユーザのゲームプレイ内のジャンプポイントへのジャンプを可能にするために、いつでも容易にアクセスされ得る。
【0127】
例えば、複数のスナップショットが、特定ユーザのゲームプレイに関連してキャプチャされる。スナップショットは、キャプチャの順序(即ち、1~N)で連続して番号が付される。図7に示すように、少なくともスナップショット711(順序20)、スナップショット712(順序31)、スナップショット713(順序32)、及びスナップショット714(順序33)が、キャプチャされる。
【0128】
各スナップショットは、スナップショットに対応するビデオゲーム内のポイントで始まるビデオゲームのインスタンスをロード及び実行するのに十分な情報及び/またはメタデータを含む。例えば、各スナップショットは、前述したように、データベース145に記憶されるゲーム状態データ、データベース146に記憶されるスナップショット画像データ、データベース143に記憶されるランダムシードデータ、及びデータベース141に記憶されるユーザ保存データを少なくとも含む。1つの実施形態では、メタデータは、2つの連続した順序のスナップショットにおいて、及びスナップショット間で、ビデオゲームのインスタンスを推進するために使用される入力コマンドを含む。各スナップショットは、データストア750内の対応するマスタファイルに記憶され、特定のスナップショットに対応するマスタファイルは、関連するアクセスについてのこれらのデータベースのそれぞれへのポインタを含み得る。図示するように、スナップショット711は、マスタファイル751に記憶され、スナップショット712は、マスタファイル752に記憶され、スナップショット713は、マスタファイル753に記憶され、スナップショット714は、マスタファイル754に記憶される。
【0129】
図8は、本開示の1つの実施形態による、同一または別のユーザによるビデオゲームの別のゲームプレイ中にキャプチャされるスナップショットに基づく、個別のジャンプゲームプレイへのそのユーザによる仲介ジャンプを含む、ビデオゲームのユーザのゲームプレイの複数のセグメントの例示である。例えば、図3~6に関連して前述したように現在の描画画像305がウィンドウ300上に表示されるキャラクタ306でゲームをプレイしているユーザは、スナップショット画像360eによって定義されるジャンプポイント(JP)における友達F1(キャラクタ308を有する)のゲームプレイにジャンプすることを選択してもよい。タイムライン310a及び/または310bは、ユーザにスナップショット画像360eのプレビューを提供する。さらに、スナップショット画像360eは、前述したように、スナップショットノード572におけるその対応する位置に(例えば、ハイライトなどによって)関連付けられ得るため、ノードグラフ530は、ビデオゲーム内のスナップショット画像に状況を与える。友達F1及びキャラクタ308のゲームプレイへのジャンプをユーザにより起動することは、友達F1の元のゲームプレイ中にスナップショットノード572においてキャプチャされるスナップショットに基づいて可能となる。ジャンプの起動は、タイムライン310aもしくは310bにおけるスナップショット画像360eのさらなる選択を通して、またはノードグラフ530におけるノード572の選択を通して、可能となり得る。同一または別のユーザのゲームプレイへのジャンプの起動のためのサポートが、任意の手段または方法(例えば、ジャンプ選択ウィンドウなど)を通して達成され得る。
【0130】
1つの実施形態では、複数のスナップショットが、ジャンプゲームプレイにおいてキャプチャされる。さらに、ジャンプゲームプレイのビデオ記録は、後のアクセスのためにキャプチャされ記憶されてもよい。このようにして、任意のユーザが、ジャンプゲームプレイにおける任意のスナップショットを介して、ジャンプゲームプレイをプレイし得る。1つの実施形態では、ジャンプゲームプレイのスナップショット画像が、タイムラインに置かれ、前述したように、それを通してジャンプゲームプレイが起動され得る。
【0131】
ビデオゲームとのユーザの対話は、ユーザのゲームプレイ830のセグメントに関係して説明されてもよい。図示するように、ユーザのゲームプレイ830は、第1のセグメント831及び第2のセグメント832を含む。特に、ユーザのゲームプレイ830の第1のセグメント831は、ビデオゲームとのユーザの現在または最初の対話を定義する。したがって、図3Aの現在の描画画像305は、第1のセグメント831に関連付けられてもよい。例示として、スナップショットノードグラフ810は、図5Cに関連して前述したノードグラフ530の一部を示している。ユーザのゲームプレイ830の第1のセグメント831においてキャラクタ306により取られるルートは、破線811によって示され、スナップショットノード560、561、及び562を含む。スナップショットノードグラフ810は、キャラクタ306が、1つのパス812を経由してノード563及び564へ、第2のパス813を経由してノード565及び566へ、スナップショットノード562の右へさらに行ってしまった(例えば、さらに進行した)ことを示しているが、現在の描画画像305は、スナップショットノード562に関連付けられ、例示及び明確化のため、第1のセグメント831の終わりを示している。キャラクタ306によって取られるルートの(スナップショットノード562で終わる)この部分は、また、ノードグラフ820において繰り返される。ノードグラフ820は、第1のセグメント831の終わりまでの、キャラクタ306を用いたユーザのゲームプレイを示している。
【0132】
スナップショットノード562において、ユーザは、前述したように、ビデオゲーム内の他のポイントを探索することを選び、友達F1のゲームプレイ(例えば、スナップショット画像360eのさらなるセクション)にジャンプすることを選択し得る。友達F1のゲームプレイは、スナップショットノードグラフ810の太い実線899によって示されている。このポイントでは、ユーザのゲームプレイ830の第1のセグメント831は、休止され、ユーザは、スナップショットノード572に対応するポイントにおいて、友達F1のゲームプレイにジャンプする。例示として、ジャンプゲームプレイは、キャラクタがクマに接近して交戦しているポイントにおいて始まる。特に、ユーザのゲームプレイ830を実行するビデオゲームのインスタンスが休止され(例えば、第1のセグメント831の終わり)、ジャンプポイント(スナップショットノード572)において始まる友達F1のジャンプゲームプレイを実行するビデオゲームのインスタンスが、スナップショットノード572においてキャプチャされる対応するスナップショットに基づいてインスタンス化される。ノード572へのジャンプの表現が、曲線矢印891によって示されている。ジャンプゲームプレイは、ジャンプセグメント840によって定義される。
【0133】
別の実施形態では、ユーザのゲームプレイ830は、ジャンプゲームプレイを開始する前に第1のセグメント831の終わりにおいて保存され、終了される。このようにして、ユーザは、将来ビデオゲームに戻り、スナップショットノード562に対応するポイント(例えば、第1のセグメント831の終わり)から再開し得る。即ち、ユーザは、休止されたゲームを効果的に再開し得る。
【0134】
1つの実施形態では、ユーザのゲームプレイ830を実行するビデオゲームのインスタンスは、ユーザがそれを通して対話するジャンプゲームプレイを実行するビデオゲームのインスタンスから分離される。この場合に、ジャンプゲームプレイは、友達F1の元のゲームプレイに基づく。例示として、スナップショットノードグラフ850は、ユーザによってプレイされるジャンプゲームプレイのジャンプセグメント840においてキャラクタ308によって取られるルートを示し、ジャンプゲームプレイ内のキャラクタ308は、友達F1のゲームプレイによって元々生成され、定義された。ジャンプゲームプレイにおいて取られるルートは、太い破線896によって示されている。
【0135】
ノードグラフ850において例示される、ジャンプゲームプレイにおいてキャラクタ308によって取られるルートは、スナップショットノード572において始まり、ノード851、852、及び終了ノード859に連続的に続いている。終了ノード859は、ジャンプゲームプレイを実行するビデオゲームのインスタンスの終了を示している。破線896によって示される、ジャンプゲームプレイにおいてキャラクタ308によって取られるルート(ノード572、851、852、及び859を含む)は、ノードグラフ810において示される、友達F1のゲームプレイにおいてキャラクタ308によって取られるルート897(ノード572、573、及び574を含む)とは異なることに留意することが重要である。即ち、ユーザは、ジャンプゲームプレイを方向付けるために新たな入力コマンドを提供しているため、ユーザによって実行されるジャンプゲームプレイは、友達F1の以前記憶されたゲームプレイとは異なる。例えば、ユーザは、自分自身のゲームプレイ830においてビデオゲームのこの部分をプレイするか否かを決定するために、このポイントにおいてゲームを素早くプレビューしていることがあるため、ジャンプゲームプレイにおいて、クマとの不運な遭遇が起こる場合がある。一方、友達F1のゲームプレイが、クマとの成功した遭遇を示す場合がある。
【0136】
1つの実施形態では、ジャンプゲームプレイ中、スナップショットは、ジャンプセグメント840(例えば、ノード572、851、852、及び859)内に示されるノードのそれぞれにおいてキャプチャされてもよい。ジャンプゲームプレイ及びその関連するスナップショットは、後のアクセス用に記憶されてもよい。さらに、ジャンプゲームプレイのビデオ記録が、記録され記憶されてもよい。例えば、ユーザは、ユーザにより生成され、ビデオゲームに関連するジャンプゲームプレイをレビューし、インスタンス化したい場合がある。他の実施形態では、ユーザは、他のビデオゲームに関連するジャンプゲームプレイをレビューし、インスタンス化したい場合があり、その場合に、ジャンプゲームプレイは、ユーザまたは他のユーザによって生成されている。さらに、任意のユーザが、キャプチャされたスナップショットを介し、新たにインスタンス化される2次的ジャンプゲームプレイを通して、ユーザのジャンプゲームプレイを体験してもよい。特に、ジャンプゲームプレイ中にキャプチャされた、選択されたスナップショットは、1次的ジャンプゲームプレイ中にキャプチャされた、選択されたスナップショットに基づいて2次的ジャンプゲームプレイを実行するために、ゲームアプリケーションのインスタンスをインスタンス化するために使用され得る。したがって、任意のユーザが、同一ユーザによって生成される任意の以前のジャンプゲームプレイを体験することができ、または他のプレーヤの記憶済みジャンプゲームプレイを体験することが可能であってもよい。
【0137】
ジャンプゲームプレイの実行後、ユーザのゲームプレイ830が、再開されてもよい。ユーザは、ここで友達F1のゲームプレイをプレビューしており、自分自身のキャラクタ306に、ジャンプポイントに関連するスナップショットノード572に到達させることを希望してもよい。このようにして、ユーザのゲームプレイ830は、ジャンプポイントに向かって方向付けされるルートを含んでもよく、それによって、ユーザのゲームプレイ内のキャラクタが、同じクマ遭遇をすることとなる。
【0138】
スナップショットノードグラフ820は、ここで再開されるユーザのゲームプレイ830においてキャラクタによって取られるルートを示す。ゲームプレイ830の再開は、第2のセグメント832によって定義され、再開されたゲームプレイは、太い破線809によって定義される。したがって、ユーザによるゲームプレイ830の全体が、第1のセグメント8310(破線811)及び第2のセグメント832(太い破線809)によって示されている。1つの実施形態では、ゲームプレイ830の第2のセグメント832は、休止されているビデオゲームのインスタンスを継続する。別の実施形態では、第1のセグメント831は終了されたため、ゲームプレイ830の第2のセグメント832は、スナップショット562に関連するビデオゲームのポイントにおいて始まるビデオゲームの新たなインスタンス上で実行される。第2のセグメント832は、スナップショットノード562において始まり、スナップショットノード821、822、823、824、及び829に連続的に続く。
【0139】
ノードグラフ820において、スナップショットノード823は、ジャンプポイントに関連するスナップショットノード572におおよそ対応する。例えば、ユーザは、自分自身のゲームプレイ830においてクマに遭遇したいと考える。特に、ユーザのゲームプレイにおけるスナップショットノード572への通過は、スナップショットノードグラフ530及び/またはユニバーサルノードグラフ550を介してユーザにより可能である。特に、ユーザは、スナップショットノードグラフ530をレビューすることによって、他のユーザ(例えば、友達F1)により遭遇される、スナップショットノード562とスナップショットノード572との間で利用できる可能パスを発見することができる。追加的に、ユーザは、ユニバーサルノードグラフ550をレビューすることによって、スナップショットノード562とスナップショットノード572との間で利用できる汎用論理パスを発見することができる。このようにして、ユーザは、(例えば、ノード821及び822を介して)スナップショットノード823まで通過し、クマに遭遇することができる。ノード821及び822は、友達F1のゲームプレイ中に元々キャプチャされたスナップショットノード565及び570とおおよそ整列されているが、一致していなくともよいことに留意することが重要である。
【0140】
スナップショットノード823、824、及び829などは、第2のセグメント832において、ユーザのゲームプレイ830において取られるルートを示し、キャラクタ306は、ここでクマと遭遇し交戦している。スナップショットノード823におけるクマとの最初の遭遇後に取られるルート(ノード824、829などを含む)は、ジャンプゲーム内のルート(例えば、ノード572、851、852、及び859)と一致しなくともよく、友達F1のゲームプレイ内のルート(例えば、ノード572、573、及び574)とも一致しなくともよい。これは、ユーザのゲームプレイ830が、ビデオゲームを推進するそれ自体の一意な入力コマンドを有するからである。
【0141】
ネットワーク上で通信するゲームサーバとクライアントデバイスの多様なモジュールの詳細な説明と共に、ゲームネットワーク上で実行するビデオゲームのゲーム世界を通過するための方法が、本開示の1つの実施形態による、図9のフロー図900に関してここで説明される。フロー図900は、クライアントデバイスにおいてネットワーク上で表示される情報を生成する目的で、ゲームサーバ側において伴われる動作のプロセス及びデータフローを示す。
【0142】
方法は、動作910において開始し、複数のユーザに関連して実行されるビデオゲームの複数のインスタンスから生成される、複数のスナップショットをキャプチャすることを含む。特に、ビデオゲームのインスタンスは、図1の1つまたは複数のゲームサーバ205の1つまたは複数のゲームプロセッサ210によって実行されている。ビデオゲームの各インスタンスが実行されているとき、1つまたは複数のスナップショットがキャプチャされ、スナップショットは、前述したように、そのスナップショットに対応するビデオゲーム内のポイントから始まるビデオゲームのインスタンスの実行を可能にする。
【0143】
特に、スナップショットは、対応するユーザのゲームプレイに関連して実行される、ビデオゲームのインスタンスによって生成される描画画像を含むスナップショット画像を含む。描画画像は、ビデオゲーム内のポイントに対応するビデオゲームのシーンを示し、ポイントは、ビデオゲームを通るユーザのゲームプレイにおける進行を示す。
【0144】
加えて、スナップショットは、ビデオゲーム内のポイントに対応する環境の生成を可能にするゲーム状態データも含む。即ち、スナップショットに基づいて、対応するシーン及び環境が生成され、キャラクタは、ユーザのゲームプレイを通して環境と対話するように命令される。
【0145】
さらに、スナップショットは、前述したように、シーン及び環境についての追加特徴を提供するランダムシードデータを含む。例えば、クラウド構成、及び1つまたは複数の包括的キャラクタの移動が、ユーザのゲームプレイに関連するシーン及び環境内に含めるために、一意に生成され得る。したがって、クラウド構成及び1つまたは複数の包括的キャラクタの移動は、ビデオゲームのインスタンス毎に異なり得る。
【0146】
また、スナップショットは、対応するユーザのゲームプレイについてのキャラクタの生成を可能にする、ユーザ保存データを含む。キャラクタは、スナップショットがキャプチャされたビデオゲーム内のポイントに対応する第1の状態を有する。例えば、第1の状態は、キャラクタの外見及び種類、キャラクタが着る衣服、キャラクタについての達成されるレベル、キャラクタが利用可能な兵器類、そのポイントにおけるキャラクタのライフ状態を定義する。
【0147】
動作920において、方法は、ビデオゲームをプレイしている第1のユーザの第1のタイムラインを表示のために生成することを含む。第1のタイムラインは、ビデオゲーム中を進行する少なくとも1人のユーザ(第1のユーザ及び/または他のユーザ)のスナップショット画像を含む。タイムライン内のスナップショット画像は、第1のユーザに関連して実行するビデオゲームの第1のインスタンスの現在の描画画像との関係で表示される。各スナップショット画像は、対応するスナップショットを相互参照し得る。現在の描画画像は、第1のユーザによるビデオゲームの進行における現在のポイントに関連付けられる。
【0148】
動作930において、方法は、第1のユーザに関連する複数の第1のスナップショット画像を含む複数の第1のサムネイルを、第1のタイムラインでの表示のために生成することを含む。即ち、第1のサムネイルは、第1のユーザのビデオゲームの進行を示す。特に、複数の第1のスナップショットは、第1のユーザの過去の進行を現在の描画画像と比較して示す、少なくとも1つの描画画像を含む。
【0149】
動作940において、方法は、第2のユーザに関連する複数の第2のスナップショット画像を含む複数の第2のサムネイルを、第1のタイムラインでの表示のために生成することを含む。即ち、第2のサムネイルは、第2のユーザのビデオゲームの進行を示す。特に、複数の第2のスナップショット画像は、現在の描画画像の後のビデオゲーム内のポイントにおける、第2のユーザの将来の進行の進行を示す少なくとも1つの描画画像を含む。
【0150】
他の実施態様では、複数の第2のスナップショット画像は、第2のユーザの過去及び/または現在の進行を示す。例えば、第2のスナップショットは、第1のユーザのクライアントデバイスにおいて表示のために生成される、現在の描画画像の前のビデオゲーム内のポイントにおける第2のユーザの進行を示す、少なくとも1つの描画画像を含む。
【0151】
さらに他の実施形態では、追加のタイムラインが、クライアントデバイスにおいて表示のために生成されてもよい。例えば、第3のユーザの第2のタイムラインが、表示のために生成される。第2のタイムラインは、第3のユーザの複数の第3のスナップショット画像を含む。第2のタイムラインは、第1のユーザのゲームプレイに関連する、現在の描画画像の前及び後のビデオゲーム内の複数のポイントにおいて、ビデオゲームのゲームプレイ中の第3のユーザの進行を示す複数の描画画像を含む。
【0152】
前述したように、選択されたスナップショット画像は、ゲームプロセッサ210のジャンプ実行エンジン216が、スナップショット画像に対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの別のインスタンスをインスタンス化し、スナップショットに対応するビデオゲーム内のポイント(ジャンプポイントとしてここでは識別される)において始まるビデオゲームを実行することを可能にする。例えば、ゲームプロセッサ210は、第1のタイムライン内の複数の第2のスナップショットから選択されたスナップショット画像の、第1のユーザによる選択を受信し、選択されたスナップショット画像は、第2のユーザのゲームプレイに関連付けられる。さらに、ゲームプロセッサは、選択されたスナップショット画像に関連するビデオゲーム内のジャンプポイントに、第1のユーザのゲームプレイに関連して実行されるビデオゲームの第1のインスタンスの実行をジャンプさせるように構成される。1つの実施態様では、ビデオゲームの第1のインスタンスは、休止及び/または終了され、ビデオゲームの別のインスタンス、ジャンプゲームは、選択されたスナップショット画像のスナップショットに基づいてインスタンス化される。
【0153】
このようにして、第1のユーザは、第2のユーザのゲームプレイにジャンプすることができる。例えば、第1のユーザは、ジャンプゲーム内の第2のユーザのゲームプレイにおいて使用されるキャラクタに命令することができる。選択されたスナップショット画像の対応するスナップショットは、第2のユーザのゲームプレイにおいて使用され、ジャンプゲームにおいて第1のユーザのジャンプゲームプレイにも使用されるキャラクタの生成を可能にする、第2のユーザ保存データを含む。第2のユーザ保存データ及び第2のキャラクタは、第2のユーザのゲームプレイから生じる。したがって、第1のユーザは、ジャンプゲームの実行中に、ジャンプゲームプレイを生成する。
【0154】
第1のユーザが、ジャンプゲームを終了した後、ビデオゲームの第1のインスタンスが、再開されてもよい。即ち、ジャンプゲームを実行するビデオゲームの第2のインスタンスが終了され、第1のユーザのゲームプレイに関連するビデオゲームの第1のインスタンスが、再開される。このようにして、第1のユーザは、ビデオゲームの自分自身のプレイを再開し得る。
【0155】
第1のユーザは、また、第1のユーザの前のゲームプレイにおいてスナップショット画像を選択してもよい。例えば、ゲームプロセッサは、前のゲームプレイに関連する複数の第1のスナップショット画像において選択されたスナップショット画像の選択を受信するように構成されてもよい。ビデオゲームの第1のインスタンスの実行は、選択されたスナップショット画像に関連するビデオゲーム内のジャンプポイントにジャンプされる。1つの実施態様では、ジャンプすることは、選択されたスナップショット画像に対応するスナップショットに基づくビデオゲームの別のインスタンスを通して可能にされる。別の実施態様では、ジャンプすることは、ビデオゲームの第1のインスタンスを通して可能にされる。
【0156】
加えて、ノードグラフが、クライアントデバイスにおいて表示のために生成されてもよい。ノードグラフは、前述したように、タイムラインに表示されるスナップショット画像に対応する複数のスナップショットノードを含む。複数のスナップショットノードは、複数のパスを定義し、パス及びノードは、第1のユーザ及び第2のユーザのゲームプレイに関連付けられる。ノードグラフ内の各ノードは、対応するスナップショットに関連付けられる。
【0157】
さらに、ノードグラフは、第1のユーザによって、同一または別のユーザのゲームプレイへジャンプすることを可能にし得る。例えば、ゲームプロセッサは、ノードグラフ内の選択されたスナップショットノードの選択を受信するように構成される。スナップショットノードは、対応するスナップショットに関連付けられる。選択されたスナップショットノードに対応する、選択されたスナップショット画像は、任意選択で、クライアントデバイスにおいて表示のために生成されてもよい。特に、選択されたスナップショットノード及び/または対応するスナップショット画像の選択は、第1のユーザのゲームプレイに関連して実行されるビデオゲームの第1のインスタンスの実行が、選択されたノードに関連するビデオゲーム内のジャンプポイントへジャンプすることを可能にする。
【0158】
特定の実施形態は、同一または別のユーザの以前実行されたゲームプレイのプレビュー及び/またはゲームプレイへのジャンプのために使用される、複数ユーザのためのビデオゲームのゲームプレイ内のポイントのスナップショットの生成及びキャプチャを実際に説明するために提供されてきたが、これらは、限定としてではなく、例として説明される。本開示を読んだ当業者は、本開示の趣旨及び範囲内に入る追加の実施形態を認識するであろう。
【0159】
現在の実施形態のゲームへのアクセスを提供するなどの、広い地理的エリアにわたって配信されるアクセスサービスは、クラウドコンピューティングを使用することが多いことに留意すべきである。クラウドコンピューティングは、動的にスケーラブルで、しばしば仮想化されたリソースがインターネットを介してサービスとして提供されるコンピューティングスタイルである。ユーザは、それらをサポートする「クラウド」における技術インフラに熟練している必要はない。クラウドコンピューティングは、サービスとしてのインフラ(IaaS)、サービスとしてのプラットフォーム(PaaS)、及びサービスとしてのソフトウェア(SaaS)などの、異なるサービスに分割され得る。クラウドコンピューティングサービスは、しばしばウェブブラウザからアクセスされる、ビデオゲームなどの共通アプリケーションをオンラインで提供するが、ソフトウェア及びデータは、クラウド内のサーバ上に記憶されている。クラウドという用語は、インターネットがコンピュータネットワーク図でどのように描写されているかに基づく、インターネットについてのメタファとして使用され、それが隠している複雑なインフラについての抽象的概念である。
【0160】
ゲーム処理サーバ(GPS)(または、単に「ゲームサーバ」)は、単一及びマルチプレーヤのビデオゲームをプレイするために、ゲームクライアントによって使用される。インターネットを介してプレイされるビデオゲームのほとんどは、ゲームサーバへの接続を介して動作する。典型的には、ゲームは、プレーヤからデータを収集し、それを他のプレーヤに分配する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするために別個のサーバを必要とする。別の実施形態では、GPSは、プレーヤと彼らそれぞれのゲームプレイデバイスとの間で通信を確立して、集中型GPSに依存することなく情報を交換する。
【0161】
専用GPSは、クライアントから独立して動作するサーバである。このようなサーバは、通常、データセンタに位置する専用ハードウェア上で動作し、より多くの帯域幅及び専用処理能力を提供する。専用サーバは、ほとんどのPCベースのマルチプレーヤゲームにとって、ゲームサーバをホストする好ましい方法である。多人数同時参加型オンラインゲームは、ゲームタイトルを所有するソフトウェア会社によって通常ホストされる専用サーバ上で動作し、それらがコンテンツの制御及び更新を行うことを可能にする。
【0162】
ユーザは、クライアントデバイスでリモートサーバにアクセスし、クライアントデバイスは、CPU、ディスプレイ、及びI/Oを少なくとも含む。クライアントデバイスは、PC、携帯電話、ネットブック、PDAなどであってもよい。1つの実施形態では、ゲームサーバ上で実行するネットワークは、クライアントによって使用されるデバイスの種類を認識し、採用される通信方法を調整する。その他の場合、クライアントデバイスは、htmlなどの標準的な通信方法を使用して、ゲームサーバ上のアプリケーションにインターネットを介してアクセスする。
【0163】
本開示の実施形態は、手持ち式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、多様なコンピュータシステム構成で実施されてもよい。本開示は、また、有線ベースの、または無線ネットワークを通してリンクされるリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境においても実施され得る。
【0164】
所与のビデオゲームは、特定のプラットフォーム及び特定の付属コントローラデバイスのために開発され得ると、理解されるべきである。しかしながら、そのようなゲームが、本明細書で提示されるようなゲームクラウドシステムを介して利用可能にされるとき、ユーザは、異なるコントローラデバイスでビデオゲームにアクセスしていてもよい。例えば、ゲームは、ゲームコンソール及びその付属コントローラのために開発されており、一方、ユーザは、ゲームのクラウドベースバージョンに、パーソナルコンピュータからキーボード及びマウスを利用してアクセスしていてもよい。そのようなシナリオでは、入力パラメータ構成は、ユーザが利用可能なコントローラデバイス(この場合、キーボード及びマウス)によって生成され得る入力から、ビデオゲームの実行に対して受け入れ可能な入力へのマッピングを定義し得る。
【0165】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスによってクラウドゲームシステムにアクセスしてもよい。この場合、クライアントデバイス及びコントローラデバイスは、共に同一デバイスに統合され、入力は、検出されるタッチスクリーン入力/ジェスチャとして提供される。このようなデバイスの場合、入力パラメータ構成は、ビデオゲームに対するゲーム入力に対応する特定のタッチスクリーン入力を定義してもよい。例えば、ボタン、指向性パッド、または他の種類の入力素子が、ユーザがゲーム入力を生成するために接触可能なタッチスクリーン上の位置を示すように、ビデオゲームの実行中に表示またはオーバレイされてもよい。特定方向へのスワイプまたは特定のタッチ動作などのジェスチャもまた、ゲーム入力として検出されてもよい。1つの実施形態では、ユーザをタッチスクリーン上の制御動作に慣れさせるように、例えばビデオゲームのゲームプレイ開始の前に、チュートリアルがユーザに提供されて、ゲームプレイのためにタッチスクリーンによって入力を与える方法を指示してもよい。
【0166】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスのための接続ポイントとしてサービスする。即ち、コントローラデバイスは、無線または有線接続を介してクライアントデバイスと通信して、入力をコントローラデバイスからクライアントデバイスに送信する。クライアントデバイスは、今度は、これらの入力を処理し、次いで、入力データを(例えば、ルータなどのローカルネットワーキングデバイスを介してアクセスされる)ネットワークを介してクラウドゲームサーバに送信してもよい。しかしながら、他の実施形態では、コントローラ自体が、最初にクライアントデバイスを通してそのような入力を通信する必要なしに、ネットワークを介して直接クラウドゲームサーバに入力を通信する能力を有する、ネットワーク化デバイスであってもよい。例えば、コントローラは、ローカルネットワーキングデバイス(前述のルータなど)に接続して、データをクラウドゲームサーバに送信し、クラウドゲームサーバから受信してもよい。したがって、クライアントデバイスは、依然としてクラウドベースビデオゲームからのビデオ出力を受信し、それをローカルディスプレイ上に描画する必要があり得るが、コントローラがネットワークを介して直接クラウドゲームサーバに入力を送信することを可能にすること、クライアントデバイスを迂回することによって、入力レイテンシは減少され得る。
【0167】
1つの実施形態では、ネットワーク化コントローラ及びクライアントデバイスは、ある種類の入力をコントローラから直接クラウドゲームサーバへ、及び他の種類の入力をクライアントデバイスを介して、送信するように構成されてもよい。例えば、検出が任意の追加ハードウェアまたはコントローラ自体から離れた処理に依存しない入力が、クライアントデバイスを迂回して、ネットワークを介してコントローラから直接クラウドゲームサーバに送信されてもよい。このような入力は、ボタン入力、ジョイスティック入力、組込型動作検出入力(例えば、加速度計、磁力計、ジャイロスコープ)などを含んでもよい。しかしながら、追加のハードウェアを利用し、またはクライアントデバイスによる処理が必要な入力は、クライアントデバイスによってクラウドゲームサーバに送信されてもよい。これらは、クラウドゲームサーバに送信する前にクライアントデバイスによって処理され得る、ゲーム環境からキャプチャされたビデオまたは音声を含み得る。追加的に、コントローラの動作検出ハードウェアからの入力は、コントローラの位置及び動作を検出するためにキャプチャされたビデオと併せて、クライアントデバイスによって処理されてもよく、それは、その後、クライアントデバイスによってクラウドゲームサーバに通信されることとなる。多様な実施形態によるコントローラデバイスは、また、クライアントデバイスから、またはクラウドゲームサーバから直接、データ(例えば、フィードバックデータ)を受信してもよいと理解されるべきである。
【0168】
本明細書で説明される実施形態は、任意の種類のクライアントデバイス上で実行され得ると理解されるべきである。いくつかの実施形態では、クライアントデバイスは、ヘッドマウントディスプレイ(HMD)である。
【0169】
図10は、本開示の実施形態による、図示されるヘッドマウントディスプレイ1050のコンポーネントを示す図である。ヘッドマウントディスプレイ1050は、プログラム命令を実行するためのプロセッサ1000を含む。メモリ1002は、記憶の目的で提供され、揮発性及び不揮発性メモリの両方を含んでもよい。ユーザが視聴し得る視覚的インタフェースを提供するディスプレイ1004が含まれる。電池1006は、ヘッドマウントディスプレイ1050のための電源として提供される。動作検出モジュール1008は、磁力計1010、加速度計1012、及びジャイロスコープ1014などの、多様な種類の動作感知型ハードウェアのいずれかを含んでもよい。
【0170】
加速度計は、加速度及び重力誘発性反力を測定するためのデバイスである。単一及び複数の軸モデルが、異なる方向での加速度の大きさ及び方向を検出するために利用可能である。加速度計は、傾斜、振動、及び衝撃を感知するために使用される。1つの実施形態では、重力方向を提供するために3つの加速度計1012が使用され、重力方向が、2つの角度(ワールド空間のピッチ及びワールド空間のロール)のための絶対基準を与える。
【0171】
磁力計は、ヘッドマウントディスプレイ周辺の磁界の強度及び方向を測定する。1つの実施形態では、3つの磁力計1010がヘッドマウントディスプレイ内で使用され、ワールド空間のヨー角度のための絶対基準を確保する。1つの実施形態では、磁力計は、地球の磁界に及ぶように設計され、それは±80マイクロテスラである。磁力計は、金属によって影響を受け、実際のヨーとは単調であるヨー測定をもたらす。磁界は、環境内の金属によって歪むことがあり、それがヨー測定の歪みの原因となる。必要であれば、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を用いて較正され得る。1つの実施形態では、加速度計1012は、ヘッドマウントディスプレイ1050の傾斜及び方位角を取得するために、磁力計1010と共に使用される。
【0172】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定または維持するためのデバイスである。1つの実施形態では、3つのジャイロスコープ1014は、慣性感知に基づいてそれぞれの軸(x、y、及びz)にわたる動作についての情報を提供する。ジャイロスコープは、高速回転の検出を支援する。しかしながら、ジャイロスコープは、絶対基準が存在しなければ経時的にドリフトし得る。このため、ジャイロスコープを周期的に再設定する必要があり、再設定は、オブジェクト、加速度計、磁力計などを視覚的に追跡することに基づく配置/向き判断などの他の利用可能な情報を用いて行われ得る。
【0173】
カメラ1016は、実環境の画像及び画像ストリームをキャプチャするために提供される。1つより多くのカメラが、ヘッドマウントディスプレイ1050に含まれてもよく、(ユーザがヘッドマウントディスプレイ1050のディスプレイを見ているときにユーザから離れる方向に向けられる)後ろ向きのカメラ、及び(ユーザがヘッドマウントディスプレイ1050のディスプレイを見ているときにユーザの方に向かう方向に向けられる)前向きのカメラを含む。追加的に、実環境におけるオブジェクトの深度情報を感知するために、深度カメラ1018がヘッドマウントディスプレイ1050に含まれてもよい。
【0174】
1つの実施形態では、HMDの正面に統合されたカメラは、安全に関する警告を提供するために使用されてもよい。例えば、ユーザが、壁またはオブジェクトに近づいている場合に、ユーザに警告してもよい。1つの実施形態では、ユーザには、室内の物理的オブジェクトの輪郭ビューが提供されて、それらの存在がユーザに警告されてもよい。輪郭は、例えば、仮想環境内でのオーバレイであってもよい。いくつかの実施形態では、HMDユーザには、例えば、床にオーバレイされている、参照マーカに対するビューが提供されてもよい。例えば、マーカは、ユーザがゲームをプレイしている部屋の中心の位置の参照をユーザに提供してもよい。これは、例えば、部屋の中の壁または他のオブジェクトにぶつかることを回避するためにユーザが移動すべき場所の、ユーザに対する視覚的情報を提供してもよい。ユーザが着用してゲームをプレイし、またはHMDでコンテンツをナビゲートするときのために、さらなる安全をもたらすために、触覚的警告及び/または音声警告もまた、ユーザに提供されてもよい。
【0175】
ヘッドマウントディスプレイ1050は、オーディオ出力を提供するためのスピーカ1020を含む。また、周囲の環境、ユーザにより行われる会話などからの音を含む、実環境からの音声をキャプチャするために、マイクロホン1022が含まれてもよい。ヘッドマウントディスプレイ1050は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール1024を含む。1つの実施形態では、触覚フィードバックモジュール1024は、触覚フィードバックをユーザに提供するように、ヘッドマウントディスプレイ1050の移動及び/または振動を引き起こすことができる。
【0176】
LED1026は、ヘッドマウントディスプレイ1050の状態の視覚的指標として提供される。例えば、LEDは、電池レベル、電源オンなどを示してもよい。カードリーダ1028は、ヘッドマウントディスプレイ1050が、メモリカードからの情報の読み出し及びメモリカードへの情報の書き込みを可能にするために提供される。USBインタフェース1030は、周辺デバイスの接続、または他の携帯型デバイス、コンピュータなどの他のデバイスへの接続を可能にするためのインタフェースの一例として含まれる。ヘッドマウントディスプレイ1050の多様な実施形態では、多様な種類のインタフェースのうちのいずれかが、ヘッドマウントディスプレイ1050の接続性をより高めるために含まれてもよい。
【0177】
WiFi(登録商標)モジュール1032は、無線ネットワーキング技術によってインターネットへの接続を可能にするために含まれる。また、ヘッドマウントディスプレイ1050は、他のデバイスへの無線接続を可能にするためにBluetooth(登録商標)モジュール1034を含む。通信リンク1036は、また、他のデバイスへの接続のために含まれてもよい。1つの実施形態では、通信リンク1036は、無線通信のために赤外線送信を利用する。他の実施形態では、通信リンク1036は、他のデバイスとの通信のために様々な無線または有線伝送プロトコルのうちのいずれかを利用してもよい。
【0178】
入力ボタン/センサ1038は、ユーザに対し入力インタフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなどの、多様な種類の入力インタフェースのうちのいずれかが含まれてもよい。超音波通信モジュール1040は、超音波技術により他のデバイスとの通信を容易にするために、ヘッドマウントディスプレイ1050に含まれてもよい。
【0179】
バイオセンサ1042は、ユーザからの生理学的データの検出を可能にするために含まれる。1つの実施形態では、バイオセンサ1042は、ユーザの皮膚を通したユーザの生体電気信号検出のための1つまたは複数のドライ電極を含む。
【0180】
ヘッドマウントディスプレイ1050の前述のコンポーネントは、ヘッドマウントディスプレイ1050に含まれ得る単なる例示的なコンポーネントとして説明された。本開示の多様な実施形態では、ヘッドマウントディスプレイ1050は、多様な前述したコンポーネントのうちのいくつかを含んでもよく、または含まなくてもよい。本明細書で説明される本開示の態様を容易にするために、ヘッドマウントディスプレイ1050の実施形態は、ここでは説明されないが当該技術分野において既知の他のコンポーネントを追加的に含んでもよい。
【0181】
本開示の多様な実施形態において、前述した手持ち型デバイスが、多様な対話型機能を提供するためにディスプレイ上に表示される対話型アプリケーションと共に利用され得ることが、当業者により理解されるであろう。本明細書で説明される例示的な実施形態は、限定としてではなく、例としてのみ提供される。
【0182】
図11は、本開示の多様な実施形態による、ゲームシステム1100のブロック図である。ゲームシステム1100は、ネットワーク1115を介して1つまたは複数のクライアント1110にビデオストリームを提供するように構成される。ゲームシステム1100は、典型的には、ビデオサーバシステム1120及び任意選択ゲームサーバ1125を含む。ビデオサーバシステム1120は、最小限のサービス品質で、ビデオストリームを1つまたは複数のクライアント1110に提供するように構成される。例えば、ビデオサーバシステム1120は、ビデオゲーム内のビューの状態または視点を変更するゲームコマンドを受信し、この変更を最小ラグタイムで状態に反映して、更新されたビデオストリームをクライアント1110に提供してもよい。ビデオサーバシステム1120は、今後定義されることとなるフォーマットを含む、多岐にわたる代替的なビデオフォーマットでビデオストリームを提供するように構成されてもよい。さらに、ビデオストリームは、多種多様なフォーマットレートでユーザへの提示のために構成されるビデオフレームを含んでもよい。典型的なフレームレートは、毎秒30フレーム、毎秒60フレーム、及び毎秒1120フレームである。とはいえ、より高い、またはより低いフレームレートが、本開示の代替的実施形態に含まれる。
【0183】
本明細書で個々に1110A、1110Bなどと呼ばれるクライアント1110は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、手持ち型ゲームプレイデバイスなどを含んでもよい。典型的には、クライアント1110は、符号化ビデオストリーム(即ち、圧縮された)を受信し、ビデオストリームを復号し、結果として得られるビデオをユーザ、例えばゲームのプレーヤに提示するように構成される。符号化ビデオストリームの受信及び/またはビデオストリームの復号のプロセスは、典型的には、クライアントの受信バッファに個々のビデオフレームを記憶することを含む。ビデオストリームは、クライアント1110と一体化したディスプレイ上、またはモニタもしくはテレビなどの別個のデバイス上で、ユーザに提示されてもよい。クライアント1110は、任意選択で、1人よりも多くのゲームプレーヤをサポートするように構成される。例えば、ゲームコンソールは、2人、3人、4人、またはそれ以上の同時プレーヤをサポートするように構成されてもよい。これらのプレーヤのそれぞれが、個別のビデオストリームを受信してもよく、または単一のビデオストリームが、各プレーヤに対して具体的に生成される、例えば、各プレーヤの視点に基づいて生成されるフレームの領域を含んでもよい。クライアント1110は、任意選択で、地理的に分散される。ゲームシステム1100に含まれるクライアントの数は、1もしくは2から数千、数万またはそれ以上にまで幅広く変化してもよい。本明細書で使用される、「ゲームプレーヤ」という用語は、ゲームをプレイする人を指すために使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするのに使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、協調してゲーム体験をユーザに配信する複数のコンピューティングデバイスを指してもよい。例えば、ゲームコンソール及びHMDが、ビデオサーバシステム1120と協調して、HMDを通して見られるゲームを配信してもよい。1つの実施形態では、ゲームコンソールは、ビデオサーバシステム1120からビデオストリームを受信し、ゲームコンソールは、描画のためにHMDにビデオストリームを転送し、またはビデオストリームを更新する。
【0184】
クライアント1110は、ネットワーク1115を介してビデオストリームを受信するように構成される。ネットワーク1115は、電話ネットワーク、インターネット、無線ネットワーク、送電線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む、任意の種類の通信ネットワークであってもよい。典型的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルによって通信される。代替的には、ビデオストリームは、独自仕様の標準によって通信される。
【0185】
クライアント1110の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信ケイパビリティ、及び入力デバイスを備えるパーソナルコンピュータである。復号ロジックは、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体上に記憶されたソフトウェアを含んでもよい。ビデオストリームを復号(及び符号化)するためのシステムは、当該技術分野において周知であり、使用される特定の符号化方式に依存して変化する。
【0186】
クライアント1110は、受信したビデオを修正するように構成されるシステムをさらに含んでもよいが、必須ではない。例えば、クライアントは、あるビデオ画像を別のビデオ画像上にオーバレイするため、ビデオ画像をトリミングするため、などのために、さらなる描画を実行するように構成されてもよい。例えば、クライアント1110は、Iフレーム、Pフレーム、及びBフレームなどの多様な種類のビデオフレームを受信し、これらのフレームを処理してユーザに表示するための画像にするように構成されてもよい。いくつかの実施形態では、クライアント1110のメンバは、描画、シェーディング、3Dへの変換、またはビデオストリームに対する類似の動作をさらに実行するように構成される。クライアント1110のメンバは、任意選択で、1つよりも多くの音声またはビデオストリームを受信するように構成される。クライアント1110の入力デバイスは、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動作及び/または位置感知デバイス、マウス、タッチスクリーン、ニューラルインタフェース、カメラ、今後開発されることとなる入力デバイスなどを含んでもよい。
【0187】
クライアント1110によって受信されるビデオストリーム(及び、任意選択で、音声ストリーム)は、ビデオサーバシステム1120によって生成され、提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームは、ビデオフレームを含む(及び、音声フレームは音声フレームを含む)。ビデオフレームは、ユーザに表示される画像に有意に貢献するように構成される(例えば、それらは、適当なデータ構造にピクセル情報を含む)。本明細書で使用される、「ビデオフレーム」という用語は、ユーザに示される画像に貢献する、例えば、効果を与えるように構成される情報を主に含むフレームを指して使用される。「ビデオフレーム」に関する本明細書での教示のほとんどは、「音声フレーム」にも適用され得る。
【0188】
クライアント1110は、典型的には、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変更し、またはゲームプレイに影響を及ぼすように構成されるゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを用いて受信されてもよく、及び/またはクライアント1110上で実行中の命令を計算することによって自動的に生成されてもよい。受信されるゲームコマンドは、クライアント1110からネットワーク1115を介してビデオサーバシステム1120及び/またはゲームサーバ1125に通信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム1120を介してゲームサーバ1125に通信される。いくつかの実施形態では、ゲームコマンドの個別のコピーが、クライアント1110からゲームサーバ1125及びビデオサーバシステム1120に通信される。ゲームコマンドの通信は、任意選択で、コマンドの識別に依存する。ゲームコマンドは、任意選択で、クライアント1110Aに音声またはビデオストリームを提供するために使用される異なるルートまたは通信チャネルを通って、クライアント1110Aから通信される。
【0189】
ゲームサーバ1125は、任意選択で、ビデオサーバシステム1120とは異なる主体によって運用される。例えば、ゲームサーバ1125は、マルチプレーヤゲームの発行元によって運用されてもよい。この例では、ビデオサーバシステム1120は、任意選択で、ゲームサーバ1125によってクライアントとして見られ、任意選択で、ゲームサーバ1125の視点からは、先行技術のゲームエンジンを実行する先行技術クライアントであるように見えるよう構成される。ビデオサーバシステム1120とゲームサーバ1125との通信は、任意選択で、ネットワーク1115を介して発生する。したがって、ゲームサーバ1125は、その1つがゲームサーバシステム1120である複数クライアントにゲーム状態情報を送信する、先行技術のマルチプレーヤゲームサーバであってもよい。ビデオサーバシステム1120は、ゲームサーバ1125の複数インスタンスと同時に通信するように構成されてもよい。例えば、ビデオサーバシステム1120は、複数の異なるビデオゲームを異なるユーザに提供するように構成されてもよい。これらの異なるビデオゲームのそれぞれが、異なるゲームサーバ1125によってサポートされ、及び/または異なる主体によって発行されてもよい。いくつかの実施形態では、ビデオサーバシステム1120の複数の地理的に分散されたインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム1120のこれらのインスタンスのそれぞれが、ゲームサーバ1125の同一インスタンスと通信していてもよい。ビデオサーバシステム1120と1つまたは複数のゲームサーバ1125との通信は、任意選択で、専用通信チャネルを介して発生する。例えば、ビデオサーバシステム1120は、これら2つのシステム間の通信専用の高帯域幅チャネルを介して、ゲームサーバ1125と接続されてもよい。
【0190】
ビデオサーバシステム1120は、ビデオソース1130、I/Oデバイス1145、プロセッサ1150、及び非一時的ストレージ1155を少なくとも備える。ビデオサーバシステム1120は、1つのコンピューティングデバイスを含んでもよく、または複数のコンピューティングデバイス間に分散されてもよい。これらのコンピューティングデバイスは、任意選択で、ローカルエリアネットワークなどの通信システムを介して接続される。
【0191】
ビデオソース1130は、ビデオストリーム、例えば、ストリーミングビデオ、または動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース1130は、ビデオゲームエンジン及び描画ロジックを含む。ビデオゲームエンジンは、プレーヤからゲームコマンドを受信し、受信されたコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、及び典型的には、視点を含む。ゲーム状態は、オブジェクトのプロパティ、画像、色、及び/またはテクスチャも含んでもよい。
【0192】
ゲーム状態は、典型的には、ゲームルール、及び移動、回転、攻撃、フォーカス設定、対話、使用などのゲームコマンドに基づいて、維持される。ゲームエンジンの一部は、任意選択で、ゲームサーバ1125内に配置される。ゲームサーバ1125は、地理的に分散したクライアントを使用して、複数プレーヤから受信されるゲームコマンドに基づくゲーム状態のコピーを維持してもよい。これらの場合、ゲーム状態は、ゲームサーバ1125によってビデオソース1130に提供され、ゲーム状態のコピーが記憶され、描画が実行される。ゲームサーバ1125は、ネットワーク1115を介してクライアント1110から直接ゲームコマンドを受信してもよく、及び/またはビデオサーバシステム1120を介してゲームコマンドを受信してもよい。
【0193】
ビデオソース1130は、典型的には、描画ロジック、例えば、ハードウェア、ファームウェア、及び/またはストレージ1155などのコンピュータ可読媒体上に記憶されるソフトウェアを含む。この描画ロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。描画ロジックの全てまたは一部は、任意選択で、グラフィックス処理ユニット(GPU)内に配置される。描画ロジックは、典型的には、オブジェクト間の3次元空間の関係性を判断するため、ならびに/またはゲーム状態及び視点に基づいて適当なテクスチャなどを適用するために構成される処理段階を含む。描画ロジックは、その際クライアント1110との通信の前に通常符号化される生ビデオを制作する。例えば、生ビデオは、Adobe Flash(登録商標)規格、.wav、H.264、H.263、On2、VP6、VC-1、WMA、Huffyuv、Lagarith、MPG-x.Xvid.FFmpeg、x264、VP6-8、realvideo、mp3などにしたがって符号化されてもよい。符号化プロセスは、リモートデバイス上の復号器への配信用に任意選択でパッケージ化されるビデオストリームを制作する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。典型的なフレームサイズは、800×600、1280×720(例えば、720p)、1024×768を含むが、任意の他のフレームサイズが使用されてもよい。フレームレートは、1秒当たりのビデオフレーム数である。ビデオストリームは、様々な種類のビデオフレームを含んでもよい。例えば、H.264規格は、「P」フレーム及び「I」フレームを含む。Iフレームは、ディスプレイデバイス上で全てのマクロブロック/画素をリフレッシュするための情報を含み、一方、Pフレームは、そのサブセットをリフレッシュするための情報を含む。Pフレームは、典型的には、Iフレームよりデータサイズが小さい。本明細書で使用される「フレームサイズ」という用語は、1つのフレーム内の画素数を指すように意味される。「フレームデータサイズ」という用語は、フレームを記憶するのに必要なバイト数を指すために使用される。
【0194】
代替的実施形態では、ビデオソース1130は、カメラなどのビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含まれ得る、遅延された、またはライブのビデオを生成するために使用されてもよい。結果として得られるビデオストリームは、任意選択で、描画画像、及びスチルカメラまたはビデオカメラを用いて記録された画像の両方を含む。ビデオソース1130は、また、ビデオストリームに含まれるように、以前記録されたビデオを記憶するよう構成される。ビデオソース1130は、また、オブジェクト、例えば、人の動作または位置を検出するように構成される動作または位置感知デバイス、ならびに検出された動作及び/または位置に基づいて、ゲーム状態を判断し、またはビデオを製作するように構成されるロジックを含んでもよい。
【0195】
ビデオソース1130は、任意選択で、他のビデオ上に置かれるように構成されるオーバレイを提供するように構成される。例えば、これらのオーバレイは、コマンドインタフェース、ログイン命令、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤのビデオフィード(例えば、ウェブカメラビデオ)を含んでもよい。タッチスクリーンインタフェースまたは視線検出インタフェースを含むクライアント1110Aの実施形態では、オーバレイは、仮想キーボード、ジョイスティック、タッチパッドなどを含んでもよい。オーバレイの1つの例では、プレーヤの声が、音声ストリーム上にオーバレイされてもよい。ビデオソース1130は、任意選択で、1つまたは複数の音声ソースをさらに含む。
【0196】
ビデオサーバシステム1120が、1人より多くのプレーヤからの入力に基づいてゲーム状態を維持するように構成される実施形態では、各プレーヤは、ビューの位置及び方向を含む異なる視点を有してもよい。ビデオソース1130は、任意選択で、プレーヤ毎にその視点に基づいて個別のビデオストリームを提供するように構成される。さらに、ビデオソース1130は、異なるフレームサイズ、フレームデータサイズ、及び/または符号化をクライアント1110のそれぞれに提供するように構成されてもよい。ビデオソース1130は、任意選択で、3Dビデオを提供するように構成される。
【0197】
I/Oデバイス1145は、ビデオサーバシステム1120が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイスの動き、デバイス位置、ユーザの動き、クライアント識別、プレーヤ識別、ゲームコマンド、セキュリティ情報、音声などの情報を、送信及び/または受信するように構成される。I/Oデバイス1145は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/Oデバイス1145は、ゲームサーバ1125、ネットワーク1115、及び/またはクライアント1110と通信するように構成される。
【0198】
プロセッサ1150は、本明細書で述べたビデオサーバシステム1120の多様なコンポーネント内に含まれるロジック、例えば、ソフトウェアを実行するように構成される。例えば、プロセッサ1150は、ビデオソース1130、ゲームサーバ1125、及び/またはクライアントクォリファイア1160の機能を実行するために、ソフトウェア命令でプログラムされてもよい。ビデオサーバシステム1120は、任意選択で、プロセッサ1150の1つより多くのインスタンスを含む。プロセッサ1150は、また、ビデオサーバシステム1120によって受信されるコマンドを実行するために、または本明細書で述べたゲームシステム1100の多様な要素の動作を協調させるために、ソフトウェア命令でプログラムされてもよい。プロセッサ1150は、1つまたは複数のハードウェアデバイスを含んでもよい。プロセッサ1150は、電子プロセッサである。
【0199】
ストレージ1155は、非一時的アナログ及び/またはデジタル記憶デバイスを含む。例えば、ストレージ1155は、ビデオフレームを記憶するように構成されるアナログ記憶デバイスを含んでもよい。ストレージ1155は、コンピュータ可読デジタルストレージ、例えば、ハードドライブ、光ドライブ、またはソリッドステートストレージを含んでもよい。ストレージ1115は、ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレーム両方を含むビデオストリーム、音声フレーム、音声ストリームなどを記憶するように(例えば、適当なデータ構造またはファイルシステムを経由して)構成される。ストレージ1155は、任意選択で、複数のデバイス間に分散される。いくつかの実施形態では、ストレージ1155は、本明細書の他の箇所で述べたビデオソース1130のソフトウェアコンポーネントを記憶するように構成される。これらのコンポーネントは、必要な時にいつでも供給できるフォーマットに記憶されてもよい。
【0200】
ビデオサーバシステム1120は、任意選択で、クライアントクォリファイア1160をさらに含む。クライアントクォリファイア1160は、クライアント1110Aまたは1110Bなどのクライアントのケイパビリティをリモートで判断するために構成される。これらのケイパビリティは、クライアント1110A自体のケイパビリティ、及びクライアント1110Aとビデオサーバシステム1120との間の1つまたは複数の通信チャネルのケイパビリティの両方を含み得る。例えば、クライアントクォリファイア1160は、ネットワーク1115を通して通信チャネルをテストするように構成されてもよい。
【0201】
クライアントクォリファイア1160は、クライアント1110Aのケイパビリティを手動または自動で判断(例えば、発見)してもよい。手動判断は、クライアント1110Aのユーザと通信すること、及びケイパビリティを提供するようにユーザに依頼することを含む。例えば、いくつかの実施形態では、クライアントクォリファイア1160は、画像、テキストなどをクライアント1110Aのブラウザ内に表示するように構成される。1つの実施形態では、クライアント1110Aは、ブラウザを含むHMDである。別の実施形態では、クライアント1110Aは、HMD上に表示され得るブラウザを有するゲームコンソールである。表示されるオブジェクトは、ユーザが、クライアント1110Aのオペレーティングシステム、プロセッサ、ビデオ復号器の種類、ネットワーク接続の種類、ディスプレイ解像度などの情報を入力することを要求する。ユーザにより入力される情報は、クライアントクォリファイア1160に通信して返される。
【0202】
例えば、クライアント1110A上のエージェントの実行によって、及び/またはクライアント1110Aへのテストビデオの送信によって、自動判断が発生し得る。エージェントは、java(登録商標)スクリプトなどの、ウェブページに組み込まれ、またはアドオンとしてインストールされたコンピュータ命令を含んでもよい。エージェントは、任意選択で、クライアントクォリファイア1160によって提供される。多様な実施形態では、エージェントは、クライアント1110Aの処理能力、クライアント1110Aの復号及び表示ケイパビリティ、クライアント1110Aとビデオサーバシステム1120との間の通信チャネルのラグタイム信頼性及び帯域幅、クライアント1110Aのディスプレイ種類、クライアント1110A上のファイアウォールの存在、クライアント1110Aのハードウェア、クライアント1110A上で実行するソフトウェア、クライアント1110A内のレジストリエントリなどを発見し得る。
【0203】
クライアントクォリファイア1160は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体上に記憶されたソフトウェアを含む。クライアントクォリファイア1160は、任意選択で、ビデオサーバシステム1120の1つまたは複数の他の要素とは別のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア1160は、クライアント1110とビデオサーバシステム1120の1つ以上のインスタンスとの間の通信チャネルの特性を判断するように構成される。これらの実施形態では、クライアントクォリファイアにより発見される情報は、ビデオサーバシステム1120のどのインスタンスが、クライアント1110のうちの1つへのストリーミングビデオの配信に最も適しているかを判断するために使用され得る。
【0204】
本明細書で定義される多様な実施形態は、本明細書で開示される多様な特徴を用いて特定の実施態様に組み合わされ、またはまとめられてもよいと、理解すべきである。したがって、提供される例は、より多くの実施態様を定義するために多様な要素を組み合わせることにより可能な多様な実施態様への限定ではなく、単にいくつかの可能な例である。いくつかの例では、いくつかの実施態様は、開示された、または均等な実施態様の趣旨から逸脱することなく、より少ない要素を含んでもよい。
【0205】
本開示の実施形態は、手持ち式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む、多様なコンピュータシステム構成で実施されてもよい。本開示の実施形態は、また、有線ベースの、または無線ネットワークを通してリンクされるリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境においても実施され得る。
【0206】
上記実施形態を考慮して、本開示の実施形態は、コンピュータシステムに記憶されたデータを伴う多様なコンピュータ実装された動作を採用し得ると理解すべきである。これらの動作は、物理量の物理的操作を必要とするものである。本開示の実施形態の一部を形成する、本明細書に記載された動作のいずれかは、有用な機械動作である。本発明の実施形態は、これらの動作を実行するためのデバイスまたは装置にも関係する。装置は、必要な目的のために特別に構築されてもよく、または、装置は、コンピュータに記憶されるコンピュータプログラムによって選択的にアクティブ化もしくは構成される汎用コンピュータであってもよい。特に、多様な汎用機械が、本明細書の教示に従って書かれたコンピュータプログラムとともに使用されてもよく、または、必要な動作を実行するためにより専用化した装置を構築することが、より便利であってもよい。
【0207】
本開示は、また、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化され得る。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、データは、コンピュータシステムによってその後読み出され得る。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み取り専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学式及び非光学式データストレージデバイスを含む。コンピュータ可読媒体は、コンピュータ可読コードが分散型で記憶及び実行されるように、ネットワーク連結コンピュータシステムにわたって分散されるコンピュータ可読有形媒体を含み得る。
【0208】
方法の動作について、特定の順序で説明してきたが、オーバレイ動作の処理が所望のやり方で行われる限り、動作の合間に他のハウスキーピング動作が実行されてもよく、または、動作が、わずかに異なる時間で発生するように調整されてもよく、もしくは処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散されてもよいと、理解されるべきである。
【0209】
前述の開示は、理解を明確にするために、多少詳細に説明されているが、添付の特許請求の範囲内において、ある変更及び修正が実施され得ることは明らかである。したがって、本実施形態は例示的なものであって限定的なものでないと考えられるべきであり、本開示の実施形態は、本明細書で与えられる詳細に限定されるべきではなく、添付の特許請求の範囲及び均等物の範囲内において修正され得る。
図1
図2
図3A
図3B
図4A
図4B
図5A
図5B
図5C
図5D
図6A
図6B
図6C
図6D
図6E
図6F
図7
図8
図9
図10
図11