(57)【特許請求の範囲】
【請求項１】
クラウドゲームサーバのプロセッサによって実行される方法であって、
ユーザアカウント用のユーザインターフェースを提供し、前記ユーザインターフェースは、前記クラウドゲームサーバ上で利用可能なゲームにアクセスするために使用されるものであり、
前記ユーザインターフェース上に提示されるゲームの選択を検出し、前記ゲームはゲームプレイのために選択されるものであり、
ゲームプレイ中にユーザから前記ゲームに関するインタラクションを受信し、前記インタラクションは、前記ゲームの結果に影響を与えるために使用されるものであり、
前記ユーザによって提供される前記インタラクションを分析して、前記ユーザのゲームプレイ行動を特定し、
前記ユーザの前記ゲームプレイ行動に基づいて前記ユーザの行動メトリックを生成し、前記行動メトリックは、前記ゲームのそれぞれの部分における前記ユーザの前記ゲームプレイ行動に応じて、前記ゲームの異なる部分ごとに異なるものであり、
前記行動メトリックは、前記ユーザのゲームプレイモデルを生成するために用いられ、かつ、前記ゲームプレイモデルを使用して、前記ゲームの前記異なる部分ごとに、前記それぞれの部分において前記ユーザが前記ゲームを進行させることの妨げとなった前記ユーザの前記ゲームプレイ行動におけるずれを識別し、かつ、前記ゲームの前記異なる部分のそれぞれにおいてゲームを進行させるためのゲームプレイのヒントを特定し、前記ゲームプレイモデルは機械学習ロジックを使用して生成されるものであり、 
前記ユーザに対する前記ゲームプレイのヒントを前記ゲームのゲームインターフェースに提示される前記ゲームのゲームアイコンと関連付けて、前記ゲームの前記異なる部分においてゲームを進行させるための前記ゲームプレイのヒントにアクセスするための選択オプションをレンダリングさせる、方法。
【請求項２】
前記ゲームプレイモデルは、前記ゲームの前記異なる部分をプレイした複数の他のユーザの前記ゲームプレイ行動を用いて更新される、請求項１に記載の方法。
【請求項３】
前記ゲームプレイ行動のずれの判定では、さらに、
前記ゲームプレイモデルからの詳細を使用して、前記ユーザの前記インタラクションと、前記ゲームの前記それぞれの部分についての前記複数の他のユーザの一人以上のゲーム入力とを比較することで、前記ゲームプレイ行動のずれを識別し、
前記ずれは、そのずれの結果として、前記ユーザが前記ゲームの前記それぞれの部分における前記ゲームの進行を達成できなくなるものである、請求項２に記載の方法。
【請求項４】
前記ゲームプレイモデルは、前記ユーザによる前記ゲームの現在のゲームプレイによって更新され、かつ、前記ゲームのその後のゲームプレイ中に用いられ、
前記その後のゲームプレイは、停止動作又は新しいゲームセッションの開始後の現在のゲームの再開である、請求項１に記載の方法。
【請求項５】
分析及び生成の動作は、前記ユーザによるゲームプレイ中に実行される、請求項１に記載の方法。
【請求項６】
前記ゲームの前記選択の検出では、前記ユーザインターフェース上の前記ユーザに対するゲームプレイのヒントを更新し、前記ユーザの以前のゲームプレイのゲーム状態の画像クリップを前記ユーザインターフェースにレンダリングする、請求項１に記載の方法。
【請求項７】
前記ゲームプレイのヒントは、オーディオ形式、またはビデオ形式、またはテキスト形式、またはグラフィカルユーザインターフェース形式、またはそれらの２つ以上の組み合わせで提供される、請求項１に記載の方法。
【請求項８】
前記行動メトリックの生成では、さらに、
前記ゲームの以前のゲームプレイからの前記ユーザの前記ゲームプレイ行動を分析して前記ユーザの前記ゲームプレイにおける前記ずれを識別し、かつ、
前記ずれに基づいて、前記ユーザに対して、前記ゲームプレイモデルからの詳細を使用して、前記ゲームの前記部分についての前記ゲームプレイのヒントを提供し、前記ユーザへの前記ゲームプレイのヒントには、前記ゲームの前記部分の前記ゲームを進行させるためのゲーム入力が含まれるものである、請求項１に記載の方法。
【請求項９】
前記行動メトリックの生成では、さらに、
前記ゲームをプレイした複数の他のユーザのゲーム行動と、以前のゲームプレイからの前記ユーザの前記ゲーム行動と、とを使用して、前記ゲームの前記ゲームプレイモデルを更新し、前記ゲームプレイモデルは、前記ゲームの異なる部分についての前記ユーザの行動メトリックの計算を、前記ゲームプレイモデルで提供される詳細を使用して前記異なる部分についての前記ユーザの前記ゲーム行動のずれを判定することによって行う際に使用される、請求項１に記載の方法。
【請求項１０】
前記部分についての前記ゲーム行動のずれの判定では、さらに、
前記ゲームプレイモデルからの詳細を使用して、前記ゲームの前記部分について前記複数の他のユーザ及び前記ユーザによって提供されるインタラクションを分析して、前記ユーザの前記ゲーム行動のずれを識別し、前記複数の他のユーザのそれぞれの前記インタラクションは、その結果として、前記複数の他のユーザのそれぞれが前記ゲームの前記部分において前記ゲームを進行させるものであり、前記ユーザの前記インタラクションは、その結果として、前記ユーザが前記ゲームの前記部分において前記ゲームを進行することができなくなるものである、請求項９に記載の方法。
【請求項１１】
前記ゲームプレイのヒントの特定では、さらに、前記複数の他のユーザのうちの前記ゲームプレイモデルの生成に用いられた特定の他のユーザのゲームプレイを選択し、前記ゲームプレイのヒントにはゲーム入力が含まれ、前記ゲーム入力は、前記ゲームの一部の完了に成功した前記特定の他のユーザにより入力されたものであり、前記特定の他のユーザは、前記特定の他のユーザのユーザプロフィールの少なくとも一部を、前記ユーザのユーザプロフィールの対応する部分と照合することにより選択されるものであり、
前記特定の他のユーザによって前記ゲームの前記部分について提供される前記ゲーム入力を使用して、前記ゲームの前記部分についてのゲームプレイのヒントを提供し、提供される前記ゲームプレイのヒントは、前記ユーザのゲームプレイ行動に基づいて前記ユーザ向けにカスタマイズされ、前記ゲームプレイのヒントは、ビデオ形式、またはテキスト形式、またはオーディオ形式、または前記ビデオ形式、前記テキスト形式、及び前記オーディオ形式のうちのいずれか２つまたは全ての組み合わせで提供される、請求項９に記載の方法。
【請求項１２】
前記ゲームプレイのヒントのビデオ形式での提供では、前記ゲームの前記部分についてのビデオクリップを提供し、前記ビデオクリップは、前記特定の他のユーザの前記ゲームプレイのビデオ記録から抽出される、請求項１１に記載の方法。
【請求項１３】
前記行動メトリックの生成では、さらに、
前記ゲームをプレイした複数の他のユーザのゲーム行動と、以前のゲームプレイからの前記ユーザの前記ゲーム行動とを使用して、前記ゲームの前記ゲームプレイモデルを更新し、
前記ゲームの一部分について前記複数の他のユーザ及び前記ユーザによって提供されるインタラクションを分析して、前記ユーザの前記ゲーム行動のずれを識別し、前記分析は、前記ゲームプレイモデルからの詳細を使用して、前記ユーザの前記インタラクションを、前記ゲームの前記部分における前記ゲームの進行を達成した前記複数の他のユーザの前記インタラクションと比較することによって実行され、
前記複数の他のユーザのうちの特定の他のユーザのゲームプレイを選択し、前記特定の他のユーザは、前記特定の他のユーザのユーザプロフィールの少なくとも一部を、前記ユーザのユーザプロフィールの対応する部分と照合することにより選択され、
前記特定の他のユーザによって前記ゲームの前記部分について提供されるゲーム入力を使用して、前記ゲームの前記部分についてのゲームプレイのヒントを提供し、提供される前記ゲームプレイのヒントは、前記ユーザのゲーム行動に基づいて前記ユーザ向けにカスタマイズされる、請求項１に記載の方法。
【請求項１４】
ゲームプレイのために選択される前記ゲームは、複数のユーザによってプレイされるマルチプレイヤーゲームであり、前記ゲームプレイのヒントを関連付けることにより、前記複数のユーザのそれぞれについて生成される前記ゲームプレイのヒントがそれぞれのユーザの前記インターフェースにレンダリングされる、請求項１に記載の方法。
【請求項１５】
ゲームプレイのために選択される前記ゲームは、複数のユーザによってプレイされるマルチプレイヤーゲームであり、前記複数のユーザのうちの各ユーザ用の前記ユーザインターフェースには、前記ゲームの前記ゲームプレイを再開するオプションが含まれる、請求項１に記載の方法。
【請求項１６】
前記ゲームプレイのヒントは、前記ユーザによって定義される提示設定に従って提示され、
前記ユーザインターフェースは、ゲームプレイのために前記ゲームをカスタマイズするオプションをさらに含み、前記ゲームをカスタマイズする前記オプションには、前記ゲームの速度または前記ゲームのレベルまたは前記ゲームの難易度を調整するオプションが含まれる、請求項１に記載の方法。
【請求項１７】
プロセッサによって実行される方法であって、
クラウドゲームサーバ上でユーザアカウントで利用可能なゲームにアクセスするためのユーザインターフェースを提供し、
前記ユーザアカウントの前記ユーザインターフェースからの現在のゲームプレイのためのゲームの選択を検出し、
前記現在のゲームプレイ中に前記ゲームの異なる部分においてユーザによって提供されるインタラクションを識別し、
前記ユーザによる前記ゲームの以前のゲームプレイにおいて提供されたインタラクションを使用して、前記ゲームのモデルを生成し、前記モデルは機械学習ロジックを使用して生成されたものであり、
前記モデルを使用して前記以前のゲームプレイにおいて提供された前記インタラクションを分析して、前記ユーザのゲームプレイ行動を特定し、
前記モデルから識別された前記ゲームの異なる部分における前記ユーザのゲームプレイ行動に基づいて、前記ユーザの前記現在のゲームプレイについてのゲームプレイのヒントを特定し、前記ゲームプレイのヒントは、前記異なる部分における前記ユーザの前記ゲームプレイ行動におけるずれに基づき、前記モデルは、現在のゲームプレイ中に検出される前記ユーザの前記インタラクションにより動的に更新されるものであり、
前記ユーザについての前記ゲームプレイのヒントを前記ゲームのゲームインターフェースと関連付けて、現在のゲームプレイ中にゲームの前記異なる部分において前記ゲームを進行させるための前記ゲームプレイのヒントにアクセスするための選択オプションをレンダリングする、方法。
【請求項１８】
前記モデルの生成では、さらに、
前記ゲームをプレイした複数の他のユーザにより提供されるインタラクションによって前記モデルを更新する、請求項１７に記載の方法。
【請求項１９】
前記ゲームプレイのヒントの特定では、さらに、
前記モデルからの詳細を使用して前記ゲームの一部分についての前記ユーザの前記ゲームプレイ行動のずれを識別し、前記詳細は、前記部分について提供される前記ユーザの前記インタラクションが、前記ゲームの前記一部についての結果を達成した前記複数の他のユーザの前記インタラクションと比較することによって行われ、
前記複数の他のユーザのうちの特定の他のユーザのゲームプレイを選択し、前記特定の他のユーザは、前記ユーザのスキルレベルを前記特定の他のユーザのスキルレベルと一致させることによって選択されるものであり、
記特定の他のユーザによって前記ゲームの前記部分について提供されるゲーム入力を使用して、前記ゲームの前記部分についてのゲームプレイのヒントを提供する、請求項１８に記載の方法。
【請求項２０】
前記モデルは、前記複数の他のユーザのそれぞれの以前のゲームプレイセッションが完了した場合に更新される、請求項１８に記載の方法。
【請求項２１】
現在のゲームプレイの終了または現在のゲームプレイセッションの終了を検出した場合に、前記現在のゲームプレイの前記ゲームプレイ行動が前記モデルに対して更新され、前記ユーザの前記更新されたゲームプレイ行動は、前記ゲームの以降のゲームプレイ中の前記ゲームに関する前記ユーザの前記ゲームプレイのヒントを改良するのに使用される、請求項１７に記載の方法。
【請求項２２】
前記モデルは、前記ゲームの現在のゲームプレイ中に前記ユーザによって提供されるインタラクションにより動的に更新され、前記現在のゲームプレイからの前記インタラクションは、前記ユーザが前記現在のゲームプレイのゲームセッションを終了したことを検出した場合に更新される、請求項１７に記載の方法。
【請求項２３】
サーバであって、
プロセッサと、
前記プロセッサに結合されるメモリを有し、前記メモリは、プログラミングロジックを有するアプリケーションを記憶するために使用され、前記プログラミングロジックは、前記プロセッサによって実行された場合に、行動メトリックに基づいて前記アプリケーションに関するゲームプレイのヒントを提供し、前記アプリケーションの前記プログラミングロジックは、
ユーザアカウント用のユーザインターフェースを提供し、前記ユーザアカウントは、前記サーバ上で利用可能なアプリケーションにアクセスするために使用されるものであり、
前記ユーザインターフェース上に提示されるアプリケーションの選択を検出し、前記アプリケーションはユーザインタラクションのために選択され、
前記アプリケーションの実行中にユーザから前記アプリケーションに関するユーザインタラクションを受信し、前記ユーザインタラクションは、前記アプリケーションの結果を調整するために使用されるものであり、
前記ユーザによって提供される前記ユーザインタラクションを分析して、前記ユーザのインタラクティブな行動を特定し、
前記ユーザの前記インタラクティブな行動に基づいて前記ユーザの行動メトリックを生成し、前記行動メトリックは、前記アプリケーションのそれぞれの部分における前記ユーザの前記インタラクティブな行動に応じて、前記アプリケーションの異なる部分ごとに異なるものであり、
前記行動メトリックは、前記ユーザのアプリケーションモデルを生成するために用いられ、かつ、前記アプリケーションモデルを使用して、前記アプリケーションの前記異なる部分ごとに、前記それぞれの部分において前記ユーザが前記ゲームを進行することの妨げとなった前記ユーザの前記インタラクティブな行動におけるずれを識別し、かつ、前記アプリケーションの前記異なる部分ごとに前記ゲームを進行させるためのアプリケーションヒントを特定し、前記アプリケーションモデルは機械学習ロジックを使用して生成されるものであり、
前記ユーザに対する前記アプリケーションヒントを前記アプリケーションのアプリケーションインターフェースまたはアプリケーションと関連付けて、前記アプリケーションの前記異なる部分においてユーザをアプリケーションの進行を達成可能とさせるための前記アプリケーションヒントにアクセスするための選択オプションをレンダリングさせる、サーバ。
【請求項２４】
前記アプリケーションの前記プログラミングロジックは、さらに、
以前のアプリケーションの使用からの前記ユーザの前記インタラクティブな行動を使用して、前記アプリケーションの前記アプリケーションモデルを更新し、
前記アプリケーションの前記それぞれの部分についての前記アプリケーションモデルからの詳細を使用して、前記アプリケーションの一部分についての前記ユーザの前記インタラクティブな行動におけるずれを識別し、前記ずれは前記ユーザが前記アプリケーションの前記一部分に対して指定された結果を達成しないことにつながるものであり、かつ、
前記アプリケーションモデルからの詳細を使用して前記アプリケーションの前記一部分についてのアプリケーションヒントを提供し、前記ユーザに提供される前記アプリケーションヒントは、前記アプリケーションの前記一部分で前記アプリケーションを進行させるためのアプリケーション入力を含むものである、請求項２３に記載のシステム。
【請求項２５】
前記アプリケーションの前記プログラミングロジックは、さらに、
前記アプリケーションとインタラクトした複数の他のユーザのインタラクティブな行動と、以前のアプリケーションの使用からの前記ユーザの前記インタラクティブな行動とを使用して、前記アプリケーションのアプリケーションモデルを更新し、
前記アプリケーションの一部分について前記複数の他のユーザ及び前記ユーザによって提供されるインタラクションを分析して、前記アプリケーションの前記一部分についての前記ユーザのインタラクティブな行動におけるずれを識別し、前記分析は、前記アプリケーションモデルからの詳細を使用して、前記ユーザの前記ユーザインタラクションと、前記アプリケーションの前記一部分の結果を達成した前記複数の他のユーザの前記ユーザインタラクションとを比較することによって実行され、
前記複数の他のユーザのうちの特定の他のユーザのアプリケーションインタラクションを選択し、前記特定の他のユーザは、前記特定の他のユーザのユーザプロフィールの少なくとも一部を、前記ユーザのユーザプロフィールの対応する部分と照合することによって選択され、
前記特定の他のユーザによって前記アプリケーションの前記一部分について提供される入力を使用して、前記アプリケーションの前記一部分についてのアプリケーションヒントを提供し、提供される前記アプリケーションヒントは、前記一部分についての前記ユーザの前記インタラクティブな行動に基づいて前記ユーザ向けにカスタマイズされるように構成される、請求項２３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザインタラクションのためのゲームを提供するためのシステム及び方法に関し、より詳細には、ゲームプレイの詳細を表示するオプションを有するユーザインターフェースを提供することに関する。いくつかの例では、個人化されたユーザインターフェース（ＵＩ）及び／またはユーザエクスペリエンス設計（ＵＸ）を生成するために、ユーザのゲームプレイのインタラクションが収集され、分析される。ユーザがアプリケーションを離れた後にメインＵＩ／ＵＸインターフェースを変更して、ユーザがアプリケーション（たとえば、ゲームのアクション）に戻るのを最大限に支援する手法に関する例を説明する。いくつかの例では、ゲームプレイ中／アプリケーションの使用中に特定のユーザインタラクションデータをキャプチャし、次いで分析して、ユーザの以降のゲームプレイまたはアプリケーションの使用に対するヒント及び／または支援を特定する。
【背景技術】
【０００２】
急速に進化している技術の１つは、ユーザがインターネットなどのネットワークを介してクラウドゲームサイト上で利用可能な多数のゲームにアクセスし、ゲームのプレイを開始することができるクラウドゲームの分野にある。ユーザはクラウドゲームサイト上の自分のアカウントにアクセスし、そのユーザアカウントで利用可能なゲームのリストから、ゲームプレイのためにゲームを選択する。ユーザがクライアントデバイスを使用してクラウドゲームサイトからゲームプレイのためにゲームを選択すると、クラウドゲームサイトのサーバはゲームプレイのセッションを開始し、ユーザがクラウドゲームサイトにアクセスしたクライアントデバイスにゲームのビデオフレームのストリーミングを開始する。ユーザがゲームを完了する前にゲームプレイセッションを終了すると、ゲームプレイは一時停止され、ゲームデータがメタデータとして記憶されて、ユーザが中断したところからゲームを再開できるようになる。キャプチャされるゲームデータは、実行したアクション、得られた結果、得点、乗り越えたハードル、捕獲または打倒した敵、入手もしくは消費したまたは授与されたゲームツール、友人とのコミュニケーション、共有したゲームクリップ、生成されたミニゲームなどを含む。しかしながら、ユーザがゲームを再開すると、ゲームロジックは単にゲームプレイのためにゲームをロードする。ユーザがゲームを再開する場合に、メタデータで提供されるゲームプレイの全ての詳細（友人／仲間／プレイパートナー間のゲーム内メッセージ、チャットの詳細、ゲーム統計など）を復元し、ユーザに対してレンダリングする簡単な方法はない。
【０００３】
さらに、ゲームロジックによって提供されるユーザインターフェースは、全てのユーザに対して同一である。ユーザインターフェースはユーザごとにカスタマイズされておらず、ユーザに関するゲームプレイの全ての詳細を取得する簡単な方法はない。またさらに、ユーザインターフェースは、ゲームプレイ中に行われるゲーム内コミュニケーション及び他のソーシャルインタラクションに関するさらなるゲームプレイメタデータ、またはゲームセッションの他の詳細を表示しない。新たなユーザがゲームのプレイを開始する場合、そのユーザはゲーム内の課題またはハードルを克服するために実行することが必要な全てのアクションにあまり精通していない場合がある。このため、ユーザはゲーム内でやりたいことを達成できないためにユーザに大きな不満がもたらされ、満足のいくユーザエクスペリエンスが得られずにゲームを離れることになる。
【０００４】
ゲームプレイの前または最中にユーザの行動メトリックのうちの特定の行動メトリックを表示し、ユーザが複数のメニュー内を移動する必要なく、ユーザがプレイするゲームの以前のゲームプレイのゲーム状態を見られるようになるオプションをユーザに提供できれば有利であろう。また、ユーザが他のユーザのゲームプレイを見ることができ、それによってユーザが自分のゲームプレイスキルを向上させることができれば有利であろう。
【０００５】
本発明の実施形態は、以上の状況の下になされたものである。
【発明の概要】
【０００６】
本発明の実施形態は、ゲームのユーザが、ユーザまたは他のユーザの以前のゲームプレイの詳細を見ることを可能にするオプションによってユーザインターフェースを更新するための方法、システム及びコンピュータ可読媒体を開示する。ユーザインターフェースは、クラウドゲームサーバ上でユーザアカウントで利用可能な複数のゲームへのアクセスを提供する。本明細書ではクラウドゲームサーバに関する考察を提供するが、任意のゲームまたはアプリケーションコンピューティングシステムが、本明細書に記載の処理を使用し、恩恵を受け得ることを理解されたい。例として、他のコンピューティングシステムは、ローカル及びリモートに位置するゲームコンソール、パーソナルコンピュータ、モバイルユーザデバイス、タブレット、ディスプレイスクリーン、テレビ、パーソナルコンピュータシステム、サーバ、仮想マシンなどを含み得る。さらに、様々な実施形態はビデオゲームアプリケーションに制限されず、任意のインタラクティブアプリケーション（たとえば、アプリ）が本明細書に記載の機能を利用し得ることを理解されたい。したがって、ゲームへの言及は、範囲をゲームに限定するものと見なされるべきではなく、任意のタイプのアプリケーションが、本明細書に記載の特徴の一部または全部を使用し得る。
【０００７】
一実施形態では、ゲームサイトまたはアプリケーションへのアクセスが提供される場合、ユーザインターフェースは、ユーザが見ているまたはプレイしているゲームごとにユーザ向けにカスタマイズされた行動メトリックを提供し得る。これらの行動メトリックは、ゲームのゲーム状態及びヒントを提供して、ユーザが自分のゲームプレイを改善できるようにする。いくつかの例では、個人化されたユーザインターフェース（ＵＩ）及び／またはユーザエクスペリエンス設計（ＵＸ）を生成するために、ユーザのゲームプレイのインタラクションが収集され、分析される。ユーザがアプリケーションを離れた後にメインＵＩ／ＵＸインターフェースを変更して、ユーザがゲームのアクションに戻るのを最大限に支援する手法に関する例について説明する。いくつかの例では、ゲームプレイ中／アプリケーション内での移動中に、特定のユーザインタラクションデータをキャプチャし、次いで分析して、適切なヒントを特定する、及び／またはユーザの以降のゲームプレイに対するカスタマイズされた支援を提供する。このタイプの支援をユーザに提供することで、ゲーム／アプリケーションに対するユーザの不満が減り、アプリケーション／ゲームに対するユーザの没入度が高くなる。
【０００８】
一実施形態では、ユーザがゲームプレイのためにゲーム（すなわち、ユーザインタラクション用のアプリケーション）を選択した場合、ゲームプレイ中のユーザインタラクションがメタデータ内に記録される。ユーザがゲームアプリケーションのゲームセッションを終了した後、たとえば、ゲーム状態（テキストもしくは画像またはビデオ形式）、ゲーム統計、ヒント及び／または他の支援などの、ゲームプレイセッションの詳細を提供するオプションを含むようにユーザインターフェースを更新して、ユーザが以降のゲームプレイセッション中にゲームの自分のゲームプレイを改善するのを助ける。ヒントは、オーディオ形式、ビデオ形式、テキスト形式などを含む様々な形式で提供され得、取るべきステップの詳細、行うべきボタン押下の順序、ゲームをプレイして完了した、またはゲームの一部の、ゲームのレベルの、もしくはゲームの完了メトリックを達成した異なるユーザのビデオクリップ、などを含み得る。メタデータに記録された詳細を使用して様々なヒントを提供することによって、ユーザがゲームプレイに専念あるいは没入し、興味を持ち続けつつ、ユーザが満足のいくゲームプレイ体験を得られるようにする。
【０００９】
いくつかの実施形態では、アプリケーション／ゲームの使用中に、リアルタイム分析に使用され得るデータ及び／またはメタデータをキャプチャするための処理が実行される。リアルタイム分析を使用して、ゲームをプレイしているまたはアプリケーションとインタラクトしているときのユーザの行動を識別または定量化することができる。この情報を使用して、今後のゲームのプレイまたはアプリケーションとのインタラクションのためのユーザ向けのヒントを追加または削除することができる。これらのヒントの一部は、ユーザがアプリケーションまたはゲームとのインタラクションを終了した直後に動的に生成することができる。提供される情報は、ユーザの活動、ユーザの活動またはアクションのプロファイリング、アプリケーションインタラクションに関する履歴データ、同じゲームまたはアプリケーションに関するコミュニティデータなどを含むことができる。いくつかの実施形態では、機械学習を使用して、ユーザのインタラクションを処理し、さらなるアプリケーションインタラクションの提案を提供し、またはアプリケーションとインタラクトするためのヒントもしくは提案を提供する。場合によっては、この情報は、ユーザをアプリケーションにエンゲージされた状態とするために、つまり、アプリケーションに没入した状態、あるいは専念した状態とするために使用される。
【００１０】
場合によっては、アプリケーションは、ユーザがチャンネルを選択し、コンテンツを視聴し、コンテンツを保存し、コンテンツを録画し、コンテンツを共有し、一般的にはテレビ（ライブまたは録画）コンテンツとインタラクトすることを可能にするテレビインターフェースであり得る。これらのインタラクションに基づいて、ユーザのアクションを学習することによって、過去のインタラクションに関連する使用可能なデータを提示することが可能になる。ユーザはこの有用なデータを使用して、アプリケーションに再度没入し、より多くの情報に基づいた選択を行うことによって、アプリケーションの使用及び／またはナビゲーションが改善される。一実施形態では、テレビインターフェースは、ユーザがライブ及び録画のテレビ放送にアクセスすることを可能にするオンラインテレビサービスに関する。オンラインテレビサービスは、一実施形態では、ユーザが任意のモバイルデバイスからチャンネルを選択し、ゲームをプレイし、放送を録画し、テレビを視聴することなどを可能にする。一部の構成では、クラウド処理サービスの１つまたは複数のサービスはテレビサービスを実行し、ユーザはコンピューティングデバイスを介してそのサービスに接続することができる。コンピューティングデバイスは、ゲームコンソール、ＵＳＢ接続スティック、テレビディスプレイに統合されたコンピュータ、モバイルデバイス、ラップトップなどを含み得る。したがって、ユーザがテレビのインタラクションセッションを終了すると、ユーザにはＵＩ／ＵＸインターフェースを介して有用な情報が提供され得、視聴またはインタラクションを継続するために使用され得るオプションが提供され得る。前述のように、機械学習を実装して、ローカルコンピュータまたはサーバ上でインタラクションを処理することができる。この処理は実質的にリアルタイムで実行することができ、ユーザは有用な情報及び／またはヒントを効率的に使用して、たとえば、視聴またはプレイを継続することができ、セッションを終了したり興味を失ったりしない。
【００１１】
一実施形態では、一方法が提供される。この方法は、クラウドゲームシステムのクラウドゲームサーバによって実行される。この方法は、ユーザアカウント用のユーザインターフェースを提供することを含む。ユーザインターフェースは、クラウドゲームサーバ上で利用可能なゲームにアクセスするために使用される。ユーザインターフェース上に提示される各ゲームは、ゲームの対応するゲームアイコンと、ゲームのゲームプレイ中に提供されるインタラクションを使用して生成される行動メトリックにアクセスするための１つまたは複数のオプションとを含む。行動メトリックは、ユーザ自身の以前のゲームプレイ（複数可）からのものでも、ゲームをプレイした他のユーザのものでもよい。また、この方法は、ユーザインターフェースからのゲームプレイのためのゲームの選択を検出することを含む。選択の検出に応答して、ゲームのゲームプレイがインスタンス化され、ゲームプレイ中にユーザによって提供されるインタラクションが、ゲームの結果に影響を与えるために使用される。ユーザによって提供されるインタラクションを分析して、ユーザのゲーム行動を特定する。ユーザのゲーム行動に基づいて、ゲームに関する行動メトリックが生成され、行動メトリックはゲームの異なる部分ごとに、それぞれの部分におけるユーザのゲーム行動に応じて異なる。ゲームに関するユーザの行動メトリックを、ユーザインターフェース上に提供されるゲームのゲームアイコンに関連付けて、以降のゲームプレイ中にゲームの異なる部分に対して行動メトリックのうちの特定の行動メトリックをレンダリングさせるようにする。行動メトリックは、インタラクティブコンテンツを現在提供しているゲームの異なる部分のゲームプレイの変化に応じて動的に変化し、行動メトリックは、ユーザがゲームの異なる部分についてユーザのゲームプレイを改善するのを助けるために提供される。
【００１２】
いくつかの実施形態では、分析及び生成の動作は、ユーザによる現在のゲームプレイセッションの終了を検出した場合に実行される。
【００１３】
いくつかの実施形態では、ユーザインターフェースにおいてゲームを選択すると、ユーザの以前のゲームプレイのゲーム状態の画像クリップがユーザインターフェースにレンダリングされる。
【００１４】
いくつかの実施形態では、以降のゲームプレイのためのゲームの選択を検出した場合に、ユーザの行動メトリックがユーザインターフェース上で更新される。
【００１５】
いくつかの実施形態では、ユーザの行動メトリックは、以降のゲームプレイ中にユーザを支援するために提供されるゲームヒントを含み、ヒントはゲームのゲームロジックから特定される。
【００１６】
いくつかの実施形態では、以前のゲームプレイからのユーザのゲーム行動と、ゲームロジック内で定義されたゲーム入力とを使用して、ゲームのゲームモデルが生成される。ゲームモデルからの詳細を使用して、ゲームの各部分についてのユーザのインタラクションを、ゲームの各部分についてのゲームロジックによって定義されるゲーム入力と比較することにより、ゲーム中のユーザのゲーム行動の任意のずれ（ｄｅｖｉａｔｉｏｎ）が識別され、ずれは、ユーザがゲームのその部分の完了に成功しないことにつながり、またはその部分、副部分、イベント、アクション、レベル、ゲーム全体、もしくはゲーム内のシーケンスについての完了メトリックの達成に成功しないことにつながる。ゲームロジック内で定義されたゲーム入力を使用して、ゲームに関するゲームヒントが提供される。
【００１７】
いくつかの実施形態では、ゲームをプレイした複数のユーザのゲーム行動と、以前のゲームプレイからのユーザのゲーム行動と、ゲームロジック内で定義されたゲーム入力とを使用して、ゲームのゲームモデルが生成される。ユーザのインタラクションを、ゲームの完了に成功した、またはゲームの少なくとも一部、一連のイベント、アクション、レベル、動き、もしくはそれらの組み合わせについての完了メトリックの達成に成功した複数の他のユーザのインタラクションと比較することによって、ゲームの一部分についてのユーザのゲーム行動の任意のずれが識別される。ユーザのスキルレベル、ユーザのゲーム行動に基づいて、または特定の他のユーザのユーザプロフィールの一部分をユーザの対応するプロフィール部分と照合することによって、特定の他のユーザのゲームプレイが選択され、特定の他のユーザによってその部分に対して提供されたインタラクションを使用して、ゲームのその部分に対するゲームヒントが提供される。ゲームヒントは、ユーザのゲーム行動に基づいてユーザ向けにカスタマイズされる。
【００１８】
いくつかの実施形態では、ゲームのその部分のビデオクリップがゲームヒント内に提供され、ビデオクリップは特定の他のユーザのゲームプレイから抽出される。
【００１９】
いくつかの実施形態では、ゲームプレイのために選択されるゲームは、複数のユーザによってプレイされるマルチユーザゲームであり、複数のユーザのそれぞれに対して生成される行動メトリックは、それぞれのユーザのユーザインターフェースにレンダリングされる。
【００２０】
いくつかの実施形態では、行動メトリックは、ユーザによって定義される提示設定に従って提示される。
【００２１】
いくつかの実施形態では、ゲームプレイのために選択されるゲームは、複数のユーザによってプレイされるマルチユーザゲームであり、複数のユーザのうちの各ユーザ用のユーザインターフェースは、ゲームのゲームプレイを再開するオプションを含む。
【００２２】
いくつかの実施形態では、ヒントは、ビデオ形式もしくはテキスト形式またはオーディオ形式のうちの１つ、あるいはビデオ、テキスト、及びオーディオ形式のうちの任意の２つまたは全ての組み合わせで提供される。
【００２３】
いくつかの実施形態では、ユーザインターフェースは、ゲームプレイのためにゲームをカスタマイズするオプションを含む。カスタマイズするオプションは、以降のゲームプレイについて、ゲームの速度、もしくはゲームのレベル、またはゲームの難易度を調整するオプションを含む。
【００２４】
他の実施形態では、一方法が提供される。この方法は、クラウドゲームシステムのクラウドゲームサーバによって実行される。この方法は、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームにアクセスするためのユーザインターフェースを提供することを含む。現在のゲームプレイのためのゲームの選択は、ユーザインターフェースから検出される。現在のゲームプレイ中にゲームの一部分においてユーザによって提供されるインタラクションが識別される。以前のゲームプレイ中にユーザによって提供されたインタラクションと、ゲームのゲームロジック内で指定されたゲーム入力とを使用して、ゲームのモデルが生成される。以前のゲームプレイに対して生成されたモデルを使用して、現在のゲームプレイにおいて提供されるインタラクションが分析され、ユーザのゲーム行動が特定される。ユーザのゲーム行動に基づいて、ユーザの現在のゲームプレイについての行動メトリックが生成され、行動メトリックは、ユーザのゲームプレイを改善するためのヒントまたはコメントを提供する。行動メトリックは、現在のゲームプレイの変化に対応するように動的に調整される。行動メトリックは、ユーザインターフェースに提示されるゲームのゲームアイコンに関連付けられる。この関連付けによって、現在のゲームプレイ中にゲームの異なる部分に対して行動メトリックのうちの特定の行動メトリックがユーザインターフェースにレンダリングされる。行動メトリックは、現在レンダリング中のゲームにおける変化に応答して動的に変化し、ユーザがユーザの現在のゲームプレイを改善するのを助けるために提供される。
【００２５】
本発明の他の態様及び利点は、添付の図面と併せて、本発明の原理を例として示す以下の詳細な説明から明らかになろう。
【００２６】
本発明は、そのさらなる利点と共に、添付の図面と併せて以下の説明を参照することによって最もよく理解され得る。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態による、現在のゲームプレイのために選択されたゲームの以前のゲームプレイからの詳細を提供するために使用される例示的なシステムの簡略ブロック図である。
【図２Ａ】本発明の一実施形態による、ゲームの以前のゲームプレイに関連するゲーム状態、ヒント及び／または他の詳細を提供するために使用される様々なモジュールを有する例示的なサーバ側アプリケーションを示す図である。
【図２Ｂ】本発明の一実施形態による、選択されたゲームの以前のゲームプレイのゲーム状態、ヒント、及び／または他の詳細を提供するために使用されるサーバ側アプリケーション内で利用可能な例示的なゲームプレイ評価器モジュールの簡略ブロック図である。
【図３Ａ】本発明の一実施形態による、クライアントデバイス上でレンダリングされる、サーバ側アプリケーションによって提供される様々なアプリケーションオプションを有するサンプルユーザインターフェースを示す図である。
【図３Ｂ】本発明の一実施形態による、各アプリケーションの下で利用可能なマルチメディアコンテンツを提供するオプションをレンダリングするサンプルユーザインターフェースを示す図である。
【図３Ｃ】本発明の一実施形態による、選択されたゲームに利用可能な行動メトリックの詳細をレンダリングするサンプルユーザインターフェースを示す図である。（１）及び（２）は、選択されたゲームに関する行動メトリックの詳細がレンダリングされる様々な方法を示す図である。
【図４Ａ】本発明の一実施形態による、ゲームのユーザの行動メトリックをユーザインターフェースに提示して、ユーザがゲームプレイを改善するのを支援するために使用されるデータフロープロセスの簡単なブロック図である。
【図４Ｂ】本発明の他の実施形態による、ゲームのユーザの行動メトリックをユーザインターフェースに提示して、ユーザがゲームプレイを改善するのを支援するために使用されるデータフロープロセスの簡単なブロック図である。
【図４Ｃ】本発明の一実施形態における、現在レンダリング中のゲームプレイの一部分に基づいて動的に変化する行動メトリックの簡単なブロック図である。
【図５Ａ】本発明の一実施形態による、現在のゲームプレイ中に以前のゲームプレイの詳細を提供するために使用される方法の動作の例示的なフローを示す図である。
【図５Ｂ】本発明の他の実施形態による、現在のゲームプレイ中に以前のゲームプレイの詳細を提供するために使用される方法の動作の例示的なフローを示す図である。
【図６】本発明の一実施形態による、地理的に分散し、ネットワークを介して接続されたユーザに情報コンテンツ及びサービスを配信するための例示的な情報サービスプロバイダアーキテクチャを示す図である。
【図７】本発明の様々な実施形態による、例示的なゲームシステムの簡略ブロック図である。
【発明を実施するための形態】
【００２８】
以下の説明では、本発明の完全な理解を提供するために、多数の具体的詳細を述べる。しかしながら、これらの具体的詳細の一部または全部がなくても本発明が実施され得ることは当業者には明らかであろう。他の例では、本発明を不明瞭にしないために、よく知られている処理のステップは詳細には説明していない。
【００２９】
本発明の様々な実施形態によれば、クライアントデバイス上に提供されるユーザインターフェースは、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームにアクセスするために使用される。クラウドゲームサーバはクラウドゲームシステムの一部であり、クラウドゲームシステムは、クラウドゲームシステムが利用可能なリソースを使用して、オンラインゲームアプリケーションを含む複数のアプリケーションをホストするように構成される。現在のユーザによってゲームプレイのためにゲームが選択された場合、クラウドゲームサーバ上で実行される選択されたゲームのアプリケーションロジックは、ゲームのゲーム状態を特定し、ユーザが自分のゲームプレイを改善するのを支援するヒント及び他の詳細を提供する。それらの詳細はユーザインターフェースに対して更新され、ゲームプレイのためのゲームのロード中、またはゲームプレイ中に提示される。ユーザインターフェースで提供される詳細は、ゲーム状態、ゲームプレイ統計、たとえば、ゲームスコア、現在のゲームセッションで獲得したポイント数、勝ち取ったもしくは失ったまたは現在のユーザが利用可能なゲームツールのタイプ及び数、到達したレベル、各レベルに到達するのにかかった時間、現在のユーザがゲームプレイの各セッションに没入していた時間、生成されたミニゲームの数、共有しているビデオクリップの数、交換したユーザチャットまたはメッセージ、ゲームを共有したまたはチャットを交換した連絡先（ソーシャルまたはゲーム関連）、ゲームの異なる部分またはレベルのゲームプレイ中に収集された他のゲームプレイメトリックなどを含み得る。
【００３０】
アプリケーションロジックはまた、他のユーザのゲームプレイを特定し、ゲームもしくはゲームの一部分の完了に成功した、またはゲームの少なくとも一部、一連のイベント、アクション、レベル、動き、もしくはそれらの組み合わせについての完了メトリックの達成に成功したユーザのビデオクリップを提示して、現在のユーザがゲームもしくはゲームのその部分を完了するために必要なゲームの動きを理解すること、またはゲームもしくはゲームのその部分に対して指定された完了メトリックを取得することを可能にし得る。ユーザインターフェースに提示する他のユーザのビデオクリップを特定するために、アプリケーションロジックは、機械学習ロジックを含むまたは用いることによって、メタデータ内に蓄積された複数のユーザのゲームプレイインタラクションを使用してゲームのゲームプレイのモデルを構築し、協調フィルタリングを適用して、ゲームの特定の部分の完了に成功した、またはゲームの特定の部分に対して指定された完了メトリックの達成に成功した複数のユーザのうちの特定のユーザからのビデオクリップを特定し得る。特定されたビデオクリップをユーザインターフェースに対して更新して、現在のゲームプレイ前に、または現在のゲームプレイ中の適切な時間に適切なビデオクリップをレンダリングさせることによって、現在のゲームプレイのユーザが、ゲームの特定の部分についてユーザ自身のゲームプレイを改善するのに必要なインタラクションを理解することを支援する。いくつかの実施形態では、ゲームまたはゲームの一部分の完了に成功することは、ゲームの進行のための最低限のレベルを満たすスコアを達成すること、あるいはゲームの一部のスキルアクション、ゲーム内のレベル、ゲーム内の動きまたはアクション、またはその組み合わせを行うことに関する。いくつかの実施形態では、最低限のレベルを満たすことは、測定可能または比較可能なルールまたはメトリックによって定義される何らかのゲームアクションに関する。場合によっては、ルールまたはメトリックを使用して、他のユーザのプレイ、他のユーザのアクション、またはプレイヤーのセグメントもしくはプレイヤーのグループによって達成されたスコアに対して比較することができる。
【００３１】
ユーザを長時間没入させ続け、ユーザをアプリケーションに繰り返し引き付けることが、全てのアプリケーション（たとえば、ゲームアプリケーション）の開発者の目標である。本明細書に記載の様々な実施形態は、ゲームプレイの十分な詳細をユーザに提供して、ユーザがゲーム内を進むのに成功することを支援することによって、そのような可能性を可能にする。これに関連して、進むのに成功することは、ゲームもしくはレベルの前進、または他のアクションもしくは一連のアクションへの移動を可能にする、ゲーム内のアクションもしくは一連のアクションを実行することに関する。成功するために、システムは、ユーザによって実行されたアクションを比較するように構成され、これをゲームメカニクスに対して処理することができる。ゲームメカニクスは、事前に定義された満足度まで実行された場合に、コンピュータ処理によって定量化することができる。定量化は動的に行うことができ、ユーザによって実行されたアクションを、他のユーザのデータに対して処理する、機械学習によって生成されたモデルに対して処理する、などすることができる。いくつかの実施形態では、この処理はサーバによって行われ、サーバはネットワークを介して接続された多数のユーザから入力を取得または受信する。
【００３２】
ネットワークは大量のユーザデータへのアクセスを提供し、これは１つまたは複数のクラウド処理システムによって実質的にリアルタイムに処理される必要がある。次に、この処理を使用して、ゲームプレイに関する詳細、１人または複数人のプレイヤーによって達成されたスキルを特定し、特定のプレイヤーについての定量化可能なメトリックを処理する必要がある。これらのメトリックは、場合によっては、ユーザ／プレイヤーの行動を定量化した結果を動的に生成する。次に、いくつかの実施形態では、ユーザの行動を他のユーザと動的に比較することができる。いくつかの実施形態では、機械学習はモデルを生成することができ、モデルにアクセスして、ユーザの以前のゲームプレイまたは他のユーザのゲームプレイに基づいて、ユーザの行動を識別または予測することができる。
【００３３】
ユーザのゲームインタラクション（以前のゲームプレイ及び／または現在のゲームプレイの両方）を分析し、ユーザが進むために何らかの支援を必要とするゲームの部分を特定することによって、詳細が提供される。アプリケーションロジックは、協調フィルタリング及び機械学習を使用して、ユーザが完了するために支援を必要とするゲームの部分を特定し、それらの部分の完了に成功したまたは完了メトリックの達成に成功した他のプレイヤーのゲームプレイのうちの特定のものを特定し得る。分析に基づいて、ゲームのアプリケーションロジックまたはアプリケーションメカニクスは、適切な視覚、聴覚、またはテキストの手掛かり及び／またはビデオクリップ（複数可）を特定して提供し、以降のゲームプレイの前または最中にユーザに通知するまたはユーザを支援する。そのような支援を提供することによって、ユーザの不満が軽減され、ユーザはゲームに興味を持ち続ける。
【００３４】
ユーザが利用可能なユーザインターフェースは、以降のゲームプレイ中にユーザを支援するヒントによって更新される。現在のゲームプレイ中のユーザのゲームプレイメトリックは、ゲームプレイ中に収集され、ユーザがユーザセッションを終了してアプリケーション（たとえば、ゲームアプリケーション）を離れた後に分析されて、ゲームプレイ中のユーザの行動メトリックが決定される。ユーザが現在アプリケーションを使用している間にキャプチャされた特定のデータの分析に基づいて、ヒントが提供される。いくつかの実施形態では、現在のゲームプレイ中にキャプチャされたインタラクションデータに加えて、ゲームの現在及び以前のゲームプレイ中に生成されたメタデータを使用して、データのリアルタイム分析を実行することによって、ユーザのゲーム行動を特定する。機械学習ロジック及び協調フィルタリングロジックを使用して、現在のゲームプレイ中のユーザのインタラクション、ユーザのゲームプレイ履歴、ゲームをプレイした他のユーザのインタラクション（すなわち、コミュニティデータ）をプロファイリングすることにより、ユーザをゲームに没入させ続ける可能性が最も高い適切なデータが提供されるようにすることによって、ゲーム行動が生成される。そのようなゲーム行動は、ユーザインターフェース上で利用可能な様々なオプションを介して提供される可視データ及び不可視データを動的に追加、削除、再配置、及び／または変更するために使用される。いくつかの実施形態では、ゲームのゲームプレイを終了した直後に、データの動的な調整が実行される。他の実施形態では、ゲームのゲームプレイ中に、データの動的な調整が実行される。
【００３５】
本発明の概略的な理解を用いて、様々な図面を参照して特定の実施形態を説明する。
【００３６】
図１に、本発明の一実施形態における、ユーザによるゲームの以前のゲームプレイに関する詳細を提供するために使用されるシステムの簡略ブロック図を示す。本明細書ではゲームアプリケーションを参照して様々な実施形態を説明しているが、様々な実施形態が他のインタラクティブアプリケーションにも拡張され得ることを理解されたい。全体的なシステムは、インターネットなどのネットワーク２００を介してアプリケーションサーバなどのサーバ３２０−１に通信可能に接続された複数のクライアントデバイス１００−１から１００−ｎによってアクセスすることができるクラウドゲームシステム３００である。クラウドゲームシステム３００は、複数のインタラクティブアプリケーションをホストし得、各アプリケーションは１つまたは複数のサーバ上でインスタンス化され得る。サーバは、１つのデータセンター３１３の一部であってもよく、または地理的に分散しているデータセンターに拡散されていてもよい。クラウドゲームシステムを参照して様々な実施形態をかなり詳細に論じるが、これらの実施形態は、有線または無線接続によって直接的に、またはネットワーク２００を介してアクセスされ得るローカルネットワーク内に配置されたサーバまたはコンピュータを含む他のシステムに拡張できることに留意されたい。
【００３７】
クライアントデバイス１００（すなわち、１００−１から１００−ｎのいずれか１つ）は、プロセッサ、メモリ、ネットワーク２００に接続するためのネットワーク接続、サーバ側アプリケーションと通信するための適切なＡＰＩ、及びゲームアプリケーションなどのサーバ側アプリケーションによって提供されるコンテンツを復号するための１つまたは複数の復号器を含む任意のコンピューティングデバイスである。プロセッサは、ネットワーク接続を介してネットワーク２００に接続してサーバ側アプリケーションとインタラクトし、アプリケーションプログラミングインターフェース（ＡＰＩ）を使用してサーバ側アプリケーションと通信するまたはこれにアクセスし得るクライアント側アプリケーションを実行することが可能である。ネットワーク接続は、有線または無線接続とすることができる。クライアントデバイス１００は、シンクライアント、汎用コンピュータ、専用コンピュータ、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、モバイルコンピューティングデバイス、ポータブルゲームデバイス、携帯電話、スマートフォン、ヘッドマウントディスプレイ、スマートウェアラブルデバイス、セットトップボックス、ストリーミングメディアインターフェース／デバイス、スマートテレビもしくはネットワーク接続ディスプレイ、またはリモートサーバ上で利用可能なインタラクティブアプリケーションにアクセスするために使用できる他の任意のコンピューティングデバイスであり得る。クライアントデバイス１００において利用可能なネットワーク接続及び通信プロトコルによって、クライアントデバイス１００は、リモートサーバと通信して、マルチメディアコンテンツのストリーミングビデオフレームを含むコンテンツを、クラウドゲームシステム３００の一部であるサーバ３２０などのリモートサーバから受信することが可能になる。マルチメディアコンテンツのビデオフレームは、ビデオフレームがクライアントデバイス１００にストリーミングされる前に、リモートサーバの符号化器を使用して圧縮されている。クライアントデバイス１００は、ストリーミングビデオフレームを復元するための復号器を含み、クライアントデバイス１００のそれぞれのコンポーネントを使用してコンテンツをレンダリングし得る。
【００３８】
いくつかの実施形態では、クライアントデバイス１００によって実行される処理の量は、入力及び出力処理に関して異なり得る。大まかに言って、ゲームまたはアプリケーションは実際には、データセンター３１３内で利用可能なリソースを使用してゲームサーバまたは他のアプリケーションサーバ３２０上で維持及び実行され、ゲームまたはアプリケーションによって生成されたコンテンツのフレームは圧縮／符号化され、クライアントデバイスに送信され、クライアントデバイス１００は主に、オーディオ／ビデオデータを受信し、復号し、処理し、クライアントデバイス１００のディスプレイ上にレンダリングするように機能する。クライアントデバイス１００において提供されたユーザインタラクションは、ゲームサーバまたは他のアプリケーションサーバに返される。クライアントデバイス１００は、ビデオデータをレンダリングするためのディスプレイに接続され得る。他の実施形態では、ディスプレイは、クライアントデバイス１００に統合することができる。一実施形態では、ディスプレイは、ディスプレイデバイスのネットワーク接続性を利用するアプリケーションまたは「アプリ」のためのプラットフォームオペレーティングシステムを提供するネットワーク接続ディスプレイデバイスである。そのような実施形態では、クライアントデバイス１００は、ディスプレイデバイスのオペレーティングシステムによって提供されるプラットフォーム上で実行されるアプリケーションによって定義することができる。
【００３９】
サーバは、このアプリケーションで使用される場合、リモートサーバ、仮想コンピュータ、クラウドゲームサーバ、クラウドアプリケーションサーバ、リモートアプリケーションサーバ、デジタルメディアサーバ、ゲーム開発者／ゲームスポンサーのストアフロント（storefront）を提供するために使用されるサーバ、ウェブサーバ、ターミナルサーバ、コンソールサーバ、あるいはクラウドゲーム中にユーザがアクセスしてインタラクトすることができる１つまたは複数のゲームまたはアプリケーションをホストする（たとえば、ゲームまたはアプリケーションを実行するための処理リソースを提供するまたは割り当てる）ことが可能なデータセンターにおいて利用可能な他の任意のタイプまたは形式のサーバコンピューティングデバイスであり得る。サーバは、ビデオフレームのデータを圧縮するための符号化器を含み、特定のタイプの通信プロトコルに従うアプリケーションプログラミングインターフェース（ＡＰＩ）コールを使用してデータストリーム内の圧縮されたビデオフレームをクライアントデバイス１００に転送し得る。
【００４０】
たとえば、データセンター３１３内のクラウドゲームサーバなどのサーバ３２０は、クライアントデバイス１００に関連付けられたユーザアカウントで利用可能なアプリケーションにアクセスするための、クライアントデバイス１００から受信された要求にサービス提供する。クラウドゲームサーバ３２０は、ユーザアカウント認証器モジュール３１０．１とインタラクトしてユーザアカウントを認証することによって、要求が有効なクライアントデバイス１００から来ていることを保証する。今度はユーザアカウント認証器モジュール３１０．１が、ユーザアカウントデータベース３１２とインタラクトして、ユーザアカウントのアカウント情報を取得し、要求を認証する。認証に成功すると、クラウドゲームサーバ３２０は、アプリケーション選択器モジュール３０４とインタラクトして、ユーザアカウントで利用可能な様々なアプリケーションを特定する。利用可能なアプリケーションはインタラクティブアプリケーションであり、購入されたアプリケーション、他のユーザによって共有されたアプリケーション、ならびに無料及び／または全てのユーザアカウントで利用可能なアプリケーションを含む。たとえば、インタラクティブアプリケーションは、ストリーミングマルチメディアコンテンツアプリケーション、たとえば、様々なメディアコンテンツプロバイダ及びユーザによって提供されるテレビ及びビデオサービス、音楽サービス、ゲームアプリケーション、写真アプリケーション、ライブラリサービスなどを含み得る。前述のインタラクティブアプリケーションは単なる例であり、マルチメディアコンテンツを提供する他のタイプのインタラクティブアプリケーションも含まれ得る。
【００４１】
クライアントデバイス１００に転送されてレンダリングされるユーザインターフェース内に、利用可能なアプリケーションが提供される。ゲームアプリケーションなどのアプリケーションのユーザ選択は、サーバ３２０に転送される。しかしながら、前述のように、実施形態は範囲をゲームに限定するものではなく、任意のタイプのアプリケーションが本明細書に記載の特徴の一部または全部を使用し得る。サーバ３２０は、アプリケーション選択器モジュール３０４とインタラクトして、ユーザアカウントで利用可能な様々なゲームを取得する。アプリケーション選択器モジュール３０４は、アプリケーションタイトルデータストア３１１に問い合わせて、ユーザアカウントで利用可能なゲームのリストを取得し、ゲームのリストを提供してユーザインターフェース上にレンダリングさせる。クライアントデバイス１００におけるユーザインターフェースからのゲームの選択は、サーバ３２０に伝達される。ビデオゲームの選択に応答して、サーバ３２０はビデオゲームを実行し、ストリーミングコンテンツを提供して、クライアントデバイス１００のユーザインターフェース上に提示させる。クライアントデバイス１００におけるゲームに関連するユーザインタラクションは、ゲームの結果を動かすために使用される。
【００４２】
図２Ａに、一実施形態における、ユーザがゲームプレイを改善するのを支援するためのヒント及び他の詳細を提供する、ユーザに提供されるユーザインターフェース（ＵＩ）及び／またはユーザエクスペリエンス設計（ＵＸ）を更新するために使用される例示的なサーバ側アプリケーション３１０を示す。サーバ側アプリケーション３１０は、データセンター３１３の一部であるクラウドゲームサーバ３２０によって実行され、ゲーム実行エンジンなどの実行エンジンと、複数のモジュール（論理モジュール）とを含み、複数のモジュールは、相互にインタラクトして、（たとえば）ゲームのゲームプレイ中にクライアントデバイス１００において提供されるユーザインタラクションを解釈し、メタデータ内にキャプチャされたゲームに関する現在のユーザまたは他のユーザの様々な段階のゲームプレイ（以前及び／または現在のゲームプレイ）の間に提供される適切なユーザインタラクションを特定し、ユーザに関連する詳細を提示して、現在または以降のゲームプレイ中にユーザを支援する。この目的のために、サーバ側アプリケーション３１０は、ゲーム実行エンジン３１０．２、ゲームデータ管理器３１０．６、一時停止管理器３１０．７、再開管理器３１０．８、オプション選択検出器３１０．９、及びゲームプレイ評価器３１０．１０を含む。上述のモジュールに加えて、ゲーム実行エンジン３１０．２は、ユーザアカウント認証器３１０．１、ビデオフレームモジュール３１０．３、及び符号化器モジュール３１０．４とインタラクトし得る。
【００４３】
クラウドゲームサーバ（「サーバ」とも呼ぶ）３２０は、データセンター３１３の一部である。データセンター３１３は、一実施形態では、複数のそのようなサーバ３２０（たとえば、ゲームサーバ）と、ストレージシステムとを含み、ストレージシステムは、ゲームコード、アプリケーションコード、ユーザ関連及びアプリケーション関連のデータストアを記憶することが可能であり、それらをすぐに利用できるようにして、複数のユーザからの様々な要求の処理を可能にする。また、データセンター３１３は、クライアントデバイス１００と複数のサーバ３２０との間に通信接続を確立するための、ルータ、スイッチなどの電気通信機器を含み得る。複数のサーバ３２０のそれぞれは、クライアントデバイス１００の対応するクライアント側ＡＰＩと通信するための（別個または同様の）サーバ側ＡＰＩ、及び／またはサードパーティコンテンツプロバイダ、ソーシャルメディアプロバイダなどに関連付けられたサーバ側ＡＰＩが装備され得る。いくつかの実施形態では、データセンター３１３内のサーバ３２０は、様々なタイプのアプリケーション（たとえば、ゲームアプリケーションまたはインタラクティブアプリケーション）を実行し、アプリケーションコンテンツ（たとえば、ゲームアプリケーションによって生成されたビデオフレーム）を対応するクライアントデバイス１００にストリーミングしてレンダリングさせるように構成され得る。
【００４４】
サーバ３２０は、ゲーム実行エンジン３１０．２によって生成または提供されてビデオフレームモジュール３１０．３によってフォーマットされたデータのフレームを受信し、符号化器３１０．４内で定義された任意数の圧縮技術を使用してデータの圧縮演算を実行し、通信及び／または伝送プロトコルのいずれか１つを使用して圧縮データをクライアントデバイス１００に送信するように構成され得る。サーバは、典型的には特定の機能、ゲーム、またはアプリケーションを実施または実行するために使用されるターミナルサーバ、コンソールサーバ、仮想サーバなどを含み得る。サーバによって実行される機能、ゲーム、またはアプリケーションの例の中には、データベース管理、ファイル管理、メールサービス、印刷サービス、ウェブサービス、ゲーム管理、アプリケーション管理、メディア管理、カタログサービス、ライブラリサービス、音楽サービス、通信管理、コンピューティングサービス、及びプロキシ管理が含まれ得るが、これらは一部の例である。いくつかの実施形態では、コンソールサーバなどのサーバ３２０は、ゲームを実行し、ストリーミングビデオフレームを１つまたは複数のクライアントデバイス１００に提供してレンダリングさせることによって、ゲームコンソールをエミュレートし得る。いくつかの実施形態では、複数のサーバ及び／またはストレージデバイスがラックマウント型サーバまたはストレージデバイスとして設けられ得、各データセンターはサーバ及び／またはストレージラックの列を含む。各サーバは、複数のアプリケーションを実行することが可能であり得、及び／または幅広いサービスを提供し得る。
【００４５】
クラウドゲームシステム３００上で実行されるゲームアプリケーションは、同じ場所に位置するかまたは異なる地理位置に位置するユーザからの、シングルユーザまたはマルチユーザのクラウドベースのゲームを円滑化することを理解されたい。リモートに位置するユーザ間のマルチユーザのクラウドベースのゲームの場合、クラウドゲームシステム３００は、ユーザによりネットワーク２００を介してアクセスすることが可能な１つまたは複数のデータセンター内の２つ以上のサーバ３２０（たとえば、アプリケーションまたはゲームサーバ）によりビデオゲームのインスタンスを実行可能にすることによって、そのようなゲームアプリケーションのゲームプレイを円滑化する。単一のインスタンス（シングルユーザゲームの場合）または異なるインスタンス（マルチユーザゲームの場合）からのゲーム状態がサーバ間で交換されて、そのようなマルチユーザゲームが可能になる。このように、ビデオゲームの実行は、いかなる１人のユーザのハードウェアにもネットワークの伝導性（conductivity）にも依存しないが、これはその所与のユーザのゲームプレイ体験に影響を与える。
【００４６】
本明細書に記載のクラウドゲームアーキテクチャを使用して実行される動作は、データベースへの迅速なアクセスと、ユーザのリモートに位置するクライアントデバイス１００へのゲームプレイコンテンツなどのコンテンツの提示とを可能にするために複数のサーバ及び／または実行プラットフォームを必要とする技術的動作を形成する。また、クラウドゲームは、クラウドゲームサーバによって任意数の圧縮技術を利用して実行される圧縮演算を含むことができる。圧縮技術は標準的な符号化器を使用し得、これにより、次いで、クライアントデバイス１００上の標準的な復号器がデータにアクセスし、復号することが可能になる。いくつかの実施形態では、特殊な符号化器及び復号器をそれぞれサーバ及びクライアントデバイスに実装して、特殊な符号化及び復号を可能にしてもよい。復号されたデータを、クライアントデバイスにおいてさらに処理して、画像、ビデオ及びオーディオデータを識別し得、次いでこれらをクライアントデバイス１００上の適切なデバイスコンポーネントを使用して提示することによって、ビデオゲームのゲームプレイが可能になる。
【００４７】
ビデオゲームの管理及び配信は、いくつかのデータセンター、ダイレクションサーバ(Direction Server:DS)、サービス品質テスターまたはエンジン、より低遅延のデータセンターへのダイレクション及びリダイレクションを含むことができる。ビデオゲームの管理及びゲーム関連データの配信は、ストリーミング用に設計され、ゲームのリモート実行による遅延が少ない専用サーバコンピュータを含む、任意数のデータセンターのサーバと、ストリーミングゲームまたはアプリケーションデータのクライアントデバイス１００への配信とを必要とすることを理解されたい。
【００４８】
クラウドゲームシステム３００にアクセスする要求がクライアントデバイス１００から受信された場合、アプリケーションホスティングシステム（たとえば、クラウドゲームシステム３００）のサーバ３２０上で実行されるサーバ側アプリケーション３１０は、ユーザアカウント認証器モジュール３１０．１とインタラクトして、ユーザ関連情報を取得する。ユーザアカウント認証器モジュール３１０．１は、複数のユーザのユーザプロフィール及び他のユーザアカウント情報が維持されるユーザアカウントデータベース３１２にユーザアカウント情報を照会し、そこから受信する。ユーザプロフィール及びユーザアカウント情報を使用して、クライアントデバイス１００からの要求に関連付けられたユーザを識別し、ユーザの要求を認証する。ユーザが認証されると、その要求は、サーバ側アプリケーション３１０によってサービス提供される。一実施形態では、サーバ側アプリケーション３１０は、購入されたアプリケーション、ユーザが見るまたはインタラクトすることを許可されたアプリケーション、無料で利用可能な全てのアプリケーションなどを含む、ユーザアカウントで利用可能な全てのアプリケーションを特定し得る。ユーザアカウントで利用可能なアプリケーションが特定され、リストで返されて、クライアントデバイス１００のディスプレイ上のユーザインターフェースに提示される。一実施形態では、リスト上のアプリケーションのいずれか１つのユーザ選択が、サーバ側アプリケーション３１０によって検出され、それに応答して、選択されたアプリケーションの下での様々なオプションが特定され、送信されて、ユーザインターフェース上に提示される。様々なアプリケーションと、各アプリケーションの下で利用可能な様々なオプションとについて、図３Ａ〜図３Ｃを参照してより詳細に論じる。
【００４９】
たとえば、ユーザインターフェースからゲームアプリケーションが選択された場合、サーバ３２０は、その選択に応答して、ユーザアカウントで利用可能なゲームタイトルのリストを特定し、リストを送信して、クライアントデバイス１００のユーザインターフェース上に提示させ得る。一実施形態では、サーバ側アプリケーション３１０の一部であり得るアプリケーション選択器モジュール３０４は、アプリケーションタイトルデータストア３１１とインタラクトして、ユーザアカウントで利用可能な様々なゲームタイトルを特定し得る。ゲームタイトルのリストはクライアントデバイスに転送されて、ユーザインターフェース上にレンダリングされる。加えて、サーバ側アプリケーションは、ゲームデータストア３１３に問い合わせて、行動メトリックが、ユーザアカウントに対して特定された各ゲームタイトルに利用可能であるか否かを判定し得る。ゲームタイトルのいずれかに利用可能な行動メトリックが存在する場合、そのような情報もゲームタイトルと共に含められて、クライアントデバイスに提供される。ユーザアカウントのユーザまたは他のユーザがそれぞれのゲームタイトルを以前にプレイした場合、ゲームタイトルに関する行動メトリックが利用可能であり得る。行動メトリックは、一実施形態では、以前のゲームプレイ中にユーザまたは他のユーザによって提供されたゲームプレイインタラクションに基づいてユーザ向けにカスタマイズされたゲームのコツ、たとえば、ゲームヒント、ゲームプレイのビデオクリップなどを提供する。他の実施形態では、クラウドゲームシステムによってホストされるゲームタイトルに関して、それらのゲームタイトルが登録されたゲームプレイを有さない場合であっても、行動メトリックが利用可能であり得る。この実施形態では、ゲームに関するゲームヒントは、ゲームのゲームロジック内で指定された期待されるユーザ入力を含み得る。
【００５０】
一実施形態では、クライアントデバイス１００上にレンダリングされたゲームタイトルのいずれか１つのユーザ選択は、クライアントデバイス１００からクラウドゲームシステム３００のサーバ３２０に送信される、ゲームタイトルの選択をサーバに通知する信号に基づいて検出される。ゲームタイトルのユーザ選択の受信に応答して、クラウドゲームシステム３００のサーバ３２０は、選択されたゲームタイトルのインスタンスを実行し得る。ゲーム実行エンジン３１０．２によって、選択されたゲームに関して定義されたゲームロジックを使用して、ゲーム関連データが生成される。ゲーム関連データは、ビデオフレームモジュール３１０．３によってフォーマットされ、符号化器３１０．４によって任意の標準的なまたは特別な圧縮技術を使用して圧縮される。符号化されたゲームデータは次いで、サーバ側アプリケーション３１０によって指定された通信プロトコルに従って、ネットワーク２００を介してクライアントデバイス１００にストリーミングされる。
【００５１】
いくつかの実施形態では、符号化器３１０．４は、サーバ側アプリケーション３１０の一部であり得る。サーバ側アプリケーションのアプリケーションプログラミングインターフェース（ＡＰＩ）を使用して、符号化されたビデオフレームをプライマリクライアントデバイス１００にストリーミングする。いくつかの実施形態では、サーバ側アプリケーション３１０の一部であるＡＰＩは、ビデオフレームを符号化し、符号化されたビデオフレームをクライアントデバイスに転送するための符号化ロジックを含み得る。他の実施形態では、ゲーム実行エンジン３１０．２において生成されたビデオフレームは、サーバ３２０のオペレーティングシステムによってキャプチャされ、処理される。いくつかの例では、オペレーティングシステムは、ビデオフレームを符号化し、ネットワーク状態を監視し、符号化されたビデオフレームがクライアントデバイス１００にストリーミングされる前に、ビデオフレームの品質を調整し得る。あるいは、オペレーティングシステムは、ビデオフレームを処理し、これをＨＤＭＩ（登録商標）ビデオ信号として転送し得る。クラウドゲームシステムの外部またはサーバ３２０の外部にある外部アプリケーションは、ＨＤＭＩ（登録商標）ビデオ信号をキャプチャし、外部の符号化器を使用してＨＤＭＩ（登録商標）ビデオ信号内にキャプチャされたビデオフレームを符号化し、ネットワーク状態を監視し、外部アプリケーション内で利用可能な１つまたは複数のＡＰＩを介してビデオフレームをクライアントデバイス１００に送信する前に、ビデオフレーム内の画像の解像度及び／または伝送レートを調整し得る。キャプチャ、ネットワーク状態の監視、ビデオフレームの符号化及び送信に使用される処理は、オーディオデータにも拡張され得ることに留意されたい。クライアントデバイス１００におけるユーザインタラクションは、サーバ３２０によって受信され、ゲーム実行エンジン３１０．２においてゲーム結果を調整するために使用される。
【００５２】
ユーザはゲームとインタラクトし得、そのようなユーザインタラクションは、サーバ側アプリケーション３１０に返される。一実施形態では、ゲームプレイ評価器３１０．１０は、ゲームプレイ中に生成されたインタラクション（バブル「ｄ」で表す）を受信し、インタラクションを処理して、クライアントデバイスにおいて提供されたインタラクションタイプを特定する。処理されたインタラクションはゲーム実行エンジン３１０．２に転送されて、ゲームの結果に影響を与える。ゲーム実行エンジン３１０．２は、ゲームデータ管理器とインタラクトして、ゲームのゲームプレイ中に提供されるインタラクションに基づいて、ゲーム状態、ゲームプレイ統計、及び他のゲーム関連、ユーザ関連情報を特定し、更新し得る。次に、更新されたインタラクションは、ゲームプレイデータストア１１３及び／またはユーザアカウントデータストア３１２に記憶される。たとえば、ユーザアカウントのゲームレベル、ゲーム状態、ゲームプレイ統計、ゲームプレイ中のソーシャルコミュニケーションなどのゲーム関連データが、ゲームプレイデータストア１１３に対して更新され得る。同様に、ユーザのスキルレベル、ランキング、人気などのユーザ関連データが、ユーザアカウントデータストア３１２に対して更新され得る。ゲーム実行エンジン３１０．２は、ユーザインタラクションに基づいてゲームに対するゲーム更新を生成し得、そのような更新はフォーマットされ、圧縮され、ネットワーク２００を介してクライアントデバイス１００にストリーミングされて、レンダリングされる。
【００５３】
ゲームのプレイが進行するにつれて、ユーザはゲームを完了することを選択する場合があり、またはゲームがあまり進行していないという不満から、ゲームプレイの途中でゲームをやめる場合がある。ユーザがゲームセッションを終了した場合、バブル「ａ」で表す方向矢印で示すように、ゲーム一時停止信号がクライアントデバイス１００によってゲーム実行エンジン３１０．２に直接送信され得る。他の実施形態では、バブル「ｂ」で表す方向矢印で示すように、一時停止信号がオプション選択検出器３１０．９に送信され得る。オプション選択検出器３１０．９は、一時停止信号を解釈し、バブル「ｃ」で表す方向矢印で示すように、一時停止管理器３１０．７に指示するか、またはコマンドもしくは信号を送信して、ゲームのゲームプレイを一時停止させ得る。一時停止管理器３１０．７は、一時停止コマンドの受信に応答して、ゲーム実行エンジン３１０．２に信号を送って、ゲームプレイを一時停止させ得る。他の実施形態では、一時停止オプションのユーザ選択は、バブル「ｄ」で表す方向矢印で示すように、ゲームプレイ評価器３１０．１０に転送され得る。一時停止コマンドまたは信号は、ゲーム識別子及び／またはクライアントデバイス識別子を含み得る。ゲームプレイ評価器３１０．１０は、オプションのユーザ選択の受信に応答して、バブル「ｅ」で表す方向矢印で示すように、ゲーム実行エンジン３１０．２に信号またはコマンドを送信して、ゲームのゲームプレイを一時停止させ得る。
【００５４】
どのモジュールが一時停止信号の提供に使用されているかに関係なく、ゲーム実行エンジン３１０．２は、一時停止信号に応答して、ゲームデータ管理器３１０．６とインタラクトして、一時停止信号がサーバ３２０において受信された時点でのゲームのゲーム状態を特定する。ゲーム実行エンジン３１０．２は、一時停止信号が受信された時点でのゲーム状態を分析し、ゲームプレイが再開され得る再開ポイントを特定するように構成される。ゲームのゲーム状態及び再開ポイントは、ユーザアカウントについてゲームプレイデータストア３１３を更新するために、ゲームデータ管理器３１０．６に提供され得る。ゲームデータ管理器３１０．６によって更新されるゲームデータは、一時停止要求が受信された時点までのゲームプレイ中のゲームの進行を含む。このゲームデータを使用して、以降のゲームプレイセッション中にゲームプレイが再開されたときに、ゲームのゲームプレイを再生成し得る。さらに、ゲームプレイの一時停止の一部として、ゲーム実行エンジン３１０．２は、クライアントデバイスへのゲームのストリーミングビデオフレームを中断する。
【００５５】
ゲームは、シングルユーザゲームでもマルチユーザゲームでもよい。ゲームがマルチユーザゲームである場合、ユーザはゲームプレイセッション中に１人または複数人の他のユーザと一緒にゲームをプレイしている場合がある。そのような場合、あるユーザが一時停止してゲームプレイセッションを終了すると、他の各ユーザのゲームプレイが一時停止され得、各ユーザのゲーム状態がゲームプレイデータストア３１３のゲームデータ内に記憶される。マルチユーザゲームをプレイしていたユーザのうちの誰かによって、対応するクライアントデバイスのユーザインターフェースにおいて再開オプションを選択することにより、ゲームプレイが再開され得る。
【００５６】
他の実施形態では、マルチユーザゲームの１人のユーザがゲームプレイセッションを終了した場合、他のユーザのゲームプレイは続行し得る。そのような実施形態では、マルチユーザゲームのそれぞれのゲームプレイは、ゲームプレイデータストア３１３にセーブされる。ゲームプレイを続行した他の各ユーザのゲームプレイは、ユーザアカウントに関連付けられたゲームに関する行動メトリックを特定する際に使用される。行動メトリックを使用して、ユーザアカウントに対する、ゲームの以降のゲームプレイセッションのためのヒント及び他の詳細をユーザインターフェースに提供する。
【００５７】
一実施形態では、ユーザはゲームプレイのためにゲームを選択し得、そのユーザ選択はゲームを最初から開始するためのものである。ゲームは以前に一時停止されている場合がある。しかしながら、ゲームのゲームプレイを最初から開始するためのユーザ選択により、ゲーム実行エンジンは、サーバ上でゲームのインスタンスを実行して、ゲームをゲームプレイ可能にする。
【００５８】
他の実施形態では、ユーザは、以前のゲームプレイセッション中に以前に一時停止されたゲームを再開することを選択し得る。再開要求は、ユーザインターフェースにおいて提供される再開オプションをユーザが選択することによって、開始され得る。再開オプションのユーザの選択は、クライアントデバイスからサーバ３２０上のオプション選択検出器３１０．９に送信される。オプション選択検出器３１０．９は、要求が有効なオプションであることを検証し、検証された後、再開オプション信号を再開管理器３１０．８に転送することによって、ユーザの選択を処理する。再開管理器３１０．８は、ゲーム実行エンジン３１０．２とインタラクトして、再開要求が以前のゲームプレイセッション中にユーザによって一時停止されたゲームに関するものであることを検証し、ゲームのゲーム状態を特定することによって、要求を処理する。
【００５９】
ゲーム実行エンジン３１０．２は、ゲームデータ管理器３１０．６に問い合わせて、ゲームのゲーム状態、ゲームプレイを再開するゲーム内の再開ポイント、ユーザの以前のゲームプレイからのゲームプレイ統計、及びユーザにゲームの詳細を提供するための他のデータを取得し得る。次に、再開管理器３１０．８は、ゲーム実行エンジン３１０．２に、再開ポイントまでのゲームのゲームプレイを再生成し、再開ポイントからゲームのゲームプレイを再開するよう指示し得る。一実施形態では、再開ポイントは、ゲームプレイが一時停止された場所の数ビデオフレーム前にあるゲーム内のポイントを特定し得る。
【００６０】
ゲーム実行エンジンは、ゲームデータ管理器３１０．６から取得されたデータを使用して、ゲーム内の勝ち、負け、克服したゲームレベル、残ったゲームオプション、ゲーム内チャット、メッセージなど、以前のゲームプレイ中に生成されたゲーム外のソーシャルコミュニケーション、ゲームステータスなどを含めて、再開ポイントまでのゲームを再生成することによって、ユーザが中断した時点までのゲームのステータスを提示するようにし得る。一実施形態では、ゲームの再生成（すなわち、ローディング）中または現在のゲームプレイ中に、ゲーム実行エンジン３１０．２は、ユーザ向けにゲームの特定の部分について生成された行動メトリックを表示するオプションをユーザに提供し得る。
【００６１】
ゲームがロードされ、ゲームプレイが再開されると、再開されたゲームプレイから生成されたビデオフレームは、符号化器ロジック３１０．４を使用して、クライアントデバイス１００用に定義された通信プロトコルに従って圧縮され、ネットワーク２００を介してクライアントデバイスにストリーミングされる。現在のゲームプレイにおけるユーザインタラクションは、ゲームプレイ評価器３１０．１０、オプション選択検出器３１０．９によって受信及び処理され、ゲームの現在のゲーム状態を更新するための適切な信号がゲーム実行エンジン３１０．２に送信される。
【００６２】
ゲーム実行エンジン３１０．２は、現在のゲームプレイ中に提供されるユーザのインタラクションを含むゲームのゲームデータを分析して、ユーザの現在のゲーム行動、そのゲームまたは他のゲームの以前のゲームプレイから特定される過去のゲーム行動を特定し、ゲームの現在のゲーム状態に基づいてユーザの適切な行動メトリックを提供する。分析の一部として、ゲーム実行エンジン３１０．２は、ゲームをプレイした他のユーザのゲーム行動を分析し、他のユーザのうちの選択されたユーザの適切な行動メトリックを特定し、他のユーザの行動メトリックを含めて、ユーザのユーザインターフェースに提示し得る。現在のゲーム状態は、ユーザが現在プレイしているゲームの部分を特定する。ゲーム内のユーザインタラクションは、ゲームのゲーム状態を更新するために使用される。
【００６３】
ゲーム状態が変化すると、ユーザインターフェース内に提供される行動メトリックが動的に更新される。ユーザがゲームを進行し、ゲームの異なる部分とインタラクトし続けるにつれて、ゲーム状態が動的に更新されていく。ゲーム状態が変化すると、ユーザインターフェースに提示される行動メトリックが動的に更新されるので、ユーザが現在インタラクトしているゲームの部分に関連する適切なヒント及び他の詳細がユーザインターフェース内に提供される。ユーザがゲームのその部分のユーザのゲームプレイを改善するのを支援するためのヒントがユーザインターフェース上に提供される。これらのヒントは個人化され、その部分に基づいてユーザに合わせて調整され、ゲームのその部分でのユーザのゲーム行動に基づいている。たとえば、ゲーム実行エンジンは、機械学習ロジックを使用して、ユーザの現在のゲームインタラクションと、ゲームの以前のゲームプレイ中に提供された過去のインタラクションとを分析して、ゲームのその部分のゲームプレイ中にキャプチャされたユーザのゲーム行動を特定する。分析に基づいて、ゲーム実行エンジン３１０．２は、ユーザがゲームのその部分において遭遇した特定の課題を克服することが困難であると判定し得る。次いで、ゲーム実行エンジンは、協調フィルタリングを利用して、他のプレイヤーのゲームプレイのうちの特定のもの（ユーザの行動メトリックをそこから生成すべきである）を特定し得る。
【００６４】
行動メトリックは、ゲームのゲームプレイにおいてユーザを支援するためのゲームヒント及び他の詳細を含む。ヒントは、テキスト形式、オーディオ形式、ビジュアル形式、ビデオ形式、グラフィカルユーザインターフェース形式などで提供され得、場合によっては、行うべきゲームの動き、押すべきボタンの順序などを含み得る。また、ヒントのビデオ形式は、他のユーザのゲームプレイのビデオクリップを含み得る。ユーザインターフェースは、行動メトリックにアクセスするオプションによって更新される。
【００６５】
一実施形態では、ゲームプレイを再開するためのゲームのロード中に、オプションのいずれかへのユーザインタラクションが検出され、クライアントデバイス１００からオプション選択検出器３１０．９に信号が送信されて処理される。オプション選択検出器３１０．９は、ユーザによって選択されたオプションの有効性を確認し、選択されたオプションを処理するための適切な信号またはコマンドをゲーム実行エンジンに送信する。ゲーム実行エンジンは、選択されたオプションを識別し、ユーザ向けのゲームに利用可能な適切な行動メトリックデータを特定し得る。適切な行動メトリックを特定するために、ゲーム実行エンジンは、ゲームの現在のゲーム状態を特定し得、これにより、ユーザがゲームプレイ中に現在進んでいるゲームの部分が特定され、ユーザのゲーム行動（現在及び過去両方のゲーム行動）が特定され、ゲーム行動に基づいてゲームのその部分に適切な行動メトリックが特定される。特定された行動メトリックは、クライアントデバイス１００のユーザインターフェースにおいて更新される。
【００６６】
他の実施形態では、ゲーム実行エンジンは、現在のゲームプレイのためにゲームがロードされている間に、以前のゲームプレイに関連する行動メトリックの詳細のうちの選択されたものをユーザインターフェースに自動的に提示し得る。たとえば、ゲーム実行エンジン３１０．２は、現在のゲームプレイのためにゲームがロードされている間に、ユーザの以前のゲームプレイのゲーム統計を提供し得る。他の例では、ゲームの現在のゲーム状態がユーザインターフェース内に提供され得る。ゲーム状態と共に含まれるのは、以前のゲームプレイの最後のビデオフレームの画像またはビデオクリップであり得る。ユーザに現在のゲームプレイの準備をさせるために、ユーザが中断した場所と、ユーザによってゲームのその部分に対して提供されたインタラクションのタイプとを視覚的に示すために、画像またはビデオクリップが提供され得る。
【００６７】
ゲーム実行エンジン内のゲームロジックは、機械学習ロジックを用いて、ユーザの以前のゲームプレイを評価することによって、ユーザのゲーム行動を特定し得る。評価に基づいて、ユーザがゲームの特定の部分における課題の克服を繰り返し試みており、毎回失敗しているか、または特定の部分に対して指定された完了メトリックを達成していないと判定され得る。そのような機械学習に基づいて、ゲーム実行エンジンは、現在のゲームプレイに関するヒントを特定し得る。ヒントはゲームのゲームロジック内で指定されたゲーム入力から提供されて、ユーザがゲームの特定の部分の自分のゲームプレイを改善するのに役立ち得る。一実施形態では、ゲーム実行エンジンは、機械学習ロジックから以前のゲームプレイについて取得された情報を使用し、協調フィルタリングを使用することによって、ゲームをプレイしており、現在のユーザが試行に失敗しているゲームの部分について、完了に成功したか、または完了メトリックもしくは一連のイベント、アクション、レベル、動き、またはそれらの組み合わせの達成に成功した１人または複数人の他のユーザのゲームプレイを特定し得る。次に、ゲーム実行エンジン３１０．２は、他のユーザのうちの特定のユーザのゲームプレイを選択し、ゲームのその部分のビデオクリップを抽出し、抽出されたビデオクリップをユーザに提示して、他のユーザ／プレイヤーがどのようにしてゲームのその部分の完了メトリックの提供に成功することができたかをユーザに視覚的に示し得る。一実施形態では、他のユーザのうちの特定のユーザは、そのユーザのスキルレベルに基づいて選択される。他の実施形態では、他のユーザのうちの特定のユーザは、ゲームのその部分について提供されたユーザインタラクションの類似性に基づいて選択される。たとえば、ユーザが特定のゲームの動きを使用してその部分におけるいくつかの課題を完了しており、他の課題を完了するのに苦労している場合、他のユーザのうちの特定の他のユーザは、そのユーザが完了したのと同じ課題を克服する際に、その他のユーザによって提供されたゲームの動きの類似性に基づいて選択される。このゲームの動きの照合により、ユーザは自分のスキルレベルを維持することができ、新たな動きを学ぶ必要がなく、他のユーザのうちの特定のユーザによって提供されたゲームの動きを使用して、他の課題を完了することができる。他の実施形態では、他のユーザのうちの特定のユーザは、ユーザのユーザプロフィールの少なくとも一部を他のユーザのユーザプロフィールの対応する部分と照合することにより選択される。
【００６８】
一実施形態では、ゲーム実行エンジン３１０．２は、ゲームプレイを再開するためにゲームがロードされている間に、他のユーザのうちの選択されたユーザのゲームプレイのビデオクリップを提供し得る。他の実施形態では、ゲーム実行エンジンは、現在のゲームプレイのためのサーバ３２０でのゲームのロード中に、テキストヒントを提供してクライアントデバイス１００にレンダリングし得、ユーザが現在のゲームプレイ中にゲームのその部分をプレイしているときに、他のユーザのうちの選択されたユーザからのビデオクリップを提供し得、それによってユーザは、他のユーザのゲームの動き、もしくはボタンの押下、またはゲーム入力を見て真似ることができる。一実施形態では、ユーザがゲームを進行し、行動メトリックが利用可能なゲームの特定の部分に接近すると、ゲーム実行エンジンは、現在のゲームプレイ中のユーザのインタラクションのリアルタイム分析を実行して、ユーザの特定の部分への接近を検出し、それに応答して、ユーザインターフェースを動的に更新して、ゲームの特定の部分に固有の、ユーザが利用可能な行動メトリックを提供し得る。さらに、ゲーム実行エンジンは、視覚的手掛かり（ハイライト、アニメーションマークアップなど）を提供するための信号を提供して、ゲームの特定の部分に対して行動メトリックのうちの特定の行動メトリックが表示可能または参照可能であることをユーザに通知し得る。ユーザが特定の部分を完了し、ゲームの他の部分に接近すると、ユーザインターフェースは、ゲームの新たな部分に適した行動メトリックによって更新される。ユーザが行動メトリックのうちのいずれかを選択すると、関連する詳細が提供され得、そのような詳細は、ユーザの以前のゲームプレイから取得され得（たとえば、ゲームステータス、ゲーム状態、ゲームヒント、ゲームクリップなど）、もしくは他のユーザの以前のゲームプレイから取得され得（たとえば、ゲームヒント、ビデオクリップなど）、またはゲームロジックから取得され得る（たとえば、ボタン押下など）。
【００６９】
図２Ｂに、一実施形態における、一時停止されたゲームの現在のゲームプレイ中に、以前のゲームプレイの詳細をユーザに提供するために使用されるゲームプレイ評価器３１０．１０内の様々なモジュールを示す。ゲームプレイ評価器３１０．１０は、クライアントデバイス１００においてユーザによって提供されたインタラクションを評価し、ユーザに提示するための適切な行動メトリックを特定するために使用される複数の論理モジュールを含む。ゲームプレイ評価器３１０．１０に含まれる論理モジュールの例示的なセットは、ゲームプレイモデル構築器３１０．１０ａ、ビデオクリップ抽出器３１０．１０ｂ、ゲームヒント提供器３１０．１０ｃ、及びゲームプレイ調整器３１０．１０ｄを含む。ゲームプレイ評価器３１０．１０は、上述の論理モジュールに限定されず、追加のまたはより少ない論理モジュールを含むことができる。
【００７０】
前述のように、以前のゲームプレイの詳細は、ゲーム状態、ゲームプレイのビデオクリップ、ゲームの一部分の完了メトリックを取得するためのヒントを含む。詳細は、１つまたは複数のゲームモデルを構築し、ゲームモデル内に提供されるデータを分析することによって取得される。一実施形態では、ゲームプレイ評価器３１０．１０は、ゲームプレイモデル構築器３１０．１０ａを用いて、ゲームモデルを構築し得る。ゲームプレイモデル構築器３１０．１０ａは、機械学習ロジックを使用して、以前のゲームプレイ中のユーザのインタラクションを分析することによって、ユーザのゲーム行動を特定し、ユーザが課題を完了するのに苦労していた以前のゲームプレイの１つまたは複数の部分を特定する。一実施形態では、機械学習は教師あり機械学習である。教師あり機械学習では、ゲームロジックに関連する機械学習ロジックは、特定の所望の結果を達成するためにゲームの一部分について提供される必要がある入力を特定する。他の実施形態では、機械学習は教師なし機械学習であり得、データ内の隠れ構造を説明するための関数が推測される。
【００７１】
次に、機械学習ロジックは、その部分についてユーザによって提供されたインタラクションを分析して、ユーザによって提供されたゲーム入力が、ゲームロジックによって期待されるものに相当するか否かを判定し（すなわち、完了メトリック）、相当しない場合、それらの結果を達成するためにはどのような変更がなされる必要があるかを特定する。次に、ゲームプレイ評価器３１０．１０は、機械学習と共に協調フィルタリングを用いて、結果または完了メトリックの達成に成功したか、ゲームのその部分に期待される一連のイベント、アクション、動き、またはそれらの組み合わせの提供に成功した様々なユーザを識別し、様々なユーザのゲームプレイのうちの選択されたものからゲームのその部分のビデオクリップを抽出して、現在のゲームプレイのユーザに提示し得る。協調フィルタリングでは、ゲームプレイ評価器３１０．１０は、機械学習ロジックからの分析を使用して、ゲームをプレイした他のユーザのうちの誰が、ゲームのその部分の完了に成功するインタラクションを提供したかを特定する。
【００７２】
ゲームプレイモデル構築器３１０．１０ａは、ゲームロジックによって指定されたゲーム入力と、ユーザのゲーム行動（ゲームの現在のゲームプレイ及び以前のゲームプレイ（複数可）中にユーザによって提供されたユーザインタラクションを含む）と、ゲームをプレイした複数の他のユーザのユーザインタラクションとを使用して、ゲームの１つまたは複数のゲームプレイモデルを構築する。一実施形態では、ゲームプレイモデルは、以前のゲームプレイからのユーザ及び他のユーザのゲーム行動を使用して構築され得る。次いで、モデルは、ユーザの現在のゲームプレイからのインタラクションによって更新される。次いで、ゲームプレイモデル構築器３１０．１０ａは、モデル（複数可）を分析して、ゲームのステップ、レベル、または部分ごとのゲームの入力を特定し、ユーザ、他のユーザによって提供された入力を検討して、他のユーザと比較した、ユーザによって提供されたインタラクションのずれを判定する。分析からの結果を使用して、ゲームプレイ評価器３１０．１０は、ユーザがゲームのどの部分（複数可）において優れていたか、ユーザがゲームのどの部分（複数可）に苦労していたかなどを特定し得る。次に、ゲームプレイ評価器３１０．１０は、ユーザが完了するのに苦労しているゲームの部分について、完了に成功した、もしくは完了メトリックの達成に成功した、または一連のイベント、アクション、レベル、動きなどの提供に成功した他のユーザのうちの特定のユーザを識別する。前述のように、特定の他のユーザは、プレイヤーのスキルレベル、もしくはゲームのその部分を進んでいる間に提供されるゲーム入力の類似性に基づいて、またはユーザプロフィールに基づいて識別され得る。ゲームプレイモデル構築器３１０．１０ａによって構築されたモデル（複数可）は、新たなユーザがゲームをプレイするのを支援するために使用され得ることに留意されたい。
【００７３】
特定の他のユーザが識別されると、ビデオクリップ抽出器３１０．１０ｂは、ゲームプレイ評価器３１０．１０によって用いられて、ゲームのその部分についてのゲームプレイのビデオクリップが抽出され得る。ビデオクリップ抽出器３１０．１０ｂは、ゲームプレイのビデオ録画を分析して、ゲームのその部分に対応するゲームプレイのビデオフレームを特定し、特定されたビデオフレームを抽出し得る。抽出されたビデオフレームを、符号化器を使用してバンドルし、ゲームのその部分について行動メトリックの１つとしてユーザインターフェースに提供して、ユーザインターフェースにレンダリングすることによって、ゲームのその部分のゲームプレイ中にユーザを支援するようにする。
【００７４】
ビデオクリップ抽出器３１０．１０ｂは、ゲームの異なる部分に対して１つまたは複数のビデオクリップを生成し得ることに留意されたい。ビデオクリップが生成されると、生成されたビデオクリップはゲームアイコンに関連付けられ、ユーザインターフェースはユーザ向けにゲームの対応する部分について更新され、ユーザがゲームにアクセスするときはいつでも、ユーザはそれにアクセスできるようになる。各ユーザのゲーム行動は厳密に同じではない場合があるので、行動メトリックがゲーム行動に基づいて生成される場合、行動メトリックはユーザによって異なり得る。結果として、行動メトリックは、ユーザ及びゲームの特定の部分に対して専用にカスタマイズされる。ユーザに提供される行動メトリックは、ゲームのロード中またはゲームプレイ中にアクセスされ得、それによってユーザは、かなり簡単にかつなじみやすくゲームの任意の部分を進むのを支援されるので、新たなユーザのゲームプレイ体験が大幅に改善される。
【００７５】
一実施形態では、ユーザインターフェース内に提供されたオプションへのユーザインタラクションを検出すると、一部分について生成されたビデオクリップがレンダリングされ得る。他の実施形態では、ユーザがゲームのその部分について完了に成功するかまたは完了メトリックの達成に成功することが困難であることを検出したことに応答して、ユーザインターフェース上のビデオクリップのレンダリングが、ゲームのゲームロジックによって自動的に発動され得る。ユーザは、初めてゲームをプレイする新たなユーザでも、ゲームプレイのためにゲームを再開するリピートユーザでもよい。ユーザがゲームのその部分での試行に失敗したため、または他の理由により、以前のゲームプレイ中にゲームが一時停止されている場合がある。ユーザが一時停止されたゲームプレイを再開し、ゲームの残りの部分を初めてプレイしようとする場合であっても、ビデオクリップ及び他のゲームヒントをゲームプレイの推奨としてユーザに提供して、ユーザがゲームのそれぞれの部分の進むのに成功することを支援し得る。抽出されたビデオクリップは、ゲームプレイデータストア３１３に記憶され、必要に応じて手掛かりを他のユーザに提供するために使用される。
【００７６】
ゲームヒント提供器３１０．１０ｃは、ビデオクリップ抽出器３１０．１０ｂと機能的に類似しているのは、ゲームヒント提供器３１０．１０ｃが、ゲームプレイモデル構築器３１０．１０ａによって構築されたモデル（複数可）を分析して、ゲームロジックからのゲーム入力、または使用すべき他のユーザのゲームプレイのうちの特定の１つを特定することによって、ユーザが現在試行しているゲームの部分の完了メトリックを提供するためのヒントを、ゲームをプレイしている現在のユーザに提供するという点である。ゲームロジックによって指定されたゲーム入力は、ゲームのその部分に対して提供される必要がある一連の動き、もしくはボタン押下、またはデータ入力を特定する。これらの入力及び他のユーザのインタラクションを使用して、様々な形式（テキスト、オーディオ、ビデオ、グラフィカルユーザインターフェース（ＧＵＩ）など）のヒントを提供し得る。ビデオクリップ及びゲームヒントは、ユーザに合わせて調整されており、ユーザのスキルレベルまたはユーザの設定に基づき得る。ユーザインターフェースは、ゲームプレイのレンダリング中の適切なときに視覚的手掛かりを提供するように更新され得る。ユーザ向けにユーザインターフェースに提供される様々な行動メトリックの数、タイプ、及び順序は、１つのゲームによって異なり、異なるゲームによって異なり得ることに留意されたい。たとえば、３つの異なるタイプの行動メトリックが特定され、ゲーム１の部分１に関連付けられ得、５つの異なるタイプの行動メトリックが特定され、ゲーム１の部分２に関連付けられ得、２つの異なるタイプの行動メトリックが特定され、ゲーム１の部分３に関連付けられ得、などとされる。ゲームの部分ごとに、及び／またはゲームごとに利用可能な行動メトリックの数及び順序は、インタラクションのタイプ、ユーザのゲームプレイ中に検出されたユーザのゲーム行動、及び／またはプレイされているゲームのタイプに応じて異なり得る。
【００７７】
また、ゲームプレイ調整器３１０．１０ｄは、ゲームプレイモデル構築器３１０．１０ａによって構築されたゲームモデル（複数可）を使用して、ゲーム行動を分析することによって、現在のユーザがどのようにしてゲームプレイ中にフェアリング（ｆａｉｒｉｎｇ）しているかを特定する。ゲームプレイ調整器３１０．１０ｄは、一実施形態では、機械学習ロジックを使用して、以前のゲームプレイ（複数可）中のユーザのゲーム行動を分析することによって、そのゲームに関するユーザのゲームプレイスキルを判定し得る。他の実施形態では、ゲームプレイ調整器３１０．１０ｄは、そのゲームに関するユーザのゲームプレイスキルを判定するために、以前のゲームプレイからのユーザのゲーム行動だけでなく現在のゲームプレイも分析し得る。分析によって、ユーザが特定の課題を達成するのに苦労していると判定された場合、ゲームプレイ調整器３１０．１０ｄは、ゲーム実行エンジン３１０．２に信号を送信して、ユーザがゲームをカスタマイズできるようにするオプションによってユーザインターフェースを更新し得る。カスタマイズは、ゲームの速度、レベル、または難易度の調整を含み得る。他の実施形態では、ゲームプレイ調整器３１０．１０ｄは、ゲーム実行エンジン３１０．２に信号を送信して、ゲームの速度、レベル、または難易度を動的に調整することによって、ユーザがゲームのより挑戦的でないバージョンをプレイできるようにし得る。
【００７８】
図３Ａに、クライアントデバイス１００においてレンダリングするためにゲーム実行エンジン３１０．２によって提供される例示的なユーザインターフェースを示す。ユーザがユーザインターフェースから選択できる様々なアプリケーションまたはサービスは、ユーザのユーザアカウントで利用可能なものに依存する。図３Ａに示す一実施形態では、ユーザアカウントで利用可能なアプリケーションは、ゲームアプリケーション、テレビ及びビデオアプリケーション、インターネットアプリケーション、音楽アプリケーション、写真アプリケーション、ならびにライブラリサービスを含む。当然ながら、上述のアプリケーションのリストは一例として提供しており、ユーザアカウントはより少ないまたはさらなるアプリケーションにアクセスすることができてもよい。各アプリケーションまたはサービスは、複数のオプションを含む。図３Ａにそのような一例を示しており、テレビ＆ビデオアプリケーションを選択すると、テレビ＆ビデオアプリケーションの下の様々なオプション（ストリーミングサービス１、ストリーミングサービス２、ストリーミングサービス３、．．．ケーブルテレビチャンネル、地上波テレビチャンネルなど）が、ユーザ選択のためにユーザインターフェース上にレンダリングされる。これらのアプリケーションのいくつかは、符号化されてからクライアントデバイスにストリーミングされてレンダリングされるストリーミングコンテンツを生成し得る。
【００７９】
図３Ｂに、図３Ａに示すユーザアカウントで利用可能なアプリケーションからゲームアプリケーションが選択された他の例示的なユーザインターフェースを示す。ゲームアプリケーションは、ユーザが見る及び／またはインタラクトすることが可能な複数のゲーム（ゲーム１、ゲーム２、ゲーム３、．．．ゲームｘ１、ゲームｘ２）を含む。これらのゲームは、符号化されてからクライアントデバイスにストリーミングされてレンダリングされるストリーミングビデオフレームを生成する。
【００８０】
図３Ｃにユーザインターフェースの他の例を示しており、特定のゲームが選択されると、特定のゲームに利用可能な行動メトリックがユーザインターフェースに、コンテンツのそばにレンダリングされ、または選択されたゲームのコンテンツ（すなわち、ゲームシーン）もレンダリングする表示画面の一部分にレンダリングされる。利用可能な行動メトリックは、ゲームごとにユーザごとに異なり得る。図３Ｃ（１）に、ゲーム１のゲームプレイを再開するオプションを提供する、ゲーム１について更新されたユーザインターフェースを示す。ユーザが「再開」オプションを選択する場合、ゲームに関する行動メトリックが、ゲームの代表的なゲームアイコンがレンダリングされている部分の内側またはそばに提示される。図３Ｃ（２）に、ゲームアイコン及びゲームシーンがレンダリングされるディスプレイの部分の外側にレンダリングされる、ゲームに関する利用可能な行動メトリックオプションを示す。図３Ｃ（２）に示す実施形態では、図３Ｃ（１）の「再開」オプションは、ディスプレイのその部分の中で「プレイ」アイコンオプションに置き換えられている。
【００８１】
図４Ａに、一実施形態における、ユーザインターフェースにおいて選択された特定のゲームについての、ゲームプレイ中に生成されるゲームデータのフローを示す。クライアントデバイスにおいて提供されるユーザインターフェースは、ユーザのユーザアカウントで利用可能な複数のゲームを含む。各ゲームはユーザインターフェース上で、代表的なゲームアイコンによって表される。ユーザアカウント向けのゲームに利用可能な行動メトリックも、ゲームアイコンのそばに提供される。行動メトリックは、ゲームヒント、ゲームをプレイした１人または複数人のユーザから選択されたゲームクリップ、ゲーム状態、及び他のゲーム関連データを含み得る。
【００８２】
図４Ａに示すように、ユーザＡはゲームプレイのためにゲーム１（Ｇ１）を選択する（４１０）。選択信号は、バブル「Ａ１」で示すように、サーバ側ゲームアプリケーション３１０が実行されるゲームサーバ３２０などのサーバに送信される。ゲームが実行されると、ユーザＡに対してゲームプレイ中にゲームシーン及びゲームデータがサーバにおいて生成される（４２０）。生成されたゲームデータは、レンダリング及びユーザインタラクションのためにクライアントデバイスに返される。ユーザＡによって生成されたユーザインタラクションは、サーバ３２０に送信されて、ゲームＧ１のゲーム状態に影響を与える。ゲームのゲームプレイ中またはゲームのゲームプレイ後に、ユーザＡのゲームデータが処理されて、ユーザＡのゲーム行動が特定される（４３０）。
【００８３】
ゲーム実行エンジンは、ゲームデータを処理して、ユーザによって提供されたゲームインタラクションを識別し、それをゲームＧ１のゲームロジックによって定義されるゲーム入力と比較して、ユーザのゲーム行動を特定するなどする。ゲームＧ１に関するユーザＡのゲーム行動を使用して、ゲームＧ１に関するユーザＡの行動メトリックを特定する。行動メトリックは、ユーザが自分のゲームスキルを向上させるのを支援するためにユーザＡに提供することができる有用なゲームヒントまたはゲームビデオクリップを特定し得る。ゲームヒントは、ゲームでのユーザＡのゲーム行動に基づいて生成され、ゲームの各部分に合わせて調整される。特定された行動メトリックは、バブル「Ｂ１」で示すように、ユーザインターフェースでのゲームＧ１のゲームアイコンに関連付けられる。各ゲームについてユーザインターフェースに提示される行動メトリックはユーザによって異なり、その理由は、行動メトリックが、それぞれのユーザのゲーム行動に基づいて特定されるためである。さらに、ゲームに関してプレイヤーに提供される行動メトリックは、ゲームの異なる部分に対して動的に調整されて、ユーザがゲームのそれぞれの部分をプレイすると、各部分に適切なゲームヒントが提示されるようになる。
【００８４】
図４Ｂに、他の実施形態による、ユーザインターフェース上に行動メトリックを提供するための、ゲームに関して生成されるゲームデータのフローを示す。この実施形態では、ユーザＡによって現在のゲームプレイのために選択されたゲームの以前のゲームプレイ（複数可）からのデータが特定され、取得され、機械学習ロジックに入力データとして提供されて（４５０）、分析される。以前のゲームプレイ（複数可）からのデータは、ゲームのゲームプレイの１つまたは複数の以前のゲームセッション中にユーザＡによって提供されたユーザインタラクションを含む。ゲームに関するユーザの以前のゲームプレイデータは、メタデータとしてゲームプレイデータストア３１３に記憶され得、ゲームのゲームプレイ中に提供されるゲーム内及びゲーム外のインタラクションを含む。ゲームプレイデータは、ゲーム実行エンジン３１０．２によって、ゲームデータ管理器３１０．６に問い合わせることにより取得される。
【００８５】
ゲームプレイデータは、機械学習ロジックにより分析されて（４５５）、ユーザＡのゲームのモデル４６０が生成される。モデルは、ゲームの各ステップ、各課題、各部分、各レベルにおいてユーザＡにより提供されたインタラクションを使用して、ゲームのゲームプレイ中にキャプチャされたユーザＡのゲーム行動を理解する。モデルから取得されたユーザＡのゲーム行動の理解に基づいて、機械学習ロジックは、ゲーム内のユーザＡのスキル、及びゲーム内のＡの強み及び弱みを推測する。ユーザＡの強みは、ユーザＡが課題を完了する速さと、ゲームの一部分において提供される課題を克服するためにユーザＡが提供したリソース、入力とを特定することによって推測され得る。ゲームリソースをほとんど消費せずにゲームの一部分の課題をより速く完了することは、ユーザＡがその部分の完了メトリックを提供するためのスキルがより優れていることを示し得、多くのゲームリソースを消費するより遅いまたは繰り返し失敗した試行は、ユーザＡがゲームのその部分で課された課題を克服するためのスキルが基準以下であることを示し得る。
【００８６】
ゲーム行動の理解に基づいて、ゲーム実行エンジンは、機械学習ロジックと協力して、ユーザＡに固有の、ゲームの異なる部分についての行動メトリックを生成し得る（４７０）。ユーザＡがゲームの特定の部分の課題を克服できた例では、行動メトリックは、課題を完了したユーザＡのゲームプレイのゲームクリップを含み得る。ユーザＡがゲームの一部分の課題を繰り返し試行した後に克服できない他の例では、行動メトリックは、ゲームのその部分についてゲームロジックによって指定されたゲーム入力をゲームヒントとして含み得る。
【００８７】
いくつかの実施形態では、ゲーム実行エンジンは、ユーザについて生成されたゲームモデルを、第三者ユーザによってゲームプレイにおいて提供されたインタラクションを含むように更新し得る（４９０）。一実施形態では、これはオプションのステップである（破線のボックスで示す）。他の実施形態では、第三者ユーザによるゲームプレイからのインタラクションは、ゲームに関してユーザＡに対して生成されたゲームモデルに含まれ得る。第三者ユーザのゲームプレイからのインタラクションをモデルに含める場合、機械学習ロジックは、第三者ユーザによって提供されたゲームインタラクションを分析して、ゲームの異なる部分について、完了に成功した、または完了メトリック、一連のイベント、アクション、レベル、動き、またはそれらの組み合わせの達成に成功したユーザのうちの特定のユーザを特定する。第三者ユーザのうちの特定のユーザのゲームプレイを使用して、ユーザＡ向けのゲームの対応する部分についての行動メトリックを生成する。協調フィルタリングロジックを使用して、ゲームをプレイした第三者ユーザを特定し、ゲームの各部分の課題について、完了に成功した、または完了メトリック、一連のイベント、アクション、レベル、動きなどの達成に成功した第三者ユーザのうちの特定のユーザを特定し得る。特定された第三者ユーザのゲームプレイを使用して、ゲームに関してユーザＡに提示される行動メトリックの一部として、ビデオクリップ及び他のゲームヒントを生成する。行動メトリックは、（バブル「Ｃ１」で示すように）ユーザインターフェース上のゲームのゲームアイコンに関連付けられる。一実施形態では、異なるタイプの行動メトリックのそれぞれは、別個のインジケータを使用してユーザインターフェース上に表現される。行動メトリックのいずれかへのユーザインタラクションにより、ユーザ向けのヒント、ビデオクリップ、もしくはゲーム状態、または他の任意の行動メトリックが、ユーザインターフェース上に、ゲームプレイ中のゲームデータのそばに、またはゲームプレイ前のゲームアイコンのそばにレンダリングされる。
【００８８】
一実施形態では、ユーザＡの現在のゲームプレイをリアルタイムに分析して、ユーザの現在のゲーム行動を特定し得る（４８０）。ユーザが現在のゲームプレイを完了すると（４８５）、ユーザの現在のゲームプレイインタラクションが機械学習ロジックに入力として提供され得、それによって機械学習ロジックがユーザＡの現在のゲームプレイインタラクションを処理し、ユーザＡの現在のゲーム行動を特定することが可能になる（４６５）。ユーザＡの現在のゲーム行動は、ゲームに関してユーザＡ向けに構築されたモデルに対して更新され得る（４６０）。更新されたモデルを使用して、ユーザＡの現在のゲーム行動を反映するように、ゲームに関してユーザに提供される行動メトリックを改良し得る。改良された行動メトリックは、ユーザインターフェースに対して動的に更新されて、ユーザＡが以降のゲームプレイセッション中に一時停止されたゲームを再開するか、またはゲームを最初から開始した場合に、より最新の関連する行動メトリックがユーザＡに提示されるようになる。
【００８９】
図４Ｂに、ゲーム１（Ｇ１）に利用可能な行動メトリックのうちの１つへのユーザインタラクションの一例を示す。この実施形態では、行動メトリックは、ユーザＡが支援を必要とし得るゲームの部分のリストを特定し、ゲームプレイが開始する前に、そのリストをユーザインターフェース上に提示し得る。ヒントリスト内の項目の１つへのユーザインタラクション（すなわち、ヒント：Ｃの選択）により、ヒントＣのゲームヒントが、図４Ｂに示すように、別のウィンドウに、もしくはゲームコンテンツのそばに、またはユーザインターフェースの他の任意の部分にレンダリングされる。他の実施形態では、ユーザＡが現在のゲームプレイにおいて特定の部分に近づくと、特定の部分に関連するヒントが提示されるように、ゲームのゲームプレイ中にヒントが提示され得る。
【００９０】
また、図４Ｂに、ユーザインタラクションのためにユーザインターフェース内にレンダリングされる有用かつ関連性のあるゲームヒント及びゲームに関するユーザのゲーム状態のサンプルを示す。ゲームヒントは、コーチングビデオ、テキストヒント、ゲーム状態などを含み得る。ゲームヒントは、ユーザに対してレンダリングできる任意の形式で提供され得る。一実施形態では、ユーザインターフェース上に提供される行動メトリックは、ユーザの設定に基づいている。ユーザの設定、ユーザのゲームスキル、ユーザのゲーム行動などに基づいて、より少ないまたはより多くのオプションが提供され得る。
【００９１】
図４Ｃに、ゲームの現在のゲームプレイ中にユーザＡに提供される行動メトリックの簡単な例を示す。ゲーム実行エンジンは、機械学習ロジック及び協調フィルタロジックによって提供される分析を使用して、ユーザの行動メトリックを生成し、ユーザがゲームの自分のゲームプレイを改善するのを支援する。図４Ｃに示すように、ユーザＡは、ユーザインターフェースでゲームプレイのためにゲームＧ１を選択する。時刻ｔ１において、ゲーム実行エンジンは、ユーザＡがゲームの第１の部分におり、その部分を完了するのに支援を必要としていると判定し得る。この知識に基づいて、ゲーム実行エンジンは、ゲームＧ１の第１の部分に適切な行動メトリックを特定し、第１の部分に適切な特定された行動メトリックによってユーザインターフェースを更新して、ユーザＡがゲームＧ１の第１の部分のゲームプレイの完了に成功またはそれを改善できるようにする。ユーザＡがゲームＧ１のプレイを続行し、支援が必要なゲームの第２の部分に近づくと、ゲーム実行エンジンは、ゲームＧ１の第２の部分のゲームのプレイの完了に成功するまたはそれを改善するのに適したゲームＧ１の行動メトリックを更新し得る。同様に、時刻ｔ３において、ユーザＡは、ゲームＧ１の第３の部分のゲームプレイの完了に成功するまたはそれを改善するのに適した行動メトリックが提供される。図４Ｃには、ゲームの異なる部分に対して同数の行動メトリックがレンダリングされる様子を示しているが、異なる部分に利用可能な行動メトリックの数もしくはタイプまたは順序は異なり得る。行動メトリックの相違は、ゲームの部分、ゲームのタイプ、ユーザのゲーム行動、またはその部分に利用可能な行動メトリックに基づき得る。
【００９２】
本明細書で論じる様々な実施形態は、関連するゲームヒント及びゲーム関連オプションを提供して、ユーザがゲームプレイを改善すること、及び／またはゲームプレイの詳細を見ることを可能にする。ユーザに提示される行動メトリックは、ゲーム用にユーザ向けにカスタマイズされている。いくつかの実施形態では、行動メトリックは、以前のゲームプレイの最後の部分のビデオクリップを提供して、自分が中断した場所、ゲームロジック及び他のゲームユーザのゲームプレイから提供されるゲームプレイヒントをユーザに知らせることによって、ユーザが動きをマスターし、自分のゲームプレイスキルを向上させるのを支援する。そのようなインタラクティブかつ動的な支援は、ユーザの不満を軽減し、ユーザのゲームへの興味を高める。他の利点は、本明細書に記載の様々な実施形態を読んだ後、当業者に明らかになろう。
【００９３】
図５Ａに、一実施形態における、ゲームの以前のゲームプレイからの詳細をユーザに提供するために使用される様々な方法の動作を示す。この方法は動作５０５から始まり、クラウドゲームシステムなどのクラウドアプリケーションシステム上でユーザアカウントで利用可能なゲームにアクセスするためのユーザインターフェースが提供される。ユーザアカウントは複数のアプリケーション及びサービス、たとえば、ゲームアプリケーション、ニュースサービス／アプリケーション、音楽サービス／アプリケーション、ライブラリサービス、ラジオサービス／アプリケーション、ストリーミング放送アプリケーションなどへのアクセスを提供し得る。動作５１０に示すように、ゲームプレイのためのゲームアプリケーションからのゲームのユーザ選択が、クライアントデバイスに提供されるユーザインターフェースにおいて検出される。ユーザインターフェースは、各アプリケーションの下で利用可能な様々なオプションのリストを提供し得る。たとえば、ゲームアプリケーションの下で利用可能なゲームは、ユーザアカウント用に購入されたゲーム、無料のゲーム、他のユーザによって共有されるゲーム（たとえば、ミニゲーム）を含み得る。ゲームプレイのためのゲームの選択の検出に応答して、ゲームサーバはゲームの選択を検出し、ゲームのインスタンスを実行し、ゲームデータを生成する。ゲームデータは、クライアントデバイス１００と交換される。
【００９４】
ユーザはゲームプレイ中にゲームとインタラクトする。動作５１５に示すように、ゲームプレイ中にユーザによってゲームに関して提供されるインタラクションは、ゲームサーバによって受信され処理される。処理の一部として、ゲームサーバはゲームのゲーム状態を更新し得る。動作５２０に示すように、ユーザによって提供されるインタラクションは、ゲームのゲームロジックによって分析されて、ユーザのゲーム行動が特定される。分析の一部として、ゲームロジックは、ゲームの各ステップ、各レベル、各課題、各部分に対してユーザによって提供された様々な入力を特定し、ゲーム行動を特定する。ゲーム行動によって、ユーザのゲームスキル、ユーザのゲームへの興味などが特定され得る。動作５２５に示すように、ゲームのゲームプレイ中に検出されるユーザのゲーム行動に基づいて、ゲームロジックはユーザの行動メトリックを生成し得る。行動メトリックはユーザ向けのゲームヒント、ゲーム状態、ビデオクリップなどを特定して、ユーザが自分のゲームプレイを改善するのを支援し得る。
【００９５】
動作５３０に示すように、生成された行動メトリックは、ユーザインターフェース上のゲームのアイコンに関連付けられる。この関連付けによって、ゲームのプレイ中にゲームの異なる部分に対して行動メトリックのうちの特定の行動メトリックがレンダリングされる。行動メトリックは、ゲーム用にプレイヤー向けにカスタマイズされる。この関連付けによって、ゲームのゲームプレイ中に、またはゲームのゲームプレイを開始する前に、行動メトリックがアクセスされる。
【００９６】
図５Ｂに、本発明の他の実施形態における、ゲームに関するユーザの行動メトリックを提供するために使用される様々な方法の動作を示す。この方法は動作５５０から始まり、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームにアクセスするためのユーザインターフェースがクライアントデバイスに提供される。ユーザインターフェースは、ユーザアカウント用に購入されたアプリケーション、無料のアプリケーション、及びユーザアカウントに関連付けられたユーザのソーシャルコンタクトによって共有されているアプリケーションを含む、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームアプリケーションを含む、インタラクティブアプリケーションのリストを含む。
【００９７】
動作５５５に示すように、クライアントデバイスにおいてなされたゲームプレイのためのゲームの選択は、クラウドゲームサーバにおいて検出される。その選択を識別する信号がクライアントデバイスからクラウドゲームサーバに送信され、それに応答して、クラウドゲームサーバは要求を認証し、ゲームプレイのためにゲームのインスタンスを実行する。動作５６０に示すように、現在のゲームプレイ中にゲームの一部分において提供されるユーザインタラクションは、クラウドゲームサーバ上で実行されるゲームロジックによって識別され処理されて、ゲームの結果に影響が与えられる。
【００９８】
動作５６５に示すように、ゲームの以前のゲームプレイにおいてユーザによって提供されたインタラクションと、ゲームのゲームロジックによって指定されたゲーム入力とを使用して、ゲームのゲームモデルが生成される。ゲームの全てのステップ、全てのレベル、及び全てのセッションにおいて提供される必要があるインタラクションと、ユーザが以前のゲームプレイ中に提供したインタラクションとを識別する機械学習ロジックを使用して、ゲームモデルが生成される。モデルを使用して、ユーザにより提供されるインタラクションを分析することによって、ユーザのゲーム行動を特定する。分析によって、ゲームロジック内で指定されたゲーム入力に対するユーザのインタラクションのずれが判定される。ゲームモデル及びユーザ行動の分析から得られる詳細によって、ゲームロジックは、ユーザがゲームの一部分を完了するのに苦労しているか否かを判定することが可能になる。
【００９９】
次に、動作５７５に示すように、ゲームロジックは、以前のゲームプレイから取得されたユーザのゲーム行動に基づいて、ユーザの現在のゲームプレイに関する行動メトリックを生成する。行動メトリックは、現在のゲームプレイ中に検出されるユーザのゲーム行動を考慮して動的に調整される。行動メトリックは、ゲームロジック及び他のユーザのゲームプレイから、ゲームに関するゲームヒント、ビデオクリップなどを提供する。
【０１００】
動作５８０に示すように、行動メトリックは、クライアントデバイスのユーザインターフェース上に提供されるゲームのゲームアイコンに関連付けられる。行動メトリックは、ゲームのゲームプレイ中またはゲームプレイ前にいつでも、ユーザインターフェース上に提供されるオプションを使用して、ユーザによりアクセスされ得る。行動メトリックは、ゲームのゲームプレイを改善するためのゲームヒント及び支援をユーザに提供する。ゲームヒント及び支援に加えて、行動メトリックは、たとえば、ゲーム状態、ゲームプレイ統計など、ゲームの以前のゲームプレイからの他の詳細にアクセスするオプションも含み得る。これらのオプションは、ユーザがゲームプレイのニュアンスを理解できるようにし、ユーザがゲームのゲームプレイを改善するのを支援するのに十分な情報をユーザに提供する。
【０１０１】
方法の動作は特定の順序で説明したが、オーバーレイ動作の処理が所望の方法で実行される限り、他のハウスキーピング動作が動作間に実行され得、または動作がわずかに異なる時刻に行われるように調整され得、もしくは処理に関連する様々な間隔の処理動作の実行を可能にするシステム内に分散され得ることは理解されたい。
【０１０２】
図６に、様々なゲームへのアクセスを提供する際に使用され得る情報サービスプロバイダアーキテクチャの一実施形態を示す。情報サービスプロバイダ（ＩＳＰ）１０７０は、地理的に分散し、ネットワーク１０８６を介して接続されたユーザ１０８２に多数の情報サービスを提供する。ゲームへの高速アクセスを提供することに関して様々な実施形態を論じているが、これらの実施形態は、１つまたは複数のタイプの他のサービスを提供するように拡張することができる。たとえば、ＩＳＰは、ゲームなどの１つのタイプのサービスだけでなく、たとえば、ゲーム、株価の更新、放送メディア、ニュース、スポーツ、ゲームなどの多様なサービスを提供することができる。さらに、各ＩＳＰによって提供されるサービスは動的であり得、すなわち、任意の時点でサービスを追加または削除することができる。したがって、特定のタイプのサービスを特定の個人に提供するＩＳＰは、時間と共に変わり得る。たとえば、ユーザは自分の故郷にいる間に、ユーザの近くのＩＳＰによってサービス提供され得、ユーザが異なる都市に旅行しているときは、異なるＩＳＰによってサービス提供され得る。故郷のＩＳＰは、ユーザのゲームまたはアクセスプロフィールから必要な情報及びデータを新たなＩＳＰに接続モジュールを介して転送することによって、ユーザ情報が新たな都市までユーザに「ついて行き」、データがユーザにより近くなり、よりアクセスしやすくなる。他の実施形態では、ユーザに関する情報を管理するマスターＩＳＰと、マスターＩＳＰからの制御下でユーザと直接インターフェースをとるサーバＩＳＰとの間に、マスター−サーバ関係が確立され得る。他の実施形態では、クライアントが世界中を移動すると、あるＩＳＰから他のＩＳＰにデータが転送され（すなわち、ユーザに割り当てられたデータセンターの切り替え中）、そのような転送は、それぞれのＩＳＰによって提供されるサービスの互換性に基づいてもよく、それによって、ユーザにサービス提供するのにより良い位置にあるＩＳＰが、これらのサービスを提供するものになる。
【０１０３】
ＩＳＰ１０７０は、ネットワークを介して顧客にコンピュータベースのサービスを提供するアプリケーションサービスプロバイダ（ＡＳＰ）１０７２を含む。ＡＳＰモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはサービスとしてのソフトウェア（ＳａａＳ）と呼ばれることもある。特定のアプリケーションプログラム（たとえば、顧客関係管理）へのアクセスを提供する簡単な形は、ＨＴＴＰなどの標準的なプロトコルを使用することである。たとえば、アプリケーションソフトウェアはベンダーのシステムに常駐し、ＨＴＭＬを使用するウェブブラウザを介して、もしくはベンダーによって提供される専用クライアントソフトウェアによって、またはシンクライアントなどの他のリモートインターフェースを介して、ユーザによりアクセスされる。
【０１０４】
地理的に広い範囲に提供されるサービスは、クラウドコンピューティングを使用することが多い。クラウドコンピューティングは、動的に拡張可能であって、多くの場合仮想化されているリソースがインターネットを介してサービスとして提供されるコンピューティングのスタイルである。ユーザは、それらをサポートする「クラウド」の技術基盤の専門家である必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ（ＩａａＳ）、サービスとしてのプラットフォーム（ＰａａＳ）、サービスとしてのソフトウェア（ＳａａＳ）などの様々なサービスに分類することができる。多くの場合、クラウドコンピューティングサービスは、ウェブブラウザからアクセスされる一般的なビジネスアプリケーションをオンラインで提供し、ソフトウェア及びデータはサーバに記憶される。クラウドという用語は、コンピュータネットワーク図におけるインターネットの描かれ方に基づいた、（たとえば、サーバ、ストレージ、及びロジックを使用する）インターネットのメタファとして使用され、それに隠された複雑なインフラストラクチャの抽象化である。
【０１０５】
さらに、ＩＳＰ１０７０は、ゲームクライアントによってシングル及びマルチユーザビデオゲームをプレイするために使用されるゲーム処理サーバ（ＧａＰＳ：Ｇａｍｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｅｒｖｅｒ）１０７４を含む。インターネット上でプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。典型的には、ゲームは、ユーザからデータを収集し、他のユーザに配布する専用サーバアプリケーションを使用する。これはピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするために別のサーバが必要である。他の実施形態では、ＧａＰＳはユーザ間の通信を確立し、それぞれのゲームプレイデバイスが、中央のＧａＰＳに依存することなく情報を交換する。
【０１０６】
専用のＧａＰＳは、クライアントとは独立して動作するサーバである。そのようなサーバは通常、データセンター内に配置された専用ハードウェア上で動作して、より広い帯域幅及び専用の処理能力を提供する。専用サーバは、ほとんどのＰＣベースのマルチユーザゲームのためのゲームサーバをホストする好適な方法である。大規模マルチユーザオンラインゲームは、通常はゲームタイトルを所有するソフトウェア会社によってホストされる専用サーバ上で動作して、専用サーバがコンテンツを制御及び更新できるようにする。
【０１０７】
放送処理サーバ（ＢＰＳ：Ｂｒｏａｄｃａｓｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｅｒｖｅｒ）１０７６は、オーディオまたはビデオ信号を視聴者に配信する。非常に狭い範囲の視聴者への放送は、ナローキャストと呼ばれることもある。放送配信の最終工程は、信号がどのようにしてリスナーまたは視聴者に届くかであり、信号はラジオ局またはテレビ局のようにアンテナ及び受信機まで地上波で届いてもよく、あるいはケーブルテレビもしくはケーブルラジオ（または「無線ケーブル」）によって、局経由でまたはネットワークから直接届いてもよい。また、インターネットは、特に信号及び帯域幅を共有可能にするマルチキャストによって、ラジオまたはテレビを受信者に届け得る。歴史的に放送は、全国放送や地域放送など、地理的地域によって区切られてきた。しかしながら、高速インターネットの普及により、コンテンツは世界中のほぼ全ての国に到達できるので、放送は地域によって定義されない。
【０１０８】
ストレージサービスプロバイダ（ＳＳＰ）１０７８は、コンピュータストレージスペースと、関連する管理サービスとを提供する。ＳＳＰは、定期的なバックアップ及びアーカイブも提供する。ストレージをサービスとして提供することにより、ユーザは必要に応じて追加のストレージを注文することができる。もう１つの大きい利点は、ＳＳＰがバックアップサービスを含み、ユーザが自分のコンピュータのハードドライブが故障しても、全てのデータを失わないことである。さらに、複数のＳＳＰがユーザデータの全体のまたは部分的なコピーを有することができるので、ユーザのいる場所、またはデータにアクセスするために使用されているデバイスに関係なく、ユーザが効率的にデータにアクセスすることができる。たとえば、ユーザは自宅のコンピュータだけでなく、移動中に携帯電話で個人ファイルにアクセスすることができる。
【０１０９】
通信プロバイダ１０８０は、ユーザに接続性を提供する。一種の通信プロバイダは、インターネットへのアクセスを提供するインターネットサービスプロバイダ（ＩＳＰ）である。ＩＳＰは、たとえば、ダイヤルアップ、ＤＳＬ、ケーブルモデム、ファイバ、無線、または専用の高速相互接続など、インターネットプロトコルデータグラムの配信に適したデータ伝送技術を使用して顧客を接続する。また、通信プロバイダは、たとえば、電子メール、インスタントメッセージング、ＳＭＳテキストメッセージングなどのメッセージングサービスを提供することができる。他のタイプの通信プロバイダは、インターネットへの直接的なバックボーンアクセスを提供することにより帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ（ＮＳＰ）である。ネットワークサービスプロバイダは、電気通信会社、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者などから構成され得る。
【０１１０】
データ交換器１０８８は、ＩＳＰ１０７０内のいくつかのモジュールを相互接続し、これらのモジュールをネットワーク１０８６を介してユーザ１０８２に接続する。データ交換器１０８８は、ＩＳＰ１０７０の全てのモジュールが近接している小さいエリアをカバーすることができ、または様々なモジュールが地理的に分散している大きい地理的エリアをカバーすることができる。たとえば、データ交換器１０８８は、データセンターのキャビネット内の高速ギガビットイーサネット（登録商標）（またはさらに高速なもの）、または大陸間仮想エリアネットワーク（ＶＬＡＮ）を含むことができる。
【０１１１】
ユーザ１０８２は、少なくともＣＰＵ、メモリ、ディスプレイ、及びＩ／Ｏを含むクライアントデバイス１０８４によって、リモートサービスにアクセスする。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、タブレット、ゲームシステム、ＰＤＡなどとすることができる。一実施形態では、ＩＳＰ１０７０は、クライアントによって使用されるデバイスのタイプを認識し、採用される通信方法を調整する。その他の場合、クライアントデバイスは、ＨＴＭＬなどの標準的な通信方法を使用してＩＳＰ１０７０にアクセスする。
【０１１２】
図７は、本発明の様々な実施形態によるゲームシステム１４００のブロック図である。ゲームシステム１４００は、ネットワーク１４１５を介して１つまたは複数のクライアント１４１０にビデオストリームを提供するように構成される。このネットワークは、図１に示すネットワーク２００と同様である。ゲームシステム１４００は、典型的にはビデオサーバシステム１４２０と、オプションのゲームサーバ１４２５とを含む。ビデオサーバシステム１４２０は、ビデオストリームを１つまたは複数のクライアント１４１０に最低限のサービス品質で提供するように構成される。たとえば、ビデオサーバシステム１４２０は、ビデオゲームの状態またはビデオゲーム内の視点を変更するゲームコマンドを受信し、最短の遅延時間で即座にこの変更を反映した更新されたビデオストリームをクライアント１４１０に提供し得る。ビデオサーバシステム１４２０は、未定義の形式を含む多種多様な代替のビデオ形式でビデオストリームを提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されるビデオフレームを含み得る。典型的なフレームレートは、３０フレーム毎秒、６０フレーム毎秒、１４２０フレーム毎秒である。ただし、本発明の他の実施形態では、より高いまたはより低いフレームレートが含まれる。
【０１１３】
本明細書において個別に１４１０Ａ、１４１０Ｂなどと呼ぶクライアント１４１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイスなどを含み得る。説明するクライアントは、図１のクライアント１００−１から１００−ｎと同様である。典型的には、クライアント１４１０は、符号化されたビデオストリームを受信し、ビデオストリームを復号し、結果のビデオをユーザ、たとえば、ゲームのユーザに提示するように構成される。符号化されたビデオストリームを受信する処理、及び／またはビデオストリームを復号する処理は、典型的には、個々のビデオフレームをクライアントの受信バッファに記憶することを含む。ビデオストリームは、クライアント１４１０に統合されたディスプレイ上で、またはモニタもしくはテレビなどの別個のデバイス上でユーザに提示され得る。クライアント１４１０はオプションで、２人以上のゲームユーザをサポートするように構成される。たとえば、ゲームコンソールは、２人、３人、４人またはそれ以上の同時ユーザをサポートするように構成され得る。これらのユーザはそれぞれ別々のビデオストリームを受信してもよく、あるいは単一のビデオストリームが、各ユーザ専用に生成された、たとえば各ユーザの視点に基づいて生成されたフレームの領域を含んでもよい。クライアント１４１０はオプションで、地理的に分散している。ゲームシステム１４００に含まれるクライアントの数は、１または２から数千、数万またはそれ以上まで幅広く変化し得る。本明細書で使用する場合、「ゲームユーザ」という用語は、ゲームをプレイする人を指すために使用し、「ゲームプレイデバイス」という用語は、ゲームをプレイするために使用されるデバイスを指すために使用する。いくつかの実施形態では、ゲームプレイデバイスは、ユーザにゲーム体験を提供するために協働する複数のコンピューティングデバイスを指し得る。たとえば、ゲームコンソール及びＨＭＤは、ビデオサーバシステム１４２０と協働して、ＨＭＤを通して見るゲームを配信し得る。一実施形態では、ゲームコンソールはビデオサーバシステム１４２０からビデオストリームを受信し、ゲームコンソールはビデオストリームまたはビデオストリームへの更新をＨＭＤに転送してレンダリングさせる。
【０１１４】
クライアント１４１０は、ネットワーク１４１５（図１のネットワーク２００と同様のもの）を介してビデオストリームを受信するように構成される。ネットワーク１４１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む任意のタイプの通信ネットワークであり得る。典型的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準的なプロトコルによって通信される。あるいは、ビデオストリームは独自の規格によって通信される。
【０１１５】
クライアント１４１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信機能、及び入力デバイスを備えるパーソナルコンピュータである。復号ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に記憶されたソフトウェアを含み得る。ビデオストリームを復号（及び符号化）するためのシステムは、当技術分野ではよく知られており、使用される特定の符号化方式に応じて異なる。
【０１１６】
クライアント１４１０は、必須ではないが、受信したビデオを修正するように構成されるシステムをさらに含み得る。たとえば、クライアントは、さらなるレンダリングを実行する、あるビデオ画像を他のビデオ画像にオーバーレイする、ビデオ画像を切り取る、及び／または同様のことを行うように構成され得る。たとえば、クライアント１４１０は、Ｉフレーム、Ｐフレーム及びＢフレームなどの様々なタイプのビデオフレームを受信し、これらのフレームを画像へ処理してユーザに表示するように構成され得る。いくつかの実施形態では、クライアント１４１０のメンバーは、さらなるレンダリング、シェーディング、３Ｄへの変換、または同様の演算をビデオストリームに実行するように構成される。クライアント１４１０のメンバーはオプションで、２つ以上のオーディオまたはビデオストリームを受信するように構成される。クライアント１４１０の入力デバイスは、たとえば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、動き及び／または位置検知デバイス、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、未開発の入力デバイスなどを含み得る。
【０１１７】
クライアント１４１０によって受信されるビデオストリーム（及びオプションでオーディオストリーム）は、ビデオサーバシステム１４２０によって生成され提供される。本明細書の他の場所でさらに説明しているように、このビデオストリームはビデオフレームを含む（また、オーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される（たとえば、適切なデータ構造のピクセル情報を含む）。本明細書で使用する場合、「ビデオフレーム」という用語は、ユーザに表示される画像に寄与する、たとえば、これを生じさせるように構成される情報を主に含むフレームを指すために使用する。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」にも適用することができる。
【０１１８】
クライアント１４１０は、典型的にはユーザから入力を受け取るように構成される。これらの入力は、ビデオゲームの状態を変更するか、あるいはゲームプレイに影響を与えるように構成されるゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受け取ることができ、及び／またはクライアント１４１０上で実行される計算命令によって自動的に生成され得る。受け取られたゲームコマンドは、クライアント１４１０からネットワーク１４１５を介してビデオサーバシステム１４２０及び／またはゲームサーバ１４２５に通信される。たとえば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム１４２０を介してゲームサーバ１４２５に通信される。いくつかの実施形態では、ゲームコマンドの別々のコピーがクライアント１４１０からゲームサーバ１４２５及びビデオサーバシステム１４２０に通信される。ゲームコマンドの通信はオプションで、コマンドの識別情報に依存する。ゲームコマンドはオプションで、クライアント１４１０Ａにオーディオまたはビデオストリームを提供するために使用されるものとは異なるルートまたは通信チャネルを介してクライアント１４１０Ａから通信される。
【０１１９】
ゲームサーバ１４２５はオプションで、ビデオサーバシステム１４２０とは異なるエンティティによって運用される。たとえば、ゲームサーバ１４２５は、マルチユーザゲームの発行元によって運用され得る。この例では、ビデオサーバシステム１４２０は、オプションで、ゲームサーバ１４２５によってクライアントと見なされ、オプションで、ゲームサーバ１４２５の視点からは従来技術のゲームエンジンを実行する従来技術のクライアントに見えるように構成される。ビデオサーバシステム１４２０とゲームサーバ１４２５との間の通信はオプションで、ネットワーク１４１５を介して行われる。したがって、ゲームサーバ１４２５は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチユーザゲームサーバとすることができ、複数のクライアントのうちの１つがビデオサーバシステム１４２０である。ビデオサーバシステム１４２０は、同時にゲームサーバ１４２５の複数のインスタンスと通信するように構成され得る。たとえば、ビデオサーバシステム１４２０は、複数の異なるビデオゲームを異なるユーザに提供するように構成することができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１４２５によってサポートされ得、及び／または異なるエンティティによって発行され得る。いくつかの実施形態では、ビデオサーバシステム１４２０のいくつかの地理的に分散したインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム１４２０のこれらのインスタンスのそれぞれは、ゲームサーバ１４２５の同一のインスタンスと通信し得る。ビデオサーバシステム１４２０と１つまたは複数のゲームサーバ１４２５との間の通信はオプションで、専用の通信チャネルを介して行われる。たとえば、ビデオサーバシステム１４２０はゲームサーバ１４２５に、これらの２つのシステム間の通信専用の広帯域幅チャネルを介して接続され得る。
【０１２０】
ビデオサーバシステム１４２０は、少なくともビデオソース１４３０、Ｉ／Ｏデバイス１４４５、プロセッサ１４５０、及びストレージ１４５５（非一時的なアナログ及び／またはデジタルのストレージデバイスを含む）を備える。ビデオサーバシステム１４２０は、１つのコンピューティングデバイスを含むか、または複数のコンピューティングデバイスに分散され得る。これらのコンピューティングデバイスはオプションで、ローカルエリアネットワークなどの通信システムを介して接続される。
【０１２１】
ビデオソース１４３０はビデオストリーム、たとえば、ストリーミングビデオ、または動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース１４３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、ユーザからゲームコマンドを受け取り、受け取ったコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、ならびに典型的には視点を含む。ゲーム状態は、オブジェクトのプロパティ、画像、色、及び／またはテクスチャも含む。
【０１２２】
ゲーム状態は、典型的には、ゲームルールに加えて、移動、方向転換、攻撃、フォーカス設定、インタラクション、使用などのゲームコマンドに基づいて維持される。ゲームエンジンの一部はオプションで、ゲームサーバ１４２５内に配置される。ゲームサーバ１４２５は、地理的に分散したクライアントを使用して複数のユーザから受信したゲームコマンドに基づいて、ゲームの状態のコピーを維持し得る。これらの場合、ゲーム状態はゲームサーバ１４２５によってビデオソース１４３０に提供され、ゲーム状態のコピーが記憶され、レンダリングが実行される。ゲームサーバ１４２５は、ネットワーク１４１５を介してクライアント１４１０からゲームコマンドを直接受信し得、及び／またはビデオサーバシステム１４２０を介してゲームコマンドを受信し得る。
【０１２３】
ビデオソース１４３０は、典型的には、たとえば、ハードウェア、ファームウェア、及び／またはストレージ１４５５などのコンピュータ可読媒体に記憶されたソフトウェアなどのレンダリングロジックを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを生成するように構成される。レンダリングロジックの全部または一部はオプションで、グラフィックス処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、典型的には、ゲーム状態及び視点に基づいて、オブジェクト間の３次元空間関係を決定する、及び／または適切なテクスチャを適用するなどするように構成される処理段階を含む。レンダリングロジックは生ビデオを生成し、これは通常はクライアント１４１０との通信の前に符号化される。たとえば、生ビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３などに従って符号化され得る。符号化処理は、オプションでリモートデバイスの復号器に配信するためにパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。典型的なフレームサイズは、８００×６００、１２８０×７２０（たとえば、７２０ｐ）、１０２４×７６８を含むが、他の任意のフレームサイズが使用され得る。フレームレートは、１秒あたりのビデオフレーム数である。ビデオストリームは、異なるタイプのビデオフレームを含み得る。たとえば、Ｈ．２６４規格は「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは、ディスプレイデバイス上の全てのマクロブロック／ピクセルをリフレッシュするための情報を含み、Ｐフレームは、そのサブセットをリフレッシュするための情報を含む。Ｐフレームは、典型的には、Ｉフレームよりもデータサイズが小さい。本明細書で使用する場合、「フレームサイズ」という用語は、フレーム内のピクセル数を指すものとする。「フレームデータサイズ」という用語は、フレームを記憶するのに必要なバイト数を指すために使用する。
【０１２４】
他の実施形態では、ビデオソース１４３０は、カメラなどのビデオ記録デバイスを含む。このカメラを使用して、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成し得る。結果のビデオストリームはオプションで、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像との両方を含む。また、ビデオソース１４３０は、ビデオストリームに含められる記録済みのビデオを記憶するように構成されるストレージデバイスを含み得る。また、ビデオソース１４３０は、人などのオブジェクトの動きまたは位置を検出するように構成される動きまたは位置検知デバイスと、検出された動き及び／または位置に基づいてゲーム状態を特定するまたはビデオを生成するように構成されるロジックとを含み得る。
【０１２５】
ビデオソース１４３０はオプションで、他のビデオ上に配置されるように構成されるオーバーレイを提供するように構成される。たとえば、これらのオーバーレイは、コマンドインターフェース、ログイン指示、ゲームユーザへのメッセージ、他のゲームユーザの画像、他のゲームユーザのビデオフィード（たとえば、ウェブカメラビデオ）を含み得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント１４１０Ａの実施形態では、オーバーレイは仮想キーボード、ジョイスティック、タッチパッドなどを含み得る。オーバーレイの一例では、ユーザの音声がオーディオストリームにオーバーレイされる。ビデオソース１４３０はオプションで、１つまたは複数のオーディオソースをさらに含む。
【０１２６】
ビデオサーバシステム１４２０が２人以上のユーザからの入力に基づいてゲーム状態を維持するように構成される実施形態では、各ユーザは視点の位置及び方向を含む異なる視点を有し得る。ビデオソース１４３０はオプションで、各ユーザに各自の視点に基づいて別々のビデオストリームを提供するように構成される。さらに、ビデオソース１４３０は、各クライアント１４１０に異なるフレームサイズ、フレームデータサイズ、及び／または符号化を提供するように構成され得る。ビデオソース１４３０はオプションで、３Ｄビデオを提供するように構成される。
【０１２７】
Ｉ／Ｏデバイス１４４５は、ビデオサーバシステム１４２０が、たとえば、ビデオ、コマンド、情報の要求、ゲーム状態、視線情報、デバイスの動き、デバイスの位置、ユーザの動き、クライアント識別情報、ユーザ識別情報、ゲームコマンド、セキュリティ情報、オーディオなどの情報を送信及び／または受信するように構成される。Ｉ／Ｏデバイス１４４５は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス１４４５は、ゲームサーバ１４２５、ネットワーク１４１５、及び／またはクライアント１４１０と通信するように構成される。
【０１２８】
プロセッサ１４５０は、本明細書で論じるビデオサーバシステム１４２０の様々なコンポーネント内に含まれるロジック、たとえばソフトウェアを実行するように構成される。たとえば、プロセッサ１４５０は、ビデオソース１４３０、ゲームサーバ１４２５、及び／またはクライアントクオリファイア（Ｑｕａｌｉｆｉｅｒ）１４６０の機能を実行するためのソフトウェア命令によってプログラムされ得る。ビデオサーバシステム１４２０はオプションで、プロセッサ１４５０の２つ以上のインスタンスを含む。また、プロセッサ１４５０は、ビデオサーバシステム１４２０によって受信されたコマンドを実行するか、または本明細書で論じるゲームシステム１４００の様々な要素の動作を調整するためのソフトウェア命令によってプログラムされ得る。プロセッサ１４５０は、１つまたは複数のハードウェアデバイスを含み得る。プロセッサ１４５０は電子プロセッサである。
【０１２９】
ストレージ１４５５は、非一時的なアナログ及び／またはデジタルのストレージデバイスを含む。たとえば、ストレージ１４５５は、ビデオフレームを記憶するように構成されるアナログストレージデバイスを含み得る。ストレージ１４５５は、コンピュータ可読デジタルストレージ、たとえば、ハードドライブ、光学ドライブ、またはソリッドステートストレージを含み得る。ストレージ１４５５は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームとの両方を含むビデオストリーム、オーディオフレーム、オーディオストリームなどを記憶するように（たとえば、適切なデータ構造またはファイルシステムによって）構成される。ストレージ１４５５はオプションで、複数のデバイスに分散される。いくつかの実施形態では、ストレージ１４５５は、本明細書の他の場所で論じるビデオソース１４３０のソフトウェアコンポーネントを記憶するように構成される。これらのコンポーネントは、必要に応じてすぐに供給できる形式で記憶され得る。
【０１３０】
ビデオサーバシステム１４２０はオプションで、クライアントクオリファイア１４６０をさらに備える。クライアントクオリファイア１４６０は、クライアント１４１０Ａまたは１４１０Ｂなどのクライアントの能力をリモートで特定するように構成される。これらの能力は、クライアント１４１０Ａ自体の能力と、クライアント１４１０Ａ及びビデオサーバシステム１４２０の間の１つまたは複数の通信チャネルの能力との両方を含むことができる。たとえば、クライアントクオリファイア１４６０は、ネットワーク１４１５を介して通信チャネルをテストするように構成され得る。
【０１３１】
クライアントクオリファイア１４６０は、クライアント１４１０Ａの能力を手動または自動で特定（たとえば、発見）することができる。手動の特定には、クライアント１４１０Ａのユーザと通信し、ユーザに能力の提供依頼することが含まれる。たとえば、いくつかの実施形態では、クライアントクオリファイア１４６０は、クライアント１４１０Ａのブラウザ内に画像、テキストなどを表示するように構成される。一実施形態では、クライアント１４１０Ａは、ブラウザを含むＨＭＤである。他の実施形態では、クライアント１４１０Ａはブラウザを有するゲームコンソールであり、ブラウザはＨＭＤ上に表示され得る。表示されたオブジェクトは、クライアント１４１０Ａの情報、たとえば、オペレーティングシステム、プロセッサ、ビデオ復号器のタイプ、ネットワーク接続のタイプ、ディスプレイ解像度などを入力するようにユーザに要求する。ユーザによって入力された情報は、クライアントクオリファイア１４６０に返される。
【０１３２】
自動の特定は、たとえば、クライアント１４１０Ａ上でエージェントを実行することによって、及び／またはテストビデオをクライアント１４１０Ａに送信することによって行われ得る。エージェントは、Ｗｅｂページに埋め込まれた、またはアドオンとしてインストールされた、ＪａｖａＳｃｒｉｐｔ（登録商標）などの計算命令を含み得る。エージェントはオプションで、クライアントクオリファイア１４６０によって提供される。様々な実施形態では、エージェントは、クライアント１４１０Ａの処理能力、クライアント１４１０Ａの復号及び表示能力、クライアント１４１０Ａとビデオサーバシステム１４２０との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント１４１０Ａのディスプレイタイプ、クライアント１４１０Ａ上に存在するファイアウォール、クライアント１４１０Ａのハードウェア、クライアント１４１０Ａ上で実行されるソフトウェア、クライアント１４１０Ａ内のレジストリエントリなどを知ることができる。
【０１３３】
クライアントクオリファイア１４６０は、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に記憶されたソフトウェアを含む。クライアントクオリファイア１４６０はオプションで、ビデオサーバシステム１４２０の１つまたは複数の他の要素とは別個のコンピューティングデバイス上に配置される。たとえば、いくつかの実施形態では、クライアントクオリファイア１４６０は、クライアント１４１０とビデオサーバシステム１４２０の２つ以上のインスタンスとの間の通信チャネルの特性を特定するように構成される。これらの実施形態では、クライアントクオリファイアによって発見された情報を使用して、ビデオサーバシステム１４２０のどのインスタンスがストリーミングビデオをクライアント１４１０のうちの１つに配信するのに最も適しているかを特定することができる。
【０１３４】
明確に特許請求したいずれの実施形態にも限定されることなく、学習アルゴリズム、機械学習方法、予測、データ分析などを処理する例示的な手法を提供する目的で、“Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ”，Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ，ｂｙ  Ｅｔｈｅｍ  Ａｌｐａｙｄｉｎ，Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ（ＩＳＢＮ  ９７８−０−２６２−０１２４３−０），Ｃａｍｂｒｉｄｇｅ，Ｍａｓｓａｃｈｕｓｅｔｔｓ，Ｌｏｎｄｏｎ  Ｅｎｇｌａｎｄ（２０１０）というタイトルの本が参照され得、これはあらゆる目的のために参照により本明細書に援用される。したがって、学習及び機械学習への参照では、任意数の特定のアルゴリズムを使用して、プレイヤー／ユーザのゲームパフォーマンスの類似性を識別し、違いを識別し、どのようにして他のプレイヤーが特定のゲームアクション及び／またはゲームインタラクションを達成したかを特定し、ユーザがゲーム内の特定のタスク、アクション、レベル、目標などを達成するためのヒントを特定することができる。機械学習処理は、ゲームコンソール上でローカルに実行され得、またはサーバ上で処理することができる。いくつかの実施形態では、分散ゲーム環境における他のユーザのアクションの処理を高速化し、動的に拡張するために、複数のサーバまたは仮想マシンが１つまたは複数の機械学習タスクを処理し得る。
【０１３５】
上記の実施形態を念頭に置いて、本発明がコンピュータシステムに記憶されたデータに作用する様々なコンピュータ実施動作を採用し得ることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作を含む。本発明の一部を形成する本明細書に記載の動作はいずれも有用なマシン動作である。また、本発明はこれらの動作を実行するための装置またはデバイスに関する。装置は、必要な目的のために専用に構築することができ、または装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動もしくは構成される汎用コンピュータとすることができる。具体的には、本明細書の教示に従って記述されたコンピュータプログラムと共に様々な汎用マシンを使用することができ、または必要な動作を実行するためのより専門化された装置を構築する方が便利であり得る。
【０１３６】
上述の発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成によって実施され得る。また、本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施され得る。
【０１３７】
また、本発明はコンピュータ可読媒体上のコンピュータ可読プログラミングコードとして具現化することができる。あるいは、コンピュータ可読プログラミングコードは、上記のデータ交換相互接続を使用してサーバからダウンロードされ得る。コンピュータ可読媒体は、電磁波搬送波を含む、コンピュータシステムによって後で読み取ることが可能なデータを記憶することができる任意のデータストレージデバイスである。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学式及び非光学式データストレージデバイスを含む。また、コンピュータ可読媒体は、コンピュータ可読コードが分散して記憶され実行されるように、ネットワーク結合されたコンピュータシステム上に分散させることができる。
【０１３８】
理解を明確にするために前述の発明はある程度詳細に説明しているが、添付の特許請求の範囲内で特定の変更及び修正が実施され得ることは明らかであろう。したがって、本実施形態は限定ではなく例示と見なされるべきであり、本発明は本明細書で与えた詳細に限定されるべきではなく、添付の特許請求の範囲及びその均等物内で修正され得る。
【図１】
0006928107.tif 000002
【図２Ａ】
0006928107.tif 000003
【図２Ｂ】
0006928107.tif 000004
【図３Ａ】
0006928107.tif 000005
【図３Ｂ】
0006928107.tif 000006
【図３Ｃ】
0006928107.tif 000007
【図４Ａ】
0006928107.tif 000008
【図４Ｂ】
0006928107.tif 000009
【図４Ｃ】
0006928107.tif 000010
【図５Ａ】
0006928107.tif 000011
【図５Ｂ】
0006928107.tif 000012
【図６】
0006928107.tif 000013
【図７】
0006928107.tif 000014