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

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

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

特許7271617アプリケーション内の行動に基づく個人化されたユーザインターフェース
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-28
(45)【発行日】2023-05-11
(54)【発明の名称】アプリケーション内の行動に基づく個人化されたユーザインターフェース
(51)【国際特許分類】
   A63F 13/5375 20140101AFI20230501BHJP
   A63F 13/67 20140101ALI20230501BHJP
   A63F 13/35 20140101ALI20230501BHJP
   A63F 13/79 20140101ALI20230501BHJP
   G06F 3/0484 20220101ALI20230501BHJP
【FI】
A63F13/5375
A63F13/67
A63F13/35
A63F13/79
G06F3/0484
【請求項の数】 13
(21)【出願番号】P 2021128772
(22)【出願日】2021-08-05
(62)【分割の表示】P 2019553321の分割
【原出願日】2018-03-15
(65)【公開番号】P2021180888
(43)【公開日】2021-11-25
【審査請求日】2021-08-20
(31)【優先権主張番号】15/703,697
(32)【優先日】2017-09-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/480,258
(32)【優先日】2017-03-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100099324
【弁理士】
【氏名又は名称】鈴木 正剛
(72)【発明者】
【氏名】マイカ エス. ストラウド
【審査官】前地 純一郎
(56)【参考文献】
【文献】特開2011-101754(JP,A)
【文献】特開2005-334200(JP,A)
【文献】特開2017-029710(JP,A)
【文献】特開2014-033870(JP,A)
【文献】特開2009-011569(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
ゲームプレイ用のゲーム選択を検出し、
前記選択により、前記ゲームがクラウドゲームサーバ上で実行され、かつ、前記実行中のゲームからのゲームコンテンツがユーザのクライアントデバイスにストリーミングされてレンダリングされ、
前記ゲームの各部分に対するゲームプレイヒントを識別して前記ユーザがそれぞれの前記部分で前記ゲームを進行させることを支援し、
前記ゲームプレイヒントは、前記ゲームの前記それぞれの部分での進行に必要な一連のゲーム入力を識別するものであり、
前記ゲームプレイヒントは、ゲームインターフェース上で識別された各部分に対する選択オプションに関連付けられたものであり、
前記ゲームの一部に対する前記ユーザからのインタラクションを受信し、前記インタラクションは前記ゲームの結果に影響を与えるために用いられるものであり、
前記ゲームの前記部分内で前記ユーザによって提供される前記インタラクションを分析して、前記部分内での前記ユーザのゲームプレイ行動を特定し、かつ、
前記ユーザの前記ゲームプレイ行動が前記部分内で前記ユーザのゲーム進行を妨げるものである場合、
ゲームインターフェース上での前記ゲームの前記部分に対して利用可能である前記選択オプションを使用可能とし、
前記選択オプションは、前記ユーザの前記部分内でのゲーム進行を支援するための前記ゲームプレイヒントへのアクセスを与えるものであり、
前記ゲームプレイヒントは、前記ゲームの前記部分内での進行のためにゲームプレイ中に提供されることが必要な一連のゲーム入力を識別するものであり、
前記部分内の前記ゲームプレイ行動は、前記部分内で前記ユーザのゲーム進行を妨げた前記ゲームプレイ内のずれを識別するものである、
方法。
【請求項2】
前記ゲームプレイ内のずれは前記ゲームのゲームロジックを用いて識別され、前記ユーザに与えられた前記ゲームプレイヒントは、前記ゲームロジックにより定義されたゲーム入力を識別する、
請求項に記載の方法。
【請求項3】
前記ゲームプレイ内のずれは、前記ユーザによって与えられたインタラクションと、前記ゲームの前記部分をプレイした一人以上の他のユーザにより与えられたインタラクションと、を比較することで識別され、
前記一人以上の他のユーザにより与えられたインタラクションは、前記ゲームの前記部分で前記一人以上の他のユーザのゲームを進行させたインタラクションである、
請求項に記載の方法。
【請求項4】
前記ゲームの前記部分に対する前記ゲームプレイヒントは、前記一人以上の他のユーザのゲームプレイから識別されたものであり、
前記一人以上の他のユーザの前記ゲームプレイヒントは、複数の選択オプションとして前記ユーザに提供され、かつ、
前記選択オプションの使用可能化には、前記複数の選択オプションを使用可能化することが含まれ、
前記複数の選択オプションの各選択オプションは、前記ユーザに、前記他のユーザのうち特定の1人の前記ゲームプレイからのゲームプレイヒントへのアクセスを提供するものである、
請求項に記載の方法。
【請求項5】
前記他のユーザの前記ゲームプレイヒントは、前記他のユーザのそれぞれのユーザプロフィールと、前記ユーザのユーザプロフィールと、の一致の程度に基づいてランキングされた順番で与えられる、
請求項に記載の方法。
【請求項6】
ゲームプレイのヒントの識別では、更に、前記一人以上の他のユーザであって、前記部分内のインタラクションが前記ゲームの前記部分の完了に成功したインタラクションを与えるユーザのうち、特定の一人の他のユーザのゲームプレイを選択し、
前記特定の他のユーザは、前記特定の他のユーザのユーザプロフィールの少なくとも一部を、前記ユーザのユーザプロフィールの対応する部分と照合することにより選択されるものであり、かつ、
前記選択オプションの使用可能化では、前記ゲームの前記部分に対する前記特定の他のユーザのゲームプレイからのゲームプレイヒントへのアクセスを与える、
請求項に記載の方法。
【請求項7】
前記ゲームの前記部分に対して前記ユーザに与えられた前記ゲームプレイヒントは、前記ユーザの前記ゲームプレイ行動に従ってカスタマイズされる、
請求項1に記載の方法。
【請求項8】
前記ゲームプレイヒントは、ビデオ形式、またはテキスト形式、またはオーディオ形式で提供されるか、または、前記ビデオ形式、前記テキスト形式、及び前記オーディオ形式のうちのいずれか2つまたは全ての組み合わせで提供される、
請求項1に記載の方法。
【請求項9】
ゲームプレイ用のゲーム選択を検出し、
前記選択により、前記ゲームがクラウドゲームサーバ上で実行され、
ユーザから前記ゲームに関するインタラクションを受信し、前記インタラクションは、前記ゲームの結果に影響を与えるために使用されるものであり、
前記ゲームの部分内で前記ユーザによって提供される前記インタラクションを分析して、前記部分内での前記ユーザのゲームプレイ行動を特定し、
前記ゲームプレイ行動は、前記部分内で前記ユーザのゲーム進行を妨げた前記ゲームプレイ内のずれを識別するものであり、
前記部分に対するゲームプレイヒントを識別して前記ユーザが前記部分で前記ゲームを進行させることを支援し、
前記ゲームプレイヒントは、前記ゲームの前記部分内でのゲーム進行のために提供されることが必要な一連のゲーム入力を識別するものであり、
前記ゲームプレイヒントは、ゲームインターフェース上でレンダリングされた前記部分に対する選択オプションに関連付けられたものであり、
前記選択オプションは、ユーザが前記ゲームの前記部分のゲーム進行を支援するために、前記ユーザに対してゲームプレイ中に前記部分に対する前記ゲームプレイヒントへのアクセスを提供する、
方法。
【請求項10】
複数の他のユーザのうちの特定の他のユーザのゲームプレイを選択し、
前記特定の他のユーザは、前記特定の他のユーザのユーザプロフィールの少なくとも一部を、前記ユーザのユーザプロフィールの対応する部分と照合することにより選択されるものであり、
前記特定の他のユーザによって前記ゲームの前記部分について提供される前記インタラクションを使用して、前記ゲームの前記部分についてのゲームヒントを提供し、
提供される前記ゲームヒントは、前記ユーザのゲーム行動に基づいて前記ユーザ向けにカスタマイズされ、
前記ゲームヒントは、ビデオ形式、またはテキスト形式、またはオーディオ形式で提供されるか、または、前記ビデオ形式、前記テキスト形式、及び前記オーディオ形式のうちのいずれか2つまたは全ての組み合わせで提供される、請求項に記載の方法。
【請求項11】
前記ゲームの前記部分をプレイして前記部分の完了に成功した複数の他のユーザのゲームプレイ行動を用いてゲームプレイモデルが更新され、
かつ、前記ユーザの前記ゲームプレイ内の前記ずれは、前記部分に対する前記ユーザのインタラクションと、前記複数の他のユーザのインタラクションとを前記ゲームプレイモデルを用いて比較することで決定される、
請求項10に記載の方法。
【請求項12】
ゲームプレイヒントの識別では、更に、
前記複数の他のユーザのうち前記ゲームプレイモデルから識別された特定の他のユーザのゲームプレイを選択し、前記特定の他のユーザは、前記特定の他のユーザのユーザプロフィールの少なくとも一部を、前記ユーザのユーザプロフィールの対応する部分と照合することにより選択され、かつ、
前記特定の他のユーザによって前記ゲームの前記部分について提供されるゲーム入力を用いて、前記ゲームの前記部分についてのゲームプレイヒントを提供し、
前記ユーザに与えられた前記ゲームプレイヒントは、前記ユーザの前記ゲームプレイ行動に基づいてカスタマイズされ、
前記ゲームプレイヒントは、ビデオ形式、またはテキスト形式、またはオーディオ形式で提供されるか、または、前記ビデオ形式、前記テキスト形式、及び前記オーディオ形式のうちのいずれか2つまたは全ての組み合わせで提供される、
請求項11に記載の方法。
【請求項13】
前記ゲームの前記選択の検出では、
前記ゲームインターフェース上で前記ユーザに対する前記ゲームプレイヒントを更新し、かつ、前記ユーザの以前のゲームプレイのゲーム状態の画像クリップのレンダリングを行う、
請求項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ユーザインタラクションのためのゲームを提供するためのシステム及び方法に関し、より詳細には、ゲームプレイの詳細を表示するオプションを有するユーザインターフェースを提供することに関する。いくつかの例では、個人化されたユーザインターフェース(UI)及び/またはユーザエクスペリエンス設計(UX)を生成するために、ユーザのゲームプレイのインタラクションが収集され、分析される。ユーザがアプリケーションを離れた後にメインUI/UXインターフェースを変更して、ユーザがアプリケーション(たとえば、ゲームのアクション)に戻るのを最大限に支援する手法に関する例を説明する。いくつかの例では、ゲームプレイ中/アプリケーションの使用中に特定のユーザインタラクションデータをキャプチャし、次いで分析して、ユーザの以降のゲームプレイまたはアプリケーションの使用に対するヒント及び/または支援を特定する。
【背景技術】
【0002】
急速に進化している技術の1つは、ユーザがインターネットなどのネットワークを介してクラウドゲームサイト上で利用可能な多数のゲームにアクセスし、ゲームのプレイを開始することができるクラウドゲームの分野にある。ユーザはクラウドゲームサイト上の自分のアカウントにアクセスし、そのユーザアカウントで利用可能なゲームのリストから、ゲームプレイのためにゲームを選択する。ユーザがクライアントデバイスを使用してクラウドゲームサイトからゲームプレイのためにゲームを選択すると、クラウドゲームサイトのサーバはゲームプレイのセッションを開始し、ユーザがクラウドゲームサイトにアクセスしたクライアントデバイスにゲームのビデオフレームのストリーミングを開始する。ユーザがゲームを完了する前にゲームプレイセッションを終了すると、ゲームプレイは一時停止され、ゲームデータがメタデータとして記憶されて、ユーザが中断したところからゲームを再開できるようになる。キャプチャされるゲームデータは、実行したアクション、得られた結果、得点、乗り越えたハードル、捕獲または打倒した敵、入手もしくは消費したまたは授与されたゲームツール、友人とのコミュニケーション、共有したゲームクリップ、生成されたミニゲームなどを含む。しかしながら、ユーザがゲームを再開すると、ゲームロジックは単にゲームプレイのためにゲームをロードする。ユーザがゲームを再開する場合に、メタデータで提供されるゲームプレイの全ての詳細(友人/仲間/プレイパートナー間のゲーム内メッセージ、チャットの詳細、ゲーム統計など)を復元し、ユーザに対してレンダリングする簡単な方法はない。
【0003】
さらに、ゲームロジックによって提供されるユーザインターフェースは、全てのユーザに対して同一である。ユーザインターフェースはユーザごとにカスタマイズされておらず、ユーザに関するゲームプレイの全ての詳細を取得する簡単な方法はない。またさらに、ユーザインターフェースは、ゲームプレイ中に行われるゲーム内コミュニケーション及び他のソーシャルインタラクションに関するさらなるゲームプレイメタデータ、またはゲームセッションの他の詳細を表示しない。新たなユーザがゲームのプレイを開始する場合、そのユーザはゲーム内の課題またはハードルを克服するために実行することが必要な全てのアクションにあまり精通していない場合がある。このため、ユーザはゲーム内でやりたいことを達成できないためにユーザに大きな不満がもたらされ、満足のいくユーザエクスペリエンスが得られずにゲームを離れることになる。
【0004】
ゲームプレイの前または最中にユーザの行動メトリックのうちの特定の行動メトリックを表示し、ユーザが複数のメニュー内を移動する必要なく、ユーザがプレイするゲームの以前のゲームプレイのゲーム状態を見られるようになるオプションをユーザに提供できれば有利であろう。また、ユーザが他のユーザのゲームプレイを見ることができ、それによってユーザが自分のゲームプレイスキルを向上させることができれば有利であろう。
【0005】
本発明の実施形態は、以上の状況の下になされたものである。
【発明の概要】
【0006】
本発明の実施形態は、ゲームのユーザが、ユーザまたは他のユーザの以前のゲームプレイの詳細を見ることを可能にするオプションによってユーザインターフェースを更新するための方法、システム及びコンピュータ可読媒体を開示する。ユーザインターフェースは、クラウドゲームサーバ上でユーザアカウントで利用可能な複数のゲームへのアクセスを提供する。本明細書ではクラウドゲームサーバに関する考察を提供するが、任意のゲームまたはアプリケーションコンピューティングシステムが、本明細書に記載の処理を使用し、恩恵を受け得ることを理解されたい。例として、他のコンピューティングシステムは、ローカル及びリモートに位置するゲームコンソール、パーソナルコンピュータ、モバイルユーザデバイス、タブレット、ディスプレイスクリーン、テレビ、パーソナルコンピュータシステム、サーバ、仮想マシンなどを含み得る。さらに、様々な実施形態はビデオゲームアプリケーションに制限されず、任意のインタラクティブアプリケーション(たとえば、アプリ)が本明細書に記載の機能を利用し得ることを理解されたい。したがって、ゲームへの言及は、範囲をゲームに限定するものと見なされるべきではなく、任意のタイプのアプリケーションが、本明細書に記載の特徴の一部または全部を使用し得る。
【0007】
一実施形態では、ゲームサイトまたはアプリケーションへのアクセスが提供される場合、ユーザインターフェースは、ユーザが見ているまたはプレイしているゲームごとにユーザ向けにカスタマイズされた行動メトリックを提供し得る。これらの行動メトリックは、ゲームのゲーム状態及びヒントを提供して、ユーザが自分のゲームプレイを改善できるようにする。いくつかの例では、個人化されたユーザインターフェース(UI)及び/またはユーザエクスペリエンス設計(UX)を生成するために、ユーザのゲームプレイのインタラクションが収集され、分析される。ユーザがアプリケーションを離れた後にメインUI/UXインターフェースを変更して、ユーザがゲームのアクションに戻るのを最大限に支援する手法に関する例について説明する。いくつかの例では、ゲームプレイ中/アプリケーション内での移動中に、特定のユーザインタラクションデータをキャプチャし、次いで分析して、適切なヒントを特定する、及び/またはユーザの以降のゲームプレイに対するカスタマイズされた支援を提供する。このタイプの支援をユーザに提供することで、ゲーム/アプリケーションに対するユーザの不満が減り、アプリケーション/ゲームに対するユーザの没入度が高くなる。
【0008】
一実施形態では、ユーザがゲームプレイのためにゲーム(すなわち、ユーザインタラクション用のアプリケーション)を選択した場合、ゲームプレイ中のユーザインタラクションがメタデータ内に記録される。ユーザがゲームアプリケーションのゲームセッションを終了した後、たとえば、ゲーム状態(テキストもしくは画像またはビデオ形式)、ゲーム統計、ヒント及び/または他の支援などの、ゲームプレイセッションの詳細を提供するオプションを含むようにユーザインターフェースを更新して、ユーザが以降のゲームプレイセッション中にゲームの自分のゲームプレイを改善するのを助ける。ヒントは、オーディオ形式、ビデオ形式、テキスト形式などを含む様々な形式で提供され得、取るべきステップの詳細、行うべきボタン押下の順序、ゲームをプレイして完了した、またはゲームの一部の、ゲームのレベルの、もしくはゲームの完了メトリックを達成した異なるユーザのビデオクリップ、などを含み得る。メタデータに記録された詳細を使用して様々なヒントを提供することによって、ユーザがゲームプレイに専念あるいは没入し、興味を持ち続けつつ、ユーザが満足のいくゲームプレイ体験を得られるようにする。
【0009】
いくつかの実施形態では、アプリケーション/ゲームの使用中に、リアルタイム分析に使用され得るデータ及び/またはメタデータをキャプチャするための処理が実行される。リアルタイム分析を使用して、ゲームをプレイしているまたはアプリケーションとインタラクトしているときのユーザの行動を識別または定量化することができる。この情報を使用して、今後のゲームのプレイまたはアプリケーションとのインタラクションのためのユーザ向けのヒントを追加または削除することができる。これらのヒントの一部は、ユーザがアプリケーションまたはゲームとのインタラクションを終了した直後に動的に生成することができる。提供される情報は、ユーザの活動、ユーザの活動またはアクションのプロファイリング、アプリケーションインタラクションに関する履歴データ、同じゲームまたはアプリケーションに関するコミュニティデータなどを含むことができる。いくつかの実施形態では、機械学習を使用して、ユーザのインタラクションを処理し、さらなるアプリケーションインタラクションの提案を提供し、またはアプリケーションとインタラクトするためのヒントもしくは提案を提供する。場合によっては、この情報は、ユーザをアプリケーションにエンゲージされた状態とするために、つまり、アプリケーションに没入した状態、あるいは専念した状態とするために使用される。
【0010】
場合によっては、アプリケーションは、ユーザがチャンネルを選択し、コンテンツを視聴し、コンテンツを保存し、コンテンツを録画し、コンテンツを共有し、一般的にはテレビ(ライブまたは録画)コンテンツとインタラクトすることを可能にするテレビインターフェースであり得る。これらのインタラクションに基づいて、ユーザのアクションを学習することによって、過去のインタラクションに関連する使用可能なデータを提示することが可能になる。ユーザはこの有用なデータを使用して、アプリケーションに再度没入し、より多くの情報に基づいた選択を行うことによって、アプリケーションの使用及び/またはナビゲーションが改善される。一実施形態では、テレビインターフェースは、ユーザがライブ及び録画のテレビ放送にアクセスすることを可能にするオンラインテレビサービスに関する。オンラインテレビサービスは、一実施形態では、ユーザが任意のモバイルデバイスからチャンネルを選択し、ゲームをプレイし、放送を録画し、テレビを視聴することなどを可能にする。一部の構成では、クラウド処理サービスの1つまたは複数のサービスはテレビサービスを実行し、ユーザはコンピューティングデバイスを介してそのサービスに接続することができる。コンピューティングデバイスは、ゲームコンソール、USB接続スティック、テレビディスプレイに統合されたコンピュータ、モバイルデバイス、ラップトップなどを含み得る。したがって、ユーザがテレビのインタラクションセッションを終了すると、ユーザにはUI/UXインターフェースを介して有用な情報が提供され得、視聴またはインタラクションを継続するために使用され得るオプションが提供され得る。前述のように、機械学習を実装して、ローカルコンピュータまたはサーバ上でインタラクションを処理することができる。この処理は実質的にリアルタイムで実行することができ、ユーザは有用な情報及び/またはヒントを効率的に使用して、たとえば、視聴またはプレイを継続することができ、セッションを終了したり興味を失ったりしない。
【0011】
一実施形態では、一方法が提供される。この方法は、クラウドゲームシステムのクラウドゲームサーバによって実行される。この方法は、ユーザアカウント用のユーザインターフェースを提供することを含む。ユーザインターフェースは、クラウドゲームサーバ上で利用可能なゲームにアクセスするために使用される。ユーザインターフェース上に提示される各ゲームは、ゲームの対応するゲームアイコンと、ゲームのゲームプレイ中に提供されるインタラクションを使用して生成される行動メトリックにアクセスするための1つまたは複数のオプションとを含む。行動メトリックは、ユーザ自身の以前のゲームプレイ(複数可)からのものでも、ゲームをプレイした他のユーザのものでもよい。また、この方法は、ユーザインターフェースからのゲームプレイのためのゲームの選択を検出することを含む。選択の検出に応答して、ゲームのゲームプレイがインスタンス化され、ゲームプレイ中にユーザによって提供されるインタラクションが、ゲームの結果に影響を与えるために使用される。ユーザによって提供されるインタラクションを分析して、ユーザのゲーム行動を特定する。ユーザのゲーム行動に基づいて、ゲームに関する行動メトリックが生成され、行動メトリックはゲームの異なる部分ごとに、それぞれの部分におけるユーザのゲーム行動に応じて異なる。ゲームに関するユーザの行動メトリックを、ユーザインターフェース上に提供されるゲームのゲームアイコンに関連付けて、以降のゲームプレイ中にゲームの異なる部分に対して行動メトリックのうちの特定の行動メトリックをレンダリングさせるようにする。行動メトリックは、インタラクティブコンテンツを現在提供しているゲームの異なる部分のゲームプレイの変化に応じて動的に変化し、行動メトリックは、ユーザがゲームの異なる部分についてユーザのゲームプレイを改善するのを助けるために提供される。
【0012】
いくつかの実施形態では、分析及び生成の動作は、ユーザによる現在のゲームプレイセッションの終了を検出した場合に実行される。
【0013】
いくつかの実施形態では、ユーザインターフェースにおいてゲームを選択すると、ユーザの以前のゲームプレイのゲーム状態の画像クリップがユーザインターフェースにレンダリングされる。
【0014】
いくつかの実施形態では、以降のゲームプレイのためのゲームの選択を検出した場合に、ユーザの行動メトリックがユーザインターフェース上で更新される。
【0015】
いくつかの実施形態では、ユーザの行動メトリックは、以降のゲームプレイ中にユーザを支援するために提供されるゲームヒントを含み、ヒントはゲームのゲームロジックから特定される。
【0016】
いくつかの実施形態では、以前のゲームプレイからのユーザのゲーム行動と、ゲームロジック内で定義されたゲーム入力とを使用して、ゲームのゲームモデルが生成される。ゲームモデルからの詳細を使用して、ゲームの各部分についてのユーザのインタラクションを、ゲームの各部分についてのゲームロジックによって定義されるゲーム入力と比較することにより、ゲーム中のユーザのゲーム行動の任意のずれ(deviation)が識別され、ずれは、ユーザがゲームのその部分の完了に成功しないことにつながり、またはその部分、副部分、イベント、アクション、レベル、ゲーム全体、もしくはゲーム内のシーケンスについての完了メトリックの達成に成功しないことにつながる。ゲームロジック内で定義されたゲーム入力を使用して、ゲームに関するゲームヒントが提供される。
【0017】
いくつかの実施形態では、ゲームをプレイした複数のユーザのゲーム行動と、以前のゲームプレイからのユーザのゲーム行動と、ゲームロジック内で定義されたゲーム入力とを使用して、ゲームのゲームモデルが生成される。ユーザのインタラクションを、ゲームの完了に成功した、またはゲームの少なくとも一部、一連のイベント、アクション、レベル、動き、もしくはそれらの組み合わせについての完了メトリックの達成に成功した複数の他のユーザのインタラクションと比較することによって、ゲームの一部分についてのユーザのゲーム行動の任意のずれが識別される。ユーザのスキルレベル、ユーザのゲーム行動に基づいて、または特定の他のユーザのユーザプロフィールの一部分をユーザの対応するプロフィール部分と照合することによって、特定の他のユーザのゲームプレイが選択され、特定の他のユーザによってその部分に対して提供されたインタラクションを使用して、ゲームのその部分に対するゲームヒントが提供される。ゲームヒントは、ユーザのゲーム行動に基づいてユーザ向けにカスタマイズされる。
【0018】
いくつかの実施形態では、ゲームのその部分のビデオクリップがゲームヒント内に提供され、ビデオクリップは特定の他のユーザのゲームプレイから抽出される。
【0019】
いくつかの実施形態では、ゲームプレイのために選択されるゲームは、複数のユーザによってプレイされるマルチユーザゲームであり、複数のユーザのそれぞれに対して生成される行動メトリックは、それぞれのユーザのユーザインターフェースにレンダリングされる。
【0020】
いくつかの実施形態では、行動メトリックは、ユーザによって定義される提示設定に従って提示される。
【0021】
いくつかの実施形態では、ゲームプレイのために選択されるゲームは、複数のユーザによってプレイされるマルチユーザゲームであり、複数のユーザのうちの各ユーザ用のユーザインターフェースは、ゲームのゲームプレイを再開するオプションを含む。
【0022】
いくつかの実施形態では、ヒントは、ビデオ形式もしくはテキスト形式またはオーディオ形式のうちの1つ、あるいはビデオ、テキスト、及びオーディオ形式のうちの任意の2つまたは全ての組み合わせで提供される。
【0023】
いくつかの実施形態では、ユーザインターフェースは、ゲームプレイのためにゲームをカスタマイズするオプションを含む。カスタマイズするオプションは、以降のゲームプレイについて、ゲームの速度、もしくはゲームのレベル、またはゲームの難易度を調整するオプションを含む。
【0024】
他の実施形態では、一方法が提供される。この方法は、クラウドゲームシステムのクラウドゲームサーバによって実行される。この方法は、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームにアクセスするためのユーザインターフェースを提供することを含む。現在のゲームプレイのためのゲームの選択は、ユーザインターフェースから検出される。現在のゲームプレイ中にゲームの一部分においてユーザによって提供されるインタラクションが識別される。以前のゲームプレイ中にユーザによって提供されたインタラクションと、ゲームのゲームロジック内で指定されたゲーム入力とを使用して、ゲームのモデルが生成される。以前のゲームプレイに対して生成されたモデルを使用して、現在のゲームプレイにおいて提供されるインタラクションが分析され、ユーザのゲーム行動が特定される。ユーザのゲーム行動に基づいて、ユーザの現在のゲームプレイについての行動メトリックが生成され、行動メトリックは、ユーザのゲームプレイを改善するためのヒントまたはコメントを提供する。行動メトリックは、現在のゲームプレイの変化に対応するように動的に調整される。行動メトリックは、ユーザインターフェースに提示されるゲームのゲームアイコンに関連付けられる。この関連付けによって、現在のゲームプレイ中にゲームの異なる部分に対して行動メトリックのうちの特定の行動メトリックがユーザインターフェースにレンダリングされる。行動メトリックは、現在レンダリング中のゲームにおける変化に応答して動的に変化し、ユーザがユーザの現在のゲームプレイを改善するのを助けるために提供される。
【0025】
本発明の他の態様及び利点は、添付の図面と併せて、本発明の原理を例として示す以下の詳細な説明から明らかになろう。
【0026】
本発明は、そのさらなる利点と共に、添付の図面と併せて以下の説明を参照することによって最もよく理解され得る。
【図面の簡単な説明】
【0027】
図1】本発明の一実施形態による、現在のゲームプレイのために選択されたゲームの以前のゲームプレイからの詳細を提供するために使用される例示的なシステムの簡略ブロック図である。
図2A】本発明の一実施形態による、ゲームの以前のゲームプレイに関連するゲーム状態、ヒント及び/または他の詳細を提供するために使用される様々なモジュールを有する例示的なサーバ側アプリケーションを示す図である。
図2B】本発明の一実施形態による、選択されたゲームの以前のゲームプレイのゲーム状態、ヒント、及び/または他の詳細を提供するために使用されるサーバ側アプリケーション内で利用可能な例示的なゲームプレイ評価器モジュールの簡略ブロック図である。
図3A】本発明の一実施形態による、クライアントデバイス上でレンダリングされる、サーバ側アプリケーションによって提供される様々なアプリケーションオプションを有するサンプルユーザインターフェースを示す図である。
図3B】本発明の一実施形態による、各アプリケーションの下で利用可能なマルチメディアコンテンツを提供するオプションをレンダリングするサンプルユーザインターフェースを示す図である。
図3C】本発明の一実施形態による、選択されたゲームに利用可能な行動メトリックの詳細をレンダリングするサンプルユーザインターフェースを示す図である。(1)及び(2)は、選択されたゲームに関する行動メトリックの詳細がレンダリングされる様々な方法を示す図である。
図4A】本発明の一実施形態による、ゲームのユーザの行動メトリックをユーザインターフェースに提示して、ユーザがゲームプレイを改善するのを支援するために使用されるデータフロープロセスの簡単なブロック図である。
図4B】本発明の他の実施形態による、ゲームのユーザの行動メトリックをユーザインターフェースに提示して、ユーザがゲームプレイを改善するのを支援するために使用されるデータフロープロセスの簡単なブロック図である。
図4C】本発明の一実施形態における、現在レンダリング中のゲームプレイの一部分に基づいて動的に変化する行動メトリックの簡単なブロック図である。
図5A】本発明の一実施形態による、現在のゲームプレイ中に以前のゲームプレイの詳細を提供するために使用される方法の動作の例示的なフローを示す図である。
図5B】本発明の他の実施形態による、現在のゲームプレイ中に以前のゲームプレイの詳細を提供するために使用される方法の動作の例示的なフローを示す図である。
図6】本発明の一実施形態による、地理的に分散し、ネットワークを介して接続されたユーザに情報コンテンツ及びサービスを配信するための例示的な情報サービスプロバイダアーキテクチャを示す図である。
図7】本発明の様々な実施形態による、例示的なゲームシステムの簡略ブロック図である。
【発明を実施するための形態】
【0028】
以下の説明では、本発明の完全な理解を提供するために、多数の具体的詳細を述べる。しかしながら、これらの具体的詳細の一部または全部がなくても本発明が実施され得ることは当業者には明らかであろう。他の例では、本発明を不明瞭にしないために、よく知られている処理のステップは詳細には説明していない。
【0029】
本発明の様々な実施形態によれば、クライアントデバイス上に提供されるユーザインターフェースは、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームにアクセスするために使用される。クラウドゲームサーバはクラウドゲームシステムの一部であり、クラウドゲームシステムは、クラウドゲームシステムが利用可能なリソースを使用して、オンラインゲームアプリケーションを含む複数のアプリケーションをホストするように構成される。現在のユーザによってゲームプレイのためにゲームが選択された場合、クラウドゲームサーバ上で実行される選択されたゲームのアプリケーションロジックは、ゲームのゲーム状態を特定し、ユーザが自分のゲームプレイを改善するのを支援するヒント及び他の詳細を提供する。それらの詳細はユーザインターフェースに対して更新され、ゲームプレイのためのゲームのロード中、またはゲームプレイ中に提示される。ユーザインターフェースで提供される詳細は、ゲーム状態、ゲームプレイ統計、たとえば、ゲームスコア、現在のゲームセッションで獲得したポイント数、勝ち取ったもしくは失ったまたは現在のユーザが利用可能なゲームツールのタイプ及び数、到達したレベル、各レベルに到達するのにかかった時間、現在のユーザがゲームプレイの各セッションに没入していた時間、生成されたミニゲームの数、共有しているビデオクリップの数、交換したユーザチャットまたはメッセージ、ゲームを共有したまたはチャットを交換した連絡先(ソーシャルまたはゲーム関連)、ゲームの異なる部分またはレベルのゲームプレイ中に収集された他のゲームプレイメトリックなどを含み得る。
【0030】
アプリケーションロジックはまた、他のユーザのゲームプレイを特定し、ゲームもしくはゲームの一部分の完了に成功した、またはゲームの少なくとも一部、一連のイベント、アクション、レベル、動き、もしくはそれらの組み合わせについての完了メトリックの達成に成功したユーザのビデオクリップを提示して、現在のユーザがゲームもしくはゲームのその部分を完了するために必要なゲームの動きを理解すること、またはゲームもしくはゲームのその部分に対して指定された完了メトリックを取得することを可能にし得る。ユーザインターフェースに提示する他のユーザのビデオクリップを特定するために、アプリケーションロジックは、機械学習ロジックを含むまたは用いることによって、メタデータ内に蓄積された複数のユーザのゲームプレイインタラクションを使用してゲームのゲームプレイのモデルを構築し、協調フィルタリングを適用して、ゲームの特定の部分の完了に成功した、またはゲームの特定の部分に対して指定された完了メトリックの達成に成功した複数のユーザのうちの特定のユーザからのビデオクリップを特定し得る。特定されたビデオクリップをユーザインターフェースに対して更新して、現在のゲームプレイ前に、または現在のゲームプレイ中の適切な時間に適切なビデオクリップをレンダリングさせることによって、現在のゲームプレイのユーザが、ゲームの特定の部分についてユーザ自身のゲームプレイを改善するのに必要なインタラクションを理解することを支援する。いくつかの実施形態では、ゲームまたはゲームの一部分の完了に成功することは、ゲームの進行のための最低限のレベルを満たすスコアを達成すること、あるいはゲームの一部のスキルアクション、ゲーム内のレベル、ゲーム内の動きまたはアクション、またはその組み合わせを行うことに関する。いくつかの実施形態では、最低限のレベルを満たすことは、測定可能または比較可能なルールまたはメトリックによって定義される何らかのゲームアクションに関する。場合によっては、ルールまたはメトリックを使用して、他のユーザのプレイ、他のユーザのアクション、またはプレイヤーのセグメントもしくはプレイヤーのグループによって達成されたスコアに対して比較することができる。
【0031】
ユーザを長時間没入させ続け、ユーザをアプリケーションに繰り返し引き付けることが、全てのアプリケーション(たとえば、ゲームアプリケーション)の開発者の目標である。本明細書に記載の様々な実施形態は、ゲームプレイの十分な詳細をユーザに提供して、ユーザがゲーム内を進むのに成功することを支援することによって、そのような可能性を可能にする。これに関連して、進むのに成功することは、ゲームもしくはレベルの前進、または他のアクションもしくは一連のアクションへの移動を可能にする、ゲーム内のアクションもしくは一連のアクションを実行することに関する。成功するために、システムは、ユーザによって実行されたアクションを比較するように構成され、これをゲームメカニクスに対して処理することができる。ゲームメカニクスは、事前に定義された満足度まで実行された場合に、コンピュータ処理によって定量化することができる。定量化は動的に行うことができ、ユーザによって実行されたアクションを、他のユーザのデータに対して処理する、機械学習によって生成されたモデルに対して処理する、などすることができる。いくつかの実施形態では、この処理はサーバによって行われ、サーバはネットワークを介して接続された多数のユーザから入力を取得または受信する。
【0032】
ネットワークは大量のユーザデータへのアクセスを提供し、これは1つまたは複数のクラウド処理システムによって実質的にリアルタイムに処理される必要がある。次に、この処理を使用して、ゲームプレイに関する詳細、1人または複数人のプレイヤーによって達成されたスキルを特定し、特定のプレイヤーについての定量化可能なメトリックを処理する必要がある。これらのメトリックは、場合によっては、ユーザ/プレイヤーの行動を定量化した結果を動的に生成する。次に、いくつかの実施形態では、ユーザの行動を他のユーザと動的に比較することができる。いくつかの実施形態では、機械学習はモデルを生成することができ、モデルにアクセスして、ユーザの以前のゲームプレイまたは他のユーザのゲームプレイに基づいて、ユーザの行動を識別または予測することができる。
【0033】
ユーザのゲームインタラクション(以前のゲームプレイ及び/または現在のゲームプレイの両方)を分析し、ユーザが進むために何らかの支援を必要とするゲームの部分を特定することによって、詳細が提供される。アプリケーションロジックは、協調フィルタリング及び機械学習を使用して、ユーザが完了するために支援を必要とするゲームの部分を特定し、それらの部分の完了に成功したまたは完了メトリックの達成に成功した他のプレイヤーのゲームプレイのうちの特定のものを特定し得る。分析に基づいて、ゲームのアプリケーションロジックまたはアプリケーションメカニクスは、適切な視覚、聴覚、またはテキストの手掛かり及び/またはビデオクリップ(複数可)を特定して提供し、以降のゲームプレイの前または最中にユーザに通知するまたはユーザを支援する。そのような支援を提供することによって、ユーザの不満が軽減され、ユーザはゲームに興味を持ち続ける。
【0034】
ユーザが利用可能なユーザインターフェースは、以降のゲームプレイ中にユーザを支援するヒントによって更新される。現在のゲームプレイ中のユーザのゲームプレイメトリックは、ゲームプレイ中に収集され、ユーザがユーザセッションを終了してアプリケーション(たとえば、ゲームアプリケーション)を離れた後に分析されて、ゲームプレイ中のユーザの行動メトリックが決定される。ユーザが現在アプリケーションを使用している間にキャプチャされた特定のデータの分析に基づいて、ヒントが提供される。いくつかの実施形態では、現在のゲームプレイ中にキャプチャされたインタラクションデータに加えて、ゲームの現在及び以前のゲームプレイ中に生成されたメタデータを使用して、データのリアルタイム分析を実行することによって、ユーザのゲーム行動を特定する。機械学習ロジック及び協調フィルタリングロジックを使用して、現在のゲームプレイ中のユーザのインタラクション、ユーザのゲームプレイ履歴、ゲームをプレイした他のユーザのインタラクション(すなわち、コミュニティデータ)をプロファイリングすることにより、ユーザをゲームに没入させ続ける可能性が最も高い適切なデータが提供されるようにすることによって、ゲーム行動が生成される。そのようなゲーム行動は、ユーザインターフェース上で利用可能な様々なオプションを介して提供される可視データ及び不可視データを動的に追加、削除、再配置、及び/または変更するために使用される。いくつかの実施形態では、ゲームのゲームプレイを終了した直後に、データの動的な調整が実行される。他の実施形態では、ゲームのゲームプレイ中に、データの動的な調整が実行される。
【0035】
本発明の概略的な理解を用いて、様々な図面を参照して特定の実施形態を説明する。
【0036】
図1に、本発明の一実施形態における、ユーザによるゲームの以前のゲームプレイに関する詳細を提供するために使用されるシステムの簡略ブロック図を示す。本明細書ではゲームアプリケーションを参照して様々な実施形態を説明しているが、様々な実施形態が他のインタラクティブアプリケーションにも拡張され得ることを理解されたい。全体的なシステムは、インターネットなどのネットワーク200を介してアプリケーションサーバなどのサーバ320-1に通信可能に接続された複数のクライアントデバイス100-1から100-nによってアクセスすることができるクラウドゲームシステム300である。クラウドゲームシステム300は、複数のインタラクティブアプリケーションをホストし得、各アプリケーションは1つまたは複数のサーバ上でインスタンス化され得る。サーバは、1つのデータセンター313の一部であってもよく、または地理的に分散しているデータセンターに拡散されていてもよい。クラウドゲームシステムを参照して様々な実施形態をかなり詳細に論じるが、これらの実施形態は、有線または無線接続によって直接的に、またはネットワーク200を介してアクセスされ得るローカルネットワーク内に配置されたサーバまたはコンピュータを含む他のシステムに拡張できることに留意されたい。
【0037】
クライアントデバイス100(すなわち、100-1から100-nのいずれか1つ)は、プロセッサ、メモリ、ネットワーク200に接続するためのネットワーク接続、サーバ側アプリケーションと通信するための適切なAPI、及びゲームアプリケーションなどのサーバ側アプリケーションによって提供されるコンテンツを復号するための1つまたは複数の復号器を含む任意のコンピューティングデバイスである。プロセッサは、ネットワーク接続を介してネットワーク200に接続してサーバ側アプリケーションとインタラクトし、アプリケーションプログラミングインターフェース(API)を使用してサーバ側アプリケーションと通信するまたはこれにアクセスし得るクライアント側アプリケーションを実行することが可能である。ネットワーク接続は、有線または無線接続とすることができる。クライアントデバイス100は、シンクライアント、汎用コンピュータ、専用コンピュータ、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、モバイルコンピューティングデバイス、ポータブルゲームデバイス、携帯電話、スマートフォン、ヘッドマウントディスプレイ、スマートウェアラブルデバイス、セットトップボックス、ストリーミングメディアインターフェース/デバイス、スマートテレビもしくはネットワーク接続ディスプレイ、またはリモートサーバ上で利用可能なインタラクティブアプリケーションにアクセスするために使用できる他の任意のコンピューティングデバイスであり得る。クライアントデバイス100において利用可能なネットワーク接続及び通信プロトコルによって、クライアントデバイス100は、リモートサーバと通信して、マルチメディアコンテンツのストリーミングビデオフレームを含むコンテンツを、クラウドゲームシステム300の一部であるサーバ320などのリモートサーバから受信することが可能になる。マルチメディアコンテンツのビデオフレームは、ビデオフレームがクライアントデバイス100にストリーミングされる前に、リモートサーバの符号化器を使用して圧縮されている。クライアントデバイス100は、ストリーミングビデオフレームを復元するための復号器を含み、クライアントデバイス100のそれぞれのコンポーネントを使用してコンテンツをレンダリングし得る。
【0038】
いくつかの実施形態では、クライアントデバイス100によって実行される処理の量は、入力及び出力処理に関して異なり得る。大まかに言って、ゲームまたはアプリケーションは実際には、データセンター313内で利用可能なリソースを使用してゲームサーバまたは他のアプリケーションサーバ320上で維持及び実行され、ゲームまたはアプリケーションによって生成されたコンテンツのフレームは圧縮/符号化され、クライアントデバイスに送信され、クライアントデバイス100は主に、オーディオ/ビデオデータを受信し、復号し、処理し、クライアントデバイス100のディスプレイ上にレンダリングするように機能する。クライアントデバイス100において提供されたユーザインタラクションは、ゲームサーバまたは他のアプリケーションサーバに返される。クライアントデバイス100は、ビデオデータをレンダリングするためのディスプレイに接続され得る。他の実施形態では、ディスプレイは、クライアントデバイス100に統合することができる。一実施形態では、ディスプレイは、ディスプレイデバイスのネットワーク接続性を利用するアプリケーションまたは「アプリ」のためのプラットフォームオペレーティングシステムを提供するネットワーク接続ディスプレイデバイスである。そのような実施形態では、クライアントデバイス100は、ディスプレイデバイスのオペレーティングシステムによって提供されるプラットフォーム上で実行されるアプリケーションによって定義することができる。
【0039】
サーバは、このアプリケーションで使用される場合、リモートサーバ、仮想コンピュータ、クラウドゲームサーバ、クラウドアプリケーションサーバ、リモートアプリケーションサーバ、デジタルメディアサーバ、ゲーム開発者/ゲームスポンサーのストアフロント(storefront)を提供するために使用されるサーバ、ウェブサーバ、ターミナルサーバ、コンソールサーバ、あるいはクラウドゲーム中にユーザがアクセスしてインタラクトすることができる1つまたは複数のゲームまたはアプリケーションをホストする(たとえば、ゲームまたはアプリケーションを実行するための処理リソースを提供するまたは割り当てる)ことが可能なデータセンターにおいて利用可能な他の任意のタイプまたは形式のサーバコンピューティングデバイスであり得る。サーバは、ビデオフレームのデータを圧縮するための符号化器を含み、特定のタイプの通信プロトコルに従うアプリケーションプログラミングインターフェース(API)コールを使用してデータストリーム内の圧縮されたビデオフレームをクライアントデバイス100に転送し得る。
【0040】
たとえば、データセンター313内のクラウドゲームサーバなどのサーバ320は、クライアントデバイス100に関連付けられたユーザアカウントで利用可能なアプリケーションにアクセスするための、クライアントデバイス100から受信された要求にサービス提供する。クラウドゲームサーバ320は、ユーザアカウント認証器モジュール310.1とインタラクトしてユーザアカウントを認証することによって、要求が有効なクライアントデバイス100から来ていることを保証する。今度はユーザアカウント認証器モジュール310.1が、ユーザアカウントデータベース312とインタラクトして、ユーザアカウントのアカウント情報を取得し、要求を認証する。認証に成功すると、クラウドゲームサーバ320は、アプリケーション選択器モジュール304とインタラクトして、ユーザアカウントで利用可能な様々なアプリケーションを特定する。利用可能なアプリケーションはインタラクティブアプリケーションであり、購入されたアプリケーション、他のユーザによって共有されたアプリケーション、ならびに無料及び/または全てのユーザアカウントで利用可能なアプリケーションを含む。たとえば、インタラクティブアプリケーションは、ストリーミングマルチメディアコンテンツアプリケーション、たとえば、様々なメディアコンテンツプロバイダ及びユーザによって提供されるテレビ及びビデオサービス、音楽サービス、ゲームアプリケーション、写真アプリケーション、ライブラリサービスなどを含み得る。前述のインタラクティブアプリケーションは単なる例であり、マルチメディアコンテンツを提供する他のタイプのインタラクティブアプリケーションも含まれ得る。
【0041】
クライアントデバイス100に転送されてレンダリングされるユーザインターフェース内に、利用可能なアプリケーションが提供される。ゲームアプリケーションなどのアプリケーションのユーザ選択は、サーバ320に転送される。しかしながら、前述のように、実施形態は範囲をゲームに限定するものではなく、任意のタイプのアプリケーションが本明細書に記載の特徴の一部または全部を使用し得る。サーバ320は、アプリケーション選択器モジュール304とインタラクトして、ユーザアカウントで利用可能な様々なゲームを取得する。アプリケーション選択器モジュール304は、アプリケーションタイトルデータストア311に問い合わせて、ユーザアカウントで利用可能なゲームのリストを取得し、ゲームのリストを提供してユーザインターフェース上にレンダリングさせる。クライアントデバイス100におけるユーザインターフェースからのゲームの選択は、サーバ320に伝達される。ビデオゲームの選択に応答して、サーバ320はビデオゲームを実行し、ストリーミングコンテンツを提供して、クライアントデバイス100のユーザインターフェース上に提示させる。クライアントデバイス100におけるゲームに関連するユーザインタラクションは、ゲームの結果を動かすために使用される。
【0042】
図2Aに、一実施形態における、ユーザがゲームプレイを改善するのを支援するためのヒント及び他の詳細を提供する、ユーザに提供されるユーザインターフェース(UI)及び/またはユーザエクスペリエンス設計(UX)を更新するために使用される例示的なサーバ側アプリケーション310を示す。サーバ側アプリケーション310は、データセンター313の一部であるクラウドゲームサーバ320によって実行され、ゲーム実行エンジンなどの実行エンジンと、複数のモジュール(論理モジュール)とを含み、複数のモジュールは、相互にインタラクトして、(たとえば)ゲームのゲームプレイ中にクライアントデバイス100において提供されるユーザインタラクションを解釈し、メタデータ内にキャプチャされたゲームに関する現在のユーザまたは他のユーザの様々な段階のゲームプレイ(以前及び/または現在のゲームプレイ)の間に提供される適切なユーザインタラクションを特定し、ユーザに関連する詳細を提示して、現在または以降のゲームプレイ中にユーザを支援する。この目的のために、サーバ側アプリケーション310は、ゲーム実行エンジン310.2、ゲームデータ管理器310.6、一時停止管理器310.7、再開管理器310.8、オプション選択検出器310.9、及びゲームプレイ評価器310.10を含む。上述のモジュールに加えて、ゲーム実行エンジン310.2は、ユーザアカウント認証器310.1、ビデオフレームモジュール310.3、及び符号化器モジュール310.4とインタラクトし得る。
【0043】
クラウドゲームサーバ(「サーバ」とも呼ぶ)320は、データセンター313の一部である。データセンター313は、一実施形態では、複数のそのようなサーバ320(たとえば、ゲームサーバ)と、ストレージシステムとを含み、ストレージシステムは、ゲームコード、アプリケーションコード、ユーザ関連及びアプリケーション関連のデータストアを記憶することが可能であり、それらをすぐに利用できるようにして、複数のユーザからの様々な要求の処理を可能にする。また、データセンター313は、クライアントデバイス100と複数のサーバ320との間に通信接続を確立するための、ルータ、スイッチなどの電気通信機器を含み得る。複数のサーバ320のそれぞれは、クライアントデバイス100の対応するクライアント側APIと通信するための(別個または同様の)サーバ側API、及び/またはサードパーティコンテンツプロバイダ、ソーシャルメディアプロバイダなどに関連付けられたサーバ側APIが装備され得る。いくつかの実施形態では、データセンター313内のサーバ320は、様々なタイプのアプリケーション(たとえば、ゲームアプリケーションまたはインタラクティブアプリケーション)を実行し、アプリケーションコンテンツ(たとえば、ゲームアプリケーションによって生成されたビデオフレーム)を対応するクライアントデバイス100にストリーミングしてレンダリングさせるように構成され得る。
【0044】
サーバ320は、ゲーム実行エンジン310.2によって生成または提供されてビデオフレームモジュール310.3によってフォーマットされたデータのフレームを受信し、符号化器310.4内で定義された任意数の圧縮技術を使用してデータの圧縮演算を実行し、通信及び/または伝送プロトコルのいずれか1つを使用して圧縮データをクライアントデバイス100に送信するように構成され得る。サーバは、典型的には特定の機能、ゲーム、またはアプリケーションを実施または実行するために使用されるターミナルサーバ、コンソールサーバ、仮想サーバなどを含み得る。サーバによって実行される機能、ゲーム、またはアプリケーションの例の中には、データベース管理、ファイル管理、メールサービス、印刷サービス、ウェブサービス、ゲーム管理、アプリケーション管理、メディア管理、カタログサービス、ライブラリサービス、音楽サービス、通信管理、コンピューティングサービス、及びプロキシ管理が含まれ得るが、これらは一部の例である。いくつかの実施形態では、コンソールサーバなどのサーバ320は、ゲームを実行し、ストリーミングビデオフレームを1つまたは複数のクライアントデバイス100に提供してレンダリングさせることによって、ゲームコンソールをエミュレートし得る。いくつかの実施形態では、複数のサーバ及び/またはストレージデバイスがラックマウント型サーバまたはストレージデバイスとして設けられ得、各データセンターはサーバ及び/またはストレージラックの列を含む。各サーバは、複数のアプリケーションを実行することが可能であり得、及び/または幅広いサービスを提供し得る。
【0045】
クラウドゲームシステム300上で実行されるゲームアプリケーションは、同じ場所に位置するかまたは異なる地理位置に位置するユーザからの、シングルユーザまたはマルチユーザのクラウドベースのゲームを円滑化することを理解されたい。リモートに位置するユーザ間のマルチユーザのクラウドベースのゲームの場合、クラウドゲームシステム300は、ユーザによりネットワーク200を介してアクセスすることが可能な1つまたは複数のデータセンター内の2つ以上のサーバ320(たとえば、アプリケーションまたはゲームサーバ)によりビデオゲームのインスタンスを実行可能にすることによって、そのようなゲームアプリケーションのゲームプレイを円滑化する。単一のインスタンス(シングルユーザゲームの場合)または異なるインスタンス(マルチユーザゲームの場合)からのゲーム状態がサーバ間で交換されて、そのようなマルチユーザゲームが可能になる。このように、ビデオゲームの実行は、いかなる1人のユーザのハードウェアにもネットワークの伝導性(conductivity)にも依存しないが、これはその所与のユーザのゲームプレイ体験に影響を与える。
【0046】
本明細書に記載のクラウドゲームアーキテクチャを使用して実行される動作は、データベースへの迅速なアクセスと、ユーザのリモートに位置するクライアントデバイス100へのゲームプレイコンテンツなどのコンテンツの提示とを可能にするために複数のサーバ及び/または実行プラットフォームを必要とする技術的動作を形成する。また、クラウドゲームは、クラウドゲームサーバによって任意数の圧縮技術を利用して実行される圧縮演算を含むことができる。圧縮技術は標準的な符号化器を使用し得、これにより、次いで、クライアントデバイス100上の標準的な復号器がデータにアクセスし、復号することが可能になる。いくつかの実施形態では、特殊な符号化器及び復号器をそれぞれサーバ及びクライアントデバイスに実装して、特殊な符号化及び復号を可能にしてもよい。復号されたデータを、クライアントデバイスにおいてさらに処理して、画像、ビデオ及びオーディオデータを識別し得、次いでこれらをクライアントデバイス100上の適切なデバイスコンポーネントを使用して提示することによって、ビデオゲームのゲームプレイが可能になる。
【0047】
ビデオゲームの管理及び配信は、いくつかのデータセンター、ダイレクションサーバ(Direction Server:DS)、サービス品質テスターまたはエンジン、より低遅延のデータセンターへのダイレクション及びリダイレクションを含むことができる。ビデオゲームの管理及びゲーム関連データの配信は、ストリーミング用に設計され、ゲームのリモート実行による遅延が少ない専用サーバコンピュータを含む、任意数のデータセンターのサーバと、ストリーミングゲームまたはアプリケーションデータのクライアントデバイス100への配信とを必要とすることを理解されたい。
【0048】
クラウドゲームシステム300にアクセスする要求がクライアントデバイス100から受信された場合、アプリケーションホスティングシステム(たとえば、クラウドゲームシステム300)のサーバ320上で実行されるサーバ側アプリケーション310は、ユーザアカウント認証器モジュール310.1とインタラクトして、ユーザ関連情報を取得する。ユーザアカウント認証器モジュール310.1は、複数のユーザのユーザプロフィール及び他のユーザアカウント情報が維持されるユーザアカウントデータベース312にユーザアカウント情報を照会し、そこから受信する。ユーザプロフィール及びユーザアカウント情報を使用して、クライアントデバイス100からの要求に関連付けられたユーザを識別し、ユーザの要求を認証する。ユーザが認証されると、その要求は、サーバ側アプリケーション310によってサービス提供される。一実施形態では、サーバ側アプリケーション310は、購入されたアプリケーション、ユーザが見るまたはインタラクトすることを許可されたアプリケーション、無料で利用可能な全てのアプリケーションなどを含む、ユーザアカウントで利用可能な全てのアプリケーションを特定し得る。ユーザアカウントで利用可能なアプリケーションが特定され、リストで返されて、クライアントデバイス100のディスプレイ上のユーザインターフェースに提示される。一実施形態では、リスト上のアプリケーションのいずれか1つのユーザ選択が、サーバ側アプリケーション310によって検出され、それに応答して、選択されたアプリケーションの下での様々なオプションが特定され、送信されて、ユーザインターフェース上に提示される。様々なアプリケーションと、各アプリケーションの下で利用可能な様々なオプションとについて、図3A図3Cを参照してより詳細に論じる。
【0049】
たとえば、ユーザインターフェースからゲームアプリケーションが選択された場合、サーバ320は、その選択に応答して、ユーザアカウントで利用可能なゲームタイトルのリストを特定し、リストを送信して、クライアントデバイス100のユーザインターフェース上に提示させ得る。一実施形態では、サーバ側アプリケーション310の一部であり得るアプリケーション選択器モジュール304は、アプリケーションタイトルデータストア311とインタラクトして、ユーザアカウントで利用可能な様々なゲームタイトルを特定し得る。ゲームタイトルのリストはクライアントデバイスに転送されて、ユーザインターフェース上にレンダリングされる。加えて、サーバ側アプリケーションは、ゲームデータストア313に問い合わせて、行動メトリックが、ユーザアカウントに対して特定された各ゲームタイトルに利用可能であるか否かを判定し得る。ゲームタイトルのいずれかに利用可能な行動メトリックが存在する場合、そのような情報もゲームタイトルと共に含められて、クライアントデバイスに提供される。ユーザアカウントのユーザまたは他のユーザがそれぞれのゲームタイトルを以前にプレイした場合、ゲームタイトルに関する行動メトリックが利用可能であり得る。行動メトリックは、一実施形態では、以前のゲームプレイ中にユーザまたは他のユーザによって提供されたゲームプレイインタラクションに基づいてユーザ向けにカスタマイズされたゲームのコツ、たとえば、ゲームヒント、ゲームプレイのビデオクリップなどを提供する。他の実施形態では、クラウドゲームシステムによってホストされるゲームタイトルに関して、それらのゲームタイトルが登録されたゲームプレイを有さない場合であっても、行動メトリックが利用可能であり得る。この実施形態では、ゲームに関するゲームヒントは、ゲームのゲームロジック内で指定された期待されるユーザ入力を含み得る。
【0050】
一実施形態では、クライアントデバイス100上にレンダリングされたゲームタイトルのいずれか1つのユーザ選択は、クライアントデバイス100からクラウドゲームシステム300のサーバ320に送信される、ゲームタイトルの選択をサーバに通知する信号に基づいて検出される。ゲームタイトルのユーザ選択の受信に応答して、クラウドゲームシステム300のサーバ320は、選択されたゲームタイトルのインスタンスを実行し得る。ゲーム実行エンジン310.2によって、選択されたゲームに関して定義されたゲームロジックを使用して、ゲーム関連データが生成される。ゲーム関連データは、ビデオフレームモジュール310.3によってフォーマットされ、符号化器310.4によって任意の標準的なまたは特別な圧縮技術を使用して圧縮される。符号化されたゲームデータは次いで、サーバ側アプリケーション310によって指定された通信プロトコルに従って、ネットワーク200を介してクライアントデバイス100にストリーミングされる。
【0051】
いくつかの実施形態では、符号化器310.4は、サーバ側アプリケーション310の一部であり得る。サーバ側アプリケーションのアプリケーションプログラミングインターフェース(API)を使用して、符号化されたビデオフレームをプライマリクライアントデバイス100にストリーミングする。いくつかの実施形態では、サーバ側アプリケーション310の一部であるAPIは、ビデオフレームを符号化し、符号化されたビデオフレームをクライアントデバイスに転送するための符号化ロジックを含み得る。他の実施形態では、ゲーム実行エンジン310.2において生成されたビデオフレームは、サーバ320のオペレーティングシステムによってキャプチャされ、処理される。いくつかの例では、オペレーティングシステムは、ビデオフレームを符号化し、ネットワーク状態を監視し、符号化されたビデオフレームがクライアントデバイス100にストリーミングされる前に、ビデオフレームの品質を調整し得る。あるいは、オペレーティングシステムは、ビデオフレームを処理し、これをHDMI(登録商標)ビデオ信号として転送し得る。クラウドゲームシステムの外部またはサーバ320の外部にある外部アプリケーションは、HDMI(登録商標)ビデオ信号をキャプチャし、外部の符号化器を使用してHDMI(登録商標)ビデオ信号内にキャプチャされたビデオフレームを符号化し、ネットワーク状態を監視し、外部アプリケーション内で利用可能な1つまたは複数のAPIを介してビデオフレームをクライアントデバイス100に送信する前に、ビデオフレーム内の画像の解像度及び/または伝送レートを調整し得る。キャプチャ、ネットワーク状態の監視、ビデオフレームの符号化及び送信に使用される処理は、オーディオデータにも拡張され得ることに留意されたい。クライアントデバイス100におけるユーザインタラクションは、サーバ320によって受信され、ゲーム実行エンジン310.2においてゲーム結果を調整するために使用される。
【0052】
ユーザはゲームとインタラクトし得、そのようなユーザインタラクションは、サーバ側アプリケーション310に返される。一実施形態では、ゲームプレイ評価器310.10は、ゲームプレイ中に生成されたインタラクション(バブル「d」で表す)を受信し、インタラクションを処理して、クライアントデバイスにおいて提供されたインタラクションタイプを特定する。処理されたインタラクションはゲーム実行エンジン310.2に転送されて、ゲームの結果に影響を与える。ゲーム実行エンジン310.2は、ゲームデータ管理器とインタラクトして、ゲームのゲームプレイ中に提供されるインタラクションに基づいて、ゲーム状態、ゲームプレイ統計、及び他のゲーム関連、ユーザ関連情報を特定し、更新し得る。次に、更新されたインタラクションは、ゲームプレイデータストア113及び/またはユーザアカウントデータストア312に記憶される。たとえば、ユーザアカウントのゲームレベル、ゲーム状態、ゲームプレイ統計、ゲームプレイ中のソーシャルコミュニケーションなどのゲーム関連データが、ゲームプレイデータストア113に対して更新され得る。同様に、ユーザのスキルレベル、ランキング、人気などのユーザ関連データが、ユーザアカウントデータストア312に対して更新され得る。ゲーム実行エンジン310.2は、ユーザインタラクションに基づいてゲームに対するゲーム更新を生成し得、そのような更新はフォーマットされ、圧縮され、ネットワーク200を介してクライアントデバイス100にストリーミングされて、レンダリングされる。
【0053】
ゲームのプレイが進行するにつれて、ユーザはゲームを完了することを選択する場合があり、またはゲームがあまり進行していないという不満から、ゲームプレイの途中でゲームをやめる場合がある。ユーザがゲームセッションを終了した場合、バブル「a」で表す方向矢印で示すように、ゲーム一時停止信号がクライアントデバイス100によってゲーム実行エンジン310.2に直接送信され得る。他の実施形態では、バブル「b」で表す方向矢印で示すように、一時停止信号がオプション選択検出器310.9に送信され得る。オプション選択検出器310.9は、一時停止信号を解釈し、バブル「c」で表す方向矢印で示すように、一時停止管理器310.7に指示するか、またはコマンドもしくは信号を送信して、ゲームのゲームプレイを一時停止させ得る。一時停止管理器310.7は、一時停止コマンドの受信に応答して、ゲーム実行エンジン310.2に信号を送って、ゲームプレイを一時停止させ得る。他の実施形態では、一時停止オプションのユーザ選択は、バブル「d」で表す方向矢印で示すように、ゲームプレイ評価器310.10に転送され得る。一時停止コマンドまたは信号は、ゲーム識別子及び/またはクライアントデバイス識別子を含み得る。ゲームプレイ評価器310.10は、オプションのユーザ選択の受信に応答して、バブル「e」で表す方向矢印で示すように、ゲーム実行エンジン310.2に信号またはコマンドを送信して、ゲームのゲームプレイを一時停止させ得る。
【0054】
どのモジュールが一時停止信号の提供に使用されているかに関係なく、ゲーム実行エンジン310.2は、一時停止信号に応答して、ゲームデータ管理器310.6とインタラクトして、一時停止信号がサーバ320において受信された時点でのゲームのゲーム状態を特定する。ゲーム実行エンジン310.2は、一時停止信号が受信された時点でのゲーム状態を分析し、ゲームプレイが再開され得る再開ポイントを特定するように構成される。ゲームのゲーム状態及び再開ポイントは、ユーザアカウントについてゲームプレイデータストア313を更新するために、ゲームデータ管理器310.6に提供され得る。ゲームデータ管理器310.6によって更新されるゲームデータは、一時停止要求が受信された時点までのゲームプレイ中のゲームの進行を含む。このゲームデータを使用して、以降のゲームプレイセッション中にゲームプレイが再開されたときに、ゲームのゲームプレイを再生成し得る。さらに、ゲームプレイの一時停止の一部として、ゲーム実行エンジン310.2は、クライアントデバイスへのゲームのストリーミングビデオフレームを中断する。
【0055】
ゲームは、シングルユーザゲームでもマルチユーザゲームでもよい。ゲームがマルチユーザゲームである場合、ユーザはゲームプレイセッション中に1人または複数人の他のユーザと一緒にゲームをプレイしている場合がある。そのような場合、あるユーザが一時停止してゲームプレイセッションを終了すると、他の各ユーザのゲームプレイが一時停止され得、各ユーザのゲーム状態がゲームプレイデータストア313のゲームデータ内に記憶される。マルチユーザゲームをプレイしていたユーザのうちの誰かによって、対応するクライアントデバイスのユーザインターフェースにおいて再開オプションを選択することにより、ゲームプレイが再開され得る。
【0056】
他の実施形態では、マルチユーザゲームの1人のユーザがゲームプレイセッションを終了した場合、他のユーザのゲームプレイは続行し得る。そのような実施形態では、マルチユーザゲームのそれぞれのゲームプレイは、ゲームプレイデータストア313にセーブされる。ゲームプレイを続行した他の各ユーザのゲームプレイは、ユーザアカウントに関連付けられたゲームに関する行動メトリックを特定する際に使用される。行動メトリックを使用して、ユーザアカウントに対する、ゲームの以降のゲームプレイセッションのためのヒント及び他の詳細をユーザインターフェースに提供する。
【0057】
一実施形態では、ユーザはゲームプレイのためにゲームを選択し得、そのユーザ選択はゲームを最初から開始するためのものである。ゲームは以前に一時停止されている場合がある。しかしながら、ゲームのゲームプレイを最初から開始するためのユーザ選択により、ゲーム実行エンジンは、サーバ上でゲームのインスタンスを実行して、ゲームをゲームプレイ可能にする。
【0058】
他の実施形態では、ユーザは、以前のゲームプレイセッション中に以前に一時停止されたゲームを再開することを選択し得る。再開要求は、ユーザインターフェースにおいて提供される再開オプションをユーザが選択することによって、開始され得る。再開オプションのユーザの選択は、クライアントデバイスからサーバ320上のオプション選択検出器310.9に送信される。オプション選択検出器310.9は、要求が有効なオプションであることを検証し、検証された後、再開オプション信号を再開管理器310.8に転送することによって、ユーザの選択を処理する。再開管理器310.8は、ゲーム実行エンジン310.2とインタラクトして、再開要求が以前のゲームプレイセッション中にユーザによって一時停止されたゲームに関するものであることを検証し、ゲームのゲーム状態を特定することによって、要求を処理する。
【0059】
ゲーム実行エンジン310.2は、ゲームデータ管理器310.6に問い合わせて、ゲームのゲーム状態、ゲームプレイを再開するゲーム内の再開ポイント、ユーザの以前のゲームプレイからのゲームプレイ統計、及びユーザにゲームの詳細を提供するための他のデータを取得し得る。次に、再開管理器310.8は、ゲーム実行エンジン310.2に、再開ポイントまでのゲームのゲームプレイを再生成し、再開ポイントからゲームのゲームプレイを再開するよう指示し得る。一実施形態では、再開ポイントは、ゲームプレイが一時停止された場所の数ビデオフレーム前にあるゲーム内のポイントを特定し得る。
【0060】
ゲーム実行エンジンは、ゲームデータ管理器310.6から取得されたデータを使用して、ゲーム内の勝ち、負け、克服したゲームレベル、残ったゲームオプション、ゲーム内チャット、メッセージなど、以前のゲームプレイ中に生成されたゲーム外のソーシャルコミュニケーション、ゲームステータスなどを含めて、再開ポイントまでのゲームを再生成することによって、ユーザが中断した時点までのゲームのステータスを提示するようにし得る。一実施形態では、ゲームの再生成(すなわち、ローディング)中または現在のゲームプレイ中に、ゲーム実行エンジン310.2は、ユーザ向けにゲームの特定の部分について生成された行動メトリックを表示するオプションをユーザに提供し得る。
【0061】
ゲームがロードされ、ゲームプレイが再開されると、再開されたゲームプレイから生成されたビデオフレームは、符号化器ロジック310.4を使用して、クライアントデバイス100用に定義された通信プロトコルに従って圧縮され、ネットワーク200を介してクライアントデバイスにストリーミングされる。現在のゲームプレイにおけるユーザインタラクションは、ゲームプレイ評価器310.10、オプション選択検出器310.9によって受信及び処理され、ゲームの現在のゲーム状態を更新するための適切な信号がゲーム実行エンジン310.2に送信される。
【0062】
ゲーム実行エンジン310.2は、現在のゲームプレイ中に提供されるユーザのインタラクションを含むゲームのゲームデータを分析して、ユーザの現在のゲーム行動、そのゲームまたは他のゲームの以前のゲームプレイから特定される過去のゲーム行動を特定し、ゲームの現在のゲーム状態に基づいてユーザの適切な行動メトリックを提供する。分析の一部として、ゲーム実行エンジン310.2は、ゲームをプレイした他のユーザのゲーム行動を分析し、他のユーザのうちの選択されたユーザの適切な行動メトリックを特定し、他のユーザの行動メトリックを含めて、ユーザのユーザインターフェースに提示し得る。現在のゲーム状態は、ユーザが現在プレイしているゲームの部分を特定する。ゲーム内のユーザインタラクションは、ゲームのゲーム状態を更新するために使用される。
【0063】
ゲーム状態が変化すると、ユーザインターフェース内に提供される行動メトリックが動的に更新される。ユーザがゲームを進行し、ゲームの異なる部分とインタラクトし続けるにつれて、ゲーム状態が動的に更新されていく。ゲーム状態が変化すると、ユーザインターフェースに提示される行動メトリックが動的に更新されるので、ユーザが現在インタラクトしているゲームの部分に関連する適切なヒント及び他の詳細がユーザインターフェース内に提供される。ユーザがゲームのその部分のユーザのゲームプレイを改善するのを支援するためのヒントがユーザインターフェース上に提供される。これらのヒントは個人化され、その部分に基づいてユーザに合わせて調整され、ゲームのその部分でのユーザのゲーム行動に基づいている。たとえば、ゲーム実行エンジンは、機械学習ロジックを使用して、ユーザの現在のゲームインタラクションと、ゲームの以前のゲームプレイ中に提供された過去のインタラクションとを分析して、ゲームのその部分のゲームプレイ中にキャプチャされたユーザのゲーム行動を特定する。分析に基づいて、ゲーム実行エンジン310.2は、ユーザがゲームのその部分において遭遇した特定の課題を克服することが困難であると判定し得る。次いで、ゲーム実行エンジンは、協調フィルタリングを利用して、他のプレイヤーのゲームプレイのうちの特定のもの(ユーザの行動メトリックをそこから生成すべきである)を特定し得る。
【0064】
行動メトリックは、ゲームのゲームプレイにおいてユーザを支援するためのゲームヒント及び他の詳細を含む。ヒントは、テキスト形式、オーディオ形式、ビジュアル形式、ビデオ形式、グラフィカルユーザインターフェース形式などで提供され得、場合によっては、行うべきゲームの動き、押すべきボタンの順序などを含み得る。また、ヒントのビデオ形式は、他のユーザのゲームプレイのビデオクリップを含み得る。ユーザインターフェースは、行動メトリックにアクセスするオプションによって更新される。
【0065】
一実施形態では、ゲームプレイを再開するためのゲームのロード中に、オプションのいずれかへのユーザインタラクションが検出され、クライアントデバイス100からオプション選択検出器310.9に信号が送信されて処理される。オプション選択検出器310.9は、ユーザによって選択されたオプションの有効性を確認し、選択されたオプションを処理するための適切な信号またはコマンドをゲーム実行エンジンに送信する。ゲーム実行エンジンは、選択されたオプションを識別し、ユーザ向けのゲームに利用可能な適切な行動メトリックデータを特定し得る。適切な行動メトリックを特定するために、ゲーム実行エンジンは、ゲームの現在のゲーム状態を特定し得、これにより、ユーザがゲームプレイ中に現在進んでいるゲームの部分が特定され、ユーザのゲーム行動(現在及び過去両方のゲーム行動)が特定され、ゲーム行動に基づいてゲームのその部分に適切な行動メトリックが特定される。特定された行動メトリックは、クライアントデバイス100のユーザインターフェースにおいて更新される。
【0066】
他の実施形態では、ゲーム実行エンジンは、現在のゲームプレイのためにゲームがロードされている間に、以前のゲームプレイに関連する行動メトリックの詳細のうちの選択されたものをユーザインターフェースに自動的に提示し得る。たとえば、ゲーム実行エンジン310.2は、現在のゲームプレイのためにゲームがロードされている間に、ユーザの以前のゲームプレイのゲーム統計を提供し得る。他の例では、ゲームの現在のゲーム状態がユーザインターフェース内に提供され得る。ゲーム状態と共に含まれるのは、以前のゲームプレイの最後のビデオフレームの画像またはビデオクリップであり得る。ユーザに現在のゲームプレイの準備をさせるために、ユーザが中断した場所と、ユーザによってゲームのその部分に対して提供されたインタラクションのタイプとを視覚的に示すために、画像またはビデオクリップが提供され得る。
【0067】
ゲーム実行エンジン内のゲームロジックは、機械学習ロジックを用いて、ユーザの以前のゲームプレイを評価することによって、ユーザのゲーム行動を特定し得る。評価に基づいて、ユーザがゲームの特定の部分における課題の克服を繰り返し試みており、毎回失敗しているか、または特定の部分に対して指定された完了メトリックを達成していないと判定され得る。そのような機械学習に基づいて、ゲーム実行エンジンは、現在のゲームプレイに関するヒントを特定し得る。ヒントはゲームのゲームロジック内で指定されたゲーム入力から提供されて、ユーザがゲームの特定の部分の自分のゲームプレイを改善するのに役立ち得る。一実施形態では、ゲーム実行エンジンは、機械学習ロジックから以前のゲームプレイについて取得された情報を使用し、協調フィルタリングを使用することによって、ゲームをプレイしており、現在のユーザが試行に失敗しているゲームの部分について、完了に成功したか、または完了メトリックもしくは一連のイベント、アクション、レベル、動き、またはそれらの組み合わせの達成に成功した1人または複数人の他のユーザのゲームプレイを特定し得る。次に、ゲーム実行エンジン310.2は、他のユーザのうちの特定のユーザのゲームプレイを選択し、ゲームのその部分のビデオクリップを抽出し、抽出されたビデオクリップをユーザに提示して、他のユーザ/プレイヤーがどのようにしてゲームのその部分の完了メトリックの提供に成功することができたかをユーザに視覚的に示し得る。一実施形態では、他のユーザのうちの特定のユーザは、そのユーザのスキルレベルに基づいて選択される。他の実施形態では、他のユーザのうちの特定のユーザは、ゲームのその部分について提供されたユーザインタラクションの類似性に基づいて選択される。たとえば、ユーザが特定のゲームの動きを使用してその部分におけるいくつかの課題を完了しており、他の課題を完了するのに苦労している場合、他のユーザのうちの特定の他のユーザは、そのユーザが完了したのと同じ課題を克服する際に、その他のユーザによって提供されたゲームの動きの類似性に基づいて選択される。このゲームの動きの照合により、ユーザは自分のスキルレベルを維持することができ、新たな動きを学ぶ必要がなく、他のユーザのうちの特定のユーザによって提供されたゲームの動きを使用して、他の課題を完了することができる。他の実施形態では、他のユーザのうちの特定のユーザは、ユーザのユーザプロフィールの少なくとも一部を他のユーザのユーザプロフィールの対応する部分と照合することにより選択される。
【0068】
一実施形態では、ゲーム実行エンジン310.2は、ゲームプレイを再開するためにゲームがロードされている間に、他のユーザのうちの選択されたユーザのゲームプレイのビデオクリップを提供し得る。他の実施形態では、ゲーム実行エンジンは、現在のゲームプレイのためのサーバ320でのゲームのロード中に、テキストヒントを提供してクライアントデバイス100にレンダリングし得、ユーザが現在のゲームプレイ中にゲームのその部分をプレイしているときに、他のユーザのうちの選択されたユーザからのビデオクリップを提供し得、それによってユーザは、他のユーザのゲームの動き、もしくはボタンの押下、またはゲーム入力を見て真似ることができる。一実施形態では、ユーザがゲームを進行し、行動メトリックが利用可能なゲームの特定の部分に接近すると、ゲーム実行エンジンは、現在のゲームプレイ中のユーザのインタラクションのリアルタイム分析を実行して、ユーザの特定の部分への接近を検出し、それに応答して、ユーザインターフェースを動的に更新して、ゲームの特定の部分に固有の、ユーザが利用可能な行動メトリックを提供し得る。さらに、ゲーム実行エンジンは、視覚的手掛かり(ハイライト、アニメーションマークアップなど)を提供するための信号を提供して、ゲームの特定の部分に対して行動メトリックのうちの特定の行動メトリックが表示可能または参照可能であることをユーザに通知し得る。ユーザが特定の部分を完了し、ゲームの他の部分に接近すると、ユーザインターフェースは、ゲームの新たな部分に適した行動メトリックによって更新される。ユーザが行動メトリックのうちのいずれかを選択すると、関連する詳細が提供され得、そのような詳細は、ユーザの以前のゲームプレイから取得され得(たとえば、ゲームステータス、ゲーム状態、ゲームヒント、ゲームクリップなど)、もしくは他のユーザの以前のゲームプレイから取得され得(たとえば、ゲームヒント、ビデオクリップなど)、またはゲームロジックから取得され得る(たとえば、ボタン押下など)。
【0069】
図2Bに、一実施形態における、一時停止されたゲームの現在のゲームプレイ中に、以前のゲームプレイの詳細をユーザに提供するために使用されるゲームプレイ評価器310.10内の様々なモジュールを示す。ゲームプレイ評価器310.10は、クライアントデバイス100においてユーザによって提供されたインタラクションを評価し、ユーザに提示するための適切な行動メトリックを特定するために使用される複数の論理モジュールを含む。ゲームプレイ評価器310.10に含まれる論理モジュールの例示的なセットは、ゲームプレイモデル構築器310.10a、ビデオクリップ抽出器310.10b、ゲームヒント提供器310.10c、及びゲームプレイ調整器310.10dを含む。ゲームプレイ評価器310.10は、上述の論理モジュールに限定されず、追加のまたはより少ない論理モジュールを含むことができる。
【0070】
前述のように、以前のゲームプレイの詳細は、ゲーム状態、ゲームプレイのビデオクリップ、ゲームの一部分の完了メトリックを取得するためのヒントを含む。詳細は、1つまたは複数のゲームモデルを構築し、ゲームモデル内に提供されるデータを分析することによって取得される。一実施形態では、ゲームプレイ評価器310.10は、ゲームプレイモデル構築器310.10aを用いて、ゲームモデルを構築し得る。ゲームプレイモデル構築器310.10aは、機械学習ロジックを使用して、以前のゲームプレイ中のユーザのインタラクションを分析することによって、ユーザのゲーム行動を特定し、ユーザが課題を完了するのに苦労していた以前のゲームプレイの1つまたは複数の部分を特定する。一実施形態では、機械学習は教師あり機械学習である。教師あり機械学習では、ゲームロジックに関連する機械学習ロジックは、特定の所望の結果を達成するためにゲームの一部分について提供される必要がある入力を特定する。他の実施形態では、機械学習は教師なし機械学習であり得、データ内の隠れ構造を説明するための関数が推測される。
【0071】
次に、機械学習ロジックは、その部分についてユーザによって提供されたインタラクションを分析して、ユーザによって提供されたゲーム入力が、ゲームロジックによって期待されるものに相当するか否かを判定し(すなわち、完了メトリック)、相当しない場合、それらの結果を達成するためにはどのような変更がなされる必要があるかを特定する。次に、ゲームプレイ評価器310.10は、機械学習と共に協調フィルタリングを用いて、結果または完了メトリックの達成に成功したか、ゲームのその部分に期待される一連のイベント、アクション、動き、またはそれらの組み合わせの提供に成功した様々なユーザを識別し、様々なユーザのゲームプレイのうちの選択されたものからゲームのその部分のビデオクリップを抽出して、現在のゲームプレイのユーザに提示し得る。協調フィルタリングでは、ゲームプレイ評価器310.10は、機械学習ロジックからの分析を使用して、ゲームをプレイした他のユーザのうちの誰が、ゲームのその部分の完了に成功するインタラクションを提供したかを特定する。
【0072】
ゲームプレイモデル構築器310.10aは、ゲームロジックによって指定されたゲーム入力と、ユーザのゲーム行動(ゲームの現在のゲームプレイ及び以前のゲームプレイ(複数可)中にユーザによって提供されたユーザインタラクションを含む)と、ゲームをプレイした複数の他のユーザのユーザインタラクションとを使用して、ゲームの1つまたは複数のゲームプレイモデルを構築する。一実施形態では、ゲームプレイモデルは、以前のゲームプレイからのユーザ及び他のユーザのゲーム行動を使用して構築され得る。次いで、モデルは、ユーザの現在のゲームプレイからのインタラクションによって更新される。次いで、ゲームプレイモデル構築器310.10aは、モデル(複数可)を分析して、ゲームのステップ、レベル、または部分ごとのゲームの入力を特定し、ユーザ、他のユーザによって提供された入力を検討して、他のユーザと比較した、ユーザによって提供されたインタラクションのずれを判定する。分析からの結果を使用して、ゲームプレイ評価器310.10は、ユーザがゲームのどの部分(複数可)において優れていたか、ユーザがゲームのどの部分(複数可)に苦労していたかなどを特定し得る。次に、ゲームプレイ評価器310.10は、ユーザが完了するのに苦労しているゲームの部分について、完了に成功した、もしくは完了メトリックの達成に成功した、または一連のイベント、アクション、レベル、動きなどの提供に成功した他のユーザのうちの特定のユーザを識別する。前述のように、特定の他のユーザは、プレイヤーのスキルレベル、もしくはゲームのその部分を進んでいる間に提供されるゲーム入力の類似性に基づいて、またはユーザプロフィールに基づいて識別され得る。ゲームプレイモデル構築器310.10aによって構築されたモデル(複数可)は、新たなユーザがゲームをプレイするのを支援するために使用され得ることに留意されたい。
【0073】
特定の他のユーザが識別されると、ビデオクリップ抽出器310.10bは、ゲームプレイ評価器310.10によって用いられて、ゲームのその部分についてのゲームプレイのビデオクリップが抽出され得る。ビデオクリップ抽出器310.10bは、ゲームプレイのビデオ録画を分析して、ゲームのその部分に対応するゲームプレイのビデオフレームを特定し、特定されたビデオフレームを抽出し得る。抽出されたビデオフレームを、符号化器を使用してバンドルし、ゲームのその部分について行動メトリックの1つとしてユーザインターフェースに提供して、ユーザインターフェースにレンダリングすることによって、ゲームのその部分のゲームプレイ中にユーザを支援するようにする。
【0074】
ビデオクリップ抽出器310.10bは、ゲームの異なる部分に対して1つまたは複数のビデオクリップを生成し得ることに留意されたい。ビデオクリップが生成されると、生成されたビデオクリップはゲームアイコンに関連付けられ、ユーザインターフェースはユーザ向けにゲームの対応する部分について更新され、ユーザがゲームにアクセスするときはいつでも、ユーザはそれにアクセスできるようになる。各ユーザのゲーム行動は厳密に同じではない場合があるので、行動メトリックがゲーム行動に基づいて生成される場合、行動メトリックはユーザによって異なり得る。結果として、行動メトリックは、ユーザ及びゲームの特定の部分に対して専用にカスタマイズされる。ユーザに提供される行動メトリックは、ゲームのロード中またはゲームプレイ中にアクセスされ得、それによってユーザは、かなり簡単にかつなじみやすくゲームの任意の部分を進むのを支援されるので、新たなユーザのゲームプレイ体験が大幅に改善される。
【0075】
一実施形態では、ユーザインターフェース内に提供されたオプションへのユーザインタラクションを検出すると、一部分について生成されたビデオクリップがレンダリングされ得る。他の実施形態では、ユーザがゲームのその部分について完了に成功するかまたは完了メトリックの達成に成功することが困難であることを検出したことに応答して、ユーザインターフェース上のビデオクリップのレンダリングが、ゲームのゲームロジックによって自動的に発動され得る。ユーザは、初めてゲームをプレイする新たなユーザでも、ゲームプレイのためにゲームを再開するリピートユーザでもよい。ユーザがゲームのその部分での試行に失敗したため、または他の理由により、以前のゲームプレイ中にゲームが一時停止されている場合がある。ユーザが一時停止されたゲームプレイを再開し、ゲームの残りの部分を初めてプレイしようとする場合であっても、ビデオクリップ及び他のゲームヒントをゲームプレイの推奨としてユーザに提供して、ユーザがゲームのそれぞれの部分の進むのに成功することを支援し得る。抽出されたビデオクリップは、ゲームプレイデータストア313に記憶され、必要に応じて手掛かりを他のユーザに提供するために使用される。
【0076】
ゲームヒント提供器310.10cは、ビデオクリップ抽出器310.10bと機能的に類似しているのは、ゲームヒント提供器310.10cが、ゲームプレイモデル構築器310.10aによって構築されたモデル(複数可)を分析して、ゲームロジックからのゲーム入力、または使用すべき他のユーザのゲームプレイのうちの特定の1つを特定することによって、ユーザが現在試行しているゲームの部分の完了メトリックを提供するためのヒントを、ゲームをプレイしている現在のユーザに提供するという点である。ゲームロジックによって指定されたゲーム入力は、ゲームのその部分に対して提供される必要がある一連の動き、もしくはボタン押下、またはデータ入力を特定する。これらの入力及び他のユーザのインタラクションを使用して、様々な形式(テキスト、オーディオ、ビデオ、グラフィカルユーザインターフェース(GUI)など)のヒントを提供し得る。ビデオクリップ及びゲームヒントは、ユーザに合わせて調整されており、ユーザのスキルレベルまたはユーザの設定に基づき得る。ユーザインターフェースは、ゲームプレイのレンダリング中の適切なときに視覚的手掛かりを提供するように更新され得る。ユーザ向けにユーザインターフェースに提供される様々な行動メトリックの数、タイプ、及び順序は、1つのゲームによって異なり、異なるゲームによって異なり得ることに留意されたい。たとえば、3つの異なるタイプの行動メトリックが特定され、ゲーム1の部分1に関連付けられ得、5つの異なるタイプの行動メトリックが特定され、ゲーム1の部分2に関連付けられ得、2つの異なるタイプの行動メトリックが特定され、ゲーム1の部分3に関連付けられ得、などとされる。ゲームの部分ごとに、及び/またはゲームごとに利用可能な行動メトリックの数及び順序は、インタラクションのタイプ、ユーザのゲームプレイ中に検出されたユーザのゲーム行動、及び/またはプレイされているゲームのタイプに応じて異なり得る。
【0077】
また、ゲームプレイ調整器310.10dは、ゲームプレイモデル構築器310.10aによって構築されたゲームモデル(複数可)を使用して、ゲーム行動を分析することによって、現在のユーザがどのようにしてゲームプレイ中にフェアリング(fairing)しているかを特定する。ゲームプレイ調整器310.10dは、一実施形態では、機械学習ロジックを使用して、以前のゲームプレイ(複数可)中のユーザのゲーム行動を分析することによって、そのゲームに関するユーザのゲームプレイスキルを判定し得る。他の実施形態では、ゲームプレイ調整器310.10dは、そのゲームに関するユーザのゲームプレイスキルを判定するために、以前のゲームプレイからのユーザのゲーム行動だけでなく現在のゲームプレイも分析し得る。分析によって、ユーザが特定の課題を達成するのに苦労していると判定された場合、ゲームプレイ調整器310.10dは、ゲーム実行エンジン310.2に信号を送信して、ユーザがゲームをカスタマイズできるようにするオプションによってユーザインターフェースを更新し得る。カスタマイズは、ゲームの速度、レベル、または難易度の調整を含み得る。他の実施形態では、ゲームプレイ調整器310.10dは、ゲーム実行エンジン310.2に信号を送信して、ゲームの速度、レベル、または難易度を動的に調整することによって、ユーザがゲームのより挑戦的でないバージョンをプレイできるようにし得る。
【0078】
図3Aに、クライアントデバイス100においてレンダリングするためにゲーム実行エンジン310.2によって提供される例示的なユーザインターフェースを示す。ユーザがユーザインターフェースから選択できる様々なアプリケーションまたはサービスは、ユーザのユーザアカウントで利用可能なものに依存する。図3Aに示す一実施形態では、ユーザアカウントで利用可能なアプリケーションは、ゲームアプリケーション、テレビ及びビデオアプリケーション、インターネットアプリケーション、音楽アプリケーション、写真アプリケーション、ならびにライブラリサービスを含む。当然ながら、上述のアプリケーションのリストは一例として提供しており、ユーザアカウントはより少ないまたはさらなるアプリケーションにアクセスすることができてもよい。各アプリケーションまたはサービスは、複数のオプションを含む。図3Aにそのような一例を示しており、テレビ&ビデオアプリケーションを選択すると、テレビ&ビデオアプリケーションの下の様々なオプション(ストリーミングサービス1、ストリーミングサービス2、ストリーミングサービス3、...ケーブルテレビチャンネル、地上波テレビチャンネルなど)が、ユーザ選択のためにユーザインターフェース上にレンダリングされる。これらのアプリケーションのいくつかは、符号化されてからクライアントデバイスにストリーミングされてレンダリングされるストリーミングコンテンツを生成し得る。
【0079】
図3Bに、図3Aに示すユーザアカウントで利用可能なアプリケーションからゲームアプリケーションが選択された他の例示的なユーザインターフェースを示す。ゲームアプリケーションは、ユーザが見る及び/またはインタラクトすることが可能な複数のゲーム(ゲーム1、ゲーム2、ゲーム3、...ゲームx1、ゲームx2)を含む。これらのゲームは、符号化されてからクライアントデバイスにストリーミングされてレンダリングされるストリーミングビデオフレームを生成する。
【0080】
図3Cにユーザインターフェースの他の例を示しており、特定のゲームが選択されると、特定のゲームに利用可能な行動メトリックがユーザインターフェースに、コンテンツのそばにレンダリングされ、または選択されたゲームのコンテンツ(すなわち、ゲームシーン)もレンダリングする表示画面の一部分にレンダリングされる。利用可能な行動メトリックは、ゲームごとにユーザごとに異なり得る。図3C(1)に、ゲーム1のゲームプレイを再開するオプションを提供する、ゲーム1について更新されたユーザインターフェースを示す。ユーザが「再開」オプションを選択する場合、ゲームに関する行動メトリックが、ゲームの代表的なゲームアイコンがレンダリングされている部分の内側またはそばに提示される。図3C(2)に、ゲームアイコン及びゲームシーンがレンダリングされるディスプレイの部分の外側にレンダリングされる、ゲームに関する利用可能な行動メトリックオプションを示す。図3C(2)に示す実施形態では、図3C(1)の「再開」オプションは、ディスプレイのその部分の中で「プレイ」アイコンオプションに置き換えられている。
【0081】
図4Aに、一実施形態における、ユーザインターフェースにおいて選択された特定のゲームについての、ゲームプレイ中に生成されるゲームデータのフローを示す。クライアントデバイスにおいて提供されるユーザインターフェースは、ユーザのユーザアカウントで利用可能な複数のゲームを含む。各ゲームはユーザインターフェース上で、代表的なゲームアイコンによって表される。ユーザアカウント向けのゲームに利用可能な行動メトリックも、ゲームアイコンのそばに提供される。行動メトリックは、ゲームヒント、ゲームをプレイした1人または複数人のユーザから選択されたゲームクリップ、ゲーム状態、及び他のゲーム関連データを含み得る。
【0082】
図4Aに示すように、ユーザAはゲームプレイのためにゲーム1(G1)を選択する(410)。選択信号は、バブル「A1」で示すように、サーバ側ゲームアプリケーション310が実行されるゲームサーバ320などのサーバに送信される。ゲームが実行されると、ユーザAに対してゲームプレイ中にゲームシーン及びゲームデータがサーバにおいて生成される(420)。生成されたゲームデータは、レンダリング及びユーザインタラクションのためにクライアントデバイスに返される。ユーザAによって生成されたユーザインタラクションは、サーバ320に送信されて、ゲームG1のゲーム状態に影響を与える。ゲームのゲームプレイ中またはゲームのゲームプレイ後に、ユーザAのゲームデータが処理されて、ユーザAのゲーム行動が特定される(430)。
【0083】
ゲーム実行エンジンは、ゲームデータを処理して、ユーザによって提供されたゲームインタラクションを識別し、それをゲームG1のゲームロジックによって定義されるゲーム入力と比較して、ユーザのゲーム行動を特定するなどする。ゲームG1に関するユーザAのゲーム行動を使用して、ゲームG1に関するユーザAの行動メトリックを特定する。行動メトリックは、ユーザが自分のゲームスキルを向上させるのを支援するためにユーザAに提供することができる有用なゲームヒントまたはゲームビデオクリップを特定し得る。ゲームヒントは、ゲームでのユーザAのゲーム行動に基づいて生成され、ゲームの各部分に合わせて調整される。特定された行動メトリックは、バブル「B1」で示すように、ユーザインターフェースでのゲームG1のゲームアイコンに関連付けられる。各ゲームについてユーザインターフェースに提示される行動メトリックはユーザによって異なり、その理由は、行動メトリックが、それぞれのユーザのゲーム行動に基づいて特定されるためである。さらに、ゲームに関してプレイヤーに提供される行動メトリックは、ゲームの異なる部分に対して動的に調整されて、ユーザがゲームのそれぞれの部分をプレイすると、各部分に適切なゲームヒントが提示されるようになる。
【0084】
図4Bに、他の実施形態による、ユーザインターフェース上に行動メトリックを提供するための、ゲームに関して生成されるゲームデータのフローを示す。この実施形態では、ユーザAによって現在のゲームプレイのために選択されたゲームの以前のゲームプレイ(複数可)からのデータが特定され、取得され、機械学習ロジックに入力データとして提供されて(450)、分析される。以前のゲームプレイ(複数可)からのデータは、ゲームのゲームプレイの1つまたは複数の以前のゲームセッション中にユーザAによって提供されたユーザインタラクションを含む。ゲームに関するユーザの以前のゲームプレイデータは、メタデータとしてゲームプレイデータストア313に記憶され得、ゲームのゲームプレイ中に提供されるゲーム内及びゲーム外のインタラクションを含む。ゲームプレイデータは、ゲーム実行エンジン310.2によって、ゲームデータ管理器310.6に問い合わせることにより取得される。
【0085】
ゲームプレイデータは、機械学習ロジックにより分析されて(455)、ユーザAのゲームのモデル460が生成される。モデルは、ゲームの各ステップ、各課題、各部分、各レベルにおいてユーザAにより提供されたインタラクションを使用して、ゲームのゲームプレイ中にキャプチャされたユーザAのゲーム行動を理解する。モデルから取得されたユーザAのゲーム行動の理解に基づいて、機械学習ロジックは、ゲーム内のユーザAのスキル、及びゲーム内のAの強み及び弱みを推測する。ユーザAの強みは、ユーザAが課題を完了する速さと、ゲームの一部分において提供される課題を克服するためにユーザAが提供したリソース、入力とを特定することによって推測され得る。ゲームリソースをほとんど消費せずにゲームの一部分の課題をより速く完了することは、ユーザAがその部分の完了メトリックを提供するためのスキルがより優れていることを示し得、多くのゲームリソースを消費するより遅いまたは繰り返し失敗した試行は、ユーザAがゲームのその部分で課された課題を克服するためのスキルが基準以下であることを示し得る。
【0086】
ゲーム行動の理解に基づいて、ゲーム実行エンジンは、機械学習ロジックと協力して、ユーザAに固有の、ゲームの異なる部分についての行動メトリックを生成し得る(470)。ユーザAがゲームの特定の部分の課題を克服できた例では、行動メトリックは、課題を完了したユーザAのゲームプレイのゲームクリップを含み得る。ユーザAがゲームの一部分の課題を繰り返し試行した後に克服できない他の例では、行動メトリックは、ゲームのその部分についてゲームロジックによって指定されたゲーム入力をゲームヒントとして含み得る。
【0087】
いくつかの実施形態では、ゲーム実行エンジンは、ユーザについて生成されたゲームモデルを、第三者ユーザによってゲームプレイにおいて提供されたインタラクションを含むように更新し得る(490)。一実施形態では、これはオプションのステップである(破線のボックスで示す)。他の実施形態では、第三者ユーザによるゲームプレイからのインタラクションは、ゲームに関してユーザAに対して生成されたゲームモデルに含まれ得る。第三者ユーザのゲームプレイからのインタラクションをモデルに含める場合、機械学習ロジックは、第三者ユーザによって提供されたゲームインタラクションを分析して、ゲームの異なる部分について、完了に成功した、または完了メトリック、一連のイベント、アクション、レベル、動き、またはそれらの組み合わせの達成に成功したユーザのうちの特定のユーザを特定する。第三者ユーザのうちの特定のユーザのゲームプレイを使用して、ユーザA向けのゲームの対応する部分についての行動メトリックを生成する。協調フィルタリングロジックを使用して、ゲームをプレイした第三者ユーザを特定し、ゲームの各部分の課題について、完了に成功した、または完了メトリック、一連のイベント、アクション、レベル、動きなどの達成に成功した第三者ユーザのうちの特定のユーザを特定し得る。特定された第三者ユーザのゲームプレイを使用して、ゲームに関してユーザAに提示される行動メトリックの一部として、ビデオクリップ及び他のゲームヒントを生成する。行動メトリックは、(バブル「C1」で示すように)ユーザインターフェース上のゲームのゲームアイコンに関連付けられる。一実施形態では、異なるタイプの行動メトリックのそれぞれは、別個のインジケータを使用してユーザインターフェース上に表現される。行動メトリックのいずれかへのユーザインタラクションにより、ユーザ向けのヒント、ビデオクリップ、もしくはゲーム状態、または他の任意の行動メトリックが、ユーザインターフェース上に、ゲームプレイ中のゲームデータのそばに、またはゲームプレイ前のゲームアイコンのそばにレンダリングされる。
【0088】
一実施形態では、ユーザAの現在のゲームプレイをリアルタイムに分析して、ユーザの現在のゲーム行動を特定し得る(480)。ユーザが現在のゲームプレイを完了すると(485)、ユーザの現在のゲームプレイインタラクションが機械学習ロジックに入力として提供され得、それによって機械学習ロジックがユーザAの現在のゲームプレイインタラクションを処理し、ユーザAの現在のゲーム行動を特定することが可能になる(465)。ユーザAの現在のゲーム行動は、ゲームに関してユーザA向けに構築されたモデルに対して更新され得る(460)。更新されたモデルを使用して、ユーザAの現在のゲーム行動を反映するように、ゲームに関してユーザに提供される行動メトリックを改良し得る。改良された行動メトリックは、ユーザインターフェースに対して動的に更新されて、ユーザAが以降のゲームプレイセッション中に一時停止されたゲームを再開するか、またはゲームを最初から開始した場合に、より最新の関連する行動メトリックがユーザAに提示されるようになる。
【0089】
図4Bに、ゲーム1(G1)に利用可能な行動メトリックのうちの1つへのユーザインタラクションの一例を示す。この実施形態では、行動メトリックは、ユーザAが支援を必要とし得るゲームの部分のリストを特定し、ゲームプレイが開始する前に、そのリストをユーザインターフェース上に提示し得る。ヒントリスト内の項目の1つへのユーザインタラクション(すなわち、ヒント:Cの選択)により、ヒントCのゲームヒントが、図4Bに示すように、別のウィンドウに、もしくはゲームコンテンツのそばに、またはユーザインターフェースの他の任意の部分にレンダリングされる。他の実施形態では、ユーザAが現在のゲームプレイにおいて特定の部分に近づくと、特定の部分に関連するヒントが提示されるように、ゲームのゲームプレイ中にヒントが提示され得る。
【0090】
また、図4Bに、ユーザインタラクションのためにユーザインターフェース内にレンダリングされる有用かつ関連性のあるゲームヒント及びゲームに関するユーザのゲーム状態のサンプルを示す。ゲームヒントは、コーチングビデオ、テキストヒント、ゲーム状態などを含み得る。ゲームヒントは、ユーザに対してレンダリングできる任意の形式で提供され得る。一実施形態では、ユーザインターフェース上に提供される行動メトリックは、ユーザの設定に基づいている。ユーザの設定、ユーザのゲームスキル、ユーザのゲーム行動などに基づいて、より少ないまたはより多くのオプションが提供され得る。
【0091】
図4Cに、ゲームの現在のゲームプレイ中にユーザAに提供される行動メトリックの簡単な例を示す。ゲーム実行エンジンは、機械学習ロジック及び協調フィルタロジックによって提供される分析を使用して、ユーザの行動メトリックを生成し、ユーザがゲームの自分のゲームプレイを改善するのを支援する。図4Cに示すように、ユーザAは、ユーザインターフェースでゲームプレイのためにゲームG1を選択する。時刻tにおいて、ゲーム実行エンジンは、ユーザAがゲームの第1の部分におり、その部分を完了するのに支援を必要としていると判定し得る。この知識に基づいて、ゲーム実行エンジンは、ゲームG1の第1の部分に適切な行動メトリックを特定し、第1の部分に適切な特定された行動メトリックによってユーザインターフェースを更新して、ユーザAがゲームG1の第1の部分のゲームプレイの完了に成功またはそれを改善できるようにする。ユーザAがゲームG1のプレイを続行し、支援が必要なゲームの第2の部分に近づくと、ゲーム実行エンジンは、ゲームG1の第2の部分のゲームのプレイの完了に成功するまたはそれを改善するのに適したゲームG1の行動メトリックを更新し得る。同様に、時刻tにおいて、ユーザAは、ゲームG1の第3の部分のゲームプレイの完了に成功するまたはそれを改善するのに適した行動メトリックが提供される。図4Cには、ゲームの異なる部分に対して同数の行動メトリックがレンダリングされる様子を示しているが、異なる部分に利用可能な行動メトリックの数もしくはタイプまたは順序は異なり得る。行動メトリックの相違は、ゲームの部分、ゲームのタイプ、ユーザのゲーム行動、またはその部分に利用可能な行動メトリックに基づき得る。
【0092】
本明細書で論じる様々な実施形態は、関連するゲームヒント及びゲーム関連オプションを提供して、ユーザがゲームプレイを改善すること、及び/またはゲームプレイの詳細を見ることを可能にする。ユーザに提示される行動メトリックは、ゲーム用にユーザ向けにカスタマイズされている。いくつかの実施形態では、行動メトリックは、以前のゲームプレイの最後の部分のビデオクリップを提供して、自分が中断した場所、ゲームロジック及び他のゲームユーザのゲームプレイから提供されるゲームプレイヒントをユーザに知らせることによって、ユーザが動きをマスターし、自分のゲームプレイスキルを向上させるのを支援する。そのようなインタラクティブかつ動的な支援は、ユーザの不満を軽減し、ユーザのゲームへの興味を高める。他の利点は、本明細書に記載の様々な実施形態を読んだ後、当業者に明らかになろう。
【0093】
図5Aに、一実施形態における、ゲームの以前のゲームプレイからの詳細をユーザに提供するために使用される様々な方法の動作を示す。この方法は動作505から始まり、クラウドゲームシステムなどのクラウドアプリケーションシステム上でユーザアカウントで利用可能なゲームにアクセスするためのユーザインターフェースが提供される。ユーザアカウントは複数のアプリケーション及びサービス、たとえば、ゲームアプリケーション、ニュースサービス/アプリケーション、音楽サービス/アプリケーション、ライブラリサービス、ラジオサービス/アプリケーション、ストリーミング放送アプリケーションなどへのアクセスを提供し得る。動作510に示すように、ゲームプレイのためのゲームアプリケーションからのゲームのユーザ選択が、クライアントデバイスに提供されるユーザインターフェースにおいて検出される。ユーザインターフェースは、各アプリケーションの下で利用可能な様々なオプションのリストを提供し得る。たとえば、ゲームアプリケーションの下で利用可能なゲームは、ユーザアカウント用に購入されたゲーム、無料のゲーム、他のユーザによって共有されるゲーム(たとえば、ミニゲーム)を含み得る。ゲームプレイのためのゲームの選択の検出に応答して、ゲームサーバはゲームの選択を検出し、ゲームのインスタンスを実行し、ゲームデータを生成する。ゲームデータは、クライアントデバイス100と交換される。
【0094】
ユーザはゲームプレイ中にゲームとインタラクトする。動作515に示すように、ゲームプレイ中にユーザによってゲームに関して提供されるインタラクションは、ゲームサーバによって受信され処理される。処理の一部として、ゲームサーバはゲームのゲーム状態を更新し得る。動作520に示すように、ユーザによって提供されるインタラクションは、ゲームのゲームロジックによって分析されて、ユーザのゲーム行動が特定される。分析の一部として、ゲームロジックは、ゲームの各ステップ、各レベル、各課題、各部分に対してユーザによって提供された様々な入力を特定し、ゲーム行動を特定する。ゲーム行動によって、ユーザのゲームスキル、ユーザのゲームへの興味などが特定され得る。動作525に示すように、ゲームのゲームプレイ中に検出されるユーザのゲーム行動に基づいて、ゲームロジックはユーザの行動メトリックを生成し得る。行動メトリックはユーザ向けのゲームヒント、ゲーム状態、ビデオクリップなどを特定して、ユーザが自分のゲームプレイを改善するのを支援し得る。
【0095】
動作530に示すように、生成された行動メトリックは、ユーザインターフェース上のゲームのアイコンに関連付けられる。この関連付けによって、ゲームのプレイ中にゲームの異なる部分に対して行動メトリックのうちの特定の行動メトリックがレンダリングされる。行動メトリックは、ゲーム用にプレイヤー向けにカスタマイズされる。この関連付けによって、ゲームのゲームプレイ中に、またはゲームのゲームプレイを開始する前に、行動メトリックがアクセスされる。
【0096】
図5Bに、本発明の他の実施形態における、ゲームに関するユーザの行動メトリックを提供するために使用される様々な方法の動作を示す。この方法は動作550から始まり、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームにアクセスするためのユーザインターフェースがクライアントデバイスに提供される。ユーザインターフェースは、ユーザアカウント用に購入されたアプリケーション、無料のアプリケーション、及びユーザアカウントに関連付けられたユーザのソーシャルコンタクトによって共有されているアプリケーションを含む、クラウドゲームサーバ上でユーザアカウントで利用可能なゲームアプリケーションを含む、インタラクティブアプリケーションのリストを含む。
【0097】
動作555に示すように、クライアントデバイスにおいてなされたゲームプレイのためのゲームの選択は、クラウドゲームサーバにおいて検出される。その選択を識別する信号がクライアントデバイスからクラウドゲームサーバに送信され、それに応答して、クラウドゲームサーバは要求を認証し、ゲームプレイのためにゲームのインスタンスを実行する。動作560に示すように、現在のゲームプレイ中にゲームの一部分において提供されるユーザインタラクションは、クラウドゲームサーバ上で実行されるゲームロジックによって識別され処理されて、ゲームの結果に影響が与えられる。
【0098】
動作565に示すように、ゲームの以前のゲームプレイにおいてユーザによって提供されたインタラクションと、ゲームのゲームロジックによって指定されたゲーム入力とを使用して、ゲームのゲームモデルが生成される。ゲームの全てのステップ、全てのレベル、及び全てのセッションにおいて提供される必要があるインタラクションと、ユーザが以前のゲームプレイ中に提供したインタラクションとを識別する機械学習ロジックを使用して、ゲームモデルが生成される。モデルを使用して、ユーザにより提供されるインタラクションを分析することによって、ユーザのゲーム行動を特定する。分析によって、ゲームロジック内で指定されたゲーム入力に対するユーザのインタラクションのずれが判定される。ゲームモデル及びユーザ行動の分析から得られる詳細によって、ゲームロジックは、ユーザがゲームの一部分を完了するのに苦労しているか否かを判定することが可能になる。
【0099】
次に、動作575に示すように、ゲームロジックは、以前のゲームプレイから取得されたユーザのゲーム行動に基づいて、ユーザの現在のゲームプレイに関する行動メトリックを生成する。行動メトリックは、現在のゲームプレイ中に検出されるユーザのゲーム行動を考慮して動的に調整される。行動メトリックは、ゲームロジック及び他のユーザのゲームプレイから、ゲームに関するゲームヒント、ビデオクリップなどを提供する。
【0100】
動作580に示すように、行動メトリックは、クライアントデバイスのユーザインターフェース上に提供されるゲームのゲームアイコンに関連付けられる。行動メトリックは、ゲームのゲームプレイ中またはゲームプレイ前にいつでも、ユーザインターフェース上に提供されるオプションを使用して、ユーザによりアクセスされ得る。行動メトリックは、ゲームのゲームプレイを改善するためのゲームヒント及び支援をユーザに提供する。ゲームヒント及び支援に加えて、行動メトリックは、たとえば、ゲーム状態、ゲームプレイ統計など、ゲームの以前のゲームプレイからの他の詳細にアクセスするオプションも含み得る。これらのオプションは、ユーザがゲームプレイのニュアンスを理解できるようにし、ユーザがゲームのゲームプレイを改善するのを支援するのに十分な情報をユーザに提供する。
【0101】
方法の動作は特定の順序で説明したが、オーバーレイ動作の処理が所望の方法で実行される限り、他のハウスキーピング動作が動作間に実行され得、または動作がわずかに異なる時刻に行われるように調整され得、もしくは処理に関連する様々な間隔の処理動作の実行を可能にするシステム内に分散され得ることは理解されたい。
【0102】
図6に、様々なゲームへのアクセスを提供する際に使用され得る情報サービスプロバイダアーキテクチャの一実施形態を示す。情報サービスプロバイダ(ISP)1070は、地理的に分散し、ネットワーク1086を介して接続されたユーザ1082に多数の情報サービスを提供する。ゲームへの高速アクセスを提供することに関して様々な実施形態を論じているが、これらの実施形態は、1つまたは複数のタイプの他のサービスを提供するように拡張することができる。たとえば、ISPは、ゲームなどの1つのタイプのサービスだけでなく、たとえば、ゲーム、株価の更新、放送メディア、ニュース、スポーツ、ゲームなどの多様なサービスを提供することができる。さらに、各ISPによって提供されるサービスは動的であり得、すなわち、任意の時点でサービスを追加または削除することができる。したがって、特定のタイプのサービスを特定の個人に提供するISPは、時間と共に変わり得る。たとえば、ユーザは自分の故郷にいる間に、ユーザの近くのISPによってサービス提供され得、ユーザが異なる都市に旅行しているときは、異なるISPによってサービス提供され得る。故郷のISPは、ユーザのゲームまたはアクセスプロフィールから必要な情報及びデータを新たなISPに接続モジュールを介して転送することによって、ユーザ情報が新たな都市までユーザに「ついて行き」、データがユーザにより近くなり、よりアクセスしやすくなる。他の実施形態では、ユーザに関する情報を管理するマスターISPと、マスターISPからの制御下でユーザと直接インターフェースをとるサーバISPとの間に、マスター-サーバ関係が確立され得る。他の実施形態では、クライアントが世界中を移動すると、あるISPから他のISPにデータが転送され(すなわち、ユーザに割り当てられたデータセンターの切り替え中)、そのような転送は、それぞれのISPによって提供されるサービスの互換性に基づいてもよく、それによって、ユーザにサービス提供するのにより良い位置にあるISPが、これらのサービスを提供するものになる。
【0103】
ISP1070は、ネットワークを介して顧客にコンピュータベースのサービスを提供するアプリケーションサービスプロバイダ(ASP)1072を含む。ASPモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはサービスとしてのソフトウェア(SaaS)と呼ばれることもある。特定のアプリケーションプログラム(たとえば、顧客関係管理)へのアクセスを提供する簡単な形は、HTTPなどの標準的なプロトコルを使用することである。たとえば、アプリケーションソフトウェアはベンダーのシステムに常駐し、HTMLを使用するウェブブラウザを介して、もしくはベンダーによって提供される専用クライアントソフトウェアによって、またはシンクライアントなどの他のリモートインターフェースを介して、ユーザによりアクセスされる。
【0104】
地理的に広い範囲に提供されるサービスは、クラウドコンピューティングを使用することが多い。クラウドコンピューティングは、動的に拡張可能であって、多くの場合仮想化されているリソースがインターネットを介してサービスとして提供されるコンピューティングのスタイルである。ユーザは、それらをサポートする「クラウド」の技術基盤の専門家である必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、サービスとしてのソフトウェア(SaaS)などの様々なサービスに分類することができる。多くの場合、クラウドコンピューティングサービスは、ウェブブラウザからアクセスされる一般的なビジネスアプリケーションをオンラインで提供し、ソフトウェア及びデータはサーバに記憶される。クラウドという用語は、コンピュータネットワーク図におけるインターネットの描かれ方に基づいた、(たとえば、サーバ、ストレージ、及びロジックを使用する)インターネットのメタファとして使用され、それに隠された複雑なインフラストラクチャの抽象化である。
【0105】
さらに、ISP1070は、ゲームクライアントによってシングル及びマルチユーザビデオゲームをプレイするために使用されるゲーム処理サーバ(GaPS:Game Processing Server)1074を含む。インターネット上でプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。典型的には、ゲームは、ユーザからデータを収集し、他のユーザに配布する専用サーバアプリケーションを使用する。これはピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするために別のサーバが必要である。他の実施形態では、GaPSはユーザ間の通信を確立し、それぞれのゲームプレイデバイスが、中央のGaPSに依存することなく情報を交換する。
【0106】
専用のGaPSは、クライアントとは独立して動作するサーバである。そのようなサーバは通常、データセンター内に配置された専用ハードウェア上で動作して、より広い帯域幅及び専用の処理能力を提供する。専用サーバは、ほとんどのPCベースのマルチユーザゲームのためのゲームサーバをホストする好適な方法である。大規模マルチユーザオンラインゲームは、通常はゲームタイトルを所有するソフトウェア会社によってホストされる専用サーバ上で動作して、専用サーバがコンテンツを制御及び更新できるようにする。
【0107】
放送処理サーバ(BPS:Broadcast Processing Server)1076は、オーディオまたはビデオ信号を視聴者に配信する。非常に狭い範囲の視聴者への放送は、ナローキャストと呼ばれることもある。放送配信の最終工程は、信号がどのようにしてリスナーまたは視聴者に届くかであり、信号はラジオ局またはテレビ局のようにアンテナ及び受信機まで地上波で届いてもよく、あるいはケーブルテレビもしくはケーブルラジオ(または「無線ケーブル」)によって、局経由でまたはネットワークから直接届いてもよい。また、インターネットは、特に信号及び帯域幅を共有可能にするマルチキャストによって、ラジオまたはテレビを受信者に届け得る。歴史的に放送は、全国放送や地域放送など、地理的地域によって区切られてきた。しかしながら、高速インターネットの普及により、コンテンツは世界中のほぼ全ての国に到達できるので、放送は地域によって定義されない。
【0108】
ストレージサービスプロバイダ(SSP)1078は、コンピュータストレージスペースと、関連する管理サービスとを提供する。SSPは、定期的なバックアップ及びアーカイブも提供する。ストレージをサービスとして提供することにより、ユーザは必要に応じて追加のストレージを注文することができる。もう1つの大きい利点は、SSPがバックアップサービスを含み、ユーザが自分のコンピュータのハードドライブが故障しても、全てのデータを失わないことである。さらに、複数のSSPがユーザデータの全体のまたは部分的なコピーを有することができるので、ユーザのいる場所、またはデータにアクセスするために使用されているデバイスに関係なく、ユーザが効率的にデータにアクセスすることができる。たとえば、ユーザは自宅のコンピュータだけでなく、移動中に携帯電話で個人ファイルにアクセスすることができる。
【0109】
通信プロバイダ1080は、ユーザに接続性を提供する。一種の通信プロバイダは、インターネットへのアクセスを提供するインターネットサービスプロバイダ(ISP)である。ISPは、たとえば、ダイヤルアップ、DSL、ケーブルモデム、ファイバ、無線、または専用の高速相互接続など、インターネットプロトコルデータグラムの配信に適したデータ伝送技術を使用して顧客を接続する。また、通信プロバイダは、たとえば、電子メール、インスタントメッセージング、SMSテキストメッセージングなどのメッセージングサービスを提供することができる。他のタイプの通信プロバイダは、インターネットへの直接的なバックボーンアクセスを提供することにより帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ(NSP)である。ネットワークサービスプロバイダは、電気通信会社、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者などから構成され得る。
【0110】
データ交換器1088は、ISP1070内のいくつかのモジュールを相互接続し、これらのモジュールをネットワーク1086を介してユーザ1082に接続する。データ交換器1088は、ISP1070の全てのモジュールが近接している小さいエリアをカバーすることができ、または様々なモジュールが地理的に分散している大きい地理的エリアをカバーすることができる。たとえば、データ交換器1088は、データセンターのキャビネット内の高速ギガビットイーサネット(登録商標)(またはさらに高速なもの)、または大陸間仮想エリアネットワーク(VLAN)を含むことができる。
【0111】
ユーザ1082は、少なくともCPU、メモリ、ディスプレイ、及びI/Oを含むクライアントデバイス1084によって、リモートサービスにアクセスする。クライアントデバイスは、PC、携帯電話、ネットブック、タブレット、ゲームシステム、PDAなどとすることができる。一実施形態では、ISP1070は、クライアントによって使用されるデバイスのタイプを認識し、採用される通信方法を調整する。その他の場合、クライアントデバイスは、HTMLなどの標準的な通信方法を使用してISP1070にアクセスする。
【0112】
図7は、本発明の様々な実施形態によるゲームシステム1400のブロック図である。ゲームシステム1400は、ネットワーク1415を介して1つまたは複数のクライアント1410にビデオストリームを提供するように構成される。このネットワークは、図1に示すネットワーク200と同様である。ゲームシステム1400は、典型的にはビデオサーバシステム1420と、オプションのゲームサーバ1425とを含む。ビデオサーバシステム1420は、ビデオストリームを1つまたは複数のクライアント1410に最低限のサービス品質で提供するように構成される。たとえば、ビデオサーバシステム1420は、ビデオゲームの状態またはビデオゲーム内の視点を変更するゲームコマンドを受信し、最短の遅延時間で即座にこの変更を反映した更新されたビデオストリームをクライアント1410に提供し得る。ビデオサーバシステム1420は、未定義の形式を含む多種多様な代替のビデオ形式でビデオストリームを提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されるビデオフレームを含み得る。典型的なフレームレートは、30フレーム毎秒、60フレーム毎秒、1420フレーム毎秒である。ただし、本発明の他の実施形態では、より高いまたはより低いフレームレートが含まれる。
【0113】
本明細書において個別に1410A、1410Bなどと呼ぶクライアント1410は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイスなどを含み得る。説明するクライアントは、図1のクライアント100-1から100-nと同様である。典型的には、クライアント1410は、符号化されたビデオストリームを受信し、ビデオストリームを復号し、結果のビデオをユーザ、たとえば、ゲームのユーザに提示するように構成される。符号化されたビデオストリームを受信する処理、及び/またはビデオストリームを復号する処理は、典型的には、個々のビデオフレームをクライアントの受信バッファに記憶することを含む。ビデオストリームは、クライアント1410に統合されたディスプレイ上で、またはモニタもしくはテレビなどの別個のデバイス上でユーザに提示され得る。クライアント1410はオプションで、2人以上のゲームユーザをサポートするように構成される。たとえば、ゲームコンソールは、2人、3人、4人またはそれ以上の同時ユーザをサポートするように構成され得る。これらのユーザはそれぞれ別々のビデオストリームを受信してもよく、あるいは単一のビデオストリームが、各ユーザ専用に生成された、たとえば各ユーザの視点に基づいて生成されたフレームの領域を含んでもよい。クライアント1410はオプションで、地理的に分散している。ゲームシステム1400に含まれるクライアントの数は、1または2から数千、数万またはそれ以上まで幅広く変化し得る。本明細書で使用する場合、「ゲームユーザ」という用語は、ゲームをプレイする人を指すために使用し、「ゲームプレイデバイス」という用語は、ゲームをプレイするために使用されるデバイスを指すために使用する。いくつかの実施形態では、ゲームプレイデバイスは、ユーザにゲーム体験を提供するために協働する複数のコンピューティングデバイスを指し得る。たとえば、ゲームコンソール及びHMDは、ビデオサーバシステム1420と協働して、HMDを通して見るゲームを配信し得る。一実施形態では、ゲームコンソールはビデオサーバシステム1420からビデオストリームを受信し、ゲームコンソールはビデオストリームまたはビデオストリームへの更新をHMDに転送してレンダリングさせる。
【0114】
クライアント1410は、ネットワーク1415(図1のネットワーク200と同様のもの)を介してビデオストリームを受信するように構成される。ネットワーク1415は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む任意のタイプの通信ネットワークであり得る。典型的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPなどの標準的なプロトコルによって通信される。あるいは、ビデオストリームは独自の規格によって通信される。
【0115】
クライアント1410の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信機能、及び入力デバイスを備えるパーソナルコンピュータである。復号ロジックは、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に記憶されたソフトウェアを含み得る。ビデオストリームを復号(及び符号化)するためのシステムは、当技術分野ではよく知られており、使用される特定の符号化方式に応じて異なる。
【0116】
クライアント1410は、必須ではないが、受信したビデオを修正するように構成されるシステムをさらに含み得る。たとえば、クライアントは、さらなるレンダリングを実行する、あるビデオ画像を他のビデオ画像にオーバーレイする、ビデオ画像を切り取る、及び/または同様のことを行うように構成され得る。たとえば、クライアント1410は、Iフレーム、Pフレーム及びBフレームなどの様々なタイプのビデオフレームを受信し、これらのフレームを画像へ処理してユーザに表示するように構成され得る。いくつかの実施形態では、クライアント1410のメンバーは、さらなるレンダリング、シェーディング、3Dへの変換、または同様の演算をビデオストリームに実行するように構成される。クライアント1410のメンバーはオプションで、2つ以上のオーディオまたはビデオストリームを受信するように構成される。クライアント1410の入力デバイスは、たとえば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、動き及び/または位置検知デバイス、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、未開発の入力デバイスなどを含み得る。
【0117】
クライアント1410によって受信されるビデオストリーム(及びオプションでオーディオストリーム)は、ビデオサーバシステム1420によって生成され提供される。本明細書の他の場所でさらに説明しているように、このビデオストリームはビデオフレームを含む(また、オーディオストリームはオーディオフレームを含む)。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される(たとえば、適切なデータ構造のピクセル情報を含む)。本明細書で使用する場合、「ビデオフレーム」という用語は、ユーザに表示される画像に寄与する、たとえば、これを生じさせるように構成される情報を主に含むフレームを指すために使用する。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」にも適用することができる。
【0118】
クライアント1410は、典型的にはユーザから入力を受け取るように構成される。これらの入力は、ビデオゲームの状態を変更するか、あるいはゲームプレイに影響を与えるように構成されるゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受け取ることができ、及び/またはクライアント1410上で実行される計算命令によって自動的に生成され得る。受け取られたゲームコマンドは、クライアント1410からネットワーク1415を介してビデオサーバシステム1420及び/またはゲームサーバ1425に通信される。たとえば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム1420を介してゲームサーバ1425に通信される。いくつかの実施形態では、ゲームコマンドの別々のコピーがクライアント1410からゲームサーバ1425及びビデオサーバシステム1420に通信される。ゲームコマンドの通信はオプションで、コマンドの識別情報に依存する。ゲームコマンドはオプションで、クライアント1410Aにオーディオまたはビデオストリームを提供するために使用されるものとは異なるルートまたは通信チャネルを介してクライアント1410Aから通信される。
【0119】
ゲームサーバ1425はオプションで、ビデオサーバシステム1420とは異なるエンティティによって運用される。たとえば、ゲームサーバ1425は、マルチユーザゲームの発行元によって運用され得る。この例では、ビデオサーバシステム1420は、オプションで、ゲームサーバ1425によってクライアントと見なされ、オプションで、ゲームサーバ1425の視点からは従来技術のゲームエンジンを実行する従来技術のクライアントに見えるように構成される。ビデオサーバシステム1420とゲームサーバ1425との間の通信はオプションで、ネットワーク1415を介して行われる。したがって、ゲームサーバ1425は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチユーザゲームサーバとすることができ、複数のクライアントのうちの1つがビデオサーバシステム1420である。ビデオサーバシステム1420は、同時にゲームサーバ1425の複数のインスタンスと通信するように構成され得る。たとえば、ビデオサーバシステム1420は、複数の異なるビデオゲームを異なるユーザに提供するように構成することができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ1425によってサポートされ得、及び/または異なるエンティティによって発行され得る。いくつかの実施形態では、ビデオサーバシステム1420のいくつかの地理的に分散したインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム1420のこれらのインスタンスのそれぞれは、ゲームサーバ1425の同一のインスタンスと通信し得る。ビデオサーバシステム1420と1つまたは複数のゲームサーバ1425との間の通信はオプションで、専用の通信チャネルを介して行われる。たとえば、ビデオサーバシステム1420はゲームサーバ1425に、これらの2つのシステム間の通信専用の広帯域幅チャネルを介して接続され得る。
【0120】
ビデオサーバシステム1420は、少なくともビデオソース1430、I/Oデバイス1445、プロセッサ1450、及びストレージ1455(非一時的なアナログ及び/またはデジタルのストレージデバイスを含む)を備える。ビデオサーバシステム1420は、1つのコンピューティングデバイスを含むか、または複数のコンピューティングデバイスに分散され得る。これらのコンピューティングデバイスはオプションで、ローカルエリアネットワークなどの通信システムを介して接続される。
【0121】
ビデオソース1430はビデオストリーム、たとえば、ストリーミングビデオ、または動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース1430は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、ユーザからゲームコマンドを受け取り、受け取ったコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、ならびに典型的には視点を含む。ゲーム状態は、オブジェクトのプロパティ、画像、色、及び/またはテクスチャも含む。
【0122】
ゲーム状態は、典型的には、ゲームルールに加えて、移動、方向転換、攻撃、フォーカス設定、インタラクション、使用などのゲームコマンドに基づいて維持される。ゲームエンジンの一部はオプションで、ゲームサーバ1425内に配置される。ゲームサーバ1425は、地理的に分散したクライアントを使用して複数のユーザから受信したゲームコマンドに基づいて、ゲームの状態のコピーを維持し得る。これらの場合、ゲーム状態はゲームサーバ1425によってビデオソース1430に提供され、ゲーム状態のコピーが記憶され、レンダリングが実行される。ゲームサーバ1425は、ネットワーク1415を介してクライアント1410からゲームコマンドを直接受信し得、及び/またはビデオサーバシステム1420を介してゲームコマンドを受信し得る。
【0123】
ビデオソース1430は、典型的には、たとえば、ハードウェア、ファームウェア、及び/またはストレージ1455などのコンピュータ可読媒体に記憶されたソフトウェアなどのレンダリングロジックを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを生成するように構成される。レンダリングロジックの全部または一部はオプションで、グラフィックス処理ユニット(GPU)内に配置される。レンダリングロジックは、典型的には、ゲーム状態及び視点に基づいて、オブジェクト間の3次元空間関係を決定する、及び/または適切なテクスチャを適用するなどするように構成される処理段階を含む。レンダリングロジックは生ビデオを生成し、これは通常はクライアント1410との通信の前に符号化される。たとえば、生ビデオは、Adobe Flash(登録商標)規格、.wav、H.264、H.263、On2、VP6、VC-1、WMA、Huffyuv、Lagarith、MPG-x.Xvid.FFmpeg、x264、VP6-8、realvideo、mp3などに従って符号化され得る。符号化処理は、オプションでリモートデバイスの復号器に配信するためにパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。典型的なフレームサイズは、800×600、1280×720(たとえば、720p)、1024×768を含むが、他の任意のフレームサイズが使用され得る。フレームレートは、1秒あたりのビデオフレーム数である。ビデオストリームは、異なるタイプのビデオフレームを含み得る。たとえば、H.264規格は「P」フレーム及び「I」フレームを含む。Iフレームは、ディスプレイデバイス上の全てのマクロブロック/ピクセルをリフレッシュするための情報を含み、Pフレームは、そのサブセットをリフレッシュするための情報を含む。Pフレームは、典型的には、Iフレームよりもデータサイズが小さい。本明細書で使用する場合、「フレームサイズ」という用語は、フレーム内のピクセル数を指すものとする。「フレームデータサイズ」という用語は、フレームを記憶するのに必要なバイト数を指すために使用する。
【0124】
他の実施形態では、ビデオソース1430は、カメラなどのビデオ記録デバイスを含む。このカメラを使用して、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成し得る。結果のビデオストリームはオプションで、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像との両方を含む。また、ビデオソース1430は、ビデオストリームに含められる記録済みのビデオを記憶するように構成されるストレージデバイスを含み得る。また、ビデオソース1430は、人などのオブジェクトの動きまたは位置を検出するように構成される動きまたは位置検知デバイスと、検出された動き及び/または位置に基づいてゲーム状態を特定するまたはビデオを生成するように構成されるロジックとを含み得る。
【0125】
ビデオソース1430はオプションで、他のビデオ上に配置されるように構成されるオーバーレイを提供するように構成される。たとえば、これらのオーバーレイは、コマンドインターフェース、ログイン指示、ゲームユーザへのメッセージ、他のゲームユーザの画像、他のゲームユーザのビデオフィード(たとえば、ウェブカメラビデオ)を含み得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント1410Aの実施形態では、オーバーレイは仮想キーボード、ジョイスティック、タッチパッドなどを含み得る。オーバーレイの一例では、ユーザの音声がオーディオストリームにオーバーレイされる。ビデオソース1430はオプションで、1つまたは複数のオーディオソースをさらに含む。
【0126】
ビデオサーバシステム1420が2人以上のユーザからの入力に基づいてゲーム状態を維持するように構成される実施形態では、各ユーザは視点の位置及び方向を含む異なる視点を有し得る。ビデオソース1430はオプションで、各ユーザに各自の視点に基づいて別々のビデオストリームを提供するように構成される。さらに、ビデオソース1430は、各クライアント1410に異なるフレームサイズ、フレームデータサイズ、及び/または符号化を提供するように構成され得る。ビデオソース1430はオプションで、3Dビデオを提供するように構成される。
【0127】
I/Oデバイス1445は、ビデオサーバシステム1420が、たとえば、ビデオ、コマンド、情報の要求、ゲーム状態、視線情報、デバイスの動き、デバイスの位置、ユーザの動き、クライアント識別情報、ユーザ識別情報、ゲームコマンド、セキュリティ情報、オーディオなどの情報を送信及び/または受信するように構成される。I/Oデバイス1445は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/Oデバイス1445は、ゲームサーバ1425、ネットワーク1415、及び/またはクライアント1410と通信するように構成される。
【0128】
プロセッサ1450は、本明細書で論じるビデオサーバシステム1420の様々なコンポーネント内に含まれるロジック、たとえばソフトウェアを実行するように構成される。たとえば、プロセッサ1450は、ビデオソース1430、ゲームサーバ1425、及び/またはクライアントクオリファイア(Qualifier)1460の機能を実行するためのソフトウェア命令によってプログラムされ得る。ビデオサーバシステム1420はオプションで、プロセッサ1450の2つ以上のインスタンスを含む。また、プロセッサ1450は、ビデオサーバシステム1420によって受信されたコマンドを実行するか、または本明細書で論じるゲームシステム1400の様々な要素の動作を調整するためのソフトウェア命令によってプログラムされ得る。プロセッサ1450は、1つまたは複数のハードウェアデバイスを含み得る。プロセッサ1450は電子プロセッサである。
【0129】
ストレージ1455は、非一時的なアナログ及び/またはデジタルのストレージデバイスを含む。たとえば、ストレージ1455は、ビデオフレームを記憶するように構成されるアナログストレージデバイスを含み得る。ストレージ1455は、コンピュータ可読デジタルストレージ、たとえば、ハードドライブ、光学ドライブ、またはソリッドステートストレージを含み得る。ストレージ1455は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームとの両方を含むビデオストリーム、オーディオフレーム、オーディオストリームなどを記憶するように(たとえば、適切なデータ構造またはファイルシステムによって)構成される。ストレージ1455はオプションで、複数のデバイスに分散される。いくつかの実施形態では、ストレージ1455は、本明細書の他の場所で論じるビデオソース1430のソフトウェアコンポーネントを記憶するように構成される。これらのコンポーネントは、必要に応じてすぐに供給できる形式で記憶され得る。
【0130】
ビデオサーバシステム1420はオプションで、クライアントクオリファイア1460をさらに備える。クライアントクオリファイア1460は、クライアント1410Aまたは1410Bなどのクライアントの能力をリモートで特定するように構成される。これらの能力は、クライアント1410A自体の能力と、クライアント1410A及びビデオサーバシステム1420の間の1つまたは複数の通信チャネルの能力との両方を含むことができる。たとえば、クライアントクオリファイア1460は、ネットワーク1415を介して通信チャネルをテストするように構成され得る。
【0131】
クライアントクオリファイア1460は、クライアント1410Aの能力を手動または自動で特定(たとえば、発見)することができる。手動の特定には、クライアント1410Aのユーザと通信し、ユーザに能力の提供依頼することが含まれる。たとえば、いくつかの実施形態では、クライアントクオリファイア1460は、クライアント1410Aのブラウザ内に画像、テキストなどを表示するように構成される。一実施形態では、クライアント1410Aは、ブラウザを含むHMDである。他の実施形態では、クライアント1410Aはブラウザを有するゲームコンソールであり、ブラウザはHMD上に表示され得る。表示されたオブジェクトは、クライアント1410Aの情報、たとえば、オペレーティングシステム、プロセッサ、ビデオ復号器のタイプ、ネットワーク接続のタイプ、ディスプレイ解像度などを入力するようにユーザに要求する。ユーザによって入力された情報は、クライアントクオリファイア1460に返される。
【0132】
自動の特定は、たとえば、クライアント1410A上でエージェントを実行することによって、及び/またはテストビデオをクライアント1410Aに送信することによって行われ得る。エージェントは、Webページに埋め込まれた、またはアドオンとしてインストールされた、JavaScript(登録商標)などの計算命令を含み得る。エージェントはオプションで、クライアントクオリファイア1460によって提供される。様々な実施形態では、エージェントは、クライアント1410Aの処理能力、クライアント1410Aの復号及び表示能力、クライアント1410Aとビデオサーバシステム1420との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント1410Aのディスプレイタイプ、クライアント1410A上に存在するファイアウォール、クライアント1410Aのハードウェア、クライアント1410A上で実行されるソフトウェア、クライアント1410A内のレジストリエントリなどを知ることができる。
【0133】
クライアントクオリファイア1460は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に記憶されたソフトウェアを含む。クライアントクオリファイア1460はオプションで、ビデオサーバシステム1420の1つまたは複数の他の要素とは別個のコンピューティングデバイス上に配置される。たとえば、いくつかの実施形態では、クライアントクオリファイア1460は、クライアント1410とビデオサーバシステム1420の2つ以上のインスタンスとの間の通信チャネルの特性を特定するように構成される。これらの実施形態では、クライアントクオリファイアによって発見された情報を使用して、ビデオサーバシステム1420のどのインスタンスがストリーミングビデオをクライアント1410のうちの1つに配信するのに最も適しているかを特定することができる。
【0134】
明確に特許請求したいずれの実施形態にも限定されることなく、学習アルゴリズム、機械学習方法、予測、データ分析などを処理する例示的な手法を提供する目的で、“Introduction to Machine Learning”,Second Edition,by Ethem Alpaydin,The MIT Press(ISBN 978-0-262-01243-0),Cambridge,Massachusetts,London England(2010)というタイトルの本が参照され得、これはあらゆる目的のために参照により本明細書に援用される。したがって、学習及び機械学習への参照では、任意数の特定のアルゴリズムを使用して、プレイヤー/ユーザのゲームパフォーマンスの類似性を識別し、違いを識別し、どのようにして他のプレイヤーが特定のゲームアクション及び/またはゲームインタラクションを達成したかを特定し、ユーザがゲーム内の特定のタスク、アクション、レベル、目標などを達成するためのヒントを特定することができる。機械学習処理は、ゲームコンソール上でローカルに実行され得、またはサーバ上で処理することができる。いくつかの実施形態では、分散ゲーム環境における他のユーザのアクションの処理を高速化し、動的に拡張するために、複数のサーバまたは仮想マシンが1つまたは複数の機械学習タスクを処理し得る。
【0135】
上記の実施形態を念頭に置いて、本発明がコンピュータシステムに記憶されたデータに作用する様々なコンピュータ実施動作を採用し得ることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作を含む。本発明の一部を形成する本明細書に記載の動作はいずれも有用なマシン動作である。また、本発明はこれらの動作を実行するための装置またはデバイスに関する。装置は、必要な目的のために専用に構築することができ、または装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動もしくは構成される汎用コンピュータとすることができる。具体的には、本明細書の教示に従って記述されたコンピュータプログラムと共に様々な汎用マシンを使用することができ、または必要な動作を実行するためのより専門化された装置を構築する方が便利であり得る。
【0136】
上述の発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成によって実施され得る。また、本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施され得る。
【0137】
また、本発明はコンピュータ可読媒体上のコンピュータ可読プログラミングコードとして具現化することができる。あるいは、コンピュータ可読プログラミングコードは、上記のデータ交換相互接続を使用してサーバからダウンロードされ得る。コンピュータ可読媒体は、電磁波搬送波を含む、コンピュータシステムによって後で読み取ることが可能なデータを記憶することができる任意のデータストレージデバイスである。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み取り専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学式及び非光学式データストレージデバイスを含む。また、コンピュータ可読媒体は、コンピュータ可読コードが分散して記憶され実行されるように、ネットワーク結合されたコンピュータシステム上に分散させることができる。
【0138】
理解を明確にするために前述の発明はある程度詳細に説明しているが、添付の特許請求の範囲内で特定の変更及び修正が実施され得ることは明らかであろう。したがって、本実施形態は限定ではなく例示と見なされるべきであり、本発明は本明細書で与えた詳細に限定されるべきではなく、添付の特許請求の範囲及びその均等物内で修正され得る。
図1
図2A
図2B
図3A
図3B
図3C
図4A
図4B
図4C
図5A
図5B
図6
図7