以下の実施形態は、記録されたゲームプレーに基づく提案されたミニゲームの自動作成、記録されたゲームプレーに基づくクラウドゲーミングのためのマルチパートのミニゲームの作成、記録されたゲームプレーのソーシャルグラフへの共有、および第1のユーザのゲームプレーの第2のユーザによるリモートコントロールの方法とシステムを説明する。
しかしながら当業者にとっては、これら具体的な詳細のいくつかあるいはすべてがなくても、本発明が実行可能であることは明らかであろう。その他の例では、本発明を不必要にあいまいにしないため、よく知られたプロセス操作については述べていない。
図1Aは、あるユーザが本発明の実施形態に従ったクラウドベースのビデオゲームをプレーしているのを、示している。示されているように、ユーザU1はディスプレイ100の上に表示されたクラウドベースのビデオゲームをプレーしている。クラウドベースのビデオゲームは主にリモートサーバ上で実行されるビデオゲームである。一実施形態においてサーバは、個別のサーバか、要求された処理を提供するために多数のサーバの仮想化が可能な、仮想マシンデータセンタ内で実行されているサーバを含むことができる。図示された実施形態において、クラウドゲーミングサーバ104はディスプレイ100の上に表示されたビデオゲームを実行する。クライアント101はユーザの位置にいて入力を受け取って処理し、それらをクラウドゲーミングサーバ104に送信し、そのクラウドゲーミングサーバ104からビデオおよびオーディオデータを受け取る。クライアント101とクラウドゲーミングサーバ104はインターネットなどのネットワーク102を経由して通信する。他の実施形態において、クライアントはネットワークと通信してゲームプレーを表示するためのディスプレイへのアクセスを提供でき、対話を推進するためのユーザからの入力を可能にするものである限り、ポータブルであろうがなかろうが、ワイヤレスであろうがなかろうが、どんな装置でもよい。一実施形態において、クライアントはシンクライアントである。しかしながら他の実施形態においては、クライアントは一般用コンピュータ、特殊用途コンピュータ、ゲーミングコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティング装置、ポータブルゲーミング装置、携帯電話、セットトップボックス、ストリーミングメディアインターフェース/装置、スマートテレビジョンまたはネットワークに接続されたディスプレイ、あるいは他のどのようなコンピューティング装置であっても、ここで定義されたクライアントの機能性を満たすように構成できるものであればよい。一実施形態において、クラウドゲーミングサーバはユーザに使用されているクライアント装置の種類を検出するように構成され、ユーザのクライアント装置にふさわしいクラウドゲーミング体験を提供する。例えば、映像設定、音声設定および他の種類の設定はユーザのクライアント装置に対して最適化できる。
種々の実施形態において、クライアントによって実行される処理の程度は、入力および出力の処理に関しては変動する可能性がある。しかしながら、概していえばビデオゲームの状態は、クラウドゲーミングサーバ104の上で実質的に維持され実行され、クライアントは主としてユーザ入力を受け取って通信し、かつ表示のためのビデオ/オーディオデータを受け取る。クライアント101は、ディスプレイ100に接続され、ディスプレイ100の上に表示するビデオデータを提供する、スタンドアローンの装置であってもよい。他の実施形態において、クライアントはディスプレイ100の中に統合されていてもよい。一実施形態において、ディスプレイ100はネットワークに接続されたディスプレイで、そのディスプレイのネットワーク接続性を利用するアプリケーションまたは「apps」にプラットフォームオペレーティングシステムを提供する。そのような実施形態でのクライアントは、ディスプレイのオペレーティングシステムから提供されるプラットフォームの上で実行される、アプリケーションによって定義することができる。
図1Bは、クラウドベースのビデオゲームのゲームプレーに参加する、複数の地点の複数のユーザを示す。ユーザU1はディスプレイ100に表示されるビデオゲームと対話する、第1の地点に示されている。ユーザU2およびU3は、ディスプレイ106に表示されるビデオゲームと対話する、第2の地点に示されている。ユーザU4は、はディスプレイ108に表示されるビデオゲームと対話する、第3の地点に示されている。ユーザU5、U6およびU7は、ディスプレイ110に表示されるビデオゲームと対話する、第4の地点に示されている。
第1、第2、第3および第4の地点のそれぞれには、種々のユーザからの入力を処理し、それらの各ディスプレイ上にクラウドベースのビデオゲームを表示するために、少なくとも1台のコンピューティング装置が備えられる。当然のことながら、そのコンピューティング装置はディスプレイに統合することもできれば、データの処理と保存のための少なくとも1台のプロセッサとメモリを備えている限り、パーソナルコンピュータ、セットトップボックス、ゲーミングコンソールのようなスタンドアローン装置、あるいは他のどんな種類の装置であってもよい。そのコンピューティング装置は上記に既に述べられたように、クライアントを実行または識別可能である。コンピューティング装置はネットワークに接続され、インターネット102のようなネットワークを経由してクラウドゲーミングサーバ104と通信する。
クラウドゲーミングサーバ104は、ユーザのプレーする種々のビデオゲームを実行し、時々刻々所定のビデオゲームのゲーム状態を定義し、ビデオデータ(画像データと音声データを含む)を特定の地点のコンピューティング装置に送信する。所定の地点のコンピューティング装置は、ビデオゲームをプレーしているユーザからの入力を処理し、クラウドゲーミングサーバに入力データを発信し、それは順にビデオゲームのゲーム状態に影響を及ぼす入力データを処理する。当然のことながら、このクラウドベースのゲーミングは、ネットワークを介してすべてのプレーヤがアクセス可能なリモートサーバでビデオゲームを実行することにより、異なった地点に位置するプレーヤからのマルチプレーヤのゲーミングを容易にする。このようにして、ビデオゲームの実行は、シングルプレーヤのいずれかのハードウェアやネットワーク接続には依存しなくなるが、それはそのプレーヤに対するユーザ経験に影響を及ぼす。
図2Aは、本発明の一実施形態に従ったクラウドゲーミングのためのシステムを示す。示されているように、あるユーザ200がクラウドベースのビデオゲームに入力を提供するために、コントローラ202を操作する。コントローラ202は、ボタン、ジョイスティック、タッチパッド、トラックボール、ならびに加速度計、磁力計およびジャイロスコープなどの動作検出ハードウェアなど、種々の入力装置のどのようなものでも含むことができる。一実施形態において、コントローラ202は、そのコントローラ202の位置を判定するために追跡可能なあらゆる被照明体を含むことができる。コントローラ202は、シンゲームクライアント204と無線で通信することができる。そのクライアント204は、クラウドゲーミングサービス210とネットワーク208を経由して通信する。クライアント204は、コントローラ202からのデータを処理し、クラウドゲーミングサービス210によって実行されているビデオゲームに送信される入力を作成する。さらにクライアント204は、クラウドゲーミングサービス210から、ディスプレイ206に表示するための映像データを受け取る。一実施形態において、クライアント204は受け取った映像データを処理し、映像ストリームをディスプレイ206に適合するフォーマットで提供することができる。一実施形態において、クライアント204は、コントローラ装置を追跡するためのカメラあるいはコントローラ装置上に位置する物体を含むことができる。既に述べたように、その物体は、カメラから取得された映像フレームの分析に基づく追跡を容易にするために、照明されていてもよい。
クラウドゲーミングサービス210は、その中でビデオゲームが実行できる環境を提供するためのリソースを含んでいる。概して言うとリソースは、ビデオゲームアプリケーションの実行を容易にするために利用可能な、プロセッサ、ストレージ装置およびネットワーキング機器など種々のコンピュータサーバハードウェアを含むことができる。図示された実施形態において、ビデオゲームライブラリ212は種々のビデオゲームタイトルを含む。ゲームタイトルのそれぞれは、実行可能なコードと、ビデオゲームを実体化するのに利用される関連データおよびアセットライブラリを定義する。ホスト214は、仮想マシン216を実体化するためのプラットフォームを定義する、単一のコンピューティング装置であってもよい。別の実施形態において、ホスト214それ自体が仮想化されたリソースプラットフォームでありえる。言い換えると、ホスト214は、1つまたは複数のサーバコンピューティング装置を運用することができ、そのサーバコンピューティング装置によって定義されたリソースの使用を操作し、その間に仮想マシン216を実体化することの可能な統一されたプラットフォームを提示する。
仮想マシン216のそれぞれは、オペレーティングシステムをサポートすることができ、その上でビデオゲームアプリケーション218が実行可能なリソース環境を定義する。一実施形態において、仮想マシンは、あるゲーミングコンソールのために開発されたゲームタイトルの実行をサポートするための仮想マシン上で作動するゲーミングコンソールに関連したオペレーティングシステムを備えた、そのゲーミングコンソールのハードウェアリソース環境をまねるように構成することができる。別の実施形態において、オペレーティングシステムは、基礎となる仮想マシンがあるゲーミングコンソールのハードウェアをまねるように構成されたか否かにかかわらず、そのゲーミングコンソールの固有のオペレーティングシステム環境をまねるように構成することができる。別の実施形態において、エミュレータのアプリケーションは仮想マシンのオペレーティングシステムの最上位で実行され、そのエミュレータはゲーミングコンソールのために設計されたビデオゲームをサポートするためにそのゲーミングコンソールの固有のオペレーティングシステム環境をまねるように構成される。当然のことながら、クラウドベースのゲーミングシステムの中では、種々の最新ならびに従来のゲーミングコンソールをまねることができる。このようにしてユーザは、異なったゲーミングコンソールからクラウドゲーミングシステムを介してゲームタイトルにアクセスすることができる。
ユーザ200がある特定のビデオゲームタイトルをプレーするよう要求した時には、そのビデオゲームタイトルはライブラリ212から取り込まれる。もし適合する仮想マシンがすでに実体化されていないか使用可能でない場合には、新しい適合する仮想マシンがホスト214の上で実体化される。取り込まれたビデオゲームタイトルはそこで利用可能または新たに実体化された仮想マシン216の上でアプリケーション218として実行される。一実施形態において、これは必然的にそのビデオゲームタイトルに対する適切なプラットフォームの判定(例えばそのゲームの実行にどのゲーミングコンソールまたはオペレーティングシステムが必要か)と、そのビデオゲームタイトルの実行を適切な仮想マシン、例えばそのビデオゲームタイトルの実行が可能なエミュレータアプリケーションを備えているものへの割り当てを伴う。このビデオゲームの実行はゲームクライアント204に通信され、ユーザ200に対話型ゲーミング体験を提供する。より具体的に言うと、ビデオゲームアプリケーション218の実行は、クライアント204からの入力データをネットワーク208経由で受け取る。アプリケーション218は、実行中のアプリケーションのゲーム状態を更新するためその入力データを処理する。ゲーム状態が変化するのに従って、アプリケーション218はディスプレイ206上に表示するビデオデータを出力してクライアント204に送る。さらにアプリケーション218は、ユーザに対する追加のフィードバックメカニズムを提供するために使用されるフィードバックデータを、クライアント204に対して出力することもできる。例としては、ユーザのコントローラ202は、ビデオゲームアプリケーションから出力されたフィードバックデータに基づいて起動される、触感振動フィードバックメカニズムを含むことができる。
一実施形態において、クラウドゲーミングシステムは、ユーザに関連したクライアント装置の種類と、クラウドベースのビデオゲームに入力を提供するためにユーザが利用可能なコントローラの種類を検出するように、構成されている。例えば一実施形態において、ユーザがクラウドゲーミングシステムにログインした時に、そのクラウドゲーミングシステムにアクセスしているクライアント装置の種類を指定するための、オプションが表示されることがある。一実施形態において、一連のクライアント装置のオプションが提示され、そこからユーザは彼らのクライアント装置に対応したものを選択することができる。またユーザには、ビデオゲームをプレーするために使用するコントローラ装置の種類を指定するためのオプションが提示されることもある。一実施形態において、一連のコントローラオプションが提示可能であり、そこからユーザは彼らのコントローラハードウェアに対応したコントローラの種類を選択することができる。他の実施形態において、クラウドゲーミングシステムは、クライアント装置の種類および/またはコントローラ装置の種類を、自動的に検出するように構成可能である。
例えば、ログイン時にクライアント装置は、それ自体ならびに接続されたコントローラ装置を識別する情報を、クラウドゲーミングサーバに送信することがある(例えばそのクラウドゲーミングサーバからの要求に応じて)。この情報に基づいて、クラウドゲーミングサーバは、ユーザのクライアント装置およびコントローラ装置に最適化されたゲーミング体験を提供するため、適切なビデオゲーム出力構成と入力パラメータ構成を判定することができる。一実施形態において、検出されたクライアント装置ならびに検出されたコントローラ装置に基づいてビデオゲームの構成と入力パラメータの構成を判定するために、参照テーブルが採用されている。
当然のことながら、あるビデオゲームは特定のプラットフォームおよび特定のコントローラ装置のために開発されていることがある。しかしながら、そのようなゲームがひとたびここで述べているようなクラウドゲーミングシステムを介して利用可能になった時には、ユーザは異なったコントローラ装置からアクセスする可能性がある。例えば、あるゲームはゲームコンソールとそれに付属するコントローラのために開発されたものであったが、ユーザはキーボードとマウスを使用するパーソナルコンピュータからそのゲームのクラウドベース版にアクセスする可能性がある。そのようなシナリオの中では、入力パラメータの構成は、ユーザにとって利用可能なコントローラ装置(この場合はキーボードとマウス)で作成可能な入力からのマッピングを、そのビデオゲームの実行のために許容できる入力として定義できる。
別の実施形態において、ユーザはクラウドゲーミングシステムにタブレットコンピューティング装置、タッチスクリーン型スマートフォン、あるいはその他のタッチスクリーン駆動の装置からアクセスすることができる。この場合、クライアント装置およびコントローラ装置は同じ装置に統合されており、入力は検出されたタッチスクリーン入力/ジェスチャーによって提供される。そのような装置のためには、入力パラメータの構成でビデオゲームのゲーム入力に対応する特定のタッチスクリーン入力を定義することができる。ゲーム入力をユーザが作成するためにタッチできるタッチスクリーン上の位置は、ゲーム進行中に例えば、ボタン、十字キー、あるいは他の種類の入力エレメントで表示または重ねて表示されることがある。特定の方向へのスワイプや特定のタッチ動作などのジェスチャーもまたゲーム入力として検出することができる。一実施形態において、タッチスクリーンの制御のための操作にユーザが慣れるために、例えばビデオゲームのゲームプレーを開始する前にタッチスクリーンを介してゲームプレーにどのようにして入力を提供するのかについてユーザに示すためのチュートリアルを提供することができる。
いくつかの実施形態において、クライアント装置はコントローラ装置のための接続ポイントとして働く。すなわち、そのコントローラ装置は、コントローラ装置からクライアント装置へ入力を発信するため、クライアント装置との無線または有線接続を介して通信する。クライアント装置は順にこれらの入力を処理し、次に入力データをネットワーク(例えばルータなどのローカルネットワーキング装置を介してアクセスされた)経由でクラウドゲーミングサーバに送信する。しかしながら他の実施形態においては、コントローラそれ自体がネットワーク接続された装置であることができ、それらの入力を最初にクライアント装置と通信することを必要とせず、クラウドゲーミングサーバに直接ネットワーク経由で通信する能力を備えている。例えば、コントローラはローカルネットワーキング装置(前記のルータなどのような)に接続され、クラウドゲーミングサーバとの間でデータを送信および受信する。したがって、クライアント装置はクラウドベースのビデオゲームから映像出力を受け取ってそれをローカルのディスプレイに表示することが必要であるにしても、コントローラが入力を、クライアント装置をバイパスしてネットワーク経由で直接クラウドゲーミングサーバに送信できるので、入力の遅延を縮小することができる。
一実施形態において、ある種の入力を直接コントローラからクラウドゲーミングサーバに送信し、他の種類の入力はクライアント装置を経由するように、ネットワーク接続されたコントローラおよびクライアント装置を構成することができる。例えば、検出がコントローラそれ自体の他の追加のハードウェアまたは処理に依存しない入力は、クライアント装置をバイパスして、ネットワーク経由で直接クラウドゲーミングサーバに送信できる。そのような入力にはボタン入力、ジョイスティック入力、組み込み型動作検出入力(加速度計、磁力計、ジャイロスコープなど)などが含まれる。しかしながら、追加のハードウェアを使用するかクライアント装置による処理が必要な入力は、クライアント装置によってクラウドゲーミングサーバに送信することができる。これらには、クラウドゲーミングサーバに送信される前にクライアント装置による処理を必要とする、捕捉された映像また音声が含まれる。さらに、コントローラの動作検出ハードウェアからの入力は、コントローラの動作と位置を検出するために捕捉された映像と併せてクライアント装置によって処理され、その後でクライアント装置からクラウドゲーミングサーバに通信される。当然のことながら、種々の実施形態に従ったコントローラ装置もまた、クライアント装置から、あるいは直接クラウドゲーミングサーバからデータ(例えばフィードバックデータ)を受け取る。
図2Bは、本発明の実施形態に従った、ゲーミングコンソールの種々の世代にわたるゲームタイトルの蓄積を概念的に示す。ビデオゲーミング産業においては、ビデオゲームは特定のビデオゲームコンソールのために開発されている。時間の経過とともに、特定のゲームコンソールに関するゲームタイトルのライブラリは蓄積される。例えば、示された図では、第1世代のコンソール220は、そのために開発されたゲームタイトルのコレクション228を持つ。第2世代のコンソール222は、そのために開発されたゲームタイトルのコレクション230を伴う。そして第3世代のコンソール224も示されているが、それはそのために開発されたゲームタイトルのコレクション232を持つ。他の実施形態において、クライアント226と共に使用するクラウドベースのゲームのために特に開発された、ゲームタイトルのコレクション234もある。さらに、インターネットゲームのような他の種類のゲームも開発し、ここに述べているようにクラウドゲーミングシステムを介して配布するために収集することができる。当然のことながら、異なる世代のゲーミングコンソールからのゲームタイトルは、クラウドゲーミングライブラリ212内に収集して統合することができる。示されたように、ライブラリ212は、第1世代のコンソール220のために開発された第1世代コンソールのライブラリ236を含む。同様にライブラリ212は、第2および第3世代のコンソールのためにそれぞれ開発されたビデオゲームを含む、第2世代コンソールのライブラリ238と第3世代コンソールのライブラリ240も含んでいる。クライアント226のために開発されたゲームおよびインターネットゲームなど他の種類のゲームも、ゲームライブラリ212に含むことができる。見て分かるとおり、種々の世代のゲーミングコンソールにわたる大量のゲームタイトルが、クラウドゲーミングライブラリを介して蓄積され、利用可能となる。既に述べたように、これらのゲームのそれぞれは、そのゲームが開発された所定のゲーミングコンソールに関連したオペレーティングシステムを模倣した、仮想マシンの上で実行可能である。このようにして、このクラウドベースのゲーミングシステムにアクセスしているユーザは、多くの異なるコンソールから容易にゲームにアクセスし、プレーすることができ、さらにインターネットゲームなど他のコンタクトからのゲームやそのクラウドベースのゲーミングシステムのために特に開発されたゲームにもアクセスしてプレーすることができる。
図3は、一実施形態に従い、ユーザにゲームのデモを提供する方法を示す。デモに使用可能な種々のゲームタイトルのビネットまたはアイコン302、304、306、308、310および312を提供するインターフェース300が示されている。各アイコンは、それが代表するゲームを示すような画像を提供するように構成される。一実施形態において、ユーザが所定のアイコン上に移動した時に、そのアイコンが作動してそのビデオゲームを表わすアニメーションかビデオクリップを表示するか、そうでなければそのビデオゲームの内容に関する追加の情報を提供する。図示された実施形態において、ユーザはアイコン302に移動したのでそれがハイライトされ、ビデオゲームの一場面を表わすアクティブなアニメーションが表示される。ユーザがあるアイコンを選択すると、方法動作314にしたがってプレビュービデオが表示される。もしもユーザが方法動作316でもそのゲームを選択しつづければ、次に方法動作318でそのデモのゲームコードが立ち上がる。方法動作320で、ゲームデモはそのユーザによるゲームプレーに直ちに利用可能になる。当然のことながら、このゲームデモはクラウドベースなので、それはクラウドベースのシステム内であらかじめロードされているゲームデモの実体化によって、すぐに利用可能となる。ゲームデモが立ち上がると、あらかじめロードされていたゲームデモ実体化の実行が開始される。方法動作322では、ユーザがゲームデモ実行の続行を希望するのか、もしも利用可能であればそのビデオゲームの他のデモをプレーするのかを判定する。もしそうなら、方法は操作322に戻ってゲームデモの実行を継続するか、そのビデオゲームの新しいゲームデモを実行する。もしもそうでなければ、ユーザには方法動作324で、そのビデオゲームのミニ版を購入するオプションが提示される。さらに、方法動作326では、ユーザにはそのビデオゲームの完全版を購入するオプションを提示することができる。もしもユーザがゲームのミニ版か完全版の購入を選択した場合、次に方法動作328でその版のゲームがユーザのアカウントに追加される。当然のことながら、ゲームはクラウドベースのゲーミングシステムを介して利用可能になっているので、ユーザのアカウントに対するゲームの追加とは、ユーザのアカウントに単に特定のバージョンのゲームに関するアクセス権限を与えるだけである。その上一度購入すると、ユーザのゲームプレーのためにそのゲームは、特にそれがクラウドベースのシステム上であらかじめ実体化されている場合には、実際上クラウドベースのシステムから瞬時に利用可能となる。
図4Aは、本発明のある実施形態に従った、ビデオゲームの種々の部分の階層的構造を示す。例として、あるビデオゲームは種々のセクション400に構造化することができる。図示された実施形態において、設定セクション、導入セクション、種々のレベルのセクション、および終了セクションを含むことができる。ある所定のレベルはさらに種々のシーンに分割することができる。示されているように、レベル3のセクションは種々のシーン402に分割されている。ユーザが所定のシーンをプレーし終えると、ユーザのゲームプレーが記録された映像、および実行されたゲームアプリケーションの記録された入力データならびにゲーム状態を含む、そのシーンのゲームプレー時間線を記録することができる。図示された実施形態において、ゲームプレーの時間線404は、そのゲームのレベル3、シーン2におけるユーザのゲームプレーを表わす。本発明の実施形態に従って、ユーザはそこからミニゲームまたはゲームスライスを作成する、彼らの記録されたゲームプレーのいくつかの部分を選択することができる。例えば図示された実施形態において、ゲームプレーの時間線404には開始時刻T0と終了時刻Tzがあり、ミニゲームを作成するために、ゲームプレーの時間線のうち時刻Txから時刻Tyまでの部分が選択された。
図4Bは、本発明のある実施形態に従った、ミニゲームまたはゲームスライスを作成するための、ゲームプレーの時間線のある部分を選択するインターフェースを示す。図示された実施形態において、装置410のタッチスクリーン411にはインターフェース412が表示されている。一実施形態において、装置410はタブレットコンピューティング装置である。インターフェース412は、選択可能なゲームプレーの時間線414を含む。このゲームプレーの時間線414の拡大図430の中では、ある実施形態に従ったゲームプレーの時間線414は、調整可能なマーカ416および418を備えたフィルムストリップとして表わされていることが分かる。マーカ416はゲームプレーの時間線414に沿って選択された開始位置を指定し、マーカ418はゲームプレーの時間線の選択された終了位置を指定する。さらにマーカ419を、ゲームプレーの時間線414の中に開始マーカ416と終了マーカ418によって設けた部分の内部に置くことができる。使用を容易にするため、かつユーザに彼らのゲームプレーのどの部分が選択されたのかについて視覚的な理解を与えるため、ゲームプレーの時間線のマーカ416の置かれた位置に対応する開始フレーム420を表示することができる。この開始フレーム420は、開始マーカ416の置かれた時刻に対応する、記録されたゲームプレー映像の画像である。同様に、ゲームプレーの時間線のマーカ418の置かれた位置に対応する、終了フレーム424を表示することができる。同様にこの終了フレーム424は、終了マーカ418の置かれた時刻に対応する、記録されたゲームプレー映像の画像である。それに加えて代表フレーム422を、ゲームプレーの時間線に沿ってマーカ419の置かれた位置に対応させて表示することができる。この代表フレーム422は、ゲームプレーの時間線の選択された部分に基づき作成されるミニゲームの、代表的な画像として使用することができる。当然のことながら、図示された実施形態においてタッチスクリーン型インターフェースが提示され説明されているが、他の実施形態において、ミニゲーム作成のためにゲームプレーの部分を定義する始点および終了位置の選択には、他のさまざまの入力を利用することができる。例えば、入力はゲームコントローラ、キーボード、動作入力、音声入力、およびその他の種類の入力装置ならびにメカニズムを介して行うことが可能であり、それによって記録されたゲームプレー映像からの代表フレームの選択を伴った、ゲームプレーの一部分の選択が可能になる。
いくつかの実施形態において、この選択マーカはゲームプレーの時間線に沿って連続的に調整可能ではないこともあるが、その代わりにゲームプレーの時間線に沿って、あらかじめ定めた時点で止まるように構成することができる。例えばあらかじめ定めた時点を、ゲームプレーの時間線の中で発生する特定の事象に対応するように定義することができる。あらかじめ定めた時点に割り当てられる、所定のゲームプレーの時間線上の特定の事象は、ユーザのゲームプレーの分析に基づいて作成可能であり、そのビデオゲームのゲームプレーの固有のアーキテクチャに依存する。一実施形態において、あらかじめ定めた時点は、ビデオゲームによって定義された仮想世界の中の、キャラクタの地理的位置に基づいて割り当て可能である。例えば、あらかじめ定めた時点は、あるキャラクタがある地理的な場所から他の地理的な場所へ移動する、例えばあるシーンの現場から他のシーンの現場へ、ある都市から他の都市へ、構造物に入る、構造物の中の部屋に入る、乗り物に乗り込む、異なる種類の環境に入る、または他のあらゆる重要な地理的移行などの特定の時刻に割り当てることができる。別の実施形態において、あらかじめ定めた時点は、ビデオゲームの中でコントロールされたユーザの成長に基づいて割り当てることができる。例えばあらかじめ定めた時点は、ユーザにコントロールされたキャラクタあるいは存在が、任務を達成する、スキルを獲得する、ある物体を獲得する、レベルを通過する、あるいはそれ以外でビデオゲームのある部分を完了するか、そのビデオゲームの中で他のなんらかの重要な活動を実行するか達成する時点に、割り当てることができる。
図4Cは、本発明のある実施形態に従った、ミニゲームを作成するためにゲームプレーの時間線のある部分を選択する、インターフェースを示す。ゲームプレーの時間線414は、それに沿ってユーザが開始および終了マーカ416と418を設定することができ、それによってミニゲームを作成するゲームプレーの選択を指定する、時間線を示す。開始マーカ416の位置に対応する開始フレーム410と、終了マーカ418の位置に対応する終了フレーム424が示されている。当然のことながら、これらのフレームはユーザのゲームプレーの記録された映像から特定することができる。いくつかの候補フレーム440、442、444および446が提示され、ユーザはそこからミニゲームの代表フレームとして使用するものを選ぶことができる。候補フレームは様々な方法で判定することができる。例えば候補フレームは、ゲームプレーの時間線の選択された部分の小さな間隔ごとに提示される。この間隔は、候補フレームがゲームプレーの時間線に沿って一様に配列されるよう等しくすることも可能であるし、ゲームプレーの時間線に沿っていくつかのフレームがお互いに他よりもより近くなるよう、不均一にすることも可能である。一実施形態において、ゲームプレーの時間線の選択された部分のより早い部分では、ゲームプレーの時間線の選択された部分のより遅い部分と比べて、候補フレームがより高い密度で作成される。一実施形態において、ゲームプレーの時間線の選択された部分の早い領域と遅い領域の両方で、候補フレームが高い密度で作成されるが、ゲームプレーの時間線の選択された部分の中央部分では、候補フレームがより低い密度で作成される。
ユーザがミニゲームを作成するためにゲームプレーのある部分を選択した後、本発明の実施形態において、ゲームプレーの選択された部分に基づきプレー可能なミニゲームを作成する、システムおよび方法が提供される。より具体的に言うとそのミニゲームは、他のユーザが元のユーザがプレーしたのと本質的に同じ部分のビデオゲームを、おそらくは基本的に同じ条件とパラメータの下でプレーすることを可能にする。この意味で、そのミニゲームは元のユーザのゲームプレーの単なる再生ビデオ以上のものであり(元のユーザのゲームプレーのリプレービデオクリップはミニゲームと併せて提供されるが)、ユーザ自身のゲームプレーの選択に基づいて指定された、そのビデオゲームのプレー可能な部分そのものである。したがって二人目のユーザは元のユーザと同様のゲームプレーを体験することができる。
図5は、本発明のある実施形態に従った、既存のクラウドベースのビデオゲームからミニゲームを作成する方法を実証する、一連のスクリーンショットを示す。スクリーンショット500はあるユーザのビデオゲームのプレーを示す。図示された実施形態において、ユーザはそのビデオゲームのレベル3をプレーしている。スクリーンショット502では、ユーザはそのビデオゲームのレベル3を完了した。レベルの完了時には、ユーザにそのレベルでのユーザのゲームプレーに基づいた、ゲームスライスまたはミニゲームを作成するオプションが提供される。ユーザがゲームスライスの作成を選んだ時には、スクリーンショット504でユーザには、ユーザの記録されたゲームプレーからゲームスライスの開始位置を選択するインターフェースが提供される。既に述べたように、ゲームプレーの時間線の表現は、ユーザがそれを用いてゲームスライスの開始位置を指定するために動かすことができる、調整可能なスライダと共に表示される。ユーザが開始位置を指定した後、スクリーンショット506では、ユーザにはそのゲームスライスの終了位置の選択を可能にするために構成されたインターフェースが提供される。ここでもう一度、調整可能なスライダがユーザによって移動され、そのインターフェースの中で表示されたゲームプレーの時間線に沿った終了位置を指定する。ユーザのゲームプレーの時間線から開始位置および終了位置が指定されると、他の箇所で述べたようにゲームスライスまたはミニゲームが作成される。スクリーンショット508でユーザには、新たに作成されたゲームスライスを他のユーザと共有するあるいは他のユーザにその新たに作成されたゲームスライスを知らせるためのオプション、同じゲームプレーの時間線から別のゲームスライスを作成するオプション、現在のビデオゲームのゲームプレーを継続するオプション、ユーザの既存のゲームスライスを閲覧するオプションなど、追加のオプションを提供することができる。もしもユーザが彼らの既存のゲームスライスの閲覧を選択すると、スクリーンショット510でユーザが以前に作成したゲームスライスを表示するインターフェースが示される。図示された実施形態において、ユーザは以前に作成されたゲームスライスの一つを選択し、そのゲームスライスの情報および統計をスクリーンショット512に示されているように見ることができる。所定のゲームスライスに関する情報および統計は、以下のいずれも含むことができる:ゲームスライスのタイトル、そのゲームスライスが作成された元となるビデオゲーム、そのゲームスライスが作成された日付、そのゲームスライスが他のユーザによってプレーされた回数、そのゲームスライスのプレーを実行したユーザによって完了されたゲームスライスの平均パーセンテージを示す完了率、他のユーザの残したコメントなど。
いま述べた実施形態において、ゲームスライスを作成するためのオプションは、そのビデオゲームのあるレベルの完了後にユーザに対し提示されるが、当然のことながら他の実施形態において、ユーザにとってゲームスライスを作成するための選択が定義可能な、ビデオゲームの記録されたゲームプレーが存在する限り、ユーザはそのビデオゲームの間あるいはそれ以外のいつでも、ゲームスライスを作成することができる。例えば、一実施形態において、ユーザに関係する種々のビデオゲームからの、記録された種々のゲームプレーへのアクセスを提供する、インターフェースを提供することができる。ユーザは特定のビデオゲームのゲームプレーを選択し、ここで述べた実施形態に従ったゲームスライスをそこから作成するための、記録されたゲームプレーのある部分を選択することによって、ゲームスライスを作成することができる。
図6は、本発明のある実施形態に従った、ゲームスライスコードを作成するシステムを示す。ここでは、既存の記録されたゲームプレーからのユーザの選択に基づいて作成された、ビデオゲームの分離してプレー可能な部分を定義するのに、ゲームスライスおよびミニゲームという用語が交換可能に使用されている。図示された実施形態において、ユーザのゲームプレー600は、ユーザがビデオゲームの完全版と対話していることを、概念的に表わしている。主ゲームコード602は、ユーザによって表示されたビデオゲームの完全版を定義するために実行される。そのビデオゲームがプレーされる間に、それはビデオデータ、ゲーム状態データ、およびユーザ入力データを含む、種々の種類のゲーム出力を発生する。これらはそれによってユーザの記録されたゲームプレーを定義するために、記録可能である。図示された実施形態において画像ストリーム604は、ビデオゲームによるビデオデータの出力を概念的に表わす。ゲーム状態メタデータ606とユーザ入力データ608も示されている。このゲーム状態データ606は、実行中のビデオゲームのゲーム状態を、ゲームプレーの間時々刻々と定義するデータを含む。ゲーム状態データは、ビデオゲームの実行状態を定義するいかなる変数の値も含むことが可能である。ユーザ入力データは、ビデオゲームとの対話中に発生するユーザが開始したアクションを捕捉することによって作成したデータで、おそらくはコントローラ装置上の入力装置の起動、センサデータの(動作センサなど)検出、捕捉されたオーディオ入力などとして提供される。
既に述べたように、ユーザインターフェースは、ユーザの記録されたゲームプレーを図形的に示し、ゲームスライスを作成するためのユーザのゲームプレーのある部分の選択を容易にする。図示された実施形態において、ユーザは彼らの記録されたゲームプレーから選択610を定義した。ユーザの記録されたゲームプレーのこの選択は、ユーザのゲームプレーの選択された部分に基づく、限定的なゲームを定義するゲームスライスコード622を作成するために、ゲームスライス発生器によって使用される。ゲームスライス発生器612は、記録された選択610のゲーム状態を分析する、ゲーム状態アナライザ614を含む。記録された選択のゲーム状態の分析に基づいて、ゲームブレークポイントプロセッサが、そのゲームスライスの開始と終了を定義する適切なブレークポイントを判定する。ブレークポイントは、地理、時間、任務あるいは目標の達成、シーンの境界(物理的または時間的)、またはそれに関してビデオゲームのゲームプレーがゲームスライスの作成のために分割可能な他のいかなる側面に基づいても定義することができる。いくつかの図解的な実施形態の簡単な説明は、ブレークポイント判定のある種の可能性を際立たせるのに役立つ。
例えば、ある種のビデオゲームは、ある地理的シーンまたは場所から他のシーンまたは場所にキャラクタが移動できるような制御を伴う。ユーザのゲームプレーの選択された部分は、ある特定のシーンにおけるゲームプレーから作成するように判定することができる。そのような実施形態において、特定のシーンの境界はゲームスライスの地理的なブレークポイントを定義することができ、その他のシーンの除外を伴うようなシーンを選択することにより、必然的に他の近接または隣接のシーン、ならびにその特定のシーンに近接も隣接もしていないか、そうでなくてもより関係が少ないか無関係のシーンを除外することになる。当然のことながら、記録されたゲームプレーの選択610は複数のシーンからのゲームプレーを伴うことができ、その場合ゲームブレークポイントプロセッサ616は、記録されたゲームプレーの選択に使用される複数のシーンの境界にしたがって、ブレークポイントを定義するように構成することができる。
シーンは本来地理的かつ時間的の両方であることに、注目すべきである。すなわち、そのシーンはビデオゲームによって定義された仮想空間の中で地理的な領域を定義できるだけではなく、そのビデオゲームのより大きな文脈の中で、特定の時刻あるいは特定の年代上の時点に存在するよう構成することも可能である。そのようなシーンは、プレーヤが達成すべく定義された、目的または目標を持つことができる。したがって、ゲームのブレークポイントは、ビデオゲームにより定義されるように、年代記または他の時間的側面から定義することができる。
さらに、所定のシーンは、ゲームプレーの間のシーンの一部として、関連する物体または特徴を持つことができる。これらの物体または特徴は、その内容にしたがってさらにブレークポイントを定義するために分析可能である。例えば、シーンの中の物体はアセットライブラリのサブセットから取り込むことができ、その場合アセットライブラリのサブセットは、ゲームブレークポイントプロセッサ616によってゲームスライスのために定義可能であり、記録されたゲームプレー選択に関係したシーンに使用されていないアセットライブラリの中の他の物体を除外する。当然のことながら、所定のシーンの中の物体および特徴は、ビデオゲームの中で発生する事象に対応したそれらの変化を定義する関連メカニズムを伴う、ダイナミックな要素である可能性がある。例えば、ある物体は、それが損傷した時(例えば武器で打たれた)に判定して物体の概観を調製する、ダメージモデリングモジュールを持つことがある。あるいはある特徴とは、ゲームプレーの間の外観、作動およびユーザ入力への対応を定義する関連ロジックを備えている、シーンの中で使用可能とされた乗り物かもしれない。それらのようなロジックあるいはダメージモデリングはゲームスライスを作成するためのゲームブレークポイントをさらに定義することができる。
ビデオゲームの選択された部分を定義するかまたは他に用いられる、ビデオゲームの種々の側面は、ゲームブレークポイントを定義する基礎となりえる。いま述べている例はあくまで例として提供されており、制約条件ではない。当然のことながら他の実施形態において、ビデオゲームの他の側面が、ゲームスライスを作成するためのブレークポイントを定義する基礎を構成することができる。
一実施形態においてビデオゲームを、後続のシーンは先行するシーンをまず完了しない限り試すことができないというように、連続的に完了しなければならないような種々のシーンに組織することができる。各シーンは、そのいくつかはシーンを完了するために必要であり、そのいくつかはまたシーンの完了のオプションとなる、複数の目的または目標を含むことができる。目的には、シーンの中での開始位置からあらかじめ定められた終了位置までの移動、あらかじめ定められた長さの期間の生き残り、あらかじめ定められた数の敵の破壊、ある得点の獲得、特定の敵の撃破、あるいはそのゲームの中で定義可能な他のどのような活動も含むことができる。あるシーンは、それらの中でユーザが一度その完了点を達成すると、もしも何らかの理由でユーザのゲームプレー続行が不可能になった場合(例えばユーザがゲームをやめる、ユーザのゲームのキャラクタが死ぬか、ライフまたはヘルスを使い果たす、ユーザの乗り物が衝突するなど)、ユーザがそこに戻ることができるような、あらかじめ定められた種々の完了点を持つことがある。あらかじめ定められた完了点では、ビデオゲームはユーザの進捗を自動的に保存するか、ユーザにその進捗を保存するためのオプションを提示するように、構成することができる。
一実施形態において、ゲームブレークポイントプロセッサ616はあらかじめ定められた完了点にゲームブレークポイントを定義するように構成される。一実施形態において、これはユーザの記録されたゲームプレーの選択から選択された開始および終了位置に最も近い完了点を発見し、それらの最も近い完了点を、ゲームスライスのゲームブレークポイントを定義するために使用することによって達成される。他の実施形態において、ゲームスライスを作成するための開始ブレークポイントを定義するには、記録されたゲームプレー選択から選択された開始位置以前に発生する最も近い完了点が使用され、一方終了ブレークポイントを定義するには、記録されたゲームプレー選択から選択された終了位置以後に発生する最も近い完了点が使用される。さらに別の実施形態において、もしも完了点が、ユーザの記録されたゲームプレー選択の開始または終了位置からあらかじめ定められた半径(例えば以前か以後)の中に位置するなら、その完了点はゲームスライスに対応する開始または終了ゲームブレークポイントを定義するために使用される。もしもあらかじめ定められた半径の中に位置する完了点がなければ、記録された選択に対してユーザが選択した開始または終了位置に、より近く一致するゲームブレークポイントが定義される。別の実施形態において、開始および終了位置に対しあらかじめ定められたその半径は、ゲームブレークポイントを定義するために既存の完了点を使用するかどうかの判定の目的に対しては異なることがある。
既に述べたとおり、ゲームブレークポイントプロセッサ616は、ユーザの記録されたゲームプレー選択に基づいて、ビデオゲームの種々の側面に適用可能な適切なブレークポイントを判定する。プロセッサ616によって定義されたブレークポイントは、ユーザの記録されたゲームプレー選択に基づいて作成されるゲームスライスの限定された範囲を定義する働きをする。一実施形態において、ゲームスライス発生器612によって作成されたゲームスライスをプレーする時に、改善されたユーザ体験に寄与することのできるオーバレイを作成する、オーバレイプロセッサ617が提供される。例えば、一実施形態において、そのオーバレイプロセッサ617は、ゲームスライスの実際のゲームプレーに先立つゲームへの導入として提供可能な映像、ゲームプレーまたは追加情報を定義する、プリゲームスライスデータを定義する。プリゲームスライスデータの一例は、スライスとなったゲームプレーを開始したユーザに背景を提供できる、導入映像である。別の実施形態において、プリゲームスライスデータは、ゲームスライスに対する導入ゲームプレーを定義し、そのゲームスライスをプレーする時にユーザに役立つかまたは必要となる可能性のあるスキルを学ぶ機会を、ユーザに提供する。別の実施形態において、プリゲームスライスデータは、ユーザにそのゲームスライスについての情報を提供する、一つまたは一連の複数の情報画面または画像を定義することができる。そのような情報には、ユーザにとって有用かまたはそうでなくてもそのゲームスライスのユーザのプレー体験を改善する、コントローラ構成、物語の背景情報、目的または目標、地図、あるいは他のいかなる種類の情報も含まれる。
オーバレイプロセッサ617はまた、ポストゲームスライスデータを定義するように構成することができる。いくつかの実施形態において、このポストゲームスライスデータはゲームスライスのゲームプレーを完了した後に表示される映像または画像を定義することができる。例えば、ユーザがゲームスライスを完了した後には、祝福の映像が表示される。そのような映像はそのゲームスライスのユーザによるゲームプレーに基づいて、例えばユーザのゲームプレーに基づく情報または画像を表示することにより、カスタマイズすることができる。一実施形態において、ポストゲームスライスデータは、ゲームスライスの完了後にユーザのゲームプレーの記録された部分を再生する、プレーバックメカニズムを定義することができる。別の実施形態において、ポストゲームスライスデータは、そのゲームスライスでのユーザのゲームプレーについての統計を表示し、ユーザのゲームプレーの他のユーザやそのゲームスライスの元の作成者との比較を示すことができる。さらに別の実施形態において、ポストゲームスライスデータは、ゲームスライスの完了時にユーザに提示される、追加の対話要素を定義することができる。これらは、そのゲームスライスの元となっているビデオゲームの一部または全部を購入するオプション、そのビデオゲームに関する追加の情報源にリダイレクトするオプションなどを含んでいる。
いくつかの実施形態において、オーバレイプロセッサ617はゲームスライスの中にオーバレイされる要素を定義するように構成することができる。これらには、キャラクタ、物体、特性のカスタマイゼーションおよびその他のカスタマイゼーションオプションなどのような、ゲームスライスをプレーするユーザによってカスタマイズ可能な要素を含む。いくつかの実施形態において、このオーバレイプロセッサ617はあるゲームスライスに対して単純化された要素を定義するように構成することができ、それによってゲームスライスコードの複雑さと、ゲームスライスを実行するために必要なリソースを減らすことができる。例として、多くのビデオゲームはキャラクタ、乗り物、敵などのような人工知能(AI)体を含む。これらのAI体は、完全なビデオゲームの中では、ビデオゲーム内で発生する事象に基づいたAI体の反応と活動を定義する、人工知能モデルによって管理される。しかしながら範囲の限定されたゲームスライスにあっては、あるAI体の活動は、完全なビデオゲームの中でそうであるような完全なモデリングよりはむしろ、ハードコード化された定義または単純化された外挿法を通じた、単純な定義でもよい。
例えば、もしも完全なビデオゲームの記録されたゲームプレー選択の中で、所定のAIキャラクタがそのゲームスライスの中では変化しそうにないAIモデルにしたがってある様子で動く場合には、そのゲームスライスのためのAIキャラクタの動きの近似を定義する方がより効率的である。そのような近似はそのゲームスライスコードの部分として含むべき完全なAIモデルを必要としないが、それでもそのゲームスライスをプレーするユーザには、そのAIキャラクタに関する体験としてはそのゲームスライスが作成された元のユーザのゲームプレーにおけるものと実質的に同等のものが提供される。AI体の活動の近似によって実現するリソース節減は、複数のAI体が存在しユーザの記録されたゲームプレー選択と相互作用する場合には、一層重要である。それぞれのAI体は、他のAI体のAIモデルの出力に依存するAIモデルを持つことがある。しかしながら、ゲームプレーが記録された時には、これらのAI体のそれぞれの活動は知られており、したがってそれらの制御変数の直接的コード化またはその活動の近似などの単純化されたメカニズムによって、それをゲームスライスの中で再生することが可能である。
引き続き図6を参照すると、ゲームスライスの初期状態を定義するために、ゲーム設定状態プロセッサ618が提供されている。ゲーム状態アナライザ614、ゲームブレークポイントプロセッサ616およびゲーム設定状態プロセッサ618の作動に基づき、コードアセンブリマネジャー620は、ゲームスライスコード622を定義するために、コードの種々の部分を集める。そのゲームスライスコード622が実行されると、ユーザのゲームプレー624はゲームスライスコードの実行状態を定義する入力を提供し、それはゲームスライスをユーザに表示するための映像データおよびフィードバックデータを含む、ゲームプレー出力を作成する。その映像データはプリゲームスライスオーバレイ映像622、ゲームスライスのゲームプレーの結果として得られるゲームスライス映像624、およびポストゲームスライスオーバレイ映像626を含むことができる。
当然のことながら、一実施形態において、ゲームスライスコード622は、そのゲームスライスを実行するのに必要なコードの部分すべてを含む、完全に自己充足的なものである。しかしながら他の実施形態において、ゲームスライスコード622は、完全なビデオゲームの主要なゲームコード内にある既存のコード部分についての参照または助言を取り入れることができる。さらに、ゲームスライスコード622は、完全なビデオゲームの主要なゲームコードに関するアセットライブラリ内の既存のアセットへの参照を含むか、それらを使用することができる。しかしながら他の実施形態において、新しいアセットライブラリがそのゲームスライスコードのために作成可能である。
図7Aは、本発明のある実施形態に従った、ビデオゲームのゲームスライスを作成するための、仮想空間の変更を示す。マップ700は、あるビデオゲームのシーンまたは地理的な一部を表わしている。示されたマップは2次元的表現で、そのビデオゲームの実際のゲームプレーの間に移動し体験する、3次元仮想空間を代表することができる。示されているように、マップ700は領域702およびいくつかの通路704、706、708および710を示している。ビデオゲームの記録されたゲームプレーの中では、ユーザのキャラクタ712が領域702から通路710へ移動する。この記録された動きおよびそのビデオゲームのゲームプレーのその他の分析に基づき、ゲームスライスの作成には追加の通路704、706および708は不要と判定することができる。それらの通路は通路710と比べると誤った選択を表わしているか、ゲームスライスには無関係の領域に導くか、あるいはゲームスライスのプレーヤが通路をたどって元のユーザと同じゲームプレーを体験する能力を減少させる可能性がある。さらに、もしも通路704、706および708が導く領域がゲームスライスの中でサポートされていなければ、そのような通路を含むことはプレーヤをまごつかせるか、少なくとも質の悪いユーザ体験になる。したがって変更されたマップ720では、通路710と領域702は変更せずに残されるが、通路704、706および708はそのゲームスライスのなかのゲームプレーでは使用できなくする。こうして、あるユーザがマップ720で定義された地形を採用したゲームスライスをプレーする時、彼はその中では通路704、706および708を通過できないような仮想空間を経験することになる。その時ユーザは、元のユーザがしたように、通路710を通過し、したがって同様のゲームプレーを体験する可能性が高い。
当然のことながら、ゲームスライスまたはミニゲームのために定義された仮想空間の部分は、ユーザの記録されたゲームプレーに基づいて判定された境界によって定義することができる。その境界はより大きな仮想空間の小領域を定義し、その大きな仮想空間で利用可能な特徴の小部分を含む。いくつかの実施形態において、仮想空間の境界は、ユーザのゲームプレーによって定義された仮想空間の中の位置を判定し、そこでその仮想空間に関連したそれらの位置に最も近く、かつそれを取り囲むように配置された、あらかじめ定められた境界を判定することにより、判定することができる。例えば、ユーザのゲームプレーはユーザのビデオゲームのキャラクタが通過する経路を定義することができる。この経路は分析可能であり、仮想空間内のその経路の位置に基づいて、その経路を取り囲む領域を定義する、一組のあらかじめ定められた境界を選択することができる。いくつかの実施形態において、あらかじめ定められた境界は、例えばドア、窓、壁、部屋、廊下、塀、道、交差点、玄関など、本質的に仮想空間の部分を定義する、特定の特徴によって定義することができる。
図7Bは、本発明の実施形態に従った、ゲームスライスを作成するためのシーングラフの変更を示す。シーングラフ730は、あるビデオゲームの種々のシーンAからGまでの構造を概念的に示している。当然のことながら、ここで述べたシーンは本質的に地理的および/または時間的なものであり、それぞれはプレーヤがあるシーンから他のシーンへと進んでいくのに従ってビデオゲームの中でプレーできる、ステージ、レベル、セクション、地点、あるいはその他のあらゆる構造上の単位を表している。このシーングラフ730の中では、シーンAからGまでを表す種々のノードが示されている。示されているように、プレーヤはシーンAからシーンBに進むことができ、シーンBからはシーンDかEのいずれかに進むことができる。プレーヤはまた、シーンAからシーンCに進み、シーンCからシーンFかGのいずれかに進むこともできる。シーングラフ730は、完全なビデオゲームのシーンの構造を説明している。しかしながら、ゲームスライスを作成する目的に関して言うと、利用可能なすべてのシーンがそのゲームスライスに必要なわけではない。したがって、例としてはシーングラフ732があるゲームスライスのためのシーン構造を示す。示されているとおり、シーングラフ732はシーンA、B、CおよびFを含むが、完全なビデオゲームのシーングラフ730に含まれている、それ以外のシーンは含まない。これによってユーザはシーンAからシーンBかCのいずれかに進み、シーンCからシーンFに進むことができる。しかしながら、完全なビデオゲームのシーングラフ730のその他のシーンは、そのゲームスライスのゲームプレーには利用することができない。すでに述べたように、本発明の実施形態に従ったシステムは、ゲームスライスを作成する時にシーンの使用を制限するように構成することができる。そのようにしてゲームスライスは、そのゲームプレーの限定的な文脈と意図された目的に必要でないシーンを含むことはない。
図8は、本発明のある実施形態に従った、ゲームスライスを作成するための方法を示す。方法動作800では、ユーザのゲームプレーの映像の記録とビデオゲームの入力データやゲーム状態データのようなビデオゲームデータを含む、あるビデオゲームのユーザのゲームプレーが記録される。方法動作802では、ゲームスライスを作成するための記録されたゲームプレーの選択に用いる、ユーザインターフェースが提供される。そのインターフェースは、記録されたゲームプレーから開始ならびに終了位置を定義する、ユーザ入力を受け取るためのメカニズムを定義する。例えば、記録されたゲームプレーをレビューするインターフェースを提供することができ、それによってユーザは、ゲームプレー映像上の移動またはその再生に基づいて、ゲームプレー映像の中で開始および終了位置を定義できる。方法動作804では、ゲームプレー映像のユーザが定義した選択が受信される。方法動作806では、受信されたゲームプレー映像のユーザが定義した選択に基づき、ビデオゲームのブレークポイントが特定される。一実施形態において、ビデオゲームに対しあらかじめ定められたブレークポイントがある。ゲームプレー映像のユーザが定義した選択に基づき、ユーザが定義した選択の開始および終了位置に最も近いゲームブレークポイントを、作成するゲームスライスのゲームブレークポイントとして選択することができる。方法動作808では、ゲームコードは、特定されたブレークポイントによって定義されたとおりに、スライス選択のために定義される。方法動作810では、ゲームの設定状態はそのスライス選択のために定義される。一実施形態において、このゲーム設定状態は、ユーザの記録されたゲームプレーの中に存在しているゲーム状態に基づいている。方法動作812ではゲームスライスコードが作成され、方法動作814ではそのゲームスライスコードがゲームスライスライブラリに保存され、ユーザのアカウントに関連付けられる。
一実施形態において、その方法に方法動作816を含むことができ、その中では提案されたゲームスライスの映像選択が、ユーザの記録されたゲームプレーの映像およびデータに基づいて作成される。提案されたユーザのゲームプレーの選択は、そのユーザの記録されたゲームプレーの分析に基づいて判定することができる。例えば、その中で高レベルの活動が行われる部分のゲームプレー(例えばあらかじめ定められたしきい値を積極的に超える)が検出されると、それはゲームスライスビデオの選択に提案される可能性がある。方法動作818では、ゲームスライス選択のための前記インターフェースは、提案されたゲームスライスビデオの選択をユーザに提供することができる。一実施形態において、提案されたゲームスライスビデオの選択のそれぞれを表わすスクリーンショットを、ユーザに提供することができる。方法動作820では、提案されたゲームスライスビデオの選択の一つの、ユーザによる選択が受け取られる。ユーザの選択に基づいて、そのゲームスライスコードを作成し、既に述べたように保存することができる。
図9Aは、本発明の一実施形態に従って、多様なゲームタイトルと関連するゲームスライスをブラウズするためのインターフェースを示す。図示された実施形態において、インターフェースは、選択時、異なるゲームタイトルに対応する多様なページへのアクセスを提供するタブ900、902、および904を含む一連のタブに編成される。図示された実施形態において、タブ900が現在選択されており、したがって提示されているページは、特定のゲームタイトルT1のために作成されたゲームスライスについての情報を提供する。ゲームスライスリスティング904は、ゲームタイトルT1から作成された多様なゲームスライスを一覧表示する。一実施形態において、ゲームスライスリスティング904はゲームスライスを作成したユーザも識別する(例えば、ゲームスライスを作成したユーザのユーザ名を表示する)。一実施形態において、ゲームスライスリスティング904は、ゲームスライスリスティング904に一覧表示されるゲームスライスの内の異なるゲームスライスを強調表示するようにブラウズまたはナビゲートできる。図示された実施形態において、ユーザAによって作成されたゲームスライスAが現在強調表示されており、それによってゲームスライスAに関連する詳細906が表示される。詳細906は、ゲームスライスに関連する多様な種類の情報、ゲームスライスが生成された係るレベルまたはステージ、ゲームスライスが作成された場所についてのより具体的な情報を提供するゲーム詳細、ゲームスライスを作成したユーザAによるコメント、他者からのコメント数、ゲームスライスがプレーされた回数、またはゲームスライスのリスティングが強調表示されるときに提供できるゲームスライスについての任意の他のタイプの情報を含むことがある。
図9Bは、本発明の実施形態に係るゲームスライス情報ページを示す。ゲームスライス情報ページは、図9Aに関して説明されたゲームスライスA用であり、ユーザが図9Aに示されるようにゲームスライスAのリスティングを選択するときに到達できる。続けて図9Bを参照すると、ゲームスライス情報ページは、ゲームスライスに関連する多様な種類の情報を提供する。ゲームスライスについての書誌情報(例えば、タイトル、ゲームスライスを作成したユーザのユーザ名、作成日等)に加えて、ゲームスライスのビデオ910が表示されてよい。一実施形態において、ビデオ910は、ゲームスライスを作成したオリジナルユーザの記録されたゲームプレービデオである。別の実施形態において、ビデオ910は、ゲームスライスで最高得点を達成したユーザまたは最近ゲームスライスをプレーしたユーザ等の他のユーザの記録されたゲームプレービデオであるだろう。一実施形態において、ビデオ910は、現在ゲームスライスをプレー中であるユーザのライブフィードであるだろう。他の実施形態において、ビデオの代わりにゲームスライスの代表的な画像が示されるだろう。
ゲームスライス情報ページは、ゲームスライスのゲームプレーを開始するための選択可能ボタン912をさらに含むことがある。また、ゲームスライス情報ページは、プレー回数、平均完了率等のゲームスライスについての多様な詳細および統計的な情報を取り上げることができる詳細部914を含むこともある。また、ゲームスライス情報ページは、ユーザによって残されたコメントを取り上げるコメント部916を含むこともある。ソートボタン918は、コメントを並べ替えるための多様なオプション(例えば、年代順、最も人気がある、格付けごと、カレントユーザに対する関係性(例えば、ソーシャルグラフのユーザの友人によるコメントに優先順位が付けられる)等)を選択するために提供できる。
図10は、本発明の一実施形態に従ってクラウドゲーミングソーシャルネットワークでの友人のライブビューを含むユーザのアカウント情報の図を示す。ライブラリ部1002は、ユーザのライブラリの多様なゲームタイトルを表示する。これらは、ユーザが購入した、またはそれ以外の場合獲得したゲームタイトルであってよい。ゲームタイトルの表示は、タイトル情報に加えて代表的なグラフィックスの表示を含むことがある。ゲームが完全版のゲームタイトルであることもあるが、それぞれが完全版のゲームタイトルの一部であってよい、または完全版のゲームタイトルと比較するとなんらかの能力で制限されることがある限定版のミニ版である場合もあることが理解されるだろう。友人リスティング1004は、クラウドゲーミングシステムに関連するソーシャルネットワークでのカレントユーザの友人(つまり、カレントユーザのソーシャルグラフの他のユーザ)を一覧表示する。ソーシャルネットワークは、クラウドゲーミングシステムにとって特定であるソーシャルネットワークであることもあれば、クラウドゲーミングシステムがユーザのソーシャルグラフについての情報を入手するために通信する相手である、クラウドゲーミングシステムとは別に存在する(サードパーティ)ソーシャルネットワークであってもよい。友人リスティング1004は、各友人によって所有されるゲームを示し、友人のオンラインステータス(例えば、オンライン、オフライン、インアクティブ等)、友人の最後のログインおよびその持続時間、ユーザによってプレーされた最後のゲーム等を識別する等、ユーザの友人についての追加情報を含むことがある。
一実施形態において、ライブアクティブユーザ部1006が、現在オンラインであり、ビデオゲームをプレー中である場合がある友人のゲームプレーのライブビューを提供する。一実施形態において、各ユーザは、自分のライブゲームプレーを他のユーザによるライブ視聴に供するかどうかを設定するオプションを有する。係る実施形態において、ライブビューは、他のユーザが自分のライブゲームプレーを視聴可能にすることを許すように指定されたオプションを有するそれらのユーザだけから提示される。図示された実施形態において、ライブアクティブユーザ部1006は友人Bのカレントゲームプレーのライブビュー1010だけではなく、友人Aのカレントゲームプレーのライブビュー1008も含む。一実施形態において、カレントユーザは、友人リスティング1004の友人をナビゲートもしくはブラウズする、および/またはライブアクティブユーザセクション1006で利用可能であるライブビューをブラウズすることができる。一実施形態において、ライブビューは、カレントユーザがそのライブビューにナビゲートするときに強調表示でき、他のライブビューとは異なるようにレンダリングし得る。例えば、ライブビューは、デフォルトで彩度を減じたカラースキームで表示されるが、強調表示時または選択時に完全に飽和したカラースキームで表示される可能性がある。また、ライブビューはより低い解像度、フレームレートまたはデフォルトによるサイズで表示されるが、選択時にはより高い解像度、フレームレートまたはサイズで表示される可能性もある。このようにして、ユーザが視聴することに関心があるライブビューを、同時にアクティブであることがある他のライブビューよりも高い忠実度で提示するために、ユーザの選択に基づいて特定のライブビューに帯域幅を割り当てることができる。ライブビューが単にビデオゲームの特定のゲームプレーではなく、メニューを通したナビゲーション等のクラウドゲーミングシステム上での友人の他の活動またはそのクラウドゲーミングセッションに関連する他のタイプの活動も表示し得ることが理解されるべきである。
一実施形態において、ライブビューは、現在ビデオゲームのゲームプレーにアクティブに関与しているそれらのユーザだけが利用できる。言い換えると、所与のユーザのライブビューは、そのユーザがオフラインであるとき、またはオンラインであるがビデオゲームのゲームプレーにアクティブに関与していないときのどちらかでは利用できない。したがって、ユーザがクラウドゲーミングシステムでゲームプレー以外の他の活動を実行している(例えば、システムにログインしている間にクラウドゲーミングシステムのグラフィックインターフェースをナビゲートしている)とき、係る活動は、他者が視聴するライブフィードには供されない。別の実施形態において、ライブビューは、ゲームプレー以外の他の活動だけではなくユーザのゲームプレーも含む、クラウドゲーミングシステムにログインしているユーザの全活動を含むことがある。
一実施形態において、所与のユーザのライブビューは、潜在的に機密に関わる情報または個人情報を他者による視聴にさらさないようにフィルタにかけることができる。例えば、クラウドゲーミングシステムがチャット機能をサポートすることがある。一部のユーザはチャットを誰もが参加できないままにしておきたいので、ライブビューを提示するときにチャットログを除外するオプションを提供できる。ゲームプレー以外の活動中だけではなくゲームプレー活動中にもチャット機能を実装することができ、これらの状況のどちらかまたは両方のライブビューからチャット機能をフィルタで除去し得ることが理解されるべきである。別の実施形態において、ビデオゲームの態様がライブビューからフィルタで除去される可能性がある。例えば、ユーザが特定のユーザ定義の設定値を、それらがゲームプレー中にそのユーザにアドバンテージを与えることがあるので秘密にしておきたいことがある。したがって、(例えば、ユーザがビデオゲームの設定値インターフェースにアクセスするときに)設定値に関連した活動に、ライブフィードの一部として表示されないというオプションを提供し得る。別の実施形態において、ライブビューは、個人情報の視聴を防ぐ(例えば、ユーザが個人情報ページにアクセスするとき、支払情報を入力するとき、パスワードを入力するとき等に視聴を防ぐ)ように構成できる。
一実施形態において、インターフェースが一次ユーザに、現在オンラインである二次ユーザのゲーミングセッションに加わることを要求するオプションを提供する。例えば、一次ユーザが二次ユーザのライブゲームプレーフィードを視聴し、二次ユーザのゲームプレーに加わりたいことがある。一実施形態において、オプションが活性化されると、二次ユーザに、一次ユーザが彼らのセッションに加わりたい旨を二次ユーザに知らせる要求が送信される。二次ユーザが要求を受け入れる場合、次いでビデオゲームのマルチプレーヤモードが起動され、第1のユーザおよび第2のユーザによるマルチプレーヤゲームプレーを容易にする。別の実施形態において、2人または3人以上の二次ユーザがマルチプレーヤゲームプレーにすでに関与していることがある。係る実施形態において、一次ユーザはマルチプレーヤゲームプレーに加わる要求を送信できる。二次ユーザ(例えば、ゲームプレーセッションの指定されたホスト)の内の一人によって要求が受け入れられると、一次ユーザはビデオゲームのマルチプレーヤセッションに加わることができる。二次ユーザのライブゲームプレーフィードを示す上述のインターフェースが、二次ユーザのゲームプレーを見ることができるようになった後に二次ユーザのゲームプレーに加わる一次ユーザを促進することが理解されるべきである。
一実施形態において、二次ユーザのゲームプレーに加わる要求を行うオプションは、一次ユーザによるビデオゲームの所有権ステータスの決定を前提としている。一次ユーザがビデオゲームを所有していない場合には、オプションが提示されないことがあるのに対して、一次ユーザが二次ユーザと同じビデオゲームを所有している場合には、二次ユーザのゲームプレーに加わる要求を行うオプションがインターフェースの一部として利用できる。一実施形態において、一次ユーザがビデオゲームの所有者ではないと決定されでも、一次ユーザは次いで、ゲームプレーの持続時間、利用可能なシーン/レベル/ステージ/等、カスタマイズオプション、能力、スキル、武器、キャラクタ、乗り物、または制限されることがあるビデオゲームの任意の他の態様等、能力は限られるが、マルチプレーヤモードで二次ユーザのゲームプレーに加わり得る。一実施形態において、ビデオゲームの限定版のゲームプレーに続いて、一次ユーザはビデオゲームを完全に購入するオプションを提供される。別の実施形態において、一次ユーザは、ビデオゲームの追加部分を購入するオプションを提供される。
図10を続けて参照すると、表示された情報はユーザの友人のゲーム履歴情報1012も含むことがある。ゲーム履歴情報1012は、最近プレーしたゲーム、ゲームプレーセッションの持続時間、ゲームプレーに関する統計等、所与の友人のゲームプレー履歴についての情報を提供できる。
クラウドゲーミングインターフェースを提示するための多くの方法および構成が、本発明の多様な実施形態に従って可能であることが理解されるだろう。係る一実施形態において、一次ユーザのクラウドゲーミングインターフェースを提示する方法動作と、一次ユーザの友人である1人または複数の二次ユーザを決定する方法動作と、二次ユーザのそれぞれのカレントステータスを決定する方法動作であって、カレントステータスがオンラインまたはオフラインの内の1つである決定する方法動作と、少なくとも1人のオンライン二次ユーザに、一次ユーザのクラウドゲーミングインターフェースでのオンライン二次ユーザのカレントゲーミングセッションのライブフィードを提示する方法動作であって、ライブフィードが、一次ユーザがオンライン二次ユーザのカレントゲーミングセッションに加わるオプションを提供することを含む、提示する方法動作と、一次ユーザがオンライン二次ユーザのカレントゲーミングセッションに加わるオプションを活性化する要求を受け取ることに応えて、オンライン二次ユーザのカレントゲーミングセッションのマルチプレーヤモードを起動する方法動作であって、マルチプレーヤモードがオンライン二次ユーザのカレントゲーミングセッションで一次ユーザのゲームプレーを提供し、マルチプレーヤモードを起動することが、オンライン二次ユーザのカレントゲーミングセッションを定義する、ビデオゲームに関する一次ユーザの所有権ステータスを決定することを含み、一次ユーザがビデオゲームを所有すると決定されるとき、次いでマルチプレーヤモードがビデオゲームの完全版のゲームプレーを提供し、一次ユーザがビデオゲームを所有していないと決定されるとき、次いでマルチプレーヤモードがビデオゲームの限定版のゲームプレーを提供する、起動する方法動作を含む、クラウドゲーミングシステムのユーザのカレントゲーミングステータスを表示するための方法が提供される。
一実施形態において、ビデオゲームの限定版は、ビデオゲームの完全版と比較して、利用可能なレベル、利用可能なシーン、利用可能な機能、制限時間、仮想空間、キャンペーン長、ライフの数、またはリプレーの回数の内の1つまたは複数での縮小を定める。
一実施形態において、方法は、ビデオゲームが一次ユーザによって所有されていないときに、一次ユーザがビデオゲームの少なくとも一部を購入するオプションを提示する方法動作をさらに含む。
一実施形態において、オンライン二次ユーザのライブフィードは第1の解像度で提示され、ライブフィードの選択が、第1の解像度よりも高い第2の解像度でのオンライン二次ユーザのライブフィードの提示をトリガする。
一実施形態において、オンライン二次ユーザのライブフィードは彩度が減じられたカラーモードで提示され、ライブフィードの選択が、飽和カラーモードでのオンライン二次ユーザのライブフィードの提示をトリガする。
一実施形態において、クラウドゲーミングインターフェースを提示することは、二次ユーザのそれぞれと関連するゲームタイトルのライブラリを提示することを含む。
一実施形態において、1人または複数の二次ユーザを決定することは、一次ユーザと関連するソーシャルグラフにアクセスすることを含む。一実施形態において、ソーシャルグラフにアクセスすることは、ソーシャルネットワークのAPIにアクセスすることを含む。
一実施形態において、一次ユーザのクラウドゲーミングインターフェースを提示することは、優先順位で二次ユーザのそれぞれのリスティングを提示することを含み、優先順位は、カレントステータス、ログインの最新性、または一次ユーザとのゲームの共同所有の内の1つまたは複数に基づく。
図11は、本発明の一実施形態に従ってカレントユーザの友人のライブゲームプレーフィードを提示する方法を示す。方法動作1100で、カレントユーザがクラウドゲーミングシステムにログオンする。方法動作1102で、カレントユーザの友人がカレントユーザのソーシャルグラフから識別される。上述されたように、カレントユーザのソーシャルグラフは、クラウドゲーミングシステムに特定であるソーシャルネットワークから、またはおそらくクラウドゲーミングシステムとは別に存在するソーシャルネットワークからである場合がある。方法動作1104で、ユーザの友人のライブラリ情報が取り出される。ユーザの友人のライブラリ情報は、ユーザの友人ライブラリのゲームタイトルを識別できる。方法動作1106で、カレントユーザの友人のカレントステータスが識別される。所与の友人のカレントステータスがオンラインである場合、次いで方法動作1108で、所与の友人が現在クラウドベースシステムでビデオゲームのゲームプレーに関与しているかどうかが決定される。関与している場合、次いで方法動作1112で、そのユーザのためのライブゲームプレーフィードが入手される。方法動作1110で、カレントユーザの友人は多様な要因または好みに基づいて表示のために優先順位を付けられる。方法動作1114で、カレントユーザの友人および彼らのステータス情報およびライフゲームプレーフィードが優先順位で提示される。一実施形態において、オンラインであるカレントユーザの友人は、現在オフラインである友人よりも優先される。一実施形態において、現在アクティブゲームプレーに関与している、カレントユーザの友人は、現在アクティブゲームプレーに関与していない友人よりも優先される。一実施形態において、利用可能なライブゲームプレーフィードを有する友人は他の友人よりも優先されてよい。一実施形態において、友人は、友人がクラウドゲーミングシステムにログインした最新性に基づいて優先順位を付けられてよい。別の実施形態において、友人は、ビデオゲームの共同所有に基づいて優先順位を付けられてよい。友人の優先順位付けの上記例は、制限としてではなく、単に例として提供される。他の実施形態において、カレントユーザの友人を、他の関連する要因に基づいた優先度に従って優先順位を付け、提示することができることが当業者によって理解されるだろう。
図12は、本発明の実施形態に係るクラウドゲーミングシステムおよびソーシャルネットワークを含むシステムを示す。クラウドゲーミングシステム1200は、クラウドベースのあなたのゲームへのアクセスを提供する。クラウドゲーミングシステムは、ユーザによってプレーされてよい多様なゲームタイトルを含むゲームライブラリ1202を含む。ユーザデータ1204は、ユーザが所有するゲームタイトル、ユーザの任意の保存されたゲームプレー等の、ユーザアカウントと関連する多様な種類のデータを含む。図示された実施形態において、セッションA、セッションB、およびセッションCを含む多様なゲームプレーセッションが概念的に示されている。セッションAは、ディスプレイ1208でセッションAのゲームプレーを視聴するユーザAのゲームプレーを定義する。セッションAのゲームプレーは、ユーザAのディスプレイ1208にビュー1210としてレンダリングされる。同様に、セッションBは、ビュー1214としてユーザBの装置1212でレンダリングされる、ユーザBのゲームプレーを定義する。図示された実施形態において、ユーザBのセッションのビュー1214は、セッションAのライブビューおよびセッションCのライブビューを含む、他のユーザからのライブビューを含むインターフェースを示す。セッションAおよびセッションCからのゲームプレーが進行するにつれ、ユーザBのビュー1214で表示されるように、ゲームプレービデオはセッションAおよびCから出力され、ユーザBのセッションを介してストリーム化できる。ゲームプレービデオは、例えば帯域幅を保存するために解像度、サイズ、フレームレート、色飽和度等を引き下げる等、ユーザBのセッションを介したストリーム化のために処理されてよい。
図12を続けて参照すると、ソーシャルネットワーク1216も示されている。ソーシャルネットワーク1216は、ユーザのソーシャルグラフ、職、写真、ビデオ、略歴等のデータを含むユーザデータ1218を含む。アプリ1220はソーシャルネットワークプラットホーム上で実行できる。グラフィックユーザインターフェース(GUI)1222は、ソーシャルネットワークと対話するためのインターフェースを設定する。API1224はソーシャルネットワークへのアクセスを容易にする。通知モジュール1226は、ソーシャルネットワークユーザの好みに従ってソーシャルネットワークユーザの通知を処理する。上述されたように、ユーザBのビュー1214は、他のユーザのセッションからのライブフィードを含む。一実施形態において、ユーザBの友人は、ユーザBのソーシャルグラフのメンバを決定するためにソーシャルネットワーク1216のAPI1224へのアクセスに基づいて決定された。これらのメンバは、セッションAおよびセッションCからのフィードを含むユーザBの友人からのライブゲームプレーフィードを提供するために、クラウドゲーミングシステムのユーザに対して相互参照された。
一実施形態において、ユーザAは、自分のゲームプレーセッションAから自分のソーシャルグラフに共有することを選ぶ。ユーザAのセッションAは、API1224を介して通信して、ソーシャルネットワーク1216の通知モジュール1226を起動して、ユーザAのソーシャルグラフの友人に適切な通知を送る。ユーザAのソーシャルグラフにいるソーシャルネットワークユーザ1230が装置1228を介してソーシャルネットワークにアクセスするとき、彼らはユーザAのセッションについてユーザAからのメッセージまたは投稿を見ることがある。セットアップされている場合、ユーザは、ユーザAがソーシャルネットワーク上で何かを共有していることを示す電子メール等の通知を受け取る可能性がある。ユーザAが、ビデオゲームでの成果、ビデオゲームをプレーする招待状、ビデオゲームについてのコメント、ユーザAが作成したゲームスライスを視聴またはプレーする招待状、ユーザAのゲームプレーのビデオクリップ等の多様なビデオゲーム関連活動について共有してよいことが理解されるべきである。
図13は、本発明の実施形態に従って経時的に多様なゲーム状態変数を示すグラフである。種々の実施形態において、特定のビデオゲームにとって固有となる多くの異なる種類のゲーム状態変数がある場合があることが理解されるべきである。図示された実施形態に関して示され、説明されているゲーム状態変数は、制限としてではなく、単に例として提供されている。ゲーム状態変数は、ユーザ入力によって設定される値だけではなく、ビデオゲームを実行することによって設定される値を含むこともある。図示された実施形態において、キャラクタまたは乗り物等のビデオゲームの仮想空間でのオブジェクトのX位置、Y位置およびZ位置を示す、図示される位置変数がある。カメラアングル変数は、ビデオゲームでの仮想カメラまたは仮想ビューの方向を示す。一実施形態において、カメラアングルは、アジマス基準に関して(例えば、水平面に沿って)測定されるアジマス成分、および(例えば垂直面に対する)傾斜基準に関して測定される傾斜成分によって定められる。示されているアクションA変数およびアクションB変数等のアクション変数は、ビデオゲーム内での多様なアクションの開始およびサステインを示す。所与のビデオゲームのアクションが、そのビデオゲームのコンテキストに特定となることが理解されるべきである。例として、アクションは、特定の戦略の開始、スキルの適用、強度または頻度等のそのレベルを上げること等の既存のアクションまたはビデオゲームの流れの中でユーザ入力によってトリガできる他のタイプのアクションもしくは活動を修正する修正機構のトリガを含むだろう。図13を続けて参照すると、武器変数は、ビデオゲームにおける武器のトリガを示す。ヘルス変数は、例えばビデオゲームでのユーザのキャラクタの健康(ヘルス)のレベルを示す。ボタン変数は、例えばボタンが押下状態にあるのか、それとも解放ステートメントにあるのか等、コントローラ装置のボタンの状態を示す。図示された実施形態のジョイスティック状態変数は、中立位置に対するジョイスティックの移動の規模を示す。図示された実施形態に関して説明された上述のゲーム状態変数は単に例示的であり、多くの他のタイプのゲーム状態変数が経時的に追跡調査できることが当業者によって認識されるだろう。
再び図6の実施形態を参照して、一実施形態において、ゲーム状態アナライザ614がユーザの記録されているゲームプレーのゲーム状態変数を分析するように構成できる。ユーザの記録されているゲームプレーの分析に基づいて、ユーザの記録されているゲームプレーの多様な関心領域が定義され、ゲームスライス生成元の考えられる選択としてユーザに提示できる。例えば、特定のゲーム状態変数の活動の高いレベルによって特徴付けられるゲームプレーの領域が、ユーザの記録されているゲームプレーの選択を定義する可能性がある。所与のゲーム状態変数の活動レベルが、強度のレベル、活性化の頻度、サステインの持続時間等の多様な要因に基づくことがあることが理解されるべきである。いくつかの実施形態において、ゲーム状態変数の分析はゲームプレーの領域の検索を伴うことがあり、例えば2つまたは3つ以上の変数が同時に高い活動レベルを有する等、2つまたは3つ以上の異なるゲーム状態変数の活動レベルが所定の方法で相互に関連付けられる。高い活動レベルは、所定の閾値に基づいて決定できる。
種々の実施形態において、ユーザの記録されているゲームプレーの関心領域は、以下、つまり1つまたは複数のユーザ入力、ユーザ入力の速度、入力の頻度、入力のタイプの繰り返し、入力パターンの発生、組合せ入力(例えばコンボキー)、運動ベクトル、コントローラにかけられる圧力、ユーザの興奮(例えば、ユーザの取り込まれた画像または音声データに基づいて検出される)の内の任意の1つまたは複数の閾値検出に基づいて自動的に決定されてよい。
図14Aは、本発明の実施形態に従ってリニアタイプのビデオゲームのゲームスライスを生成するための方法を示す。大まかに言うと、リニアビデオゲームは、プレーヤが直線コースに従ってビデオゲームを進むビデオゲームであり、ビデオゲームを進むために、プレーヤは後の目的に進むより先に前の目的を完了しなければならない。したがって、すべてのプレーヤはビデオゲームを進むために同じ順序で同じ目的を完了しなければならない。リニアビデオゲームでの目的は、ビデオゲームの時空に関するストーリー展開のコンテキストの中で時間的な場所だけではなく地理的な位置にも結び付けられてよい。方法動作1400で、ビデオゲームのシーンが識別される。シーンは本来空間的と時間的の両方であり、その中で定義される多様な目的を有することがある。方法動作1402で、シーンの空間的な長さおよび時間的な長さが定義される。シーンの長さは、ユーザ入力に従って定義することができ、シーンに結び付けられた目的に基づいて定義されてもよい。方法動作1404で、特性を割り当てることができるシーン内のアイテム、キャラクタ、または任意の他のオブジェクトの初期設定が定められる。方法動作1406で、以前に定義された初期特性を有するシーンの識別された長さに対してゲームスライスが生成される。
図14Bは、本発明の実施形態に従ってオープンワールドタイプのビデオゲームのゲームスライスを生成するための方法を示す。オープンワールドビデオゲームは、ユーザが独自の選択順序で任意の数の目的を自由に追求してよいビデオゲームとして特徴付けることができる。また、オープンワールドタイプのビデオゲームは、通常、ユーザが1つまたは複数の仮想空間を意のままにナビゲートすることも許す。異なるレベルのビデオゲームまたは完全なビデオゲームに進むためには、目的の特定のセットの完了が必要とされることがあるが、ユーザは自由に異なる順序付けでこれらの目的を完了してよい。方法動作1410で、ビデオゲームの仮想世界の内の場所が識別される。方法動作1412で、仮想世界の限られた部分が定義される。仮想世界の限られた部分は、本明細書に説明されるように、記録されているゲームプレーの選択を定義するユーザ入力に基づいて定義できる。例えば、オープンワールドビデオゲームでのユーザのゲームプレーはゲームプレーの過程で多種多様の場所に及ぶことがある。ただし、ゲームスライスを生成するために、ユーザは、ビデオゲームの仮想世界の限られた地理的な領域内で発生するゲームプレーの部分を選択してよい。この限られた地理的な領域は、例えば仮想世界内でユーザによって制御されるキャラクタの場所を追跡調査し、そのキャラクタが存在することが判明したすべての場所を含む境界を画定する等、ユーザの記録されているゲームプレーのユーザによって選択された部分の分析に基づいて決定できる。方法動作1414で、ユーザの記録されているゲームプレーの選択から以前に決定された限られた地理的領域内で発見される多様なオブジェクト、キャラクタ、アイテム、乗り物、または任意の他のオブジェクトの初期特性が定められる。方法動作1416で、ゲームスライスは、オープンワールドの限られた地理的な領域および以前に定義された特性に基づいて生成される。
図14Cは、本発明の実施形態に従ってスポーツビデオゲームのゲームスライスを生成するための方法を示す。ゲームスライスは、ユーザの記録されているゲームプレーのユーザ定義の選択に基づいて生成できる。方法動作1420で、ユーザの記録されているゲームプレーの選択に基づいて設定値が識別される。例として、設定値は、コート、スタジアム、トラック、またはビデオゲームのスポーツイベントが発生することがある任意の他の場所設定の場所を定義できる。方法動作1422で、ユーザの記録されているゲームプレーの選択に基づいて期間が定義される。期間は、ゲームスライスが生成される時間的な部分を定め、記録されているゲームプレーのユーザの選択に基づいて定めることができる。スポーツビデオゲームの期間は、特別な規則またはスポーツの間の特定の期間に発生する活動の包含等、ビデオゲームスライスの特定の態様を決定してよい。方法動作1424で、ゲームスライスのプレーヤは、ユーザの記録されているゲームプレー選択に含まれるプレーヤに基づいて決定される。プレーヤは、ゲームプレー時に、実行するビデオゲームの人工知能(AI)キャラクタ制御論理によって制御されたAIキャラクタだけではなく、ユーザによって定義された1つまたは複数のキャラクタも含むことがある。本明細書の他の箇所に説明されたように、AIキャラクタのアクションはいくつかの例では近似する可能性がある。他方、いくつかの実施形態においては、AIキャラクタ制御論理は、ユーザの記録されているゲームプレー選択で定義されたようなパラメータでゲームスライスのために定義される。方法動作1426で、スポーツビデオゲームスライスの場所設定のためのシーン属性が定義される。例えば、これらは、天気、トラックまたはコースの状況等の属性、およびスポーツ設定の他の属性を含むことがある。方法動作1428で、ビデオゲームのゲームスライスが、上述のパラメータに基づいて生成される。
図15は、本発明の実施形態に係るマルチゲームスライスゲームの形成を概念的に示す。ビデオゲームは多様なレベルまたはステージに編成できる。図示された実施形態において、ビデオゲームの多様なレベルからのユーザのゲームプレーが示される。具体的には、ゲームプレー時系列1502およびゲームプレー時系列1506が、それぞれビデオゲームの第2のレベルおよび第3のレベルからのユーザのゲームプレーを表すのに対し、ゲームプレー時系列1500は、ビデオゲームの第1のレベルからのユーザのゲームプレーを表す。本発明の実施形態に従って、ユーザはビデオゲームからの複数のゲームスライスを連結させて、より大きなマルチゲームスライスミニゲームを形成できる。図示された実施形態において、ユーザのゲームプレー時系列1500からの選択1502が、第1のゲームスライス1514を定義するために活用される。2というユーザのゲームプレー時系列15からの選択1504が、第2のゲームスライス1818を定義するために活用される。そしてユーザのゲームプレー時系列1506からの選択1508が、第3のチームスライス1522を定義するために活用される。第1のゲームスライス、第2のゲームスライス、および第3のゲームスライスは連続準に配列されて、ミニゲーム1510を定義する。こうする際に、ミニゲーム1510は、ビデオゲームの第1のレベル、第2のレベル、および第3のレベルのそれぞれからのゲームスライスを含む。このようにして、ミニゲーム1510をプレーするユーザは、ミニゲーム1510を通してプレーすることによってビデオゲームの複数のレベルの限られた部分を経験できる。これは、ユーザがビデオゲームの1つのレベルまたは1つのステージから1つの部分だけしかプレーできない従来のゲームデモよりも、ビデオゲームのより説得力のあるプレビューまたはデモを提供する上で役立つ場合がある。経験は、通常、単に単一のクリップだけではなく同じ映画の異なる部分からのクリップを提供する映画プレビューの経験に類似している。本発明の実施形態に従って、ユーザは、完全なビデオゲームの範囲のより優れた意味を提供し、ある部分から次の部分へ連続してゲームプレーを取り上げることのできる複数部分のゲームデモを楽しむことができる。
一実施形態において、ユーザはゲームスライスの前または後にユーザ定義のビデオ、メッセージ、画像、または他のタイプの情報等の追加のデータを差し込むことができる。図示された実施形態において、ミニゲーム1510にプレーヤを紹介し、おそらくプレーヤを第1のゲームスライス1514にも紹介するためのイントロ1512が提供される。さらに、メッセージ1516が、第1のゲームスライス1514と第2のゲームスライス1518との間に挿入される。一方、別のメッセージ1520が、第2のゲームスライス1518と第3のゲームスライス1522との間に挿入される。一実施形態において、挿入されるデータは、ゲームスライスの生成元のオリジナルユーザのゲームプレーの記録されているゲームプレービデオを含むことがある。記録されているゲームプレーがゲームスライスをプレーする前に示される場合、ゲームスライスを開始するプレーヤはゲームプレーを始める前にゲームスライスおよびその目的をよりよく理解できるのに対し、ゲームスライスのゲームプレーの後に示され、プレーヤは、ゲームスライスのゲームプレーがオリジナルユーザのゲームプレーにどれほど比較されるかを理解できる。
図16は、本発明の実施形態に係るマルチゲームスライスミニゲームの生成を概念的に示す。図示された実施形態において、ゲームAのユーザの記録されるゲームプレー時系列1600が、ゲームBのユーザの記録されるゲームプレー時系列1604およびゲームCのユーザの記録されるゲームプレー時系列1608と共に示される。一実施形態において、ユーザは、異なるビデオゲームからのゲームスライスに基づいてマルチゲームスライスミニゲームを生成できる。図示された実施形態において、ユーザの記録されているゲームプレー1604からの選択1606がゲームスライス1620を定義するために活用され、ユーザの記録されているゲームプレー1608からの選択1610がゲームスライス1624を定義するために活用されるのに対し、ユーザの記録されているゲームプレー1600の選択1602はゲームスライス1616を定義するために活用される。ゲームスライス1616、1620、および1624は、ミニゲーム1612を定義するために連続して配列される。任意選択で、ゲームスライスの前または後に追加のデータを挿入できる。図示された実施形態において、インタルード1618がゲームスライス1616とゲームスライス1620との間で定義され、別のインタルード1622がゲームスライス1620とゲームスライス1624との間で定義されるのに対し、イントロ1614はゲームスライス1616の前に挿入される。
図示された実施形態において、ゲームスライスが異なるビデオゲームから採取されることが理解されるだろう。これは、ユーザに、異なるゲームタイトル、ジャンル、およびコンソールプラットホーム世代全体からのゲームスライスも混合する大きな柔軟性を与える。単に例として、ユーザは単独のビデオゲームシリーズのいくつかのゲームタイトルのそれぞれからのゲームスライスを有するミニゲームを作成する可能性がある。このようにして、ミニゲームのプレーヤは、連続ゲームプレー経験でビデオゲームシリーズの進化を経験し、理解することができる。
本発明の実施形態は、クラウドベースゲーミングシステムに関して概して説明されてきた。しかしながら、本明細書に説明されたのと類似した概念および原理が、おそらくクラウドベースゲーミングシステムと連動して従来のコンソールベースのビデオシステムに適用できることが当業者によって理解されるべきである。例えば、ユーザはコンソールベースのビデオゲームをプレーし、ゲームプレー中に記録されるユーザのゲームプレー入力データおよびゲーム滞留メタデータを有することができる。ユーザのゲームプレー入力データおよびゲーム状態メタデータに基づいて、ビデオゲームの実際のゲームプレー出力を後に再生できる。したがって、記録されている入力データおよびゲーム状態メタデータは、説明されたように、ミニゲームの生成元のユーザのゲームプレーの部分の選択のためのインターフェースを提供するためにビデオゲームコードと併せて活用できる。ミニゲームコードはコンソールで生成し、クラウドシステムにアップロードし、他のユーザによるダウンロードに供することができる。別の実施形態において、ミニゲームコードは、ユーザゲームプレー入力データおよびゲーム状態メタデータの選択された部分を受け取った後にクラウドシステムによって生成される。クラウドシステムは、ユーザゲームプレー入力データおよびゲーム状態メタデータの選択された部分を処理して、クラウドシステムに記憶されるビデオゲームコードに基づいてミニゲームコードを生成する。ミニゲームは、いったん生成されると、ミニゲームの実行がクラウドベースシステムで起こるが、ミニゲームのコンソールベースのゲームプレーを促進するためにコンソール上での実行のために従来のコンソールベースのシステムへのダウンロードに供することもできるクラウドベースゲーミングに供することができる。このようにして、コンソールベースのビデオゲーミングシステムのユーザとクラウドベースのビデオゲーミングシステムのユーザの両方がミニゲームを作成し、プレーすることができる。
本発明の実施形態は概して、ミニゲームまたはビデオゲームのプレー可能なユーザ定義部分に関して説明されてきた。しかしながら、本明細書で説明された原理の多くが、記録されているゲームプレー、スクリーンショット、およびアクティブゲームプレーのライブストリーミングを共有することを含む、記録されているゲームプレーの生成および共有にも容易に適用することが当業者によって理解されるだろう。いくつかの実施形態において、(例えば通知を受け取ったことに応えて)ミニゲームにアクセスを提供することは、ミニゲームの基礎となったオリジナルユーザのゲームプレーの記録されているビデオを提示することを含むことがある。さらに別の実施形態において、方法、システム、およびインターフェースが、ユーザのソーシャルグラフに対するユーザのゲームプレーの共有を促進するために意図される。
一実施形態において、ゲームプレーを記憶するための方法が意図される。ゲームプレーは、所望されるゲームプレーと関連するデータのセットに関して標準的なファイル動作の形で提供されることがある、ユーザの要求に応えてゲームコンソールのオペレーティングシステムによって実行できる。要求は、ゲームに関連するアプリケーションから送信できる。ゲームプレーは、壁紙、テーマ、コード「アドオン」コンテンツ、または任意の他のタイプのゲームに関連するコンテンツを含む、例えばビデオコンテンツ、音声コンテンツ、および/または静止ビジュアルコンテンツを含むことがある。無料なのかそれとも有料なのか、完全なのかそれともトライアルなのか、および/または販売用なのかそれともレンタル用なのかに関わりなく、係るコンテンツをユーザまたは開発者が生成できることが意図される。
ゲームプレーの部分はバッファに入れる、つまり一時的に記憶することができる。本明細書にさらに説明されるように、ゲームプレー内の以前のアクションについて、例えば、以前の15秒、以前に完了したレベルを一時的に記憶できる。本明細書に使用される「部分」は、データの単一ビットもしくは単一バイト、または複数のビットもしくは複数のバイトの任意の関連付けられたグループもしくは任意のグループに分割できるゲームプレーの任意の部分に相当することがある。例えば、ゲームプレーの「部分」は、レベル、章、シーン、行為、キャラクタ、背景、テクスチャ、コース、アクション、歌、テーマ、持続時間、サイズ、ファイル、その部分、およびその組合せに相当してよい。さらに、ゲームプレーの部分は、ビデオゲームのスクリーンショットまたは所定の持続時間を含むことがある。
一実施形態において、ゲームプレーの部分は、一次記憶装置または永久記憶装置のどちらかのゲームコンソールに局所的に記憶できる。代わりにまたはさらに、ゲームプレーの部分は、遠隔で記憶されるネットワーク上で送信できる。例えば、ゲームプレーの部分は、無線ネットワークまたは有線ネットワーク上で別の計算装置に、別のゲームコンソールに、またはリモートサーバに送信できる。係るリモートサーバはソーシャルメディアサーバを含んでよい。
任意選択で、バッファから取り出されないゲームプレーの部分、または特定のゲーミング間隔(例えば、特定の持続時間、レベル、章、コース等)の外部のゲームプレーの部分はバッファから削除できる。この削除プロセスは、オペレーティングシステムでの標準的なファイル動作を使用して完了できる。
ゲームプレーの部分は、記憶されているゲームプレーにアクセスできる多くのディスプレイ装置の内のどれかで表示できる。例えば、記憶されているゲームプレーは、ゲームプレーが取り込まれたゲームコンソールに接続されたテレビ受像機で表示できる。別の例では、記憶されているゲームプレーは、記憶されているゲームプレーが送信されたコンピュータで表示できる。記憶されているゲームプレーは、単独で、またはソーシャルメディアウェブサイト上等他の情報と併せて表示できる。
一実施形態において、ゲームプレーの部分は、ゲームプレーをバッファに入れた、または取り込んだユーザ以外のユーザと関連する別のゲームコンソールによって表示される。本実施形態に従って、ゲームプレーの部分は、第1のユーザから第2のユーザへ投げられているボールを、第1のユーザの視点から示してよい。ゲームプレーの部分は、次いで第2のユーザのゲームコンソールに送信できる。したがって、第2のユーザは第1のユーザの視点からゲームプレーを視聴できる。また、第2のユーザは、第1のユーザによって投げられ、第2のユーザを捕えたボールを第2のユーザの視点から示す、記憶されているゲームプレーの部分を有することもある。本実施形態において、第2のユーザは、第1のユーザの視点と第2のユーザの視点の両方からゲームプレーを見直すことができる。さらに、第2のユーザによって記憶されるゲームプレーの部分は第1のユーザのゲームコンソールに送信することができ、したがって第1のユーザは2つの視点からゲームプレーを見直し得る。本実施形態は任意の数の視点を有する任意の数のユーザに適用可能であり、したがってゲームプレーは任意の数の異なる観点から見直すことができる。
本明細書に説明されるようなゲームプレーの記憶、送信および/または表示に関して、ゲームプレーの部分は画像データまたはビデオデータとして記憶、送信および表示できることが意図される。ただし、別の実施形態において、ゲームプレーの部分は画像データまたはビデオデータを表すテレメトリまたはメタデータとして記憶し、送信することができ、表示する前にゲームコンソールまたは他の装置によって画像またはビデオとして作成し直すことができる。
いくつかの実施形態において、ゲームプレーの部分は、実行されたゲームプレーと所定の関係を有する。例えば、ゲームプレーの部分は、ゲームプレーの前の10秒等、現在実行中のゲームプレーの前の特定の量のゲームプレーに相当することがある。別の実施形態において、ゲームプレーの第1の部分はゲームプレーの第2の部分と所定の関係性を有する。例えば、ゲームプレーの第1の部分は、取込みボタンの選択の前のゲームプレーの10秒等の、ゲームプレーの第2の部分の取込み要求を受け取る前の特定の量のゲームプレーに相当することがある。これらの実施形態のそれぞれにおいて、ユーザは自分の特定の好みに従って現在のゲームプレーの前にバッファに入れられたゲームプレーまたは要求されたゲームプレーの量を構成し、調整できる。
他の実施形態において、バッファは「スマート」または「エラスティック」であり、したがってバッファは時間に関係なく変数に従ってゲームプレーを取り込む。係る一実施形態において、ゲームプレーの第1の部分はゲームプレーに関連するイベントと所定の関係性を有する。例えば、ゲームプレーの第1の部分は、高得点の到達、短時間での多数のポイントの収集、コントローラでのボタンの複数の選択、および他の珍しいイベント等の統計に現れた変則性を含むようにバッファに入れられてよい。係る統計に現れた変則性は、ある特定のゲームもしくはシーンについて、または一般的にすべてのゲームについてゲームプレー測定基準を平均的な測定基準に比較することによって決定できる。係る平均的な測定基準は、比較のために局所でまたは遠隔で記憶できる。例えば、ゲームコンソールはある特定のゲームについてグローバルな高得点を追跡調査し、ユーザがその高得点に近づき、超えるゲームプレーをバッファに入れることができる。別の例では、リモートサーバがある特定のゲームのグローバルな高得点を追跡調査することができ、ユーザがその高得点に近づき、超えるゲームプレーをバッファに入れるゲームコンソールにその情報を通信できる。
別の例では、ゲームプレーの部分は、トロフィの獲得または他のランドマーク到達等の成果を含むようにバッファに入れることができる。係るトロフィまたはランドマークは、特定数の達成ポイント、特定の到達レベル等の任意のゴールまたはゲーミング成果を記念した。例えば、ゲームプレーは、レベル10到達のため、100,000ポイント到達のため等のトロフィの授与を含むようにバッファに入れることができる。
同様に、トロフィの実際の達成または統計に現れた変則性に加えてイベントの到達に向けた進行は、ゲームプレーの部分に含まれるようにバッファに入れることができる。例えば、スクリーンショットをレベル1から10のそれぞれで撮り、レベル10到達のトロフィの受取りを記念するためにフォトアルバムを作成できる。別の例、第1回から第5回までレースに勝利したユーザのビデオを撮影でき、トロフィは5回の勝利に授与される。
このようにして、本発明の実施形態に従って、実行されたゲームの少なくとも一部はつねに実行中のバッファに保存できる。言い換えると、ゲームプレーの部分を共有する要求が受け取られるとき、以前のビデオを含むように前のゲームプレーの部分をすでに取り込むことができる。例えば、ユーザがレーシングゲームでゴールした後にゲームプレーの共有要求が受け取られる場合、バッファに入れられたゲームプレーはゴールしたユーザのビデオも含むことがある。言い換えると、ユーザは、ゲームプレー共有要求が行われる前に発生する瞬間を取り込むことができるだろう。
図17は、本発明の実施形態に従ってゲームプレーを共有するためのインターフェースを示す。図示されるように、インターフェース17は、例えばユーザのソーシャルグラフのメンバ等のユーザの友人への共有を促進するために多様な選択可能なアイコンを含む。一実施形態において、インターフェース1700はコントローラ装置の専用ボタンからアクセスできる。ゲームプレー中にボタンが押されるとき、ユーザが彼らのゲームプレーを共有できるようにするためにインターフェース1700を提示できる。
アイコン1702は、ユーザのゲームプレーからスクリーンショットのアップロードを開始するために選択できる。一実施形態において、アイコン1702の領域1704には、ユーザの最近のゲームプレーからの代表的なスクリーンショットが読み込まれ、それによって共有し得るスクリーンショットの小規模のプレビューを提供する。一実施形態において、アイコン1702の選択によって、ユーザがユーザのソーシャルグラフへの共有のためにユーザの記録されているゲームプレーから特定のスクリーンショットを選択するのを許す追加のスクリーンショット選択インターフェースへのアクセスが提供される。これは、ゲームプレーおよびその対応するスクリーンショット内の特定の時点を識別するために行き来するまたはナビゲートできる、ナビゲート可能なゲームプレー時系列の形をとることがある。
アイコン1706は、ユーザのゲームプレーのビデオのアップロードを開始するために選択できる。アイコン1706の領域1708は、例えばユーザのゲームプレーの最後の5秒、最近の成果等のユーザの最近のゲームプレーからの代表的なビデオクリップを表示し、それによって他者と共有できるユーザのゲームプレーからのビデオクリップの小規模のプレビューを表示するように構成できる。
アイコン1710は、ユーザのアクティブゲームプレーのライブビデオストリーミングを開始するために選択できる。一実施形態において、アイコン1710を選択すると、ユーザのゲームプレーのライブビデオストリーミングが開始される一方で、ユーザのゲームプレーの再開がトリガされる。別の実施形態において、アイコン1710を選択すると、ストリーミングビデオを誰と共有するのか、ゲームプレー中にユーザ自身を示すことを目的としたローカル画像取込み装置からビデオストリームを含むかどうか、コメントを有効にするかどうか等のストリーミングビデオ放送のための設定値を決定するためにインターフェースへのアクセスが提供される。
ユーザがゲームプレー(例えば、選択されたスクリーンショット、ビデオ、またはライブゲームプレーストリーム)を1人または複数の特に選択された友人に、彼らのソーシャルグラフ全体に、またはソーシャルネットワークの任意の友人に共有し得ることが理解されるだろう。ソーシャルネットワークは、ビデオゲームが実行されるプラットフォームと関連するゲーミングソーシャルネットワーク、またはビデオゲームもしくはそのプラットフォームとは別に存在するサードパーティのソーシャルネットワークであることがある。ソーシャルネットワークは、ソーシャルネットワークとの接続を許すように設定されたAPIを通してアクセスできる。ゲームプレーが共有されたユーザは、彼らに共有ゲームプレーを知らせる通知を受け取ってよい。係る通知は、ソーシャルニュースフィードへの投稿、ソーシャルネットワークを通じたプライベートメッセージ、ゲーム内通知、e−メール、チャット通知等の形をとってよい。ソーシャルネットワークにゲームプレーを共有することは、共有するユーザのソーシャルグラフの一部である場合もあれば、ない場合もあるソーシャルネットワークのユーザの他のサブセットにゲームプレーを利用可能にすることを伴うことがある。例えば、所与のビデオゲームの場合、ゲームプレーは共有される、またはやはりそのビデオゲームを所有し、したがってビデオゲームの共有ゲームプレーへのアクセスが付与されるソーシャルネットワークの任意のユーザが利用できるようになることがある。係る共有ゲームプレーは、オンラインフォーラム、チャットルーム、またはビデオゲームのプレーヤだけが利用できる他のオンラインチャネルを通してアクセスされてよい。一実施形態において、ビデオゲームは、ソーシャルネットワーク上に専用ページまたはサイトを有することがある。共有ゲームプレーは、ビデオゲームのページまたはサイトにアクセスするユーザが利用できる。言うまでもなく、共有するユーザの観点から、ユーザが自分のゲームプレーが誰と、およびどのフォーラムと共有するのかを指定し、調整することを許すためにオプションを提供できることが理解されるだろう。
図18は、本発明の実施形態に従って共有のために記録されているゲームプレーの部分を選択するためのインターフェース1800を示す。インターフェース1800は、ユーザのゲームプレーからビデオの現在選択されている部分のプレビューをループ化するプレビュー領域1802を含む。スクリーンショット1804、1806、1808、1810、および1812は年代順に互いに隣接して配置されて、ゲームプレービデオのコンテンツを示すスクリーンショットの時系列を定義する。多様なスクリーンショット1804、1806、1808、1810、および1812は、ゲームプレービデオから規則正しい間隔で抽出される画像フレームである場合がある。スクリーンショット時系列は、現在表示されているコマに先行するまたは続く追加のコマを示すために右または左にスクロールできる。マーカ1814および1816は、現在選択されているビデオクリップ(またはセグメントもしくは部分)の開始点および終了点を示す。現在選択されているビデオクリップは、上述されたように、プレビュー領域1802で繰り返し再生できる。
一実施形態において、ボタン1818および1820は、選択されたビデオ部分の持続時間をそれぞれ縮小するまたは増加するために選択できる。プレビュー部分1822は、現在選択されているビデオクリップの全画面プレビューの再生をトリガするために選択できる。トリミングオプション1824は、追加のビデオトリミング機能にアクセスするために選択できる。
図19は、本発明の実施形態に従ってユーザのゲームプレーのライブビデオストリームを視聴するためのインターフェース1900を示す。参照1902で、彼らのゲームプレーをストリーミングしているユーザの名前および/またはエイリアスが示される。参照1904で、現在ライブビデオストリームを視聴しているユーザの数が示される。ユーザのゲームプレーのライブビデオストリームは、ビデオ表示領域1906に表示される。さらに、ゲームプレーがライブストリーミングされている実際のユーザのライブビデオを示すライブユーザビデオ1908を含むことができる。コマンドオプション1910は、視聴するユーザがビデオゲームに影響を及ぼすコマンドを発行する、またはストリーミングするユーザのゲームプレーの制御を奪取することさえ許すために選択できる。ゲーム内コマンドの発行またはユーザのゲームプレーの遠隔制御には、ゲームをプレーするユーザからの、視聴するユーザが係るアクションを実行するのを許す、事前に定義された、またはゲームプレーの時点で要求されるかのどちらかの許可が必要になることがある。
オプション1912は、視聴するユーザがストリーミングするユーザのゲームプレーに加わることを許す。そして、オプション1914は、視聴するユーザが進行中のビデオゲームを購入できるようにする。
さらに、インターフェースは、各コメントの時刻を示す、ライブビデオストリームを視聴するユーザからのコメントを表示するコメント部1916を含むことがある。コメント入力フィールド1918が、視聴するユーザが投稿されるコメントのためのテキストを入力するために提供される。そして、ライブストリーミングするユーザおよびライブビデオストリームを視聴する他者による視聴のコメントをアップロードするために送信ボタン1920が押される。
本発明の実施形態は、専用のボタンを押すことから共有のための多様なインターフェースにアクセスすることに関して説明されてきたが、他の実施形態において、これらのインターフェースのいくつかまたはすべてが、ユーザソーシャルグラフへのゲームプレーの共有を促進することを必要とされないことがあることが理解されるだろう。例えば、一実施形態において、コントローラボタンは、押されたときにユーザゲームプレーのスクリーンショットを取り込むように構成できる。取り込まれたスクリーンショットは、次いで自動的にユーザソーシャルグラフにアップロードし、共有することができる。
別の実施形態において、コントローラで特定のボタンを押すと、ゲームプレービデオの記録が開始される。特定のボタンが二度目に押されるとき、ゲームプレービデオの記録は停止され、ビデオクリップをユーザソーシャルグラフにアップロードし、共有することができる。一実施形態において、ユーザソーシャルグラフへのビデオクリップのアップロードおよび共有は、ビデオ記録動作の終了に続き自動的に行われてよい。ただし、別の実施形態において、特定のボタンが記録を停止するために二度目に押されるとき、ユーザが、ビデオのトリミング、ビデオの代表的なスクリーンショットの選択等の多様なオプションをカスタマイズし、ビデオを共有する特定のユーザを決定し、キャプションまたはタイトルを追加する等を許すためにインターフェースが提示される。ユーザによるカスタマイズの後、ビデオは他者と共有できる、またはそれ以外の場合、視聴に供することができる。
一実施形態において、コントローラ上の特定のボタンは、ソーシャルネットワークでゲームプレービデオの所定の持続時間を共有するように構成できる。例えば、ユーザが、ボタン押下時、ゲームプレービデオの以前の10秒がユーザソーシャルグラフに共有されることを指定する可能性がある。別の実施形態において、ボタン押下時、ゲームプレービデオの次の10秒が記録され、ユーザソーシャルグラフに共有されることが指定されることがある。ビデオをトリミングするためのオプションおよび他のタイプのカスタマイズを実行するためのオプションが、記録されているゲームプレービデオに適用され得ることが理解されるべきである。さらに、ボタントリガに続く所定の持続時間の記録されているゲームプレービデオは、説明されたように以前にバッファに入れられたゲームプレービデオと結合できる。
さらに別の実施形態において、コントローラ装置の特定のボタンは、ユーザのアクティブゲームプレーのライブビデオストリーミングを開始するように構成できる。ライブビデオストリーミングは、ユーザソーシャルグラフのメンバだけに、またはユーザソーシャルグラフの特定のサブセット等ユーザの他のより小さいグループまたはより大きなグループに、同じビデオゲームを所有するまたはそれ以外の場合同じビデオゲームに対するアクセスを有するすべてのユーザ、ゲーミングプラットホームの任意のユーザ等が利用できるように事前に定義できる。
記録されたゲームプレーに基づくクラウドゲーミングのための、提案されたミニゲームの自動作成
一実施形態において、ビデオゲームの完全版のユーザのゲームプレーを記録する方法動作と、関心領域を決定するためにユーザの記録されているゲームプレーを分析する方法動作と、決定された関心領域に基づいてビデオゲームのゲームプレーコンテキストの中で境界を画定する方法動作と、画定された境界に基づいてビデオゲームの限定版を生成する方法動作とを含み、方法がプロセッサによって実行される、ビデオゲームのプレー可能な限定版を生成するための方法が提供される。
一実施形態において、ユーザのゲームプレーを記録することは、ユーザ入力データまたはゲーム状態データの内の1つまたは複数を記録することを含む。一実施形態において、ユーザの記録されているゲームプレーを分析することは、ユーザ入力データまたはゲーム状態データの活動のレベルを決定することを含み、関心領域は所定の閾値を超える活動のレベルを有する領域である。
一実施形態において、ビデオゲームのゲームプレーコンテキスト内で境界を画定することは、ビデオゲームの仮想空間内で空間的な境界を画定することを含む。一実施形態において、ビデオゲームの仮想空間内の空間的な境界は、仮想空間の全体よりも少ない仮想空間の部分を画定し、仮想空間の部分は仮想空間の特長のサブセットを有する。
一実施形態において、ビデオゲームのゲームプレーコンテキスト内で境界を画定することは、ビデオゲームの時間的なコンテキスト内で時間的な境界を画定することを含む。
一実施形態において、境界を画定することは、ステージ、レベル、またはシーンの内の1つまたは複数の最も近い開始点または最も近い終了点を識別することを含む。
一実施形態において、ユーザの記録されているゲームプレーを分析することは、ユーザの記録されているゲームプレーに基づいてユーザゲーム状態設定値を決定することを含み、ビデオゲームの限定版を生成することは、決定されたユーザゲーム状態設定値に基づいて初期のゲーム状態設定値を有するためにビデオゲームの限定版を定義することを含む。
一実施形態において、関心領域は、1つまたは複数の閾値に対する一致に基づいて自動的に識別される。一実施形態において、該閾値の内の少なくとも1つが、ユーザ入力、ユーザ入力の速度、ユーザ入力の頻度、ユーザ入力の繰り返し、入力パターン、他のユーザとのゲームプレーコンテキストの共有、ソーシャルネットワーク上でのゲームプレーと関連付けられたコマンドの投稿、またはソーシャルネットワーク共有レベルに基づいたビデオゲームの分部の人気の内の1つまたは複数に関連付けられる。
別の実施形態において、ビデオゲームの完全版のユーザのゲームプレーを記録する方法動作と、1つまたは複数の関心領域を決定するためにユーザの記録されているゲームプレーを分析する方法動作と、選択のために関心領域のそれぞれを提示する方法動作と、選択された関心領域を示す選択入力を受け取る方法動作と、選択された関心領域のために、選択された関心領域に基づいてビデオゲームのゲームプレーコンテキスト内で境界を画定する方法動作と、画定された境界に基づいてビデオゲームの限定版を生成する方法動作とを含み、方法がプロセッサによって実行される、ビデオゲームのプレー可能な限定版を生成するための方法が提供される。
一実施形態において、ユーザのゲームプレーを記録することは、ユーザ入力データまたはゲーム状態データの内の1つまたは複数を記録することを含む。一実施形態において、ユーザの記録されているゲームプレーを分析することは、ユーザ入力データまたはゲーム状態データの活動のレベルを決定することを含み、各関心領域が所定の閾値を超える活動のレベルを有する領域である。
一実施形態において、ユーザの記録されているゲームプレーを分析することは、ユーザの記録されているゲームプレーに基づいてユーザゲーム状態設定値を決定することを含み、ビデオゲームの限定版を生成することは、決定されたユーザゲーム状態設定値に基づいて初期のゲーム状態設定値を有するためにビデオゲームの限定版を定義することを含む。
一実施形態において、各関心領域は、1つまたは複数の閾値に対する一致に基づいて自動的に識別される。
別の実施形態において、ビデオゲームの完全版のユーザのゲームプレーを記録する方法動作であって、ユーザのゲームプレーを記録することが、ユーザ入力データまたはゲーム状態データの内の1つまたは複数を記録することを含む、記録する方法動作と、1つまたは複数の関心領域を決定するためにユーザの記録されているゲームプレーを分析する方法動作であって、各関心領域が1つまたは複数の閾値に対する一致に基づいて自動的に識別される、分析する方法動作と、選択のために関心領域のそれぞれを提示する方法動作と、選択された関心領域を示す選択入力を受け取る方法動作と、選択された関心領域のために、選択された関心領域に基づいてビデオゲームのゲームプレーコンテキスト内で境界を画定する方法動作と、画定された方法動作に基づいてビデオゲームの限定版を生成する方法動作とを含み、方法がプロセッサによって実行される、ビデオゲームのプレー可能な限定版を生成するための方法が提供される。
一実施形態において、ビデオゲームのゲームプレーコンテキスト内の境界を画定する方法動作は、ビデオゲームの仮想空間内の空間境界を画定する方法動作を含み、ビデオゲームの仮想空間内の空間境界は、仮想空間の全体を下回る仮想空間の部分を画定し、仮想空間の部分は、仮想空間の特徴のサブセットを有する。
一実施形態において、ビデオゲームのゲームプレーコンテキスト内の境界を画定する方法動作は、ビデオゲームの時間的コンテキスト内の時間的境界を画定する方法動作を含む。
一実施形態において、境界を画定する方法動作は、段階、レベルまたはシーンの1つまたはそれ以上の最も近い開始位置または最も近い終了位置を識別する方法動作を含む。
一実施形態において、上記の閾値の少なくとも1つは、ユーザ入力の速度、ユーザ入力の周波数、ユーザ入力の繰り返し、入力パターン、他のユーザとのゲームプレーコンテキストの共有、ソーシャルネットワーク上のゲームプレーに関連したコメントのポスティング、または、ソーシャルネットワーク共有レベルに基づいたビデオゲームの部分の人気の1つまたはそれ以上のユーザ入力に関連づけられる。
記録されたゲームプレーに基づいた、クラウドゲームのマルチパートミニゲームの生成
一実施形態において、ビデオゲームのプレー可能な限定版を生成する方法であって、以下の方法動作、すなわち、ビデオゲームの完全版のユーザのゲームプレーを記録する方法動作と、ユーザの記録されたゲームプレーの複数のユーザ定義の部分を判断する方法動作と、各々のユーザ定義の部分について、ビデオゲームのゲームプレーコンテキスト内の境界をユーザ定義の部分に基づいて画定して、ビデオゲームのプレー可能な部分を画定された境界に基づいて生成する方法動作と、ビデオゲームの限定版を画定するためにビデオゲームのプレー可能な部分の各々をシリーズで配置する方法動作とを含み、方法が、プロセッサにより実行される方法を提供する。
ユーザの記録されたゲームプレーの各々のユーザ定義の部分を判断する方法動作は、ユーザの記録されたゲームプレー内のユーザ定義の開始位置およびユーザ定義の終了位置を受信する方法動作と、ユーザ定義の部分を受信ユーザ定義の開始位置およびユーザ定義の終了位置に基づいて判断する方法動作とを含む。
一実施形態において、ユーザのゲームプレーを記録する方法動作は、ユーザ入力データまたはゲーム状態データの一方またはそれ以上を記録する方法動作を含む。一実施形態において、ビデオゲームのプレー可能な部分を生成する方法動作は、ゲーム状態データを分析してコード要素を識別する方法動作と、コード要素をアセンブルして、ビデオゲームのプレー可能な部分を画定する実行可能なコードを定義する方法動作とを含む。
一実施形態において、ビデオゲームのゲームプレーコンテキスト内の境界を画定する方法動作は、ビデオゲームの仮想空間内の空間境界を画定する方法動作を含む。一実施形態において、ビデオゲームの仮想空間内の空間境界は、仮想空間の全体を下回る仮想空間の部分を画定し、仮想空間の部分は、仮想空間の特徴のサブセットを有する。
一実施形態において、ビデオゲームのゲームプレーコンテキスト内の境界を画定する方法動作は、ビデオゲームの時間的コンテキスト内の時間的境界を画定する方法動作を含む。
一実施形態において、この方法は、各々のユーザ定義の部分について、ユーザの記録されたゲームプレーを分析してユーザゲーム状態設定を判断する方法動作をさらに含み、ビデオゲームのプレー可能な部分を生成する方法動作は、初期ゲーム状態設定を判断されたユーザゲーム状態設定に基づいて有するようにビデオゲームのプレー可能な部分を画定する方法動作を含む。
一実施形態において、境界を画定する方法動作は、段階、レベルまたはシーンの1つまたはそれ以上の最も近い開始位置または終了位置を識別する方法動作を含む。
一実施形態において、この方法は、ユーザ定義のビデオを記録する方法動作をさらに含み、ビデオゲームのプレー可能な部分を配置する方法動作は、ビデオゲームのプレー可能な部分の1つに先行または続くシリーズ内の場所にてユーザ定義のビデオを配置する方法動作を含む。一実施形態において、ユーザ定義のビデオは、ユーザの記録されたゲームプレーのユーザ定義の部分の少なくとも1つからのビデオを含む。
別の実施形態において、ビデオゲームのプレー可能な限定版を生成するプログラム命令が具現化された有形コンピュータ可読媒体であって、以下、すなわち、ビデオゲームの完全版のユーザのゲームプレーを記録するプログラム命令と、ユーザの記録されたゲームプレーの複数のユーザ定義の部分を判断するプログラム命令と、各々のユーザ定義の部分について、ビデオゲームのゲームプレーコンテキスト内の境界をユーザ定義の部分に基づいて画定して、ビデオゲームのプレー可能な部分を画定された境界に基づいて生成するプログラム命令と、ビデオゲームの限定版を画定するためにビデオゲームのプレー可能な部分の各々をシリーズで配置するプログラム命令とを含む有形コンピュータ可読媒体を提供する。
一実施形態において、ユーザの記録されたゲームプレーの各々のユーザ定義の部分を判断する方法動作は、ユーザの記録されたゲームプレー内のユーザ定義の開始位置およびユーザ定義の終了位置を受信する方法動作と、ユーザ定義の部分を受信ユーザ定義の開始位置およびユーザ定義の終了位置に基づいて判断する方法動作とを含む。
一実施形態において、ユーザのゲームプレーを記録する方法動作は、ユーザ入力データまたはゲーム状態データの一方またはそれ以上を記録する方法動作を含む。一実施形態において、ビデオゲームのプレー可能な部分を生成する方法動作は、ゲーム状態データを分析してコード要素を識別する方法動作と、コード要素をアセンブルして、ビデオゲームのプレー可能な部分を画定する実行可能なコードを定義する方法動作とを含む。
一実施形態において、コンピュータ可読媒体は、各々のユーザ定義の部分について、ユーザの記録されたゲームプレーを分析してユーザゲーム状態設定を判断するプログラム命令をさらに含み、ビデオゲームのプレー可能な部分を生成する方法動作は、初期ゲーム状態設定を判断されたユーザゲーム状態設定に基づいて有するようにビデオゲームのプレー可能な部分を画定する方法動作を含む。
別の実施形態において、以下、すなわち、ビデオゲームの完全版のユーザのゲームプレーを記録する論理回路を含む、ビデオゲームのプレー可能な限定版を生成する論理回路を有する少なくとも1つのサーバコンピューティングデバイスと、ユーザの記録されたゲームプレーの複数のユーザ定義の部分を判断する論理回路と、各々のユーザ定義の部分について、ビデオゲームのゲームプレーコンテキスト内の境界をユーザ定義の部分に基づいて画定して、ビデオゲームのプレー可能な部分を画定された境界に基づいて生成する論理回路と、ビデオゲームの限定版を画定するためにビデオゲームのプレー可能な部分の各々をシリーズで配置する論理回路とを含むシステムを提供する。
一実施形態において、ユーザの記録されたゲームプレーの各々のユーザ定義の部分を判断する方法動作は、ユーザの記録されたゲームプレー内のユーザ定義の開始位置およびユーザ定義の終了位置を受信する方法動作と、ユーザ定義の部分を受信ユーザ定義の開始位置およびユーザ定義の終了位置に基づいて判断する方法動作とを含む。
一実施形態において、ユーザのゲームプレーを記録する方法動作は、ユーザ入力データまたはゲーム状態データの一方またはそれ以上を記録する方法動作を含む。一実施形態において、ビデオゲームのプレー可能な部分を生成する方法動作は、ゲーム状態データを分析してコード要素を識別する方法動作と、コード要素をアセンブルして、ビデオゲームのプレー可能な部分を画定する実行可能なコードを定義する方法動作とを含む。
一実施形態において、上記の論理回路は、各々のユーザ定義の部分について、ユーザの記録されたゲームプレーを分析してユーザゲーム状態設定を判断する論理回路をさらに含み、ビデオゲームのプレー可能な部分を生成する方法動作は、初期ゲーム状態設定を判断されたユーザゲーム状態設定に基づいて有するようにビデオゲームのプレー可能な部分を画定する方法動作を含む。
ソーシャルグラフへの記録されたゲームプレーの分配
一実施形態において、記録されたゲームプレーをソーシャルグラフに分配する方法であって、以下の方法動作、すなわち、ユーザのゲームプレーのビデオをゲームプレーセッションのアクティブ状態中に記録する方法動作と、分配作業を開始するコマンドをゲームプレーセッションのアクティブ状態中に受信する方法動作と、コマンドを受信することに応答して、ゲームプレーセッションの休止状態に入って、分配インターフェースを提示する方法動作と、分配インターフェースを介して受信された入力を処理して、記録されたビデオのユーザ定義の選択を判断する方法動作と、記録されたビデオのユーザ定義の選択をユーザのソーシャルグラフに分配する方法動作と、ゲームプレーセッションのアクティブ状態を再開する方法動作とを含み、方法が、プロセッサにより実行される方法を提供する。
一実施形態において、ユーザのゲームプレーのビデオを記録する方法動作は、ビデオをバッファにゲームプレーセッションのアクティブ状態中に格納する方法動作を含む。
一実施形態において、共有インターフェースを提示する方法動作は、ビデオの1つまたはそれ以上の部分をバッファから検索および提示する方法動作を含む。
一実施形態において、共有インターフェースは、ユーザ定義の選択の持続時間を定義する持続時間セレクタを含む。
一実施形態において、選択を分配する方法動作は、ユーザのソーシャルグラフを定義するソーシャルネットワークサービス上での利用可能性に向けて選択をアップロードする方法動作を含む。
一実施形態において、選択をアップロードする方法動作は、選択を圧縮して圧縮された選択をアップロードする方法動作を含む。
一実施形態において、選択を分配する方法動作は、通知をユーザのソーシャルグラフのメンバに生成する方法動作を含む。
一実施形態において、通知は、プライベートメッセージ、チャットメッセージ、ゲーム内の通知、ソーシャルニュースフィードへの掲載、電子メールの1つまたはそれ以上により定義される。
一実施形態において、選択を分配する方法動作は、選択をユーザのプロファイルページ上で提示する方法動作を含む。
一実施形態において、分配作業を開始するコマンドを受信する方法動作は、コントローラデバイス上のボタン押しから定義される。
別の実施形態において、記録されたゲームプレーをソーシャルグラフに分配する方法であって、以下の方法動作、すなわち、ユーザのゲームプレーのビデオをゲームプレーセッションのアクティブ状態中に記録する方法動作と、分配作業を開始するコマンドをゲームプレーセッションのアクティブ状態中に受信する方法動作と、コマンドを受信することに応答して、記録されたビデオのユーザ定義の選択を判断する方法動作と、記録されたビデオのユーザ定義の選択をユーザのソーシャルグラフに分配する方法動作とを含み、方法が、プロセッサにより実行される方法を提供する。
一実施形態において、ユーザのゲームプレーのビデオを記録する方法動作は、ビデオをバッファにゲームプレーセッションのアクティブ状態中に格納する方法動作を含む。
一実施形態において、記録されたビデオのユーザ定義の選択を判断する方法動作は、ビデオをバッファから検索および提示する方法動作と、ビデオの部分を識別するユーザ入力を処理する方法動作とを含む。
一実施形態において、選択を分配する方法動作は、ユーザのソーシャルグラフを定義するソーシャルネットワークサービス上での利用可能性に向けて選択をアップロードする方法動作を含む。
一実施形態において、分配作業を開始するコマンドを受信する方法動作は、コントローラデバイス上のボタン押しから定義される。
別の実施形態において、記録されたゲームプレーをソーシャルグラフに分配するプログラム命令が定義された固定コンピュータ可読媒体を提供する。プログラム命令としては、ユーザのゲームプレーのビデオをゲームプレーセッションのアクティブ状態中に記録するプログラム命令、分配作業を開始するコマンドをゲームプレーセッションのアクティブ状態中に受信するプログラム命令、コマンドを受信することに応答して、記録されたビデオのユーザ定義の選択を判断するプログラム命令、記録されたビデオのユーザ定義の選択をユーザのソーシャルグラフに分配するプログラム命令がある。
一実施形態において、ユーザのゲームプレーのビデオを記録する方法動作は、ビデオをバッファにゲームプレーセッションのアクティブ状態中に格納する方法動作を含む。
記録されたビデオのユーザ定義の選択を判断する方法動作は、ビデオをバッファから検索および提示する方法動作と、ビデオの部分を識別するユーザ入力を処理する方法動作とを含む。
一実施形態において、選択を分配する方法動作は、ユーザのソーシャルグラフを定義するソーシャルネットワークサービス上での利用可能性に向けて選択をアップロードする方法動作を含む。
分配作業を開始するコマンドを受信する方法動作は、コントローラデバイス上のボタン押しから定義される。
ユーザによるゲームプレーの遠隔制御
一実施形態において、ユーザのゲームプレーの遠隔制御を行う方法であって、以下の方法動作、すなわち、第1のユーザのゲームプレーのライブビデオフィードを第2のリモートユーザに提示する方法動作と、第1のユーザのゲームプレーの制御を第2のユーザに遷移する要求を処理する方法動作と、第1のユーザのゲームプレーの制御を第2のユーザにより開始する方法動作とを含み、方法が、少なくとも1つのプロセッサにより実行される方法を提供する。
一実施形態において、第1のユーザのゲームプレーの制御を第2のユーザにより開始する方法動作は、第1のユーザのゲームプレーの制御を第1のユーザに関連した第1のコントローラデバイスにより非アクティブにする方法動作と、第1のユーザのゲームプレーの制御を第2のユーザに関連した第2のコントローラデバイスによりアクティブ化する方法動作とを含む。
一実施形態において、第2のユーザによる第1のユーザのゲームプレーの制御は、入力コマンドを第2のコントローラデバイスから受信し、入力コマンドを適用して、第1のユーザのゲームプレーを定義する方法動作を含む。
一実施形態において、ライブビデオフィードは、ソーシャルインターフェースを介して第2のユーザに提示され、ソーシャルインターフェースは、第2のユーザのソーシャルグラフへのアクセスを供給し、第1のユーザは、第2のユーザのソーシャルグラフのメンバと定義される。
一実施形態において、ソーシャルインターフェースは、コメントを第1のユーザのゲームプレー中に掲示するコメントインターフェースを含む。
一実施形態において、制御を遷移する要求を処理する方法動作は、第2のユーザによる第1のユーザのゲームプレーの制御が可能にする確認応答を第1のユーザから受信する方法動作を含む。
一実施形態において、第1のユーザのゲームプレーのライブビデオフィードを第2のユーザに提示する方法動作は、ライブビデオフィードを非フルスクリーンフォーマットで提示する方法動作を含み、第1のユーザのゲームプレーの制御を第2のユーザにより開始する方法動作は、フルスクリーンフォーマットのライブビデオフィードの提示をトリガする方法動作を含む。
別の実施形態において、マルチプレーヤゲームプレーを供給する方法であって、以下の方法動作、すなわち、第1のユーザのゲームプレーのライブビデオフィードを第2のリモートユーザに提示する方法動作と、第2のユーザが第1のユーザのゲームプレーセッションに仲間入りする要求を処理する方法動作と、ゲームプレーを第2のユーザにより第1のユーザのゲームプレーセッションにおいて開始する方法動作とを含み、方法が、少なくとも1つのプロセッサにより実行される方法を提供する。
一実施形態において、ゲームプレーを第2のユーザにより第1のユーザのゲームプレーセッションにおいて開始する方法動作は、ビデオゲームのマルチプレーヤモードを開始する方法動作を含む。
一実施形態において、ライブビデオフィードは、ソーシャルインターフェースを介して第2のユーザに提示され、ソーシャルインターフェースは、第2のユーザのソーシャルグラフへのアクセスを供給し、第1のユーザは、第2のユーザのソーシャルグラフのメンバと定義される。
一実施形態において、ソーシャルインターフェースは、コメントを第1のユーザのゲームプレー中に掲示するコメントインターフェースを含む。
一実施形態において、第1のユーザのゲームプレーセッションに仲間入りする要求を処理する方法動作は、第2のユーザによるゲームプレーの制御を第1のユーザのゲームプレーセッションにおいて可能にする確認応答を第1のユーザから受信する方法動作を含む。
一実施形態において、第1のユーザのゲームプレーのライブビデオフィードを第2のユーザに提示する方法動作は、ライブビデオフィードを非フルスクリーンフォーマットで提示する方法動作を含み、ゲームプレーを第2のユーザにより第1のユーザのゲームプレーセッションにおいて開始する方法動作は、フルスクリーンフォーマットのライブビデオフィードの提示をトリガする方法動作を含む。
別の実施形態において、第1のユーザのゲームプレーのライブビデオフィードを第2のリモートユーザに提示するプログラム命令と、第1のユーザのゲームプレーの制御を第2のユーザに遷移する要求を処理するプログラム命令と、第1のユーザのゲームプレーの制御を第2のユーザにより開始するプログラム命令とを含む、ユーザのゲームプレーの遠隔制御を行うプログラム命令が具現化された固定コンピュータ可読媒体を提供する。
一実施形態において、第1のユーザのゲームプレーの制御を第2のユーザにより開始する方法動作は、第1のユーザのゲームプレーの制御を第1のユーザに関連した第1のコントローラデバイスにより非アクティブにする方法動作と、第1のユーザのゲームプレーの制御を第2のユーザに関連した第2のコントローラデバイスによりアクティブ化する方法動作とを含む。
一実施形態において、第2のユーザによる第1のユーザのゲームプレーの制御は、入力コマンドを第2のコントローラデバイスから受信し、入力コマンドを適用して、第1のユーザのゲームプレーを定義する方法動作を含む。
一実施形態において、ライブビデオフィードは、ソーシャルインターフェースを介して第2のユーザに提示され、ソーシャルインターフェースは、第2のユーザのソーシャルグラフへのアクセスを供給し、第1のユーザは、第2のユーザのソーシャルグラフのメンバと定義される。
一実施形態において、ソーシャルインターフェースは、コメントを第1のユーザのゲームプレー中に掲示するコメントインターフェースを含む。
一実施形態において、制御を遷移する要求を処理する方法動作は、第2のユーザによる第1のユーザのゲームプレーの制御を可能にする確認応答を第1のユーザから受信する方法動作を含む。
一実施形態において、第1のユーザのゲームプレーのライブビデオフィードを第2のユーザに提示する方法動作は、ライブビデオフィードを非フルスクリーンフォーマットで提示する方法動作を含み、第1のユーザのゲームプレーの制御を第2のユーザにより開始する方法動作は、フルスクリーンフォーマットのライブビデオフィードの提示をトリガする方法動作を含む。
図20は、本発明の一実施形態による、ビデオゲームで対話性をもたらすために使用することができるハードウェアおよびユーザインターフェースを示す。図20は、Sony(登録商標) Playstation 3(登録商標)エンターテイメントデバイスのシステム全体アーキテクチャ、本発明の実施形態による、ベースコンピューティングデバイスにて実行されるコンピュータプログラムとコントロールデバイスをインターフェースするのに適合するとすることができるコンソールを概略的に示す。システムユニット2000が供給され、様々な周辺デバイスが、システムユニット2000に接続可能である。システムユニット2000は、セルプロセッサ2028、Rambus(登録商標)動的ランダムアクセスメモリ(XDRAM)ユニット2026、専用ビデオランダムアクセスメモリ(VRAM)ユニット2032を有するReality Synthesizerグラフィクスユニット2030、および、I/Oブリッジ2034を含む。システムユニット2000は、I/Oブリッジ2034を介してアクセス可能な、ディスク2040aからの読み取り用のBlu Ray(登録商標)ディスクBD―ROM(登録商標)光ディスク読み取り装置2040、脱着自在のスロットインハードディスクドライブ(HDD)2036も含む。随意的に、システムユニット2000は、同様にI/Oブリッジ2034を介してアクセス可能であるコンパクトフラッシュ(登録商標)メモリカード、Memory Stick(登録商標)メモリカードなどを読み取るメモリカード読み取り装置2038も含む。
I/Oブリッジ2034は、6本のユニバーサルシリアルバス(USB)2.0ポート2024、ギガビットイーサネット(登録商標)ポート2022、IEEE802.11b/g無線ネットワーク(Wi―Fi)ポート2020、および、最大7つまでのBluetooth(登録商標)接続部をサポートすることができるBluetooth(登録商標)無線リンクポート2018に接続される。
作動時には、I/Oブリッジ2034は、1つまたはそれ以上のゲームコントローラ2002〜2003からのデータを含む、全ての無線データ、USBデータ、およびイーサネット(登録商標)データを取り扱う。例えば、ユーザがゲームをプレーしているとき、I/Oブリッジ2034は、データをゲームコントローラ2002〜2003からBluetooth(登録商標)リンクを介して受信して、ゲームの現状を相応に更新するセルプロセッサ2028に導く。
無線USBおよびイーサネット(登録商標)ポートも、ゲームコントローラ2002〜2003に加えて、リモートコントロール2004、キーボード2006、マウス2008、Sony Playstation Portable(登録商標)エンターテイメントデバイスなどのポータブルエンターテイメントデバイス2010、EyeToy(登録商標)ビデオカメラなどのビデオカメラ2012、マイクヘッドホン2014、および、マイク2015など他の周辺デバイスに向けて接続性をもたらす。したがって、このような周辺デバイスは、原則的に無線でシステムユニット2000に接続することができ、例えば、ポータブルのエンターテイメントデバイス2010は、Wi−Fiアドホック接続を介して通信することができ、一方、マイクヘッドホン2014は、Bluetooth(登録商標)リンクを介して通信することができる。
これらのインターフェースの設置は、Playstation 3デバイスは、デジタルビデオテープレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、ボイスオーバーIP電話、移動体電話、プリンタおよびスキャナなどの他の周辺デバイスとも潜在的に適合することを意味する。
さらに、旧来のメモリカード読み取り装置2016は、USBポート2024を介してシステムユニットに接続することができ、これにより、Playstation(登録商標)またはPlaystation 2(登録商標)デバイスにより使用される種類のメモリカード2048の読み取りが可能である。
ゲームコントローラ2002〜2003は、Bluetooth(登録商標)リンクを介してシステムユニット2000とワイヤレスで通信するように、または、USBポートに接続されるように動作可能であり、その結果、ゲームコントローラ2002〜2003のバッテリを充電させる電力も供給される。ゲームコントローラ2002〜2003は、メモリ、プロセッサ、メモリカード読み取り装置、フラッシュメモリなどの常設メモリ、照明された球状セクション、LEDまたは赤外光などの発光体、超音波通信用マイクおよびスピーカ、アコースティックチャンバ、デジタルカメラ、内部クロック、ゲームコンソールに対向する球状セクションなどの認識可能な形状、および、Bluetooth(登録商標)、WiFi(登録商標)などのプロトコルを使用する無線通信を含むこともできる。
ゲームコントローラ2002は、2本の手で使用されるように設計されたコントローラであり、ゲームコントローラ2003は、取り付け具を有する片手用コントローラである。1つまたはそれ以上のアナログジョイスティックおよび従来の制御ボタンに加えて、ゲームコントローラは、3次元の場所判断の影響を受けやすい。その結果として、ゲームコントローラのユーザによるジェスチャーおよび動きは、従来のボタンまたはジョイスティックコマンドに加えてまたはその代わりにゲームへの入力として解釈される場合がある。随意的に、Playstation(登録商標)ポータブルデバイスなどの他の無線でイネーブルされる周辺デバイスをコントローラとして使用することができる。Playstation(登録商標)の場合、ポータブルデバイス、更なるゲームまたは制御の情報(例えば、制御命令またはライフの数)をデバイスの画面上で供給することができる。ダンスマット(図示せず)、ライトガン(図示せず)、ハンドル、および、ペダル(図示せず)、または、迅速に対応するクイズゲーム用の単一またはいくつかの大きいボタン(やはり図示せず)など注文専門のコントローラなど、他の代替または補助制御デバイスを使用することもできる。
リモートコントロール2004は、Bluetooth(登録商標)リンクを介してシステムユニット2000とワイヤレスで通信するようにも動作可能である。リモートコントロール704は、Blu Ray(商標)ディスクBD−ROM読み取り装置2040の動作、および、ディスクコンテンツのナビゲーションに適した制御を含む。
Blu Ray(商標)ディスクBD−ROM読み取り装置2040は、従来の予め録画された、かつ、記録可能なCDおよびいわゆるスーパーオーディオCDに加えて、PlaystationおよびPlaystation 2のデバイスと適合するCD−ROMを読み取るように動作可能である。読み取り装置2040は、従来の予め録画されたかつ記録可能なDVDに加えて、Playstation 2およびPlaystation 3デバイスと適合するDVD−ROMを読み取るようにも動作可能である。読み取り装置2040は、さらに、Playstation 3デバイス、ならびに、従来の予め録画された、かつ、記録可能なBlu−Rayディスクと適合するBD−ROMを読み取るように動作可能である。
システムユニット2000は、Reality Synthesizerグラフィクスユニット2030を介してPlaystation 3デバイスにより生成または復号されたオーディオおよびビデオを、ディスプレイ2044および1つまたはそれ以上のスピーカ2046を有するモニタまたはテレビ受像機などのディスプレイおよびサウンド出力装置2042にオーディオおよびビデオコネクタを介して供給するように動作可能である。音声コネクタ2050は、従来のアナログおよびデジタル出力を含むことができ、一方、ビデオコネクタ2052は、コンポーネントビデオ、S−ビデオ、複合ビデオおよび1つまたはそれ以上の高精細度マルチメディアインターフェース(HDMI(登録商標))出力をさまざまに含むことができる。その結果として、ビデオ出力は、PALまたはNTSCなどのフォーマット、または、720p、1080iまたは1080pの高解像度とすることができる。
オーディオ処理(生成、復号およびその他)は、セルプロセッサ2028により行われる。Playstation 3デバイスのオペレーティングシステムは、Dolby(登録商標)5.1サラウンドサウンド、Dolby(登録商標)シアタサラウンド(DTS)およびBlu−Ray(登録商標)ディスクからの7.1のサラウンドサウンドの復号をサポートする。
この実施形態において、ビデオカメラ2012は、圧縮された映像データを層内画像ベースのMPEG(動画専門家集団)規格などの妥当なフォーマットでシステムユニット2000による復号に向けて送信することができるように、単一の電荷結合素子(CCD)、LEDインジケータおよびハードウェアベースのリアルタイムのデータ圧縮および符号化装置を含む。カメラLEDインジケータは、例えば、システムユニット2000からの妥当な制御データに応答して照明して不向きな照明状態を表すように配置されている。ビデオカメラ2012の実施形態は、USB、Bluetooth(登録商標)またはWi−Fi通信ポートを介してシステムユニット700にさまざまに接続することができる。ビデオカメラの実施形態は1つまたはそれ以上の関連のマイクを含むことができ、そのうえ、オーディオデータを送信することができる。ビデオカメラの実施形態において、CCDは、高解像度ビデオ捕捉に向けて適切な解像度を有することができる。使用時には、ビデオカメラにより捕捉された画像は、例えばゲーム内に組み込むか、または、ゲーム制御入力と解釈することができる。別の実施形態において、カメラは、赤外線の光の検出に適した赤外線カメラである。
一般に、データ通信がシステムユニット2000の通信ポートの1つを介してビデオカメラなどの周辺デバイスまたはリモートコントロールで失敗せずに行われるように、デバイスドライバなどのソフトウェアの妥当なピースが供給されるべきである。デバイスドライバ技術は、よく知られているのでここでは詳細に説明しないが、例外的に言い添えると、当業者は、デバイスドライバまたは類似のソフトウェアインターフェースが説明するこの実施形態において必要である場合があることを理解するであろう。
図21は、本発明の一実施形態による、命令を処理するために使用することができる更なるハードウェアを示す。セルプロセッサ2028は、4つの基本コンポーネント、すなわち、メモリコントローラ2160および二重バスインターフェースコントローラ2170A、B)を含む外部入出力構造体、パワープロセシングエレメント2150という主プロセッサ、シナジスティックプロセシングエレメント(SPE)2110A〜Hという8台のコプロセッサ、および、エレメントインタコネクトバス2180という上記のコンポーネントを接続する円形データバスを含むアーキテクチャを有する。セルプロセッサの総浮動小数点性能は、Playstation 2のデバイスのエモーションエンジンの6.2GFLOPsと比較して218GFLOPSである。
パワープロセシングエレメント(PPE)2150は、3.2GHzの内部クロックと共に実行されている両方向同時スレッド化パワー570準拠のPowerPCコア(PPU)855に基づく。512kBのレベル2(L2)キャッシュおよび32kBのレベル1(L1)キャッシュを含む。PPE 2150は3.2GHzにて25.6GFLOPsに変換されるクロックサイクル当たり8つの単一の位置作業が可能である。PPE 2150の主役割は、コンピュータの作業負荷の大部分を処理するシナジスティックプロセシングエレメント2110A〜Hのコントローラの役目を果たすことである。作動時には、PPE 2150は、ジョブ待ち行列を維持し、シナジスティックプロセシングエレメント2110A〜Hのジョブを予定して、それらの進捗をモニタする。その結果として、各シナジスティックプロセシングエレメント2110A〜Hは、役割がジョブをフェッチし、実行して、PPE 2150と同期することであるカーネルを実行する。
各シナジスティックプロセシングエレメント(SPE)2110A〜Hは、それぞれのシナジスティックプロセシングユニット(SPU)2120A〜Hを含み、それぞれのメモリフローコントローラ(MFC)2140A〜Hは、それぞれのダイナミックメモリアクセスコントローラ(DMAC)2142A〜H、それぞれのメモリマネジメントユニット(MMU)2144A〜Hおよびバスインターフェース(図示せず)を含む。各SPU 2120A〜Hは、3.2GHzにてクロックされ、かつ、原則的に4GBまで拡張可能である256kBローカルRAM 2130A〜Hを含むRISCプロセッサである。各SPEは、単精度性能の理論的な25.6GFLOPSを与える。SPUは、単一クロックサイクルにおいて、4個の単精度浮動小数点メンバ、4個の32ビット番号、8個の16ビット整数、または、16個の8ビット整数で動作することができる。同じクロックサイクルにおいて、メモリ動作を実行することもできる。SPU 2120A〜Hは、システムメモリXDRAM2026に直にアクセスせず、SPU 2120A〜Hにより形成された64ビットアドレスは、DMAコントローラ2142A〜Hにエレメントインタコネクトバス2180およびメモリコントローラ2160を介してメモリにアクセスするように指示するMFC 2140A〜Hに渡される。
エレメントインタコネクトバス(EIB)2180は、合計12個の参加要素である上記のプロセッサ要素、すなわち、PPE 2150、メモリコントローラ2160、二重バスインターフェース2170A,Bおよび8台のSPE 2110A〜Hを接続するセルプロセッサ2028の内部にある論理的に円形の通信バスである。参加要素は、同時に1クロックサイクルにつき8バイトの速度にてバスに読み書きすることができる。前述のように、各SPE 2110A〜Hは、より長い読み込みまたは書込みシーケンスを予定するDMAC 2142A〜Hを含む。EIBは、4つのチャンネル、すなわち、時計回りおよび逆時計回りの方向に各2つを含む。その結果として12個の参加要素について、任意の2つの参加要素間で最長の段階的なデータフローは、妥当な方向に6つのステップである。したがって、12個のスロットの理論ピーク瞬時EIB帯域幅は、参加要素間の調停を介した完全な利用の場合にはクロック当たり96Bである。これは、3.2GHzのクロック速度にて、307.2GB/s(ギガバイト/秒)のピーク帯域幅を等しい。
メモリコントローラ2160は、Rambus Incorporatedにより開発されたXDRAMインターフェース2162を含む。メモリコントローラは、25.6GB/sの理論ピーク帯域幅を有するRambus XDRAM 2026とインターフェースする。
二重バスインターフェース2170A、Bは、Rambus FlexIO(登録商標)システムインターフェース2172A、Bを含む。インターフェースは、各々8ビット幅である12個のチャンネルに編成され、5本のパスは、インバウンドであり、7本がアウトバウンドである。これにより、セルプロセッサとコントローラ2170Aを介したI/Oブリッジ2034と、コントローラ2170Bを介したReality Simulatorグラフィクスユニット2130間に62.4GB/s(36.4GB/sアウトバウンド、26GB/sインバウンド)の理論ピーク帯域幅が得られる。
Reality Simulatorグラフィクスユニット2130にセルプロセッサ2128により送られたデータは、通常は、頂点を描く、表面模様を多角形に適用する、照明状態を指定するなどの一連のコマンドである表示リストを含むことになる。
図22は、本発明の一実施形態による、それぞれのユーザA〜ユーザEがインターネットを介してサーバ処理に接続されているゲームクライアント2202と対話するシーンA〜シーンEの例示的な図である。ゲームクライアントは、ユーザがインターネットを介してサーバアプリケーションおよび処理に接続することを可能にするデバイスである。ゲームクライアントは、ユーザが、ゲーム、動画、音楽および写真などであるがこれらに限定されないオンライン娯楽コンテンツにアクセスして再生することを可能にする。さらに、ゲームクライアントは、VOIP、テキストチャットプロトコルおよび電子メールなどのオンライン通信アプリケーションへのアクセスを提供することができる。
ユーザは、コントローラを介してゲームクライアントと対話する。いくつかの実施形態において、コントローラは、ゲームクライアント専用のコントローラであり、一方、他の実施形態において、コントローラは、キーボードおよびマウスの組合せとすることができる。一実施形態において、ゲームクライアントは、モニタ/テレビおよび関連のオーディオ設備を介してマルチメディアの環境を作り出すためにオーディオおよびビデオ信号を出力することができる独立型デバイスである。例えば、ゲームクライアントは、シンクライアント、内部PCI−expressカード、外部PCI−expressデバイス、ExpressCardデバイス、内部、外部、または無線USBデバイスまたはFirewire(登録商標)デバイスなどとすることができるがこれらに限定されない。他の実施形態において、ゲームクライアントは、DVR、Blu−Rayプレーヤ、DVDプレーヤまたはマルチチャンネル受信器などのテレビまたは他のマルチメディア装置と一体化されている。
図22のシーンA内で、ユーザAは、ゲームクライアント2202Aと対号されたコントローラ2206Aを使用してモニタ2204A上に表示されたクライアントアプリケーションと対話する。同様に、シーンB内で、ユーザBは、ゲームクライアント2202Bと対号されたコントローラ2206Bを使用してモニタ2204B上に表示された別のクライアントアプリケーションと対話する。シーンCは、クライアント2202Cからのゲームおよびゲームおよびバディリストを示すモニタを見たときのユーザCの後ろからのビューを示す。図22は1つのサーバ処理モジュールを示すが、一実施形態において、複数のサーバ処理モジュールが世界中にある。各サーバ処理モジュールは、ユーザセッション制御、共有/コミュニケーション論理回路、ユーザ地理的場所および負荷平衡処理サービスのためのサブモジュールを含む。さらに、サーバ処理モジュールは、ネットワーク処理および分散型ストレージを含む。
ゲームクライアント2202がサーバに処理モジュールを接続するとき、ユーザセッション制御を使用してユーザを認証することができる。認証されたユーザは、関連の仮想化された分散型ストレージおよび仮想化されたネットワーク処理を有することができる。ユーザの仮想化された分散型ストレージの一部として格納することができる例示的な項目としては、ゲーム、ビデオおよび音楽などなどであるがこれらに限定されない購入されたメディアがある。さらに、分散型ストレージを使用して、複数のゲームに向けたゲーム状態、個々のゲームに向けたカスタマイズされた環境およびゲームクライアントに向けた一般環境を保存することができる。一実施形態において、サーバ処理のユーザ地理的場所モジュールは、ユーザおよびそれぞれのゲームクライアントの地理的場所を判断するために使用される。共有/コミュニケーション論理回路および負荷平衡処理サービスがユーザの地理的場所を使用して、地理的場所および複数のサーバ処理モジュールに対する処理要求に基づいてパフォーマンスを最適化することができる。一方または両方ネットワーク処理およびネットワークストレージを仮想化すれば、ゲームクライアントからの処理タスクを十分に活用されていないサーバ処理モジュールに動的に移すことができる。したがって、負荷平衡を使用して、ストレージからのリコールおよびサーバ処理モジュールとゲームクライアントと間のデータ送信に関連したレイテンシを最小限に抑えることができる。
サーバ処理モジュールは、サーバアプリケーションAおよびサーバアプリケーションBのインスタンスを有する。サーバ処理モジュールは、サーバアプリケーションX1およびサーバアプリケーションX2により示されているように複数のサーバアプリケーションをサポートすることができる。一実施形態において、サーバ処理は、クラスタ内の複数のプロセッサがサーバアプリケーションを処理することを可能にするクラスタ計算アーキテクチャに基づく。別の実施形態において、異なる形式のマルチコンピュータ処理方式が、サーバアプリケーションを処理するために適用される。これにより、複数のクライアントアプリケーションおよび対応するサーバアプリケーションを実行するより多数のゲームクライアントに対応するためにサーバ処理を拡大縮小することができる。あるいは、サーバ処理は、より大変な図形処理またはゲーム、ビデオ圧縮、またはアプリケーション複雑性により必要とされる計算要求の増大に対応するために拡大縮小することができる。一実施形態において、サーバ処理モジュールは、サーバアプリケーションを介して大部分の処理を実行する。これにより、グラフィックプロセッサ、RAMおよび一般プロセッサなどの相対的に高価なコンポーネントを中央に場所を位置させることができ、ゲームクライアントの費用が低減される。処理されたサーバアプリケーションデータは、モニタ上で表示されるようにインターネットを介して対応するゲームクライアントに送り返される。
シーンCは、ゲームクライアントおよびサーバ処理モジュールにより実行することができる例示的なアプリケーションを示す。例えば、一実施形態において、ゲームクライアント2202Cは、ユーザCが、ユーザA、ユーザB、ユーザDおよびユーザEを含むバディリスト2220を作成および表示することを可能にする。図示するように、シーンCにおいて、ユーザCは、それぞれのユーザのリアルタイムの画像またはアバターをモニタ2204C上で見ることができる。サーバ処理は、ゲームクライアント2202Cのそれぞれのアプリケーションを、かつ、ユーザA、ユーザB、ユーザDおよびユーザEのそれぞれのゲームクライアント2202と共に実行する。サーバ処理がゲームクライアントBにより実行されているアプリケーションを認識しているので、ユーザAのバディリストは、ユーザBがどのゲームを再生しているかを示すことができる。さらに尚も、一実施形態において、ユーザAは、ユーザBから直にゲームビデオにおいて実際を表示することができる。これは、単に、ユーザBの処理されたサーバアプリケーションデータを、ゲームクライアントBに加えてゲームクライアントAに送ることによりイネーブルされる。
仲間からのビデオを表示することができることに加えて、コミュニケーションアプリケーションは、仲間間のリアルタイムの通信が可能にすることができる。先の実施例に適用されたように、これにより、ユーザAは、ユーザBのリアルタイムのビデオを観ながら励ましまたはヒントを供給することができる。一実施形態において、双方向リアルタイム音声通信が、クライアント/サーバアプリケーションを介して確立される。別の実施形態において、クライアント/サーバアプリケーションは、テキストチャットをイネーブルする。さらに別の実施形態において、クライアント/サーバアプリケーションは、仲間の画面上での表示に向けて音声をテキストにコンバートする。
シーンDおよびシーンEは、それぞれゲームコンソール2210Dおよび2210Eと対話しているそれぞれのユーザDおよびユーザEを示す。各ゲームコンソール2210Dおよび2210Eは、サーバ処理モジュールに接続されてりおり、かつ、サーバ処理モジュールがゲームコンソールおよびゲームクライアントに向けてゲーム再生を調整するネットワークを示す。
図23は、インターネットサービスプロバイダアーキテクチャの実施形態を示す。情報サービスプロバイダ(ISP)2370は、多くの情報サービスを地理的に分散および接続されたユーザ2382にネットワーク2386を介して配信する。ISPは、株価最新情報、または、電波媒体、ニュース、スポーツ、ゲームなどなどの様々なサービスなど1つの形式のサービスのみを配信することができる。さらに、各ISPにより提供されるサービスは動的である、すなわち、サービスは、任意の時点にて追加または削除することができる。したがって、特定の形式のサービスを特定の個人に供給するISPは、経時的に変わる可能性がある。例えば、ユーザには、本人が故郷に居ながらにしてユーザに近い場所にてISPにより対応することができ、かつ、ユーザには、異なる街に移動したときには異なるISPにより対応することができる。故郷のISPは、必要情報およびデータを新しいISPに転送することになり、ユーザ情報が新しい街までユーザに「付いて行き」、データがユーザに身近となり、かつ、アクセスしやすくなる。別の実施形態において、マスタとサーバの関係を、ユーザについて情報を管理するマスタISPとマスタISPの制御下にあるユーザと直接にインターフェースするサーバISPとの間で確立することができる。他の実施形態において、データは、ユーザに対応するのにより良好な場所のISPをこれらのサービスを配信するISPにするためにクライアントが世界中を移動するときに1つのISPから別のISPに転送される。
ISP 2370は、コンピュータによるサービスをネットワークで顧客に供給するアプリケーションサービスプロバイダ(ASP)2372を含む。ASPモデルを用いて提供されるソフトウェアは、時にはオンデマンドのソフトウェアまたはサービスとしてのソフトウェア(SaaS)とも呼ばれる。特定用途プログラムへのアクセスを提供する単純な形(顧客関係管理などの)は、HTTPなどの標準プロトコルを使用することによるものである。アプリケーションソフトウェアは、売主のシステム上に常駐し、かつ、売主またはシンクライアントなどの他のリモートインターフェースにより供給された専用クライアントソフトウェアにより、HTMLを使用してウェブブラウザを介してユーザによりアクセスされる。
広い地理学上の領域にわたって配信されるサービスではクラウドコンピューティングが使用されることが多い。クラウドコンピューティングは、動的に拡張性のあり、かつ、頻繁に仮想化されるリソースがインターネットでサービスとして供給されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」内の技術インフラストラクチャの専門家である必要がない。クラウドコンピューティングは、サービス(IaaS)、サービス(PaaS)としてのプラットフォームおよびサービスとしてのソフトウェア(SaaS)としてのインフラストラクチャなど、異なるサービスで分割することができる。クラウドコンピューティングサービスは、ウェブブラウザからアクセスされる共通のビジネスアプリケーションをオンラインで供給することが多く、一方、ソフトウェアおよびデータは、サーバ上に記憶されている。クラウドという用語は、インターネットがどのようにコンピュータネットワークの図中に示されるかに基づく、インターネットの暗喩であり、かつ、インターネットが隠す複雑なインフラストラクチャのための抽象概念である。
さらに、ISP 2370は、ゲームクライアントによりシングルおよびマルチプレーヤビデオゲームを再生するのに使用されるゲーム処理サーバ(GPS)2374を含む。インターネットで再生される大部分のビデオゲームは、ゲームサーバに接続を介して動作する。通常は、ゲームでは、プレーヤからデータを収集して他のプレーヤに配信する専用サーバアプリケーションを使用する。これは、ピアツーピア配置より効率的かつ有効であるが、別個のサーバがサーバアプリケーションを採用する必要がある。別の実施形態において、GPSは、プレーヤ間の通信を確立し、それぞれのゲームプレデバイスは、集中型GPSに依存することなく情報を交換する。
専用GPSは、クライアントから独立して実行するサーバである。このようなサーバは、通常、データセンタ内に位置する専用ハードウェア上で実行されており、より多くの帯域幅および専用の処理電力が得られる。専用サーバは、大部分のPCを基本とするマルチプレーヤゲームに向けてゲームサーバを採用する好適な方法である。大規模に、マルチプレーヤオンラインゲームは、通常、ゲームのタイトルを所有するソフトウェア会社により採用される専用サーバで稼動しており、専用サーバは、コンテンツを制御および更新することができる。
ブロードキャスト処理サーバ(BPS)2376は、オーディオまたはビデオ信号を視聴者に配信する。非常に狭い範囲の視聴者へのブロードキャスティングは、時にはナローキャスティングと呼ばれる。ブロードキャスト配信の最終工程は、信号がとのようにして聴取者または視聴者に届くかであり、ラジオ局またはテレビ放送局の場合と同様に、無線でアンテナおよび受信器に来る場合があるか、または、ステーションを介して、または、直にネットワークから有線テレビまたは有線ラジオ(あるいは、「ワイヤレスケーブル」)を介して来る場合がある。インターネットも、特に信号および帯域幅が共有することを可能にするマルチキャスティングで無線またはTVを受信側にもたらすことができる。従来、ブロードキャストは、国レベルの放送または地域レベルの放送など地理的領域により区切られてきた。しかしながら、速いインターネットの普及で、ブロードキャストは、コンテンツが世界のほとんどどの国にも到達することができるので地理により定義されない。
ストレージサービスプロバイダ(SSP)2378は、コンピュータ記憶空間および関連した管理サービスを供給する。SSPは、定期的なバックアップおよびアーカイブ処理も提供する。サービスとして記憶領域を提供することにより、ユーザは必要に応じてより多くの記憶領域を順序づけることができる。別の主要な長所は、SSPはバックアップサービスを含み、ユーザーは、自分たちのコンピュータのハードドライブが故障したとしてもユーザは全ての自分のデータを失うことにはならないという点である。さらに、複数のSSPはユーザデータの全体的または部分的コピーを有することができ、これにより、ユーザは、効率的に、かつ、自分の居場所またはデータにアクセスするために使用しているデバイスから独立してデータにアクセスすることができる。例えば、ユーザは、自宅のコンピュータで、ならびに、移動中である間に携帯電話で動きに個人ファイルにアクセスすることができる。
通信プロバイダ380は、ユーザに接続性をもたらす。1種類の通信プロバイダは、インターネットへのアクセスを提供するインターネットサービスプロバイダ(ISP)である。ISPは、ダイヤルアップ、DSL、ケーブルモデム、無線または専用高速インタコネクトなど、インターネットプロトコルデータグラムを配信するのに妥当なデータ伝送技術を使用して顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージングおよびSMSテクスティングなど、メッセージ送信サービスを供給することもできる。別の形式の通信プロバイダは、インターネットに直接のバックボーンアクセスを供給することにより帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ(NSP)である。ネットワークサービスプロバイダは、高速インターネットアクセスなどを提供する電気通信会社、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、ケーブルテレビ事業者から成る場合がある。
データ交換2388は、ISP 2370の内側のいくつかのモジュールを相互接続して、ネットワーク2386を介してこれらのモジュールをユーザ2382に接続する。データ交換2388は、ISP 2370の全てのモジュールが近在する小さい領域を対象とする可能性があるか、または、異なるモジュールが地理的に分散されている広い地理的領域を対象とする可能性がある。例えば、データ交換2388は、データセンタの仕切内の高速ギガビットイーサネット(登録商標)(またはより高速)または大陸間の仮想地域網(VLAN)を含むことができる。
ユーザ2382は、少なくともCPU、ディスプレイおよびI/Oを含むクライアントデバイス2384でリモートサービスにアクセスする。クライアントデバイスは、PC、携帯電話、ネットブック、PDAなどとすることができる。一実施形態において、ISP 2370は、クライアントにより使用されるデバイスの形式を認識して、採用された通信方法を調節する。他の場合において、クライアント装置は、アクセスISP 2370への、htmlなど標準通信方法を使用する。
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースかまたはプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成で実践することができる。本発明は、タスクが有線または無線ネットワークを介してリンクされる遠隔処理デバイスにより行われる分散型計算処理環境において実践することもできる。
先の実施形態を念頭に置いて、本発明は、コンピュータシステム内に格納されたデータを伴う様々なコンピュータで実行される演算を採用することができることを理解されたい。これらの演算とは、物理的数量の物理的操作を必要とするものである。本発明の一部を成す本明細書で説明する演算のいずれも、有用な機械演算である。本発明は、これらの操作を行う装置または装置に関するものである。装置は、特に所要の目的のために作製することができるか、または、装置は、コンピュータ内に格納されたコンピュータプログラムにより選択的に起動させられるかまたは構成される汎用コンピュータとすることができる。特に、様々な汎用機械を本明細書の教示に従って書かれたコンピュータプログラムと共に使用することができるか、または、必要な操作を行うようにより特化した装置を作製したほうが便利であろう。
本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして実施することもできる。コンピュータ可読媒体は、その後にコンピュータシステムにより読み込むことができるデータを記憶することができる任意のデータ記憶装置である。コンピュータ可読媒体の例としては、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み取り専用メモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープおよび他の光学および非光学データストレージデバイスがある。コンピュータ可読媒体は、コンピュータ可読コードが分散されて格納および実行されるようにネットワークを結合されたコンピュータシステムで配信されるコンピュータ可読有形媒体を含むことができる。
方法動作を特定の順番で説明してきたが、他のハウスキーピング作業を作業間で行うことができるか、または、オーバレイ作業の処理が所望の方法で行われる限り、若干異なる時間にて行われるか、または、処理に関連した様々な間隔にて処理作業の発生を可能にするシステムにおいて配信することができるように作業を調整することができることを理解されたい。
上述した本発明は明快な理解を目的としてある程度詳細に説明したが、特定の変更および改変を添付の特許請求の範囲の範囲内で実践することができることが明らかであろう。したがって、本実施形態は、例示的でありかつ制限的ではないとみなすべきであり、本発明は、本明細書に示す詳細に限定されず、添付の特許請求の範囲適用範囲および均等物内で改変することができる。