(57)【要約】【解決手段】ゲームプレイをアシストするための方法である。本方法は、ゲームアプリケーションをプレイするユーザのゲームプレイを監視することを含み、ユーザは達成するべき定義済タスクを有し、タスクはタスクタイプに関連付けられる。本方法は、タスクタイプを有する複数のタスクを引き受ける複数のプレイヤーの結果に基づいて、タスクタイプに関するタスクタイプ熟練ルールを判定することを含む。本方法は、タスクタイプ熟練ルールに基づいて、タスクを達成するためのプレイヤー熟練度スコアを判定することを含む。本方法は、プレイヤー熟練度スコア、タスクタイプ熟練ルール、及びタスクに基づいてタスクを達成する際に、ユーザ予測成功率を判定することを含む。本方法は、ユーザ予測成功率に基づいてユーザの推薦を判定することを含む。【選択図】図１Ｃ
2019524212.tif 000002
【特許請求の範囲】
【請求項１】
ゲームプレイをアシストする方法であって、
ゲームアプリケーションをプレイするユーザのゲームプレイを監視することであって、前記ユーザは達成するべき定義済タスクを有し、前記タスクはタスクタイプに関連付けられ、前記タスクタイプはタスクタイプ熟練ルールに関連付けられる、前記監視することと、
前記タスクタイプの複数のタスク及び前記タスクタイプ熟練ルールを引き受ける複数のプレイヤーの結果に基づいて、前記タスクタイプに関するプレイヤー熟練閾値スコアを判定することと、
前記タスクを達成するために、プレイヤー熟練度スコアを判定することと、
前記プレイヤー熟練度スコア、前記プレイヤー熟練閾値スコア、及び前記タスクに基づいて前記タスクを達成する際に、ユーザ予測成功率を判定することと、
前記ユーザ予測成功率に基づいて前記ユーザの推薦を判定することと、
を含む、方法。
【請求項２】
複数のゲームアプリケーションをプレイする前記ユーザの複数のゲームプレイを監視することをさらに含み、前記複数のゲームプレイは達成するべき複数のタスクを含み、前記タスクのそれぞれは前記タスクタイプによって定義される、請求項１に記載の方法。
【請求項３】
前記プレイヤー熟練度スコアは、前記複数のタスクに遭遇するときに前記ユーザの過去のパフォーマンスに基づくものである、請求項２に記載の方法。
【請求項４】
前記プレイヤー熟練度スコアは、前記タスクに遭遇するときに前記ユーザの現在のパフォーマンスに基づくものである、請求項１に記載の方法。
【請求項５】
複数のゲームアプリケーションをプレイする複数のプレイヤーの複数のゲームプレイを監視することをさらに含み、前記複数のゲームプレイは達成するべき複数のタスクを含み、前記タスクのそれぞれは前記タスクタイプによって定義され、
前記プレイヤー熟練閾値スコアは、前記タスクタイプの前記複数のタスクに遭遇する前記複数のプレイヤーのパフォーマンスに基づくものである、請求項１に記載の方法。
【請求項６】
前記推薦は、前記タスクを達成することを容易にする推薦アクションを含む、請求項１に記載の方法。
【請求項７】
前記ユーザによって設定された感度評定の選択を受信することをさらに含み、より低い感度は、推薦を受信するより高い意欲を示す、請求項１に記載の方法。
【請求項８】
前記タスクタイプは前記タスクである、請求項１に記載の方法。
【請求項９】
ゲームプレイをアシストするためのコンピュータプログラムを記憶する非一過性コンピュータ可読媒体であって、
ゲームアプリケーションをプレイするユーザのゲームプレイを監視するためのプログラム命令であって、前記ユーザは達成するべき定義済タスクを有し、前記タスクはタスクタイプに関連付けられ、前記タスクタイプはタスクタイプ熟練ルールに関連付けられる、前記プログラム命令と、
前記タスクタイプの複数のタスク及び前記タスクタイプ熟練ルールを引き受ける複数のプレイヤーの結果に基づいて、前記タスクタイプに関するプレイヤー熟練閾値スコアを判定する、プログラム命令と、
前記タスクを達成するために、プレイヤー熟練度スコアを判定するプログラム命令と、
前記プレイヤー熟練度スコア、前記プレイヤー熟練閾値スコア、及び前記タスクに基づいて前記タスクを達成する際に、ユーザ予測成功率を判定するプログラム命令と、
前記ユーザ予測成功率に基づいて前記ユーザの推薦を判定するプログラム命令と、
を含む、コンピュータ可読媒体。
【請求項１０】
複数のゲームアプリケーションをプレイする前記ユーザの複数のゲームプレイを監視するプログラム命令をさらに含み、前記複数のゲームプレイは達成するべき複数のタスクを含み、前記タスクのそれぞれは前記タスクタイプによって定義される、請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記プレイヤー熟練度スコアは、前記複数のタスクに遭遇するときに前記ユーザの過去のパフォーマンスに基づくものである、請求項９に記載のコンピュータ可読媒体。
【請求項１２】
複数のゲームアプリケーションをプレイする複数のプレイヤーの複数のゲームプレイを監視するプログラム命令をさらに含み、前記複数のゲームプレイは達成するべき複数のタスクを含み、前記タスクのそれぞれは前記タスクタイプによって定義され、
前記プレイヤー熟練閾値スコアは、前記タスクタイプの前記複数のタスクに遭遇する前記複数のプレイヤーのパフォーマンスに基づくものである、請求項９に記載のコンピュータ可読媒体。
【請求項１３】
前記推薦は、前記タスクを達成することを容易にする推薦アクションを含む、請求項９に記載のコンピュータ可読媒体。
【請求項１４】
ゲームプレイをアシストする方法であって、
複数のゲームアプリケーションをプレイする複数のプレイヤーの複数のゲームプレイを監視することを含み、前記複数のゲームプレイは達成するべき複数のタスクを含み、前記複数のタスクは複数のタスクタイプに関連付けられる、前記監視することと、
チームの複数のチームメンバーを登録することと、
前記複数のタスクタイプに関連付けられる前記複数のチームメンバーに関する複数のプレイヤー熟練度スコアを判定することと、
関連タスクのセットからのタスク割当の複数の組み合わせに関して、前記複数のプレイヤー熟練度スコア、前記タスクのセット、及び前記ゲームアプリケーションのゲーム環境の現在の状況に基づいて、前記関連タスクのセットを達成する際に、前記チームに関する複数の予測成功率を判定することと、
前記タスクのセットを達成する際に前記チームに関する対応する予測成功率が最高であるように、前記関連タスクのセットのタスクを、タスク割当の第１の組み合わせに関連付けられる前記複数のチームメンバーに割り当てることと、
を含む、方法。
【請求項１５】
前記複数のプレイヤー熟練度スコアを判定することは、
第１のタスクタイプの第１のタスクに割り当てられる第１のチームメンバーに関して、対応するゲームプレイに基づいて前記第１のタスクタイプに関する第１のプレイヤー熟練度スコアを判定することを含む、請求項１４に記載の方法。
【請求項１６】
複数のゲームアプリケーションをプレイする前記第１のチームメンバーの第１の複数のゲームプレイを監視することをさらに含み、前記第１の複数のゲームプレイは前記第１のタスクタイプの第１の複数のタスクを含む、請求項１５に記載の方法。
【請求項１７】
複数のゲームアプリケーションをプレイする前記第１のチームメンバーの第１の複数のゲームプレイを監視することであって、前記第１の複数のゲームプレイは複数のタスクタイプの第１の複数のタスクを含む、前記監視することと、
前記第１のチームメンバーに関して、前記第１の複数のタスクを行うときに前記第１のチームメンバーのパフォーマンスに基づいて、全体的プレイヤー熟練度スコアを判定することと、
をさらに含む、請求項１５に記載の方法。
【請求項１８】
複数のイベントに従って、前記関連タスクのセットを、達成するべき関連タスクの第２のセットに再定義することと、
第２の複数のタスクを達成する際に前記チームに関する予測成功率が最高であるように、前記複数のプレイヤー熟練度スコアに基づいて前記第２の複数のタスクのタスクを前記複数のチームメンバーに割り当てることと、
を含む、請求項１４に記載の方法。
【請求項１９】
前記イベントは期間を含む、請求項１８に記載の方法。
【請求項２０】
前記イベントは前記関連タスクのセットの達成タスクを含む、請求項１８に記載の方法。
【請求項２１】
前記イベントはチームメンバーの追加または減少を含む、チームメンバー状態の変化を含む、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオゲームに関する。とりわけ、本開示は、ゲームアプリケーションをプレイするユーザのゲームプレイを監視するための方法及びシステムを説明し、ゲームアプリケーション内で利用可能である様々な経路及びそのユーザがその経路に沿ってプレイする方法を学習し、ユーザの過去のパフォーマンス、ユーザの現在のパフォーマンス、ゲームアプリケーションをプレイする他のユーザのパフォーマンス履歴に基づいて、ユーザにアシストを提供する。
【発明の概要】
【０００２】
本開示の実施形態は、ゲームアプリケーションをプレイする他のユーザのゲームプレイと比較してユーザの熟練度に基づいて、ゲームアシストを、ゲームアプリケーションをプレイするユーザに提供するためのシステム及び方法に関する。ユーザの熟練度は、現在のゲームプレイ中のユーザのパフォーマンス、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられる過去のゲームプレイのユーザのパフォーマンス履歴、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられるユーザのプレイスタイルが考慮される。本開示のさらに他の実施形態は、メンバーのゲームプロファイル、タスクのセット、及び現在のゲーム環境に基づくチームメンバーに対するタスク割当の様々な組み合わせに関するタスクのセットを完了するチームに関する成功の確立を判定する予測モデルに基づいて、マルチプレイヤーゲームアプリケーションをプレイするメンバーのチームに、ゲームアシストを提供するためのシステム及び方法に関する。特に、ゲームプロファイルは、対応するメンバーのプレイ熟練度を定義し、現在のゲームプレイ中のユーザのパフォーマンス、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられる過去のゲームプレイのユーザのパフォーマンス履歴、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられるユーザのプレイスタイルに基づくものである。
【０００３】
一実施形態では、ゲームプレイをアシストするための方法が開示されている。本方法は、ゲームアプリケーションをプレイするユーザのゲームプレイを監視することを含み、ユーザは達成するべき定義済タスクを有する。タスクは、同様に構成タスクを定義するタスクタイプに関連付けられ得る。本方法は、また、タスクタイプの複数のタスクを引き受ける複数のプレイヤーの結果に基づいて、タスクタイプ熟練ルールを判定することを含む。本方法は、タスクタイプ熟練ルールに基づいて、タスクを達成するためのプレイヤー熟練度スコアを判定することを含む。プレイヤー熟練度スコアは、現在のゲームプレイ中のユーザのパフォーマンス、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられる過去のゲームプレイのユーザのパフォーマンス履歴、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられるユーザのプレイスタイルが考慮される。本方法は、プレイヤー熟練度スコア、タスクタイプ熟練ルール、及びタスクに基づいてタスクを達成する際に、ユーザ予測成功率を判定することを含む。いくつかの実施形態では、ゲーム環境もまた考慮される。本方法は、ユーザ予測成功率に基づいてユーザの推薦を判定することを含む。
【０００４】
別の実施形態では、ゲームアシストを提供するための方法が開示されている。本方法は、複数のゲームアプリケーションをプレイする複数のプレイヤーの複数のゲームプレイを監視することを含む。複数のゲームプレイは、達成するべき複数のタスクを含み、複数のタスクは複数のタスクタイプに関連付けられる。本方法は、チームの複数のチームメンバーを登録することを含む。本方法は、また、複数のタスクタイプに関連付けられる複数のチームメンバーに関する複数の評定を判定することを含む。これは、ゲーム熟練評定にアクセスするチームメンバーに関するユーザプロファイルにアクセスすることを含み得る。本方法は、関連タスクのセットからのタスク割当の複数の組み合わせに関して、複数の評定、タスクのセット、及びゲームアプリケーションのゲーム環境の現在の状況に基づいて、タスクのセットを達成する際に、チームに関する複数の予測成功率を判定することを含む。本方法は、タスクのセットを達成する際のチームに関する予測成功率が最高であるように、関連タスクのセットのタスクを複数のチームメンバーに割り当てることを含む。
【０００５】
本開示の他の態様は、本開示の原理を例示により示す添付の図面と併せて、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００６】
本開示は、添付図面と併せて以下の説明を参照することにより最も良く理解され得る。
【図１Ａ】本開示の一実施形態に従って、パーソナルアシストを、ローカルで実行するゲームアプリケーションをプレイするユーザに提供するシステムを示す。
【０００７】
【図１Ｂ】本開示の一実施形態に従って、パーソナルアシストを、クラウドゲームネットワークを通して実行されるようなゲームアプリケーションをプレイするユーザに提供するシステムを示す。
【０００８】
【図１Ｃ】本開示の一実施形態に従って、図１Ａの自動人工知能（ＡＩ）パーソナルアシストを示す。
【０００９】
【図１Ｄ】本開示の一実施形態に従って、プロファイラエンジンを訓練するために使用される例示的ニューラルネットワークを示す。
【００１０】
【図２】本開示の一実施形態に従って、自動ＡＩパーソナルアシストを、クラウドゲームネットワークを通して実行されるようなゲームアプリケーションをプレイするユーザに提供するためのシステム図２００を示す。
【００１１】
【図３】本開示の一実施形態に従って、マルチプレイヤーゲームアプリケーションに参加しているチームのメンバーに割り当てられるタスク及びサブタスクを示す。
【００１２】
【図４】本開示の一実施形態に従って、ゲームアプリケーションをプレイするユーザのゲームプレイをアシストするための方法におけるステップを示すフロー図である。
【００１３】
【図５】本開示の一実施形態に従って、同じタイプのタスクを行うときにチームメンバーの過去のパフォーマンスに基づく提示されたタスクを達成するチームの成功を評価する予測モデルに基づいて、マルチプレイヤーゲームアプリケーションに参加するチームのチームメンバーにタスクを割り当てるための方法におけるステップを示すフロー図である。
【００１４】
【図６】本開示の実施形態に従って、ヘッドマウントディスプレイの構成要素を示す図である。
【００１５】
【図７】本開示の様々な実施形態に従った、ゲームシステムのブロック図である。ゲームシステムは、ネットワークを介して１つ以上のクライアントにビデオストリームを提供するように構成される。
【発明を実施するための形態】
【００１６】
以下の詳細な説明は、例示の目的で多くの特定の詳細を含むが、当業者であれば、以下の詳細に対する多くの変形及び変更が本開示の範囲内にあることを理解するであろう。したがって、以下に記載される本開示の態様は、一般性を失うことなく、かつ制限を課すことなく、この説明に続く「特許請求の範囲」に記載される。
【００１７】
一般的に、本開示の様々な実施形態は、シングルプレイヤーまたはマルチプレイヤー構成のゲームアプリケーションをプレイするユーザにアシストを提供するシステム及び方法を説明する。特に、ユーザのゲームプレイの入力履歴及び複数のプレイヤーのゲームプレイの履歴の比較は、ゲームアプリケーションをプレイするときに、またはゲームアプリケーションのジャンルをプレイするときに、またはゲームアプリケーション内のタスクまたはサブタスクを達成するときに、ユーザの熟練度を格付けするために使用される。さらに、マルチプレイヤーゲームアプリケーションに参加するチームのチームメンバーの熟練度は、ゲーム環境の状況を仮定して、チームメンバーに関する役割（例えば、割り当てられたタスク）及びチーム構成（例えば、チームメンバー）の適合性に基づいて、チームの成功（例えば、競争ゲームアリーナ内で実施されるようなゲームアプリケーション内のコンテストに勝つこと、ゲームアプリケーションを完了すること、ゲームアプリケーション内のタスク及び／またはサブタスクを完了すること等）の確率を予測するために使用されることができる。その方式において、ユーザの効率性及び／または熟練度は、ゲームアプリケーションをプレイしているユーザに対して定量化することができ、さらに、ユーザまたはチームメンバーのゲームプレイのバランスをとる（例えば、次のタスク、サブタスク、またはアクションを推薦する）ために使用されることができる、及び／またはユーザ及び／またはチームメンバーのゲームプレイ内のタスク、サブタスク、アクションの満足度及び／または達成度を予測するために使用されることができる。特に、人工知能は、シングルプレイヤーモードまたはマルチプレイヤーモードでゲームアプリケーションをプレイするときに、シングルユーザに関する、またはチームのチームメンバーに関する、またはチームに関する、予測成功結果を判定するために、継続的に様々なジャンル（例えば、さまざまなゲームデータ）の複数のゲームアプリケーションをプレイする複数のプレイヤーのゲームプレイを検査し、プレイヤーのゲームスタイル、スキル、及び習慣を学習するために使用されることができる。その方式において、予測モデルは、シングルプレイヤーモードまたはマルチプレイヤーモードの１人以上のプレイヤーの役割の変化に適合することができ、ゲーム環境に関連する変化に適合することができ、チームのチームメンバーのパフォーマンス変化に適合することができる。これに関連して、本開示の実施形態が生じる。
【００１８】
したがって、本開示の実施形態は、ゲームアプリケーションに参加するユーザに、良好なゲームアプリケーションを提供するが、これは、ゲームアプリケーションの困難なセクションを通して悪戦苦闘する代わりに、またはゲームアプリケーションを終了する代わりに、推薦が、ユーザに案内する手助けをするゲームアシスタントの形式で提供されるからである。また、他の実施形態は、上記の達成を提供し、さらに、ゲームアプリケーションに参加するユーザのゲームプレイから集められた分析データの使用によって、ゲームアプリケーションのより効率的な開発を提供する。ゲーム開発者に提供されるフィードバックは、ユーザがゲームアプリケーションで関心を失った場所を（例えば、困難、退屈等によって）識別し、ゲームアプリケーションは、これらの問題を回避する新しいゲームアプリケーションを作成するために開発者によって使用されることができる。
【００１９】
本明細書全体を通して、用語「ゲームアプリケーション」は、ユーザとの相互作用を可能にするアプリケーションを説明する。一実施態様では、ゲームアプリケーションはビデオゲームを含む。本開示の実施形態は、ゲームアシストを、ゲームアプリケーションに参加するユーザに提供する。本開示の一実施形態は、ワードプロセッシング、コンピュータ支援設計等の任意の種類のアプリケーションとやり取りするユーザに、アシストを提供する。
【００２０】
本明細書全体を通して、用語「ユーザ及びプレイヤー」は、交換可能に使用されることができ、ゲームアプリケーションまたは任意の種類のアプリケーションに参加するヒトを説明することを意味する。いくつかの場合、本開示の実施形態は、ゲームクラウドシステム２１０内でゲームアプリケーションをプレイする「ユーザ」、及びまたゲームクラウドシステム２１０内で１つ以上のゲームアプリケーションを別々にプレイする１人以上の「プレイヤー」の状況の範囲内で説明され、ユーザは、（例えば、シングルプレイヤーモードまたはマルチプレイヤーモードで）他のユーザと対話する場合がある、または対話する場合がない。
【００２１】
様々な実施形態の上記の一般的な理解により、様々な図面を参照して実施形態の例の詳細をここに説明する。
【００２２】
図１Ａは、本開示の一実施形態に従って、対応するユーザにローカルで実行するゲームアプリケーションをプレイするユーザにパーソナルアシストを提供するシステム１０５Ａを示し、バックエンドサーバサポート（例えば、ゲームサーバ２０５を通ってアクセス可能）は、ゲームアシストを、ゲームアプリケーションをプレイする対応するユーザに提供する目的のために、１人以上のユーザのゲームプレイデータの分析を提供し得る。
【００２３】
図１Ａに示されるように、複数のユーザ１１５（例えば、ユーザ１１５Ａ、ユーザ１１５Ｂ．．．ユーザ１１５Ｎ）は、複数のゲームアプリケーションをプレイし、ゲームアプリケーションのそれぞれは、対応するユーザの対応するクライアントデバイス１００（例えば、ゲームコンソール）上でローカルに実行される。クライアントデバイス１００のそれぞれは、対応するゲームアプリケーションのローカルな実行を同様に行うように構成され得る。例えば、ユーザ１１５Ａは、対応するクライアントデバイス１００上で第１のゲームアプリケーションをプレイし得、第１のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン１３０Ａにより実行される。第１のゲームアプリケーションを実装するゲームロジック１１７Ａ（例えば、実行可能コード）は、対応するクライアントデバイス１００上に記憶され、第１のゲームアプリケーションを実行するために使用される。例示の目的のために、ゲームロジック１１７Ａは、対応するクライアントデバイス１００に、ポータブルメディア（例えば、フラッシュドライブ、コンパクトディスク等）を経由して、またはネットワークを経由して配信され（例えば、インターネット１５０を経由してゲームプロバイダからダウンロードされる）得る。加えて、ユーザ１１５Ｂは、対応するクライアントデバイス１００上で第２のゲームアプリケーションをプレイし、第２のゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン１３０Ａにより実行される。第２のゲームアプリケーションは、ユーザ１１５Ａのために実行する第１のゲームアプリケーション、または異なるゲームアプリケーションと同一であり得る。第２のゲームアプリケーションを実装するゲームロジック１１７Ｂ（例えば、実行可能コード）は、前述されたような対応するクライアントデバイス１００上に記憶され、第２のゲームアプリケーションを実行するために使用される。さらに、ユーザ１１５Ｎは、対応するクライアントデバイス１００上で第Ｎゲームアプリケーションをプレイし、第Ｎゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン１３０Ａにより実行される。第Ｎゲームアプリケーションは、第１もしくは第２のゲームアプリケーションと同一であり得る、または完全に異なるゲームアプリケーションであり得る。第３のゲームアプリケーションを実装するゲームロジック１１７Ｃ（例えば、実行可能コード）は、前述されたような対応するクライアントデバイス１００上に記憶され、第Ｎゲームアプリケーションを実行するために使用される。
【００２４】
明確性及び例示の目的のために、本開示の実施形態はユーザ１１５Ａを参照して説明され得、ユーザ１１５Ａは複数のユーザ１１５Ａのいずれかを表すものである。
【００２５】
クライアントデバイス１００は、ゲームコントローラ、タブレットコンピュータ、キーボード、及びビデオカメラにより取り込まれるジェスチャ、マウス、タッチパッド等の様々な種類の入力デバイスからの入力を受信し得る。クライアントデバイス１００は、ネットワーク１５０を通して、ゲームサーバ２０５に接続することが可能である少なくともメモリ及びプロセッサモジュールを有する任意の種類のコンピューティングデバイスであり得る。クライアントデバイス１００のいくつかの例は、ゲームアシストまたはマルチプレイヤーセッション管理等のバックエンド機能を提供するためにゲームサーバ２０５と相互作用することが可能である、パーソナルコンピュータ（ＰＣ）、ゲームコンソール、ホームシアターデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話、または任意の他の種類のコンピューティングデバイスを含む。
【００２６】
対応するユーザのクライアントデバイス１００は、ローカルで実行するゲームタイトル実行エンジン１３０Ａにより実行される、レンダリングされた画像を生成するように、及びディスプレイ上にレンダリングされた画像を表示するように構成される。例えば、レンダリングされた画像は、ユーザ１１５Ａのクライアントデバイス１００上で実行する第１のゲームアプリケーションのインスタンスに関連付けられ得る。特に、対応するクライアントデバイス１００は、ゲームプレイを駆動するために使用される入力コマンド等によって、対応するユーザのゲームプレイを実施するためにローカルで実行されるような対応するゲームアプリケーションのインスタンスと相互作用するように構成される。
【００２７】
一実施形態では、クライアントデバイス１００は、ローカルで実行される特定のゲームアプリケーションをプレイする対応するユーザに関するシングルプレイヤーモードで動作する。下記により十分に説明されるように、ゲームサーバ２０５を介するバックエンドサーバサポートは、プロファイラエンジン１４５等によって、ゲームアシストをユーザに提供し得る。
【００２８】
別の実施形態では、複数のクライアントデバイス１００は、それぞれがゲームアプリケーションをプレイする対応するユーザのためにマルチプレイヤーモードで動作する。その場合、ゲームサーバを介するバックエンドサーバサポートは、マルチプレイヤー処理エンジン１１９等によって、マルチプレイヤー機能を提供し得る。特に、マルチプレイヤー処理エンジン１１９は、特定のゲームアプリケーションに関してマルチプレイヤーゲームセッションを制御するように構成される。例えば、マルチプレイヤー処理エンジン１３０は、マルチプレイヤーセッションコントローラ１１６と通信し、マルチプレイヤーセッションコントローラ１１６は、マルチプレイヤーゲームセッションに参加するユーザ及び／またはプレイヤーのそれぞれとの通信セッションを確立及び維持するように構成される。その方式において、セッション中のユーザは、マルチプレイヤーセッションコントローラ１１６により制御されるように、相互に通信することができる。
【００２９】
さらに、マルチプレイヤー処理エンジン１１９は、各ユーザの対応するゲーム環境内でユーザ間の対話を可能にするために、マルチプレイヤーロジック１１８と通信する。特に、状態共有モジュール１１７は、マルチプレイヤーゲームセッションにおいてユーザのそれぞれに関する状態を管理するように構成される。例えば、状態データは、特定のポイントにおいて対応するユーザに関するゲームプレイの（ゲームアプリケーションの）状態を定義するゲーム状態データを含み得る。例えば、ゲーム状態データは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクト状態、グラフィックオーバーレイ等を含み得る。その方式において、ゲーム状態データは、ゲームアプリケーション内の対応するポイントに存在するゲーム環境の生成を可能にする。また、ゲーム状態データは、ＣＰＵ、ＧＰＵ、メモリ、レジスタ値、プログラムカウンタ値、プログラマブルＤＭＡ状態、ＤＭＡに関するバッファリングデータ、オーディオチップ状態、ＣＤ−ＲＯＭ状態等の状態のような、ゲームプレイをレンダリングするために使用されるすべてのデバイスの状態を含み得る。また、ゲーム状態データは、実行可能コードのどの部分がそのポイントからビデオゲームを実行するためにロードされる必要があるかを識別し得る。ゲーム状態データを図１Ｃ及び図２のデータベース１４０に記憶し得、状態共有モジュール１１７によってアクセス可能である。
【００３０】
さらに、状態データは、対応するプレイヤーに関するビデオゲームをパーソナライズする情報を含むユーザ保存データを含み得る。これは、ユーザのキャラクタに関連付けられる情報を含むため、ビデオゲームは、そのユーザへ一意であり得るキャラクタ（例えば、場所、体型、外観、衣服、武器等）によってレンダリングされる。その方式において、ユーザ保存データは、対応するユーザのゲームプレイに関するキャラクタの生成を可能にし、キャラクタは、対応するユーザが現在経験しているゲームアプリケーション内のポイントに対応する状態を有する。例えば、ユーザ保存データは、ゲームをプレイするときに対応するユーザ１１５が選択したゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残存ライフ数、利用可能な残機数、アーマー、トロフィー、タイムカウンタ値等を含み得る。また、ユーザ保存データは、例えば、対応するユーザ１１５を識別するユーザプロファイルデータを含み得る。ユーザ保存データをデータベース１４０に記憶し得る。
【００３１】
その方式において、状態共有データ１１７及びマルチプレイヤーロジック１１８を使用してマルチプレイヤー処理エンジン１１９は、マルチプレイヤーゲームセッションに参加するユーザのゲーム環境のそれぞれにオブジェクト及びキャラクタをオーバーレイ／挿入することが可能である。例えば、第１のユーザのキャラクタを第２のユーザのゲーム環境内へオーバーレイ／挿入する。これは、マルチプレイヤーゲームセッションにおけるユーザ間の対話を、自身の各々のゲーム環境のそれぞれを介して（例えば、画面上に表示されるように）可能にする。
【００３２】
加えて、ゲームサーバ２０５を介するバックエンドサーバサポートは、プロファイラエンジン１４５及びＡＩパーソナルアシスタント１２０等によって、ゲームアシスト機能を提供し得る。特に、ゲームクラウドシステム２１０内のプロファイラエンジン１４５は、シングルプレイヤーモードまたはマルチプレイヤーモード等で複数のゲームアプリケーションに参加する１人以上のユーザにゲームアシストを提供するように構成される。概して、人工知能（ＡＩ）パーソナルアシスタント１２０は、プロファイラエンジン１４５と併せて作動し、ゲームアシストを１人以上のユーザに提供する。一実施形態では、ＡＩパーソナルアシスタント１２０は、それがパーソナルアシストを要求及び／または受信する目的のためにインターフェースをユーザに提供するように、対応するユーザのクライアントデバイスにローカライズされる。別の実施形態では、ＡＩパーソナルアシスタントは、対応するユーザのクライアントデバイスに対してリモートにある。例えば、一実施形態では、アシストは、ユーザが自身のゲームプレイで非効率的にプレイし及び／または悪戦苦闘していることを判定したとき、シングルプレイヤーモードでゲームアプリケーションをプレイするシングルプレイヤーに提供される。アシストはまた、プレイヤーがアシストを必要とすることを要求または判定されるとき、マルチプレイヤーゲームセッションでプレイするプレイヤーに提供され得る。別の実施形態では、アシストは、チームが、タスクまたはサブタスクまたはアクションを完了する、競争アリーナの他のチームに対抗するコンテストに勝つ、ゲームアプリケーションを完了する等の目標を達成する成功の確率を高めるように、マルチプレイヤーモードのゲームアプリケーションをプレイするメンバーのチームに提供される。
【００３３】
特に、ＡＩパーソナルアシスタント１２０は、対応するユーザ１１５のクライアントデバイス１００と密接に連動し、対応するユーザ１１５の現在及び過去のゲームプレイに関するデータを集めるように構成される。さらに、ＡＩパーソナルアシスタント１２０は、アシストを提供することができるように、対応するユーザ１１５にインターフェースを提供するように構成される。例えば、プロファイラエンジン１４５によって生成されるような推薦はインターフェースを経由して提供され得、推薦は、対応するユーザ１１５の現在のゲームプレイ中にアシストを提供する。ＡＩパーソナルアシスタント１２０は、一実施形態では、対応するユーザ１１５のクライアントデバイス１００内にローカルで構成され得る。また、ローカライズされたＡＩパーソナルアシスタント１２０は、別の実施形態では、クライアントデバイス１００に対してリモートに及びゲームクラウドシステム２１０内から独立しているように構成され得る。例えば、ＡＩパーソナルアシスタント１２０は、ネットワーク１５０（例えば、ローカルエリアネットワーク、インターネット等）を経由してアクセスされ得る。さらに別の実施形態では、ＡＩパーソナルアシスタント１２０は、ゲームクラウドシステム２１０内でクライアント１００に対してリモートであるように構成され得る。その場合、パーソナルアシスタント１２０は、ゲームクラウドシステム２１０内でプロファイラエンジン１４５と直接結合され得る。
【００３４】
示されるように、プロファイラエンジン１４５は、ゲームアシストのバックエンドサーバ処理を提供するように構成される。特に、ゲームクラウドシステム２１０を経由して、プロファイラエンジン１４５は、特にゲームクラウドシステム２１０が複数のユーザ１１５に関する１つ以上のゲームアプリケーションのインスタンスを実行するときに、複数のゲームアプリケーションをプレイする複数のユーザのゲームプレイを集めること及び分析することが可能である。例えば、プロファイラエンジン１４５は、対応するユーザ１１５Ａが任意のゲームアプリケーションをプレイしているとき、ユーザデータを集めること及び分析することが可能である。経時的に、プロファイラエンジン１４５は、一般的に及び／またはゲームアプリケーションの特定のジャンルに関して、対応するユーザ１１５Ａのプレイスタイルを学習することが可能である。加えて、プロファイラエンジン１４５は、ユーザデータ、１つ以上のゲームアプリケーションのゲームルール１２５、１つ以上のゲームアプリケーションのゲームロジック１２６に基づいて、対応するユーザ１１５Ａに関する熟練度を格付けすることが可能である。一実施形態では、熟練度は、特定のゲームアプリケーションに対して与えられ、ゲームアプリケーションに参加するユーザの現在のゲームプレイ、ゲームアプリケーションに参加するユーザの過去のゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）のゲームアプリケーションに参加するユーザのゲームプレイの履歴を考慮し得る。別の実施形態では、熟練度は、ゲームアプリケーションのジャンルに対して与えられ、ゲームアプリケーションに参加するユーザのゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）のゲームアプリケーションに参加するユーザのゲームプレイの履歴を考慮し得る。さらに別の実施形態では、熟練度は、１つ以上のジャンルのゲームアプリケーションに対して与えられ、ゲームアプリケーションに参加するユーザのゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）のゲームアプリケーションに参加するユーザのゲームプレイの履歴を考慮し得る。複数のユーザ１１５のそれぞれの熟練度格付けは、ユーザアカウント１９９のデータベース内に記憶される対応するゲームプロファイルに含まれる。
【００３５】
したがって、プロファイラエンジン１４５は、対応するユーザのゲームプレイに基づいて、ならびに他のユーザの熟練度及びゲームプロファイルを比較して、対応するユーザの熟練度を格付けし複数のユーザ１１５毎にゲームプロファイルを構築することが可能である。より多くのデータが複数のユーザのゲームプレイから集められるため、プロファイラエンジン１４５は、（一般的に、または所与のレベル、サブレベル、もしくは所与の問題に関連する範囲内で）どのように特定のゲームアプリケーションをプレイするべきかを（例えば、ディープラーニングまたは人工知能技法を適用することによって）学習することが可能である、または、成功したユーザ及び／または不成功のユーザ（例えば、誤りから学習する）によってプレイされる。ゲームアプリケーションがプロファイラエンジン１４５によって学習されるようにプレイされるべき方法は経時的に進化する、これは、より多くのデータがそのゲームアプリケーションをプレイするユーザのゲームプレイで集められるためである。その方式において、特にユーザ１１５Ａがゲームプレイで行き詰ったことを検出するときにゲームアプリケーションをプレイしている、または自身のゲームプレイで非効率的にプレイしているシングルユーザ１１５Ａに推薦を行うことができる。さらに、ユーザ熟練度格付けは、メンバーのチームの目標の完了の成功を予測するために使用されることができる。チーム目標の完了が成功する確率を最大にし、各チームメンバーの熟練度格付け、含有されるタスク、及び可能性として考えられるゲーム環境に基づく方式でタスクを割り当てるように推薦を行い得る。
【００３６】
図１Ｂは、本開示の一実施形態に従って、パーソナルアシストを、クラウドゲームネットワークを通して実行されるようなゲームアプリケーションをプレイするユーザに提供するシステムを示す。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で実行する複数の仮想マシン（ＶＭ）を含むゲームクラウドシステム２１０であり得、１つ以上の仮想マシンは、ホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。
【００３７】
示されるように、ゲームクラウドシステム２１０は、複数の双方向性ビデオゲームまたはゲームアプリケーションへのアクセスを提供するゲームサーバ２０５を含む。ゲームサーバ２０５は、クラウド内で利用可能である、任意の種類のサーバコンピューティングデバイスであり得、１つ以上のホスト上で実行する１つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ２０５は、特定のユーザ１１５Ａに関するゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサをサポートする仮想マシンを管理し得る。したがって、複数の仮想マシンに関連付けられるゲームサーバ２０５の複数のゲームプロセッサは、複数のユーザ１１５のゲームプレイに関連付けられるゲームアプリケーションの複数のインスタンスを実行するように構成される。
【００３８】
示されるように、複数のユーザ１１５はネットワーク１５０を介してゲームクラウドシステム２１０にアクセスし、ユーザ１１５は対応するクライアントデバイス１００を介してネットワーク１５０にアクセスする。例えば、対応するユーザ１１５Ａのクライアントデバイス１００は、インターネット等のネットワーク１５０を通してゲームアプリケーションへのアクセスを要求するために、及びゲームサーバ２０５により実行され、対応するユーザ１１５Ａに関連付けられる表示デバイスへ配信される、ゲームアプリケーション（例えば、ビデオゲーム）のインスタンスをレンダリングするように構成される。例えば、ユーザ１１５Ａは、ゲームサーバ２０５のゲームプロセッサ上で実行するゲームアプリケーションのインスタンスとクライアントデバイス１００を経由して相互作用し得る。より具体的には、ゲームアプリケーションのインスタンスは、ゲームタイトル実行エンジン１３０Ｂにより実行される。特定のゲームアプリケーションを実装するゲームロジック（例えば、実行可能コード）は、データストア１４０を経由して記憶されアクセス可能であり、ゲームアプリケーションを実行するために使用される。一実施形態では、１つ以上のゲームタイトル実行エンジン１３０Ｂは、複数のゲームアプリケーションの複数のインスタンスをサポートするように構成され得る。したがって、ゲームタイトル処理エンジン１３０Ｂは、示されるように、複数のゲームロジック１７７を使用して複数のゲームアプリケーションをサポートすることが可能である。
【００３９】
クライアントデバイス１００は、ゲームコントローラ、タブレットコンピュータ、キーボード、及びビデオカメラにより取り込まれるジェスチャ、マウス、タッチパッド等の様々な種類の入力デバイスからの入力を受信し得る。前述されたように、クライアントデバイス１００は、ネットワーク１５０を通して、ゲームサーバ２０５に接続することが可能である少なくともメモリ及びプロセッサモジュールを有する任意の種類のコンピューティングデバイスであり得る。クライアントデバイス１００のいくつかの例は、ゲームアプリケーションのインスタンスを実行するためにゲームサーバ２０５と相互作用することが可能である、パーソナルコンピュータ（ＰＣ）、ゲームコンソール、ホームシアターデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話、または任意の他の種類のコンピューティングデバイスを含む。
【００４０】
ユーザ１１５Ａのクライアントデバイス１００は、ゲームサーバ２０５によって配信されるレンダリングされた画像を受信するように、及びディスプレイ上にレンダリングされた画像を表示するように構成される。例えば、レンダリングされた画像は、対応するユーザ１１５Ａに関連して、ゲームサーバ２０５上で実行するゲームアプリケーションのインスタンスに関連付けられ得る。特に、クライアントデバイス１００は、ゲームプレイを駆動するために使用される入力コマンド等によって、ユーザ１１５Ａのゲームプレイに関連付けられるゲームアプリケーションのインスタンスと相互作用するように構成される。
【００４１】
ゲームクラウドシステム２１０内のプロファイラエンジン１４５は、シングルプレイヤーモードまたはマルチプレイヤーモード等で１つ以上のゲームアプリケーションに参加する１人以上のユーザにゲームアシストを提供するように構成される。特に、人工知能（ＡＩ）パーソナルアシスタント１２０は、プロファイラエンジン１４５と併せて作動し、ゲームアシストを１人以上のユーザに提供する。例えば、一実施形態では、アシストは、ユーザが自身のゲームプレイで非効率的にプレイし及び／または悪戦苦闘していることを判定したとき、シングルプレイヤーモードまたはマルチモードでゲームアプリケーションをプレイするシングルプレイヤーに提供される。別の実施形態では、アシストは、チームが、タスクまたはサブタスクまたはアクションを完了する、競争アリーナの他のチームに対抗するコンテストに勝つ、ゲームアプリケーションを完了する等の目標を達成する成功の確率を高めるように、マルチプレイヤーモードのゲームアプリケーションをプレイするメンバーのチームに提供される。
【００４２】
特に、ＡＩパーソナルアシスタント１２０は、対応するユーザ１１５Ａのクライアントデバイス１００と密接に連動し、対応するユーザ１１５Ａの現在及び過去のゲームプレイに関するデータを集めるように構成される。さらに、ＡＩパーソナルアシスタント１２０は、アシストを提供することができるように、対応するユーザ１１５Ａにインターフェースを提供するように構成される。例えば、プロファイラエンジン１４５によって生成されるような推薦はインターフェースを経由して提供され得、推薦は、対応するユーザ１１５Ａの現在のゲームプレイ中にアシストを提供する。ＡＩパーソナルアシスタント１２０は、一実施形態では、対応するユーザ１１５Ａのクライアントデバイス１００内にローカルで構成され得る。また、ローカライズされたＡＩパーソナルアシスタント１２０は、別の実施形態では、クライアントデバイス１００に対してリモートであるように及びゲームクラウドシステム２１０内から独立しているように構成され得る。例えば、ＡＩパーソナルアシスタント１２０は、ネットワーク１５０（例えば、ローカルエリアネットワーク、インターネット等）を経由してアクセスされ得る。さらに別の実施形態では、ローカライズされたＡＩパーソナルアシスタント１２０は、ゲームクラウドシステム２１０内でクライアント１００に対してリモートであるように構成され得る。その場合、パーソナルアシスタント１２０は、ゲームクラウドシステム２１０内でプロファイラエンジン１４５と直接結合され得る。
【００４３】
示されるように、プロファイラエンジン１４５は、ゲームアシストのバックエンドサーバ処理を提供するように構成される。特に、ゲームクラウドシステム２１０を経由して、プロファイラエンジン１４５は、特にゲームクラウドシステム２１０がユーザ１１５に関するゲームアプリケーションのインスタンスを実行するときに、複数のゲームアプリケーションをプレイする複数のユーザ１１５のゲームプレイを集める及び分析することが可能である。例えば、プロファイラエンジン１４５は、対応するユーザ１１５Ａが任意のゲームアプリケーションをプレイしているとき、ユーザデータを集める及び分析することが可能である。経時的に、プロファイラエンジン１４５は、一般的に及び／またはゲームアプリケーションの特定のジャンルに関して、対応するユーザ１１５Ａのプレイスタイルを学習することが可能である。加えて、プロファイラエンジン１４５は、ユーザデータ、１つ以上のゲームアプリケーションのゲームルール１２５、１つ以上のゲームアプリケーションのゲームロジック１２６に基づいて、対応するユーザ１１５Ａに関する熟練度を格付けすることが可能である。一実施形態では、ユーザ１１５Ａの熟練度は、特定のゲームアプリケーションに対して与えられ、ゲームアプリケーションに参加するユーザ１１５Ａの現在のゲームプレイ、ゲームアプリケーションに参加するユーザ１１５Ａの過去のゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）のゲームアプリケーションに参加するユーザ１１５Ａのゲームプレイの履歴を考慮し得る。別の実施形態では、ユーザ１１５Ａの熟練度は、ゲームアプリケーションのジャンルに対して与えられ、ゲームアプリケーションに参加するユーザ１１５Ａのゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）のゲームアプリケーションに参加するユーザ１１５Ａのゲームプレイの履歴を考慮し得る。さらに別の実施形態では、１１５Ａの熟練度は、１つ以上のジャンルのゲームアプリケーションに対して与えられ、ゲームアプリケーションに参加するユーザ１１５Ａのゲームプレイに基づくものであり、１つ以上のジャンルのゲームアプリケーションに参加するユーザ１１５Ａのゲームプレイの履歴（例えば、全体的プレイスタイルの証拠）を考慮し得る。複数のユーザ１１５のそれぞれの熟練度格付けは、ユーザアカウント１９９のデータベース内に記憶される対応するゲームプロファイルに含まれる。
【００４４】
したがって、プロファイラエンジン１４５は、対応するユーザ１１５Ａのゲームプレイに基づいて、ならびに他のユーザの熟練度及びゲームプロファイルを比較して、対応するユーザ１１５Ａの熟練度を格付けしユーザ１１５Ａにゲームプロファイルを構築することが可能である。より多くのデータが複数のユーザのゲームプレイから集められるため、プロファイラエンジン１４５は、（一般的に、または所与のレベル、サブレベル、もしくは所与の問題に関連する範囲内で）どのように特定のゲームアプリケーションをプレイするべきかを（例えば、ディープラーニングまたは人工知能技法を適用することによって）学習することが可能である、または、成功したユーザ及び／または不成功のユーザ（例えば、誤りから学習する）によってプレイされる。ゲームアプリケーションがプロファイラエンジン１４５によって学習されるようにプレイされるべき方法は経時的に進化する。これは、より多くのデータがそのゲームアプリケーションをプレイするユーザのゲームプレイで集められるためである。その方式において、特にユーザ１１５Ａがゲームプレイで行き詰ったことを検出するときにゲームアプリケーションをプレイしている、または自身のゲームプレイで非効率的にプレイしているシングルユーザ１１５Ａに推薦を行うことができる。さらに、ユーザ熟練度格付けは、メンバーのチームの目標の完了の成功を予測するために使用されることができる。チーム目標の完了が成功する確率を最大にし、各チームメンバーの熟練度格付け、含有されるタスク、及び可能性として考えられるゲーム環境に基づく方式でタスクを割り当てるように推薦を行い得る。
【００４５】
別の実施形態では、前述されたように、マルチプレイヤー処理エンジン１１９は、ゲームアプリケーションについてマルチプレイヤーゲームセッションを制御することを提供する。特に、マルチプレイヤー処理エンジン１１９がマルチプレイヤーゲームセッションを管理するときに、マルチプレイヤーセッションコントローラ１１６は、マルチプレイヤーセッション内のユーザ及び／またはプレイヤーのそれぞれとの通信セッションを確立及び維持するように構成される。その方式において、セッション中のユーザは、マルチプレイヤーセッションコントローラ１１６により制御されるように、相互に通信することが可能である。
【００４６】
さらに、マルチプレイヤー処理エンジン１１９は、各ユーザの対応するゲーム環境内でユーザ間の対話を可能にするために、マルチプレイヤーロジック１１８と通信する。特に、状態共有モジュール１１７は、マルチプレイヤーゲームセッションにおいてユーザのそれぞれに関する状態を管理するように構成される。例えば、状態データは、前述されたように、特定のポイントにおいて対応するユーザ１１５Ａに関するゲームプレイの（ゲームアプリケーションの）状態を定義するゲーム状態データを含み得る。さらに、前述されたように、状態データは、対応するプレイヤーに関するビデオゲームをパーソナライズする情報を含むユーザ保存データを含み得る。例えば、これは、ユーザのキャラクタと関連付けられる情報を含むため、ビデオゲームは、そのユーザへ一意であり得るキャラクタ（例えば、体型、外観、衣服、武器等）によってレンダリングされる。その方式において、状態共有データ１１７及びマルチプレイヤーロジック１１８を使用してマルチプレイヤー処理エンジン１１９は、マルチプレイヤーゲームセッションに参加するユーザのゲーム環境のそれぞれにオブジェクト及びキャラクタをオーバーレイ／挿入することが可能である。これは、マルチプレイヤーゲームセッションにおけるユーザ間の対話を、自身の各々のゲーム環境のそれぞれを介して（例えば、画面上に表示されるように）可能にする。
【００４７】
図１Ｃは、本開示の一実施形態に従って、図１Ａ〜図１Ｂのプロファイラエンジン１４５及びパーソナルアシスタント１２０を含む自動人工知能（ＡＩ）パーソナルアシスタントシステム１２９を示す。ＡＩパーソナルアシスタント１２９は、ゲームアプリケーションをプレイする他のプレイヤーのゲームプレイと比較して、対応する１人のユーザまたは複数のユーザの熟練度に基づいて、シングルプレイヤーモードまたはマルチプレイヤーモードでゲームアプリケーションをプレイする１人以上のユーザにゲームアシストを提供するように構成される。示されるように、システム１２９のＡＩパーソナルアシスタント１２０及びプロファイラエンジン１４５は、前述されたように、ゲームアシストを提供するように一緒に連動し、一緒に位置し得る、または相互にリモートにあり得る。一実施形態では、各ユーザは別個のＡＩパーソナルアシスタントシステム１２９によってサポートされ、ＡＩパーソナルアシスタントシステム１２９は、一緒に、バックエンドプロファイラエンジン１４５によってサポートされる少なくとも専用ＡＩパーソナルアシスタント１２０を含む。例えば、図１Ｃに示されるように、ユーザ１１５Ｓは、プロファイラエンジン１４５のユーザゲームプレイプロファイラ１４５Ａと通信するＡＩパーソナルアシスタント１２０Ａによってサポートされる。同様に、他のユーザ（図示されない）は、プロファイラエンジン１４５のユーザゲームプレイプロファイラ１４５Ａと通信するＡＩパーソナルアシスタント１２０Ｂによってサポートされ得る。また別のユーザ（図示されない）は、プロファイラエンジン１４５のユーザゲームプレイプロファイラ１４５Ａと通信するＡＩパーソナルアシスタント１２０Ｃによってサポートされ得る。
【００４８】
示されるように、ＡＩパーソナルアシスタントシステム１２９は、ゲームアプリケーションをプレイするユーザのゲームプレイを監視するように構成される。特に、ＡＩパーソナルアシスタント１２０は、ユーザのゲームプレイを監視するように及び人工知能（ＡＩ）の目的のために使用されることができるユーザデータを集めるように構成される。ゲームプレイにおいて、現在、ユーザは、達成するべき定義済タスク３０１を有する。タスクは、下記の図３にさらに説明されるように、タスク３０１の範囲内のハッシュマークによって示されるような単一アクションもしくはサブタスクまたは複数アクションもしくはサブタスクを含み得る。また、タスクは、アクションまたはサブタスクを含まない場合がある。さらに、タスクはタスクタイプによって定義され、それにより、同様のタスクは単一タスクタイプの下でグループ化され得る。これらのタスクは同様の目標を持ち、同様のアクションまたはサブタスクを行い、タスクを完了し得る、または他の類似点を共有し得る。タスクタイプの下でタスクをグループ分けすることによって、タスクタイプのタスクに対処するユーザのゲームプレイは、特定のゲームアプリケーションに関して、ゲームアプリケーションのジャンルに関して、または一般的なゲームアプリケーションに関して、それらのタスクを順調に完了するために、回避するべきアクション、ゲームプレイの最善のスタイル、及びゲームプレイの最も効率的なスタイルをとるために適切なアクションを学習するために分析され得る。
【００４９】
別の実施形態では、ユーザのゲームプレイは、ＡＩパーソナルアシスタント１２０によって監視される。すなわち、複数のゲームアプリケーションをプレイするユーザの複数のゲームプレイを監視する。ゲームプレイは、対処及び／または達成するべき複数のタスクを含む。監視されるタスクのそれぞれは、対応するタスクタイプによって定義される。その方式において、同じタイプのタスクは、特に現在のタスクに対処するとき、ゲームスタイル、ゲーム習慣、及びユーザの熟練度を判定するために分析されることができる。もしあれば、その情報はどのタイプのアシストかを判定する際に有用であり、特定のタスクタイプの現在のタスクの対処するときに必要である及び／または求められるアシストの程度を判定する際にも有用である。
【００５０】
したがって、タスクまたはサブタスクまたはアクションに対処するクライアントデバイス１００のユーザ１１５Ａによってとられた応答毎に、アクション状態１２１、アクション測定基準１２２、及びアクション結果１２３は、対応するＡＩパーソナルアシスタント１２０（ローカルにまたはリモートに位置する）によって集められる。応答は、一般的に定義され得、ユーザ１１５Ａによって行われる戦略的決定（例えば、今の攻撃に対する後の攻撃、熱心にまたは不十分にコインを集める等）、ゲームプレイでとられる方向（例えば、町１への進行に対する町２への進行）、行われた選択（アーマー１またはアーマー２を備える）を含み得る。また、どのようにユーザ１１５Ａがアクションまたはサブタスクに対処するか（例えば、どのような順番で、サブタスクを完了する際における成功等）等のタスクに特有であるように、応答を定義し得る。
【００５１】
特に、アクション状態１２１は、ゲームアプリケーションに関連する範囲内またはゲーム環境の範囲内で対処するアクション、サブタスク、またはタスクを定義する。ゲーム環境は、タスクを説明するアクションタイプの種類が何かを判定するのに役立つ。例えば、あるアクションは、ゲーム環境に応じて異なるように分類され得る。ゲーム環境がリラックスしているとき（例えば、一方の場所から別の場所まで一般的に横断するとき）の第１のタイプの下でアクションを分類し得るが、ゲーム環境が緊迫しているとき（例えば、ボスと戦うとき）の第２のタイプの下でアクションを分類し得る。さらに、アクション測定基準１２２は、対応するＡＩパーソナルアシスタント１２５によって集められる。これらの測定基準は、タスク、サブタスク、またはアクションに対処する際に、ユーザ１１５Ａによってとられた応答に関連付けられる。また、アクション結果１２３は、対応するＡＩパーソナルアシスタント１２５によって集められる。例えば、結果１２３は、ユーザ１１５Ａがタスク、サブタスク、またはアクションを完了する際に成功したかどうかを含む。また、結果１２３は、どのように良好に（例えば、効率的に）ユーザ１１５Ａがタスク、サブタスク、またはアクションを対処する際に遂行するかを定義し得る。
【００５２】
集められたデータ（例えば、アクション状態１２１、アクション測定基準１２２、及びアクション結果１２３）は、さらなる分析のために（例えば、推薦を提供するために）、プロファイラエンジン１４５に配信される。具体的には、集められたデータは、ゲームアプリケーションをプレイするときに、ゲームアプリケーションのジャンルをプレイするときに、または一般的にゲームアプリケーションをプレイするときに、及び特に特定のタスクタイプのタスクに対処するときに、ユーザ１１５Ａに関するユーザ１１５Ａの集められたデータを、ユーザ１１５Ａの現在及び過去のパフォーマンスならびに他のユーザの過去のパフォーマンスと比較するゲームプレイプロファイラ１４５Ａに配信される。その方式において、ユーザゲームプレイプロファイラ１４５Ａは、ゲームクラウドシステム２１０内で、データストア１４３内に保存される対応するプレイヤーＩＤによって識別されるように、ユーザ毎にゲームプロファイルを構築することが可能である。ゲームプロファイルは、１つ以上のゲームアプリケーションの１つ以上のゲームアプリケーションの対応するユーザデータ、ゲームルール１２５に基づくものであり、ゲームルール１２５はデータストア１４０内に記憶される。
【００５３】
一実施形態では、複数のユーザの複数のゲームプレイは、１つ以上のＡＩパーソナルアシスタントシステム１２９によって監視される。ゲームプレイは、複数のゲームアプリケーションに関連付けられる。前述されたように、ゲームプレイは対処及び／または達成するべき複数のタスクを含み、各タスクは対応するタスクタイプによって定義される。したがって、前述されたように、集められたデータを複数のユーザに関するゲームプロファイルを構築するために使用することができる。さらに、タスクタイプ熟練ルール及び／またはプレイヤー熟練度スコアは、タスクタイプの複数のタスクに対処する複数のプレイヤーの結果（例えば、プレイヤーのパフォーマンス）に基づいて判定される。
【００５４】
特に、ゲームプロファイル１３１Ａ〜Ｎは、ユーザゲームプレイプロファイラ１４５によって作成される。例示の目的のために、ゲームプロファイルは、複数のタスクに対処するとき、ユーザＡのパフォーマンス履歴を含み得る。タスクのそれぞれは、パフォーマンスのグレードが与えられ得る。例えば、ユーザ１１５Ａのゲームプロファイル１３１Ａは、タスク／サブタスク／アクション１に関するグレード１、タスク／サブタスク／アクション２に関するグレード２、タスク／サブタスク／アクション３に関するグレード３等を示す。下記に説明されるように、これらのグレードは任意の種類の任意のタスクに対処するときにユーザ１１５Ａの全体的熟練度を判定するために、または特定の種類のタスクに対処するときにユーザ１１５Ａの熟練度を判定するために使用され得る。
【００５５】
ゲームプロファイル１３１Ａ〜Ｎのデータは、ユーザゲームプレイプロファイラ１４５のディープラーニングエンジン１４６にフィードバックされ得る。ディープラーニングエンジン１４６は、ディープラーニングアルゴリズム、強化学習、または他の人工知能ベースアルゴリズムを含む人工知能を利用する。ディープラーニングの検討は図１Ｄに関して提供される。その方式において、集められたデータの分析は、継続的に、アシストをユーザに提供するために使用される更新済分析データを提供するために行われ得る。例えば、タスクタイプ熟練ルールは、新しいデータを反映されるためにアップグレードされ得る。
【００５６】
さらに、集められたデータは、特定のタスクタイプのタスクに対処するときに、ユーザの熟練度（例えば、ユーザ熟練度スコア）を判定するために使用されることができる。特に、タスクタイプは、さらに、タスクタイプ熟練ルールによって定義され、ユーザの熟練度は、タスクタイプ熟練ルールに基づいて判定される。本ルールは、タスクタイプの複数のタスクに対処する複数のユーザの結果に基づいて判定される。すなわち、１つ以上のゲームアプリケーションのタスクタイプの複数のタスクに対処する複数のユーザからのデータ（例えば、例えば、アクション状態１２１、アクション測定基準１２２、及びアクション結果１２３）は、タスクタイプ熟練ルールを生成するために分析される。例えば、本ルールは、そのタスクタイプのタスクの対する平均応答を定義し得、平均応答は、タスクを達成するのに要する平均時間、またはタスクを達成するのに必要な平均コマンド数等を含む。より積極的または消極的に本ルールを調整し得る。それにより、より積極的なルールは平均ユーザ及び／またはプレイヤーよりも良好なものの応答を定義し、より消極的なルールは平均ユーザ未満のものの応答を定義する。
【００５７】
一実施形態では、特定のタスクに対処するときのユーザの熟練度（例えば、ユーザ熟練度スコア）は、特定のゲームアプリケーションに対して判定され得、ゲームアプリケーションに参加するユーザの現在のゲームプレイ、ゲームアプリケーションに参加するユーザの過去のゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）または複数のジャンル（例えば、全体的プレイスタイル）のゲームアプリケーションに参加するユーザのゲームプレイの履歴を考慮し得る。例えば、ユーザ熟練度スコアは、ユーザが直面する複数のタスクに遭遇するときにユーザの過去のパフォーマンスに基づくものであり得る。別の実施形態では、ユーザ熟練度スコアは、複数のタスクに遭遇するときにユーザの現在のパフォーマンスに基づくものであり得、この特定のゲームアプリケーションにおけるユーザのゲームプレイヤーだけが考慮される。一実施形態では、ユーザ熟練度スコアは、タスクタイプの複数のタスクに遭遇するときにユーザの過去のパフォーマンスに基づくものであり、現在のタスクに遭遇するときにユーザの現在のパフォーマンスに基づくものである。
【００５８】
別の実施形態では、熟練度は、ゲームアプリケーションのジャンルに対して与えられ、ゲームアプリケーションに参加するユーザのゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）のゲームアプリケーションに参加するユーザのゲームプレイの履歴を考慮し得る。さらに別の実施形態では、熟練度は、１つ以上のジャンルの複数のゲームアプリケーションのタスクタイプの任意のタスクに対処するために与えられ、ゲームアプリケーションに参加するユーザのゲームプレイに基づくものであり、同じジャンル（例えば、プレイスタイル）のゲームアプリケーションに参加するユーザのゲームプレイの履歴を考慮し得る。
【００５９】
現在の熟練度スコアはまた、今後の熟練度スコアを判定するときに、ユーザの過去のパフォーマンスに含まれる。すなわち、ユーザの現在のパフォーマンスは記憶され、今後の熟練度スコアを判定するときに考慮される。
【００６０】
ユーザゲームプレイプロファイラ１４５Ａのディープラーニングエンジン１４６は、ゲームアプリケーション内で問題、ゲームプレイ困難度等を識別するためにソーシャルネットワークを通してデータ１４１（例えば、インターネットデータ）を集めることが可能である。例えば、ユーザは、ゲームアプリケーションの特定のセクションをクリアする方法に関する質問を尋ねるゲーム用ブログに提示し得る。ディープラーニングエンジン１４６は、そのデータを使用し、異なるタスクを識別し、複数のプレイヤーによってプレイされるようなタスクに対する様々なアプローチと、それらのタスクを対処するときのその相対的成功及び／または失敗とを含むデータベースを構築することができる。また、ゲームタイトル処理エンジン１３０のユーザゲームプレイプロファイラ１４５Ａは、前述されたように、ゲームアプリケーション内の、特定のユーザの通信１４２、または問題、ゲームプレイ困難度等を識別する際に使用されるユーザ間の通信を分析するように構成される。
【００６１】
さらに、ユーザゲームプレイプロファイラ１４５Ａは、プレイヤー熟練度スコア、タスクタイプ熟練ルール、及びユーザに提示されるタスクに基づいて所与のタスクを達成する際に、ユーザ予測成功率を判定することが可能である。予測成功率は、ユーザが経験する所与のゲーム環境を考慮し得る。
【００６２】
結果として、推薦エンジン１３５は、現在のタスクに関するユーザ予測成功率に基づいて、ユーザに関する推薦を判定するように構成される。すなわち、推薦はユーザの熟練度に基づいて生成され、熟練度は、現在のゲームプレイ中のユーザのパフォーマンス、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられる過去のゲームプレイのユーザのパフォーマンス履歴、一般的なまたは特定のジャンルのゲームアプリケーションに関連付けられるユーザのプレイスタイルの１つ以上が考慮される。一実施形態では、推薦は、タスクを達成することを容易にするユーザによる推薦アクションまたは応答を含む。推薦エンジン１３５は、ユーザクライアントデバイス１００に表示される、ローカライズされたＡＩパーソナルアシスタント１２５に単一の推薦または複数の推薦を配信する。例えば、推薦は、アクション提案１２４を含み得る。
【００６３】
一実施形態では、ユーザゲームプレイプロファイラ１４５Ａは、達成するべきタスクのセットが与えられるメンバーのチームにアシストを提供するように構成される。ユーザゲームプレイプロファイラ１４５Ａが、チームメンバーのそれぞれのゲームプレイプロファイルを判定し及び／またはそれにアクセスすることが可能であるので、プロファイラの情報を、タスクのセットを順調に達成するためにチームメンバーを最良に利用する方法を判定するために使用することができ、より重要なことに、最も効率的な方式でタスクを完了するようにチームメンバーにタスクを割り当てるために、及び／または関連目標を達成するために（例えば、タスクのセットを完了するために、完了を成功するために、ゲームアプリケーションを完了するために等）成功の確率を最大にするために、チームメンバーにタスクを割り当てるために使用することができる。すなわち、ユーザゲームプレイプロファイラ１４５Ａは、タスクのセットを完了するときに、チームに関する成功の確率を判定する予測モデルに基づいて、ゲームアシストを提供するように構成される。成功の確率は、チームメンバーに割り当てられたタスクの組み合わせ毎に判定され、成功の確率は、メンバーのゲームプロファイル、タスクのセット、及び現在のゲーム環境に基づいて判定される。
【００６４】
図１Ｄは、本開示の一実施形態に従って、ＡＩパーソナルアシスタント１２０の１つ以上のモジュールをサポートするディープラーニングエンジン１４６を訓練するために使用される例示的ニューラルネットワーク１９０を示す。例えば、ニューラルネットワーク１９０は、複数のユーザ１１５に関するゲームプレイプロファイルを判定するために、ユーザゲームプレイプロファイラ１４５Ａによって使用されるデータセットを分析するための自動分析ツールの例を表す。特に、ニューラルネットワーク１９０のインスタンスは、複数のユーザ１１５に関するゲームプレイプロファイルを判定するために及び／または特定のユーザのゲームプレイ中に推薦を提供するために、ユーザゲームプレイプロファイラ１４５Ａを訓練するために使用され得る。
【００６５】
ニューラルネットワーク１９０の異なる種類が可能である。ある例では、ニューラルネットワーク１９０は、ディープラーニングエンジン１４６によって実施され得るディープラーニングをサポートする。それに応じて、ディープニューラルネットワーク、従来式ディープニューラルネットワーク、及び／または監督済訓練または未監督訓練を使用する再発ニューラルネットワークを実装することができる。別の例では、ニューラルネットワーク１９０は、強化学習をサポートするディープラーニングネットワークを含む。例えば、ニューラルネットワーク１９０は、強化学習アルゴリズムをサポートするマルコフ決定過程（ＭＤＰ）としてセットアップされる。
【００６６】
概して、ニューラルネットワーク１９０は、人工ニューラルネットワーク等の相互接続ノードのネットワークを表す。各ノードは、データからいくつかの情報を学習する。相互接続によってノード間で知識を交換することができる。ニューラルネットワーク１９０への入力は、ノードのセットをアクティブにする。さらに、このノードのセットは他のノードをアクティブにし、それによって、入力についての知識を伝搬する。出力が提供されるまで他のノードにわたって、このアクティブ化プロセスを繰り返す。
【００６７】
示されるように、ニューラルネットワーク１９０は、ノードの階層を含む。最低の階層レベルにおいて、入力層１９１が存在する。入力層１９１は、入力ノードのセットを含む。これらの入力ノードのそれぞれは、ユーザゲームプレイプロファイラ特徴（例えば、ビデオゲームとのユーザの相互作用に、ビデオゲームをプレイするユーザに、ビデオゲーム等に特有の特徴）にマッピングされる。
【００６８】
最高の階層レベルにおいて、出力層１９３が存在する。入力層１９３は、出力ノードのセットを含む。例えば、出力ノードは、ユーザゲームプレイプロファイラの１つ以上の構成要素に関する決定を表す。前述されたように、出力ノードは、問題、異なるタスク、ゲームアプリケーション内の特定のタスクを完了するアプローチ、ゲームアプリケーション内の他のゲームプレイ困難度を識別し得、特定のタイプのタスクまたは特定のタスクに関するユーザに関する成功率を予測し、達成するべきタスクのセットが与えられるメンバーのチームに関する成功率を予測し、ユーザ及び／またはチームに関する熟練度スコアを判定し、推薦を判定し、アシストを提供する等を行う。ニューラルネットワーク１９０のノードは、そのような決定を行うために使用されることができるモデルのパラメータを学習する。
【００６９】
隠れ層１９２は、入力層１９１と出力層１９３との間で存在する。隠れ層１９２は「Ｎ」個の隠れ層を含み、「Ｎ」は１以上の整数である。さらに、隠れ層のそれぞれは、また、隠れノードのセットを含む。
【００７０】
入力ノードは、隠れノードに相互接続される。同様に、隠れノードは、出力ノードに相互接続される。しかしながら、入力ノードは、出力ノードに直接相互接続されない。複数の隠れ層が存在する場合、入力ノードは、最低の隠れ層の隠れノードに相互接続される。さらに、これらの隠れノードは、次の隠れ層の隠れ層等に相互接続される、などなどである。次の最高の隠れ層の隠れノードは、出力ノードに相互接続される。
【００７１】
相互接続は、２つのノードを接続する。相互接続は、学習することができる数字的重さを有し、（例えば、ユーザゲームプレイプロファイラ、推薦データセット等に基づいて）入力に適応できる、及び学習することが可能であるニューラルネットワーク１９０をレンダリングする。
【００７２】
概して、隠れ層１９２は、入力ノードについての知識を、出力ノードに対応する全てのタスクの中から共有することを可能にする。それを行うために、変数ｆは、隠れ層１９２を通って入力ノードに適用される。ある例では、変数ｆは非線形である。異なる非線形変数ｆは利用可能であり、例えば、整流関数ｆ（ｘ）＝ｍａｘ（０，ｘ）を含む。
【００７３】
ニューラルネットワーク１９０は、また、最適解を見つけるために、コスト関数ｃを使用する。コスト関数は、所与の入力ｘ及びグラウンドトルースまたは標的値ｙに関して、ｆ（ｘ）として定義されるニューラルネットワーク１９０によって出力される予測の間の偏差を測定する。最適解は、解が最適解のコスト未満のコストを有さない状況を表す。コスト関数の例は、係るグランドトゥルースラベルが利用可能であるデータに関する、予測とグランドトゥルースとの間の平均平方誤差である。学習プロセス中、ニューラルネットワーク１９０は、バックプロパゲーションアルゴリズムを使用し、異なる最適化方法を採用し、コスト関数を最小にするモデルパラメータを学習することができる。係る最適化方法の例は、確率的勾配降下法である。
【００７４】
ある例では、ニューラルネットワーク１９０に関する訓練データセットは、同じデータ領域から得られたものである。例えば、ニューラルネットワーク１９０は、特定のゲームアプリケーションに対して訓練される。この例示では、データ領域は、ビデオゲームとのプレイヤーの相互作用のために集められるゲームセッションデータを含む。別の例では、訓練データセットは、異なるデータ領域から得られたものである。例えば、ニューラルネットワーク１９０は、ゲームアプリケーションのジャンルに対して訓練される。
【００７５】
したがって、ニューラルネットワーク１９０は、ユーザ熟練度スコア及びタスクタイプ熟練ルールに基づく特定の種類のタスクまたは特定のタスクに関するユーザの成功率を予測するために使用される予測モデルを定義し得る。加えて、ニューラルネットワーク１９０は、達成するべきタスクのセットが与えられるメンバーのチームに関する成功率を予測するために使用される予測モデルを定義し得る。これらの予測結果に基づいて、１つ以上の推薦を、ユーザにまたはメンバーのチームに提供し得る。
【００７６】
図２は、本開示の実施形態に従い、ゲームクラウドシステム（ＧＣＳ）２１０に記憶されるゲームアプリケーションのアクセス及びプレイを可能にするようなシステム図２００を示す。概して、ゲームクラウドシステムＧＣＳ２１０は、ネットワーク２２０を通して動作するクラウドコンピューティングシステムであり、複数のユーザをサポートし得る。加えて、ＧＣＳ２１０は、ゲームタイトル処理エンジン１３０及びローカライズされたＡＩパーソナルアシスタント１２０を使用して、シングルプレイヤーモードまたはマルチプレイヤーモードでゲームアプリケーションをプレイする１人以上のユーザにアシストを提供するように構成される。さらに、ＧＣＳ２１０のゲームタイトル処理エンジン１３０及び１つ以上のＡＩパーソナルアシスタント１２０（ローカルまたはリモート）は、ゲームアシストをメンバーのチームに提供するように構成され、それにより、目標の完了が成功する（タスクのセットを完了する、ゲームコンペを勝ち抜く、ゲームアプリケーションを成功する等）確率を高めるように、メンバーへのタスクもしくはサブタスクまたはアクションの割り当てを行う。特に、システム２００は、ＧＣＳ２１０、１つ以上のソーシャルメディアプロバイダ２４０、及びユーザデバイス２３０を含み、これらの全ては、ネットワーク２２０（例えば、インターネット）を介して接続される。１つ以上のユーザデバイスは、ネットワーク２２０に接続され、ＧＣＳ２１０及びソーシャルメディアプロバイダ２４０により提供されるサービスにアクセスし得る。
【００７７】
一実施形態では、ゲームクラウドシステム２１０は、ゲームサーバ２０５、ビデオレコーダ２７１、タグプロセッサ２７３、ユーザプロファイルマネージャを含むアカウントマネージャ２７４、ゲーム選択エンジン２７５、ゲームセッションマネージャ２８５、ユーザアクセスロジック２８０、ネットワークインターフェース２９０、及びソーシャルメディアマネージャ２９５を含む。ＧＣＳ２１０はさらに、一般的にデータストア１４０に記憶され得る、ユーザゲームプロファイルストア、ゲームロジックストア、ゲームアプリケーションルールストア、状態共有ストア、インターネットデータストア、ゲーム状態ストア、ランダムシードストア、ユーザセーブデータストア、スナップショットストア等の複数のゲームストレージシステムをさらに含み得る。他のゲームストレージシステムは、ゲームコードストア２６１、記録ゲームストア２６２、タグデータストア２６３、ビデオゲームデータストア２６４、及びゲームネットワークユーザストア２６５を含み得る。一実施形態では、ＧＣＳ２１０は、ゲームアプリケーション、サービス、ゲーム関連デジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ及びソーシャルネットワーク間の相互接続性を提供することができるシステムである。ＧＣＳ２１０は、ネットワークインターフェース２９０を介してソーシャルメディアマネージャ２９５を通してユーザデバイス２３０及びソーシャルメディアプロバイダ２４０と通信し得る。ソーシャルメディアマネージャ２９５は、１人以上のフレンドを関連付けるように構成され得る。一実施形態では、各ソーシャルメディアプロバイダ２４０は、ユーザソーシャルネットワーク接続を示す少なくとも１つのソーシャルグラフ２４５を含む。
【００７８】
ユーザＵ０は、ゲームセッションマネージャ２８５を介してＧＣＳ２１０により提供されるサービスにアクセスすることが可能であり、ユーザＵ０は、図１のユーザ５を表し得る。例えば、アカウントマネージャ２７４は、ＧＣＳ２１０へのユーザＵ０による認証及びアクセスを可能にする。アカウントマネージャ２７４は、メンバーユーザについての情報を記憶する。例えば、各メンバーユーザに関するユーザプロファイルは、アカウントマネージャ２７４により管理され得る。アカウントマネージャ２７４は、一実施態様では、メンバーユーザに関するゲームプロファイルを管理するように構成され得る。例えば、メンバー情報は、認証目的のためにアカウントマネージャ２７４により使用されることができる。例えば、アカウントマネージャ２７４を使用して、メンバーユーザに関連するユーザ情報を更新及び管理し得る。加えて、メンバーユーザにより所有されるゲームタイトルは、アカウントマネージャ２７４により管理され得る。その方式において、データストア２６４内に記憶されるビデオゲームは、これらのビデオゲームを所有する任意のメンバーユーザに利用可能になる。
【００７９】
一実施形態では、ユーザ（例えば、ユーザＵ０）は、ネットワーク２２０を通した接続によって、ユーザデバイス２３０を経由して、ＧＣＳ２１０及びソーシャルメディアプロバイダ２４０により提供されるサービスにアクセスすることできる。ユーザデバイス２３０は、有線または無線の、ポータブルまたは非ポータブルの、プロセッサ及びメモリを有する任意の種類のデバイスを含み得る。一実施形態では、ユーザデバイス２３０は、スマートフォン、タブレットコンピュータ、またはポータブルフォームファクタにタッチスクリーン能力を提供するハイブリッドの形態であり得る。一例示的デバイスは、オペレーティングシステムを起動し、ネットワーク２２０を通して取得され得る、及びローカルポータブルデバイス（例えば、スマートフォン、タブレット、ラップトップ、デスクトップ等）上で実行され得る様々なアプリケーション（ａｐｐ）へのアクセスが提供される携帯電話デバイスを含み得る。
【００８０】
ユーザデバイス２３０は、ユーザＵ０に関するインターフェースとして働き、ＧＣＳ２１０及びソーシャルメディアプロバイダ２４０から受信される入力コマンド２３６、及び表示データ及び／または情報２３５を送信するディスプレイ２３２を含む。ディスプレイ２３２は、タッチスクリーンとして、またはフラットパネルディスプレイ、ブラウン管（ＣＲＴ）、もしくはディスプレイをレンダリングすることが可能である他のデバイスにより一般に提供されるディスプレイとして構成されることができる。代替として、ユーザデバイス２３０は、デスクトップコンピュータまたはラップトップコンピュータに類似する、デバイスとは別個のそのディスプレイ２３２を有し得る。
【００８１】
一実施形態では、ユーザデバイス１３０は、ＧＣＳ２１０と通信し、ユーザＵ０がビデオゲームまたはゲームアプリケーションをプレイすることを可能にするように構成される。例えば、ユーザＵ０は、（例えば、ゲームタイトル等により）ゲーム選択エンジン２７５を介してビデオゲームデータストア２６４において利用可能であるビデオゲームを選択し得る。その方式において、選択されたビデオゲームは、ＧＣＳ２１０上でゲームサーバ２０５による実行のために有効にされ、ロードされる。一実施形態では、ユーザデバイス２３０がＧＣＳ２１０からゲームビデオフレーム２３５のストリームを受信するように、ゲームプレイは、主にＧＣＳ２１０において実行され、ゲームプレイを駆動するためのユーザ入力コマンド２３６は、ＧＣＳ２１０へ返送される。ストリーミングゲームプレイから受信したビデオフレーム２３５をユーザデバイス２３０のディスプレイ２３２に示す。
【００８２】
一実施形態では、ユーザＵ０がプレイするために利用可能なゲームタイトルを選んだ後に、選ばれたゲームタイトルに関するゲームセッションは、ユーザＵ０によりゲームセッションマネージャ２８５によって開始され得る。最初に、ゲームセッションマネージャ２８５は、データストア１４０内のゲーム状態ストアにアクセスし、もしあれば、ユーザＵ０によりプレイされた最後のセッションの保存されたゲーム状態（選択されたゲームに関する）を読み出し、ユーザＵ０は、前のゲームプレイの停止ポイントからゲームプレイを再開することができる。いったん再開ポイントまたは開始ポイントを識別すると、ゲームセッションマネージャ２８５は、ゲームプロセッサ２１０内のゲーム実行エンジンに通知し、ゲームコードストア２６１から選ばれたゲームタイトルのゲームコードを実行し得る。ゲームセッションを開始した後に、ゲームセッションマネージャ２８５は、ネットワークインターフェース２９０を介してユーザデバイス（例えば、ユーザデバイス２３０）に、ゲームビデオフレーム２３５（すなわち、ストリーミングビデオデータ）を渡し得る。別の実施形態では、ゲームセッションマネージャ２８５は、図１Ａのマルチプレイヤーセッションコントローラ１２１から独立して、またはそれと併せて、マルチプレイヤーセッション管理を提供し得る。
【００８３】
ゲームプレイ中に、ゲームセッションマネージャ２８５は、ゲームプロセッサ２１０、録画エンジン２７１、及びタグプロセッサ２７３と通信し、ゲームプレイまたはゲームプレイセッションの録画（例えば、ビデオ）を生成または保存し得る。一実施形態では、ゲームプレイのビデオ録画は、ゲームプレイ中に入力される、または提供されるタグコンテンツ、及び他のゲーム関連メタデータを含み得る。また、タグコンテンツを、スナップショットを用いて保存し得る。ゲームプレイのビデオ録画は、そのゲームプレイに対応する任意のゲームメトリックと一緒に、記録ゲームストア２６２内に保存され得る。任意のタグコンテンツをタグデータストア２６３内に保存し得る。
【００８４】
ゲームプレイ中に、ゲームセッションマネージャ２８５は、ゲームプロセッサ２０４と通信し、ビデオゲームの対応するゲームプレイの結果に影響を与えるために使用されるユーザ入力コマンド２３６を配信及び取得し得る。ユーザＵ０により入力される入力コマンド２３６は、ユーザデバイス２３０からＧＣＳ２１０のゲームセッションマネージャ２８５に伝達され得る。ゲームプレイを駆動するために使用される入力コマンドを含む入力コマンド２３６は、タグコンテンツ（例えば、テキスト、画像、ビデオ録画クリップ等）を含むように、ユーザインタラクティブ入力を含み得る。ゲーム入力コマンドは、任意のユーザプレイメトリック（ユーザがゲームをどれくらいの期間プレイしているか等）と同様に、ゲームネットワークのユーザストア１６５に記憶され得る。ビデオゲームに関するゲームプレイに関連する選択情報を使用して、ユーザに利用可能であり得る複数の特徴を有効にし得る。例えば、ビデオゲームに参加する対応するユーザの熟練度、ゲームアプリケーションのジャンル、または一般的なゲームアプリケーションに関する実施形態では、ゲームネットワークユーザストア２６５内に集められ及び記憶され得る。ゲームプレイが複数のユーザによってＧＣＳ２１０上で実行するため、ゲームプロファイルをすべてのユーザ毎に生成し得る。その方式において、ユーザのゲームプレイは、複数のユーザのゲームプレイと比較して、ユーザがどのように良好にビデオゲームをプレイしているのかと、ユーザがゲームタイトル処理エンジン１３０及びローカライズされたＡＩパーソナルアシスタント１２０によって提供される推薦から利益を受け得るのかとを判定し得る。シングルプレイヤーモードまたはマルチプレイヤーモードでのユーザへのアシストは、効率的なゲームプレイを容易にすることによって及びゲームアプリケーションのより困難な及び／または不可能なセクションに進むユーザを助けることによって、ゲームアプリケーションまたはビデオゲームをプレイするユーザの経験を高めることができる。ユーザＵ０の場合、ユーザデバイスは、ユーザＵ０がバックエンドサーバ（例えば、ユーザＵ０のゲームプレイ中、ゲームアシストを提供するＧＣＳ２１０のゲームタイトル処理エンジン１３０）から通信を受信することを可能にするインターフェースを提供する。
【００８５】
図３は、本開示の一実施形態に従って、マルチプレイヤーゲームアプリケーションに参加しているチームのメンバーに割り当てられ得るタスク及びサブタスクを示す。前述されたように、タスク割当はチームメンバーに与えられるタスクのセットを完了するための高い成功確率をもたらすように予測モデルに基づいて判定される。例えば、チームは３人のユーザ（ユーザＡ、ユーザＢ、及びユーザＣ）から成る。タスクＡはユーザＡに割り当てられており、タスクＡはＮ個のサブタスクを含む。サブタスクのそれぞれは、１つ以上のアクションを含み得る。例えば、タスクＡのサブタスク１は３つのアクション（３つのハッシュマークによって示されるような）を含み、サブタスク２は１つのアクションを含み、サブタスク３は４つのアクションを含み、サブタスクＮは３つのアクションを含む。示されるように、サブタスクは１つ以上のアクションを含み得るが、サブタスクはアクションを含まない場合がある。さらに、タスクＢはユーザＢに割り当てられており、タスクＢは２つのサブタスクを含み、タスクＢのサブタスク１は１つのアクションを含み、タスクＢのサブタスク２は５つのアクションを含む。また、タスクＣはユーザＣに割り当てられており、タスクＣはＮ個のサブタスクを含む。例えば、タスクＣのサブタスク１は３つのアクションを含み、サブタスク２は１つのアクションを含み、サブタスク３は３つのアクションを含み、サブタスクＮは２つのアクションを含む。
【００８６】
図３はチームのチームメンバーに割り当てられるタスク及びサブタスクに示されているが、本開示の実施形態に前述されたように、チームの１人のメンバーに割り当てられるタスクはゲームアプリケーションに参加するユーザに提示されるタスクを表し得、ユーザの熟練度に基づいて、ユーザにゲームアシストを提供し得る。
【００８７】
本開示の一実施形態に従い、ネットワークを通して通信するゲームサーバ及びクライアントデバイスの様々なモジュールの詳細な説明に関して、ここで、ゲームアシストを提供するための方法は、図４Ａのフロー図４００に関連して説明される。フロー図４００は、ゲームアプリケーションに参加するユーザのゲームプレイをアシストする目的のために、人工パーソナルアシスタントシステム１２９に含有される動作の処理及びデータフローを示す。
【００８８】
４１０において、本方法は、ゲームアプリケーションをプレイするユーザのゲームプレイを監視することを含み、ユーザは達成するべき定義済タスクを有し、タスクはタスクタイプによって定義される。その方式において、ユーザのパフォーマンスに関するデータは、ゲームアプリケーションの現在のゲームプレイ中のものである。経時的に、ユーザの複数のゲームプレイ、同じゲームアプリケーションに関連付けられる過去のゲームプレイ中のユーザのパフォーマンスの履歴に関するデータ、一般的なまたは特定のジャンルの複数のゲームアプリケーションを監視することで、一般的なまたは特定のジャンルの複数のゲームアプリケーションに関連付けられるユーザのプレイスタイルを集め、後で分析することができる。ゲームプレイ収集の履歴に関して、ユーザの複数のゲームプレイは監視され、ユーザは特定のゲームアプリケーション及び／または複数のゲームアプリケーションに参加する。ゲームプレイは達成するべき複数のタスクを含み、そのタスクのそれぞれはタスクタイプによって定義される。別の複数のタスクを定義し得、そのタスクのそれぞれを別のタスクタイプによって定義する。
【００８９】
一実施形態では、タスクタイプは、さらにタスクタイプとして識別され得るそれ自体のタスクに限定される。したがって、集められ及び分析されたデータは、ユーザ及び他のプレイヤーに関するゲームアプリケーションのゲームプレイの範囲内で提示されるような特定のタスクに対するユーザ及び／または他のプレイヤーによる応答に基づくものである。別の実施形態では、タスクタイプは、ゲームアプリケーションの複数のゲームプレイで遭遇するタスクを含む。また別の実施形態では、タスクタイプは、複数のゲームアプリケーションの複数のゲームプレイで遭遇するタスクを含む。
【００９０】
４２０において、本方法は、タスクタイプの複数のタスクの対処する複数のプレイヤーの結果に基づいて、タスクタイプに関するタスクタイプ熟練ルールを判定することを含む。例えば、プレイヤーのゲームプレイを監視し、プレイヤーは複数のゲームアプリケーションをプレイする。ゲームプレイは達成するべき複数のタスクを含み、そのタスクのそれぞれはタスクタイプによって定義される。その方式において、タスクタイプ熟練ルールは、提示されるタスクに対処するとき、どのように作動または応答するべきかの基準を定義する。タスクタイプ熟練ルールは提示されたタスクに特有であり得る、または概して、あるタスクタイプのタスクに適用し得る。タスクタイプ熟練ルールは、プレイヤー熟練度スコアまたは閾値スコアを定義し得る。
【００９１】
４３０において、本方法は、タスクタイプ熟練ルールに基づいて、タスクを達成するためのユーザ熟練度スコアを判定することを含む。ユーザ熟練度スコアは、複数のゲームアプリケーションの複数のタスクに遭遇するとき、ユーザの過去のパフォーマンスに基づくものであり得、タスクはタスクタイプのものである。一実施形態では、ユーザ熟練度スコアは、タスクに遭遇するときにユーザの現在のパフォーマンスに基づくものであり得、それにより、ゲームアプリケーションのゲームプレイから得られたデータだけが考慮される。また、他の実施形態では、ユーザ熟練度スコアは、タスクに遭遇するときのユーザの現在のパフォーマンスと、複数のゲームアプリケーションの同じタスクタイプの複数のタスクに遭遇するときのユーザの過去のパフォーマンスとの組み合わせに基づくものであり得る。
【００９２】
４４０において、本方法は、ユーザ熟練度スコア、タスクタイプ熟練ルール、及びタスクに基づいてタスクを達成する際に、ユーザ予測成功率を判定することを含む。また、ゲーム環境を考慮し得る。例えば、ユーザの熟練度が不十分でありタスクが極めて難しい場合、予測成功率は低い場合がある（例えば、２５パーセント未満）。しかしながら、ユーザの熟練度が高い場合、特にタスクが適度に難しい場合、予測成功率は高い場合がある（例えば、７０パーセントよりも高い）。
【００９３】
４５０において、本方法は、ユーザ予測成功率に基づいてユーザの推薦を判定することを含む。再度、異なるタスクが提示される不十分な熟練度を有するユーザの上記の例に続いて、その次に、推薦をユーザに提示し得る。推薦は、どのようにユーザがタスク、サブタスク、またはアクションに対処する際に応答するべきかの提案を含み得る。例えば、推薦は、タスクを達成することを容易にするコマンドまたはアクションのセットに推薦された応答を含み得る。推薦は、ユーザの熟練度に合わせられる。例えば、低い熟練度のユーザに与えられる推薦はかなり詳細であり得（例えば、少しずつ着実な指示）、一方、高い熟練度のユーザに与えられる推薦は極めて限定的であり得る、またはユーザにヒントを与えるだけの意図がありとても簡潔であり得る、または推薦を含まない場合がある。
【００９４】
さらに、与えられた推薦はユーザから受信された感度因子によって制御され得、感度因子は、ユーザが推薦を受信することに関心があるかどうかを示し、極めて熱狂的、無関心、少し反対、極めて敵対的等の範囲にわたり得る。例えば、ユーザの感受性が高い場合、推薦がほとんど与えられない、または全く与えられない。他方では、ユーザが推薦を受信する要望を示すような感受性がない場合、より多くの推薦を、要求を行うユーザに与え得る。
【００９５】
図５は、本開示の一実施形態に従って、同じタイプのタスクを行うときにチームメンバーの過去のパフォーマンスに基づく提示されたタスクを達成するチームの成功を評価する予測モデルに基づいて、マルチプレイヤーゲームアプリケーションに参加するチームのチームメンバーにタスクを割り当てるための方法におけるステップを示すフロー図である。すなわち、ゲームアシストをマルチプレイヤーゲーム環境でゲームアプリケーションをプレイするメンバーのチームに提供される。アシストは、チームメンバーへのタスク割当の様々な組み合わせに関するタスクのセットを完了するチームに関する成功の確率を判定する予測モデルに基づいて生成及び提供される。予測モデルは、メンバーのゲームプロファイル、タスクのセット、及び現在のゲーム環境を考慮したものである。
【００９６】
５１０において、本方法は、複数のゲームアプリケーションをプレイする複数のプレイヤーの複数のゲームプレイを監視することを含む。複数のゲームプレイは、達成するべき複数のタスクを含み、複数のタスクは複数のタスクタイプに関連付けられる。その方式において、プレイヤーのゲームプロファイルは、対応するプレイヤーのパフォーマンス、ゲームアプリケーションまたは複数のゲームアプリケーションに関連付けられる対応するプレイヤーのパフォーマンスの履歴に基づいて生成され得る。また、プレイスタイルは、プレイヤーに対して判定され得る。さらに、プレイヤーの熟練度評定は、単一のタスクタイプのタスクまたは１つ以上のタスクタイプのタスクに遭遇するときに、他のプレイヤーのパフォーマンスに基づいて判定され得る。
【００９７】
５２０において、本方法は、チームの複数のチームメンバーを登録することを含む。チームメンバーのそれぞれ毎のゲームプロファイルにアクセスし得る。
【００９８】
５３０において、本方法は、複数のタスクタイプに関連付けられる複数のチームメンバーに関する複数の評定を判定することを含む。すなわち、チームメンバーに関連付けられるユーザ熟練度評定を判定する。これらの評定は、どのメンバーがあるタスクを達成するのに最適であるのかに基づいて、チームメンバーにタスクを割り当てるために使用されることができる。
【００９９】
５４０において、本方法は、タスクのセットを達成する際のチームに関する予測成功率が最高であるように、複数の評定に基づいて、関連タスクのセットのタスクを複数のチームメンバーに割り当てることを含む。特に、関連タスクのセットからのタスク割当の複数の組み合わせに関して、タスクのセットを達成する際のチームに関する予測成功率を判定する。予測率は、複数の評定、タスクのセット、ゲームアプリケーションのゲーム環境の現在の状況に基づいて判定される。次に、タスクのセットを達成する際にチームに関する対応する予測成功率が最高であるように、関連タスクのセットのタスクを、選択された組み合わせでチームメンバーに割り当てることができる。
【０１００】
タスクのセットが変化するとき、またはタスクのセットが更新されるとき、本プロセスを行い得る。例えば、関連タスクのセットは、達成するべき関連タスクの第２のセットに対して再定義され得、タスクのセットは、複数のイベント（例えば、チームメンバーの減少、期間の経過、あるセットからのタスクの達成、新しいチームメンバーの追加等）に応じて変化する。第２の複数のタスクのタスクは、タスクのセットを達成する際のチームに関する予測成功率が最高であるように、複数の評定に基づいて、複数のチームメンバーに選択された組み合わせに応じて割り当てることができる。
【０１０１】
特定の実施形態が、シングルプレイヤーモードまたはマルチプレイヤーモードでゲームアプリケーションに参加する１人以上のユーザへのゲームアシストの提供を示すように提供されているが、これらは、例のために、限定しないで、説明される。本開示を読んだ当業者は、本開示の趣旨及び範囲内に入る追加実施形態を実現するであろう。
【０１０２】
広範な地理的エリアにわたり配信される、本実施形態のゲームへのアクセスを提供する等のアクセスサービスがクラウドコンピューティングを使用することが多いことに留意されたい。クラウドコンピューティングは、動的スケーラブルで、多くの場合、仮想化リソースがインターネットを通したサービスとして提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家である必要はない。クラウドコンピューティングは、インフラストラクチャアズアサービス（ＩａａＳ）、プラットフォームアズアサービス（ＰａａＳ）、及びソフトウエアアズアサービス（ＳａａＳ）等の異なるサービスに分けられることができる。クラウドコンピューティングサービスは、多くの場合、ウェブブラウザからアクセスされるオンラインで、ビデオゲーム等の共通のアプリケーションを提供する一方、ソフトウェア及びデータは、クラウド内のサーバに記憶される。用語「クラウド」は、インターネットがコンピュータネットワーク図にどのように示されているかに基づいて、インターネットのメタファとして使用され、それが隠す複雑なインフラストラクチャの抽象的概念である。
【０１０３】
ゲーム処理サーバ（ＧＰＳ）（または、単に「ゲームサーバ」）は、シングルプレイヤービデオゲーム及びマルチプレイヤービデオゲームをプレイするためにゲームクライアントにより使用される。インターネットを通してプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームは、プレイヤーからデータを収集し、それを他のプレイヤーに配信する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするには別個のサーバが必要となる。別の実施形態では、ＧＰＳは、プレイヤーと各々のゲームプレイデバイスとの間の通信を確立し、集中ＧＰＳに頼ることなく情報を交換する。
【０１０４】
専用ＧＰＳは、クライアントとは独立して起動するサーバである。係るサーバは、通常、データセンター内に位置する専用ハードウェア上で起動し、より多くの帯域幅と専用の処理能力を提供する。専用サーバは、ほとんどのＰＣベースのマルチプレイヤーゲームのためのゲームサーバをホストするのに好ましい方法である。大規模多人数同時参加型オンラインゲームは、通常ゲームタイトルを所有するソフトウェア会社がホストする専用サーバで起動し、サーバがコンテンツを制御及び更新することを可能にする。
【０１０５】
ユーザは、少なくともＣＰＵ、ディスプレイ及びＩ／Ｏを含む、クライアントデバイスでリモートサービスにアクセスする。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、ＰＤＡ等であり得る。一実施形態では、ゲームサーバ上で実行するネットワークは、クライアントによって使用されるデバイスの種類を認識し、採用する通信方法を調整する。他の場合、クライアントデバイスは、ＨＴＭＬ等の標準的な通信方法を使用して、インターネットを通してゲームサーバ上のアプリケーションにアクセスする。
【０１０６】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等を含む様々なコンピュータシステム構成によって実践され得る。本開示はまた、有線ベースまたは無線ネットワークを経由してリンクされる、遠隔処理デバイスによりタスクが行われる、分散型コンピューティング環境で実践されることができる。
【０１０７】
所与のビデオゲームが特定のプラットフォーム、及び特定の関連コントローラデバイスのために開発され得ることを理解されたい。しかしながら、本明細書に提示されるようなゲームクラウドシステムを介して係るゲームが利用可能になるとき、ユーザは、異なるコントローラデバイスでビデオゲームにアクセスし得る。例えば、ゲームは、ゲームコンソール及びその関連コントローラのために開発されている場合がある一方、ユーザは、キーボード及びマウスを利用して、パーソナルコンピュータからゲームのクラウドベースのバージョンにアクセスする場合がある。係るシナリオでは、入力パラメータ構成は、ユーザの利用可能なコントローラデバイス（この事例において、キーボード及びマウス）により生成されることができる入力から、ビデオゲームの実行のために許容可能である入力へのマッピングを定義することができる。
【０１０８】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動型デバイスを介してクラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、入力が検出されたタッチスクリーンの入力／ジェスチャとして提供されながら、同一のデバイス内で一緒に一体化される。係るデバイスについて、入力パラメータ構成は、ビデオゲームに関するゲーム入力に対応する特定のタッチスクリーン入力を定義し得る。例えば、ボタン、方向性パッド、または他のタイプの入力素子は、ビデオゲームの実行中に表示またはオーバーレイされ、ユーザがゲーム入力を生成するためにタッチすることができるタッチスクリーン上の位置を示し得る。特定の方向におけるスワイプ等のジェスチャ、または特有のタッチモーションもまた、ゲーム入力として検出され得る。一実施形態では、例えば、ビデオゲームのゲームプレイを開始する前に、タッチスクリーン上での制御の動作にユーザを慣れさせるように、ゲームプレイ用のタッチスクリーンを介して入力を提供する方法を示すように、チュートリアルをユーザへ提供することができる。
【０１０９】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスに関する接続ポイントとして機能する。すなわち、コントローラデバイスは、無線または有線接続を介してクライアントデバイスと通信し、コントローラデバイスからクライアントデバイスに入力を伝達する。クライアントデバイスは、これらの入力を順に処理し、その後、ネットワーク（例えば、ルータ等のローカルネットワークデバイスを介してアクセスされる）を介して、クラウドゲームサーバに入力データを伝達し得る。しかしながら、他の実施形態では、コントローラ自体は、ネットワークを介してクラウドゲームサーバへ直接に入力を通信する能力を有し、係る入力を最初にクライアントデバイスを通して通信する必要がない、ネットワーク化されたデバイスであり得る。例えば、コントローラは、ローカルネットワークデバイス（前述のルータ等）に接続し、クラウドゲームサーバにデータを送信し、そこからデータを受信し得る。したがって、クライアントデバイスは依然として、クラウドベースのビデオゲームからビデオ出力を受信し、それをローカルディスプレイ上にレンダリングすることを必要とされ得る一方で、入力待ち時間は、コントローラがクラウドゲームサーバへネットワークを通して入力を直接送信することを可能にすることで短くすることができ、クライアントデバイスをバイパスすることが可能である。
【０１１０】
一実施形態では、ネットワーク化されたコントローラ及びクライアントデバイスは、あるタイプの入力をコントローラからクラウドゲームサーバに直接、また他のタイプの入力を、クライアントデバイスを介して送信するように構成されることができる。例えば、検出がコントローラ自体から離れた任意の追加ハードウェアまたは処理に依存しない入力は、コントローラからクラウドゲームサーバにネットワークを介して直接送信され、クライアントデバイスをバイパスすることが可能である。係る入力は、ボタン入力、ジョイスティック入力、埋め込み型動き検出入力（例えば、加速度計、磁力計、ジャイロスコープ）等を含み得る。しかしながら、追加ハードウェアを利用する、またはクライアントデバイスによる処理を必要とする入力は、クライアントデバイスによりクラウドゲームサーバに送信されることができる。これらは、クラウドゲームサーバに送信する前に、クライアントデバイスにより処理され得るゲーム環境から取り込まれたビデオまたはオーディオを含み得る。加えて、コントローラの動き検出ハードウェアからの入力は、取り込まれたビデオと併せてクライアントデバイスにより処理され、コントローラの位置及び動きを検出し得、その後、クライアントデバイスによりクラウドゲームサーバに通信されるであろう。様々な実施形態に従って、コントローラデバイスはまた、クライアントデバイスから、またはクラウドゲームサーバから直接、データ（例えば、フィードバックデータ）を受信し得ることを理解されたい。
【０１１１】
本明細書に記載される実施形態が任意の種類のクライアントデバイス上で実行され得ることを理解されたい。いくつかの実施形態では、クライアントデバイスは、ヘッドマウントディスプレイ（ＨＭＤ）である。
【０１１２】
図６は、本開示の実施形態に従う、ヘッドマウントディスプレイ６５０の構成要素を示す図が示される。ヘッドマウントディスプレイ６５０は、プログラム命令を実行するためのプロセッサ６００を含む。メモリ６０２は、記憶する目的のために提供され、揮発性メモリ及び不揮発性メモリの両方を含み得る。ユーザが視認し得る視覚インターフェースを提供するディスプレイ６０４を含む。ヘッドマウントディスプレイ６５０に関する電源としてバッテリ６０６を提供する。動き検出モジュール６０８は、磁力計６１０、加速度計６１２、及びジャイロスコープ６１４等の様々な種類の動き感知性ハードウェアのいずれかを含み得る。
【０１１３】
加速度計は、加速度及び重力誘起反力を測定するためのデバイスである。単軸及び多軸モデルは、異なる方向における加速度の大きさ及び方向を検出するために利用可能である。加速度計を使用して、傾き、振動、及び衝撃を感知する。一実施形態では、３つの加速度計６１２を使用して、２つの角度（ワールド空間ピッチ及びワールド空間ロール）に関する絶対参照を与える、重力の方向を提供する。
【０１１４】
磁力計は、ヘッドマウントディスプレイの近くの磁場の強さ及び向きを測定する。一実施形態では、３つの磁力計６１０は、ヘッドマウントディスプレイ内で使用され、ワールド空間ヨー角度に関する絶対参照を確保する。一実施形態では、磁力計は、±８０マイクロテスラである、地磁気にわたるように設計される。磁力計は、金属の影響を受け、実際のヨーに関して単調であるヨー測定を提供する。磁場は、ヨー測定に歪みを引き起こす、環境内の金属により歪み得る。必要であれば、この歪みは、ジャイロスコープまたはカメラ等の他のセンサからの情報を使用して較正されることができる。一実施形態では、加速度計６１２は、磁力計６１０と一緒に使用され、ヘッドマウントディスプレイ６５０の傾き及び方位を取得する。
【０１１５】
ジャイロスコープは、角運動量の原理に基づき、方向を測定または維持するためのデバイスである。一実施形態では、３つのジャイロスコープ６１４は、慣性感知に基づき各々の軸（ｘ、ｙ、及びｚ）にわたる動きについての情報を提供する。ジャイロスコープは、高速回転を検出する際に有用である。しかしながら、ジャイロスコープは、絶対参照が存在しなくても、経時的にドリフトすることができる。これは、定期的にジャイロスコープをリセットすることを必要とし、これは、オブジェクトの視覚追跡、加速度計、磁力計等に基づく位置／方向判定等の他の利用可能な情報を使用して行われることができる。
【０１１６】
実環境の画像及び画像ストリームを取り込むためのカメラ６１６を提供する。２つ以上のカメラは、ヘッドマウントディスプレイ６５０内に含まれ、ヘッドマウントディスプレイ６５０は、後ろ向きのカメラ（ユーザがヘッドマウントディスプレイ６５０のディスプレイを視認するときにユーザとは別の方向に向いている）、及び前向きのカメラ（ユーザがヘッドマウントディスプレイ６５０のディスプレイを視認するときにユーザに向いている）を含み得る。加えて、デプスカメラ６１８は、実環境におけるオブジェクトの奥行き情報を感知するためにヘッドマウントディスプレイ６５０に含まれ得る。
【０１１７】
一実施形態では、ＨＭＤの前面上に一体化されるカメラを使用して、安全に関する警告を提供し得る。例えば、ユーザが壁またはオブジェクトに近づいている場合、ユーザに警告し得る。一実施形態では、この使用は、室内の物理的オブジェクトの外観図によって提供され、それらの存在をユーザに警告し得る。外形は、例えば、仮想環境内のオーバーレイであり得る。いくつかの実施形態では、ＨＭＤユーザは、例えば、床にオーバーレイされる、基準マーカーへのビューが提供され得る。例えば、マーカーは、ユーザがゲームをプレイする部屋のどこが中心であるかの基準をユーザに提供し得る。これは、例えば、ユーザが部屋の中で壁または他のオブジェクトに衝突することを回避するためにどこを移動するべきかの視覚情報をユーザに提供し得る。また、触覚警告、及び／または音声警告をユーザへ提供し、ユーザがＨＭＤを装着し、ＨＭＤを用いてゲームをプレイするまたはコンテンツをナビゲートするときに関するさらなる安全性を提供し得る。
【０１１８】
ヘッドマウントディスプレイ６５０は、オーディオ出力を提供するためのスピーカ６２０を含む。また、周囲環境からの音、ユーザによって生じる音声等を含む、実環境から音を取り込むためのマイクロホン６２２を含み得る。ヘッドマウントディスプレイ６５０は、触覚フィードバックをユーザへ提供するための触覚フィードバックモジュール６２４を含む。一実施形態では、触覚フィードバックモジュール６２４は、触覚フィードバックをユーザへ提供するように、ヘッドマウントディスプレイ６５０の動き及び／または振動を生じさせることが可能である。
【０１１９】
ＬＥＤ６２６は、ヘッドマウントディスプレイ６５０の状態の視覚インジケータとして提供される。例えば、ＬＥＤは、バッテリレベル、電源投入等を示し得る。カードリーダー６２８は、ヘッドマウントディスプレイ６５０がメモリカードへ、またそこから情報を読み出し及び書き込むことを可能にするように提供される。周辺デバイスの接続、または他のデバイス（他のポータブルデバイス、コンピュータ等）への接続を可能にするためのインターフェースの一例として、ＵＳＢインターフェース６３０を含む。ヘッドマウントディスプレイ６５０の様々な実施形態では、様々な種類のインターフェースのいずれかは、ヘッドマウントディスプレイ６５０のより高い接続性を可能にするように含まれ得る。
【０１２０】
ＷｉＦｉ（登録商標）モジュール６３２は、無線ネットワーク技術を用いて、インターネットへの接続を可能にするように含まれる。また、ヘッドマウントディスプレイ６５０は、他のデバイスへの無線接続を可能にするためにＢｌｕｅｔｏｏｔｈ（登録商標）モジュール６３４を含む。また、通信リンク６３６は、他のデバイスへの接続のために含まれ得る。一実施形態では、通信リンク６３６は、無線通信用の赤外線伝達を利用する。他の実施形態では、通信リンク６３６は、他のデバイスとの通信のために様々な無線または有線伝達プロトコルのいずれかを利用し得る。
【０１２１】
入力ボタン／センサ６３８は、ユーザに関して入力インターフェースを提供するように含まれる。ボタン、タッチパッド、ジョイスティック、トラックボール等の様々な種類の入力インターフェースのいずれかを含み得る。超音波技術を用いて、他のデバイスとの通信を容易にするためのヘッドマウントディスプレイ６５０に、超音波通信モジュール６４０を含み得る。
【０１２２】
バイオセンサ６４２は、ユーザからの生理学的データの検出を可能にするように含まれる。一実施形態では、バイオセンサ６４２は、ユーザの皮膚を通してユーザの生体電気信号を検出するための１つ以上の乾燥電極を含む。
【０１２３】
ヘッドマウントディスプレイ６５０の前述の構成要素は、ヘッドマウントディスプレイ６５０内に含まれ得る単なる例示的構成要素として説明されている。本開示の様々な実施形態では、ヘッドマウントディスプレイ６５０は、様々な前述の構成要素の一部を含み得る、または含まない場合がある。ヘッドマウントディスプレイ６５０の実施形態は、加えて、本明細書に説明されるような本開示の態様を容易にする目的のために、現在記述されていないが、当該技術分野において既知である他の構成要素を含み得る。
【０１２４】
当業者は、本開示の様々な実施形態では、前述のハンドヘルドデバイスが様々な相互作用機能を提供するためにディスプレイ上に表示される対話型アプリケーションと併せて利用され得ることを理解するであろう。本明細書に記載される例示的実施形態は、単に例として提供するものであり、限定として提供するものではない。
【０１２５】
図７は、本開示の様々な実施形態に従った、ゲームシステム７００のブロック図である。ゲームシステム７００は、ネットワーク７１５を介して、１つ以上のクライアント７１０にビデオストリームを提供するように構成される。ゲームシステム７００は、通常、ビデオサーバシステム７２０及び選択式ゲームサーバ７２５を含む。ビデオサーバシステム７２０は、最小限のサービス品質で１つ以上のクライアント７１０にビデオストリームを提供するように構成される。例えば、ビデオサーバシステム７２０は、ビデオゲーム内のビューの状態または視点を変更するゲームコマンドを受信し、クライアント７１０に、最小遅延時間の状態で、この変更を反映する更新されたビデオストリームを提供し得る。ビデオサーバシステム７２０は、まだ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されているビデオフレームを含み得る。典型的なフレームレートは、毎秒３０フレーム、毎秒６０フレーム、及び毎秒７２０フレームである。ただし、本開示の代替実施形態では、より高いまたはより低いフレームレートが含まれる。
【０１２６】
本明細書では、７１０Ａ、７１０Ｂ等と個々に呼ばれるクライアント７１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話機、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス、及び／または同様のものを含み得る。通常、クライアント７１０は、符号化されたビデオストリーム（すなわち、圧縮された）を受信し、ビデオストリームを復号し、結果として生じるビデオをユーザ（例えば、ゲームのプレイヤー）に提示するように構成される。符号化されたビデオストリームを受信するプロセス、及び／またはビデオストリームを復号するプロセスは、通常、個々のビデオフレームをクライアントの受信バッファに記憶することを含む。ビデオストリームは、クライアント７１０に統合されたディスプレイ上またはモニタもしくはテレビ等の別個のデバイス上でユーザに提示され得る。クライアント７１０は、随意に、２人以上のゲームプレイヤーをサポートするように構成される。例えば、ゲームコンソールは、２人、３人、４人またはそれ以上の同時プレイヤーをサポートするように構成され得る。これらのプレイヤーのそれぞれは、別個のビデオストリームを受信し得る、または単一のビデオストリームは、各プレイヤーに対して特別に生成された（例えば、各プレイヤーの視点に基づいて生成された）フレームの領域を含み得る。クライアント７１０は、随意に、地理的に分散される。ゲームシステム７００に含まれるクライアントの数は、１つもしくは２つから数千、数万、またはそれ以上に広く変動し得る。本明細書で使用されるような用語「ゲームプレイヤー」は、ゲームをプレイする人を指すために使用され、用語「ゲームプレイデバイス」は、ゲームをプレイするために使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、協働してゲームエクスペリエンスをユーザに配信する複数のコンピューティングデバイスを指し得る。例えば、ゲームコンソール及びＨＭＤは、ビデオサーバシステム７２０と協働して、ＨＭＤを介して表示されるゲームを配信し得る。一実施形態では、ゲームコンソールは、ビデオサーバシステム７２０からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにＨＭＤに、ビデオストリームを転送する、またはビデオストリームへ更新する。
【０１２７】
クライアント７１０は、ネットワーク７１５を介してビデオストリームを受信するように構成される。ネットワーク７１５は、電話網、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及び／または同様のものを含む任意の種類の通信ネットワークであり得る。典型的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰ等の標準プロトコルを介して通信される。代替として、ビデオストリームは、独自の規格を介して通信する。
【０１２８】
クライアント７１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信能力、及び入力デバイスを備えるパーソナルコンピュータである。復号化ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に記憶されたソフトウェアを含み得る。ビデオストリームを復号（及び符号化）するためのシステムは、当該技術分野において周知であり、使用される特定の符号化スキームに応じて異なる。
【０１２９】
クライアント７１０は、必須ではないが、受信ビデオを修正するように構成されたシステムをさらに含み得る。例えば、クライアントは、さらなるレンダリングを行う、１つのビデオ画像を別のビデオ画像にオーバーレイする、ビデオ画像をクロッピングする、及び／または同様のことをするように構成され得る。例えば、クライアント７１０は、Ｉフレーム、Ｐフレーム、及びＢフレーム等の様々な種類のビデオフレームを受信し、これらのフレームをユーザへの表示のための画像に処理するように構成され得る。いくつかの実施形態では、クライアント７１０のメンバーは、ビデオストリーム上でさらなるレンダリング、シェーディング、３Ｄへの変換、または同様の動作を実行するように構成される。クライアント７１０のメンバーは、随意に、２つ以上のオーディオまたはビデオストリームを受信するように構成される。クライアント７１０の入力デバイスは、例えば、片手式ゲームコントローラ、両手式ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動き及び／または位置感知デバイス、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、まだ開発段階の入力デバイス、及び／または同様のものを含み得る。
【０１３０】
クライアント７１０によって受信されたビデオストリーム（及び随意にオーディオストリーム）は、ビデオサーバシステム７２０によって生成及び提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームはビデオフレームを含む（及びオーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に貢献する（例えば、それらは適切なデータ構造内に画素情報を含む）ように構成される。本明細書で使用されるような用語「ビデオフレーム」は、ユーザに表示される画像に貢献する（例えば、効果を与える）ように構成されている情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」にも適用されることができる。
【０１３１】
クライアント７１０は、通常、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変更するように、またはそれ以外の場合はゲームプレイに影響を与えるように構成されるゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信されることができる、及び／またはクライアント７１０上で実行する命令を算出することによって自動的に生成され得る。受信したゲームコマンドは、クライアント７１０からネットワーク７１５を介してビデオサーバシステム７２０及び／またはゲームサーバ７２５に通信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム７２０を介してゲームサーバ７２５に通信される。いくつかの実施形態では、ゲームコマンドの別個のコピーは、クライアント７１０からゲームサーバ７２５及びビデオサーバシステム７２０に通信される。ゲームコマンドの通信は、随意に、コマンドのＩＤに依存する。ゲームコマンドは、随意に、オーディオまたはビデオストリームをクライアント７１０Ａに提供するために使用されたものとは異なる経路または通信チャネルを経由して、クライアント７１０Ａから通信される。
【０１３２】
ゲームサーバ７２５は、随意に、ビデオサーバシステム７２０とは異なるエンティティによって運営される。例えば、ゲームサーバ７２５は、マルチプレイヤーゲームのパブリッシャーによって運営し得る。この例では、ビデオサーバシステム７２０は、随意にゲームサーバ７２５によってクライアントとして見なされ、随意にゲームサーバ７２５の視点から、従来技術のゲームエンジンを実行する従来技術のクライアントであるように見えるように構成される。ビデオサーバシステム７２０とゲームサーバ７２５との間の通信は、随意に、ネットワーク７１５を介して発生する。したがって、ゲームサーバ７２５は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチプレイヤーゲームサーバであり得、そのうちの１つがゲームサーバシステム７２０である。ビデオサーバシステム７２０は、同時にゲームサーバ７２５の複数のインスタンスと通信するように構成され得る。例えば、ビデオサーバシステム７２０は、異なるユーザに複数の異なるビデオゲームを提供するように構成されることができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ７２５によってサポートし得る、及び／または異なるエンティティによって公開され得る。いくつかの実施形態では、ビデオサーバシステム７２０の地理的に分散された複数のインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム７２０のこれらのインスタンスのそれぞれは、ゲームサーバ７２５の同じインスタンスと通信し得る。ビデオサーバシステム７２０と１つ以上のゲームサーバ７２５との間の通信は、随意に、専用の通信チャネルを介して発生する。例えば、ビデオサーバシステム７２０は、これらの２つのシステム間の通信に専用の高帯域幅チャネルを介してゲームサーバ７２５に接続し得る。
【０１３３】
ビデオサーバシステム７２０は、少なくともビデオソース７３０、Ｉ／Ｏデバイス７４５、プロセッサ７５０、及び非一過性ストレージ７５５を備える。ビデオサーバシステム７２０は、１つのコンピューティングデバイスを含み得る、または複数のコンピューティングデバイス間に分散し得る。これらのコンピューティングデバイスは、随意に、ローカルエリアネットワーク等の通信システムを介して接続される。
【０１３４】
ビデオソース７３０は、例えば、ストリーミングビデオまたは動画を形成する一連のビデオフレーム等のビデオストリームを提供するように構成される。いくつかの実施形態では、ビデオソース７３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレイヤーからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置と、通常、視点とを含む。ゲーム状態はまた、オブジェクトの特性、画像、色、及び／またはテクスチャを含み得る。
【０１３５】
ゲーム状態は、通常、ゲームルールと、移動、回転、攻撃、フォーカス設定、インタラクト、使用、及び／または同様のものなどのゲームコマンドとに基づいて維持される。ゲームエンジンの一部は、随意に、ゲームサーバ７２５内に配置される。ゲームサーバ７２５は、地理的に分散したクライアントを使用する複数のプレイヤーから受信したゲームコマンドに基づいて、ゲームの状態のコピーを維持し得る。これらの場合、ゲーム状態は、ゲームサーバ７２５によってビデオソース７３０に提供され、ゲーム状態のコピーが記憶され、レンダリングが行われる。ゲームサーバ７２５は、ネットワーク７１５を介してクライアント７１０から直接ゲームコマンドを受信し得る、及び／またはビデオサーバシステム７２０を介してゲームコマンドを受信し得る。
【０１３６】
ビデオソース７３０は、通常、レンダリングロジック、例えば、ハードウェア、ファームウェア、及び／またはストレージ７５５等のコンピュータ可読媒体に記憶されたソフトウェアを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全部または一部は、随意に、グラフィックス処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、通常、ゲーム状態及び視点に基づいて、オブジェクト間の三次元空間関係を決定するために、及び／または適切なテクスチャ等を適用するように構成される処理段階を含む。レンダリングロジックは未加工ビデオを生成し、未加工ビデオは通常、クライアント７１０と通信する前に符号化される。例えば、未加工ビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、リアルビデオ、ｍｐ３等に従って符号化され得る。符号化処理は、リモートデバイス上のデコーダに配信するために、随意にパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。任意の他のフレームサイズを使用し得るが、典型的なフレームサイズは、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８を含む。フレームレートは、１秒あたりのビデオフレームの数である。ビデオストリームは、異なるタイプのビデオフレームを含み得る。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは表示デバイス上の全てのマクロブロック／画素をリフレッシュするための情報を含む一方、Ｐフレームはそのサブセットをリフレッシュするための情報を含む。Ｐフレームは、通常、Ｉフレームよりもデータサイズが小さい。本明細書で使用されるような用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するために必要なバイト数を指すために使用される。
【０１３７】
代替実施形態では、ビデオソース７３０は、カメラ等のビデオ録画デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するために使用され得る。結果として生じるビデオストリームは、随意に、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して録画された画像との両方を含む。ビデオソース７３０は、また、ビデオストリームに含められる事前に録画されたビデオを記憶するように構成されているストレージデバイスを含み得る。ビデオソース７３０はまた、オブジェクト（例えば、人）の動きまたは位置を検出するように構成される動きまたは位置感知デバイス、ならびに検出された動き及び／または位置に基づいてゲーム状態を決定する、またはビデオを生成するように構成されるロジックを含み得る。
【０１３８】
ビデオソース７３０は、随意に、他のビデオに配置されるように構成されるオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン命令、ゲームプレイヤーへのメッセージ、他のゲームプレイヤーの画像、他のゲームプレイヤーのビデオフィード（例えば、ウェブカメラビデオ）を含み得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント７１０Ａの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び／または同様のものを含み得る。オーバーレイの一例では、プレイヤーの音声がオーディオストリーム上にオーバーレイされる。ビデオソース７３０は、随意に、１つ以上のオーディオソースをさらに含む。
【０１３９】
ビデオサーバシステム７２０が２つ以上のプレイヤーからの入力に基づいてゲーム状態を維持するように構成される実施形態では、各プレイヤーは、ビューの位置及び向きを含む異なる視点を有し得る。ビデオソース７３０は、随意に、各プレイヤーに対して、各プレイヤーの視点に基づいて別個のビデオストリームを提供するように構成される。さらに、ビデオソース７３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント７１０のそれぞれに提供するように構成され得る。ビデオソース７３０は、随意に、３Ｄビデオを提供するように構成される。
【０１４０】
Ｉ／Ｏデバイス７４５は、ビデオサーバシステム７２０が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアントＩＤ、プレイヤーＩＤ、ゲームコマンド、セキュリティ情報、オーディオ、及び／または同様のもの等の情報を送信及び／または受信するように構成される。Ｉ／Ｏデバイス７４５は、通常、ネットワークカードまたはモデム等の通信ハードウェアを含む。Ｉ／Ｏデバイス７４５は、ゲームサーバ７２５、ネットワーク７１５、及び／またはクライアント７１０と通信するように構成される。
【０１４１】
プロセッサ７５０は、本明細書で検討されるビデオサーバシステム７２０の様々な構成要素内に含まれるロジック（例えば、ソフトウェア）を実行するように構成される。例えば、プロセッサ７５０は、ビデオソース７３０、ゲームサーバ７２５、及び／またはクライアントクォリファイア７６０の機能を行うために、ソフトウェア命令でプログラムされ得る。ビデオサーバシステム７２０は、随意に、プロセッサ７５０の２つ以上のインスタンスを含む。プロセッサ７５０はまた、ビデオサーバシステム７２０によって受信されたコマンドを実行するために、または本明細書で検討されるゲームシステム７００の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされ得る。プロセッサ７５０は、１つ以上のハードウェアデバイスを含み得る。プロセッサ７５０は、電子プロセッサである。
【０１４２】
ストレージ７５５は、非一過性アナログデバイス及び／またはデジタルストレージデバイスを含む。例えば、ストレージ７５５は、ビデオフレームを記憶するように構成されるアナログストレージデバイスを含み得る。ストレージ７５５は、コンピュータ可読デジタルストレージ、例えば、ハードドライブ、光学ドライブ、またはソリッド状態ストレージを含み得る。ストレージ７１５は、ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または同様のものを記憶するように（例えば、適切なデータ構造またはファイルシステムによって）構成される。ストレージ７５５は、随意に、複数のデバイス間に分散される。いくつかの実施形態では、ストレージ７５５は、本明細書の他の箇所で考察されるビデオソース７３０のソフトウェア構成要素を記憶するように構成される。これらの構成要素は、必要なときにセットアップされる準備ができるフォーマットに記憶され得る。
【０１４３】
ビデオサーバシステム７２０は、随意に、クライアントクォリファイア７６０をさらに備える。クライアントクォリファイア７６０は、クライアント７１０Ａまたは７１０Ｂ等のクライアントの能力を遠隔で判定するように構成される。これらの能力は、クライアント７１０Ａ自体の能力、及びクライアント７１０Ａとビデオサーバシステム７２０との間の１つ以上の通信チャネルの能力の両方を含み得る。例えば、クライアントクォリファイア７６０は、ネットワーク７１５を経由して通信チャネルをテストするように構成し得る。
【０１４４】
クライアントクォリファイア７６０は、クライアント７１０Ａの能力を手動または自動で判定（例えば、発見）することができる。手動判定は、クライアント７１０Ａのユーザと通信することと、ユーザに能力を提供するように依頼することとを含む。例えば、いくつかの実施形態では、クライアントクォリファイア７６０は、クライアント７１０Ａのブラウザ内に画像、テキスト、及び／または同様のものを表示するように構成される。一実施形態では、クライアント７１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント７１０Ａは、ブラウザを有するゲームコンソールであり、ＨＭＤ上に表示され得る。表示されたオブジェクトは、ユーザが、クライアント７１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダタイプ、ネットワーク接続のタイプ、ディスプレイ解像度等の情報を入力することを要求する。ユーザによって入力された情報は、クライアントクォリファイア７６０に戻るように通信する。
【０１４５】
自動判定は、例えば、クライアント７１０Ａ上のエージェントの実行によって、及び／またはクライアント７１０Ａへのテストビデオの送信によって実行し得る。エージェントは、ウェブページに埋め込まれる、またはアドオンとしてインストールされるＪａｖａ（登録商標）スクリプト等のコンピューティング命令を含み得る。エージェントは、随意に、クライアントクォリファイア７６０によって提供される。様々な実施形態では、エージェントは、クライアント７１０Ａの処理能力、クライアント７１０Ａの復号化及び表示能力、クライアント７１０Ａとビデオサーバシステム７２０との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント７１０Ａのディスプレイタイプ、クライアント７１０Ａ上に存在するファイアウォール、クライアント７１０Ａのハードウェア、クライアント７１０Ａ上で実行するソフトウェア、クライアント７１０Ａ内のレジストリエントリ、及び／または同様のものを発見することができる。
【０１４６】
クライアントクォリファイア７６０は、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアントクォリファイア７６０は、随意に、ビデオサーバシステム７２０の１つ以上の他の要素とは別個のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア７６０は、クライアント７１０とビデオサーバシステム７２０の２つ以上のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施形態では、クライアントクォリファイアによって発見された情報を使用して、ビデオサーバシステム７２０のどのインスタンスがクライアント７１０の１つにストリーミングビデオを配信するのに最適なのかを判定することができる。
【０１４７】
本明細書に定義される様々な実施形態が本明細書に開示される様々な特徴を使用して特定の実施態様に組み合わされ得ること、または組み立てられ得ることを理解されたい。したがって、提供される例は、様々な要素を組み合わせて、より多くの実施態様を定義することにより可能である様々な実施態様に限定されず、いくつかの可能な例であるに過ぎない。いくつかの例において、いくつかの実施態様は、開示された、または均等な実施態様の趣旨から逸脱することなく、より少ない要素を含み得る。
【０１４８】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等を含む様々なコンピュータシステム構成で実践され得る。本開示の実施形態は、また、有線ベースまたは無線ネットワークを経由してリンクされる、遠隔処理デバイスによりタスクが行われる、分散型コンピューティング環境で実践されることができる。
【０１４９】
上記の実施形態を念頭に置いて、本開示の実施形態がコンピュータシステムに記憶されたデータを含む様々なコンピュータ実装動作を使用し得ることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作である。本開示の実施形態の部分を形成する、本明細書に記載されている動作のいずれかは、有用な機械動作である。本発明の実施形態はまた、これらの動作を行うためのデバイスまたは装置に関する。本装置は、必要とされる目的のために特別に構築されることができ、または本装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に作動または構成された汎用コンピュータであり得る。特に、本明細書の教示に従って書かれたコンピュータプログラムとともに様々な汎用マシンを使用することができ、または必要とされる動作を行うより特殊化した装置を構築することがより便利であり得る。
【０１５０】
本開示は、また、コンピュータ可読媒体上のコンピュータ可読コードとして具体化されることができる。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、このデータは、その後、コンピュータシステムによって読み取られることができる。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学及び非光学データストレージデバイスを含む。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で記憶及び実行されるように、ネットワーク結合コンピュータシステムを通して分散されるコンピュータ可読有形媒体を含み得る。
【０１５１】
本方法の動作が特定の順序で説明されているが、他のハウスキーピング操作が動作間で行われ得る、または動作が、わずかに異なる時間に発生するように調整し得る、もしくはオーバーレイ動作の処理が所望の方法で行われる限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散され得ることを理解されたい。
【０１５２】
前述の開示は、理解を明確にするために幾分詳細に説明されてきたが、添付の「特許請求の範囲」内である種の変更及び修正を実践され得ることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本開示の実施形態は本明細書に与えられた詳細に限定されるものではないが、添付の「特許請求の範囲」及び均等物の範囲内で修正され得る。
【図１Ａ】
2019524212.tif 000003
【図１Ｂ】
2019524212.tif 000004
【図１Ｃ】
2019524212.tif 000005
【図１Ｄ】
2019524212.tif 000006
【図２】
2019524212.tif 000007
【図３】
2019524212.tif 000008
【図４】
2019524212.tif 000009
【図５】
2019524212.tif 000010
【図６】
2019524212.tif 000011
【図７】
2019524212.tif 000012
【国際調査報告】
2019524212.tif 000013
2019524212.tif 000014
2019524212.tif 000015
2019524212.tif 000016
2019524212.tif 000017