(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022165975
(43)【公開日】2022-11-01
(54)【発明の名称】ゲームクラウドシステムで実行されるビデオ記録を介して以前に記憶されたゲームプレイにアクセスするための方法およびシステム
(51)【国際特許分類】
A63F 13/497 20140101AFI20221025BHJP
A63F 13/49 20140101ALI20221025BHJP
A63F 13/35 20140101ALI20221025BHJP
A63F 13/45 20140101ALI20221025BHJP
H04L 67/131 20220101ALI20221025BHJP
【FI】
A63F13/497
A63F13/49
A63F13/35
A63F13/45
H04L67/131
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022113636
(22)【出願日】2022-07-15
(62)【分割の表示】P 2020105118の分割
【原出願日】2017-07-14
(31)【優先権主張番号】62/365,202
(32)【優先日】2016-07-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/375,834
(32)【優先日】2016-08-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/379,360
(32)【優先日】2016-12-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ベネデット、ウォーレン
(57)【要約】
【解決手段】、ゲームアプリケーションのビデオ記録をユーザのクライアント装置にストリーミングする。ビデオ記録が、ビデオ記録における複数の時点でキャプチャされた複数のスナップショットと関連付けられ、各スナップショットは、ビデオ記録における対応する時点で始まるジャンプゲームプレイを可能にするゲームアプリケーションの対応するインスタンス化を提供する。ジャンプゲームプレイを介してゲームアプリケーションをプレイするための要求をクライアント装置から受信する。要求はビデオ記録におけるジャンプ点と関連付けられており、要求はジャンプ点に最も近い第1のスナップショットの選択をもたらす。ジャンプゲームプレイをジャンプ点に到達させるために、ビデオ記録に関連してデータベースに格納された複数のコントローラ入力にアクセスする。
【選択図】
図13A
【特許請求の範囲】
【請求項1】
ゲーム方法であって、
ゲームアプリケーションのビデオ記録をユーザのクライアント装置にストリーミングすることであって、前記ビデオ記録が、前記ビデオ記録における複数の時点でキャプチャされた複数のスナップショットと関連付けられ、各スナップショットは、前記ビデオ記録における対応する時点で始まるジャンプゲームプレイを可能にする前記ゲームアプリケーションの対応するインスタンス化を提供する、前記ストリーミングすることと、
前記ジャンプゲームプレイを介して前記ゲームアプリケーションをプレイするための要求を前記クライアント装置から受信することであって、前記要求は前記ビデオ記録におけるジャンプ点と関連付けられており、前記要求は前記ジャンプ点に最も近い第1のスナップショットの選択をもたらす、前記受信することと、
前記ジャンプゲームプレイを前記ジャンプ点に到達させるために、前記ビデオ記録に関連してデータベースに格納された複数のコントローラ入力にアクセスすることとを備える、方法。
【請求項2】
前記ビデオ記録は、前記ゲームアプリケーションをプレイするプレイヤの以前のゲームプレイによって生成されたものである、請求項1に記載の方法。
【請求項3】
前記複数のスナップショットは前記コントローラ入力を含み、前記複数のスナップショットは前記データベースに格納される、請求項1に記載の方法。
【請求項4】
前記複数のコントローラ入力にアクセスすることは、前記ジャンプゲームプレイを前記ジャンプ点まで早送りすることを含む、請求項1に記載の方法。
【請求項5】
前記ジャンプゲームプレイを前記ジャンプ点まで早戻しすることをさらに備える、請求項1に記載の方法。
【請求項6】
前記ゲームアプリケーションをプレイするための要求を前記クライアント装置から受信することは、前記ビデオ記録におけるビデオフレームの選択を前記ジャンプ点として受信することを含む、請求項1に記載の方法。
【請求項7】
前記ジャンプゲームプレイを可能にするために、前記第1のスナップショットにもとづいて前記ゲームアプリケーションの第1のインスタンス化を開始することをさらに備える、請求項1に記載の方法。
【請求項8】
ゲームコンピュータプログラムを格納する非一時的コンピュータ読み取り可能媒体であって、前記非一時的コンピュータ読み取り可能媒体は、
ゲームアプリケーションのビデオ記録をユーザのクライアント装置にストリーミングするためのプログラム命令であって、前記ビデオ記録が、前記ビデオ記録における複数の時点でキャプチャされた複数のスナップショットと関連付けられ、各スナップショットは、前記ビデオ記録における対応する時点で始まるジャンプゲームプレイを可能にする前記ゲームアプリケーションの対応するインスタンス化を提供する、前記ストリーミングするためのプログラム命令と、
前記ジャンプゲームプレイを介して前記ゲームアプリケーションをプレイするための要求を前記クライアント装置から受信するためのプログラム命令であって、前記要求は前記ビデオ記録におけるジャンプ点と関連付けられており、前記要求は前記ジャンプ点に最も近い第1のスナップショットの選択をもたらす、前記受信するためのプログラム命令と、
前記ジャンプゲームプレイを前記ジャンプ点に到達させるために、前記ビデオ記録に関連してデータベースに格納された複数のコントローラ入力にアクセスするためのプログラム命令とを備える、非一時的コンピュータ読み取り可能媒体。
【請求項9】
前記ビデオ記録は、前記ゲームアプリケーションをプレイするプレイヤの以前のゲームプレイによって生成されたものである、請求項8に記載の非一時的コンピュータ読み取り可能媒体。
【請求項10】
前記複数のスナップショットは前記コントローラ入力を含み、前記複数のスナップショットは前記データベースに格納される、請求項8に記載の非一時的コンピュータ読み取り可能媒体。
【請求項11】
前記複数のコントローラ入力にアクセスするためのプログラム命令は、前記ジャンプゲームプレイを前記ジャンプ点まで早送りすることを含む、請求項8に記載の非一時的コンピュータ読み取り可能媒体。
【請求項12】
前記ジャンプゲームプレイを前記ジャンプ点まで早戻しするためのプログラム命令をさらに備える、請求項8に記載の非一時的コンピュータ読み取り可能媒体。
【請求項13】
前記ゲームアプリケーションをプレイするための要求を前記クライアント装置から受信するためのプログラム命令は、前記ビデオ記録におけるビデオフレームの選択を前記ジャンプ点として受信するためのプログラム命令を含む、請求項8に記載の非一時的コンピュータ読み取り可能媒体。
【請求項14】
前記ジャンプゲームプレイを可能にするために、前記第1のスナップショットにもとづいて前記ゲームアプリケーションの第1のインスタンス化を開始するためのプログラム命令をさらに備える、請求項8に記載の非一時的コンピュータ読み取り可能媒体。
【請求項15】
プロセッサと、
前記プロセッサに結合され、命令を格納したメモリとを備えるコンピュータシステムであって、
前記命令が前記コンピュータシステムによって実行される場合、前記命令は前記コンピュータシステムにゲーム方法を実行させ、
前記ゲーム方法は、
ゲームアプリケーションのビデオ記録をユーザのクライアント装置にストリーミングすることであって、前記ビデオ記録が、前記ビデオ記録における複数の時点でキャプチャされた複数のスナップショットと関連付けられ、各スナップショットは、前記ビデオ記録における対応する時点で始まるジャンプゲームプレイを可能にする前記ゲームアプリケーションの対応するインスタンス化を提供する、前記ストリーミングすることと、
前記ジャンプゲームプレイを介して前記ゲームアプリケーションをプレイするための要求を前記クライアント装置から受信することであって、前記要求は前記ビデオ記録におけるジャンプ点と関連付けられており、前記要求は前記ジャンプ点に最も近い第1のスナップショットの選択をもたらす、前記受信することと、
前記ジャンプゲームプレイを前記ジャンプ点に到達させるために、前記ビデオ記録に関連してデータベースに格納された複数のコントローラ入力にアクセスすることとを備える、コンピュータシステム。
【請求項16】
前記方法において、前記ビデオ記録は、前記ゲームアプリケーションをプレイするプレイヤの以前のゲームプレイによって生成されたものである、請求項15に記載のコンピュータシステム。
【請求項17】
前記方法において、前記複数のスナップショットは前記コントローラ入力を含み、前記複数のスナップショットは前記データベースに格納される、請求項15に記載のコンピュータシステム。
【請求項18】
前記方法において、前記複数のコントローラ入力にアクセスすることは、
前記ジャンプゲームプレイを前記ジャンプ点まで早送りすること、または
前記ジャンプゲームプレイを前記ジャンプ点まで早戻しすること
を含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記方法において、前記ゲームアプリケーションをプレイするための要求を前記クライアント装置から受信することは、前記ビデオ記録におけるビデオフレームの選択を前記ジャンプ点として受信することを含む、請求項15に記載のコンピュータシステム。
【請求項20】
前記ジャンプゲームプレイを可能にするために、前記第1のスナップショットにもとづいて前記ゲームアプリケーションの第1のインスタンス化を開始することをさらに備える、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオゲームに関する。とりわけ、本開示は、ビデオゲームまたはゲームアプリケーションの複数のユーザによるゲームプレイ中に様々な点で生成されたスナップショットであって、ゲームプレイのビデオ記録を介して他のユーザの以前に保存されたゲームプレイにジャンプするためにユーザの1人によって使用されることができるスナップショットを保存するための方法およびシステムを記載している。
【背景技術】
【0002】
コンピューティングリソース(ハードウェアおよびソフトウェア)を使用するクラウドベースのシステムは、ネットワーク(例えば、インターネット)を介してサービスを配信する。サービスは、ゲームの文脈において、リモートクライアントへのコンテンツのストリーミングを可能にし、ほとんどの処理は、分散されることができるサーバ上で行われる。リモートクライアントに提供された入力は、クライアントの場所に専用のゲーム用ハードウェアを必要とせずに、ビデオゲームの実行を順次促進する。したがって、クラウドベースのゲームは、ユーザが複雑なハードウェア制限なしでより多くのビデオゲームタイトルにアクセスするのが容易であることがわかり、ゲームサプライヤが集中管理された場所からゲームコードを管理するのが容易であることがわかるため、人気が高まっている。
【0003】
ユーザが、異なる結果を与える複数の選択肢を提示することがあるビデオゲームのゲームプレイを進行しているとき、ゲームプレイをどの方向に操縦するかを決定することが困難なことがある。例えば、ユーザは、ゲームプレイにおいてそれほどの進歩をもたらさない方向を避けたいが、外部の情報源を通して事前の知識を得ることなく、ユーザは、行き止まりにつながる特定の方向を避けることができない。場合によっては、ユーザは、ゲームプレイの進行結果を与える適切な方向を発見する前に、ビデオゲームがゲームの特定の部分に提示する可能性がある全ての可能な方向を使い果たすことがある。ビデオゲームにおいて全ての可能な方向をプレイすることを避けることが望ましくあり得る。
【0004】
この文脈において、本開示の実施形態が生じる。
【発明の概要】
【0005】
本開示の実施形態は、ビデオゲームの複数のユーザによるゲームプレイ中に様々な点で生成されたスナップショットを保存し、ビデオゲームのゲームプレイ中にユーザに表示可能なタイムラインを生成するためのシステムおよび方法において、スナップショットが、選択されたスナップショットに対応する点から始まる同じまたは他のユーザによるゲームプレイにジャンプするために使用されるシステムおよび方法に関する。本開示のいくつかの発明の実施形態が以下に記載される。
【0006】
一実施形態では、ゲーム世界をナビゲートする方法が開示されている。本方法は、複数のユーザに関連して実行されたビデオゲームの複数のインスタンスから生成された複数のスナップショットをキャプチャすることを含む。本方法は、ビデオゲームをプレイしている第1のユーザの第1のタイムラインを表示することをさらに含み、第1のタイムラインは、第1のユーザに関連して実行中のビデオゲームの第1のインスタンスの現在レンダリングされた画像に関してビデオゲームを進行する少なくとも1人のユーザのスナップショット画像を含む。本方法はまた、第1のタイムラインにおいて第1のユーザに関連する複数の第1のスナップショット画像を複数の第1サムネイルに表示することを含み、複数の第1のスナップショットは、現在レンダリングされている画像と比較した第1のユーザの過去の進行を示す少なくとも1つのレンダリング画像を含む。本方法は、第2のユーザに関連する複数の第2のスナップショットを複数の第2のサムネイルに表示することをさらに含み、複数の第2のスナップショットは、現在レンダリングされている画像後のビデオゲームの点における第2のユーザの進行を示す少なくとも1つのレンダリング画像を含む。
【0007】
他の実施形態では、ゲーム世界をナビゲートする方法が開示されている。本方法は、ビデオゲームをプレイする第1のユーザに関連してゲームクラウドシステム上でビデオゲームの第1のインスタンスを実行することを含む。本方法は、ビデオゲームの第1のインスタンスの実行に関連して生成された第1の複数のレンダリング画像の複数の第1のスナップショットをキャプチャすることを含み、第1のスナップショットのそれぞれは、ビデオゲームの固有の進行点に関連付けられる。本方法は、ビデオゲームをプレイする第2のユーザに関連してビデオゲームの第2のインスタンスの実行に関連して生成された第2の複数のレンダリング画像の複数の第2のスナップショットをキャプチャすることをさらに含む。本方法は、ビデオゲームをプレイしている第1のユーザおよび第2のユーザの進行を示すタイムラインを表示することをさらに含み、タイムラインは、第1のインスタンスの実行から生成された現在レンダリングされている画像と同時に表示される。
【0008】
さらに他の実施形態では、ゲーム世界をナビゲートするように構成されたゲームクラウドシステムが開示されている。ゲームクラウドシステムは、ビデオゲームをプレイする複数のユーザに関連してビデオゲームの複数のインスタンスを実行するように構成された複数の仮想ゲームエンジンを管理するように構成されたゲームサーバを含み、仮想ゲームエンジンは、複数のインスタンスの実行から生成されたレンダリング画像の複数のスナップショットをキャプチャするように構成され、対応するスナップショットは、対応するスナップショットから始まるビデオゲームのインスタンスの実行を可能にする。ゲームクラウドシステムは、複数のスナップショットを記憶するためのスナップショットデータストアを含む。ゲームクラウドシステムは、第1のユーザに関連してビデオゲームの第1のインスタンスを実行するように構成された第1の仮想ゲームエンジンを含み、第1の仮想ゲームエンジンは、ビデオゲームをプレイする第1のユーザの第1のタイムラインを生成するように構成され、第1のタイムラインは、第1のインスタンスの現在レンダリングされている画像と比較して第1のユーザの過去の進行を示す少なくとも1つのレンダリング画像を含む複数の第1のスナップショット画像と、第2のユーザに関連する複数の第2のスナップショットとを含み、複数の第2のスナップショットは、現在レンダリングされている画像後のビデオゲーム内の所定点における第2のユーザの進行を示す少なくとも1つのレンダリング画像を含む。
【0009】
他の実施形態では、ゲーム世界をナビゲートする方法が開示されている。本方法は、ストリーミングゲームサービスを介してビデオゲームを実行することを含み、ビデオゲームは、ネットワークを介して通信するユーザ装置のディスプレイ上にレンダリングされ、ユーザ装置は、第1のユーザに関連付けられる。本方法は、ユーザ装置の表示のためにビデオゲームの複数のシーンを生成することを含み、シーンは、ビデオゲームの異なる経路を通って進行する。本方法は、現在レンダリングされているシーンとともに表示するためのタイムラインを生成することを含み、タイムラインは、第1のユーザによるビデオゲームの進行に関連するスナップショット画像を示す複数の第1のサムネイルを含み、タイムラインは、第2のユーザによるビデオゲームの将来の進行に関連するスナップショット画像を示す複数の第2のサムネイルを含み、複数の第2のサムネイルにおける第1のサムネイルの選択は、第2のユーザについてレンダリングされたビデオゲームの将来の状態にジャンプすることを可能にする。
【0010】
一実施形態では、ゲーム方法が開示されている。本方法は、ゲームアプリケーションに対するプレイヤのゲームプレイのビデオ記録の選択を、ユーザに関連するクライアント装置から受信することを含む。本方法は、ビデオ記録をクライアント装置にストリーミングすることを含み、ビデオ記録は、プレイヤのゲームプレイの第1の時点でキャプチャされたスナップショットに関連付けられる。本方法は、記録されたゲームプレイにおけるジャンプ点の選択をクライアント装置から受信することと、スナップショットに基づいてゲームアプリケーションのインスタンスを開始することとを含み、インスタンスは、ジャンプゲームプレイをインスタンス化する。本方法は、スナップショットに関連し且つゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることを含む。本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、クライアント装置においてレンダリングするための複数の画像フレームを生成することを含み、複数の画像フレームは、ゲームプレイを第1の時点からジャンプ点まで再生する。本方法は、ジャンプゲームプレイについてのジャンプ点から始まるゲームアプリケーションのインスタンスにおいてクライアント装置からの入力コマンドを処理することを含む。
【0011】
一実施形態では、ゲーム方法が開示されている。本方法は、ゲームアプリケーションについてのプレイヤのゲームプレイのビデオ記録をユーザに関連するクライアント装置にネットワークを介して配信することを含み、ビデオ記録は、プレイヤのゲームプレイの第1の時点でキャプチャされたスナップショットに関連付けられる。本方法は、ゲームプレイにおけるジャンプ点の選択をクライアント装置から受信することを含む。本方法は、スナップショットに基づいてゲームアプリケーションのインスタンスを開始することを含み、インスタンスは、ジャンプゲームプレイをインスタンス化する。本方法は、ゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることを含み、一連の入力コマンドは、スナップショットに関連付けられている。本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、クライアント装置においてレンダリングするための複数の画像フレームを生成することを含む。複数の画像フレームは、第1の時点からジャンプ点までのプレイヤのゲームプレイを再生する。本方法は、ジャンプ点から始まるジャンプゲームプレイにおいて前記ゲームアプリケーションのインスタンスについてのクライアント装置からの入力コマンドを処理することを含む。
【0012】
他のゲーム方法が開示されている。本方法は、プレイヤのゲームプレイの第1の時点でキャプチャされた開始スナップショットに基づいてゲームアプリケーションのインスタンスを開始することを含む。本方法は、スナップショットに関連し且つゲームプレイを指示するために使用される一連の入力コマンドにアクセスすることを含む。本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、ユーザのクライアント装置においてレンダリングするための複数の画像フレームを生成することを含み、複数の画像フレームは、ゲームプレイの時点からゲームプレイを再生する。本方法は、複数の画像フレームのうちの第1の画像フレームに対応するクライアント装置からジャンプゲームを開始するための開始要求を受信することを含み、第1の画像フレームは、ゲームプレイにおけるジャンプ点に対応する。本方法は、ジャンプ点から始まるジャンプゲームプレイを実行するゲームアプリケーションのインスタンスにおいてクライアント装置からの入力コマンドを処理することを含む。
【0013】
他の実施形態では、ゲーム用に構成されたゲームクラウドシステムが開示されている。ゲームクラウドシステムは、ゲームアプリケーションをプレイする複数のユーザに関連してゲームアプリケーションの複数のインスタンスを実行するように構成された複数の仮想ゲームエンジンを管理するように構成されたゲームサーバを含み、仮想ゲームエンジンは、複数のインスタンスを実行することから生成されたレンダリング画像の複数のスナップショットをキャプチャし、複数のスナップショットのそれぞれに関する情報をキャプチャするように構成されており、対応するスナップショットに関する情報は、対応するスナップショットから始まるゲームアプリケーションのインスタンスの実行を可能にする。ゲームクラウドシステムは、複数のスナップショットを記憶するためのスナップショットデータストアと、情報を記憶するためのユーザデータストアとを含む。ゲームクラウドシステムは、ゲームアプリケーションについてのプレイヤのゲームプレイのビデオ記録をユーザに関連するクライアント装置にネットワークを介して配信するように構成された仮想ゲームエンジンを含む。ビデオ記録は、プレイヤのゲームプレイの第1の時点でキャプチャされたスナップショットに関連付けられている。仮想ゲームエンジンは、ゲームプレイにおけるジャンプ点の選択をクライアント装置から受信するように構成されている。仮想ゲームエンジンは、スナップショットに基づいてゲームアプリケーションのインスタンスを開始するように構成され、インスタンスは、ジャンプゲームプレイをインスタンス化する。仮想ゲームエンジンは、ゲームプレイを指示するために使用される一連の入力コマンドにアクセスするように構成され、入力コマンドは、スナップショットと関連付けられる。仮想ゲームエンジンは、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づきクライアント装置においてレンダリングするための複数の画像フレームを生成するように構成されている。画像フレームは、ゲームプレイを第1の時点からジャンプ点まで再生する。仮想ゲームエンジンは、ジャンプ点から始めてジャンプゲームプレイを実行するゲームアプリケーションのインスタンスにおいてクライアント装置からの入力コマンドを処理するように構成されている。
【0014】
本開示の他の態様は、本開示の原理を例として示す添付の図面と併せて、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0015】
本開示は、添付の図面と併せて以下の説明を参照することによって最もよく理解されることができる。
【0016】
【
図1】本開示の一実施形態にかかる、クラウドゲームネットワークを介して実行される複数のユーザのビデオゲームのゲームプレイ中に生成されたスナップショットを保存するために使用されるシステムを示している。
【0017】
【
図2】本開示の一実施形態にかかる、ゲームクラウドシステム(GCS)に記憶されたビデオゲームのアクセスを可能にしてプレイし、ゲームプレイに関連して生成されたスナップショットを記憶し、スナップショットを介して記憶されたゲームプレイをプレビューし、スナップショットを介してビデオゲームによるナビゲーションを行い、スナップショットを介して記憶されたゲームプレイにジャンプするためのシステム図を示している。
【0018】
【
図3A】本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムラインの図であり、タイムラインは、他のユーザのゲームプレイのスナップショット画像とともに、ユーザのゲームプレイのスナップショット画像を示している。
【0019】
【
図3B】本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示される1つ以上のタイムラインの図であり、タイムラインは、1人以上のユーザのビデオゲームのゲームプレイのスナップショット画像を示している。
【0020】
【
図4A】本開示の一実施形態にかかる、少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示すタイムラインの図であり、スナップショットの選択は、スナップショット画像の拡大図を可能にする。
【0021】
【
図4B】本開示の一実施形態にかかる、そのそれぞれが少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す1つ以上のタイムラインの図であり、スナップショットの選択は、スナップショット画像の拡大図を可能にする。
【0022】
【
図5A】本開示の一実施形態にかかる、ビデオゲームのゲームプレイのノードグラフの図であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中のタイムラインとともに表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、ならびに他のユーザのゲームプレイのスナップショット画像を示している。
【0023】
【
図5B】本開示の一実施形態にかかる、ビデオゲームで利用可能な全ての可能な経路を示すユニバーサルノードグラフまたはノードツリーの図である。
【0024】
【
図5C】本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショットに関連して生成されたノードの階層を示すノードグラフの図であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中のタイムラインとともに表示され、タイムラインは、ユーザのゲームプレイのスナップショット画像、ならびに他のユーザのゲームプレイのスナップショット画像を示している。
【0025】
【
図6A】本開示の一実施形態にかかる、選択されたスナップショットノードと密接且つ線形的に位置合わせされたスナップショットノードのクラスタの図であり、スナップショットノードは、タイムラインまたはノードグラフを介して選択されることができる。
【0026】
【
図6B】本開示の一実施形態にかかる、選択されたスナップショットノードと密接且つ非線形に位置合わせされたスナップショットノードのクラスタの図であり、スナップショットノードは、タイムラインまたはノードグラフを介して選択されることができる。
【0027】
【
図6C】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【
図6D】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【
図6E】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【
図6F】本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされたスナップショットノードのクラスタに対応するスナップショット画像の図である。
【0028】
【
図7】本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショット、およびスナップショットデータベースの1つ以上のマスタファイルにおけるそれらのスナップショットのそれぞれの記憶の図である。
【0029】
【
図8】本開示の一実施形態にかかる、同じまたは他のユーザによるビデオゲームの他のゲームプレイ中にキャプチャされたスナップショットに基づくそのユーザによる他のジャンプゲームプレイへの間欠的なジャンプを含む、ビデオゲームのユーザのゲームプレイの複数のセグメントの図である。
【0030】
【
図9】本開示の一実施形態にかかる、ゲーム世界をナビゲートするための方法におけるステップを示すフロー図である。 レビューノート:第2のケースは、ここから始まる
【0031】
【
図10】本開示の一実施形態にかかる、システムによってプレイヤのゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加している任意のプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする、ビデオ記録を介したゲームプレイアクセスに使用されるシステムの構成要素を示している。
【0032】
【
図11】本開示の一実施形態にかかる、ゲーム方法、より詳細には、ゲームプレイ中に生成されてキャプチャされ、記憶されたゲームプレイのビデオ記録を介して選択可能であるスナップショットに基づいて、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする方法におけるステップを示すフロー図である。
【0033】
【
図12A】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイのビデオ記録内の複数のビデオフレームの図であり、いくつかのビデオフレームは、対応するスナップショットと関連付けられており、ビデオフレームの選択は、ジャンプゲームプレイが要求ユーザによってプレイ可能であるように、プレイヤのゲームプレイ中にキャプチャされた関連するスナップショットに基づいてジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化する。
【0034】
【
図12B】本開示の一実施形態にかかる、ユーザによるゲームアプリケーションのゲームプレイ中に表示されるタイムラインの図であり、タイムラインは、プレイヤによるゲームアプリケーションのゲームプレイのスナップショット画像を示し、タイムライン内のスナップショット画像の選択は、スナップショット画像に関連付けられたゲームプレイにおける点におおよそ対応するゲームプレイのビデオ記録の表示を提供し、ビデオ記録におけるビデオフレームの選択は、ジャンプゲームプレイがユーザによってプレイ可能であるように、プレイヤのゲームプレイ中にキャプチャされたスナップショットに基づいてジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化する。
【0035】
【
図13A】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイを指示するために以前に使用された複数の入力コマンドの図であり、入力コマンドの一部(例えばシーケンス)は、ジャンプゲームプレイの再生部分を実行するために使用される。
【0036】
【
図13B】本開示の一実施形態にかかる、ジャンプゲームプレイのジャンプ点に対応する画像フレームの図であり、ジャンプゲームプレイは、ゲームプレイを指示する保存された入力コマンドを使用して、その後にジャンプゲームプレイが要求ユーザからの入力コマンドを処理することによってライブになるジャンプ点までプレイヤのゲームプレイを再生するように自動的に実行される。
【0037】
【
図14】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤのゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中に提示される一連の入力コマンドの図であり、一連の入力コマンドは、その後にジャンプゲームプレイが要求ユーザからの入力コマンドを処理することによってライブになるジャンプ点までのプレイヤのゲームプレイを再生するように自動的に実行され、要求ユーザは、オリジナルとともに提示されるゴーストオブジェクトおよび対応する画像フレームにおける対応するオブジェクトを指示するために入力コマンドのシーケンスを模倣することができる。
【0038】
【
図15A】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【
図15B】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【
図15C】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【
図15D】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【
図15E】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中の一連の画像フレーム全体にわたって、記憶されたゲームプレイの保存された入力コマンドによって指示される、対応するオブジェクトの動きを模倣するゴーストオブジェクトの図であり、保存された入力コマンドは、その後にジャンプゲームプレイが要求ユーザの入力コマンドを処理することによってライブになるジャンプ点までゲームプレイを再生するように自動的に実行される。
【0039】
【
図16】本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイにおいてジャンプ点にプレイヤを案内するために使用される特徴の図である。
【0040】
【
図17】本開示の一実施形態にかかる、ゲーム方法、より詳細には、ゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする方法におけるステップを示すフロー図である。
【0041】
【
図18】本開示の一実施形態にかかる、ヘッドマウントディスプレイの構成要素を示す図である。
【0042】
【
図19】本開示の様々な実施形態にかかる、ゲームシステムのブロック図である。ゲームシステムは、ネットワークを介して1つ以上のクライアントにビデオストリームを提供するように構成されている。
【発明を実施するための形態】
【0043】
以下の詳細な説明は、例示の目的のための多くの特定の詳細を含むが、当業者は、以下の詳細に対する多くの変形および変更が本開示の範囲内であることを理解するであろう。したがって、以下に説明される本開示の態様は、この説明に続く特許請求の範囲に対する一般性を失うことなく、またそれに限定を課すことなく説明される。
【0044】
一般的に言えば、本開示の様々な実施形態は、特にクラウドベースのゲームシステムで実行されたときに、複数のユーザのビデオゲームのゲームプレイ中に生成されるスナップショットの保存、ビデオゲームのナビゲート、ビデオゲームのプレビュー、および他のユーザのゲームプレイを体験するためのビデオゲームにおける選択された点へのジャンプを提供するシステムおよび方法を説明する。スナップショットは、ビデオゲームをプレイするユーザについてのタイムラインで表示されることができる。タイムライン内の選択されたスナップショットは、選択されたスナップショットに対応するビデオゲーム内のジャンプ点におけるビデオゲームのインスタンスのインスタンス化を可能にするメタデータおよび/または情報を含む。ジャンプ点で始まるビデオゲームのインスタンスは、要求ユーザがオリジナルユーザと異なっていても、以前に実行されたゲームプレイにおいて選択されたスナップショットを生成するオリジナルユーザに関連して実行される。本開示の実施形態は、以前は利用不可能であった同じまたは他のユーザのビデオゲームのインスタンスをロードして実行する方法を提供する。このようにして、ユーザは、自己のゲームプレイを危険にさらすことなく他のユーザのゲームプレイを積極的にプレビューすることができる。また、ユーザは、自己の現在のゲームプレイを危険にさらすことなく、自己の以前のゲームプレイを積極的にプレビューすることができる。この文脈において、本開示の実施形態が生じる。
【0045】
したがって、本開示の実施形態は、ゲームアプリケーションのさらなる用途を提供する。例えば、本開示の実施形態は、そのゲームアプリケーションの以前のゲームプレイに基づいて、ユーザがゲームアプリケーションの任意の部分にジャンプすることを提供する。例えば、いくつかの実施形態では、スナップショット画像(例えば、スクリーンショット)の選択を通じて、対応するスナップショット情報がアクセスされてそのゲームアプリケーションへのジャンプを可能にする。さらに他の実施形態は、そのゲームアプリケーションの以前のゲームプレイのビデオ記録に基づいて、ユーザがゲームアプリケーションの任意の部分にジャンプすることを提供する。例えば、ビデオ記録からの(例えば、スナップショット画像に対応することができる)ビデオ画像の選択によって、ビデオ画像(またはスナップショット画像)に関連する対応するスナップショット情報がアクセスされて、そのゲームアプリケーションへのジャンプを可能にする。そのようにして、ユーザは、楽しむためにゲームアプリケーションのミニセクションを素早くプレイすること、またはゲームアプリケーションの難しいセクションをどのようにしてうまくナビゲートするかを発見することができる。ミニセクションへのアクセスは、初期起動シーケンスを使用してユーザがゲームアプリケーションをロードする必要なく達成される。さらにまた、ユーザが興味のあるセクション(例えば、レベルボス、または最終ボスとのバトル)に到達するためにゲーム全体をプレイする必要はないため、好まれなくなった古いアプリケーションは、新たな興味を生み出し、即時のゲームプレイのためにそれらの興味のあるセクションに直接行くことができる。さらに他の実施形態は、初期化シーケンスを最初(例えば、ユーザが初めて最初からゲームアプリケーションをロードするとき)から実行する代わりに、ゲームサーバが中間点またはジャンプ点から直接始まるゲームアプリケーションを実行する必要があるのみであるため、上記の達成を提供し、ゲームサーバのよりよい利用を含む追加の利益および利点を提供する。したがって、選択されたジャンプ点からゲームを開始するのに必要なコードを直接アップロードすることによって、ゲームサーバは、初期化シーケンス、およびゲームアプリケーションにおけるジャンプ点にナビゲートするための任意のさらなる実行可能シーケンスもスキップする。
【0046】
様々な実施形態の上記の一般的な理解の下で、様々な図面を参照しながら実施形態の例示的な詳細がここで説明される。
【0047】
本明細書を通して、「ビデオゲーム」に対する参照は、入力コマンドの実行を通じて指示される任意の種類の対話型アプリケーションを表すことを意味する。説明のみを目的として、対話型アプリケーションは、ゲーム、ワープロ、ビデオ処理、ビデオゲーム処理などのためのアプリケーションを含む。さらに、ビデオゲームおよびゲームアプリケーションという用語は交換可能である。
【0048】
スナップショットキャプチャおよびゲームプレイアクセス
図1は、本開示の一実施形態にかかる、クラウドゲームネットワーク上で実行される複数ユーザのビデオゲームのゲームプレイ中に生成されるスナップショットの保存、1人以上のユーザのビデオゲームのゲームプレイのプレビュー、ビデオゲームのナビゲート、および同じまたは他のユーザのゲームプレイを体験するためのビデオゲームにおける選択された点へのジャンプに使用されるシステムを示している。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で実行される複数の仮想マシン(VM)を含むことができ、1つ以上の仮想マシンは、ホストのハイパーバイザに利用可能なハードウェアリソースを利用してゲームプロセッサモジュールを実行するように構成されている。
【0049】
示されるように、システム10は、複数の対話型ビデオゲームへのアクセスを提供するゲームプロセッサモジュール210を実行するゲームサーバ205を含む。ゲームサーバ205は、クラウド内で利用可能な任意の種類のサーバコンピューティング装置とすることができ、1つ以上のホスト上で実行される1つ以上の仮想マシンとして構成されることができる。例えば、ゲームサーバ205は、ゲームプロセッサ210をサポートする仮想マシンを管理してもよい。
【0050】
クライアント装置100は、インターネットなどのネットワーク150を介してビデオゲームへのアクセスを要求し、ゲームサーバ205によって実行されてユーザ5に関連付けられた表示装置12に配信されるビデオゲームのインスタンスをレンダリングするように構成されている。例えば、ユーザ5は、クライアント装置100を介してゲームプロセッサ210上で実行されているビデオゲームのインスタンスと対話することができる。クライアント装置100は、ゲームコントローラ6、タブレットコンピュータ11、キーボード、およびビデオカメラ、マウス、タッチパッドなどによってキャプチャされたジェスチャなど、様々な種類の入力装置からの入力を受信することができる。クライアント装置100は、ネットワーク150を介してゲームサーバ205に接続することができる少なくともメモリおよびプロセッサモジュールを有する任意の種類のコンピューティング装置とすることができる。クライアント装置100のいくつかの例は、パーソナルコンピュータ(PC)、ゲーム機、ホームシアター装置、汎用コンピュータ、モバイルコンピューティング装置、タブレット、電話、またはビデオゲームのインスタンスを実行するようにゲームサーバ205と対話することができる任意の他の種類のコンピューティング装置を含む。
【0051】
クライアント装置100は、ゲームサーバ205によって配信されたレンダリング画像を受信し、レンダリング画像をディスプレイ12に表示するように構成されている。例えば、レンダリング画像は、ユーザ5に関連してゲームサーバ205のゲーム実行エンジン211上で実行されるビデオゲームのインスタンスに関連付けられてもよい。特に、クライアント装置100は、ゲームプレイを推進するために使用される入力コマンドなどを介して、ユーザ5のゲームプレイに関連するビデオゲームのインスタンスと対話するように構成されている。
【0052】
さらに、クライアント装置100は、ビデオゲームをプレイするときにユーザ5のゲームプレイのスナップショットをキャプチャして記憶するためにゲームサーバ205と対話するように構成されている。さらに、クライアント装置100は、ゲームサーバ205と対話して、ユーザ5のゲームプレイのスナップショット、および同じビデオゲームをプレイしている他のユーザの保存されたゲームプレイのスナップショットを含むタイムラインを表示するように構成されている。各スナップショットは、選択されたスナップショットに対応するビデオゲームにおけるジャンプ点においてユーザ5が保存されたゲームプレイにジャンプすることを可能にし、一実施形態では、保存されたゲームプレイは、ユーザ5とは異なる他のユーザに関連付けられてもよい。
【0053】
より具体的には、ゲームサーバ205のゲームプロセッサ210は、ビデオゲームをプレイするときにユーザ5のゲームプレイのスナップショットを生成するように構成されている。他の仮想マシンに関連付けられたゲームサーバ205の他のゲームプロセッサは、他のユーザのゲームプレイに関連付けられたビデオゲームのインスタンスを実行し、それらのゲームプレイ中にスナップショットをキャプチャするように構成されている。前述したように、ビデオゲームのインスタンスは、ユーザ5のゲームプレイに関連してゲーム実行エンジン211上で実行されている。
【0054】
スナップショットジェネレータ212は、ユーザ5のゲームプレイから生成された複数のスナップショットをキャプチャするように構成されている。各スナップショットは、対応するスナップショットに関連するビデオゲームにおける所定点から始まるビデオゲームのインスタンスの実行を可能にする情報を提供する。スナップショットは、ユーザ5によるビデオゲームのゲームプレイ中に自動的に生成される。実施形態では、スナップショットのそれぞれの部分は、独立して構成された、またはデータストア140の下に構成された関連データベースに記憶される。他の実施形態では、スナップショットは、ユーザ5による指示を介して手動で生成されてもよい。そのようにして、対応するスナップショットの選択を通じた任意のユーザは、対応するスナップショットに関連するビデオゲームにおける所定点でユーザ5のゲームプレイにジャンプすることができる。ゲームプロセッサ210は、対応するスナップショットに基づいて任意のユーザの保存されたゲームプレイへのジャンプを可能にするためにデータベース140内の情報にアクセスするように構成されている。すなわち、要求ユーザは、スナップショットを生成して保存したオリジナルユーザのゲームプレイのゲームキャラクタを使用して、選択されたスナップショットに対応するジャンプ点でビデオゲームのプレイを開始することができる。
【0055】
特に、各スナップショットは、スナップショットに対応するビデオゲームにおける所定点で始まるビデオゲームのインスタンスの実行を可能にするためのメタデータおよび/または情報を含む。例えば、ユーザ5のゲームプレイでは、スナップショットは、レベルの中央などのビデオゲームの進行中の特定点で生成されてもよい。関連スナップショット情報は、データベース140の1つ以上のデータベースに記憶される。特定のスナップショットに対応する各データベース内の情報を関連付けるためにポインタが使用されることができる。そのようにして、ユーザ5のゲームプレイを体験したい他のユーザは、興味のあるビデオゲームにおける所定点に対応するスナップショットを選択することができる。
【0056】
スナップショットは、その時点でレンダリングされているシーンのスナップショット画像を含む。スナップショット画像は、スナップショット画像データベース146に記憶される。タイムライン内にサムネイルの形態で提示されたスナップショット画像は、ビデオゲームを通じたユーザによる進行の対応する点におけるユーザのゲームプレイへのビューを提供する。
【0057】
スナップショットはまた、その時点でのゲームの状態を定義するゲーム状態データを含む。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイなどを含むことができる。そのようにして、ゲーム状態データは、ビデオゲームにおける対応する点に存在したゲーム環境の生成を可能にする。ゲーム状態データはまた、CPU、GPU、メモリの状態、レジスタ値、プログラムカウンタ値、プログラム可能DMA状態、DMA用のバッファデータ、オーディオチップ状態、CD-ROM状態など、ゲームプレイをレンダリングするために使用される全ての装置の状態を含むことができる。ゲーム状態データはまた、その点からビデオゲームを実行するために実行可能コードのどの部分がロードされる必要があるかを識別することもできる。全てのゲーム状態データがキャプチャされて保存される必要はなく、スナップショットに対応する点で実行可能コードがゲームを開始するのに十分なデータのみが必要である。ゲーム状態データは、ゲーム状態データベース145に記憶される。
【0058】
スナップショットはまた、ユーザ保存データも含む。一般に、ユーザ保存データは、対応するユーザについてビデオゲームをパーソナライズする情報を含む。これは、ビデオゲームがそのユーザに固有とすることができるキャラクタ(例えば、形状、外観、服装、武器など)によってレンダリングされるように、ユーザのキャラクタに関連付けられた情報を含む。そのようにして、ユーザ保存データは、対応するユーザのゲームプレイについてのキャラクタの生成を可能にし、キャラクタは、スナップショットに関連するビデオゲームにおける所定点に対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイするときにユーザ5によって選択されたゲームの難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残りのライフ数、利用可能な総ライフ数、防具、賞品、タイムカウンタ値などを含むことができる。ユーザ保存データはまた、例えば、ユーザ5を識別するユーザプロファイルデータも含むことができる。ユーザ保存データは、データベース141に記憶される。
【0059】
さらに、スナップショットはまた、人工知能(AI)モジュール215によって生成されるランダムシードデータも含む。ランダムシードデータは、オリジナルゲームコードの一部ではないことがあるが、ゲーム環境をより現実的に見えるようにするためにおよび/またはユーザを引き付けるためにオーバーレイに追加されることができる。すなわち、ランダムシードデータは、ユーザのゲームプレイにおける対応する点に存在する追加の特徴をゲーム環境に提供する。例えば、AIキャラクタがランダムに生成されてオーバーレイに表示されることができる。AIキャラクタは、ゲームをプレイするいかなるユーザとも関連付けられないが、ユーザの体験を向上させるためにゲーム環境に配置される。実例として、これらのAIキャラクタは、都市のシーンで通りをランダムに歩行することができる。さらに、他のオブジェクトが生成されてオーバーレイに表示されてもよい。例えば、背景における雲や宇宙を飛ぶ鳥が生成され、オーバーレイに表示されてもよい。ランダムシードデータは、ランダムシードデータベース143に記憶される。
【0060】
そのようにして、ユーザ5のゲームプレイを体験したい他のユーザは、興味のあるビデオゲームにおける所定点に対応するスナップショットを選択することができる。例えば、ユーザによってタイムラインまたはノードグラフ内のノードに提示されるスナップショット画像の選択は、ゲームプロセッサ210のジャンプ実行エンジン216が対応するスナップショットにアクセスし、そのスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、そのスナップショットに対応するビデオゲームにおける所定点から始めてビデオゲームを実行することを可能にする。そのようにして、スナップショットは、スナップショットに対応する時点で要求ユーザがユーザ5のゲームプレイにジャンプすることを可能にする。
【0061】
ゲームプロセッサ210は、ビデオゲームをプレイしているユーザ5のタイムラインを表示しているタイムラインジェネレータ213を含む。タイムラインは、ビデオゲームを進行している少なくとも1人のユーザ(例えば、ユーザ5および/または他のユーザ)のスナップショット画像を含み、スナップショット画像は、ユーザ5に関連して実行されているビデオゲームのインスタンスの現在レンダリングされている画像に関して提示される。各スナップショット画像は、ユーザ5によるビデオゲームの進行における特定の点でキャプチャされた特定のスナップショットに対応する。例えば、ユーザ5のゲームプレイに関連して生成されたスナップショットおよびスナップショット画像は、ユーザ5のゲームプレイに関連して実行中のビデオゲームのインスタンスの現在レンダリングされている画像の前に発生するビデオゲームにおける点に対応する。すなわち、ユーザ5は、以前にビデオゲームのそれらの点を介してプレイし、それらの点に対応して複数のスナップショットおよびスナップショット画像が生成された。
【0062】
さらに、第2のユーザのゲームプレイに関連して生成されたスナップショットおよびそれらの対応するスナップショット画像は、ユーザ5のゲームプレイの現在レンダリングされている画像の前後に発生するビデオゲームにおける点に対応することができる。すなわち、第2のユーザは、ビデオゲームをプレイするときにユーザ5よりもさらに進行することができる。したがって、第2のユーザのゲームプレイに対応するスナップショットは、ユーザ5のゲームプレイに関連付けられた現在レンダリングされている画像の前のビデオゲームにおける点で発生してもよく、または現在レンダリングされている画像の後の点で発生してもよい。タイムラインは、現在レンダリングされている画像の後に発生するビデオゲームにおける点に対応するスナップショット画像を含むことができ、および/または現在レンダリングされている画像の前に発生するビデオゲームにおける点に対応するスナップショット画像を含むことができる。
【0063】
一実施形態では、タイムラインに提示されたスナップショットがユーザ5によって他のユーザのゲームプレイにアクセスするために使用されることができる。すなわち、タイムライン内の選択されたスナップショットの選択は、ユーザ5がスナップショットに対応する点で他のユーザのゲームプレイにジャンプすることを可能にする。例えば、ジャンプゲーム実行エンジン216は、選択されたスナップショットに対応する点でビデオゲームの実行を開始するために、様々なデータベースから(例えば、データベース140から)スナップショット(例えば、メタデータおよび/または情報)を収集する。一実施形態では、ユーザ5のゲームプレイは、他のユーザのゲームプレイにジャンプすることによって影響を受けない。
【0064】
他の実施形態では、タイムラインに提示されたスナップショットは、現在レンダリングされている画像の前に発生するユーザ自身のゲームプレイにおける点にアクセスするためにユーザ5によって使用されてもよい。例えば、スナップショットは、ユーザ5のゲームプレイにおいて生成され、タイムラインに提示されることができる。ユーザ5によるスナップショットの選択は、実行エンジン216が選択されたスナップショットに対応する以前の点においてビデオゲームの実行を開始するために、様々なデータベースから(例えば、データベース140から)スナップショット(例えば、メタデータおよび/または情報)を収集することを可能にする。そのようにして、ユーザ5は、ビデオの特定の部分(例えば、前のレベル)に戻って再生することができる。一実施形態では、ユーザ5の現在のゲームプレイは、同じユーザの以前のゲームプレイにジャンプすることによって影響を受けない。
【0065】
ゲームプロセッサ210はまた、ノードグラフジェネレータ214を含む。ユーザ5がビデオゲームを進行するにつれて、ゲームを介した経路が生成される。他のユーザは、特にビデオゲームが複雑な場合、ビデオゲームを介して異なる経路を生成することができる。経路は、ビデオゲームによって確立されたユニバーサル論理経路の一部とすることができ、ユニバーサル論理経路は、ビデオゲームをプレイするときに任意のユーザがとることができる全ての経路を含む。したがって、ユーザ5のゲームプレイに関連する経路は、ユニバーサル論理経路のサブセットとすることができ、ビデオゲームを介したユーザ5の進行を定義する。論理ノードは、ユニバーサル論理経路における様々な点で定義されることができる。例えば、例示として、ノードは、ゲームの開始時、レベルの開始時、ゲームの終了時、レベルの終了時、ユーザが2つ以上の任意の経路間で選択することを可能にする分岐点、ビデオゲームにおける臨界点などで確立されてもよい。
【0066】
さらに、ノードは、ユーザ5のゲームプレイに関連した経路内の、またはより一般的には任意のユーザのゲームプレイに関連した経路内の様々な点に定義されてもよい。例えば、ノードは、スナップショットに関連して定義されてもよい。これらのノードは、周期的な間隔(例えば、毎分、5分、10分など)で定義されてもよい。さらに、これらのノードは、ユーザによって手動で定義されてもよい。説明のために、これらのノードはまた、ゲームの開始時、レベルの開始時、ゲームの終了時、レベルの終了時、ユーザが2つ以上の任意の経路間で選択することを可能にする分岐点、ビデオゲームにおける臨界点などで確立されてもよい。
【0067】
図2は、本開示の実施形態にかかる、ゲームクラウドシステム(GCS)201に記憶されたビデオゲームのアクセス可能にしてプレイするためのシステムダイアグラム200を示している。一般的に言えば、ゲームクラウドシステムGCS201は、複数のユーザをサポートするためにネットワーク220を介して動作するクラウドコンピューティングシステムとすることができる。さらに、GCS201は、複数のユーザのビデオゲームのゲームプレイ中に生成されたスナップショットを保存するように構成され、スナップショットは、要求ユーザがスナップショットに対応するビデオゲームの点で始まるビデオゲームのインスタンスを開始するために使用されることができる。さらに、スナップショットの使用によるGCS201は、ユーザがビデオゲームをナビゲートし、ビデオゲームの過去および将来のシーンをプレビューすることを可能にする。さらに、スナップショットは、要求ユーザが対応するスナップショットを介してビデオゲームにおける選択された点にジャンプして他のユーザのゲームプレイを体験することを可能にする。特に、システム200は、GCS201、1つ以上のソーシャルメディアプロバイダ240、およびユーザ装置230を含み、これらは全てネットワーク220(例えば、インターネット)を介して接続されている。1つ以上のユーザ装置は、GCS201およびソーシャルメディアプロバイダ240によって提供されるサービスにアクセスするためにネットワーク220に接続されることができる。
【0068】
一実施形態では、ゲームクラウドシステム201は、ゲームサーバ205、ビデオレコーダ271、タグプロセッサ273、およびユーザプロファイルマネージャを含むアカウントマネージャ274、ゲーム選択エンジン275、ゲームセッションマネージャ285、ユーザアクセスロジック280、ネットワークインターフェース290、およびソーシャルメディアマネージャ295を含む。GCS201は、一般にデータストア140に記憶されることができる、ゲーム状態ストア、ランダムシードストア、ユーザ保存データストア、スナップショットストアなどの複数のゲーム記憶システムをさらに含むことができる。他のゲーム記憶システムは、ゲームコードストア261、記録ゲームストア262、タグデータストア263、ビデオゲームデータストア264、およびゲームネットワークユーザストア265を含むことができる。一実施形態では、GCS201は、ゲームアプリケーション、サービス、ゲーム関連デジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ、およびソーシャルネットワーク間の相互接続性を提供することができるシステムである。GCS201は、ネットワークインターフェース290を介してソーシャルメディアマネージャ295を介してユーザ装置230およびソーシャルメディアプロバイダ240と通信することができる。ソーシャルメディアマネージャ295は、1人以上の友達を関連付けるように構成されてもよい。一実施形態では、各ソーシャルメディアプロバイダ240は、ユーザのソーシャルネットワーク接続を示す少なくとも1つのソーシャルグラフ245を含む。
【0069】
ユーザU
0は、ゲームセッションマネージャ285を介してGCS201によって提供されるサービスにアクセスすることができ、ユーザU
0は、
図1のユーザ5を表すことができる。例えば、アカウントマネージャ274は、ユーザU
0によるGCS201への認証およびアクセスを可能にする。アカウントマネージャ274は、会員ユーザに関する情報を記憶する。例えば、各会員ユーザのユーザプロファイルは、アカウントマネージャ274によって管理されることができる。そのようにして、会員情報は、認証目的でアカウントマネージャ274によって使用されることができる。例えば、アカウントマネージャ2274は、会員ユーザに関するユーザ情報を更新および管理するために使用されることができる。さらに、会員ユーザによって所有されるゲームタイトルは、アカウントマネージャ274によって管理されることができる。そのようにして、データストア264に記憶されているビデオゲームは、それらのビデオゲームを所有する任意の会員ユーザに利用可能にされる。
【0070】
一実施形態では、ユーザ、例えばユーザU0は、ネットワーク220を介した接続によってユーザ装置230を介してGCS201およびソーシャルメディアプロバイダ240によって提供されるサービスにアクセスすることができる。ユーザ装置230は、有線接続または無線接続された、携帯用または非携帯用のプロセッサおよびメモリを有する任意の種類の装置を含むことができる。一実施形態では、ユーザ装置230は、スマートフォン、タブレットコンピュータ、または携帯型フォームファクタでタッチスクリーン機能を提供するハイブリッドの形態とすることができる。1つの例示的な装置は、オペレーティングシステムを実行し、ネットワーク220を介して取得され、ローカルの携帯型装置(例えば、スマートフォン、タブレット、ラップトップ、デスクトップなど)上で実行されることができる様々なアプリケーション(アプリ)へのアクセスを備える携帯電話装置を含むことができる。
【0071】
ユーザ装置230は、入力コマンド236を送信してGCS201およびソーシャルメディアプロバイダ240から受信したデータおよび/または情報235を表示するためのユーザU0に対するインターフェースとして機能するディスプレイ232を含む。ディスプレイ232は、タッチスクリーン、またはフラットパネルディスプレイ、陰極線管(CRT)、またはディスプレイをレンダリングすることができる他の装置によって通常提供されるディスプレイとして構成されることができる。あるいは、ユーザ装置230は、デスクトップコンピュータまたはラップトップコンピュータと同様に、装置とは別個にそのディスプレイ232を有することができる。
【0072】
一実施形態では、ユーザ装置130は、ユーザU0がビデオゲームをプレイすることを可能にするためにGCS201と通信するように構成されている。例えば、ユーザU0は、ゲーム選択エンジン275を介してビデオゲームデータストア264で利用可能なビデオゲームを(例えば、ゲームタイトルなどによって)選択することができる。そのようにして、選択されたビデオゲームが有効化され、ゲームサーバ205による実行のためにGCS201にロードされる。一実施形態では、ユーザ装置230がGCS201からゲームビデオフレーム235のストリームを受信し、ゲームプレイを推進するためのユーザ入力コマンド236がGCS201に返送されるように、ゲームプレイは、主にGCS201において実行される。ストリーミングゲームプレイから受信したビデオフレーム235は、ユーザ装置230のディスプレイ232に示される。
【0073】
一実施形態では、ユーザU0がプレイするために利用可能なゲームタイトルを選択した後、選択されたゲームタイトルについてのゲームセッションは、ゲームセッションマネージャ285を介してユーザU0によって開始されてもよい。ゲームセッションマネージャ285は、データストア140内のゲーム状態ストアに最初にアクセスし、ユーザU0が以前のゲームプレイの停止点からゲームプレイを再開することができるように、もしあれば(選択されたゲームに対して)ユーザU0によってプレイされた最後のセッションの保存されたゲーム状態を検索する。再開または開始点が特定されると、ゲームセッションマネージャ285は、ゲームコードストア261から選択されたゲームタイトルのゲームコードを実行するようにゲームプロセッサ210内のゲーム実行エンジンに通知することができる。ゲームセッションが開始された後、ゲームセッションマネージャ285は、ネットワークインターフェース290を介してゲームビデオフレーム235(すなわち、ストリーミングビデオデータ)をユーザ装置、例えばユーザ装置230に渡すことができる。
【0074】
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームプロセッサ210、記録エンジン271、およびタグプロセッサ273と通信して、ゲームプレイまたはゲームプレイセッションの記録(例えば、ビデオ)を生成または保存することができる。一実施形態では、ゲームプレイのビデオ記録は、ゲームプレイ中に入力または提供されたタグコンテンツ、および他のゲーム関連メタデータを含むことができる。タグコンテンツはまた、スナップショットを介して保存されることもできる。ゲームプレイのビデオ記録は、そのゲームプレイに対応する任意のゲームメトリクスとともに、記録されたゲームストア262に保存されることができる。いかなるタグコンテンツも、タグデータストア263に保存されることができる。
【0075】
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームプロセッサ204と通信して、ビデオゲームの対応するゲームプレイの結果に影響を及ぼすために使用されるユーザ入力コマンド236を配信および取得することができる。ユーザU0によって入力された入力コマンド236は、ユーザ装置230からGCS201のゲームセッションマネージャ285に送信されることができる。ゲームプレイを推進するために使用される入力コマンドを含む入力コマンド236は、タグコンテンツ(例えば、テキスト、画像、ビデオ記録クリップなど)などを含むユーザ対話型入力を含むことができる。ゲーム入力コマンドならびに任意のユーザプレイメトリクス(ユーザがゲームをプレイする時間など)は、ゲームネットワークユーザストアに記憶されることができる。ビデオゲームについてのゲームプレイに関する選択情報は、ユーザに利用可能とすることができる複数の特徴を可能にするために使用されることができる。
【0076】
ゲームプレイは、複数のユーザによってGCS201上で実行されることから、これらのゲームプレイから生成されて記憶された情報は、特にゲームプレイがGCS201上で実行されるとき、任意の要求ユーザが他のユーザのゲームプレイを体験することを可能にする。特に、GCS201は、GCS201を介してビデオゲームをプレイするユーザのゲームプレイによって生成されたスナップショットを保存するように構成されている。ユーザU0の場合、ユーザ装置は、ゲームプレイ中にユーザU0がビデオゲームに参加することを可能にするインターフェースを提供する。ユーザU0によるゲームプレイのスナップショットが生成されてGCS201に保存される。
【0077】
また、ユーザ装置130は、ユーザU0がスナップショットを使用してビデオゲームをプレビューすることを可能にするインターフェースを提供するように構成されている。例えば、ゲームプレイまたは1人以上のユーザのスナップショット画像を見ることによって、ユーザU0は、他のユーザがその点を通して既にプレイしてスナップショットを生成している限り、ビデオゲームの任意の点でビデオゲームの1つ以上の部分をプレビューすることができる。さらに、ユーザ装置130は、ユーザU0がビデオゲームをナビゲートすることを可能にするインターフェースを提供するように構成されている。例えば、スナップショットは、ビデオゲームを進行している1人以上のユーザによってとられた経路を示すノードグラフを生成するために使用されることができる。
【0078】
さらに、ユーザ装置130は、ユーザU0または他のユーザのゲームプレイで生成されたスナップショットを使用してビデオゲーム内の選択された点へジャンプすることを可能にするインターフェースを提供するように構成されている。そのようにして、ユーザU0は、任意の他のユーザのゲームプレイを体験すること、または自己のゲームプレイに戻って見直しおよび/または再生することを可能にする。すなわち、要求ユーザは、対応するゲームプレイのスナップショットを介して、そのゲームプレイで使用され且つそれに対応するキャラクタを使用してビデオゲームをプレイする。
【0079】
図3~
図8は、ビデオゲームをプレイするユーザのコンテキスト内で説明される。一般に、ビデオゲームは、ユーザ入力に応答する任意の対話型ゲームとすることができる。説明のみを目的として、
図3~
図8に関連して説明されたビデオゲームは、アドベンチャーゲームとすることができ、キャラクタは、世界中を旅しながら様々な障害および困難に遭遇する。キャラクタは、徒歩で移動することができ、またはビデオゲーム内の任意の機械化された手段を介して移動することができる。さらに、キャラクタは、ビデオゲームを最初から最後まで進行するときに遅延をもたらす可能性がある1つ以上の困難に遭遇することがある。
【0080】
本明細書を通して、
図3~
図8の1つ以上のタイムラインにおける時間の使用は、ビデオゲームを通しての進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイする時間の長さの尺度ではない。
【0081】
図3Aは、本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示されるタイムライン310aの図であり、タイムラインは、他のユーザのゲームプレイのスナップショット画像とともに、ユーザのゲームプレイのスナップショット画像を示している。さらに、一実施形態では、タイムライン310aは、GCS201のゲームサーバ205のゲームプロセッサ210のタイムラインジェネレータ213によって生成される。タイムライン310aは、ユーザによる以前のゲームプレイ、ならびに1人以上の他のユーザのゲームプレイを迅速にプレビューするために使用されることができる。
【0082】
ウィンドウ350aおよびタイムライン310aは、ゲームプロセッサ210のゲーム実行エンジン211がビデオゲームのインスタンスをインスタンス化する間に表示される。例えば、ウィンドウ300は、特定のビデオゲームに対するユーザのゲームプレイ中のレンダリング画像305を示す。レンダリング画像は、ビデオゲームを通じたユーザの進行における現在点に関連付けられる。示されるように、レンダリング画像305において、ゲームプレイにおけるユーザを表すキャラクタ306は、オートバイ上にある。キャラクタ306は、山岳地形を通る道路を走っているが、落石307に遭遇した。ユーザのゲームプレイでは、キャラクタは、レンダリング画像305に示されるように、短くてとがった髪を持つ男性であるように選択される。この時点で、ユーザは、ビデオゲームの進行に不満を感じていることがあり、落石のまわりで操縦するための道を模索することを望むことがある。例えば、ユーザは、他のユーザのゲームプレイをプレビューし、ユーザが落石を乗り越えることを可能にする解決策を探り、レンダリング画像305によって表されるようにユーザの現在の進行を超えた時点でビデオゲームにおける将来の体験を探ることを望むことがある。これらの他のゲームプレイの探索は、タイムライン310aを介して、より具体的には、タイムライン310aに表示されるように、スナップショット画像、およびそれらの対応するスナップショットを介して可能にされることができる。前述したように、スナップショットは、対応するスナップショットに関連するビデオゲームにおける所定点から始まる対応するビデオゲームのインスタンスの実行を可能にする。特に、ユーザによってタイムラインまたはノードグラフ内のノードに提示されるスナップショット画像のさらなる選択は、ゲームプロセッサ210のジャンプ実行エンジン216が対応するスナップショットにアクセスし、そのスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、そのスナップショットに対応するビデオゲームにおける所定点から始めてビデオゲームを実行することを可能にする。
【0083】
タイムライン310aは、ウィンドウ350aに表示される。一般に、1人以上のユーザの1つ以上のゲームプレイのスナップショット画像を含む複数のタイムラインがウィンドウ350aに表示されることができる。
図3Aに示すように、ウィンドウ350aは、単一のタイムライン310aを表示することができ、タイムライン310aは、他のユーザによるゲームプレイのスナップショット画像と同様に、ユーザによるゲームプレイのスナップショット画像を含む。スナップショット画像は、サムネイルおよび/またはウィンドウに提示され、ユーザのゲームプレイにおいてビデオゲームの現在レンダリングされている画像に関連して表示される。例えば、現在レンダリングされている画像305によって表されるビデオゲームにおける所定点の前に発生するスナップショット画像は、空白のサムネイル340cの左側に表示されることができ、その点の後に発生するスナップショット画像は、サムネイル340cの右側に表示されることができる。ウィンドウ350aはまた、
図3Bに関連してさらに説明されるように、1人以上のユーザによるビデオゲームの1つ以上のゲームプレイのスナップショット画像を含む追加のタイムラインを表示することができる。タイムラインは、ビデオゲームの進行を示しており、必ずしもユーザがビデオゲームをプレイしている時間の長さの尺度ではない。
【0084】
特に、タイムライン310aは、ユーザによるゲームプレイについてのスナップショット画像を含む。例えば、ユーザによるゲームプレイ中にキャプチャされたスナップショットに対応する複数のスナップショット画像(例えば、画像340a、340b、・・・)は、サムネイルおよび/またはウィンドウのタイムライン310aに表示される。スナップショット画像をまとめて見ると、ユーザのゲームプレイの迅速な履歴が得られる。例えば、スナップショット画像340aは、ランプまたは崖からオートバイを飛び降りるキャラクタ306を示している。ゲームのこの時点で、キャラクタ306は、スナップショット画像340aの左上隅にある2つの円によって示されるように、2つの可能なライフを有する。その後、ビデオゲームを介したユーザの進行において、スナップショット画像340bは、森を通ってオートバイで走って山岳に近付いているキャラクタ306(まだ2つの可能なライフを有する)を示している。ウィンドウ300に示されている現在レンダリングされている画像305は、キャラクタ306が山に到達し、落石307に近付いたことを示している。この時点で、キャラクタ306は、2つの可能なライフを有する。
【0085】
レンダリング画像305が現在表示されており、ビデオゲームを通じたユーザの進行を表すことから、ユーザによる以前のゲームプレイを表すスナップショット画像のみが表示される。これらのスナップショット画像は、通常、現在表示されているレンダリング画像305によって表される点の前に発生するゲーム内の点を表す。説明のみを目的として、キャラクタの可能な総ライフ数は、ユーザにとってビデオゲームの進行の概算を与える。しかしながら、いくつかのビデオゲームは、ユーザがビデオゲームをプレイするにつれて、ユーザが前後に進むことを可能にすることができる。いずれの場合にも、一実施形態では、以前にレンダリングされた画像に対応するスナップショット画像のみがユーザのタイムライン310aに表示されることができる。これらのスナップショット画像は、空白のサムネイル340cによって表されるタイムライン310a内の現在レンダリングされている画像305に関連して表示される。例えば、スナップショット画像は、空白のサムネイル340cの左側に表示されてもよい。ビデオゲームの第1の時点でキャプチャされた第1のスナップショット画像を、ビデオゲームを通したユーザの一般的な進行における第1の時点の後に発生する第2の時点で発生する第2のスナップショット画像の左側に表示することによって、2つのスナップショット画像間のさらなる順序付けが達成されることができる。他の実装では、サムネイル340cは、レンダリング画像305に埋められて、タイムライン310aにおけるユーザの現在の進行を示すことができる。
【0086】
現在レンダリングされている画像305の前に発生するビデオゲーム内の点を表すスナップショット画像は、現在レンダリングされている画像305の後に発生するビデオゲーム内の点、すなわち将来点を表すスナップショット画像と区別して表示されることができる。一実施形態では、スナップショット画像は、グレーアウトされてもよい。すなわち、現在レンダリングされている画像305の前に発生する点に対応するスナップショット画像は、ビデオゲームの進行中に後に発生する点に対応するスナップショット画像よりも低い強度および/または解像度で表示される。スナップショット画像をクロスハッチングで示すこと、またはスナップショット画像をぼかすことなど、他の実施形態がサポートされる。
【0087】
さらに、タイムライン310aは、他のユーザによるゲームプレイのためのスナップショット画像を含む。一実施形態では、この他のユーザは、ソーシャルメディアマネージャ295を通じて発見された友達とすることができる。スナップショット画像はまた、ランダムユーザ、またはビデオゲームで高得点を有するユーザなど、関心の高いユーザのゲームプレイに対応することができる。説明のみを目的として、
図3~
図8に関連して提供される例では、これらの他のユーザは、第1の友達F1、第2の友達F2、および第3の友達F3など、現在のユーザの友達と呼ばれる。第1の友達F1は、長い髪を持つ女性として描かれているキャラクタ308をプレイしている。第2の友達F2は、髪の毛がたくさんある男性として描かれているキャラクタ309をプレイしている。第3の友達F3は、禿頭の男性として描かれているキャラクタ303をプレイしている。
【0088】
特に、タイムライン310aは、第2のユーザ(例えば、女性キャラクタ308をプレイしている友達F1)によるゲームプレイについてのスナップショット画像を含む。例えば、第2のユーザによるゲームプレイ中にキャプチャされたスナップショットに対応する複数のスナップショット画像(例えば、画像360d、360e、360f、・・・)が、サムネイルおよび/またはウィンドウのタイムライン310aに表示される。これらのスナップショット画像は、現在レンダリングされている画像305に関連して表示される。例えば、空白のサムネイル340cの右側に表示されているスナップショット画像360d、360e、および360fは、現在レンダリングされている画像305の後のビデオゲームにおける所定点で発生する。タイムライン310aには示されていないが、現在レンダリングされている画像の前後のビデオゲームにおける所定点で発生するスナップショット画像(例えば、スナップショット画像360a、360b、および360c)もまた、必要に応じて示されることができ、
図3Bのウィンドウ350bに表示されているタイムライン310bに関連してさらに説明される。
【0089】
スナップショット画像をまとめて見ると、現在レンダリングされている画像305の後に発生する将来点における第2のユーザ(例えば、友達F1)のゲームプレイの迅速な履歴が得られる。例えば、スナップショット画像360dは、どのようにして川を渡るかを熟考し、3つの可能なライフを有するキャラクタ308を示す。ビデオゲームにおいてさらに進行すると、ここでは4つの可能なライフを有するキャラクタ308は、スナップショット画像360eにおいて熊と戦っている。ビデオゲームにおいてさらに進行すると、スナップショット画像360fにおいて砂漠を運転するここでは5つの可能なライフを有するキャラクタ308が示されている。
【0090】
一実施形態では、タイムラインは、ビデオゲームを通じたユーザによる進行、および利用可能なスナップショット画像に応じて変更されることができる。例えば、現在レンダリングされている画像305に関して(例えばユーザまたは他のユーザについて)過去にあまりにも多く発生したスナップショット画像は表示されなくてもよく、(例えば、他のユーザについて)将来にあまりにも早く発生するスナップショット画像もまた、表示されなくてもよい。さらに、他のユーザが変更および/または交換されると、対応するスナップショット画像がタイムラインで更新される。
【0091】
図3Bは、本開示の一実施形態にかかる、ユーザによるビデオゲームのゲームプレイ中に表示される複数のタイムラインの図であり、タイムラインは、1人以上のユーザのビデオゲームのゲームプレイのスナップショット画像を示している。タイムラインは、ウィンドウ350bに表示される。一実施形態において、ウィンドウ350bは、ユーザのゲームプレイにおいて現在レンダリングされている画像305とともに表示される。例えば、一実施形態では、タイムライン310b、320および330は、ウィンドウ350bに表示され、GCS201のゲームサーバ205のゲームプロセッサ210のタイムラインジェネレータ213によって生成される。タイムラインは、ユーザによる以前のゲームプレイ、ならびに1人以上の他のユーザ(例えば、友達、ランダムユーザ、興味のあるユーザなど)のゲームプレイを素早くプレビューするために使用されることができる。
【0092】
示されるように、タイムライン310bは、
図3Aに関して前述したように、ユーザによるゲームプレイのスナップショット画像(例えば、340a、340b、・・・)を含む。これらのスナップショット画像は、
図3Bに示されるようにサムネイルで表示されてもよく、現在レンダリングされている画像305に関して配置される。例えば、これらのスナップショット画像は、現在レンダリングされている画像305の左側に表示され、前述したように、後に発生するスナップショット画像の左側に配置された第1のスナップショット画像と一般に並べられる。
【0093】
さらに、タイムライン310bは、第2のユーザ(例えば、女性キャラクタ308をプレイする第1の友達F1)によるゲームプレイ中にキャプチャされたスナップショットに対応する複数のスナップショット画像(360a、360b、360c、360d、360e、360f、・・・)を含む。これらのスナップショット画像は、タイムライン310bにサムネイルで表示され、前述したように、現在レンダリングされている画像305に関連して配置されている。より具体的には、現在レンダリングされている画像(例えば、スナップショット画像360a、360b、および360c)の前後のビデオゲームにおける所定点で発生する、友達F1によるゲームプレイに対応するスナップショット画像もまた、必要に応じてユーザのスナップショット画像(例えば、340a、340b、・・・)の下方に含まれることができる。現在レンダリングされている画像の前のビデオゲーム進行中の点で発生するスナップショット画像(例えば、360a、360b、・・・)は、空白のサムネイル340cの左側に配置されることができる。ゲーム進行の指標として、スナップショット画像360a~cは、2つの可能なライフを有するキャラクタを示す。スナップショット画像360cは、現在レンダリングされている画像305としてビデオゲームの進行のほぼ同じ点で発生し、空白のサムネイル340cのほぼ下方に配置される。例えば、スナップショット画像360cおよび現在レンダリングされている画像305は、双方とも、それぞれ2つの可能なライフを有する対応するキャラクタを示す。さらにまた、タイムライン310bにおけるスナップショット画像は、一般に、前述したように、第1のスナップショット画像が後に発生するスナップショット画像の左側に位置するように配置されてもよい。矢印399は、第2のユーザである友達F1に関連付けられたスナップショット画像をリンクすることができる。
【0094】
まとめて見ると、スナップショット画像は、第1の友達F1のゲームプレイの迅速な履歴を与える。例えば、友達F1のキャラクタ308は、スナップショット画像360aにおいて、ダウンタウンの街の通りでオートバイに乗って最初に示されている。その後、ビデオゲームによる友達F1の進行において、スナップショット画像360bは、森を通ってオートバイに乗り、山岳に近付いているキャラクタ308(2つの可能なライフを有する)を示す。ビデオゲームにおいてさらに進行すると、キャラクタ308は、スナップショット画像360cにおいて山岳道路でオートバイに乗っている。例えば、友達F1のキャラクタ308は、ユーザのキャラクタ306がレンダリング画像305内で現在遭遇している落石のまわりを操縦したことがある。後に、スナップショット画像360dにおいて、キャラクタ308(3つの可能なライフを有する)が川に近付いているのが示される。さらに進行すると、キャラクタ308(4つの可能なライフを有する)は、スナップショット画像360eにおいて熊と戦っており、その後、キャラクタ308(5つの可能なライフを有する)は、スナップショット画像360fにおいて砂漠を運転しているのが示される。
【0095】
ウィンドウ350bは、第2の友達F2などの他のユーザのゲームプレイに関連する他のタイムライン320を示している。示されるように、タイムライン320は、友達F2によるゲームプレイのスナップショット画像(370a、370b、370c、370d、370e・・・)を含む。一実施形態では、これらのスナップショット画像は、サムネイルで表示され、現在レンダリングされている画像305に関連して配置される。例えば、現在レンダリングされている画像の前のビデオゲーム進行中の点で発生するスナップショット画像(例えば、370a、370b、・・・)は、空白のサムネイル340cのほぼ左側に配置される。これらのスナップショット画像は、前述したように、表示されているコンテンツをグレーアウトすることによって容易に識別されることができる。スナップショット画像370cは、現在レンダリングされている画像305としてビデオゲームの進行のほぼ同じ点で発生し、空白のサムネイル340cのほぼ下方に配置される。現在レンダリングされている画像の後のビデオゲーム進行中の点で発生するスナップショット画像(例えば、370d、370e、・・・)は、空白のサムネイル340cのほぼ右側に配置される。さらにまた、タイムライン320におけるスナップショット画像は、一般に、前述したように、第1のスナップショット画像が後に発生するスナップショット画像の左側に位置するように配置されてもよい。
【0096】
まとめて見ると、スナップショット画像は、第2の友達F2のゲームプレイの迅速な履歴を与える。例えば、友達F2のキャラクタ309(2つの可能なライフを有する)は、スナップショット画像370aにおいて川を渡って最初に示される。その後、ビデオゲームによる友達F2の進行において、スナップショット画像370bは、徒歩で森を通り抜け、より背の高い山の範囲に近付いているキャラクタ309を示す。さらに進行すると、スナップショット画像370cにおいて偽りの山頂を登る(2つの可能なライフを有する)キャラクタ309が示される。さらに後に、スナップショット画像370dにおいて山の面をフリークライムし、その後、スナップショット画像370eにおいてボートで湖を渡るキャラクタ309(4つの可能なライフを有する)が示される。
【0097】
ウィンドウ350bは、第3の友達F3などの他のユーザのゲームプレイに関連する他のタイムライン330を示す。示されるように、タイムライン330は、友達F3によるゲームプレイのスナップショット画像(380a、380b、380c、380d、380e、380f、・・・)を含む。一実施形態では、これらのスナップショット画像は、サムネイルで表示され、現在レンダリングされている画像305に関連して配置される。例えば、現在レンダリングされている画像の前のビデオゲーム進行中の点で発生するスナップショット画像(例えば、380a、380b、・・・)は、空白のサムネイル340cのほぼ左側に配置される。これらのスナップショット画像は、前述したように、表示されているコンテンツをグレーアウトすることによって容易に識別されることができる。スナップショット画像380cは、現在レンダリングされている画像305としてビデオゲームの進行のほぼ同じ点で発生し、空白のサムネイル340cのほぼ下方に配置される。現在レンダリングされている画像の後のビデオゲーム進行中の点で発生するスナップショット画像(例えば、380d、380e、380f、・・・)は、空白のサムネイル340cのほぼ右側に配置される。さらにまた、タイムライン320におけるスナップショット画像は、一般に、前述したように、第1のスナップショット画像が後に発生するスナップショット画像の左側に位置するように配置されてもよい。
【0098】
まとめて見ると、スナップショット画像は、第3の友達F3のゲームプレイの迅速な履歴を与える。例えば、友達F3のキャラクタ303(2つの可能なライフを有する)は、スナップショット画像380aにおいて最初に森を通ってオートバイに乗っている。その後、ビデオゲームを介した友達F3の進行において、スナップショット画像380bは、川を渡る(2つの可能なライフを有する)キャラクタ303を示す。さらに進行すると、スナップショット画像380cにおいて滝をカヤックで降りるキャラクタ3039(3つの可能なライフを有する)が示される。さらに後に、スナップショット画像380dにおいてモーターボートで湖を横断するキャラクタ303が示され、次にスナップショット画像390eにおいてボートをドッキングするキャラクタ303が示される。さらに後の進行において、キャラクタ303(5つの可能なライフを有する)は、スナップショット画像380fにおいて次の目的地まで飛行機で飛んでいるのが示される。
【0099】
異なるタイムラインと呼ばれるが、ウィンドウ内の全てのタイムラインは、ビデオゲームをプレイしているユーザに属する1つのタイムラインと呼ばれることがある。さらに、一実施形態では、他のユーザに関連付けられたタイムライン(例えば、タイムライン320、330、および310の一部)は、新たなユーザのタイムラインと置き換えることができる。そのようにして、ユーザを回転させるスナップショット画像をユーザに見せることができる。他の実施形態では、明確にするために、より多くのタイムラインが示されてもよく、またはより少ない数のタイムラインが示されてもよい。
【0100】
さらに他の実施形態では、ウィンドウ350aまたは350b内のタイムラインは、完全に異なるゲームまたはコンテンツに関連したスナップショット画像を表示することができる。例えば、タイムラインは、他のビデオゲームをプレビューして試すこと、または他のコンテンツを見ることをユーザに誘惑するように示されてもよい。
【0101】
図4Aは、本開示の一実施形態にかかる、ウィンドウ350a内に提示されたタイムライン310aの図であり、タイムライン310aは、少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す
図3Aにおいて最初に導入され、スナップショット画像の選択は、スナップショット画像の拡大図を可能にする。前述したように、ウィンドウ300は、ユーザによるビデオゲームのゲームプレイの現在レンダリングされている画像305を示している。タイムライン310aは、現在レンダリングされている画像305の前に発生したビデオゲームを介した進行点での(キャラクタ306をプレイしている)ユーザによるゲームプレイのスナップショット画像(340a、340b、・・・)を含む。タイムライン310はまた、現在レンダリングされている画像305の後に発生したビデオゲームを介した進行点での他のユーザ(例えば、キャラクタ308をプレイしている友達F1)によるゲームプレイのスナップショット画像(360d、360e、360f、・・・)を含む。
【0102】
より具体的には、スナップショット画像は、サムネイルを介してタイムライン310aに提示される。そのため、サムネイルのサイズに応じて、レンダリング画像がより詳細を表示するには小さすぎることがある。ユーザは、拡大のためにスナップショットを選択することができる。例えば、一実施形態では、ユーザは、スナップショット画像360eを提示するサムネイル上にカーソル490aを重ねることができる。タッチスクリーン上に表示されたスナップショット画像をタッチするなど、拡大のためのスナップショット画像の選択のための他の方法がサポートされる。ウィンドウ410が生成され、選択されたサムネイルのほぼ同じ領域に表示される。ウィンドウ410は、レンダリングされたスナップショット画像360eを表示し、ウィンドウ410は、スナップショット画像360eのより良いビューをユーザに与えるのに十分なサイズからなる。
【0103】
明確にするために、スナップショット画像360eの拡大図がボックス420に提示されている。しかしながら、一実施形態では、ウィンドウ410および/またはスナップショット画像360eをさらに選択することによって、ボックス420は、ウィンドウ410に提示されたものよりもさらに大きいスナップショット画像360eを示すウィンドウとして表示されることができる。前述したように、スナップショット画像360eは、他のユーザ(例えば、女性キャラクタ308をプレイしている友達F1)のゲームプレイに関連付けられており、熊に遭遇しているキャラクタ308を示している。タイムライン310aに提示されたスナップショット画像をスクロールして拡大画像を見ることによって、ユーザは、友達F1のゲームプレイをプレビューすることができる。そのようにして、タイムライン310aに提示された選択されたスナップショット画像および/またはユーザによるノードグラフ内のノード(後述)のユーザによるさらなる選択は、ゲームプロセッサ210のジャンプ実行エンジン216が対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、スナップショットに対応するビデオゲームにおける点から初めてビデオゲームを実行することを可能にする。例えば、ユーザは、他のユーザ(例えば、友達F1)のゲームプレイを体験することができ、または自己のゲームプレイに戻って再体験および/または再生することができる。
【0104】
図4Bは、本開示の一実施形態にかかる、そのそれぞれが少なくとも1人のユーザのビデオゲームのゲームプレイのスナップショット画像を示す、ウィンドウ350bに提示された1つ以上のタイムラインの図であり、スナップショットの選択は、スナップショット画像の拡大図を可能にする。
図4Bに示すタイムラインは、
図3Bに関連して前述したものであり、タイムライン310b、320および330を含む。特に、タイムライン310bは、現在レンダリングされている画像305の前に発生したビデオゲームを介した進行点でのキャラクタ306をプレイしているユーザによるゲームプレイのスナップショット画像を含む。タイムライン310bは、さらに、現在レンダリングされている画像305の前、ほぼ同時に、およびその後に発生したビデオゲームの進行点でキャラクタ308をプレイしている友達F1によってゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像を含む。一実施形態では、スナップショット画像は、サムネイルで提示される。タイムライン320は、現在レンダリングされている画像305の前、ほぼ同時に、およびその後に発生したビデオゲームの進行点でキャラクタ309をプレイしている友達F2によってゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像(370a、370b、370c、370d、370e・・・)を含む。タイムライン330は、現在レンダリングされている画像305の前、ほぼ同時に、およびその後に発生したビデオゲームの進行点でキャラクタ303をプレイしている友達F3によってゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像を含む。
図4Bに示されるように、タイムライン320のスナップショット画像との相互作用がさらに説明され、したがって、タイムライン310bおよび330におけるスナップショット画像は、理解を容易にするためにラベル付けされていない。
【0105】
より具体的には、スナップショット画像は、サムネイルを介してタイムライン310b、320および330に提示される。そのため、サムネイルのサイズに応じて、レンダリング画像がより詳細を表示するには小さすぎることがある。ユーザは、拡大のために任意のタイムラインでスナップショットを選択することができる。
図4Aは、ユーザに関連するタイムラインにおけるスナップショット画像の選択を示しているが、
図4Bは、友達に対応するタイムラインのうちの1つにおける拡大のためのスナップショット画像の選択を示している。例えば、一実施形態では、ユーザは、タイムライン320内のスナップショット画像370dを提示するサムネイル上にカーソル490bを重ねることができる。タッチスクリーン上に表示されたスナップショット画像をタッチするなど、拡大のためのスナップショット画像の選択のための他の方法がサポートされる。拡大ウィンドウ460が生成され、選択されたサムネイルのほぼ同じ領域に表示される。ウィンドウ460は、レンダリングされたスナップショット画像370dを表示し、ウィンドウ460は、ユーザにスナップショット画像370dをより良く見せるのに十分なサイズ(例えば、対応するサムネイルよりも大きい)からなる。
【0106】
明確さと理解のために、ボックス465にスナップショット画像370dの拡大図が提示されている。しかしながら、一実施形態では、ウィンドウ460および/またはスナップショット画像370dをさらに選択することによって、ボックス465は、ウィンドウ460に提示されたものよりもさらに大きいスナップショット画像370dを示すウィンドウとして表示されることができる。前述したように、スナップショット画像370dは、友達F2のゲームプレイに関連付けられており、単なる岩の面をフリークライムしているキャラクタ309を示している。タイムライン320に提示されたスナップショット画像をスクロールして拡大画像を見ることによって、ユーザは、友達F2のゲームプレイをプレビューすることができる。そのようにして、タイムライン320に提示された選択されたスナップショット画像またはユーザによる対応するノードグラフ内のノード(さらに詳細に後述)のユーザによるさらなる選択は、ゲームプロセッサ210のジャンプ実行エンジン216が対応するスナップショットにアクセスし、選択されたスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、選択されたスナップショットに対応するビデオゲームにおける点から初めてビデオゲームを実行することを可能にする。
【0107】
図5Aは、ビデオゲームのゲームプレイのノードグラフ530の図であり、ノードグラフは、ユーザによるビデオゲームのゲームプレイ中に、
図3Bにおいて最初に紹介されたウィンドウ350b内のタイムライン310b、320および330とともに表示される。特に、タイムライン310bは、所定点でキャラクタ306をプレイしているユーザのゲームプレイのスナップショット画像、ならびに他のユーザ(例えば、キャラクタ308をプレイしている友達F1)のゲームプレイのスナップショット画像を示し、タイムライン320は、キャラクタ309をプレイしている友達F2によるゲームプレイのスナップショット画像を示し、タイムライン330は、キャラクタ303をプレイしている友達F3によるゲームプレイのスナップショット画像を示している。前述したように、各タイムライン内のスナップショット画像は、現在レンダリングされている画像305に関連して提示される(例えば、空白のサムネイル340cによって表されるように)。ウィンドウ300はまた、ユーザによるビデオゲームのゲームプレイの現在レンダリングされている画像305を示す。
【0108】
図5Aに示されるように、スナップショット画像360eは、タイムライン310bにおける拡大のために(例えば、対応するサムネイルの対話を介して)選択される。スナップショット画像360eは、現在レンダリングされている画像305の後(例えば、将来)に発生するゲームにおける所定点での友達F1のゲームプレイに関連付けられる。特に、一実施形態では、ユーザは、タイムライン310b内のスナップショット画像360eを提示するサムネイル上にカーソル590aを重ねることができる。タッチスクリーン上に表示されたスナップショット画像をタッチするなど、拡大のためのスナップショット画像の選択のための他の方法がサポートされる。前述したように、ウィンドウ410は、拡大されたスナップショット画像360eを示す。
【0109】
さらに、ノードグラフ530がウィンドウ510に提示される。一実施形態では、ノードグラフ530は、ユーザがビデオゲームを進行するにつれてキャラクタが選択することができる様々な経路に対応する複数のノードを含む。一実施形態では、ノードグラフ530は、
図5Bでさらに説明されるように、ビデオゲームの全てのノードを示すユニバーサルグラフとしてウィンドウ510に提示されることができる。一実施形態では、ノードグラフ530は、
図5Cに関連してさらに説明されるように、特に関心のあるノードを示すユニバーサルグラフのノードのサブセットを含むように提示されてもよい。例えば、ノードのサブセットは、1つ以上のタイムラインに表示されるスナップショット画像に対応することができる。
【0110】
ウィンドウ510は、右下隅に示されているが、ウィンドウ510は、ウィンドウ300内のどこにでも配置できることを理解されたい。さらに、ウィンドウ510は、見るのに適した情報を提供するのに十分な大きさとすることができる。さらなる選択は、ウィンドウ300内の拡大ウィンドウとして、またはフルスクリーン上にウィンドウ510を表示することができる。
【0111】
示されるように、ユーザが拡大のためにタイムライン310a内のスナップショット画像360eを選択することに応答して、ノードグラフ530内のノード572が自動的に強調表示されることができる(例えば、太字、拡大、着色など)。ノード572は、スナップショット画像360eの位置にほぼ対応し、スナップショット画像360eについてビデオゲームの世界内のコンテキストを与える。すなわち、ユーザは、タイムライン310b内のスナップショット画像360eの選択を通じてスナップショット画像360eに関心があることから、スナップショット画像360eのより大きなビューを示すウィンドウ410が提示され、ノード572がノードグラフ530において強調表示される。ノード572はまた、ユーザによるノードグラフ530内のノードの手動選択を通じて強調表示されてもよい。
【0112】
要約すると、ノードグラフ530は、ウィンドウ510内に自動的にまたはユーザ要求に応じて提示されてもよく、ノードグラフ530は、タイムライン310aに提示されるスナップショット画像に対応するノードのサブセットを含む。さらに、ノード572は、提示されて強調表示されることができ、ノード572は、スナップショット画像360eに対応するビデオゲームのゲームプレイにおける点のおおよその位置を示す。さらに、ノード372に対応するスナップショット画像360eは、ウィンドウ520に提示されてもよく、ウィンドウ520は、ウィンドウ410よりも大きく、スナップショット画像360eのさらに大きなビューを示してもよい。
【0113】
そのようにして、ユーザには、ビデオゲームの多次元ビューが提示される。例えば、ユーザには、レンダリング画像305を介して自己のゲームプレイの現在のビューが提示される。ユーザのゲームプレイ(例えば、レンダリング画像305およびユーザタイムライン内のスナップショット画像を介して)もまた、ビデオゲームにおける様々な進行点を通して他のユーザのゲームプレイのクイックプレビューを示す1人以上のユーザの1つ以上のタイムラインとともに提示される。スナップショット画像は、タイムライン内のスナップショット画像に関連付けられたビデオゲームを通る経路、またはビデオゲーム内の全ての可能な経路を示すノードグラフとともに提示されてもよい。
【0114】
図5Bは、本開示の一実施形態にかかる、ビデオゲームで利用可能な全ての可能な経路を示すユニバーサルノードグラフ550またはノードツリーの図である。ユニバーサルノードグラフ550は、
図5Aのウィンドウ510に表示されることができる。例えば、ビデオゲームは、ノード551によって示されるような開始点と、ノード552によって示されるような終了点とを含むことができる。1つの終了点が示されているが、一般にユニバーサルノードグラフは、ビデオゲームを終了するための1つ以上の選択肢を表す1つ以上の終了点を有することができる。さらに、ビデオゲームは、対応するユニバーサルノードグラフに表される1つ以上の開始点を有することができる。
【0115】
ユニバーサルノードグラフ550は、ユーザがビデオゲームを進行するにつれてキャラクタが選択することができる様々な論理経路(本明細書では「経路」とも呼ばれる)を定義する複数のノード(例えば、論理ノード)を含む。例えば、論理経路511は、ノード502および503の間に定義される。さらに、ユニバーサルノードグラフ550はまた、ノードのサブセットを含むことができる。例えば、ユニバーサルノードグラフ550のサブセットであるノードグラフ530は、
図5Bのタイムライン310bに表示されたスナップショット画像に対応するノードおよび経路を含む。ノードグラフ530もまた、
図5Aのウィンドウ510に示されている。
【0116】
複数の論理経路は、ユニバーサルグラフ550を介してノードからノードへと線形に進行するように構成されることができる。例えば、ユーザは、論理経路514および511に沿ってノード501から503の間で(例えば、ノード510からノード502へ、そしてノード503へ)ノードグラフ530を通って線形に移動する。すなわち、ノード501とノード503との間を移動するときに他の論理経路をとることはできない。
【0117】
さらに、複数の論理経路がノードからノードへと非線形に進行するように構成されることができる。例えば、ユーザは、論理経路511に沿ってノード503に到達すると、ノードグラフ550を通って非線形に移動する。特に、ノード503では2つの選択肢が利用可能であり、第1の選択肢では、キャラクタは経路512をとることができ、第2の選択肢では、キャラクタは経路513をとることができる。2つの異なる経路をとることから異なる結果が生じることがある。
【0118】
ビデオゲームの進行は、一般に、開始点551に関連付けられた時間またはマーク521で始まり、終了点552に関連付けられた時間またはマーク522で終わるユニバーサルタイムライン529によって定義されることができる。タイムライン529における時間の使用は、ビデオゲームを通して進行を示すことを意味し、必ずしもユーザがビデオゲームをプレイした時間の長さの尺度ではない。ユーザがユニバーサルノードグラフ530を介してノードからノードへ移動するにつれて、代表的な時間またはマークは、タイムライン529上に配置されることができる。例えば、タイムライン529において、ノード501はマーク523として表されることができ、ノード503はマーク524として表されることができる。進行は、タイムライン529に沿って左から右へと測定されることができる。例示として、ノード501は、ビデオゲームの進行においてノード503の前に発生する。したがって、ノード501を表すマーク523は、ノード503を表すマーク524の左側に表示される。さらに、進行は、前述したように、ユーザに関連付けられた様々なキャラクタ値を介してタイムライン529およびノードグラフ550に関連してさらに示されることができる。例えば、進行は、どの程度多くの可能なライフがキャラクタに利用可能であるか、またはどの程度多くの点数またはキャッシュをキャラクタが累積したかによって測定されることができる。
【0119】
図5Cは、本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショットに関連して生成されたスナップショットノードの階層を示す、
図5Aにおいて最初に紹介されたノードグラフ530の拡大図である。一実施形態では、ノードグラフ530は、ユーザによるビデオゲームのゲームプレイ中に1つ以上のタイムライン(例えばタイムライン310b、320、および330)とともに表示される。例えば、ノードグラフ530は、
図5Aのウィンドウ510内に表示されてもよく、またはさらに大きなウィンドウ内に表示されてもよい。例示のために、ウィンドウ510に表示されたノードグラフ530の拡大図が
図5Cに示される。ノードグラフ530内のスナップショット画像および対応するスナップショットノードを参照するためのウィンドウ350bの概要が
図5Cに提示されている。
【0120】
特に、スナップショットノードは、スナップショットがキャプチャされたビデオゲームのゲームプレイにおける点に対応する。一般に、スナップショットは、ユニバーサルノードグラフ550のノードでキャプチャされてもよい。したがって、スナップショットノードは、ユニバーサルノードグラフ550内のノードと整列してもよい。しかしながら、スナップショットがユニバーサルグラフの2つのノード間で(例えば、論理経路の途中で)キャプチャされたときなど、いくつかのスナップショットノードは、ユニバーサルグラフ550内のノードと整列しないことがある。例えば、スナップショットノード561は、ユニバーサルノードグラフ550内の2つのノード(ノード560および562に対応する)間でキャプチャされてもよい。
【0121】
ノードグラフ530は、対応するユーザのゲームプレイ中にキャラクタがたどった様々な実際の経路を定義する複数のスナップショットノードを含む。例えば、経路579は、スナップショットノード560および561の間に定義される。経路579は、友達F1のゲームプレイと同様に、ユーザのゲームプレイにおいてもとられるように示されている。ノードグラフ530は、1人以上のユーザのゲームプレイで定義されるように、線形経路および非線形経路の一方または双方を示してもよい。
【0122】
一実施形態では、ノードグラフ530は、ウィンドウ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つの点から他の点へナビゲートすることができる。一実施形態では、スナップショットノードが
図5Cに示されているが、ノードグラフ530は、ユニバーサルノードグラフ550によって定義されるように論理経路を定義するノードを含むことができる。
【0123】
より具体的には、ユーザがキャラクタ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によって定義された経路に沿って移動していることを示している。
【0124】
ビデオゲームの進行において、ユーザは、現在レンダリングされている画像305に関連するビデオゲームにおける所定点に対応するが、スナップショットノード562に戻ってきたスナップショットノード562を越えて発生するまたはその将来に発生する経路をたどっている。例えば、スナップショットノード562を越えてスナップショットノード564で終わる第1の経路は、行き止まりに到達したかもしれない。また、スナップショットノード562を越えてノード569で終わる第2の経路は、ユーザにとって不満足なものである可能性がある。ユーザに関連付けられている現在レンダリングされている画像305を超えて発生しているスナップショットノードに対応するスナップショット画像は、タイムライン310bには示されていないが、他の実施形態では示されてもよい。
【0125】
ユーザは、この領域でビデオゲームの刺激的な部分(熊に遭遇すること)についての噂を聞くことがあるため、ゲーム進行においてノード562に戻ったが、これまでのところアクションを見逃している。ユーザは、刺激的な部分に何らかの形でノード562を介して到達していると考えている。本開示の実施形態は、他のユーザのゲームプレイをプレビューし、ビデオゲームの刺激的な部分に到達するためにビデオゲームにおいてとるための潜在的な経路をレイアウトすることによって、ユーザがビデオゲームを通る代替経路を発見する方法を提供する。例えば、ユーザは、タイムライン310bにおいてキャラクタ308をプレイしている友達F1のスナップショット画像をプレビューし、スナップショット画像360eに対応するスナップショットノード507に関連して熊との遭遇が発生することを発見することができる。参考のために、スナップショット画像360eがボックス509に示されている。タイムラインで提示されたスナップショット画像、および/またはノードグラフを導入しなければ、ユーザは、これらの関心のある領域をプレビューおよび/または発見するのに苦労するであろう。
【0126】
特に、ユーザは、タイムライン310b内のスナップショット画像を見ることによってスナップショット画像360eを発見することができ、またはノードグラフ530を探索することによってそれを発見することができる。例えば、タグ507は、ユーザの注意を引くことができる
図5Cのノードグラフ530においてスナップショットノード572の隣に示されている。ノードグラフ530内のノード572と対話することによって、
図5Aのウィンドウ520のように、スナップショット画像360eのビューがユーザに提示されることができる。また、ノードグラフ530内のスナップショットノード572を選択することによって、注意のためにタイムライン310b内の対応するスナップショット画像360eが強調表示(例えば太字)されることができる。そのようにして、ユーザは、対応するサムネイルをロールオーバーしてスナップショット画像360eの拡大版を見ることができる。前述の通りである。他の実装では、ノードグラフ530がそれ自体の支配的なウィンドウ(例えば、フルスクリーン、またはオーバーレイウィンドウ300)に提示されている場合、スナップショットノード572との対話は、スナップショット画像360eを他のウィンドウ(図示せず)に表示することができる。
【0127】
友達F1のゲームプレイおよびノードグラフ530をプレビューした後、ユーザは、スナップショット画像360eに対応するビデオゲーム、より具体的には友達F1のゲームプレイをさらに探索したいと思うことがある。前述したように、本開示の実施形態は、ユーザが友達F1のゲームプレイにジャンプすることを可能にする。特に、タイムライン310bまたはノードグラフ53を介したスナップショット画像360eのユーザによるさらなる選択は、ゲームプロセッサ210のジャンプ実行エンジン216がスナップショット画像360eに対応するスナップショットにアクセスし、スナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、スナップショットおよびそのスナップショット画像360eに対応するビデオゲームにおける所定点(ここではジャンプ点として特定される)から始めてビデオゲームを実行することを可能にする。そのようにして、ユーザは、友達F1のゲームプレイを通してノード507(熊に遭遇する)においてビデオゲームを完全に体験することができる。すなわち、ユーザは、ジャンプノード572において友達F1のキャラクタ308にジャンプし、(スナップショット画像360eに対応する)ジャンプノード572に対応するビデオゲームの時点で始まる友達F1のゲームプレイのインスタンス化をプレイする。したがって、ユーザは、最も刺激的な部分でゲームプレイにジャンプすることができる。
【0128】
ユーザは、友達F1のゲームプレイを体験した後に、友達F1のゲームプレイによって以前にキャプチャされたのと同じスナップショットノード572(熊に遭遇)へのナビゲートを試みることを決定してもよい。ノードグラフ530は、現在レンダリングされている画像305に関連付けられているノード562であるユーザの現在位置からスナップショットノード572に到達するために友達F1がたどる経路へのビューを提供する。例えば、ノードグラフは、ノード562とスナップショットノード572との間の移動がスナップショットノード565および570を介して可能であることを示す。
【0129】
図6Aは、本開示の一実施形態にかかる、選択されたスナップショットノード(例えば、スナップショット画像360eに関連付けられたスナップショットノード572)と密接に且つ線形的に整列したスナップショットノードのクラスタの図であり、スナップショットノードは、タイムライン310aまたはノードグラフ530を通じて選択されることができる。特に、タイムライン310aは、(空白のサムネイル340cによって表されるように)現在レンダリングされている画像305の前に発生したビデオゲームを介した進行点におけるユーザによるゲームプレイのスナップショット画像(340a、340b、・・・)を含む。タイムライン310aは、さらに、前述したように、友達F1によるゲームプレイ中にキャプチャされたスナップショットに対応するスナップショット画像(360d、360e、360f、・・・)を含む。さらに、スナップショット画像のそれぞれは、ノードグラフ530に提示されるものなどのスナップショットノードに対応する。
【0130】
タイムライン310aは、ユーザおよび友達F1のゲームプレイ中にキャプチャされた複数のスナップショットから選択されたスナップショット画像を示してもよい。友達F1のスナップショットおよびスナップショット画像は、粗いおよびより高い解像度を有するスナップショット画像の提示を説明するために使用される。例示の目的のために、友達F1のゲームプレイ中に、100個のスナップショットがキャプチャされ、それらがキャプチャされた順に1から100まで番号を付けることができる。タイムライン310aは、キャプチャされたスナップショットに対応する全てのスナップショット画像を表示するのに十分なスペースを持たないことがある。したがって、スナップショット画像のサブセットのみがタイムライン310に提示される。さらに、タイムライン310a内に並べて提示されたスナップショット画像は、連続的におよび/または順番にキャプチャされないことがある。例えば、
図6Aのタイムライン310aに示されるように、スナップショット画像360eは、キャプチャされた順序で50の番号が付けられ、すぐ右側のスナップショット画像は、60の番号が付けられたスナップショット画像360fである。そのため、スナップショット画像360eとスナップショット画像360fとの間に9つのスナップショット画像がキャプチャされたが、タイムライン310aには示されていない。
【0131】
一実施形態では、キャプチャされたスナップショットに基づいて、より高解像度のスナップショット画像が生成されて提示されることができる。特に、タイムライン310aまたはノードグラフ530を介した画像360eなどのスナップショット画像のさらなる選択は、より高い解像度でのスナップショット画像の提示を可能にするであろう。さらに、一実施形態では、スナップショット画像は、ゲームプレイ中にユーザ(例えば、友達F1)がたどった経路を示すノードグラフ/ツリー構成で提示される。すなわち、各スナップショット画像は、ノードを表し、スナップショット画像は、ノードグラフ構成で提示される。例えば、ウィンドウは、それらの対応する画像を介してスナップショットノードを表示することができ、スナップショットノードは、選択されたスナップショット画像360eに対応するスナップショットの前および/または後に連続的にキャプチャされる。スナップショット画像360eは、前述したように、友達F1のゲームプレイを開始するためにユーザによって選択されたジャンプ点に対応する。ジャンプ点として選択される前後に、ユーザは、スナップショット画像360eに関連する様々なスナップショット画像を見たいと思うことがある。
【0132】
図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のゲームプレイにおける動作をより高い解像度で見ることができる。
【0133】
図6Bは、本開示の一実施形態にかかる、選択されたスナップショットノード(例えば、スナップショット画像360eに対応するスナップショットノード572)と密接に且つ非線形に整列されたスナップショットノードのクラスタの図であり、スナップショットノードは、
図6Aに関連して前述したように、タイムライン310aまたはノードグラフ530を通じて選択されることができる。
図6Aは、スナップショット画像360eに対応するジャンプ点JPの周囲のビデオゲームの線形進行を示しているが、
図6Bは、JPの周囲のビデオゲームの非線形進行を示している。
【0134】
例えば、スナップショット画像は、ゲームプレイ中に友達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から生じる他の選択は、スナップショット画像360eおよび順序番号50Aに対応するスナップショットノードJPにルーティングする。この経路は、(スナップショット画像615および順序番号51に関連する)連続番号のスナップショットJP+1および(スナップショット画像620および順序番号52に関連する)スナップショットJP+2を通って続く。
【0135】
図6C~Fは、本開示の一実施形態にかかる、選択されたスナップショットノードと密接に位置合わせされ且つ
図6A~Bに関連して説明されたスナップショットノードのクラスタに対応するスナップショット画像の図である。例えば、
図6Cは、スナップショット画像610を示しており、洞窟を出るときに最初に熊に遭遇する友達F1のゲームプレイで使用されるキャラクタ308を示している。スナップショット画像610は、順序番号49のスナップショットノードJP-1に対応する。
図6Dは、スナップショット画像360e(スナップショットノードJPおよび順序番号50に関連する)を示しており、熊と密接に接触しているキャラクタ308を示している。キャラクタ308は、おそらくキャラクタ308に利用可能な唯一の道具および/または武器であるコイル状ロープを取り扱うように示されている。
図6Eは、スナップショット画像615(スナップショットノードJP+1および順序番号51に関連する)を示しており、ロープを使用して熊の各脚を木に結び付けることによってキャラクタ308が熊を抑制したことを示している。
図6Fは、スナップショット画像620(スナップショットノードJP+2および順序番号52に関連する)を示しており、熊に対する彼女の勝利の成果を楽しんでいるキャラクタ308を示している:武器および他の報酬アイテム(例えば、コイン、貴石など)がとるために利用可能である。
【0136】
図7は、本開示の一実施形態にかかる、ビデオゲームのゲームプレイ中にキャプチャされたスナップショット、およびそれらのスナップショットのそれぞれをデータストア750の別個のマスタファイルとして記憶することの図である。これらのマスタファイルは、業界で一般的であるように、ユーザがビデオゲームを進行するにつれて自動的に消去されたり上書きされたりすることはない。そのようにして、各スナップショットに関連する情報およびメタデータは、(例えば、タイムラインに)スナップショット画像、ノードグラフを提示し、同じまたは他のユーザのゲームプレイにおけるジャンプ点へのジャンプを可能にするために、いつでも容易にアクセスされることができる。
【0137】
例えば、特定のユーザのゲームプレイに関して複数のスナップショットがキャプチャされる。スナップショットは、キャプチャの順序で連続的に番号付けされる(すなわち、1-N)。
図7に示すように、少なくともスナップショット711(順序20)、スナップショット712(順序31)、スナップショット713(順序32)、およびスナップショット714(順序33)がキャプチャされる。
【0138】
各スナップショットは、スナップショットに対応するビデオゲームにおける所定点から始まるビデオゲームのインスタンスをロードして実行するのに十分な情報および/またはメタデータを含む。例えば、各スナップショットは、前述したように、データベース145に記憶されたゲーム状態データ、データベース146に記憶されたスナップショット画像データ、データベース143に記憶されたランダムシードデータ、およびデータベース141に記憶されたユーザ保存データを少なくとも含む。一実施形態では、メタデータは、2つの連続して順序付けられたスナップショットで、およびその間でビデオゲームのインスタンスを推進するために使用される入力コマンドを含む。各スナップショットは、データストア750内の対応するマスタファイルに記憶され、特定のスナップショットに対応するマスタファイルは、関連アクセスのためのこれらのデータベースのそれぞれへのポインタを含むことができる。示されるように、スナップショット711は、マスタファイル751に記憶され、スナップショット712は、マスタファイル752に記憶され、スナップショット713は、マスタファイル753に記憶され、スナップショット714は、マスタファイル754に記憶される。
【0139】
図8は、本開示の一実施形態にかかる、同じまたは他のユーザによるビデオゲームの他のゲームプレイ中にキャプチャされたスナップショットに基づくそのユーザによる他のジャンプゲームプレイへの間欠的なジャンプを含む、ビデオゲームのユーザのゲームプレイの複数のセグメントの図である。例えば、
図3~
図6に関連して前述したように、現在レンダリングされている画像305がウィンドウ300上に表示されているキャラクタ306を用いてゲームをプレイするユーザは、スナップショット画像360eによって定義されるジャンプ点(JP)において(キャラクタ308によって)友達F1のゲームプレイにジャンプすることを選択することができる。タイムライン310aおよび/または310bは、ユーザにスナップショット画像360eのプレビューを提供する。さらに、スナップショット画像360eは、前述したように(例えば、強調表示などによって)スナップショットノード572におけるその対応する位置に関連付けられることができるため、ノードグラフ530は、ビデオゲーム内のスナップショット画像にコンテキストを与える。ユーザによる友達F1およびキャラクタ308のゲームプレイへのジャンプの開始は、友達F1のオリジナルゲームプレイ中にスナップショットノード572でキャプチャされたスナップショットに基づいて可能にされる。ジャンプの開始は、タイムライン310aまたは310bにおけるスナップショット画像360eのさらなる選択を通して、またはノードグラフ530におけるノード572の選択を通して可能にされることができる。同じまたは他のユーザのゲームプレイへのジャンプの開始のサポートは、任意の手段または方法(例えば、ジャンプ選択ウィンドウなど)を介して達成されることができる。
【0140】
一実施形態では、ジャンプゲームプレイにおいて複数のスナップショットがキャプチャされる。さらに、ジャンプゲームプレイのビデオ記録は、後のアクセスのためにキャプチャされて記憶されてもよい。そのようにして、任意のユーザは、ジャンプゲームプレイにおける任意のスナップショットを介してジャンプゲームプレイをプレイすることができる。一実施形態では、ジャンプゲームプレイのスナップショット画像は、タイムラインに配置され、それを通してジャンプゲームプレイが前述したようにインスタンス化されてもよい。
【0141】
ユーザとビデオゲームとの対話は、ユーザのゲームプレイ830のセグメントに関連して説明されることができる。示されるように、ユーザのゲームプレイ830は、第1のセグメント831と第2のセグメント832とを含む。特に、ユーザのゲームプレイ830の第1のセグメント831は、ユーザとビデオゲームとの現在のまたは最初の対話を定義する。したがって、
図3Aの現在レンダリングされている画像305は、第1のセグメント831と関連付けられてもよい。例示のために、スナップショットノードグラフ810は、
図5Cに関連して前述したノードグラフ530の一部を示している。ユーザのゲームプレイ830の第1のセグメント831内でキャラクタ306がたどる経路は、破線811で示されており、スナップショットノード560、561、および562を含む。キャラクタ306が1つの経路812を介してスナップショットノード562のさらに右側に(例えば、さらに進行して)ノード563および564まで、および第2の経路813を介してノード565および566まで進んでいることをスナップショットノードグラフ810が示しているとしても、現在レンダリングされている画像305は、スナップショットノード562に関連付けられ、説明および明確さのために第1のセグメント831の終わりを示している。キャラクタ306がたどる経路のこの部分(スナップショットノード562で終わる)もまた、ノードグラフ820において繰り返され、これは、キャラクタ306を使用するユーザの第1のセグメント831の終わりまでのゲームプレイを示している。
【0142】
スナップショットノード562において、ユーザは、前述したように、ビデオゲーム内の他の点を探索し、友達F1のゲームプレイにジャンプすることを選択することができる(例えば、スナップショット画像360eのさらなる選択)。友達F1のゲームプレイは、スナップショットノードグラフ810の太実線899によって示されている。この時点で、ユーザのゲームプレイ830の第1のセグメント831は一時停止され、ユーザは、スナップショットノード572に対応する点で友達F1のゲームプレイにジャンプする。説明のために、ジャンプゲームプレイは、キャラクタが熊と密接に関わっている点で始まる。特に、ユーザのゲームプレイ830を実行するビデオゲームのインスタンスは一時停止され(例えば、第1のセグメント831の終わり)、ジャンプ点で始まる友達F1のジャンプゲームプレイを実行するビデオゲームのインスタンス(スナップショットノード572)は、スナップショットノード572でキャプチャされた対応するスナップショットに基づいてインスタンス化される。ノード572へのジャンプの表現は、曲線矢印891によって示されている。ジャンプゲームプレイは、ジャンプセグメント840によって定義される。
【0143】
他の実施形態では、ユーザのゲームプレイ830は、ジャンプゲームプレイを始める前に、第1のセグメント831の終わりに保存されて終了する。そのようにして、ユーザは、将来ビデオゲームに戻り、スナップショットノード562に対応する点(例えば、第1のセグメント831の終わり)から再開することができる。すなわち、ユーザは、一時停止されたゲームを効果的に再開することができる。
【0144】
一実施形態では、ユーザのゲームプレイ830を実行するビデオゲームのインスタンスは、ユーザが対話するジャンプゲームプレイを実行するビデオゲームのインスタンスとは別であり、ジャンプゲームプレイは、友達F1のオリジナルゲームプレイに基づいている。説明のために、スナップショットノードグラフ850は、ユーザによってプレイされたジャンプゲームプレイのジャンプセグメント840においてキャラクタ308がたどった経路を示し、ジャンプゲームプレイにおけるキャラクタ308は、友達F1のゲームプレイによってもともと作成されて定義された。ジャンプゲームプレイでたどった経路は、太破線896によって示されている。
【0145】
ノードグラフ850に示すように、ジャンプゲームプレイにおいてキャラクタ308がたどる経路は、スナップショットノード572から始まり、ノード851、852、および終了ノード859に連続して続く。終了ノード859は、ジャンプゲームプレイを実行するビデオゲームのインスタンスの終了を示している。破線896によって示すように、ジャンプゲームプレイにおいてキャラクタ308がたどる経路(ノード572、851、852、および859を含む)は、ノードグラフ810に示される友達F1のゲームプレイにおいてキャラクタ308がたどった経路897(ノード572、573、および574を含む)とは異なることに留意することが重要である。すなわち、ユーザがジャンプゲームプレイを指示するために新たな入力コマンドを提供していることから、ユーザによって実行されるジャンプゲームプレイは、以前に記憶された友達F1のゲームプレイとは異なる。例えば、ジャンプゲームプレイでは、ユーザがこの時点でゲームを迅速にプレビューして自己のゲームプレイ830においてビデオゲームのこの部分をプレイするかどうかを決定することができることから、熊との遭遇が不成功であることが起こり得る。一方、友達F1のゲームプレイは、熊との成功した遭遇を示すことができる。
【0146】
一実施形態では、ジャンプゲームプレイ中に、スナップショットは、ジャンプセグメント840に示される各ノード(例えば、ノード572、851、852、および859)でキャプチャされてもよい。ジャンプゲームプレイおよびそれに関連するスナップショットは、後でアクセスするために記憶されることができる。例えば、ユーザは、ユーザによって作成されてビデオゲームに関連付けられたジャンプゲームプレイを見直してインスタンス化したいと思うことがある。他の実施形態では、ユーザは、他のビデオゲームに関連するジャンプゲームプレイを見直してインスタンス化することを望むことがあり、ジャンプゲームプレイは、ユーザまたは他のユーザによって作成された。
【0147】
ジャンプゲームプレイの実行後、ユーザのゲームプレイ830を再開することができる。ユーザは、ここで友達F1のゲームプレイをプレビューしており、ジャンプ点に関連するスナップショットノード572に自己のキャラクタ306を到達させることを望むことがある。そのようにして、ユーザのゲームプレイ830は、ユーザのゲームプレイにおけるキャラクタが同じ熊との遭遇を有するようにジャンプ点に向けられた経路を含むことができる。
【0148】
スナップショットノードグラフ820は、現在再開されたユーザのゲームプレイ830内のキャラクタがたどる経路を示す。ゲームプレイ830の再開は、第2のセグメント832によって定義され、再開されたゲームプレイは、太破線809によって定義される。したがって、ユーザによるゲームプレイ830の全体は、第1のセグメント8310(破線811)および第2のセグメント832(太破線809)によって示されている。一実施形態では、ゲームプレイ830の第2のセグメント832は、一時停止されているビデオゲームのインスタンスを継続する。他の実施形態では、ゲームプレイ830の第2のセグメント832は、第1のセグメント831が終了したことから、スナップショット562に関連するビデオゲームの点で始まるビデオゲームの新たなインスタンスで実行される。第2のセグメント832は、スナップショットノード562から始まり、スナップショットノード821、822、823、824、および829に連続して続く。
【0149】
ノードグラフ820では、スナップショットノード823は、ジャンプ点に関連するスナップショットノード572におおよそ対応する。例えば、ユーザは、自己のゲームプレイ830で熊に遭遇したいと思う。特に、ユーザのゲームプレイにおけるスナップショットノード572へのナビゲーションは、スナップショットノードグラフ530および/またはユニバーサルノードグラフ550を介してユーザによって可能とされる。特に、ユーザは、スナップショットノードグラフ530を見直すことによって、他のユーザ(例えば友達F1)が遭遇するスナップショットノード562とスナップショットノード572との間で利用することができる可能な経路を発見することができる。さらに、ユーザは、ユニバーサルノードグラフ550を見直すことによって、スナップショットノード562とスナップショットノード572との間で利用可能な一般的な論理経路を発見することができる。そのようにして、ユーザは、(例えば、ノード821および822を介して)スナップショットノード823までナビゲートして熊に遭遇することができる。ノード821および822は、友達F1のゲームプレイ中にもともとキャプチャされたスナップショットノード565および570とおおよそ整列するが、同一ではない場合があることに留意することが重要である。
【0150】
スナップショットノード823、824、および829などは、第2のセグメント832において、ユーザのゲームプレイ830でとられた経路を示しており、ここでは、キャラクタ306は、熊に遭遇して関わっている。スナップショットノード823(ノード824、829などを含む)で熊と最初に遭遇した後にとられた経路は、ジャンプゲームの経路(例えば、ノード572、851、852、および859)と同一ではないことがあり、友達F1のゲームプレイにおける経路(例えば、ノード572、573、および574)と同一ないこともある。これは、ユーザのゲームプレイ830がビデオゲームを駆動するそれ自体の固有の入力コマンドを有するためである。
【0151】
ネットワークを介して通信するゲームサーバおよびクライアント装置の様々なモジュールの詳細な説明とともに、本開示の一実施形態にかかる、ゲームネットワークを介して実行されるビデオゲームのゲーム世界をナビゲートする方法が
図9のフロー
図900に関連して説明される。フロー
図900は、クライアント装置においてネットワークを介して表示される情報を生成する目的でゲームサーバ側において行われる動作のプロセスおよびデータフローを示している。
【0152】
本方法は、動作910で始まり、複数のユーザに関連して実行されたビデオゲームの複数のインスタンスから生成された複数のスナップショットをキャプチャすることを含む。特に、ビデオゲームのインスタンスは、
図1の1つ以上のゲームサーバ205の1つ以上のゲームプロセッサ210によって実行されている。ビデオゲームの各インスタンスが実行されているとき、1つ以上のスナップショットがキャプチャされ、スナップショットは、前述したように、そのスナップショットに対応する前記ビデオゲームにおける所定点から始まるビデオゲームのインスタンスの実行を可能にする。
【0153】
特に、スナップショットは、対応するユーザのゲームプレイに関連して実行されるビデオゲームのインスタンスによって生成されるレンダリング画像を含むスナップショット画像を含む。レンダリング画像は、ビデオゲームにおける所定点に対応するビデオゲームのシーンを示し、その点は、ビデオゲームを通じたユーザのゲームプレイにおける進行を示す。
【0154】
さらに、スナップショットはまた、前記ビデオゲームにおける所定点に対応する環境の生成を可能にするゲーム状態データも含む。すなわち、スナップショットに基づいて、対応するシーンおよび環境が生成され、キャラクタは、ユーザのゲームプレイを通じて環境と対話するように指示される。
【0155】
さらに、スナップショットは、前述したように、シーンおよび環境に追加の特徴を提供するランダムシードデータを含む。例えば、クラウド構成および1つ以上の一般的なキャラクタの動きは、ユーザのゲームプレイに関連するシーンおよび環境への包含のために一意に生成されることができる。したがって、クラウド構成および1つ以上の一般的なキャラクタの動きは、ビデオゲームのインスタンスごとに異なることがある。
【0156】
また、スナップショットは、対応するユーザのゲームプレイのためのキャラクタの生成を可能にするユーザ保存データを含む。キャラクタは、スナップショットがキャプチャされたビデオゲームにおける所定点に対応する第1の状態を有する。例えば、第1の状態は、キャラクタの外観と種類、キャラクタが着用する服装、キャラクタの達成レベル、キャラクタが利用できる武器、その時点でのキャラクタのライフ状態などを定義する。
【0157】
動作920において、本方法は、ビデオゲームをプレイしている第1のユーザの第1のタイムラインを表示するために生成することを含む。第1のタイムラインは、ビデオゲームを通じて進行している少なくとも1人のユーザ(第1のユーザおよび/または他のユーザ)のスナップショット画像を含む。タイムライン内のスナップショット画像は、第1のユーザに関連して実行されるビデオゲームの第1のインスタンスの現在レンダリングされている画像に関連して表示される。各スナップショット画像は、対応するスナップショットと相互参照されることができる。現在レンダリングされている画像は、第1のユーザによるビデオゲームの現在の進行点に関連付けられる。
【0158】
動作930において、本方法は、第1のタイムライン内に表示するために、第1のユーザに関連する複数の第1のスナップショット画像を含む複数の第1のサムネイルを生成することを含む。すなわち、第1のサムネイルは、第1のユーザのビデオゲームの進行を示している。特に、複数の第1のスナップショットは、現在レンダリングされている画像と比較して第1のユーザの過去の進行を示す少なくとも1つのレンダリング画像を含む。
【0159】
動作940において、本方法は、第2のユーザに関連する複数の第2のスナップショット画像を含む複数の第2のサムネイルを第1のタイムラインに表示するために生成することを含む。すなわち、第2のサムネイルは、第2のユーザのビデオゲームによる進行を示す。特に、複数の第2のスナップショット画像は、現在レンダリングされている画像の後のビデオゲームにおける所定点における第2のユーザの将来の進行を示す少なくとも1つのレンダリング画像を含む。
【0160】
他の実装形態では、複数の第2のスナップショット画像は、第2のユーザの過去および/または現在の進行を示す。例えば、第2のスナップショットは、第1のユーザのクライアント装置に表示するために生成された現在レンダリングされている画像の前のビデオゲームにおける所定点における第2のユーザの進行を示す少なくとも1つのレンダリング画像を含む。
【0161】
さらに他の実施形態では、クライアント装置で表示するために追加のタイムラインを生成することができる。例えば、第3のユーザの第2のタイムラインが表示のために生成される。第2のタイムラインは、第3のユーザの複数の第3のスナップショット画像を含む。第2のタイムラインは、第1のユーザのゲームプレイに関連付けられている現在レンダリングされている画像の前後のビデオゲームの複数の点におけるビデオゲームのゲームプレイ中の第3のユーザの進行を示す複数のレンダリング画像を含む。
【0162】
前述したように、選択されたスナップショット画像は、ゲームプロセッサ210のジャンプ実行エンジン216がスナップショット画像に対応するスナップショットにアクセスし、そのスナップショットに基づいてビデオゲームの他のインスタンスをインスタンス化し、そのスナップショットに対応するビデオゲームにおける所定点(ここでは、ジャンプ点として特定される)から始めてビデオゲームを実行することを可能にする。例えば、ゲームプロセッサ210は、第1のタイムライン内の複数の第2のスナップショットからの選択されたスナップショット画像の第1のユーザによる選択を受信し、選択されたスナップショット画像は、第2のユーザのゲームプレイに関連付けられる。さらに、ゲームプロセッサは、第1のユーザのゲームプレイに関連して実行されたビデオゲームの第1のインスタンスの実行を、選択されたスナップショット画像に関連したビデオゲーム内のジャンプ点にジャンプするように構成される。一実装では、ビデオゲームの第1のインスタンスは、一時停止および/または終了し、ビデオゲームの他のインスタンスであるジャンプゲームは、選択されたスナップショット画像のスナップショットに基づいてインスタンス化される。
【0163】
そのようにして、第1のユーザは、第2のユーザのゲームプレイにジャンプすることができる。例えば、第1のユーザは、ジャンプゲームにおいて第2のユーザのゲームプレイに使用されるキャラクタを指示することができる。選択されたスナップショット画像の対応するスナップショットは、第2ユーザのゲームプレイに使用され、ジャンプゲームにおいて第1ユーザのジャンプゲームプレイにも使用されるキャラクタの生成を可能にする第2のユーザ保存データを含む。第2のユーザ保存データおよび第2のキャラクタは、第2のユーザのゲームプレイに由来する。したがって、第1のユーザは、ジャンプゲームの実行中にジャンプゲームプレイを作成する。
【0164】
第1のユーザがジャンプゲームを終了した後、ビデオゲームの第1のインスタンスが再開されてもよい。すなわち、ジャンプゲームを実行しているビデオゲームの第2インスタンスが終了し、第1ユーザのゲームプレイに関連するビデオゲームの第1インスタンスが再開される。そのようにして、第1のユーザは、ビデオゲームの自己のゲームプレイを再開することができる。
【0165】
第1のユーザはまた、第1のユーザの以前のゲームプレイにおいてスナップショット画像を選択することができる。例えば、ゲームプロセッサは、以前のゲームプレイに関連した複数の第1のスナップショット画像の中から選択されたスナップショット画像の選択を受信するように構成されてもよい。ビデオゲームの第1のインスタンスの実行は、選択されたスナップショット画像に関連するビデオゲーム内のジャンプ点にジャンプされる。一実装では、ジャンプは、選択されたスナップショット画像に対応するスナップショットに基づいてビデオゲームの他のインスタンスを介して可能にされる。他の実装では、ジャンプは、ビデオゲームの第1のインスタンスを介して可能にされる。
【0166】
さらに、ノードグラフは、クライアント装置における表示のために生成されてもよい。ノードグラフは、前述したように、タイムラインに表示されたスナップショット画像に対応する複数のスナップショットノードを含む。複数のスナップショットノードは、複数の経路を定義し、経路およびノードは、第1のユーザおよび第2のユーザのゲームプレイに関連付けられる。ノードグラフの各ノードは、対応するスナップショットに関連付けられる。
【0167】
さらに、ノードグラフは、第1のユーザによる同じまたは他のユーザのゲームプレイへのジャンプを可能にすることができる。例えば、ゲームプロセッサは、ノードグラフ内の選択されたスナップショットノードの選択を受信するように構成されている。スナップショットノードは、対応するスナップショットに関連付けられる。選択されたスナップショットノードに対応する選択されたスナップショット画像は、クライアント装置に表示するために必要に応じて生成されてもよい。特に、選択されたスナップショットノードおよび/または対応するスナップショット画像の選択は、選択されたノードに関連するビデオゲームにおけるジャンプ点への第1のユーザのゲームプレイに関連して実行されるビデオゲームの第1のインスタンスの実行のジャンプを可能にする。
【0168】
[ビデオ記録によるゲームプレイアクセス]
一般的に言えば、本開示の様々な実施形態は、特にクラウドベースのゲームシステム上で実行されたときに、記憶されたゲームプレイのストリーミングビデオ記録を介してゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを提供するシステムおよび方法を説明する。ビデオ記録は、ゲームプレイ中にもともとキャプチャされた複数のスナップショットを含むかまたは参照し、スナップショットは、スナップショットキャプチャに対応する時点でゲームアプリケーションのインスタンスのインスタンス化を可能にするメタデータおよび/または情報を含む。スナップショットは、要求ユーザが記憶されたゲームプレイを生成するプレイヤではない場合であっても、任意の要求ユーザがゲームアプリケーションのインスタンスをインスタンス化して指示することを可能にする。ビデオ記録は、記憶されたゲームプレイの1つ以上のスナップショット画像を含むタイムラインを通じて選択可能であり、各スナップショット画像は、スナップショットに対応し、スナップショット画像は、閲覧者にゲームアプリケーションのプレイヤの進行の感覚を与える方法で表示される。タイムラインは、ユーザがゲームアプリケーションをプレイしているときに提示されてもよく、それによって他のプレイヤのゲームプレイをプレビューすることによってユーザのゲームプレイにおける可能性の感覚をユーザに与える。ストリーミングビデオ記録におけるビデオフレームの選択は、ジャンプ点を特定し、選択されたビデオフレームは、ジャンプゲームプレイをインスタンス化するために使用される対応するスナップショットと関連付けられる。選択されたビデオフレームは、スナップショットに対応していなくてもよく、1つ以上のスナップショットに、またはその近くに、あるいはその間に配置されてもよい。ジャンプゲームプレイは、プレイヤのゲームプレイを指示するために以前に使用された保存された入力コマンドを使用してジャンプ点に到達するまでプレイヤのゲームプレイを再生するために自動的に実行され、その後に、ジャンプゲームプレイは、要求ユーザにとってライブになる(すなわち、ジャンプゲームプレイは、ユーザ入力コマンドによって指示される)。
【0169】
ビデオ記録を介してゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを提供する本開示の実施形態は、前述した
図1~
図2のシステム内で実行されることができる。
【0170】
図10は、本開示の一実施形態にかかる、システムによってプレイヤのゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加している任意のプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする、クライアント装置にストリーミングされるビデオ記録を介したゲームプレイアクセスに使用されるシステムの構成要素を示している。例えば、いくつかの実施形態では、ストリーミングビデオ記録を介したゲームプレイアクセスに使用される構成要素は、
図1において以前に紹介したゲームサーバ205のゲームプロセッサ210内に含まれてもよい。さらに、他の実施形態では、ゲームサーバ205は、GCS201がビデオ記録を介してゲームプレイアクセスを提供するように構成可能であるように、
図2のゲームクラウドシステム(GCS)201内に含まれる。
【0171】
特に、ゲームプロセッサ210は、ゲームアプリケーションに参加しているプレイヤの以前のゲームプレイ中にキャプチャされたスナップショットに基づいてゲームアプリケーションのインスタンスをインスタンス化するように構成された様々な構成要素を含む。ゲームプロセッサ210は、先に
図1において紹介されており、ゲーム実行エンジン211、スナップショットジェネレータ212、タイムラインジェネレータ213、ノードグラフジェネレータ214、AIオーバーレイモジュール215、およびジャンプゲーム実行エンジン216を含んでいた。さらに、
図10に示すように、ゲームプロセッサ210は、ビデオ記録をクライアント装置にストリーミングするように構成されたビデオプレイヤ1010と、再生エンジン1015と、ジャンプゲーム入力マネージャ1020と、再生開始点セレクタ1025と、ゴーストエンジン1030と、ガイドエンジン1035とをさらに含む。単独または組み合わせて採用されるゲームプロセッサ210の1つ以上の構成要素は、記憶されたゲームプレイのストリーミングビデオ記録を介してゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにジャンプすることを提供するように構成可能である。さらに、本開示の他の実施形態では、ゲームプロセッサ210の1つ以上の構成要素は、GCS201などのクラウドベースのゲームシステム内のビデオ記録を介したゲームプレイアクセスを提供する。
【0172】
特に、
図1のシステム10は、複数の対話型ビデオゲームまたはゲームアプリケーションへのアクセスを提供し、より詳細には、例えば、クライアント装置にストリーミングされるゲームプレイのビデオ記録を介したゲームアプリケーションの記憶されたゲームプレイへの対話型アクセスを提供する、ゲームプロセッサモジュール210を実行するゲームサーバ205を含む。
図1に示すように、クライアント装置100は、ジャンプゲームプレイの形態で、プレイヤの特定のゲームプレイへのアクセスを要求するように構成されている。アクセス要求は、ビデオ記録を介して含まれるおよび/または参照される関連するスナップショットがジャンプゲームプレイをインスタンス化するために使用されるように、クライアント装置にストリーミングされるプレイヤのゲームプレイのビデオ記録を介して行われてもよい。特に、ゲームサーバ2015は、スナップショットに基づいてジャンプゲームプレイをインスタンス化するためにゲームアプリケーションのインスタンスを実行し、表示のためにクライアント装置100に配信されるレンダリング画像を生成する。
【0173】
例えば、ビデオプレイヤ1010は、ゲームアプリケーションに参加しているプレイヤの選択されたゲームプレイのビデオ記録をプレイするときに複数のビデオフレームを生成するように構成される。ビデオプレイヤ1010は、ビデオレコーダ271とは独立してまたは協働して、そのゲームプレイに対応する任意のゲームメトリクスとともに、ゲームプレイの記録(例えば、ビデオ、オーディオなど)を生成、保存、アクセス、および/または再生するように動作することができる。一実施形態では、記憶されたゲームプレイのビデオ記録は、クライアント装置100に表示するためにレンダリングされるタイムラインを通して提示される記憶されたゲームプレイの1つ以上のスナップショット画像を介して選択可能であり、スナップショット画像は、ゲームアプリケーションにおけるゲームプレイの進行を示すために提示される。すなわち、ゲームプレイ中にキャプチャされたスナップショット画像のうちの1つの選択は、記憶されたゲームプレイのビデオ記録の選択およびプレイを提供する。ビデオ記録の画像フレームは、表示のためにネットワークを介してユーザのクライアント装置にストリーミングおよび/または配信される。
【0174】
さらに、ビデオ記録は、ゲームプレイ中にキャプチャされた複数のスナップショットを含むかまたは参照し、スナップショットは、スナップショットキャプチャに対応するゲームプレイ中の時点におけるゲームアプリケーションのインスタンスのインスタンス化を可能にするメタデータおよび/または情報を含む。したがって、(例えば、ビデオフレームを介した)ビデオ記録におけるジャンプ点の選択は、ジャンプ点で始まるジャンプゲームプレイのインスタンス化を提供する。具体的には、再生エンジン1015は、ジャンプゲームプレイをインスタンス化するためにゲームアプリケーションのインスタンスを作成および実行するように構成されている。ゲームアプリケーションのインスタンスは、ジャンプ点の選択を介して決定された関連するスナップショットに基づいてインスタンス化され、ジャンプ点は、関連するスナップショットに直接対応してもよく、またはジャンプ点は、関連するスナップショットの近く、または関連するスナップショットと他のスナップショットとの間に配置されてもよい。したがって、関連するスナップショットは、ジャンプゲームプレイをインスタンス化するために使用される。一実装では、再生エンジン1015は、ジャンプゲーム実行エンジン216とは独立して、または協働して、記憶されたゲームプレイへの対話型アクセスを提供するように動作する。
【0175】
特に、再生開始点セレクタ1025は、ジャンプゲームプレイの再生部分の開始点を決定するように構成されている。すなわち、ジャンプ点の選択後、適切で関連する開始スナップショットが選択され、プレイヤのゲームプレイを実行するために使用されるゲームアプリケーションのインスタンスを開始および/またはインスタンス化し、ジャンプ点は、開始スナップショットがキャプチャされたゲームプレイにおける点に対応しないことがある。ジャンプゲームプレイの再生部分の間、記憶されたゲームプレイは、開始スナップショットがキャプチャされたゲームプレイ内の点からジャンプ点まで自動的に再生され、その後、ジャンプゲームプレイは、再生エンジン1015および/またはジャンプゲーム実行エンジン216が要求ユーザのクライアント装置100からの入力コマンドを処理するように、要求ユーザにとってライブになる。
【0176】
特に、ジャンプゲームプレイの再生部分の間、ジャンプゲーム入力マネージャ1020は、ゲームアプリケーションのインスタンスによる実行に使用される複数の入力コマンドを決定してアクセスする。複数の入力コマンドは、プレイヤの記録されたまたは記憶された(互換的に使用される)ゲームプレイを指示するために以前に使用された。複数の入力コマンドは、プレイヤの記憶されたゲームプレイ中に生成された1つ以上のスナップショットに関連して(例えば、
図1のデータストア140のデータベース1040に)キャプチャされて記憶された。例えば、スナップショットは、対応するスナップショットがキャプチャされた点までに使用された入力コマンドを記憶して含むことができ、以前のスナップショットおよび最も近いスナップショットに関連する点から始めて収集されることができる。すなわち、対応するスナップショットについて記憶された入力コマンドは、ゲームプレイを以前のスナップショットから対応するスナップショットへともたらす。また、スナップショットは、対応するスナップショットがキャプチャされた点以降に使用され、次のおよび/または最も近いスナップショットに関連する点で終わる入力コマンドを記憶することができる。すなわち、対応するスナップショットについて記憶された入力コマンドは、対応するスナップショットから次のスナップショットへゲームプレイをもたらす。他の実装では、スナップショットは、対応するスナップショットがキャプチャされた点の前後に使用された入力コマンドを記憶することができる。
【0177】
ネットワーク150を介して通信するゲームサーバ205およびクライアント装置100の様々なモジュールの詳細な説明を用いて、本開示の一実施形態にかかるゲーム方法がフロー
図1100に関連してここで説明される。特に、フロー
図1100は、ユーザのクライアント装置にストリーミングされるゲームプレイのビデオ記録を介してなど、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイへの対話型アクセスを提供する方法におけるステップを示している。より具体的には、フロー
図1100の方法は、ゲームプレイ中に生成およびキャプチャされたスナップショットに基づいてユーザが記憶されたゲームプレイにジャンプすることを提供する方法を開示し、スナップショットは、クライアント装置にストリーミングされる記憶されたゲームプレイのビデオ記録を介して選択可能である。フロー
図1100は、クライアント装置200においてネットワーク150を介して表示される情報を生成する目的でクラウドベースのゲームシステム201(例えば、GCS201)のゲームサーバ205側で行われる動作のプロセスおよびデータフローを示している。
【0178】
本方法における動作1105は、ゲームアプリケーションに対するプレイヤのゲームプレイのビデオ記録の選択を、ユーザに関連するクライアント装置から受信することを含む。例えば、ビデオ記録は、プレイヤのゲームプレイの一部のビデオクリップとすることができる。プレイヤは、ゲームプレイの一部が重要であると判定し(例えば、関連情報を含む、ボスを倒すことを含むなど)、ビデオ記録におけるゲームプレイのその部分を生成して記憶することを選択することができる。ビデオ記録は、データベースに記憶されてもよく、それによって他のユーザがプレイヤの記録または記憶されたゲームプレイを見ることを可能にする。すなわち、他のユーザおよび/またはプレイヤは、(例えば、ストリーミングを介して)アクセスし、対応するクライアント装置上でビデオ記録をプレイすることができる。データベースは、複数のゲームアプリケーションの複数のゲームプレイに関連する複数のビデオ記録を記憶することができ、それによって複数のユーザによってアクセス可能な記憶されたゲームプレイのリポジトリを作成する。
【0179】
一実施形態では、ビデオ記録は、ゲームプレイの1つ以上のスナップショット画像を含むタイムラインを介して選択される。タイムラインは、
図1~
図9に関して前述したように、ゲームアプリケーションに参加している間にユーザのゲームプレイと同時に提示されてもよい。すなわち、ユーザがゲームアプリケーションをプレイしている間に、ユーザは、ユーザのクライアント装置にストリーミングされるそのゲームプレイのビデオ記録を介して、さらに他のプレイヤの記憶されたゲームプレイの対話型アクセスを介して、他のプレイヤのゲームプレイをプレビューしたいことがある。また、ユーザがゲームアプリケーションをプレイしている間、ユーザは、そのユーザのクライアント装置にもストリーミングされているユーザの記憶されたゲームプレイのビデオ記録を介して、さらにユーザの記憶されたゲームプレイの対話型アクセスを介して、自己のゲームプレイをレビューしたいことがある。すなわち、タイムライン内のスナップショット画像は、ジャンプゲームプレイの形態で、対応するビデオ記録との関連付けおよびアクセス、および/または記憶されたゲームプレイへの対話型アクセスを提供する。
【0180】
本方法の動作1110は、ネットワークを介して、記録または記憶されたゲームプレイを含むビデオ記録をユーザに関連付けられたクライアント装置にストリーミングすることを含む。記憶されたゲームプレイは、ゲームアプリケーションに参加しているプレイヤのためのものである。ユーザは、閲覧のために記憶されたゲームプレイへのアクセスを獲得し、ゲームプレイは、ユーザ以外のプレイヤからなるものとすることができるか、またはユーザであるプレイヤからなるものとすることができる。
【0181】
1120において、本方法は、ビデオ記録を介して記憶されたゲームプレイにおけるジャンプ点の選択をクライアント装置から受信することを含む。すなわち、ビデオ記録内の選択された点は、要求ユーザがプレイヤのゲームプレイに基づくジャンプゲームプレイで対話型アクセスを開始したいジャンプ点を定義する。換言すれば、要求ユーザは、ジャンプゲームプレイを介して、プレイヤのゲームプレイへの対話型アクセスを得ることを望む。
【0182】
1130において、本方法は、開始スナップショットなどのスナップショットに基づいてゲームアプリケーションのインスタンスをインスタンス化および/または開始することを含む。ゲームアプリケーションのインスタンスは、ジャンプゲームプレイをインスタンス化する。特に、ビデオ記録は、プレイヤのゲームプレイ中の第1の時点でキャプチャされた開始スナップショットを含む、プレイヤのゲームプレイ中にキャプチャされた1つ以上のスナップショットに関連付けられる。一実施形態では、ビデオ記録は、少なくとも、記録されたゲームプレイの開始点(すなわち、ビデオ記録の開始)でキャプチャされた先頭スナップショット、および記憶および/または記録されたゲームプレイの終了点(すなわち、ビデオ記録の終了)でキャプチャされた終了スナップショットに関連付けられる。実施形態では、開始スナップショットは、先頭スナップショットまたは終了スナップショットのうちの1つ、または先頭スナップショットと終了スナップショットとの間に位置するスナップショット、またはビデオ記録の記録されたゲームプレイ以外であるがさらに関連付けられているゲームプレイにおける点でキャプチャされたスナップショットに対応することができる。スナップショットは、スナップショットキャプチャに対応する点でのゲームアプリケーションのインスタンスのインスタンス化および/または開始を可能にするメタデータおよび/または情報を含む。例えば、スナップショットは、プレイヤのゲームプレイに関連して実行されたゲームアプリケーションの第1のインスタンスによって生成されたレンダリング画像を含むスナップショット画像を含む。スナップショット画像は、プレイヤのゲームプレイにおける点に対応するビデオフレームに対応する。
【0183】
例示のために、開始スナップショットは、ゲームプレイの第1の時点にさらに対応するビデオ記録の第1のビデオフレームに対応する第1のスナップショット画像を含む。スナップショットはまた、前述したように、ゲームプレイの第1の時点に対応する環境の生成を可能にするゲーム状態データも含む。前述したように、スナップショットには、環境に追加の特徴を提供するランダムシードデータも含む。スナップショットはまた、前記プレイヤのゲームプレイについてのキャラクタの生成を可能にするユーザ保存データも含み、キャラクタは、ゲームプレイの第1の時点に対応する第1の状態を有する。例えば、ユーザ保存データは、プレイヤによって選択されたゲームの難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残りのライフ数、利用可能な総ライフ数、防具、賞品、タイムカウンタ値などを含むことができる。スナップショットはまた、一連の入力コマンドのうちの少なくとも1つの入力コマンドを含み、スナップショットに関連する入力コマンド(例えば、スナップショットまで至るまたはスナップショットから遠ざかる)は、キャプチャされて記憶される。
【0184】
したがって、ゲームアプリケーションは、開始スナップショットのキャプチャに対応する点で開始され、プレイヤの記憶されたゲームプレイ(例えば、シーン、キャラクタなど)によって以前に定義されたゲーム環境に基づいている。例えば、開始スナップショットは、プレイヤのゲームプレイの第1の時点で始まるゲームアプリケーションのインスタンスのインスタンス化および/または開始を可能にする。
【0185】
一実施形態では、ジャンプ点は、キャプチャされたスナップショットに対応することができ、キャプチャされたスナップショットは、前述したように、ジャンプゲームプレイをインスタンス化および/または開始するために使用されることができる。例えば、ジャンプ点が開始スナップショット(および第1の時点)に直接対応するとき、開始スナップショットは、ジャンプ点で始まるジャンプゲームプレイをインスタンス化および/または開始するために使用されることができ、ジャンプゲームプレイは、要求ユーザからの入力コマンドの実行によって要求ユーザについてライブになる。
【0186】
他の実施形態では、ジャンプ点は、ジャンプゲームプレイをインスタンス化するために使用されるスナップショットに対応しない場合がある。すなわち、ジャンプゲームプレイは、開始スナップショットに基づいてゲームアプリケーションのインスタンスによってインスタンス化されて実行されるが、ジャンプ点は、開始スナップショットと直接対応するプレイヤのゲームプレイにおける第1の時点と直接には対応しないことがある。しかしながら、ジャンプ点は、ジャンプゲームプレイがジャンプ点に到達するために使用されることができるように、ジャンプゲームプレイをインスタンス化および/または開始するために使用される開始スナップショット(例えば、ジャンプ点に最も近いスナップショット)と関連付けられる。特に、ジャンプゲームプレイは、再生部分とライブ部分とを含む。したがって、ジャンプゲームプレイは、(例えば、記憶されたゲームプレイからの保存された入力コマンドを使用して)ジャンプ点に到達するために再生部分を介して自動的に実行されることができ、その後、ジャンプゲームプレイは、要求ユーザからの入力コマンドの実行によって要求ユーザにとってライブになる。
【0187】
具体的には、再生部分の間に、動作1140において、本方法は、開始スナップショットおよび/またはジャンプ点に関連する複数のおよび/または一連の入力コマンドにアクセスすることを含む。入力コマンドは、プレイヤの記憶および/または記録されたゲームプレイを以前に指示するために使用された。
【0188】
再生部分の間、ジャンプゲームプレイをインスタンス化するゲームアプリケーションのインスタンスによって実行されたときの入力コマンドは、プレイヤの記憶されたゲームプレイを第1の時点からジャンプ点まで再生する。具体的には、動作1150において、本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、クライアント装置においてレンダリングするための複数の画像フレームを生成することを含む。複数の画像フレームは、第1の時点からジャンプ点までの(ジャンプゲームプレイにおける)プレイヤのゲームプレイを再生する。例えば、複数の画像フレームは、プレイヤのゲームプレイにおける第1の時点の第1のビデオフレームに対応する第1の画像フレームと、ジャンプ点の第2のビデオフレームに対応する第2の画像フレームとを含む。再生部分は、第1の時点に対応する第1の画像フレームとジャンプ点に対応する第2の画像フレームとの間に画像フレームを生成する。
【0189】
一実施形態では、本方法は、ジャンプゲームプレイの再生部分の間に再生および/または再現されたプレイヤのゲームプレイを介して転送することを含む。すなわち、一連の入力コマンドは、ゲームアプリケーションのインスタンスにおいて順方向に実行され、入力コマンドは、記憶されたゲームプレイのもともとの実行を指示する目的で連続的に順序付けられることができる。他の実施形態では、本方法は、ジャンプゲームプレイの再生部分の間に再生および/または再現されたプレイヤのゲームプレイを介して巻き戻すことを含む。すなわち、一連の入力コマンドは、ゲームアプリケーションのインスタンスにおいて逆順序で実行され、入力コマンドは、記憶されたゲームプレイのもともとの実行を指示する目的で連続的に順序付けられることができる。
【0190】
一実施形態では、本方法は、一連の入力コマンドのオーバークロック実行を含む。すなわち、ジャンプゲームプレイの再生部分は、
図13Aに関連して以下でさらに説明されるように、ゲームプレイが第1の時点からジャンプ点まで早送りで示されるように、またはゲームプレイが第1の時点からジャンプ点まで早戻しされるように、速い動きでプレイされる。一実施形態では、再生部分の間に、追加のコンテンツ(例えば、広告、ミュージックビデオ、ニュースクリップ、他のビデオ記録など)をユーザに見せることができる。
【0191】
再生部分の後、ジャンプゲームプレイはライブ部分に進む。具体的には、動作1160において、本方法は、クライアント装置から受信してジャンプ点から始まるゲームアプリケーションのインスタンスにおいて実行される入力コマンドを処理することを含む。以前は、ジャンプゲームプレイの再生部分の間、クライアント装置から受信した入力コマンドは、ゲームアプリケーションのインスタンスによって処理されることからブロックされていた。
【0192】
一実施形態では、アクティブに生成されてリアルタイムに記憶されている現在のゲームプレイへのアクセスが提供される。特に、ビデオ記録の代わりに、ストリーミングライブビデオがネットワークを介してクライアント装置に配信される。すなわち、フロー
図1100において、動作1110において配信されるコンテンツは、ゲームアプリケーションに参加しているプレイヤのライブゲームプレイのライブストリーミングビデオである。そのようにして、ライブゲームプレイ中にキャプチャされたスナップショットは、ユーザがジャンプゲームプレイを介してライブゲームプレイを体験することを可能にするように選択可能とすることができる。すなわち、ユーザは、ライブゲームプレイ中にキャプチャされたスナップショットをストリーミングライブビデオのビデオフレームを介して選択し、ゲームアプリケーションのインスタンスを開始してジャンプゲームプレイを実行することができる。
【0193】
図12Aは、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイのビデオ記録1201における複数のレンダリングビデオフレームの図であり、ビデオ記録は、記憶されたゲームプレイへの対話型アクセスに使用される。一実装では、ビデオ記録1201は、
図11の動作1120において説明されているようにジャンプ点1290の選択において、および動作1130において説明されているようにジャンプゲームプレイをインスタンス化するためにゲームアプリケーションのインスタンスを開始するために使用される。例示のために、ビデオ記録1201は、ビデオ記録1201内の各ビデオフレームの記録の長さ、およびおおよその位置を表すバーとして示されている。
【0194】
特に、ビデオ記録1201は、クライアント装置でレンダリングされたときに順次表示される複数のビデオフレームを含む。ビデオ記録1201は、前述したようにゲームアプリケーションに参加しているプレイヤのゲームプレイ中に生成されたものであり、選択可能な長さのものとすることができる。例示の目的のために、ビデオ記録は、ナビゲーションバー1260に示されるように様々な点に配置されたビデオフレーム1210~1214を少なくとも含む。1つ以上の追加のビデオフレームが、
図12Aに示されるビデオフレームのうちの任意の2つの間に配置されることができることが理解される。
【0195】
さらに、ビデオフレームのそれぞれは、プレイヤのゲームプレイ中にキャプチャされた少なくとも1つのスナップショットに関連付けられることができる。例示の目的のために、
図12Aは、ビデオフレームが生成されたゲームプレイの点でまたはその近くでスナップショットがキャプチャされたことからビデオフレーム1210~1214が示されるように、ビデオフレームとスナップショットとの間の密接な相関関係を示している。特定のビデオフレームがスナップショットに直接対応しないことがあるが、スナップショットと密接に関連していることがあることに留意することが重要である。例えば、ビデオフレームは、最も近いキャプチャされたスナップショットと関連付けられてもよい。そのようにして、ビデオフレーム/ビデオ記録とスナップショットとの間の関係は、関連付けによる選択を可能にする。例えば、スナップショットを選択することによって、それに関連するビデオフレームおよび/またはビデオ記録がわかる。また、ビデオ記録内のビデオフレームを選択することによって、それに関連するスナップショットがわかる。
【0196】
一実施形態では、ビデオ記録1201は、記憶されたゲームプレイの開始点(すなわち、ビデオ記録1210の開始)でキャプチャされた先頭スナップショット(例えば、スナップショット画像610として記憶されることができるビデオフレーム1210に関連付けられたSS-1)、および記憶されたゲームプレイの終了点(すなわち、ビデオ記録1210の終了)でキャプチャされた終了スナップショット(例えば、スナップショット画像620として記憶されることができるビデオフレーム1214に関連付けられたSS-2)を含む少なくとも2つのスナップショットに関連付けられる。他の実施形態では、ビデオ記録は、ビデオ記録の記憶されたゲームプレイの外側でキャプチャされたスナップショットと関連付けられる。例えば、ビデオ記録1202は、ジャンプ点1290を含むが、プレイヤのゲームプレイ中にキャプチャされるがビデオ記録1202の記憶されたゲームプレイの外側にある2つのスナップショット(例えば、スナップショット画像610に関連付けられたSS-1およびスナップショット画像620に関連付けられたSS-2)の間に配置される。
【0197】
特に、ビデオ記録1201は、キャプチャされたスナップショットSS-1およびそのスナップショット画像610と密接に相関するビデオフレーム1210を含む。特に、ビデオフレーム1210およびスナップショット画像610は、キャラクタ308(女性主人公)が最初に森の中にある洞窟の前で徘徊する熊に出会うゲームプレイにおける点を示している。さらに、ビデオ記録1201は、キャプチャされたスナップショットSS-2およびそのスナップショット画像360eと密接に相関するビデオフレーム1212を含む。特に、ビデオフレーム1212およびスナップショット画像360eは、キャラクタ308が攻撃的な熊と積極的に交戦または戦っているゲームプレイにおける点を示しており、キャラクタ308は、武器として使用されるコイル状ロープで示されている。ビデオ記録1201は、キャプチャされたスナップショットSS-3およびそのスナップショット画像615と密接に相関するビデオフレーム1213を含む。特に、ビデオフレーム1213およびスナップショット画像615は、キャラクタ308が熊を首尾よく鎮圧し、コイル状ロープを使用して熊の手足を結んだゲームプレイにおける点を示している。さらに、ビデオ記録1201は、キャプチャされたスナップショットSS-4およびそのスナップショット画像620と密接に相関するビデオフレーム1214を含む。特に、ビデオフレーム1214およびスナップショット画像620は、コインでいっぱいの宝箱ならびに後続の戦いのために使用されることができるライフルを含むように、キャラクタが熊との戦いが成功した後に報酬を獲得したゲームプレイにおける点を示している。
【0198】
さらに、ビデオ記録1201は、ビデオフレーム1210(例えば、SS-1)とビデオフレーム1212(例えば、SS-2)との間に位置するビデオフレーム1211を含む。すなわち、ビデオフレーム1211は、2つのスナップショットSS-1とSS-2との間にあるプレイヤのゲームプレイにおける所定点に位置する。スナップショットSS-1またはSS-2のいずれかを使用してプレイヤのゲームプレイへの対話型アクセスを提供することができるように、ビデオフレーム1211と2つのスナップショットSS-1およびSS-2のうちの少なくとも一方との間で密接な関連付けを行うことができる。具体的には、本発明の実施形態は、ジャンプゲームプレイを開始するためにスナップショットSS-1またはSS-2のいずれかを使用して、中間スナップショットジャンプ点として2つのスナップショットSS-1およびSS-2の間に位置する矢印によって示されるビデオフレーム1211の選択を提供する。ジャンプゲームプレイは、(例えば、記憶されたゲームプレイからの保存された入力コマンドを使用して)ジャンプゲームプレイが再生部分を介して自動的に実行されてジャンプ点に到達するように再生部分とライブ部分とを含み、その後、ジャンプゲームプレイは、ユーザからの入力コマンドを処理することによって要求ユーザにとってライブになる。
【0199】
図12Bは、本開示の一実施形態にかかる、ユーザによるゲームアプリケーションのゲームプレイ中に表示されるタイムライン310aの図であり、タイムライン310aとの受動的または能動的対話は、プレイヤの記憶されたゲームプレイのストリーミングビデオ記録の表示を提供し、ストリーミングビデオ記録との受動的または能動的な対話は、プレイヤのゲームプレイとの対話型アクセスを提供する。一実装では、タイムライン310aは、
図11の動作1110において説明したようにビデオ記録の選択において、
図11の動作1120において説明したようにジャンプ点1290の選択のために、オペレーション1130において説明したようにジャンプゲームプレイをインスタンス化するようにゲームアプリケーションのインスタンスを開始するために使用される。
【0200】
前述したように、ウィンドウ300は、ユーザによるゲームアプリケーションのゲームプレイの現在レンダリングされている画像305を示す。タイムライン310aは、現在レンダリングされている画像305の後に発生するゲームアプリケーションを介した進行点でのプレイヤ(例えば、キャラクタ308をプレイしている友達F1)によるゲームプレイのスナップショット画像(例えば、360d、360e、360f、・・・)を含むスナップショット画像を含む。スナップショット画像は、例えば、サムネイルを介してタイムライン310aに提示されることができる。サムネイルの能動的または受動的選択は、選択されたサムネイルのほぼ同じ領域に生成されて表示されるウィンドウ410によって示されるように、対応するスナップショット画像の拡大を提供する。
【0201】
一実施形態では、タイムライン310aとの能動的または受動的対話は、プレイヤのゲームプレイのビデオ記録1201の選択を提供する。特に、タイムライン310a内のスナップショット画像360eの(例えば、カーソル490aを介した)さらなる能動的または受動的選択は、プレイヤのゲームプレイのビデオ記録1201の選択を提供する。例えば、スナップショット画像360eの選択は、ウィンドウ410の能動的または受動的選択を介してもよい。一実装では、ビデオ記録1201は、現在表示されている画像305と同時に(例えば、ストリーミングを介して)ウィンドウ1212に示されることができる。他の実装では、ウィンドウ1212は、フルスクリーンモードなどでウィンドウ300とは独立して表示されることができる。ビデオ記録1201は、選択されたスナップショット画像360eに関連するゲームプレイにおける所定点におおよそ対応する。例えば、ビデオ記録1201に示されるクリップは、キャラクタ308と熊との間のボス戦に焦点を合わせ、キャラクタ308が最初に熊に接触するビデオフレーム1210で始まり、キャラクタ308がボス熊の戦いに成功した後に戦利品を調べるビデオフレーム1214で終わることができる。したがって、ビデオ記録1201は、ビデオフレーム1210からプレイを開始してもよく、または選択されたスナップショット360eの近くのビデオフレームなどのユーザ選択を介してビデオ記録1201内の任意のビデオフレームからプレイを開始してもよい。
【0202】
さらにまた、ウィンドウ1212に示されているビデオ記録1201は、ナビゲーションバー1260によって示され且つそれを介して選択可能な任意のビデオフレームを表示することができる。例えば、可動ロケータ1265は、ビデオ記録1201内のビデオフレーム1211のおおよその位置を示す。また、可動ロケータ1265は、ビデオ記録1201内の任意の点および/またはビデオフレームに向けられてもよい。そのため、ビデオ記録1201は、ビデオフレーム全体を(例えば、順方向、逆方向、高速、低速)プレイすることができ、または特定のビデオフレーム上で一時停止することができる。例えば、ビデオ記録1201の全体を見た後、ユーザは、ロケータ1265をナビゲーションバー1260上の適切な位置に移動させることによってビデオフレーム1211に戻ることを選択することができる。すなわち、ユーザは、ビデオ記録1201のコンテンツに興味をそそられており、以下に説明するように、プレイヤの記憶されたゲームプレイに対話的にアクセスしたいと思う。例示として、ユーザは、熊とのボス戦を体験したいと思い、熊が積極的にキャラクタ308に近付いているビデオフレーム1211で戦闘を始めたいと思う。
【0203】
特に、ビデオ記録のさらなる能動的または受動的選択は、記憶されたゲームプレイへの対話型アクセスを提供する。より具体的には、ビデオ記録1201内のビデオフレーム(例えば、フレーム1211)のさらなる能動的または受動的選択は、ジャンプ点1290を定義し、ジャンプゲームプレイが選択されたジャンプ点1290から始めて要求ユーザによってプレイ可能であるように、プレイヤのゲームプレイ中にキャプチャされた関連するスナップショット(例えば、SS-1またはSS-2)に基づいてジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化する。前述したように、ジャンプゲームプレイは、(例えば、記憶されたゲームプレイからの保存された入力コマンドを使用して)ジャンプゲームプレイが再生部分を介して自動的に実行されてジャンプ点1290に到達するように再生部分とライブ部分とを含み、その後、ジャンプゲームプレイは、ユーザからの入力コマンドを処理することによって要求ユーザにとってライブになる。関連するスナップショット(例えば、SS-1またはSS-2)は、ビデオ記録1201内に対応するビデオフレームを有するように示されているが、他の実施形態では、関連するスナップショットは、ビデオ記録1201のビデオフレームに対応しないかまたは関連しないことがある。すなわち、関連するスナップショットは、ビデオ記録1201の外部にあり得る。いずれの場合にも、関連するスナップショットは、ジャンプゲームプレイにおいて記憶されたゲームプレイへの対話型アクセスを提供し、ジャンプ点1290で始まるジャンプゲームプレイでユーザが対話型プレイを始めることを可能にする。
【0204】
図13Aは、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイ1310を指示するために以前に使用された複数の入力コマンド1330の図であり、入力コマンドの一部(例えば、シーケンス)は、ジャンプゲームプレイの再生部分を実行するために使用される。特に、記憶されたゲームプレイ1310は、少なくともSS-1およびSS-2を含む複数のスナップショットを含み、スナップショットは、前述したように、スナップショットキャプチャに対応する時点でゲームアプリケーションのインスタンスのインスタンス化を可能にするメタデータおよび/または情報を含む。スナップショットSS-1およびSS-2は、プレイヤのゲームプレイ1310中にキャプチャ点を定義するそれらのおおよその位置に示されている。
【0205】
さらに、記憶されたゲームプレイ1310は、複数の入力コマンド1330を含む。単に例示のために、これらの入力コマンドは、トグル、左フロントボタン、右フロントボタン、上、下、右、左、および記号によって定義される対応する他の選択可能なコマンド(例えば、ボックス、三角形、クロスなど)または文字などを介して発行される方向コマンドを含むことができる。これらの入力コマンドは、記憶されたゲームプレイ1310を指示するために以前に使用された。示されるように、一実施形態では、入力コマンドは、コマンド間に周期的な間隔をあけてまたはあけずに連続的に順序付けされることができる。他の実施形態では、入力コマンドは、順序付けされなくてもよく、および/または連続的でなくてもよい。例えば、複数の入力コマンドは、異なるコントローラにわたって同時に発行されて複数のオブジェクトを指示することができ、その順序は、重要ではないことがある。
【0206】
図13Aに示すように、ジャンプ点1290は、ゲームプレイ1310のコンテキスト内で定義される。例えば、ビデオフレーム(例えば、ビデオフレーム1211)の選択は、ゲームプレイ1310のコンテキスト内でも、新たにインスタンス化されたジャンプゲームプレイのコンテキスト内でも、ジャンプ点1290を定義する。例えば、ジャンプ点は、SS-1とSS-2との間に定義されてもよく、一例として、ビデオ記録1201の対応するビデオフレーム1211を介して選択可能である。より具体的には、複数の入力コマンド1330は、SS-1とジャンプ点1290との間に発行された一連の入力コマンド1335を含む。また、複数の入力コマンド1330は、ジャンプ点1290とSS-2との間に発行された一連の入力コマンド1337を含む。これらのシーケンス1335および1337は、以下でさらに説明されるように、ジャンプゲームプレイの再生部分を実行および説明するために使用される。SS-1の前とSS-2の後の双方に追加の入力コマンドが示されている。
【0207】
ビデオ記録、より具体的にはビデオフレーム1211の能動的または受動的選択は、前述したように、SS-1またはSS-2などの関連するスナップショットを使用してジャンプゲームプレイのインスタンス化を提供する。どのスナップショットが選択されるかに応じて、ジャンプゲームプレイは、ジャンプ点1290に到達するために一連の入力コマンドを介して進むか、またはジャンプ点1290に到達するために一連の入力コマンドを介して巻き戻される。
【0208】
ジャンプゲームプレイ1340は、SS-1がジャンプゲームプレイ1340をインスタンス化するためにゲームアプリケーションのインスタンスを開始するために使用される関連スナップショットであるという決定を示す。示されるように、ジャンプゲームプレイ1340は、セクションAによって定義された再生部分と、セクションBによって定義されたライブ部分とを含む。セクションAの再生部分において、ジャンプゲームプレイ1340は、記憶されたゲームプレイ1310からの保存された入力コマンド(例えば、一連の入力コマンド1335)を使用して、SS-1とジャンプ点1290との間でプレイヤのゲームプレイ1310を自動的に実行する。この場合、一連の入力コマンド1335は、ジャンプ点1290に到達するように順方向に実行される。一実施形態では、シーケンス1335の実行はオーバークロックされてジャンプ点に素早く到達する。再生部分のジャンプ点1290に到達した後、セクションAの再生部分からセクションBによって示されるライブ部分への遷移が行われ、ユーザがインタラクティブにジャンプゲームプレイ1340を指示しているように、ユーザからの入力コマンドを処理することによってジャンプゲームプレイ1340がライブになる。ライブ部分は、ユーザがジャンプゲームをプレイしたい限り延長し、一実施形態では、プレイヤの記憶されたゲームプレイにおける任意の点を超えて延長することができることに留意することが重要である。
【0209】
ジャンプゲームプレイ1345は、SS-2がゲームアプリケーションのインスタンスを開始してジャンプゲームプレイ1345をインスタンス化するのに使用される関連スナップショットであるという決定を示す。示されるように、ジャンプゲームプレイ1345は、セクションCによって定義された再生部分と、セクションDによって定義されたライブ部分とを含む。セクションCの再生部分において、ジャンプゲームプレイ1345は、記憶されたゲームプレイ1310からの保存された入力コマンド(例えば、一連の入力コマンド1337)を使用して、SS-2とジャンプ点1290との間でプレイヤのゲームプレイ1310を自動的に実行する。この場合、一連の入力コマンド1337は、ジャンプ点1290に到達するように逆の方法で実行される。一実施形態では、シーケンス1337の実行はオーバークロックされてジャンプ点に素早く到達する。セクションCの再生部分のジャンプ点1290に到達した後、セクションCの再生部分からセクションDによって示されるライブ部分への遷移が行われ、ユーザがインタラクティブにジャンプゲームプレイ1345を指示しているように、ユーザからの入力コマンドを処理することによってジャンプゲームプレイ1345がライブになる。
【0210】
さらに他の実施形態では、再生部分の間、ジャンプゲームプレイ1345が実行されているとき、追加または補助コンテンツが他のウィンドウ(図示せず)に表示されてもよい。一実施形態では、補助コンテンツは、再生部分に表示するために生成されている画像フレームに重ね合わせることができる。例えば、補助コンテンツは、再生部分の間にジャンプゲームプレイ1345が実行されているときに示される広告を含むことができる。さらに、他の実施形態では、補助コンテンツは、ユーザ入力に応答してもよい。例えば、補助コンテンツは、他のジャンプゲームプレイとすることができる。
【0211】
図13Bは、本開示の一実施形態にかかる、ウィンドウ1390に示されるジャンプゲームプレイにおける画像フレーム1311の図であり、プレイヤのゲームプレイ中にキャプチャされた関連スナップショットに基づいてジャンプゲームプレイを実行するように、ビデオ記録のビデオフレームの選択は、ジャンプゲームプレイが要求ユーザによってプレイ可能であるように、ゲームアプリケーションのインスタンスをインスタンス化する。示されるように、画像フレーム1311は、ビデオ記録1201のビデオフレーム1211に関連するジャンプ点1290におおよそ対応する。すなわち、画像フレーム1311は、熊がキャラクタ308に向かって向きを変えて歩くことによって積極的に行動していることを示す。したがって、ユーザは、ジャンプゲームプレイのライブ部分において、ジャンプ点1290におおよそ対応する画像フレーム1311からほぼ始まるウィンドウ1390に示されるジャンプゲームプレイを対話的に指示することができる。
【0212】
様々な実施形態において、ウィンドウ1390は、ウィンドウ300から独立しているかまたは同時に表示されてもよく、ウィンドウ300は、ゲームアプリケーションに参加しているユーザの現在のゲームプレイを示す。そのようにして、ジャンプゲームプレイは、ユーザの現在のゲームプレイと同時に(例えば、ウィンドウ1212によって示されるウィンドウオーバーレイにおいて)示されることができるか、またはジャンプゲームプレイは、フルスクリーンモードのように独立して示されることができる。実施形態では、ユーザの現在のゲームプレイおよびジャンプゲームプレイは、同じゲームアプリケーションであっても、または異なるゲームアプリケーションであってもよい。
【0213】
一実施形態では、ジャンプゲームプレイは、別々に記録され、ビデオ記録に記憶される。さらに、ジャンプゲームプレイの実行中の任意の時点で、ジャンプゲームプレイ中に複数のスナップショットをキャプチャすることができる。例えば、スナップショットSS-00は、進行バー1395に示されるように、ライブジャンプゲームプレイにおいてキャプチャされ、スナップショットSS-00の右側への将来の/予想される進行が破線で示される。そのようにして、任意のユーザは、キャプチャされたスナップショットを介して、および新たにインスタンス化された二次ジャンプゲームプレイを介してジャンプゲームプレイを体験することができる。特に、一次ジャンプゲームプレイ中にキャプチャされた選択されたスナップショットに基づいて、二次ジャンプゲームプレイを実行するようにゲームアプリケーションのインスタンスをインスタンス化するために、ジャンプゲームプレイ中にキャプチャされた選択されたスナップショットが使用されることができる。そのようにして、ユーザは、同じユーザによって作成された任意の以前のジャンプゲームプレイを体験することができ、または他のプレイヤの記憶されたジャンプゲームプレイを体験することができることがある。
【0214】
図14は、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤのゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイ中に提示された一連の入力コマンドの図である。一連の入力コマンドを表示することによって、追加の機能をユーザに提供することができる。一実施形態では、表示された一連の入力コマンドは、ユーザをジャンプ点にガイドするのを助けるガイド特徴を提供することができる。他の実施形態では、表示された一連の入力コマンドは、ゴースト化の目的で使用されることができ、ユーザは、例えば正しい同じタイミングで一連の入力コマンドを模倣しようと試みる。ユーザがオリジナルゲームプレイをどれほど厳密に模倣することができるかを示すランニングスコア1460が提供されることができる。
【0215】
示されるように、ウィンドウ1410は、画像フレーム1405を含む1つ以上の画像フレームを介してジャンプゲームプレイを表示する。一実施形態では、ジャンプゲームプレイの再生部分がウィンドウ1410に表示される。例えば、オブジェクト1420は、ジャンプゲームプレイの再生部分の実行可能ファイルとして表示され、一連の入力コマンド1450は、自動的に実行されてジャンプ点までプレイヤのゲームプレイを再生し、その後、ジャンプゲームプレイは、要求ユーザからの入力コマンドを処理することによってライブになる。オブジェクト1420は、もともとプレイヤのゲームプレイで生成されたものである。プレイヤのゲームプレイを指示するために使用される一連の入力コマンド1450も示されている。シーケンス1450は、順序付けされたシーケンスで提供されてもよく、入力コマンドは、それらがクライアント装置によって生成された順序で提示される。例えば、シーケンス1450は、ジャンプゲームプレイの再生部分の間に生成された複数の画像フレームのそれぞれの上にオーバーレイされる。進行バー1430上のロケータ1435は、画像フレーム1405に対応する現在の入力コマンド(例えば下)を示す。一実装では、ロケータ1435は、一連の入力コマンド1450が右から左へ、または左から右へスクロールするので静的である。他の実装では、ロケータ1435が現在表示されている画像フレーム1405と対応する入力コマンドとの間の関係を与える限り、ロケータ1435はまた、一連の入力コマンド1450に関して移動する。トップダウン方式でシーケンス1450を表示するなど、他の実装もサポートされる。
【0216】
一実施形態では、要求ユーザは、一連の入力コマンドを模倣して、対応する画像フレーム内のオリジナルオブジェクトおよび対応するオブジェクトとともに提示されるゴーストオブジェクトを指示することができる。特に、ゴーストオブジェクト1425は、模倣された複数の入力コマンド(図示せず)に応答する。ゴーストオブジェクト1425は、オブジェクト1420を示す画像フレーム1405をオーバーレイし、オブジェクト1420または画像フレーム1405内の他のオブジェクトと干渉しないように提示されることができる。模倣されたコマンドは、ユーザのクライアント装置で生成され、一連の入力コマンド1450にしたがうことを試みる。模倣されたコマンドが一連の入力コマンド1450にどれだけ厳密にしたがうかに応じて、ゴーストオブジェクト1425の位置および移動を決定する。模倣されたコマンドがシーケンス1450に厳密にしたがうほど、ゴーストオブジェクト1425とオブジェクト1420との間のアライメントは近くなる。
【0217】
スコア1460は、コマンド、コマンドの順序、および/またはコマンドのタイミングなどに関して、模倣されたコマンドが一連の入力コマンド1450にどれだけ密接にしたがうかに基づいて生成されることができる。スコアは、画像フレーム1405をオーバーレイしてもよい。例示のために、
図15A~
図15Eは、ユーザが一連の入力コマンド1450にしたがって模倣されたコマンドを提供するときの、様々な画像フレーム全体にわたるオブジェクト1420とゴーストオブジェクト1425との間の関係および/またはアライメントを示す。示されるように、オブジェクト間のアライメントは、画像フレームの進行を通してより近くなる。
図15aの画像フレーム1501は、オブジェクト1420とゴーストオブジェクト1425との間の粗いアライメント(すなわち、厳密に整列していない)を示すが、
図15Eの画像フレーム1505は、オブジェクト間のより細かいアライメント(すなわち、密接に整列している)を示す。
【0218】
他の実施形態では、一連の入力コマンド1450は、チュートリアルの形態で提示される。すなわち、入力コマンドは、ゲームプレイの特定の部分をどのように進めるかについてユーザに指示する。例えば、ジャンプゲームプレイ中に、オリジナルゲームプレイを自動的に再生する代わりに、再生部分の制御は、実際にはユーザによって指示されてもよい。チュートリアルの間、ゴーストオブジェクト1425は、
図14に示されても示されなくてもよい。したがって、再生部分の間、クライアント装置からの入力コマンドは、少なくともオブジェクト1420を制御するために処理されて使用されることができる。一連の入力コマンドが表示され、ユーザをジャンプ点に向けるのに役立つことができる。さらに、ジャンプゲームプレイをジャンプ点に到達させるための努力において、クライアント装置からの入力コマンドは、処理に関して制限されることがあり、制限された入力コマンドは、ジャンプ点への経路をたどらず、例えば、ジャンプ点から不可避的に遠ざけられることがある。したがって、入力コマンドは、ジャンプゲームプレイをジャンプ点にもたらすために、(例えば、一連の入力コマンドを介して)ユーザへのガイダンスとして提供されることができる。
【0219】
図16は、本開示の一実施形態にかかる、ゲームアプリケーションに参加しているプレイヤに関連する記憶されたゲームプレイ中にキャプチャされたスナップショットに基づいてインスタンス化されたジャンプゲームプレイにおいてジャンプ点にプレイヤを案内するために使用される特徴の図である。示されるように、実行されるとジャンプ点に至る方向にキャラクタ308をガイドするのを助ける一連の入力コマンド1620が表示されることができる。例えば、画像フレーム1610は、ビデオフレーム1211(キャラクタ308の方を向いて歩いている積極的な熊)に関連するジャンプ点1290の前に発生するスナップショット画像360dと密接に対応する。ユーザは、キャラクタ308が森の中を歩いているときなど、(洞窟の前の熊を示す)ビデオフレーム1210に対応するSS-1の前に発生した点でジャンプゲームプレイを開始することを選択することができる。ガイド特徴は、記憶されたゲームプレイにおいてプレイヤによって使用された一連の入力コマンド1620を表示することによって、キャラクタ308をジャンプ点1290に導くのを助ける。さらに、キャラクタ308を正しい方向(例えば、川を渡る方向)に向けるのを助けるために、矢印1630(視覚的補助)のような補助が提示されてもよい。
【0220】
図17は、本開示の一実施形態にかかる、ゲーム方法、より詳細には、ゲームプレイ中に生成されてキャプチャされたスナップショットに基づいてゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイにユーザがジャンプすることを可能にする方法におけるステップを示すフロー
図1700である。フロー
図1700は、ネットワーク150を介して通信しているゲームサーバ205およびクライアント装置100の様々なモジュールによって実行されることができる。特に、フロー
図1700は、ゲームアプリケーションに参加しているプレイヤの記憶されたゲームプレイへの対話型アクセスを提供する方法におけるステップを示す。より具体的には、フロー
図1100の方法は、ゲームプレイ中に生成およびキャプチャされたスナップショットに基づいてユーザが記憶されたゲームプレイにジャンプすることを提供する方法を開示している。フロー
図1100は、クライアント装置200においてネットワーク150を介して表示される情報を生成する目的でクラウドベースのゲームシステム201(例えば、GCS201)のゲームサーバ205側で行われる処理のプロセスおよびデータフローを示している。
【0221】
動作1710において、本方法は、プレイヤのゲームプレイの第1の時点でキャプチャされた開始スナップショットに基づいてゲームアプリケーションのインスタンスを開始することを含む。ゲームアプリケーションのインスタンスは、ジャンプゲームプレイをインスタンス化する。開始スナップショットは、開始スナップショットがゲームプレイ内でキャプチャされた場所に対応する点でゲームアプリケーションのインスタンスのインスタンス化および/または開始を可能にするメタデータおよび/または情報を含む。
【0222】
開始スナップショットは、ゲームプレイのビデオ記録を通して選択可能とすることができる。一実装では、ビデオ記録は、記憶されたゲームプレイが同時にリアルタイムで記憶されるライブゲームプレイとみなされるように、ライブストリーミングビデオである。ビデオ記録内のビデオフレームは、プレイヤのゲームプレイ中の第1の時点でキャプチャされた開始スナップショットを含む、プレイヤのゲームプレイ中に生成されてキャプチャされた1つ以上のスナップショットに関連付けられることができる。例えば、スナップショットは、プレイヤのゲームプレイに関連して実行されたゲームアプリケーションの第1のインスタンスによって生成されたレンダリング画像を含むスナップショット画像を含む。スナップショット画像は、プレイヤのゲームプレイにおける点に対応するビデオフレームに対応し、その点から始まるジャンプゲームプレイを開始するために使用されることができる。
【0223】
動作1720において、本方法は、開始スナップショットに関連する一連の入力コマンドにアクセスすることを含み、一連の入力コマンドは、プレイヤの記憶されたゲームプレイを指示するために以前に使用された。
【0224】
動作1730において、本方法は、ゲームアプリケーションのインスタンスにおいて、一連の入力コマンドに基づき、ユーザのクライアント装置においてレンダリングするための複数の画像フレームを生成することを含む。特に、複数の画像フレームは、ゲームプレイの第1の時点からゲームプレイを再生する。この時点で、ジャンプゲームプレイの再生部分が実行されている。一実施形態では、再生部分は、ビデオ記録のビデオフレームの能動的または受動的選択を介して定義されることができるジャンプ点に達するまで実行される。
【0225】
他の実施形態では、ジャンプ点は、再生部分の間に能動的に定義される。特に、動作1740において、本方法は、複数の画像フレームのうちの選択された画像フレームでジャンプゲームプレイのライブ部分を開始するための開始要求を受信することを含む。例えば、再生部分中に複数の画像フレームが表示されているとき、第1の画像フレームとの能動的または受動的対話は、ライブ部分を開始するための開始要求を提供し、その後、ジャンプゲームプレイは、ユーザのクライアント装置からの入力コマンドの処理によってユーザにとってライブになる。さらに、実行されていないシーケンス内の残りの入力コマンドがジャンプゲームプレイをインスタンス化するゲームアプリケーションのインスタンスでの実行からブロックされるように、再生部分は非アクティブ化される。そのようにして、(ビデオ記録のビデオフレームを介して選択された)以前に定義されたジャンプ点が再生部分の間に再定義されることができるように、ジャンプ点は、再生部分の間に選択可能とすることができる。例えば、ユーザは、ジャンプゲームプレイ内で積極的に対話を始めたいと思うことがある。他の実装では、ジャンプ点は、ジャンプゲームプレイの再生部分との対話を通じて最初に定義されてもよい。
【0226】
ゲームプレイのビデオ記録を介して同じまたは他のユーザの以前に実行されたゲームプレイにプレビューおよび/またはジャンプするために使用される複数のユーザのビデオゲームのゲームプレイにおける点のスナップショットの生成およびキャプチャを実証するために特定の実施形態が提供されているが、これらは、例として記載されており、限定として記載されていない。本開示を読んだ当業者は、本開示の精神および範囲内に含まれるさらなる実施形態を理解するであろう。
【0227】
現在の実施形態のゲームへのアクセスを提供するなど、広い地理的領域にわたって配信されるアクセスサービスは、クラウドコンピューティングを使用することが多いことに留意されたい。クラウドコンピューティングは、動的にスケーラブルであり且つ大抵の場合に仮想化されたリソースがインターネット上のサービスとして提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家になる必要はありません。クラウドコンピューティングは、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのソフトウェア(SaaS)など、様々なサービスに分類されることができる。クラウドコンピューティングサービスは、大抵の場合、ウェブブラウザからアクセスされるビデオゲームなどの一般的なアプリケーションをオンラインで提供し、ソフトウェアおよびデータは、クラウド内のサーバに記憶される。クラウドという用語は、インターネットがコンピュータネットワーク図でどのように表現されているかに基づいて、インターネットの比喩として使用され、それが隠蔽する複雑なインフラストラクチャの抽象概念である。
【0228】
ゲーム処理サーバ(GPS)(または単に「ゲームサーバ」)は、シングルおよびマルチプレイヤビデオゲームをプレイするためにゲームクライアントによって使用される。インターネットを介してプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームは、プレイヤからデータを収集して他のプレイヤに配信する専用のサーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的で効果的であるが、サーバアプリケーションをホストするために他のサーバが必要である。他の実施形態では、GPSは、集中型GPSに頼ることなく情報を交換するためにプレイヤとそれらの各ゲームプレイ装置との間の通信を確立する。
【0229】
専用GPSは、クライアントとは独立して動作するサーバである。そのようなサーバは、通常、データセンタにある専用ハードウェア上で稼働し、より広い帯域幅と専用処理能力を提供する。専用サーバは、ほとんどのPCベースの多人数参加型ゲームについてのゲームサーバをホストするための好ましい方法である。大規模多人数参加型オンラインゲームは、通常、ゲームタイトルを所有するソフトウェア会社によってホストされる専用サーバ上で実行され、コンテンツを制御および更新することを可能にする。
【0230】
ユーザは、少なくともCPU、ディスプレイ、およびI/Oを含むクライアント装置を使用してリモートサービスにアクセスする。クライアント装置は、PC、携帯電話、ネットブック、PDAなどとすることができる。一実施形態では、ゲームサーバ上で実行されているネットワークは、クライアントによって使用される装置の種類を認識し、使用される通信方法を調整する。他の場合では、クライアント装置は、インターネットを介してゲームサーバ上のアプリケーションにアクセスするために、htmlなどの標準的な通信方法を使用する。
【0231】
本開示の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成を用いて実施されることができる。本開示はまた、有線または無線ネットワークを介してリンクされているリモート処理装置によってタスクが実行される分散コンピューティング環境でも実施されることができる。
【0232】
所与のビデオゲームは、特定のプラットフォームおよび特定の関連するコントローラ装置用に開発されてもよいことを理解されたい。しかしながら、そのようなゲームが本明細書に提示されるようなゲームクラウドシステムを介して利用可能にされるとき、ユーザは、異なるコントローラ装置を用いてビデオゲームにアクセスしていることがある。例えば、ゲームは、ゲーム機およびそれに関連するコントローラ用に開発されているのに対して、ユーザは、キーボードおよびマウスを利用してパーソナルコンピュータからクラウド版のゲームにアクセスしていることがある。そのようなシナリオでは、入力パラメータ設定は、ユーザの利用可能なコントローラ装置(この場合にはキーボードおよびマウス)によって生成されることができる入力からビデオゲームの実行に受け入れられる入力へのマッピングを定義することができる。
【0233】
他の例では、ユーザは、タブレットコンピューティング装置、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動装置を介してクラウドゲームシステムにアクセスすることができる。この場合、クライアント装置とコントローラ装置は、同じ装置内にともに統合され、入力は検出されたタッチスクリーン入力/ジェスチャによって提供される。そのような装置の場合、入力パラメータ設定は、ビデオゲーム用のゲーム入力に対応する特定のタッチスクリーン入力を定義することができる。例えば、ボタン、方向パッド、または他の種類の入力要素は、ユーザがゲーム入力を生成するためにタッチすることができるタッチスクリーン上の位置を示すためにビデオゲームの実行中に表示またはオーバーレイされてもよい。特定の方向へのスワイプまたは特定のタッチ動作などのジェスチャもまた、ゲーム入力として検出されることができる。一実施形態では、ユーザをタッチスクリーン上のコントロールの操作に順応させるために、例えば、ビデオゲームのゲームプレイを開始する前に、ゲームプレイのためにタッチスクリーンを介して入力を提供する方法を示すチュートリアルがユーザに提供されることができる。
【0234】
いくつかの実施形態では、クライアント装置は、コントローラ装置用の接続点として機能する。すなわち、コントローラ装置は、無線または有線接続を介してクライアント装置と通信し、コントローラ装置からクライアント装置へ入力を送信する。クライアント装置は、次にこれらの入力を処理し、次いで(例えば、ルータなどのローカルネットワーキング装置を介してアクセスされる)ネットワークを介してクラウドゲームサーバに入力データを送信することができる。しかしながら、他の実施形態では、コントローラは、それ自体がネットワーク化された装置とすることができ、最初にクライアント装置を介してそのような入力を通信する必要なしに、ネットワークを介してクラウドゲームサーバに直接通信することができる。例えば、コントローラは、クラウドゲームサーバとの間でデータを送受信するために(前述のルータなどの)ローカルネットワーキング装置に接続することができる。したがって、クライアント装置は、依然としてクラウドベースのビデオゲームからビデオ出力を受信し、それをローカルディスプレイ上にレンダリングすることを必要とすることがあるが、コントローラがネットワークを介してクライアント装置をバイパスしてクラウドゲームサーバに直接入力を送信できるようにすることによって入力待ち時間を短縮することができる。
【0235】
一実施形態では、ネットワーク化されたコントローラおよびクライアント装置は、特定の種類の入力をコントローラからクラウドゲームサーバに直接送信し、他の種類の入力を、クライアント装置を介して送信するように構成されることができる。例えば、検出がコントローラ自体とは他の追加のハードウェアまたは処理に依存しない入力は、クライアント装置をバイパスしてネットワークを介してコントローラからクラウドゲームサーバに直接送信されることができる。そのような入力は、ボタン入力、ジョイスティック入力、埋め込まれた動き検出入力(例えば、加速度計、磁力計、ジャイロスコープ)などを含むことができる。しかしながら、追加のハードウェアを利用するか、またはクライアント装置による処理を必要とする入力は、クライアント装置によってクラウドゲームサーバに送信されることができる。これらは、クラウドゲームサーバに送信する前にクライアント装置によって処理されることができるゲーム環境からキャプチャされたビデオまたはオーディオを含むことができる。さらに、コントローラの動き検出ハードウェアからの入力は、キャプチャされたビデオとともにクライアント装置によって処理されてコントローラの位置および動きを検出することができ、その後にクライアント装置によってクラウドゲームサーバに通信される。様々な実施形態にかかるコントローラ装置はまた、クライアント装置からまたはクラウドゲームサーバから直接、データ(例えば、フィードバックデータ)を受信してもよいことを理解されたい。
【0236】
本明細書に記載の実施形態は、任意の種類のクライアント装置上で実行されることができることを理解されたい。いくつかの実施形態では、クライアント装置は、ヘッドマウントディスプレイ(HMD)である。
【0237】
図18には、本開示の一実施形態にかかる、ヘッドマウントディスプレイ1850の構成要素を示す図が示されている。ヘッドマウントディスプレイ1850は、プログラム命令を実行するためのプロセッサ1800を含む。メモリ1802は、記憶目的で提供され、揮発性メモリと不揮発性メモリの双方を含むことができる。ユーザが見ることができる視覚的インターフェースを提供するディスプレイ1804が含まれる。ヘッドマウントディスプレイ1850の電源として電池1806が設けられている。動き検出モジュール1808は、磁力計1810、加速度計1812、およびジャイロスコープ1814などの任意の様々な種類の動き検知ハードウェアを含むことができる。
【0238】
加速度計は、加速度と重力による反力を測定するための装置である。加速度の大きさおよび方向を様々な方向で検出するために単軸および多軸モデルが利用可能である。加速度計は、傾き、振動、および衝撃を検知するために使用される。一実施形態では、2つの角度(世界空間ピッチおよび世界空間ロール)に対する絶対基準を与える重力方向を提供するために3つの加速度計1812が使用される。
【0239】
磁力計は、ヘッドマウントディスプレイ付近の磁界の強度および方向を測定する。一実施形態では、3つの磁力計1810がヘッドマウントディスプレイ内で使用され、世界空間ヨー角に対する絶対基準を保証する。一実施形態では、磁力計は、±80マイクロテスラである地球磁場に及ぶように設計されている。磁力計は、金属の影響を受け、実際のヨーと単調なヨー測定を提供する。環境内の金属によって磁場が反っていることがあり、これはヨー測定に反りを引き起こす。必要に応じて、この反りは、ジャイロスコープやカメラなどの他のセンサからの情報を使用して較正されることができる。一実施形態では、加速度計1812は、ヘッドマウントディスプレイ1850の傾斜および方位角を取得するために磁力計1810とともに使用される。
【0240】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定または維持するための装置である。一実施形態では、3つのジャイロスコープ1814は、慣性検知に基づいて各軸(x、y、およびz)を横切る動きに関する情報を提供する。ジャイロスコープは、速い回転を検出するのを助ける。しかしながら、ジャイロスコープは、絶対基準の存在なしに時間とともにドリフトする可能性がある。これは、ジャイロスコープを定期的にリセットすることを必要とし、これは、オブジェクトの視覚的追跡、加速度計、磁力計などに基づく位置/方位決定の他の利用可能な情報を使用して行うことができる。
【0241】
カメラ1816は、現実環境の画像および画像ストリームをキャプチャするために提供される。背面向き(ユーザがヘッドマウントディスプレイ1850のディスプレイを見ているときにユーザから離れる方向に向いている)のカメラと、正面向き(ユーザがヘッドマウントディスプレイ1850のディスプレイを見ているときにユーザに向いている)のカメラとを含む、2つ以上のカメラがヘッドマウントディスプレイ1850に含まれてもよい。さらに、現実環境におけるオブジェクトの奥行き情報を検知するために、深度カメラ1818がヘッドマウントディスプレイ1850に含まれてもよい。
【0242】
一実施形態では、HMDの前面に組み込まれたカメラを使用して安全性に関する警告を出すことができる。例えば、ユーザが壁またはオブジェクトに近付いている場合、ユーザは警告されてもよい。一実施形態では、ユーザには、部屋内の物理的オブジェクトの外形図が提供され、それらの存在をユーザに警告することができる。外形は、例えば、仮想環境におけるオーバーレイとすることができる。いくつかの実施形態では、HMDユーザには、例えば床にオーバーレイされる、基準マーカへのビューが提供されてもよい。例えば、マーカは、部屋の中心がどこにあり、ユーザがどこでゲームをプレイしているかの基準をユーザに提供することができる。これは、例えば、部屋の壁または他のオブジェクトにぶつかることを回避するためにユーザが移動すべき場所の視覚的情報をユーザに提供することができる。ユーザがゲームを身に着けてプレイしたり、HMDでコンテンツをナビゲートしたりするときの安全性を高めるために、触覚警告および/または音声警告がユーザに提供されることもできる。
【0243】
ヘッドマウントディスプレイ1850は、音声出力を提供するためのスピーカ1820を含む。また、マイクロフォン1822は、周囲環境からの音、ユーザによって行われたスピーチなどを含む、現実環境からの音声を取り込むために含まれてもよい。ヘッドマウントディスプレイ1850は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール1824を含む。一実施形態では、触覚フィードバックモジュール1824は、触覚フィードバックをユーザに提供するように、ヘッドマウントディスプレイ1850の移動および/または振動を引き起こすことができる。
【0244】
ヘッドマウントディスプレイ1850の状態の視覚的指標としてLED1826が設けられている。例えば、LEDは、電池残量、電源オンなどを示すことができる。ヘッドマウントディスプレイ1850がメモリカードに情報を読み書きすることを可能にするためにカードリーダ1828が設けられている。USBインターフェース1830は、周辺装置の接続、または他の携帯型装置、コンピュータなどの他の装置への接続を可能にするためのインターフェースの一例として含まれる。ヘッドマウントディスプレイ1850の様々な実施形態において、ヘッドマウントディスプレイ1850のより大きな接続性を可能にするために、様々な種類のインターフェースのうちのいずれかが含まれることができる。
【0245】
無線ネットワーキング技術を介してインターネットへの接続を可能にするためにWiFi(登録商標)モジュール1832が含まれる。また、ヘッドマウントディスプレイ1850は、他の装置への無線接続を可能にするためのブルートゥース(登録商標)モジュール1834を含む。他の装置への接続のために通信リンク1836も含まれてもよい。一実施形態では、通信リンク1836は、無線通信に赤外線送信を利用する。他の実施形態では、通信リンク1836は、他の装置との通信のために様々な無線または有線伝送プロトコルのうちのいずれかを利用することができる。
【0246】
ユーザに入力インターフェースを提供するために入力ボタン/センサ1838が含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなど、様々な種類の入力インターフェースのいずれかが含まれることができる。超音波通信モジュール1840は、超音波技術による他の装置との通信を容易にするためにヘッドマウントディスプレイ1850に含まれてもよい。
【0247】
バイオセンサ1842は、ユーザからの生理学的データの検出を可能にするために含まれる。一実施形態では、バイオセンサ1842は、ユーザの皮膚を介してユーザの生体電気信号を検出するための1つ以上の乾式電極を含む。
【0248】
ヘッドマウントディスプレイ1850の前述の構成要素は、ヘッドマウントディスプレイ1850に含まれることができる単なる例示的な構成要素として説明されてきた。本開示の様々な実施形態において、ヘッドマウントディスプレイ1850は、様々な前述の構成要素のうちのいくつかを含んでも含まなくてもよい。ヘッドマウントディスプレイ1850の実施形態は、本明細書に記載の本開示の態様を容易にする目的で、現在記載されていないが当該技術分野で知られている他の構成要素をさらに含むことができる。
【0249】
当業者であれば、本開示の様々な実施形態では、上述したハンドヘルド装置がディスプレイ上に表示される対話型アプリケーションとともに利用されて様々な対話機能を提供することができることを理解されよう。本明細書に記載の例示的な実施形態は、例としてのみ提供されており、限定として提供されていない。
【0250】
図19は、本開示の様々な実施形態にかかる、ゲームシステム1900のブロック図である。ゲームシステム1900は、ネットワーク1915を介して1つ以上のクライアント1910にビデオストリームを提供するように構成されている。ゲームシステム1900は、通常、ビデオサーバシステム1920と任意のゲームサーバ1925とを含む。ビデオサーバシステム1920は、最小限のサービス品質でビデオストリームを1つ以上のクライアント1910に提供するように構成されている。例えば、ビデオサーバシステム1920は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、この状態の変更を反映する更新されたビデオストリームを最小の遅延時間でクライアント1910に提供することができる。ビデオサーバシステム1920は、まだ定義されていないフォーマットを含む多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成されてもよい。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されたビデオフレームを含むことができる。一般的なフレームレートは、毎秒30フレーム、毎秒60フレーム、毎秒1920フレームである。より高いまたはより低いフレームレートは、本開示の代替実施形態に含まれる。
【0251】
本明細書で個々に1910A、1910Bなどと呼ばれるクライアント1910は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲーム機、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線装置、デジタルパッド、スタンドアロン装置、ハンドヘルドゲームプレイ装置などを含むことができる。通常、クライアント1910は、符号化ビデオストリームを受信(すなわち、圧縮)し、ビデオストリームを復号し、その結果得られるビデオをユーザ、例えばゲームのプレイヤに提示するように構成されている。符号化ビデオストリームを受信すること、および/またはビデオストリームを復号することのプロセスは、通常、個々のビデオフレームをクライアントの受信バッファに記憶することを含む。ビデオストリームは、クライアント1910に一体化されたディスプレイ上で、またはモニタもしくはテレビなどの別個の装置上でユーザに提示されることができる。クライアント1910は、必要に応じて、2人以上のゲームプレイヤをサポートするように構成されている。例えば、ゲーム機は、2人、3人、4人またはそれ以上の同時プレイヤをサポートするように構成されてもよい。これらの各プレイヤは、別々のビデオストリームを受信することができ、あるいは単一のビデオストリームは、各プレイヤのために特に生成された、例えば各プレイヤの視点に基づいて生成されたフレームの領域を含むことができる。クライアント1910は、必要に応じて地理的に分散している。ゲームシステム1900に含まれるクライアントの数は、1または2から数千、数万、またはそれ以上まで幅広く変化することができる。本明細書で使用される場合、用語「ゲームプレイヤ」は、ゲームをプレイする人を指すのに使用され、用語「ゲームプレイ装置」は、ゲームをプレイするのに使用される装置を指すのに使用される。いくつかの実施形態では、ゲームプレイ装置は、ゲーム体験をユーザに提供するために協働する複数のコンピューティング装置を指すことがある。例えば、ゲーム機およびHMDは、ビデオサーバシステム1920と協働して、HMDを介して見たゲームを配信することができる。一実施形態では、ゲーム機は、ビデオサーバシステム1920からビデオストリームを受信し、ゲーム機は、レンダリングのためにビデオストリームをHMDに転送するか、またはビデオストリームを更新する。
【0252】
クライアント1910は、ネットワーク1915を介してビデオストリームを受信するように構成されている。ネットワーク1915は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む任意の種類の通信ネットワークとすることができる。典型的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信される。
【0253】
クライアント1910の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信機能、および入力装置を備えるパーソナルコンピュータである。復号ロジックは、コンピュータ可読媒体に記憶されたハードウェア、ファームウェア、および/またはソフトウェアを含むことができる。ビデオストリームを復号(および符号化)するためのシステムは、当該技術分野で周知であり、使用される特定の符号化方式に応じて変わる。
【0254】
クライアント1910は、受信したビデオを修正するように構成されたシステムをさらに含むことができるが、必ずしもそうである必要はない。例えば、クライアントは、さらなるレンダリングを実行し、1つのビデオ画像を他のビデオ画像上にオーバーレイし、ビデオ画像をトリミングするなどのために構成されることができる。例えば、クライアント1910は、Iフレーム、Pフレーム、およびBフレームなどの様々な種類のビデオフレームを受信し、これらのフレームをユーザに表示するために画像に処理するように構成されることができる。いくつかの実施形態では、クライアント1910の会員は、ビデオストリームに対してさらなるレンダリング、シェーディング、3Dへの変換、または同様の動作を実行するように構成される。クライアント1910の会員は、必要に応じて、複数のオーディオまたはビデオストリームを受信するように構成される。クライアント1910の入力装置は、例えば、いまだ開発されている片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバック装置、動きおよび/または位置検知装置、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、入力装置などを含むことができる。
【0255】
クライアント1910によって受信されたビデオストリーム(および必要に応じてオーディオストリーム)は、ビデオサーバシステム1920によって生成されて提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームは、ビデオフレームを含む(そしてオーディオストリームは、オーディオフレームを含む)。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される(例えば、それらは適切なデータ構造における画素情報を含む)。本明細書で使用される場合、用語「ビデオフレーム」は、ユーザに見せられる画像に寄与する、例えば画像を引き起こすように構成されている情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示の大部分はまた、「オーディオフレーム」にも適用することができる。
【0256】
クライアント1910は、通常、ユーザからの入力を受信するように構成されている。これらの入力は、ビデオゲームの状態を変更するか、または他の方法でゲームプレイに影響を与えるように構成されたゲームコマンドを含むことができる。ゲームコマンドは、入力装置を使用して受信されることができ、および/またはクライアント1910上で実行される計算命令によって自動的に生成されることができる。受信したゲームコマンドは、クライアント1910からネットワーク1915を介してビデオサーバシステム1920および/またはゲームサーバ1925に通信される。例えば、いくつかの実施形態において、ゲームコマンドは、ビデオサーバシステム1920を介してゲームサーバ1925に通信される。いくつかの実施形態では、ゲームコマンドの別々のコピーがクライアント1910からゲームサーバ1925およびビデオサーバシステム1920に通信される。ゲームコマンドの通信は、必要に応じて、コマンドの識別に依存する。ゲームコマンドは、オーディオまたはビデオストリームをクライアント1910Aに提供するために使用されたものとは異なる経路または通信チャネルを介してクライアント1910Aから必要に応じて通信される。
【0257】
ゲームサーバ1925は、ビデオサーバシステム1920とは異なるエンティティによって必要に応じて動作される。例えば、ゲームサーバ1925は、多人数参加型ゲームの発行者によって運営されてもよい。この例では、ビデオサーバシステム1920は、ゲームサーバ1925によって必要に応じてクライアントとして見られ、必要に応じて、ゲームサーバ1925の観点から見ると、先行技術のゲームエンジンを実行する先行技術のクライアントであるように構成される。ビデオサーバシステム1920とゲームサーバ1925との間の通信は、必要に応じてネットワーク1915を介して行われる。したがって、ゲームサーバ1925は、ゲーム状態情報を複数のクライアントに送信する先行技術の多人数参加型ゲームサーバとすることができ、そのうちの1つはゲームサーバシステム1920である。ビデオサーバシステム1920は、ゲームサーバ1925の複数のインスタンスと同時に通信するように構成されてもよい。例えば、ビデオサーバシステム1920は、複数の異なるビデオゲームを異なるユーザに提供するように構成されることができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ1925によってサポートされてもよく、および/または異なるエンティティによって公開されてもよい。いくつかの実施形態では、ビデオサーバシステム1920のいくつかの地理的に分散したインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム1920のこれらの各インスタンスは、ゲームサーバ1925の同じインスタンスと通信することができる。ビデオサーバシステム1920と1つ以上のゲームサーバ1925との間の通信は、必要に応じて、専用の通信チャネルを介して行われる。例えば、ビデオサーバシステム1920は、これら2つのシステム間の通信に専用の高帯域幅チャネルを介してゲームサーバ1925に接続されることができる。
【0258】
ビデオサーバシステム1920は、少なくともビデオソース1930、I/O装置1945、プロセッサ1950、および非一時的記憶装置1955を含む。ビデオサーバシステム1920は、1つのコンピューティング装置を含むことができるか、または複数のコンピューティング装置の間で分散されることができる。これらのコンピューティング装置は、必要に応じて、ローカルエリアネットワークなどの通信システムを介して接続される。
【0259】
ビデオソース1930は、ビデオストリーム、例えばストリーミングビデオまたは動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース1930は、ビデオゲームエンジンおよびレンダリングロジックを含む。ビデオゲームエンジンは、プレイヤからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、および通常は視点を含む。ゲーム状態はまた、オブジェクトの特性、画像、色および/またはテクスチャも含むことができる。
【0260】
ゲーム状態は、通常、ゲームルール、ならびに移動、回転、攻撃、フォーカス設定、対話、使用などのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、必要に応じて、ゲームサーバ1925内に配置される。ゲームサーバ1925は、地理的に分散したクライアントを使用して複数のプレイヤから受信したゲームコマンドに基づいてゲームの状態のコピーを維持することができる。これらの場合、ゲーム状態は、ゲームサーバ1925によってビデオソース1930に提供され、ゲーム状態のコピーが記憶され、レンダリングが実行される。ゲームサーバ1925は、ネットワーク1915を介してクライアント1910から直接ゲームコマンドを受信してもよく、および/またはビデオサーバシステム1920を介してゲームコマンドを受信してもよい。
【0261】
ビデオソース1930は、通常、例えば、記憶装置1955などのコンピュータ可読媒体に記憶されたハードウェア、ファームウェア、および/またはソフトウェアなどのレンダリングロジックを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成されている。レンダリングロジックの全部または一部は、必要に応じて、グラフィック処理ユニット(GPU)内に配置される。レンダリングロジックは、通常、ゲーム状態および視点に基づいて、オブジェクト間の三次元空間的関係を決定するため、および/または適切なテクスチャなどを適用するために構成された処理段階を含む。レンダリングロジックは、通常、クライアント1910への通信前に符号化される生のビデオを生成する。例えば、生のビデオは、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フレームよりもデータサイズが小さい。本明細書で使用される場合、用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するのに必要なバイト数を指すために使用される。
【0262】
代替実施形態では、ビデオソース1930は、カメラなどのビデオ記録装置を含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延またはライブビデオを生成するために使用されることができる。結果として得られるビデオストリームは、レンダリング画像と、スチルカメラまたはビデオカメラを使用して記録された画像との双方を必要に応じて含む。ビデオソース1930はまた、ビデオストリームに含まれるべき以前に記録されたビデオを記憶するように構成された記憶装置を含むことができる。ビデオソース1930はまた、例えば人などのオブジェクトの動きまたは姿勢を検出するように構成された動きまたは姿勢検知装置と、検出された動きおよび/または姿勢に基づいてゲーム状態を判定またはビデオを生成するように構成されたロジックとを含むことができる。
【0263】
ビデオソース1930は、必要に応じて、他のビデオ上に配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン命令、ゲームプレイヤへのメッセージ、他のゲームプレイヤの画像、他のゲームプレイヤのビデオフィード(例えば、ウェブカメラビデオ)を含むことができる。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント1910Aの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッドなどを含むことができる。オーバーレイの一例では、プレイヤの声がオーディオストリームにオーバーレイされる。ビデオソース1930は、必要に応じて、1つ以上のオーディオソースをさらに含む。
【0264】
ビデオサーバシステム1920が2人以上のプレイヤからの入力に基づいてゲーム状態を維持するように構成されている実施形態では、各プレイヤは、位置および視界方向を含む異なる視点を有することができる。ビデオソース1930は、必要に応じて、それらの視点に基づいて各プレイヤに別々のビデオストリームを提供するように構成される。さらに、ビデオソース1930は、異なるフレームサイズ、フレームデータサイズ、および/または符号化をクライアント1910のそれぞれに提供するように構成されることができる。ビデオソース1930は、必要に応じて、3-Dビデオを供給するように構成される。
【0265】
I/O装置1945は、ビデオサーバシステム1920が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、装置動作、装置位置、ユーザ動作、クライアント識別、プレイヤ識別、ゲームコマンド、セキュリティ情報、オーディオなどの情報を送信および/または受信するように構成される。I/O装置1945は、通常、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/O装置1945は、ゲームサーバ1925、ネットワーク1915、および/またはクライアント1910と通信するように構成される。
【0266】
プロセッサ1950は、例えば、本明細書において説明されるビデオサーバシステム1920の様々な構成要素内に含まれるソフトウェアなどのロジックを実行するように構成される。例えば、プロセッサ1950は、ビデオソース1930、ゲームサーバ1925、および/またはクライアントクォリファイア1960の機能を実行するためにソフトウェア命令でプログラムされてもよい。ビデオサーバシステム1920は、必要に応じて、プロセッサ1950の複数のインスタンスを含む。プロセッサ1950はまた、ビデオサーバシステム1920によって受信したコマンドを実行するために、または本明細書において説明されるゲームシステム1900の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされてもよい。プロセッサ1950は、1つ以上のハードウェア装置を含むことができる。プロセッサ1950は、電子プロセッサである。
【0267】
記憶装置1955は、非一時的アナログおよび/またはデジタル記憶装置を含む。例えば、記憶装置1955は、ビデオフレームを記憶するように構成されたアナログ記憶装置を含むことができる。記憶装置1955は、例えば、ハードドライブ、光ドライブ、またはソリッドステート記憶装置などのコンピュータ可読デジタル記憶装置を含むことができる。記憶装置1955は、(例えば、適切なデータ構造またはファイルシステムによって)ビデオフレーム、人工フレーム、ビデオフレームと人工フレームの双方を含むビデオストリーム、オーディオフレーム、および/またはオーディオストリームなどを記憶するように構成される。記憶装置1955は、必要に応じて、複数の装置間に分散される。いくつかの実施形態では、記憶装置1955は、本明細書の他の場所で説明されるビデオソース1930のソフトウェアコンポーネントを記憶するように構成される。これらのコンポーネントは、必要に応じて、プロビジョニングできるように準備された形式で記憶されることができる。
【0268】
ビデオサーバシステム1920は、必要に応じて、クライアントクォリファイア1960をさらに備える。クライアントクォリファイア1960は、クライアント1910Aまたは1910Bなどのクライアントの機能を遠隔で判定するように構成される。これらの機能は、クライアント1910A自体の機能と、クライアント1910Aとビデオサーバシステム1920との間の1つ以上の通信チャネルの機能との双方を含むことができる。例えば、クライアントクォリファイア1960は、ネットワーク1915を介して通信チャネルをテストするように構成されることができる。
【0269】
クライアントクォリファイア1960は、クライアント1910Aの機能を手動でまたは自動的に判定する(例えば、発見する)ことができる。手動判定は、クライアント1910Aのユーザと通信すること、およびユーザに機能を提供するように求めることを含む。例えば、いくつかの実施形態では、クライアントクォリファイア1960は、クライアント1910Aのブラウザ内に画像、テキストなどを表示するように構成される。一実施形態では、クライアント1910Aは、ブラウザを含むHMDである。他の実施形態では、クライアント1910Aは、HMDに表示されることができるブラウザを有するゲーム機である。表示されたオブジェクトは、クライアント1910Aのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、表示解像度などの情報をユーザが入力することを要求する。ユーザによって入力された情報は、クライアントクォリファイア1960に返信される。
【0270】
自動判定は、例えば、クライアント1910A上でエージェントを実行することによって、および/またはクライアント1910Aにテストビデオを送信することによって行うことができる。エージェントは、ウェブページに埋め込まれたまたはアドオンとしてインストールされたジャバスクリプトなどの計算命令を含むことができる。エージェントは、必要に応じて、クライアントクォリファイア1960によって提供される。様々な実施形態において、エージェントは、クライアント1910Aの処理能力、クライアント1910Aの復号および表示能力、クライアント1910Aとビデオサーバシステム1920との間の遅延時間信頼性および通信チャネルの帯域幅、クライアント1910Aの表示タイプ、クライアント1910A上に存在するファイアウォール、クライアント1910Aのハードウェア、クライアント1910A上で実行されるソフトウェア、クライアント1910A内のレジストリエントリなどを見出すことができる。
【0271】
クライアントクォリファイア1960は、コンピュータ可読媒体に記憶されたハードウェア、ファームウェア、および/またはソフトウェアを含む。クライアントクォリファイア1960は、必要に応じて、ビデオサーバシステム1920の1つ以上の他の要素とは他のコンピューティング装置上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア1960は、クライアント1910とビデオサーバシステム1920の複数のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施形態では、ビデオサーバシステム1920のどのインスタンスがクライアント1910のうちの1つへのストリーミングビデオの配信に最も適しているかを判定するために、クライアントクォリファイアによって発見された情報が使用されることができる。
【0272】
本明細書で定義された様々な実施形態は、本明細書で開示された様々な特徴を使用して特定の実装を組み合わせることができるまたは組み立てることができることを理解されたい。したがって、提供される例は、いくつかの可能な例にすぎず、さらに多くの実装を定義するために様々な要素を組み合わせることによって可能である様々な実装に限定されるものではない。いくつかの例では、いくつかの実装は、開示されたまたは同等の実装の精神から逸脱することなく、より少ない要素を含むことができる。
【0273】
本開示の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成を用いて実施されることができる。本開示の実施形態はまた、有線または無線ネットワークを介してリンクされている遠隔処理装置によってタスクが実行される分散コンピューティング環境でも実施されることができる。
【0274】
上記の実施形態を念頭に置いて、本開示の実施形態は、コンピュータシステムに記憶されたデータを含む様々なコンピュータ実装動作を使用することができることを理解されたい。これらの動作は、物理量の物理的操作を必要とするものである。本開示の実施形態の一部を形成する本明細書に記載される動作のいずれも、有用な機械動作である。本開示の実施形態はまた、これらの動作を実行するための機器または装置に関する。装置は、要求される目的のために特別に構成されることができ、または装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動されるかまたは構成される汎用コンピュータとすることができる。特に、本明細書の教示にしたがって書かれたコンピュータプログラムとともに様々な汎用機械が使用されることができ、または必要な動作を実行するためにより専門的な装置を構築することがより便利であり得る。
【0275】
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとして具現化されることもできる。コンピュータ可読媒体は、データを記憶することができ、その後にコンピュータシステムによって読み取られることができる任意のデータ記憶装置である。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続記憶装置(NAS)、読み出し専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学的および非光学的データ記憶装置を含む。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で記憶および実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
【0276】
本方法の動作は、特定の順序で説明されたが、他のハウスキーピング動作は、オーバーレイ動作の処理が所望の方法で実行される限り、動作間で実行されてもよく、または動作が僅かに異なる時間に行われるように調整されてもよく、または処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散されてもよいことを理解されたい。
【0277】
理解を明確にするために前述の開示がある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変形および変更が実施されることができることは明らかであろう。したがって、本実施形態は、限定的ではなく例示的とみなされるべきであり、本開示の実施形態は、本明細書に与えられる詳細に限定されるべきではなく、添付の特許請求の範囲およびその均等物の範囲内で変更されることができる。
【手続補正書】
【提出日】2022-07-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
サーバにおいてビデオゲームを実行して前記ビデオゲームをプレイするユーザのライブゲームプレイの複数のビデオフレームを生成するステップと、
前記ライブゲームプレイにおけるキャプチャ点でスナップショットをキャプチャするステップであって、前記複数のビデオフレームは、前記スナップショットに関連付けられている、キャプチャするステップと、
前記ライブゲームプレイの前記複数のビデオフレームを符号化するステップと、
符号化された前記ライブゲームプレイの前記複数のビデオフレームを観客のクライアント装置にライブストリーミングして、前記観客が前記ユーザの前記ライブゲームプレイを見ることができるようにするステップと、
前記ライブゲームプレイの前記複数のビデオフレームにおいて、前記ライブゲームプレイにおけるジャンプ点に対応するビデオフレームの選択を前記クライアント装置から受信するステップと、
前記スナップショットを用いて前記ビデオゲームのインスタンスをインスタンス化し、前記ジャンプ点から始まる前記観客からの複数の入力コントロールによって制御されるジャンプゲームプレイを開始するステップとを備える、方法。
【請求項2】
前記ジャンプゲームプレイにおける前記ビデオゲームの前記インスタンスを自動的に実行し、前記ライブゲームプレイからキャプチャされた複数の入力コマンドを用いて、前記キャプチャ点から前記ジャンプ点までの前記ライブゲームプレイを再生するステップをさらに備え、前記複数の入力コマンドは前記スナップショットと関連付けられている、請求項1に記載の方法。
【請求項3】
前記ライブゲームプレイの再生中に前記ジャンプゲームプレイを前記ジャンプ点まで進めるステップ、または
前記ライブゲームプレイの再生中に前記ジャンプゲームプレイを前記ジャンプ点まで巻き戻すステップをさらに備える、請求項2に記載の方法。
【請求項4】
前記ライブゲームプレイが前記キャプチャ点から前記ジャンプ点まで再生される間、前記クライアント装置から受信された1つ以上の入力コマンドの実行をブロックするステップをさらに備える、請求項2に記載の方法。
【請求項5】
前記ライブゲームプレイに関連付けられた前記ユーザ、または前記観客からの指示なしで、前記ライブゲームプレイ中に複数のスナップショットを自動的にキャプチャするステップと、
前記キャプチャ点に対応する前記スナップショットが前記ジャンプ点に最も近いことを判定するステップとをさらに備え、
前記スナップショットの前記キャプチャ点が、前記ライブゲームプレイの前記ジャンプ点より前に発生するか、または前記ライブゲームプレイの前記ジャンプ点より後に発生し、
前記複数のスナップショットの各々は、2つのスナップショット間で前記ジャンプゲームプレイの実行を可能にする対応する入力コマンドのセットに関連付けられている、請求項1に記載の方法。
【請求項6】
前記複数のスナップショットを格納するステップと、
前記複数のスナップショットのそれぞれについて、前記対応する入力コマンドのセットを格納するステップとをさらに備える、請求項5に記載の方法。
【請求項7】
前記ビデオゲームの前記インスタンスの実行中に、前記ジャンプゲームプレイの第2の複数のビデオフレームを生成するステップと、
前記第2の複数のビデオフレームを符号化するステップと、
前記第2の複数のビデオフレームを前記観客の前記クライアント装置にストリーミングするステップとをさらに備える、請求項1に記載の方法。
【請求項8】
前記観客の前記クライアント装置への前記ライブゲームプレイの前記複数のビデオフレームのライブストリーミングを中止するステップをさらに備える、請求項7に記載の方法。
【請求項9】
方法を実行するためのコンピュータプログラムを格納する非一時的コンピュータ読み取り可能媒体であって、前記非一時的コンピュータ読み取り可能媒体は、
サーバにおいてビデオゲームを実行して前記ビデオゲームをプレイするユーザのライブゲームプレイの複数のビデオフレームを生成するためのプログラム命令と、
前記ライブゲームプレイにおけるキャプチャ点でスナップショットをキャプチャするためのプログラム命令であって、前記複数のビデオフレームは、前記スナップショットに関連付けられている、キャプチャするためのプログラム命令と、
前記ライブゲームプレイの前記複数のビデオフレームを符号化するためのプログラム命令と、
符号化された前記ライブゲームプレイの前記複数のビデオフレームを観客のクライアント装置にライブストリーミングして、前記観客が前記ユーザの前記ライブゲームプレイを見ることができるようにするためのプログラム命令と、
前記ライブゲームプレイの前記複数のビデオフレームにおいて、前記ライブゲームプレイにおけるジャンプ点に対応するビデオフレームの選択を前記クライアント装置から受信するためのプログラム命令と、
前記スナップショットを用いて前記ビデオゲームのインスタンスをインスタンス化し、前記ジャンプ点から始まる前記観客からの複数の入力コントロールによって制御されるジャンプゲームプレイを開始するためのプログラム命令とを備える、非一時的コンピュータ読み取り可能媒体。
【請求項10】
前記ジャンプゲームプレイにおける前記ビデオゲームの前記インスタンスを自動的に実行し、前記ライブゲームプレイからキャプチャされた複数の入力コマンドを用いて、前記キャプチャ点から前記ジャンプ点までの前記ライブゲームプレイを再生するためのプログラム命令をさらに備え、前記複数の入力コマンドは前記スナップショットと関連付けられている、請求項9に記載の非一時的コンピュータ読み取り可能媒体。
【請求項11】
前記ライブゲームプレイの再生中に前記ジャンプゲームプレイを前記ジャンプ点まで進めるまたは巻き戻すためのプログラム命令と、
前記ライブゲームプレイが前記キャプチャ点から前記ジャンプ点まで再生される間、前記クライアント装置から受信された1つ以上の入力コマンドの実行をブロックするためのプログラム命令とをさらに備える、請求項10に記載の非一時的コンピュータ読み取り可能媒体。
【請求項12】
前記ライブゲームプレイに関連付けられた前記ユーザ、または前記観客からの指示なしで、前記ライブゲームプレイ中に複数のスナップショットを自動的にキャプチャするためのプログラム命令と、
前記キャプチャ点に対応する前記スナップショットが前記ジャンプ点に最も近いことを判定するためのプログラム命令とをさらに備え、
前記スナップショットの前記キャプチャ点が、前記ライブゲームプレイの前記ジャンプ点より前に発生するか、または前記ライブゲームプレイの前記ジャンプ点より後に発生し、
前記複数のスナップショットの各々は、2つのスナップショット間で前記ジャンプゲームプレイの実行を可能にする対応する入力コマンドのセットに関連付けられている、請求項9に記載の非一時的コンピュータ読み取り可能媒体。
【請求項13】
前記ビデオゲームの前記インスタンスの実行中に、前記ジャンプゲームプレイの第2の複数のビデオフレームを生成するためのプログラム命令と、
前記第2の複数のビデオフレームを符号化するためのプログラム命令と、
前記第2の複数のビデオフレームを前記観客の前記クライアント装置にストリーミングするためのプログラム命令とをさらに備える、請求項9に記載の非一時的コンピュータ読み取り可能媒体。
【請求項14】
前記観客の前記クライアント装置への前記ライブゲームプレイの前記複数のビデオフレームのライブストリーミングを中止するためのプログラム命令をさらに備える、請求項13に記載の非一時的コンピュータ読み取り可能媒体。
【請求項15】
プロセッサと、
前記プロセッサに結合され、命令を格納したメモリとを備えるコンピュータシステムであって、
前記命令が前記コンピュータシステムによって実行される場合、前記命令は前記コンピュータシステムに方法を実行させ、
前記方法は、
サーバにおいてビデオゲームを実行して前記ビデオゲームをプレイするユーザのライブゲームプレイの複数のビデオフレームを生成するステップと、
前記ライブゲームプレイにおけるキャプチャ点でスナップショットをキャプチャするステップであって、前記複数のビデオフレームは、前記スナップショットに関連付けられている、キャプチャするステップと、
前記ライブゲームプレイの前記複数のビデオフレームを符号化するステップと、
符号化された前記ライブゲームプレイの前記複数のビデオフレームを観客のクライアント装置にライブストリーミングして、前記観客が前記ユーザの前記ライブゲームプレイを見ることができるようにするステップと、
前記ライブゲームプレイの前記複数のビデオフレームにおいて、前記ライブゲームプレイにおけるジャンプ点に対応するビデオフレームの選択を前記クライアント装置から受信するステップと、
前記スナップショットを用いて前記ビデオゲームのインスタンスをインスタンス化し、前記ジャンプ点から始まる前記観客からの複数の入力コントロールによって制御されるジャンプゲームプレイを開始するステップとを備える、コンピュータシステム。
【請求項16】
前記方法は、
前記ジャンプゲームプレイにおける前記ビデオゲームの前記インスタンスを自動的に実行し、前記ライブゲームプレイからキャプチャされた複数の入力コマンドを用いて、前記キャプチャ点から前記ジャンプ点までの前記ライブゲームプレイを再生するステップをさらに備え、前記複数の入力コマンドは前記スナップショットと関連付けられている、請求項15に記載のコンピュータシステム。
【請求項17】
前記方法は、
前記ライブゲームプレイの再生中に前記ジャンプゲームプレイを前記ジャンプ点まで進めるまたは巻き戻すステップと、
前記ライブゲームプレイが前記キャプチャ点から前記ジャンプ点まで再生される間、前記クライアント装置から受信された1つ以上の入力コマンドの実行をブロックするステップをさらに備える、請求項16に記載のコンピュータシステム。
【請求項18】
前記方法は、
前記ライブゲームプレイに関連付けられた前記ユーザ、または前記観客からの指示なしで、前記ライブゲームプレイ中に複数のスナップショットを自動的にキャプチャするステップと、
前記キャプチャ点に対応する前記スナップショットが前記ジャンプ点に最も近いことを判定するステップとをさらに備え、
前記スナップショットの前記キャプチャ点が、前記ライブゲームプレイの前記ジャンプ点より前に発生するか、または前記ライブゲームプレイの前記ジャンプ点より後に発生し、
前記複数のスナップショットの各々は、2つのスナップショット間で前記ジャンプゲームプレイの実行を可能にする対応する入力コマンドのセットに関連付けられている、請求項15に記載のコンピュータシステム。
【請求項19】
前記方法は、
前記ビデオゲームの前記インスタンスの実行中に、前記ジャンプゲームプレイの第2の複数のビデオフレームを生成するステップと、
前記第2の複数のビデオフレームを符号化するステップと、
前記第2の複数のビデオフレームを前記観客の前記クライアント装置にストリーミングするステップとをさらに備える、請求項15に記載のコンピュータシステム。
【請求項20】
前記方法は、
前記観客の前記クライアント装置への前記ライブゲームプレイの前記複数のビデオフレームのライブストリーミングを中止するステップをさらに備える、請求項19に記載のコンピュータシステム。