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