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

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

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

特開2024-26285クラウドゲーミングネットワークを使用した人工知能(AI)モデルの訓練
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024026285
(43)【公開日】2024-02-28
(54)【発明の名称】クラウドゲーミングネットワークを使用した人工知能(AI)モデルの訓練
(51)【国際特許分類】
   A63F 13/67 20140101AFI20240220BHJP
   A63F 13/85 20140101ALI20240220BHJP
   A63F 13/79 20140101ALI20240220BHJP
   A63F 13/798 20140101ALI20240220BHJP
   A63F 13/35 20140101ALI20240220BHJP
   A63F 13/795 20140101ALI20240220BHJP
   G06N 3/08 20230101ALI20240220BHJP
   G06N 20/00 20190101ALI20240220BHJP
【FI】
A63F13/67
A63F13/85
A63F13/79
A63F13/798
A63F13/35
A63F13/795
G06N3/08
G06N20/00
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023205917
(22)【出願日】2023-12-06
(62)【分割の表示】P 2021202777の分割
【原出願日】2019-08-30
(31)【優先権主張番号】16/180,787
(32)【優先日】2018-11-05
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100099324
【弁理士】
【氏名又は名称】鈴木 正剛
(72)【発明者】
【氏名】ジャスティン ブイ. ベルトラン
(72)【発明者】
【氏名】ディラン バトラー
(72)【発明者】
【氏名】ケビン クレイゲンブリンク
(57)【要約】
【課題】ゲームクラウドシステムのサーバコンソールのネットワークを使用して、リモートプレーヤに関連する訓練データを集める。
【解決手段】ゲームアプリケーションのための人工知能(AI)モデルを処理する方法である。本方法は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからAIモデルを訓練することを含む。本方法は、シナリオの第1のゲームプレイ中に、第1の入力状態データを受信することを含む。本方法は、第1の入力状態データをAIモデルに適用して、第1のゲームプレイのシナリオの成功度を示す出力を生成することを含む。本方法は、予め定義された目的に基づいて、出力の分析を実行することを含む。本方法は、分析された出力に基づいて、予め定義された目的を達成するためのアクションを実行する。
【選択図】図1A
【特許請求の範囲】
【請求項1】
ゲームアプリケーション用の人工知能(AI)モデルを処理する方法であって、
シナリオの複数のゲームプレイから収集された訓練状態データと、前記複数のゲームプレイのそれぞれの関連する成功基準とを使用して、前記ゲームアプリケーションの前記シナリオの前記複数のゲームプレイから前記AIモデルを訓練し、
前記シナリオの第1のゲームプレイ中に、第1の入力状態データを受信し、
前記第1の入力状態データを前記AIモデルに適用して、前記第1のゲームプレイの前記シナリオの成功度を示す出力を生成し、
予め定義された目的に基づいて、前記出力の分析を実行し、
分析された前記出力に基づいて、前記予め定義された目的を達成するためのアクションを実行する、方法。
【請求項2】
前記AIモデルの訓練には、
複数のサーバで、前記複数のゲームプレイをサポートする前記ゲームアプリケーションの複数のインスタンスを実行し、
前記シナリオの対応するゲームプレイに関連する前記訓練状態データを前記複数のサーバで収集し、
前記成功基準を定義し、
前記訓練状態データと前記成功基準とを深層学習エンジンに提供することが含まれる、請求項1に記載の方法。
【請求項3】
前記複数のゲームプレイが、複数のクライアントデバイスを介して、複数のプレーヤによって操作される、請求項2に記載の方法。
【請求項4】
前記予め定義された目的は、ゲームサポートの提供であり、
前記第1の入力状態データが、分析された前記出力に基づく前記成功基準を満たしていないと判定し、
分析された前記出力と前記第1の入力状態データとに基づいて、前記第1のゲームプレイを操作する第1のプレーヤの第1のユーザプロファイルを判定し、
前記第1のプレーヤのクライアントデバイスに、前記シナリオをプレイする方法に関するレコメンデーションをアクションとして提供し、前記レコメンデーションは、前記第1のユーザプロファイルに基づいて前記第1のプレーヤのスキルを反映しているものである、請求項1に記載の方法。
【請求項5】
前記出力の分析の実行では、
前記予め定義された目的は指導の提供であり、
前記第1の入力状態データの成功度が平均よりも低いと判定することにより、前記第1のゲームプレイを操作する第1のプレーヤの弱点を特定し、
前記弱点に対応する訓練セッションを前記アクションとして実行して、前記第1のプレーヤのクライアントデバイスへ配信する、請求項1に記載の方法。
【請求項6】
前記予め定義された目的は、ゲームプレイに同等性を提供することであり、
前記AIモデルを訓練した後に行われる前記シナリオの第2の複数のゲームプレイ中に複数の入力状態データを受信し、前記第2の複数のゲームプレイは複数のプレーヤによって操作され、前記複数の入力状態データは前記複数のプレーヤの複数のプレーヤ特性メトリクスを含むものであり、
前記複数の入力状態データを前記AIモデルに適用して、前記シナリオの前記第2の複数のゲームプレイの複数の成功度を示す複数の出力を生成し、
前記複数の出力を分析して、前記複数のプレーヤ特性メトリクスに基づいて複数のプレーヤプロファイルを判定し、
前記予め定義された目的を達成するために、前記複数のプレーヤから、対応するプレーヤプロファイルに基づいて、バランスの取れたプレーヤのチームを構築することと
をさらに含む、請求項1に記載の方法。
【請求項7】
プレーヤ特性メトリクスには、
対応するプレーヤの正確さ、または、
前記対応するプレーヤによるコントローラ入力シーケンスを生成する速度、または、
前記シナリオ内のイベントを受けたときの前記対応するプレーヤの反応時間、または、
前記対応するプレーヤの一貫性、または、
前記対応するプレーヤの第1のターゲットと第2のターゲットとの間の遷移時間が含まれる、請求項6に記載の方法。
【請求項8】
前記アクションの実行では、
前記予め定義された目的は、前記AIモデルを自動的に訓練することであり、
前記複数のゲームプレイは、訓練中に前記AIモデルによって操作され、
前記第1の入力状態データが、訓練中に採用された以前のアクションとして、前記AIモデルによって生成され、
前記第1の入力状態データに続いて前記第1のゲームプレイがプレイされるための複数のコントローラ入力のセットを前記分析として判定し、
前記成功基準を満たすと予測され、前記複数のコントローラ入力のセットの中で最も成功度が高いと予測される第1のコントローラ入力のセットを選択し、
前記第1のコントローラ入力のセットを前記ゲームアプリケーションの対応するインスタンスに前記アクションとして配信して実行する、請求項2に記載の方法。
【請求項9】
前記アクションの実行では、
前記予め定義された目的が、前記ゲームアプリケーションを自動的にテストすることであり、
前記第1の入力状態データが、訓練中に以前のアクションとして、前記AIモデルによって生成され、
前記第1の入力状態データに応答するために、異なる順列を前記分析として判定し、各順列は、取得すべきコントローラ入力の一意のセットを含むものであり、
前記アクションとして前記異なる順列を実行して、前記ゲームアプリケーションのプレイにおける異常を発見する、請求項2に記載の方法。
【請求項10】
前記ゲームアプリケーションの前記複数のゲームプレイが、1つ以上のクライアントデバイスを介して第1のプレーヤによって操作され、
前記訓練されたAIモデルは前記第1のプレーヤをシミュレートするバーチャルプレーヤである、請求項2に記載の方法。
【請求項11】
人工知能(AI)訓練用のコンピュータプログラムを格納するコンピュータ可読媒体であって、
シナリオの複数のゲームプレイから収集された訓練状態データと、前記複数のゲームプレイのそれぞれの関連する成功基準とを使用して、前記ゲームアプリケーションの前記シナリオの前記複数のゲームプレイから前記AIモデルを訓練するためのプログラム命令と、
前記シナリオの第1のゲームプレイ中に、第1の入力状態データを受信するためのプログラム命令と、
前記第1の入力状態データを前記AIモデルに適用して、前記第1のゲームプレイの前記シナリオの成功度を示す出力を生成するためのプログラム命令と、
予め定義された目的に基づいて、前記出力の分析を実行するためのプログラム命令と、
分析された前記出力に基づいて、前記予め定義された目的を達成するためのアクションを実行するためのプログラム命令とが記録された、コンピュータ可読媒体。
【請求項12】
AIモデルを訓練するための前記プログラム命令には、
複数のサーバで、前記複数のゲームプレイをサポートする前記ゲームアプリケーションの複数のインスタンスを実行するためのプログラム命令と、
前記シナリオの対応するゲームプレイに関連する前記訓練状態データを前記複数のサーバで収集するためのプログラム命令と、
前記成功基準を定義するためのプログラム命令と、
前記訓練状態データと前記成功基準とを深層学習エンジンに提供するためのプログラム命令とが含まれる、請求項11に記載のコンピュータ可読媒体。
【請求項13】
前記複数のゲームプレイが、複数のクライアントデバイスを介して、複数のプレーヤによって操作される、請求項12に記載のコンピュータ可読媒体。
【請求項14】
前記予め定義された目的は、ゲームサポートを提供することであり、
前記第1の入力状態データが、分析された前記出力に基づく前記成功基準を満たしていないと判定するためのプログラム命令と、
分析された前記出力と前記第1の入力状態データとに基づいて、前記第1のゲームプレイを操作する第1のプレーヤの第1のユーザプロファイルを判定するためのプログラム命令と、
前記第1のプレーヤのクライアントデバイスに、前記シナリオをプレイする方法に関するレコメンデーションをアクションとして提供することであって、前記レコメンデーションが、前記第1のユーザプロファイルに基づいて前記第1のプレーヤのスキルを反映している、前記提供するためのプログラム命令と、をさらに含む、請求項11に記載のコンピュータ可読媒体。
【請求項15】
前記出力の分析を実行するためのプログラム命令は、
前記予め定義された目的が、指導を提供することであり、
前記第1の入力状態データの成功度が平均よりも低いと判定することにより、前記第1のゲームプレイを操作する第1のプレーヤの弱点を特定するためのプログラム命令と、
前記弱点に対応する訓練セッションを前記アクションとして実行して、前記第1のプレーヤのクライアントデバイスへ配信するためのプログラム命令とを含む、請求項11に記載のコンピュータ可読媒体。
【請求項16】
コンピュータシステムであって、
プロセッサと、
前記プロセッサに結合されたメモリであって、前記コンピュータシステムによって実行されると、人工知能(AI)訓練の方法を前記コンピュータシステムに実行させる命令を前記メモリに格納した、前記メモリと、
を備え、前記方法は、
シナリオの複数のゲームプレイから収集された訓練状態データと、前記複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションの前記シナリオの前記複数のゲームプレイからAIモデルを訓練し、
前記シナリオの第1のゲームプレイ中に、第1の入力状態データを受信し、
前記第1の入力状態データを前記AIモデルに適用して、前記第1のゲームプレイの前記シナリオの成功度を示す出力を生成し、
予め定義された目的に基づいて、前記出力の分析を実行し、
分析された前記出力に基づいて、前記予め定義された目的を達成するためのアクションを実行するものである、コンピュータシステム。
【請求項17】
前記方法では、前記AIモデルの訓練には、
複数のサーバで、前記複数のゲームプレイをサポートする前記ゲームアプリケーションの複数のインスタンスを実行し、
前記シナリオの対応するゲームプレイに関連する前記訓練状態データを前記複数のサーバで収集し、
前記成功基準を定義し、
前記訓練状態データと前記成功基準とを深層学習エンジンに提供することが含まれる、請求項16に記載のコンピュータシステム。
【請求項18】
前記方法では、
前記複数のゲームプレイが、複数のクライアントデバイスを介して、複数のプレーヤによって操作される、請求項17に記載のコンピュータシステム。
【請求項19】
前記方法では、
前記予め定義された目的は、ゲームサポートの提供であり、
前記第1の入力状態データが、分析された前記出力に基づく前記成功基準を満たしていないと判定し、
分析された前記出力と前記第1の入力状態データとに基づいて、前記第1のゲームプレイを操作する第1のプレーヤの第1のユーザプロファイルを判定し、
前記第1のプレーヤのクライアントデバイスに、前記シナリオをプレイする方法に関するレコメンデーションをアクションとして提供することであって、前記レコメンデーションが、前記第1のユーザプロファイルに基づいて前記第1のプレーヤのスキルを反映しているものである、請求項16に記載のコンピュータシステム。
【請求項20】
前記方法で、前記出力の分析の実行では、
前記予め定義された目的は指導の提供であり、
前記第1の入力状態データの成功度が平均よりも低いと判定することにより、前記第1のゲームプレイを操作する第1のプレーヤの弱点を特定し、
前記弱点に対応する訓練セッションを前記アクションとして実行して、前記第1のプレーヤのクライアントデバイスへ配信する、請求項16に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能(AI)モデルの訓練あるいはトレーニングに関し、より詳細には、ゲームクラウドシステムのサーバコンソールのネットワークを使用して、リモートプレーヤに関連する訓練データを集めることに関しており、訓練データはAIモデルの訓練に使用される。
【背景技術】
【0002】
人工知能アルゴリズムは、データから学習するように設計されている。AIモデルは、学習されたデータに基づいて構築することができ、AIモデルに与えられる入力に応じて複数の機能を実行するのに十分な柔軟性を有する。
【0003】
しかし、AIモデルを訓練するためのデータの提供は複雑である。簡単ではない例では、物体を認識するために構成されるAIモデルは、膨大な数の物体画像を使用して訓練される。例えば、膨大な数の物体画像がAIモデルの訓練に使用される。これらの画像の生成と収集は難しく、非常に時間がかかる。基本的に、AIモデルは、存在するあらゆる種類の物体を認識するように訓練される。物体ごとに、違う視点から撮られた、その物体の複数の画像を収集しようとすることを想像されたい。そのようにして、AIモデルに物体の新しい画像が提示されると、AIモデルは様々な識別特性(例えば、輪郭、色、特徴、サイズなど)を抽出して、それらの特性が学習した物体の特性と一致するかどうかを判断することができる。物体の数は無限であり、それらの物体の様々な見方も無限である。そのため、物体を認識するためのAIモデルの訓練は、継続的なプロセスとなり得る。
【0004】
本開示の実施形態は、このような背景の下になされたものである。
【発明の概要】
【0005】
本開示の実施形態は、ゲームアプリケーションのゲームプレイに関連するAIモデルを訓練するためのシステム及び方法に関する。AIモデルは、深層学習エンジンを介して構築され、AIモデルは、ゲームアプリケーション、及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供すること(例えば、レコメンデーションの提供、プレーヤの弱点の発見、ゲームアプリケーションの欠陥の発見、プレーヤの訓練、プレーヤへの対戦相手の提供など)を行うように構成される。AIモデルは、複数のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するように構成されたサーバ(例えば、サーバコンソール、ゲームサーバなど)の広大なネットワークを使用して訓練することが可能である。
例えば、サーバのネットワークは、リモートユーザのゲームプレイをサポートしている場合があり、リモートユーザの各々は、対応するクライアントデバイスを介してゲームアプリケーションをプレイしている。リモートユーザのゲームプレイをサポートする標準的な過程では、訓練データをサーバのネットワークから収集し、ゲームアプリケーションに関連するAIモデルの訓練に使用することがある。リモートユーザのゲームプレイをサポートするように構成されたサーバの既存のネットワークから訓練データを集めることにより、訓練データの収集に要する時間と労力とが一元化され、削減される。
つまり、サーバのネットワーク全体にわたって記録することにより、訓練データの入力セットを構築するのに必要な時間が大幅に短縮される。部分的に、AIモデルは、ゲームアプリケーションの複雑な細部とゲームアプリケーションのプレイ方法とを学習する。そのようにして、ゲームアプリケーションのゲームプレイの状況(例えば、特定のゲームプレイのゲーム状態)が入力として与えられると、AIモデルはその状況を分析し、その状況への適切な応答を提供することができる。応答は、予め定義された目的に依存し得る。AIモデルは、様々な目的が与えられてゲームアプリケーションをプレイする方法(例えば、探索的なもの、結末まで単刀直入なもの、最も簡単なプレイ、最も難しいプレイなど)を理解しているので、AIモデルは、どのようにゲームプレイを指示したらいいかを判断する(例えば、該当する目的を達成するために必要な次の入力シーケンスが何かを判断する)ことができる。
具体的にいえば、AIモデルは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を実行するために使用することができ、その機能性は、対応する予め定義された目的に依存している。例えば、AIモデルは、練習生ゲーマを究極の対戦相手と対戦させることにより、または練習生ゲーマの弱点を改善するように、様々な課題を通じて練習生ゲーマを指導することにより、全ゲーマのうちで一番となるようプロゲーマを訓練するのに使用することができる。さらに、AIモデルは、訓練データを継続的に収集し、成功基準に基づいて新しい訓練データを既存の訓練データと比較することにより、継続的に改良することが可能である。
【0006】
一実施形態では、AI訓練及びAIアプリケーションのための方法、より具体的には、ゲームアプリケーション用のAIモデルを処理するための方法が開示される。本方法は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからAIモデルを訓練することを含む。本方法は、シナリオの第1のゲームプレイ中に、第1の入力状態データを受信することを含む。本方法は、第1の入力状態データをAIモデルに適用して、第1のゲームプレイのシナリオの成功度を示す出力を生成することを含む。本方法は、予め定義された目的に基づいて、出力の分析を行うことを含む。本方法は、分析された出力に基づいて、予め定義された目的を達成するためにアクションを実行することを含む。
【0007】
別の実施形態では、AI訓練及びアプリケーションのためのコンピュータプログラムを格納する非一時的なコンピュータ可読媒体が開示される。本コンピュータ可読媒体には、ゲームアプリケーションのAIモデルを処理するためのプログラム命令が含まれている。本コンピュータ可読媒体は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからAIモデルを訓練するためのプログラム命令を含む。本コンピュータ可読媒体は、シナリオの第1のゲームプレイ中に、第1の入力状態データを受信するためのプログラム命令を含む。本コンピュータ可読媒体は、第1の入力状態データをAIモデルに適用して、第1のゲームプレイのシナリオの成功度を示す出力を生成するためのプログラム命令を含む。本コンピュータ可読媒体は、予め定義された目的に基づいて、出力の分析を実行するためのプログラム命令を含む。本コンピュータ可読媒体は、分析された出力に基づいて、予め定義された目的を達成するためのアクションを実行するためのプログラム命令を含む。
【0008】
さらに別の実施形態では、コンピュータシステムが開示され、本コンピュータシステムは、プロセッサと、プロセッサに結合され、コンピュータシステムによって実行されると、コンピュータシステムに、ゲームアプリケーション用のAIモデルを処理する方法を実行させる命令をその中に格納したメモリとを含む。本コンピュータシステムによって実行される方法は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからAIモデルを訓練することを含む。本方法は、シナリオの第1のゲームプレイ中に、第1の入力状態データを受信することを含む。本方法は、第1の入力状態データをAIモデルに適用して、第1のゲームプレイのシナリオの成功度を示す出力を生成することを含む。本方法は、予め定義された目的に基づいて、出力の分析を行うことを含む。本方法は、分析された出力に基づいて、予め定義された目的を達成するためにアクションを実行することを含む。
【0009】
別の実施形態では、AI訓練のための方法が開示されている。本方法は、複数のサーバでゲームアプリケーションの複数のインスタンスを実行することを含み、この複数のインスタンスが、ゲームアプリケーションの複数のゲームプレイをサポートする。本方法は、ゲームアプリケーションのシナリオの対応するゲームプレイに関連する訓練状態データを複数のサーバで収集することを含む。本方法は、訓練状態データの成功基準を定義することを含む。本方法は、訓練状態データ及び成功基準を深層学習エンジンに提供することにより、シナリオに対してAIモデルを訓練することを含み、訓練されたAIモデルは、複数の入力に複数の出力を提供する。
【0010】
本開示の他の態様は、本開示の原理を一例として示す添付の図面と併せて、以下の発明を実施するための形態から明らかになるであろう。
【0011】
本開示は、添付の図面と併せて、以下の記述を参照することにより、最も良く理解することができる。
【図面の簡単な説明】
【0012】
図1A】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して人工知能(AI)モデルを訓練するためのシステムであって、このAIモデルがゲームアプリケーションに関連する様々な機能性の提供に用いられるシステムである。
図1B】本開示の一実施形態による、AIモデルを構築するのに使用される例示的なニューラルネットワークを示す。
図2A】本開示の一実施形態による、クラウドゲームネットワークを介してゲーミングを提供するためのシステム図200を示す。
図2B】本開示の一実施形態による、クラウドゲームネットワークを介して実行されるゲームアプリケーションの複数のプレーヤにゲーミングを提供し、それらのプレーヤのゲームプレイからAIモデルの訓練に使用するための訓練データを収集するシステムであって、このAIモデルが、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するように構成されているシステムを示す。
図3A】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してAIモデルを訓練するための方法であって、このAIモデルが、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される方法を示す流れ図である。
図3B-1】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してAIモデルを訓練するためのプロセスであって、このAIモデルが、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用されるプロセスを示すデータ流れ図を示す。
図3B-2】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してAIモデルを訓練するためのプロセスであって、このAIモデルが、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用されるプロセスを示すデータ流れ図を示す。
図3C-1】本開示の一実施形態による、ゲームアプリケーションのゲームプレイのスクリーンショットであり、ゲームアプリケーションのプレイ方法を理解するAIモデルを訓練するために使用され得る成功基準の一種を示す。
図3C-2】本開示の一実施形態による、複数のゲームプレイからの訓練状態データの収集を説明する図であり、そのゲームプレイをサポートする複数のサーバ上で複数のインスタンスが実行されている。
図4A】本開示の一実施形態による、ゲームアプリケーションのプレイ方法を理解するように構成されたAIモデルを適用するための方法であって、このAIモデルが、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される方法を示す流れ図である。
図4B】本開示の一実施形態による、ゲームアプリケーションのプレイ方法を理解するように構成されたAIモデルを適用するために構成されたAIプロセッサエンジンであって、このAIモデルが、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用されるAIプロセッサエンジンのブロック図である。
図5A】本開示の一実施形態による、ゲームアプリケーションをプレイするプレーヤにレコメンデーションを提供するためのプロセスであって、このレコメンデーションが、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたAIモデルによって提供されるプロセスを示すデータ流れ図を示す。
図5B】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたAIモデルによって判断されたプレーヤプロファイルを使用して、ゲームアプリケーションをプレイするプレーヤのチームのバランスをとるプロセスを示すデータ流れ図を示す。
図5C】本開示の一実施形態による、AIモデルによって指示されたオートプレイを介してAIモデルを訓練するためのプロセスであって、このAIモデルが、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されるプロセスを示すデータ流れ図を示す。
図5D】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたAIモデルによって指示されたオートプレーヤを使用して、ゲームアプリケーション内を自動的に回るプロセスを示すデータ流れ図を示す。
図5E】本開示の一実施形態による、対戦相手をプレーヤに提供するためのプロセスであって、この対戦相手は、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されるAIモデルによって指示されるプロセスを示すデータ流れ図を示す。
図5F】本開示の一実施形態による、プレーヤの弱点を特定し、それらの弱点を克服するようにプレーヤを訓練するための様々なサービスを提供するプロセスを示すデータ流れ図を示す。
図6】本開示の様々な実施形態の態様を実行するために使用することができる例示的なデバイスの構成要素を示す。
【発明を実施するための形態】
【0013】
以下の詳細な説明は、例示を目的として多くの特定の詳細を包含するが、当業者は、以下の詳細への多くの変形及び変更が本開示の範囲内にあることを認識するであろう。したがって、以下に説明する本開示の態様は、この説明に続く特許請求の範囲に対する一般性を全く失わずに、かつその請求項に限定を課さずに示される。
【0014】
概略的に、本開示の様々な実施形態は、ゲームアプリケーション、及び/またはゲームアプリケーションのゲームプレイに関連するAIモデルを構築するために深層学習(機械学習とも呼ばれる)技法を実施するシステム及び方法を説明する。具体的には、AIモデルは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連して、ゲームアプリケーションの所与の状況(例えば、ゲーム状態)に応答して取るべきアクションを予測すること、及び/または判断することを含む、様々な機能性を提供するように構成される。例えば、AIモデルは、全ゲーマのうちで一番となるようプロゲーマを訓練するのに使用することができる。AIモデルは、1つ以上のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するサーバのネットワークを使用して(例えば、クラウドゲームシステムを介して)訓練(あるいはトレーニング:Training)され及び/または構築される。AIモデルは、成功基準の観点からより成功しているAIモデルを介して、ある経路を別の類似した経路によってたどるなど、成功基準に基づいて訓練されてもよい。つまり、AIモデルはより成功した経路を進むことを学習する。さらに、AIモデルは、訓練データを継続的に収集し、新しい訓練データを既存の訓練データと比較し、成功基準に基づいて最良の訓練データを選択することにより、継続的に改良することが可能である。
【0015】
上記のような様々な実施形態を概略的に理解したうえで、様々な図面を参照して実施形態の詳細例を説明する。
【0016】
図1Aは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバ(例えば、ゲームクラウドシステム)のネットワークを介して人工知能(AI)モデル160を訓練するためのシステム100Aである。AIモデルは、本開示の一実施形態による、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される。具体的には、訓練されたAIモデル160は、ネットワーク150(例えば、インターネット)を介して、バックエンドサーバによって実装され得、及び/またはサポートされ得、このバックエンドサーバは、世界中の1つ以上の場所にいる1人以上のプレーヤのゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する訓練されたAIモデル160を構築して適用するための人工知能及び/または深層学習、機械学習を(例えば、深層、機械、学習エンジン190を介して)提供する。
訓練されたAIモデル160は、ゲームアプリケーションの複雑な細部、及び/または(例えば、対応するゲームプレイを通して)ゲームアプリケーションのプレイの複雑な細部を学習するように訓練されている。そのようにして、ゲームアプリケーションのゲームプレイの状況(例えば、特定のゲームプレイのゲーム状態)が入力として与えられると、AIモデルはその状況を分析し、その状況への適切な応答を提供することができる。応答は、予め定義された目的(例えば、支援を実施するなど)に依存し得る。例えば、訓練されたAIモデル160は、ゲームアプリケーションがどのように応答すべきか、または対応するゲームプレイ中にプレーヤがどのように応答すべきかを判断することができる。
【0017】
図示するように、複数のクライアントデバイス230(例えば、デバイス230a~230n)が、ネットワーク150(例えば、インターネット)を介してバックエンドのゲームクラウドシステム(GCS)201に接続されて、特定のゲームアプリケーションの複数のゲームプレイをサポートする。例えば、複数のリモートプレーヤが、それぞれのクライアントデバイス230を介してゲームアプリケーションをプレイしている。クライアントデバイスは、ネットワーク150を介してバックエンドサーバシステム(例えば、GCS201)に接続することができる、少なくともメモリとプロセッサモジュールとを有する任意のタイプのコンピューティングデバイスであり得る。該当するクライアントデバイスは、対応するプレーヤのゲームプレイを実施するために、ゲームプレイを駆動するのに用いられる入力コマンドなどを介して、ローカルまたはリモートで実行されている対応するゲームアプリケーションのインスタンスとインタラクトするように構成されている。
【0018】
GCS201は、ゲームアプリケーション110の複数のインスタンス(例えば、インスタンス110a~110n)を実行する複数のサーバ205(例えば、サーバ205a~205n)を含む。例えば、サーバ205aは、対応するクライアントデバイスを介した対応するプレーヤの対応するゲームプレイをサポートするゲームアプリケーションのインスタンス110aを実行するように構成される。サーバ205のそれぞれは、対応するゲームプレイをサポートする、ゲームアプリケーションの対応するインスタンスなどを介してゲームアプリケーションを実行することができる、少なくともメモリとプロセッサモジュールとを有するものとして構成され得る。
例えば、各サーバ205は、サーバコンソール、ゲーム機、コンピュータなどであってもよい。各サーバ205は、ネットワーク150を介して、データ105(例えば、対応するゲームプレイのレンダリングされた画像及び/またはフレーム)を対応するクライアントデバイスにストリーミングバックするように構成される。そのようにして、対応するクライアントデバイスによって受信されて転送されたコントローラの入力に応答して、計算の複雑なゲームアプリケーションが、バックエンドサーバで実行し続けることができる。各サーバは、画像及び/またはフレームをレンダリングし、次いでそれらをエンコード(例えば、圧縮)して、対応するクライアントデバイスにストリーミングして表示することが可能である。
【0019】
一実施形態では、GCS201は、分散型ゲームエンジンシステム及び/またはアーキテクチャを含む。具体的には、ゲームロジックを実行する分散型ゲームエンジンが、対応するゲームアプリケーションのインスタンスとして構成されている。一般に、分散型ゲームエンジンは、ゲームエンジンの各機能を取り込み、それらの機能を分散させて多数の処理エンティティによって実行する。個々の機能は、さらに1つ以上の処理エンティティにわたって分散させることができる。処理エンティティは、金属または物理ハードウェアとして、及び/または仮想コンポーネントまたは仮想マシンとして、及び/または仮想コンテナとしてなど、様々な構成で構成され得る。コンテナは、仮想化されたオペレーティングシステム上で動作するゲームアプリケーションのインスタンスを仮想化するものであるため、仮想マシンとは異なる。処理エンティティは、GCS201の1つ以上のサーバ(計算ノード)上のサーバ及びその基礎となるハードウェアを利用し、及び/またはそれらに依拠してもよく、サーバは1つ以上のラック上に配置され得る。
種々の処理エンティティに対するそれらの機能の実行の協調、割り当て、及び管理は、分散同期層によって行われる。そのようにして、それらの機能の実行が分散同期層によって制御されて、プレーヤによるコントローラ入力に応答して、ゲームアプリケーション用のメディア(例えば、ビデオフレーム、オーディオなど)を生成することが可能になる。分散同期層は、重要なゲームエンジンコンポーネント/機能が、より効率的な処理のために分散されて再構築されるように、分散処理エンティティ全体で(例えば、負荷バランシングを介して)それらの機能を効率的に実行することが可能である。
【0020】
ゲームエンジンによって果たされるこれらの様々な機能には、ゲームアプリケーションと、ゲームアプリケーションに関連するサービスとを実行するための基本的なプロセッサベースの機能が含まれる。例えば、プロセッサベースの機能には、2Dまたは3Dレンダリング、物理学、物理シミュレーション、スクリプト、オーディオ、アニメーション、グラフィックス処理、ライティング、シェーディング、ラスタ化、レイトレーシング、シャドーイング、カリング、変換、人工知能などが含まれる。さらに、ゲームアプリケーションのサービスには、ストリーミング、エンコーディング、メモリ管理、マルチスレッド管理、サービス品質(QoS)、帯域幅テスト、ソーシャルネットワーキング、ソーシャルフレンドの管理、ソーシャルネットワークのフレンドとの通信、通信チャネル、テキスティング、インスタントメッセージ、チャットサポートなどが含まれる。
【0021】
さらに、分散同期層は、処理要求の増加または処理の複雑さに対処するために、より多くの処理エンティティを追加することにより、(個々の分散されたゲームエンジン上で)容易に拡張することができる。つまり、要望に基づいて、処理能力を弾力的に増加または減少させることが可能である。また、この分散型ゲームエンジンシステムは、多くのユーザにわたって拡張することができ、ユーザの各々は、ゲームアプリケーションのマルチプレーヤゲームセッションなどにおいて、対応する分散型ゲームエンジンによってサポートされる。したがって、このマルチプレーヤゲームセッションは、パフォーマンスの問題(例えば、待ち時間)のためにセッション内のプレーヤの最大数を制限するハードウェアの制限によって制約されることがない。その代わりに、このスケーラブルな分散型ゲームエンジンシステムは、ハードウェアの制約を一切受けることなく、マルチプレーヤゲームセッションに参加するプレーヤの数に応じて、分散型ゲームエンジンの数をスケールアップまたはスケールダウンすることができる。そのため、単一のマルチプレーヤゲームセッションに何千人ものプレーヤが参加する可能性がある。
【0022】
システム100Aでは、複数のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するように構成されたサーバのネットワークを使用して、AIモデル160を構築(例えば、訓練)することができる。具体的には、訓練データ345は、複数のサーバ205におけるゲームアプリケーションのインスタンスの実行から収集される。具体的には、訓練データとして使用するための収集は、ゲームアプリケーションの様々なゲームプレイに関連付けられているリモートプレーヤの誰にも知られることなく行われる。
訓練データ345には、対応するゲームプレイを指示するのに使用されるコントローラ入力236、ゲームプレイ中に生ずるゲームアプリケーションのインスタンスのゲーム状態133、応答メトリクス、成功基準135、成功メトリクス、ゲームプレイに対して実行される追加分析などが含まれる。場合によっては、訓練データ345を、ゲームアプリケーションのインスタンス(例えば、ゲーム状態メタデータなど)によって生成してもよい。訓練データ345は、深層学習及び/または機械学習エンジン190への入力として提供される。深層学習エンジン190は、図1B、ならびに図3A図3B-1及び図3B-2に関連して以下にさらに説明するように、訓練データ345を使用してAIモデル160を構築及び/または訓練するように構成されたモデラ120を含む。
【0023】
AIモデル160は、ゲームアプリケーションの(例えば、プレーヤによる、自動プレーヤによるなどの)後続のゲームプレイ中(例えば、AIモデルの訓練後)に実装されてもよい。例えば、AIモデルは、ゲームプレイをサポートするバックエンドサーバで実装及び/または実行されてもよく、ゲームプレイは、(プレーヤにとっての)ローカルデバイスで、またはバックエンドサーバで実行されてもよい。例えば、訓練されたAIモデルが、深層学習エンジン190によって実装されて、ゲームアプリケーションのゲームプレイに様々な機能性を提供する。
【0024】
図示するように、分析器140は、ゲームアプリケーションのゲームプレイに関連して様々な機能性を提供するように訓練されたAIモデル160を利用するように構成されている。具体的には、入力データストリーム405が、訓練されたAIモデル160を実装するように構成された深層学習エンジン190への入力として提供される。訓練されたAIモデル160は、入力に応答して出力を提供し、その出力は、訓練されたAIモデル160の予め定義された機能性及び/または予め定義された目的に依存する。
例えば、訓練されたAIモデル160は、分析器140によって使用されて、ゲームプレイ中に、プレーヤによって、またはゲームアプリケーションの対応する実行インスタンスによって、どのようなアクションを取られる必要があるのか判断することができる。分析器140は、入力状態データ405に応答して、かつ訓練されたAIモデル160の予め定義された目的を考慮して、アクションを実行するように構成されたアクション生成器170を含む。そのようにして、AIモデル160を使用して分析器は、ゲームアプリケーションをプレイするプレーヤにサービス(例えば、レコメンデーションの提供、プレーヤの弱点の発見、プレーヤの訓練、プレーヤへの対戦相手の提供、ゲームアプリケーションの欠陥の発見など)を提供することを含む、様々な機能性を提供することができる。
【0025】
より具体的には、分析器140は、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連して、様々な機能性を実行するように構成されている。分析器140は、所与の入力(例えば、コントローラ入力236、ゲーム状態データ133、成功基準135)に対する訓練されたAIモデル160からの出力を分析し、応答(例えば、アクション)を提供するように構成されている。
例えば、分析器140は、ゲームアプリケーションをプレイしているプレーヤのプロファイルを提供する、プレーヤによるゲームアプリケーションのゲームプレイ中に、プレーヤにレコメンデーション(このレコメンデーションは、ユーザプロファイルを考慮して構造化されたものであり得る)を提供する、ゲームプレイを引き継ぐ、プレーヤプロファイルを用いて、公平にバランスの取れたチーム(例えば、ゲームアプリケーションにおいて互いに競争するチーム)を構築する、AIモデルを自動的に訓練するなどの目的で、ゲームアプリケーションをオートプレイする、ボットの対戦相手を提供する、ゲームアプリケーションを探索する、対応するプレーヤの弱点を判断し、プレーヤが弱点を克服するのに役立つサービスを実行する、などを行い得る。
【0026】
図1Bは、ゲームアプリケーションの複雑な細部と、対応するゲームアプリケーションのプレイ方法とを部分的に学習する訓練されたAIモデルを構築するために使用される例示的なニューラルネットワーク190(例えば、深層学習エンジン)を示す。そのようにして、ゲームアプリケーションのゲームプレイの状況(例えば、特定のゲームプレイのゲーム状態)が入力として与えられると、AIモデルはその状況を分析し、その状況への適切な応答を提供することができる。例えば、AIモデルは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連して、ゲームアプリケーションの所与の状況(例えば、ゲーム状態)に応答して取るべきアクションを予測すること、及び/または判断することを含む、様々な機能性を提供するために使用されてもよい。
【0027】
より具体的には、AIモデルは、1つ以上のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するサーバのネットワークを使用して(例えば、クラウドゲームシステムを介して)訓練され及び/または構築される。この訓練は、本開示の一実施形態に従って、深層学習エンジン190によって実施される。一実施形態では、ニューラルネットワーク190を、バックエンドサーバのAIプロセッサまたはエンジン210内に実装し得る。具体的には、図1Aのシステム100Aの深層学習エンジン190のモデラ120が、任意のプレーヤ(例えば、現実または仮想)による、ゲームアプリケーションの後続のゲームプレイで用いるゲームアプリケーションに関する全てを学習するように構成されている。
【0028】
具体的にいえば、モデラ120と連携する深層学習または機械学習エンジン190は、ゲームアプリケーションの複数のインスタンスを実行するように構成された複数のバックエンドサーバで収集される訓練データ345を分析するように構成される。深層学習エンジン190は、深層学習アルゴリズム、強化学習、または他の人工知能ベースのアルゴリズムを含む人工知能を利用して、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する訓練されたAIモデルを構築する。そのようにして、膨大な訓練データの集まりを効率的に収集して、ゲームアプリケーション、及び/またはゲームアプリケーションのゲームプレイの定義を部分的に支援し、それによってゲームアプリケーションが(例えば、訓練されたAIモデル内で定義される、種々のシナリオと、それらのシナリオ内の部分とを)提示する可能性のあるコンテキストを含めることができる。
さらに、AIモデルを(例えば、訓練中または訓練後に、AIプロセッサエンジン210の分析器140などによって)使用して、ゲームアプリケーションの任意の後続のゲームプレイにおいて、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイと関連して、様々な機能性を提供することができる。したがって、訓練されたAIモデルを用いて、ゲームアプリケーションの後続のゲームプレイに最適なサービスをプレーヤなどに提供することができるように、深層学習エンジン190は、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関する全てを学習することが可能である。
例えば、訓練されたAIモデルは、世界一のゲーマとなるようプロゲーマを訓練すること、またはプレーヤの弱点に対処するように設計された様々なチュートリアルセッション(例えば、ビデオ指導、ゲームプレイの課題など)を提供することのために用いることができる。深層学習エンジン190は、任意の更新された訓練データが与えられると、訓練されたAIモデルを継続的に改良するように構成されてもよい。この改良は、訓練に使用できる訓練データのセットを、それらのセットが、対応する成功基準に基づいて、ゲームアプリケーション内でどのように機能するかに基づいて、決定することに基づいている。
【0029】
より具体的には、学習及び/またはモデリング段階の間中に、訓練データ345が深層学習エンジン190によって使用されて、入力データのセットが与えられると、ゲームアプリケーションの特定のゲームプレイがどの程度成功することになるかが予測され、及び/または判断される。結果として得られるゲームアプリケーションのAIモデルは、入力データのセットが与えられたゲームアプリケーションの所与のゲームプレイに対して、実行すべきアクションを決定するのに用い得る。すなわち、訓練されたAIモデルは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために(例えば、分析器140が)使用することができる。例えば、入力データは、(例えば、コントローラ入力などを含む)ゲーム状態データであり得、訓練されたAIモデル160は、入力データへの応答を生成するのに使用され得る。応答は、ユーザによる要求または知識の有無にかかわらず提供され得る。
【0030】
例えば、訓練されたAIモデル160は、ゲームアプリケーションをプレイするプレーヤにレコメンデーションを提供するために、分析器140によって使用されることがある。AIモデル160は、ゲームアプリケーションに特有の、またはゲームアプリケーションのシナリオに特有の、プレーヤのユーザプロファイルを作成するために、分析器140によって使用されることがある。
AIモデル160は、例えば、訓練データを介して作成された世界最高の対戦相手を相手にしてプレーヤを訓練する場合、ユーザがセルフプレイを通じて段階的に上達できるように(そして、そのセルフプレイを通じて継続的に改良されるように)、仮想的な自己の対戦相手を相手にしてプレーヤを訓練する(例えば、彼自身または彼女自身の仮想バージョンと対戦する)場合など、ゲームアプリケーション内のボットの対戦相手を制御するために、分析器140によって使用されることがある。
AIモデル160は、プレーヤの弱点を発見し、その弱点に対処するためのチュートリアルセッションを提供するために、分析器140によって使用されることがある。AIモデル160は、ゲームアプリケーション内の問題(例えば、グリッチにつながるコードの穴など)を発見するために、分析器140によって使用されることがある。必ずしも記述されているわけではないが、さらに他の機能性もサポートされている。
【0031】
ニューラルネットワーク190は、ゲームアプリケーションのプレイの複雑な細部を判断するためにデータセットを分析して、ゲームアプリケーションのゲームプレイ中に判断し得る、及び/または実行し得る、応答及び/またはアクションを含む自動分析ツールの例を構成する。様々なタイプのニューラルネットワーク190が可能である。一例では、ニューラルネットワーク190は、深層学習エンジン190によって実装され得る深層学習をサポートする。よって、教師ありまたは教師なしの訓練を用いたディープニューラルネットワーク、畳み込みディープニューラルネットワーク、及び/またはリカレントニューラルネットワークを実装することができる。別の例では、ニューラルネットワーク190は、(例えば、成功基準、成功メトリクスなどの使用による)強化学習、または報酬ベースの学習をサポートする深層学習ネットワークを含む。例えば、ニューラルネットワーク190は、強化学習アルゴリズムをサポートするマルコフ決定過程(MDP)としてセットアップされる。
【0032】
一般に、ニューラルネットワーク190は、人工ニューラルネットワークなどの相互接続されたノードのネットワークを表す。各ノードは、データからある情報を学習する。相互接続を介して、ノード間で知識を交換することができる。ニューラルネットワーク190への入力により、ノードのセットがアクティブ化される。次に、このノードのセットは、他のノードをアクティブ化し、それにより入力に関する知識が伝播される。このアクティブ化プロセスは、出力が提供されるまで、他のノードにわたって繰り返される。
【0033】
図示されるように、ニューラルネットワーク190は、ノードの階層を含む。最下位階層に、入力層191が存在する。入力層191は、入力ノードのセットを含む。例えば、これらの入力ノードのそれぞれは、ゲームアプリケーションのゲームプレイのインスタンスにマッピングされ、インスタンスは、そのインスタンスを定義する1つ以上の特徴(例えば、コントローラ入力、ゲーム状態、結果データなど)を含む。モデルの中間予測は、ラベル(例えば、出力、特徴、ノード、分類など)を作成する分類器を介して決定される。
【0034】
最上位階層には、出力層193が存在する。出力層193は、出力ノードのセットを含む。出力ノードは、例えば、訓練されたAIモデル160の1つ以上のコンポーネントに関連する判断(例えば、アクション、予測、所与の入力データのセットに対するゲームプレイの成功の予測など)を表す。上記のとおり、出力ノードは、所与の入力のセットに対して、予測されるもしくは予想されるアクション、または学習されたアクションを特定することができ、入力はゲームアプリケーションの様々なシナリオまたはシナリオの一部を定義することができる。これらの結果は、深層学習エンジン190によって使用されるパラメータを改良及び/または修正して、所与の入力のセットに対する適切な予測されるまたは予想される応答及び/またはアクションを反復的に判断するために、訓練データの収集に使用されるゲームプレイから得られる、所定の及び真の結果と、または学習されたアクション及び結果と比較することができる。つまり、ニューラルネットワーク190内のノードは、パラメータに改良を加える際に、そのような判断を行うために使用することができる訓練されたAIモデル160のパラメータを学習する。
【0035】
具体的には、入力層191と出力層193との間には、隠れ層192が存在する。隠れ層192は、「N」個の隠れ層を含み、「N」は、1以上の整数である。次に、隠れ層のそれぞれはまた、隠れノードのセットも含む。入力ノードは、隠れノードと相互接続されている。同様に、隠れノードは、出力ノードと相互接続されているため、入力ノードは、出力ノードと直接相互接続されていない。複数の隠れ層が存在する場合、入力ノードは、最下位の隠れ層の隠れノードと相互接続される。次に、これらの隠れノードは、次の隠れ層の隠れノードと相互接続され、以下同様に続く。次の最上位の隠れ層の隠れノードは、出力ノードと相互接続される。相互接続は、2つのノードを接続する。相互接続は、学習することができる数値の重みを有し、ニューラルネットワーク190を入力に適応させて、学習可能にする。
【0036】
一般に、隠れ層192により、入力ノードに関する知識が、出力ノードに対応する全てのタスク間で共有されることが可能となる。そのようにするため、一実装例では、隠れ層192を介して入力ノードに変換fが適用される。一例では、変換fは非線形である。例えば、整流関数f(x)=max(0,x)を含む様々な非線形変換fが利用可能である。
【0037】
ニューラルネットワーク190はまた、最適解を見つけるためにコスト関数cを使用する。コスト関数は、所与の入力xに関してf(x)と定義されたニューラルネットワーク190によって出力される予測と、グラウンドトゥルースまたはターゲット値y(例えば見込まれる結果)との偏差を測定する。最適解は、最適解のコストよりコストの低い解がない状況を表す。コスト関数の例として、グラウンドトゥルースラベルが利用可能なデータの場合、予測とグラウンドトゥルースとの平均二乗誤差が挙げられる。学習プロセス中に、ニューラルネットワーク190は、誤差逆伝播アルゴリズムを使用して、様々な最適化方法を採用し、コスト関数を最小化するモデルパラメータ(例えば隠れ層192内のノード間の相互接続の重み)を学習し得る。このような最適化方法の一例として、確率的勾配降下法が挙げられる。
【0038】
一例では、ニューラルネットワーク190用の訓練データセットは、同じデータ領域からのものであり得る。例えば、ニューラルネットワーク190は、所与の入力のセットまたは入力データに対して実行すべき予測されるまたは予想される応答及び/またはアクションを学習するように訓練される。本例では、データ領域には、ベースライン入力データを定義するために、複数のユーザの複数回のゲームプレイを通じて収集されたゲームプレイデータが含まれている。別の例では、訓練データセットは、ベースライン以外の入力データを含むように、様々なデータ領域からのものである。
【0039】
したがって、ニューラルネットワーク190は、所与の入力のセット(ゲーム状態などのゲームアプリケーションの状況)に対して実行すべき予測されるまたは予想される応答及び/またはアクションを、部分的に予測または決定することができる。これらの予測結果に基づいて、ニューラルネットワーク190はまた、入力のセットが与えられたときに実行すべきそれらの結果及び/またはアクション(例えば、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関する様々な機能性)の決定を提供するために使用される、訓練されたAIモデル160を定義し得る。
【0040】
図2Aは、本開示の一実施形態による、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関するAIモデルを構築及び/または訓練するために使用される訓練データの収集をサポートするシステム200Aを示す。具体的には、システム図200Aは、ゲームクラウドシステム(GCS)201に格納されたビデオゲームへのアクセスとそのプレイとを可能にする。一般的に言えば、ゲームクラウドシステムGCS201は、ネットワーク220を介して動作して、ゲームアプリケーションをプレイする複数のプレーヤを、対応するゲームプレイを通じてサポートするクラウドコンピューティングシステムであり得る。それらのゲームプレイに関連しているデータは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関するAIモデルを構築及び/または訓練に使用される訓練データとして提供され得る。具体的には、システム200Aは、GCS201、1つ以上のソーシャルメディアプロバイダ240、及びクライアントデバイス230を含み、これらは全て、ネットワーク150(例えば、インターネット)を介して接続されている。1つ以上のユーザデバイスが、GCS201及びソーシャルメディアプロバイダ240によって提供されるサービスにアクセスするために、ネットワーク150に接続され得る。
【0041】
一実施形態では、ゲームクラウドシステム201は、ゲームサーバ205と、ビデオレコーダ271と、タグプロセッサ273と、ユーザプロファイルマネージャを含むアカウントマネージャ274と、ゲーム選択エンジン275と、ゲームセッションマネージャ285と、ユーザアクセスロジック280と、ネットワークインタフェース290と、ソーシャルメディアマネージャ295とを含む。GCS201は、ゲーム状態ストア、ランダムシードストア、ユーザセーブデータストア、スナップショットストアなどの複数のゲームストレージシステムをさらに含んでもよく、これらは一般にデータストア260に格納されてもよい。
他のゲームストレージシステムとしては、ゲームコードストア261、記録ゲームストア262、タグデータストア263、ビデオゲームデータストア264、及びゲームネットワークユーザストア265があり得る。一実施形態では、GCS201は、ゲームアプリケーション、サービス、ゲーム関連のデジタルコンテンツ、及びシステム、アプリケーション、ユーザ、及びソーシャルネットワーク間の相互接続性を提供することができるシステムである。GCS201は、ネットワークインタフェース290経由でソーシャルメディアマネージャ295を介して、ユーザデバイス230及びソーシャルメディアプロバイダ240と通信し得る。ソーシャルメディアマネージャ295は、1人以上の友人を関連付けるように構成され得る。一実施形態では、各ソーシャルメディアプロバイダ240は、ユーザのソーシャルネットワーク接続を示す少なくとも1つのソーシャルグラフ245を含む。
【0042】
プレーヤ/ユーザ5は、ゲームセッションマネージャ285を介して、GCS201によって提供されるサービスにアクセスすることができる。例えば、アカウントマネージャ274は、プレーヤ5によるGCS201への認証及びアクセスを可能にする。アカウントマネージャ274は、会員ユーザ/プレーヤに関する情報を記憶する。例えば、各会員ユーザのユーザプロファイルが、アカウントマネージャ274によって管理されてもよい。そのようにして、会員情報が、認証の目的でアカウントマネージャ274によって使用され得る。例えば、アカウントマネージャ274は、会員ユーザに関連するユーザ情報を更新し、管理するために使用され得る。さらに、会員ユーザに所有されているゲームタイトルが、アカウントマネージャ274によって管理されてもよい。そのようにして、データストア264に保存されているビデオゲームは、それらのビデオゲームを所有する全ての会員ユーザが利用できるようになっている。
【0043】
一実施形態では、ユーザ、例えば、プレーヤ5は、ネットワーク150を介した接続により、クライアントデバイス230を手段として、GCS201及びソーシャルメディアプロバイダ240が提供するサービスにアクセスすることができる。クライアントデバイス230は、プロセッサ及びメモリを有する、有線または無線の、携帯型または非携帯型の任意のタイプのデバイスを含むことが可能である。一実施形態では、クライアントデバイス230は、スマートフォン、タブレットコンピュータ、または携帯型のフォームファクタにタッチスクリーン機能を提供するハイブリッドの形態であり得る。1つの例示的なデバイスとしては、オペレーティングシステムを実行し、ネットワーク150を介して取得され、ローカルの携帯型デバイス(例えば、スマートフォン、タブレット、ラップトップ、デスクトップなど)上で実行され得る様々なアプリケーション(アプリ)へのアクセスを提供される携帯型電話デバイスがあり得る。
【0044】
クライアントデバイス230は、プレーヤ5が入力コマンド236を送信し、GCS201及びソーシャルメディアプロバイダ240から受信したデータ及び/または情報235を表示するためのインタフェースとして機能するディスプレイ232を含む。ディスプレイ232は、タッチスクリーンとして、または典型的にはフラットパネルディスプレイ、陰極線管(CRT)、もしくはディスプレイをレンダリングする機能がある他のデバイスによって提供されるディスプレイとして構成し得る。あるいは、クライアントデバイス230は、デスクトップコンピュータまたはラップトップコンピュータと同様に、そのディスプレイ232をデバイスとは別に持つことができる。
【0045】
一実施形態では、クライアントデバイス230は、プレーヤ5がビデオゲームをプレイできるように、GCS201と通信するように構成される。例えば、プレーヤ5は、ゲーム選択エンジン275を介して、ビデオゲームデータストア264で利用可能なビデオゲームを(例えば、ゲームタイトルなどによって)選択することができる。そのようにして、選択されたビデオゲームが、有効化され、ロードされてGCS201に搭載のゲームサーバ205によって実行される。一実施形態では、ゲームプレイは、クライアントデバイス230がGCS201からゲームビデオフレーム235のストリームを受信するように、主としてGCS201で実行され、ゲームプレイを駆動するためのユーザ入力コマンド236がGCS201に返信される。ストリーミングのゲームプレイから受信したビデオフレーム235は、クライアントデバイス230のディスプレイ232に表示される。
【0046】
一実施形態では、プレーヤ5がプレイするために利用可能なゲームタイトルを選択した後、選択したゲームタイトルのゲームセッションが、ゲームセッションマネージャ285を介してプレーヤ5によって開始され得る。ゲームセッションマネージャ285は、最初に、データストア140内のゲーム状態ストアにアクセスして、(選択されたゲームを対象にして)プレーヤ5が最後にプレイしたセッションの保存されたゲーム状態を検索し、もしあれば、プレーヤ5が前回のゲームプレイ停止ポイントからゲームプレイを再開できるようにする。再開点または開始ポイントが特定されると、ゲームセッションマネージャ285は、ゲームプロセッサ210内のゲーム実行エンジンに、選択されたゲームタイトルのゲームコードをゲームコードストア261から実行するように通知し得る。ゲームセッションが開始された後、ゲームセッションマネージャ285は、ゲームビデオフレーム235(すなわち、ストリーミングビデオデータ)を、ネットワークインタフェース290を介して、クライアントデバイス、例えば、クライアントデバイス230に渡し得る。
【0047】
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームプロセッサ210、記録エンジン271、及びタグプロセッサ273と通信して、ゲームプレイまたはゲームプレイセッションの記録(例えば、ビデオ)を生成し、または保存してもよい。一実施形態では、ゲームプレイのビデオ録画には、ゲームプレイ中に入力され、または提供されたタグコンテンツ、及びその他のゲーム関連メタデータを含めることができる。タグコンテンツは、スナップショット経由で保存することもできる。ゲームプレイのビデオ録画は、そのゲームプレイに対応する任意のゲームメトリクスと共に、記録ゲームストア262に保存してもよい。任意のタグコンテンツをタグデータストア263に保存することができる。
【0048】
ゲームプレイ中、ゲームセッションマネージャ285は、ゲームプロセッサ204と通信して、ビデオゲームの対応するゲームプレイの結果に影響を与えるために使用されるユーザ入力コマンド236を配信し、取得し得る。プレーヤ5が入力した入力コマンド236は、クライアントデバイス230からGCS201のゲームセッションマネージャ285に送信され得る。ゲームプレイを駆動するために使用される入力コマンドを含む入力コマンド(例えば、コントローラ入力)236は、タグコンテンツ(例えば、テキスト、画像、ビデオ録画クリップなど)などを含む、ユーザのインタラクティブな入力を含んでもよい。ゲーム入力コマンドと同様に任意のユーザプレイメトリクス(ユーザがゲームをプレイした時間など)も、ゲームネットワークのユーザーストアに保存され得る。ビデオゲームのゲームプレイに関連する選択情報を使用して、ユーザが利用可能な複数の特徴を有効にすることができる。
【0049】
図2Bは、本開示の一実施形態による、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関するAIモデル160を構築及び/または訓練するために使用される訓練データの収集を提供するシステム200Bであって、ゲームプレイをサポートするゲームアプリケーションのインスタンス及び/またはインスタンス化が、クラウドゲームネットワーク上で実行されるシステム200Bを示す。さらに、システム200Aは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供する(例えば、レコメンデーションを提供する、プレーヤを訓練する、プレーヤの弱点を発見する、ボットの対戦相手を提供するなど)ように訓練されたAIモデル160の実装をサポートするように構成されている。
【0050】
図示するように、システム200Bは、本開示の一実施形態に従って、クラウドゲームネットワークを介して実行されるゲームアプリケーションをプレイする複数のプレーヤ215(例えば、プレーヤ5L、5M・・・5Z)にゲーム制御を提供する。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で動作する複数の仮想マシン(VM)を含むゲームクラウドシステム210であってもよく、1つ以上の仮想マシンが、ホストのハイパーバイザで利用可能なハードウェアリソースを利用して、ゲームプロセッサモジュールを実行するように構成されている。
他の実施形態では、GCS201は、ゲームアプリケーションの対応するインスタンスとして構成された、ゲームロジックを実行している分散型ゲームエンジンシステム及び/またはアーキテクチャを含む。一般に、分散型ゲームエンジンは、ゲームエンジンの各機能を取り込み、それらの機能を分散させて、GCS201の1つ以上のサーバにまたがる多数の処理エンティティによって実行する。個々の機能は、さらに1つ以上の処理エンティティにわたって分散させることができる。ここで図面を参照すると、同様の参照番号は、同一の部分または対応する部分を示す。
【0051】
図示されるように、ゲームクラウドシステム210は、複数のインタラクティブビデオゲームまたはゲームアプリケーションへのアクセスを提供するゲームサーバ205を含む。ゲームサーバ205は、クラウド内で利用可能な任意の種類のサーバコンピューティングデバイスであり得、1つ以上のホスト上で実行される1つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ205は、ユーザのゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサをサポートする仮想マシンを管理し得る。
よって、複数の仮想マシンに対応付けられたゲームサーバ205の複数のゲームプロセッサは、複数のユーザ215のゲームプレイに対応付けられたゲームアプリケーションの複数のインスタンスを実行するように構成される。そのようにして、バックエンドサーバサポートは、複数のゲームアプリケーションのゲームプレイのメディア(例えば、ビデオ、オーディオなど)のストリーミングを、対応する複数のユーザに提供する。後述するように、ゲームアプリケーションのインスタンスを実行する複数のゲームプロセッサから収集された訓練データは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連するAIモデルを構築及び/または訓練するために使用される。
【0052】
複数のプレーヤ215は、ネットワーク150を介してゲームクラウドシステム210にアクセスし、プレーヤ(例えば、プレーヤ5L、5M・・・5Z)は、対応するクライアントデバイス230’を介してネットワーク150にアクセスする。クライアントデバイス230’は、図1Aのクライアントデバイス230と同様に構成されてもよく、または計算機能を提供するバックエンドサーバとのインタフェースを提供するシンクライアントとして構成されてもよい。具体的には、対応するプレーヤ5Lのクライアントデバイス230’は、インターネットなどのネットワーク150を介してゲームアプリケーションへのアクセスを要求し、ゲームサーバ205によって実行され、対応するプレーヤ5Lに関連付けられたディスプレイデバイスに配信されるゲームアプリケーション(例えば、ビデオゲーム)のインスタンスをレンダリングするように構成されている。
例えば、プレーヤ5Lは、クライアントデバイス230’を介して、ゲームサーバ205のゲームプロセッサ上で実行されるゲームアプリケーションのインスタンスとインタラクトし続け得る。より具体的には、ゲームアプリケーションのインスタンスは、ゲームアプリケーションに対応するゲームロジック177を実行しているゲームタイトル実行エンジン211(例えば、ゲームエンジン)によって実行される。ゲームアプリケーションを実施するゲームロジック(例えば、実行可能コード)177は、先に説明したデータストア260、またはゲームコードストア261、またはビデオゲームストア264などを介して格納され、アクセス可能であり、ゲームアプリケーションを実行するのに使用される。ゲームタイトル処理エンジン211は、図示のように、複数のゲームロジック177を用いて、複数のゲームアプリケーションをサポートすることができる。
【0053】
上記のとおり、クライアントデバイス230’は、例えば、ゲームコントローラ、タブレットコンピュータ、キーボード、ビデオカメラによって取り込まれるジェスチャ、マウス、タッチパッドなど、様々な種類の入力デバイス11から入力を受け取り得る。クライアントデバイス230’は、ネットワーク150を介してゲームサーバ205に接続することができる、少なくともメモリとプロセッサモジュールとを有する任意のタイプのコンピューティングデバイスであり得る。また、対応するプレーヤのクライアントデバイス230’は、リモートで動作するゲームタイトル実行エンジン211によって実行されるレンダリング画像を生成し、そのレンダリング画像を、ヘッドマウントディスプレイ(HMD)102を含むディスプレイに表示するように構成されている。例えば、対応するクライアントデバイス230’は、ゲームプレイを駆動するために使用される入力コマンドなどを介して、対応するプレーヤのゲームプレイを実施するためにリモートで実行される対応するゲームアプリケーションのインスタンスとインタラクトするように構成される。
【0054】
別の実施形態では、先に説明したマルチプレーヤ処理エンジン119は、ゲームアプリケーションのマルチプレーヤゲームセッションを制御することを提供する。具体的には、マルチプレーヤ処理エンジン119がマルチプレーヤゲームセッションを管理している時、マルチプレーヤセッションコントローラ116は、マルチプレーヤセッション内のユーザ及び/またはプレーヤのそれぞれと通信セッションを確立し維持するように構成される。このように、マルチプレーヤセッションコントローラ116に制御されることにより、セッション内のプレーヤは相互に通信することができる。
【0055】
さらに、マルチプレーヤ処理エンジン119は、各プレーヤの該当ゲーム環境内でプレーヤ間のインタラクションを可能にするために、マルチプレーヤロジック118と通信する。具体的には、状態共有モジュール117は、マルチプレーヤゲームセッションにおけるプレーヤの各々の状態を管理するように構成されている。例えば、状態データは、上記のとおり、特定のポイントでの対応するプレーヤ(例えば、プレーヤ5L)の(ゲームアプリケーションの)ゲームプレイの状態を定義するゲーム状態データを含み得る。さらに、状態データは、上記のとおり、対応するプレーヤのためにビデオゲームをパーソナライズする情報を含む、ユーザ/プレーヤのセーブデータを含んでもよい。例えば、状態データは、ユーザのキャラクタに対応付けられた情報を含むため、ビデオゲームは、そのユーザに特有であり得るキャラクタ(例えば形状、外観、衣服、兵器類など)でレンダリングされる。このようにして、状態共有データ117及びマルチプレーヤロジック118を用いるマルチプレーヤ処理エンジン119は、マルチプレーヤゲームセッションに参加するユーザのゲーム環境のそれぞれに、オブジェクト及びキャラクタをオーバーレイ/挿入することができる。これにより、マルチプレーヤゲームセッション内のユーザ同士が、それぞれの(例えば、スクリーン上に表示されている)ゲーム環境を介して交流することが可能になる。
【0056】
さらに、GCS201内に統合され得るか、またはGCS201から遠隔に配置され得るAIプロセッサ210を介したバックエンドサーバのサポートは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連するAIモデル160の構築及び/または訓練を提供し、AIモデル160の実装及び/または適用をも提供し得る。具体的には、バックエンドのAIプロセッサ210は、ゲームアプリケーション及び/またはゲームアプリケーションの後続のゲームプレイに関連して、訓練されたAIモデルを(例えば、モデラ120を介して)構築して(例えば、分析器140を介して)適用するために、任意の所与の入力のセット(例えば、ゲーム状態などを含む、ゲームアプリケーションのゲームプレイの状況を定義するもの)に対して実行されることになる応答及び/またはアクション(例えば、コントローラ入力など)を部分的に学習及び/またはモデル化するように構成された上記の深層学習エンジン190を含む。
例えば、深層学習エンジン190内のモデラ120は、訓練されたAIモデル160を深層学習エンジン190内で適用する目的のために、入力層191、隠れ層192、及び出力層193の様々なノードを定義する深層学習エンジン190内で定義されたパラメータを設定するように動作し得る。モデラ120は、上記のとおり、訓練中に使用される1つ以上の成功基準に基づいて、AIモデル160のパラメータを設定することができる。そのようにして、AIモデル160は、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連して様々な機能性を提供するためにAIモデル160を使用することができるように、ゲームアプリケーションの複雑な細部及び/またはゲームアプリケーションのプレイの複雑な細部を学習するように訓練される。(例えば、ゲーム状態などの所与の状況に応答して、コントローラ入力を含む、どのようなアクションを取るべきかを予測及び/または決定する)。したがって、分析器140は、状況への適切な応答を提供するために、ゲームプレイの状況を定義する入力を受けて、AIモデル160からの出力、及び任意選択で入力(例えば、入力状態データ)を分析することができる。ここで応答は、予め定義された目的(例えば、支援の提供、指導の提供など)に依存し得る。
【0057】
システム100A及びシステム200Bの様々なモジュールの詳細な説明と共に、流れ図300Aは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してAIモデルを訓練するための方法を開示しており、このAIモデルは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される。流れ図300Aは、上記のバックエンドサーバ内(例えば、深層学習エンジン190と組み合わせたゲームクラウドシステム201内)で実施されてもよい。
【0058】
具体的には、302において、本方法は、複数のサーバでゲームアプリケーションの複数のインスタンスを実行することを含み、この複数のインスタンスが、ゲームアプリケーションの複数のゲームプレイをサポートする。例えば、複数のサーバは、先に説明したゲームクラウドシステム(例えば、GCS201)内で動作していてもよく、ゲームアプリケーションが、対応するプレーヤからリモートで実行され、メディア(例えば、ビデオフレーム、オーディオなど)が、ネットワークを介してプレーヤのクライアントデバイスにストリーミングされる。
その場合、ゲームアプリケーションの複数のゲームプレイは、複数のプレーヤにより、対応するクライアントデバイスを介して制御され、クライアントデバイスはサーバから遠隔にある。他の実施態様では、ゲームアプリケーションはユーザ/プレーヤに対してローカルで実行され、実行中のゲームアプリケーションからのメタデータは、分析の目的で(例えば、AIモデルを訓練する目的で)、またはマルチプレーヤゲームセッションをサポートするために、ネットワークを介してバックエンドサーバに配信される。さらに他の実施形態では、複数のゲームプレイは、(例えば、AIモデルを自己訓練する目的で)自動的に(例えば、AIを介して)制御されてもよい。
【0059】
304において、本方法は、ゲームアプリケーションのシナリオの対応するゲームプレイに関連する訓練状態データを複数のサーバで収集することを含む。訓練状態データには、ゲームプレイに関連付けられたメタデータが含まれていて、コントローラの入力、ゲームの状態、ゲームプレイの進捗、シナリオの結果(例えば、成功または失敗)、ユーザプロファイル情報などが含まれ得る。つまり、訓練状態データには、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイの理解に関連する可能性のある何らかのデータが含まれる。ゲームアプリケーションのインスタンスはバックエンドサーバで実行されているので、訓練状態データへのアクセスは、それらのゲームプレイの関連プレーヤが積極的に参加しなくても直ちに利用可能である。つまり、プレーヤは、訓練状態データが収集されていることさえ知らない場合がある。
【0060】
訓練状態データは、特定のポイント(例えばゲームプレイ中)でのゲームアプリケーションの状態及び/または状況を定義するゲーム状態データを含み得る。例えば、ゲーム状態データには、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクトの属性、ゲーム属性、ゲームオブジェクトの状態、グラフィックオーバーレイなどがあり得る。そのようにして、ゲーム状態データにより、ビデオゲームの対応するポイントで存在していたゲーム環境を生成することが可能になる。ゲーム状態データには、CPU、GPU、メモリの状態、レジスタ値、プログラムカウンタ値、プログラマブルDMA状態、DMA用のバッファデータ、オーディオチップ状態、CD-ROM状態など、ゲームプレイのレンダリングに使用されるあらゆるデバイスの状態が含まれることもある。ゲーム状態データは、そのポイントからビデオゲームを実行するために、実行コードのどの部分をロードする必要があるかを特定することもできる。全てのゲーム状態データを取り込んで保存する必要はなく、スナップショットに対応するポイントで実行可能コードがゲームを開始するのに十分なデータだけでよい。
【0061】
また、訓練状態データには、ゲームアプリケーションを対応するユーザ向けにパーソナライズするユーザセーブデータが含まれ得る。これには、ユーザのキャラクタに関連付けられた情報が含まれるため、ビデオゲームは、そのユーザ特有のものであり得るキャラクタ(例えば、形状、外観、衣服、武器など)でレンダリングされる。このようにして、ユーザセーブデータは、対応するユーザのゲームプレイ用のキャラクタの生成を可能にし、そのキャラクタは、スナップショットに関連付けられたビデオゲームのポイントに対応する状態を有する。例えば、ユーザセーブデータには、ゲームアプリケーションをプレイする際に対応するプレーヤによって選択されたゲームの難易度、ゲームレベル、キャラクタの属性、キャラクタの位置、残りのライフ数、使用可能なライフの総数、アーマー、トロフィー、タイムカウンタの値などが含まれる。ユーザセーブデータには、対応するプレーヤを識別するユーザプロファイルデータが含まれることもある。
【0062】
さらに、訓練状態データには、AIを介して生成されたランダムシードデータが含まれることもある。ランダムシードデータは、元のゲームコードの一部ではない場合がありますが、オーバーレイに追加して、ゲーム環境をより現実的に見せ、及び/またはユーザにとって魅力のあるものにすることができる。つまり、ランダムシードデータは、プレーヤのゲームプレイにおける対応するポイントに存在するゲーム環境に、追加の特徴を提供するものである。例えば、AIキャラクタがランダムに生成され、オーバーレイで提供される場合がある。AIキャラクタは、ユーザエクスペリエンスを向上させるためにゲーム環境に配置され、ゲームプレイに影響を与える場合もあれば、与えない場合もある。例として、都市のシーンでは、このようなAIキャラクタがランダムに通りを歩くことがある。また、他のオブジェクトを生成し、オーバーレイで提示することもある。例えば、背景の雲と空間を飛ぶ鳥とを生成し、オーバーレイで提示することができる。
【0063】
ゲームアプリケーションは、1つ以上のシナリオを含み得る。シナリオとは、例えば、レベルの最後にいるボスと戦う、あるいは目的地への唯一の道を塞いでいるオブジェクトまたは障害物を飛び越える、あるいは障害物を通過する(例えば、山を登る、攻撃的なワニがいる湖または川を渡る、など)など、ゲームアプリケーションの重要なポイント(例えば、ゲームアプリケーションを進めるために必要なポイント)のことであり得る。シナリオは、ゲームアプリケーションの中間タスクを完了する場合など、それほど重要ではないことの場合もある。これらの場合、シナリオには、報酬(例えば、お金、重要な剣など)を手に入れるためのタスクの完了が含まれ得る。AIモデルを訓練を目的としたデータの収集は、対象となる1つ以上のシナリオでのゲームプレイに関連するデータに限定される場合がある。そのようにして、訓練されたAIモデルは、シナリオに関連するデータを使用して、そのシナリオのプレイに関連しない可能性のあるデータから汚染されることなく、そのシナリオを通じてゲームアプリケーションをプレイすることの複雑な細部を理解する。
【0064】
シナリオは、ゲームアプリケーションの開発者などによって予め定義され得る。例えば、シナリオは、多くのプレーヤがシナリオを進めることができないことが予想されるような高度な難易度を有するように設計されている場合がある。その他の場合、シナリオは、収集された訓練状態データの分析を通じて見いだされる場合がある。つまり、ゲームアプリケーションの特定の部分は、プレーヤにとって、その対応するゲームプレイ中に進行するのが難しいことが明らかになる可能性がある。その場合、ゲームアプリケーションのその部分をシナリオとして特定し、その結果、その特定されたシナリオのゲームプレイ中に訓練状態データを収集することができる。
【0065】
306で、本方法は、訓練状態データの成功基準を定義することを含む。例えば、成功基準は、AIモデルを訓練する目的で、深層学習エンジンによって使用され得る。具体的にいえば、AIモデルを訓練する際に、層のノード間の相互関係を定義する(例えば、異なる層の2つのノード間の相互関係を定義する重みを絞り込むなど)ために成功基準を適用してもよい。例えば、成功基準を使用して、類似している訓練状態データを区別し、シナリオを通じてゲームアプリケーションをプレイする方法またはプレイする方法を選択する方法についてのいくらかの洞察を得ることができる。
単純化した例では、シナリオはタスク(例えば、ボスを倒す、障害物を回避するなど)の達成を伴うことがあり、2つの訓練データのセットがそれぞれ、シナリオを通じてプレイする方法(例えば、コントローラの入力、戦略など)のプロセスを説明または概説する。成功基準は、どの訓練状態データのセットが、タスクの達成をより成功させるかを判断するのに利用され得る。ゲームアプリケーションのシナリオ、及び/またはゲームアプリケーションのシナリオのゲームプレイに関連するAIモデルを訓練する目的で、より成功した訓練状態データのセットは、それほど成功しなかった他の訓練状態データのセットよりも(例えば、AIモデルのノード間の相互関係を定義する際に)重く重み付けされ得る。
【0066】
308において、本方法は、訓練状態データ及び成功基準を深層学習エンジンに提供することにより、シナリオに対してAIモデルを訓練することを含み、訓練されたAIモデルは、複数の入力に複数の出力を提供する。訓練状態データはシナリオに関連しているので、AIモデルは、1つ以上の成功基準に基づいて、ゲームアプリケーションのシナリオ、及び/またはシナリオのゲームプレイに関する全てを学習するように訓練される。そのようにして、AIモデルにシナリオの後続のゲームプレイに関連する入力のセット(例えば、ゲームの状態、コントローラ入力など)が与えられると、AIモデルは、そのゲームプレイに有益となり得る出力を提供することができる。
一実施形態では、出力は、そのゲームプレイの成功度を示し得る。つまり、ゲームプレイの現在の状況(例えば、ゲーム状態)が与えられると、AIモデルは、そのゲームプレイがどこに向かっているのかを予測し、対応するシナリオの進行においてそのゲームプレイがどの程度成功するかを予測することができる。出力の(例えば、分析器140による)さらなる分析と同様に、入力のセット(例えば、現在及び過去の入力のセット)の分析も、入力のセットへの応答を提供し得る。具体的には、出力として、かつ入力のセットに応答して、アクションが行われ得る。例えば、入力のセットが、ゲームプレイがシナリオの進行において失敗する方向に導いていることを(例えば、AIモデルの出力を介して)示す場合、AIモデルからの出力は、ゲームアプリケーションのシナリオのゲームプレイ中に遭遇した状況を、どのように進行させるかに関するレコメンデーションまたはアドバイスを提供するために(例えば、分析器140によって)使用されてもよい。
ゲームプレイがリモートプレーヤに関連付けられている場合、ゲームプレイ中に入力のセットが訓練済みAIモデルに自動的に提供されるように、リモートプレーヤから何ら促すことなく、レコメンデーションが提供されてもよい。レコメンデーションは、プレーヤが、シナリオをうまく進めること、シナリオを効率的に進めること、シナリオをプレイして最多の資産を獲得すること、ゲームアプリケーションの後半のステージまたはシナリオを進めるための最良のチャンスをプレーヤに与えるシナリオのタスクを達成することなどに役立ち得る。他の実施形態では、レコメンデーションはリモートプレーヤの要求を受けて提供され、したがって要求に応答して、入力のセットがAIモデルに提供される。
【0067】
図3B-1及び図3B-2は、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してAIモデルを訓練するためのプロセスを示すデータ流れ図を示す。上記のとおり、AIモデルは、入力(例えば、ゲームアプリケーションの状況、つまりゲーム状態などに関連するもの)が与えられたときに、AIモデルを使用して、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供する(例えば、支援を提供するなど)ことができるように、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関する知識を多く有している。図3B-2のプロセスは、下記のように、図3B-1のモデラ120によって実行される機能と比較した場合、モデラ120’によって実行される異なった機能を提供する。
【0068】
図3B-1及び図3B-2に示すように、ゲームアプリケーションの複数のゲームプレイ310(例えば、310a~310n)が示されている。ゲームプレイをサポートするために、ゲームアプリケーションのインスタンスが実行されている場合があり、インスタンスは、上記のとおり、ゲームクラウドシステムなどのバックエンドサーバ上で実行される。ゲームアプリケーションは、興味深い1つ以上のシナリオを含み得る。図に示すように、ゲームアプリケーションは、第1のシナリオ(S-1)、第2のシナリオ(S-2)、及び第3のシナリオ(S-3)を含む。例えば、シナリオは、開発者によって難しいと評価され、またはゲームアプリケーションのゲームプレイを通じて見いだされる場合がある。他の例では、シナリオは、プレーヤに人気のあるゲームアプリケーションの興味をかき立てる部分であってもよく、したがってプレーヤは、そのシナリオについて全てを知りたがることになる。
【0069】
一実施形態では、複数のゲームプレイ310は、複数のプレーヤP-1~P-nによって、それぞれのクライアントデバイスを介して操作される。別の実施形態では、複数のバックエンドサーバを使用してAIモデルを自己訓練する目的などのために、複数のゲームプレイ310を自動的に制御することができる。図示するように、ゲームプレイは、様々なゲームプレイデータ320a~320nをもたらす。ゲームプレイデータは、上記のとおり、ゲーム状態データを含むメタデータを含み得る。例えば、ゲーム状態データは、特定のポイントでのゲームの状態を記述するものであり、コントローラ入力データを含むこともある。さらに、ゲームプレイデータ320a~320nには、メタデータ及び/または訓練状態データを抽出する目的で、ゲームプレイ310a~310nの記録が含まれてもよい。
【0070】
図3B-1及び図3B-2に示すように、キャプチャエンジン340は、ゲームプレイデータ320a~320nのほか、成功基準330など、提供され得る他のデータも取り込む。上記のとおり、成功基準は、AIモデルを訓練する目的で、類似した訓練状態データを区別するために使用されてもよい。具体的には、成功基準は、AIモデル内の層のノード間の相互関係を定義することを含むように、AIモデルを訓練するために使用され、ノードは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する特徴(例えば、コントローラ入力、ゲーム状態など)を定義し得る。
一例として、成功基準は、AIモデルを通る1つ以上の経路(1つ以上の層のノード間)の重みを定義するなど、どの訓練状態データのセットがより成功するかを判断するのに利用されてもよい。そのようにして、AIモデルは、シナリオを通じてゲームアプリケーションを、どのようにプレイするか、またはプレイする方法をどのように選択するかについての洞察(例えば、戦略)を与えるのに使用することができる。取り込まれたデータは、訓練状態データ345として深層学習エンジン190に提供される。
【0071】
図3B-1及び図3B-2に示すように、深層学習エンジン190は、1つ以上の成功基準に基づいた訓練状態データ345を使用してAIモデルを訓練及び/または構築するように構成されたモデラ120を含む。モデラ120は、様々なニューラルネットワーク(例えば、畳み込み型、リカレント型など)を介して人工知能を実装し得る。モデラ120は、説明のための例として、深層学習、強化学習、教師あり学習、教師なし学習、(例えば、成功基準、成功メトリクスなどの使用による)報酬ベースの学習、増分学習などを含む、様々なアルゴリズムによってAIを実装し得る。
深層学習エンジン190は、前に図1Bで紹介した。具体的には、モデラ120は、AIモデルを構築する際に、入力のセット(例えば、ゲームアプリケーションのコンテキストまたは状況(ゲーム状態)を定義し得る特徴)を与えられて予測を行う特徴依存ルールのセットを識別する。予測には、シナリオをプレイする際に、所与の入力のセットがどの程度成功するかが含まれ得る。そのようにして、AIモデルは、入力のセットが与えられたときに取るべきアクションを決定するために使用することができる。
【0072】
図3B-1及び図3B-2に示すように、深層学習エンジン190のモデラ120は、訓練状態データの複数の特徴を識別するように構成された特徴識別エンジン350を含む。対応するシナリオのゲームプレイごとに、訓練状態データには特徴が含まれている。例えば、ゲームプレイの特定のポイントで、訓練状態データのインスタンスが収集されることがあり、訓練インスタンスは、1つ以上の特徴(例えば、訓練インスタンスの特徴のセット)を含み、特徴は、変数、パラメータ、コントローラ入力、ゲーム状態メタデータなどを含み得る。
【0073】
したがって、特徴識別エンジン350は、データから特徴を識別及び/または抽出する目的で、訓練状態データを解析するように構成される。特徴識別エンジン350はまた、特徴を学習するように構成され得る。深層学習エンジン190を介した各訓練サイクルでは、訓練インスタンス(例えば、特徴のセット)が入力として提供され、訓練インスタンスは、シナリオのゲームプレイにおける特定のポイントに関連付けられ得る。そのようにして、深層学習エンジン190は、ゲームアプリケーション、ゲームアプリケーションのシナリオ、及び/またはゲームアプリケーションのシナリオのゲームプレイについて、段階的に学習するように構成される。
【0074】
図3B-1に示すように、モデラ120は、特徴と出力(例えば、予測、アクションなど)との間の関係を定義するルールを学習するように構成されており、特徴は、訓練されているAIモデル160の1つ以上の階層レベルに位置する1つ以上のノード内で定義されてもよい。モデラ120は、所与のデータの入力セットがAIモデルの特定の出力につながるように、層間の特徴を結び付けることにより、AIモデル160を構築する。したがって、モデラ120は、様々な層における特徴を結び付けるルールによって定義されるように、AIモデル160の特徴及び/またはノードを生成するように構成されてもよい。例えば、ルールは、入力と出力との間で、AIモデルを介して1つ以上の特徴またはノードを(例えば、重みを含む関係パラメータを使用して)結び付けることができる。つまり、1つ以上の結び付けられた特徴がルールを作る。AIモデル160は、訓練され、それぞれがラベル付けされたまたは分類された出力に対応するルールのセットを含む。モデラ120の機能のより詳細な記述が、以下の図3B-2に提供される。
【0075】
具体的には、図3B-2に示すように、モデラ120では、特徴識別エンジン130によって入力データから識別及び/または抽出された識別された特徴は、特徴と出力(例えば、予測、アクションなど)との間の関係を定義するルールを学習するように構成された分類器360に配信されてもよい。特徴は、訓練中のAIモデルの1つ以上の階層レベルに位置する1つ以上のノード内で定義され得る。各特徴は、他の層の1つ以上の特徴と結び付けられていてもよく、1つ以上の関係パラメータが、第1の特徴とAIモデルの他の層の他の特徴(例えば、第2の特徴、第3の特徴など)との間の相互接続を定義する。
【0076】
例えば、図3B-2に示すように、分類器360は、特徴のセット(ルールを作るセット)が属するラベルまたは出力がどれであるかを判定するように構成されている。つまり、ルールは、AIモデル内のノード(すなわち、ゲームアプリケーションのシナリオのゲームプレイの訓練インスタンスまたはポイントを記述するノード)として定義され得る所与の特徴のセットを、分類器360によってラベル付けされる特定の出力に結び付ける。例えば、ルールは、入力と出力との間で、AIモデルを介して1つ以上の特徴またはノード(1つ以上の関係パラメータを介して定義された特徴間のリンクまたは相互関係)を結び付けることができる。分類器は、AIモデル160の特徴及び/またはノードを生成するように構成され得、特徴及び/またはノードは、上記のように、ルールを定義するために使用される。出力は、分類器360によって生成され、割り当てられ、及び/または決定されたラベルに関連付けられてもよい。
【0077】
より具体的には、学習されたルールは、ゲームアプリケーションのシナリオのゲームプレイに関連する所与の入力及び/または入力データのセットに対する(例えば、出力ノードにつながるAIモデルのノードまたは特徴を介した)学習された経路及び/または学習されたパターンであり得る。例えば、1つ以上の結び付けられた特徴及び/またはノードがルールを作る。訓練されたAIモデルは、ルール及びラベル(すなわち、出力)のセットになっている。
教師あり学習環境では、出力が所与の特徴のセットに対して予め決められており、深層学習エンジンは、特徴のセットを(例えば、ラベルを介して)出力に結び付けるルールを学習する。教師なし学習環境では、所与の特徴のセットが自動的に出力に結び付けられることはなく、ルールは、他の類似した特徴のセットに関連する類似性、またはデータポイントのクラスタを探すことによって学習され得る。訓練用に定義された成功基準によっては、クラスタが他のクラスタよりも優先されることがある。いずれにしても、入力された特徴のセットに対して既存のルールが適合されることもあれば、あるいは入力された特徴のセットに対して(既存の1つまたは複数のルールに類似しているか、あるいは既存の1つまたは複数のルールを発展させたものである可能性が高い)新しいルールが生成されることもある。
AIモデルの学習されたルールに従って結果として得られる出力は、ゲームアプリケーションのシナリオをプレイするために使用される際に、対応する入力された特徴のセットが、どの程度成功し得るかを予測し得る。さらに、AIモデルからの出力(及び任意選択で、入力された特徴のセット)は、(入力されたデータのセットによって示されるゲームアプリケーションの状況またはゲーム状態によって決定される)シナリオのゲームプレイにおけるその特定のポイントに対して取るべき一連のアクションを決定するために(例えば、分析器を介して)使用されてもよい。
例えば、アクションには、レコメンデーションとして提案されることになるコントローラ入力のセットや、入力に応答するためのゲームアプリケーション用の制御コマンドなどが含まれ得る。所与の特徴のセット、または類似の特徴のセットに対して、1つ以上のルールが生成されることがある。対応する成功基準または報酬基準に応じて、所与の特徴のセットまたは類似の特徴のセットに対して1つのルールが優先される場合がある。所与の特徴のセットについては、最も成功した出力を、その所与の特徴のセットに対して選択してもよい。つまり、所与の特徴のセット(例えば、入力)では、最も成功したルール(及び出力)が選択されて、訓練されたAIモデル160内で使用されることになり、このことが増分学習の根拠となる。
【0078】
簡単な例では、成功基準は獲得したポイントによって定義することができ、最も多くのポイントを生成する経路(例えば、結び付けられたラベル)がより成功したことになる。別の例では、成功基準は、図3C-1でさらに記述されるように、プレーヤキャラクタまたは対戦相手のライフバーのレベルに関連し得る。他の成功基準を、プレーヤに基づいて定義してもよい。例えば、1つ以上の成功基準によってエキスパートを特定することにより、そのエキスパートの対応するゲームプレイを訓練状態データとして使用するターゲットにすることができ、一般に、ゲームアプリケーションのシナリオのゲームプレイの所与の状態または状況に対して取るべき最善のアクションを学習するために使用することができる。そのようにして、プレーヤのスキルレベルを決定するために成功基準を定義することができる。これには、プレーヤの応答時間の速さ、プレーヤが1つ以上のターゲットを狙う際の正確さ(例えば、一般に、熟練したプレーヤはトリガが速く、1つのターゲットから別のターゲットに素早く、決定的かつ正確に移動する)、コントローラ入力間の周期の速さなどを含めることができる。
【0079】
図3B-1及び図3B-2に示すように、モデラ120は、学習された経路及び/または学習されたパターン(例えば、AIモデルの結合ラベル)を、ゲームアプリケーションのシナリオのゲームプレイに関連する入力及び/または入力データの所与のセットに結び付ける、訓練されたAIモデル160を構築及び/または出力する。AIモデル160は、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する1つ以上の機能性を提供するために後で使用することができる。
つまり、プレーヤによる後続のゲームプレイの状況を示し得る入力のセットが与えられると、訓練されたAIモデル160の結果として得られる出力を(例えば、分析器を介して)使用して、対応する入力データのセットによって定義されるシナリオのゲームプレイにおけるその特定のポイントに対して取るべき最善の一連のアクションを、予測し、及び/または決定することができる。
例えば、AIモデル160が訓練された後に、プレーヤが、ゲームアプリケーションのシナリオをプレイしている可能性がある。プレーヤはまた、シナリオを進めることに困難を感じており、そのことがAIモデルの出力に反映されている可能性がある。新規及び後続の入力状態データ(例えば、ゲーム状態)は、そのプレーヤのゲームプレイにおける(困難が経験される)その特定のポイントに関連する任意のデータに関連し得る。そのシナリオの入力状態データは、受信され、深層学習エンジン190を介してAIモデルに提供され、AIモデルが、ゲームアプリケーションの所与の状況を与えられてシナリオをプレイする際に、ゲームプレイがどの程度成功するようになるかを出力として予測してもよい。
AIモデルからの出力を、分析し、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を実行するために使用することができる。例えば、シナリオのゲームプレイにおける特定のポイントに対して取るべき最善の一連のアクションを決定するために、出力を分析してもよい。出力に基づいてアクションを実行することができる。例えば、訓練されたAIモデル160は、プレーヤに、彼または彼女のゲームプレイを進めるためのレコメンデーションを提供することができる。
【0080】
所与の入力されたデータのセットに対するAIモデル160の出力に基づいて、他の機能性もまた決定され、生成されることもあり、その機能性は出力またはアクションの形で顕在化される。つまり、シナリオの最初のゲームプレイ中に入力状態データを受け取り、深層学習エンジンへの入力として提供する。深層学習エンジンは、入力状態データにAIモデルを適用する。AIモデルの出力の分析に基づいてアクションが実行され、アクションは、入力状態データに応答して実行される。図4A図4Bは、ゲームアプリケーションの所与のゲームプレイに対するAIモデルの適用を示す。図5A図5Fは、予め定義された目的に応じて実行し得る種々のアクションまたは応答の様々な説明図を提供する。
具体的には、深層学習エンジン190を介して実装されたAIモデルは、所与の入力状態データを、訓練されたAIモデル内で定義された1つ以上のルール(各ルールは、結び付けられた、または相互接続されたノード及び/または特徴を提供する)と照合する。各ルールは出力に関連付けられている。ルールを生成するために成功基準を適用することができる。さらに、分析器140は、出力を受け取り、追加の分析を実行して、対応する入力データに関連して適切なアクションを決定する。例えば、ルールが、所与の入力状態データのセットの成功基準に関して満たされた場合、対応するアクションが特定され、及び/または実行され得る。
【0081】
図3C-1は、本開示の一実施形態による、ゲームアプリケーションのゲームプレイのスクリーンショット300Cであり、ゲームアプリケーションのプレイ方法を理解するAIモデルを訓練するために使用され得る成功基準の一種を示す。具体的には、プレーヤP-1がゲームプレイを制御する。図示するように、スクリーンショット300Cは、クラトス391と敵396との戦闘の正面像を示す。「ゴッドオブウォー」ゲームアプリケーションでは、クラトスはギリシャ神話のスパルタ戦士であり、戦争の神アレスを殺害する任務を負う。
ゲームプレイでは、プレーヤはクラトス391を操作することができる。スクリーンショット300Cに関連するゲームプレイからの訓練状態データ320aが、先に説明したAIモデルを訓練する目的で、深層及び/または機械学習エンジン190に供給される。さらに、深層及び/または機械学習エンジン190には成功基準330が供給され、成功基準は、AIモデルを訓練するために深層学習エンジン190によって使用される。例えば、成功基準は、(経路がAIモデルのノードをトラバースする)AIモデルを通る経路を区別するために使用することができる。実施形態では、AIモデルの訓練に使用するために、1つ以上の成功基準を定義してもよい。例えば、成功基準には、最も多くのポイントを獲得すること、最も多くの資産または最も強力な資産もしくは重要な資産を獲得することなどが含まれ得る。
【0082】
一例では、成功基準330は、ゲームプレイ中に敵396のライフバー397が低くなるかどうかによって定義されてもよく、そのライフバーは、対応するキャラクタの健康状態を示している。また、ライフバー392は、ゲームプレイ中のクラトス391の健康状態を示している。図示するように、敵のライフバー397は極端に低くなっており、ゲームプレイが成功しているか、または成功度が高いことを示し得る。別の例では、成功基準は、より洗練されたものであってもよく、敵396のライフバー397がどれだけ早く使い尽くされるかによって定義される。
ライフバー397がすぐに使い尽くされる場合、これは、ゲームプレイが高度なスキルを持つプレーヤによって操作されていることを示す。例えば、高度に熟練したプレーヤは、敵397との戦い方を理解しており、敵396を倒すために使用されるコントローラ入力のシーケンスを知っており、それらのシーケンスを迅速かつ正確に(例えば、逸脱することなく)実施するスキル及び/または能力を有している。AIモデルの訓練時には、ライフバーがどれだけ早く使い尽くされるかを重視した成功基準を用いることで、成功した入力とそうでない入力とを区別し、別のプレーヤによって実施された場合に成功するであろうゲームプレイの特定の状況またはゲーム状態の間中に使用すべきコントローラの入力シーケンスを特定するのに役立ち得る。
【0083】
図3C-2は、本開示の一実施形態による、複数のゲームプレイからの訓練状態データの収集を説明する図であり、そのゲームプレイをサポートする複数のサーバ上で複数のインスタンスが実行されている。ゲームアプリケーションの複数のゲームプレイ310(例えば、310a~310n)を示す。複数のゲームプレイ310は、複数のプレーヤP-1~P-nによって、それぞれのクライアントデバイスを介して操作される。図示するように、ゲームプレイは、様々なゲームプレイデータ320a~320nをもたらし、その中から抽出されたデータを、訓練状態データ345として使用し得る。
ゲームプレイデータは、上記のとおり、ゲーム状態データを含むメタデータを含み得る。ゲームプレイのそれぞれは、ゲームアプリケーションのシナリオ1(S-1)をプレイしていて、各ゲームプレイはユニークであり、ユニークな結果をもたらす。つまり、各ゲームプレイは、シナリオS-1の進行の成功度を測定することに関連付けられ得る。その成功度は、成功基準330を用いて部分的に測定されてもよく、その成功基準330は、上記のとおり、AIモデル160を訓練するために、深層及び/または機械学習エンジン190のモデラ120によって使用され得る。例えば、成功基準は、AIモデルを訓練する目的で、類似した訓練状態データを区別するために使用されてもよい。
【0084】
システム100A及びシステム200Bの様々なモジュールの詳細な説明と共に、流れ図400Aは、本開示の一実施形態による、1つ以上の成功基準に基づいて、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイについて全てを知っている(例えば、ゲームアプリケーションのプレイ方法を理解している)AIモデルを適用するための方法を開示しており、このAIモデルは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される。流れ図400Aは、上記のバックエンドサーバ内(例えば、深層学習エンジン190と組み合わせたゲームクラウドシステム201内)で実施されてもよい。
【0085】
具体的には、410において、本方法は、ゲームアプリケーションのシナリオの複数のゲームプレイからAIモデルを訓練することを含む。例えば、AIモデルは、ゲームアプリケーションのシナリオをプレイするために、シナリオの複数のゲームプレイから収集された訓練状態データと、ゲームプレイのそれぞれの関連した成功基準とを用いて訓練される。つまり、AIモデルは、ゲームアプリケーションの複雑な細部、及び/またはゲームアプリケーションのプレイの複雑な細部、またはゲームアプリケーションのシナリオを学習するように訓練される。
【0086】
一実施形態では、AIモデルは、ゲームアプリケーションの複数のゲームプレイにわたって収集された訓練状態データを用いて訓練され、この複数のゲームプレイは、複数のクライアントデバイスを介して複数のプレーヤによって操作されている。例えば、複数のサーバが、ゲームアプリケーションの複数のインスタンスを実行している場合があり、これらのインスタンスが複数のゲームプレイをサポートしている。訓練状態データは、複数のサーバで収集され、訓練状態データは、シナリオの、対応するゲームプレイに関連付けられている。例えば、訓練状態データには、上記のとおり、ゲームプレイに関連付けられたメタデータが含まれていて、コントローラの入力、ゲームプレイ中の特定のポイントでのゲームアプリケーションの状態及び/または状況を定義するゲーム状態、ゲームプレイの進捗、シナリオの結果(例えば、成功または失敗)、ユーザプロファイル情報などが含まれ得る。つまり、訓練状態データには、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイの理解に関連する可能性のある何らかのデータが含まれる。
【0087】
さらに、訓練状態データに対して、1つ以上の成功基準が定義されている。例えば、成功基準は、ゲームアプリケーションのプレイ方法を理解するAIモデルを訓練するために使用される。例えば、成功基準は、AIモデルのノード間の有利なリンクを定義するために、または所与の入力データのセットに対して、AIモデルのノードを通る有利な経路を定義するために使用されてもよい。成功基準と訓練状態データとを深層学習エンジンに提供して、AIモデルを訓練する。
【0088】
420において、本方法は、シナリオの第1のゲームプレイ中に、第1の入力状態データを受信することを含む。一実施形態では、第1のゲームプレイは、AIモデルを訓練した後に行われる。つまり、第1のゲームプレイは、AIモデルの訓練には使用されない。別の実施形態では、第1のゲームプレイがAIモデルの訓練(例えば、自己訓練モード)に使用されるように、訓練中に第1のゲームプレイが発生してもよい。さらに別の実施形態では、第1のゲームプレイは、最初はAIモデルの訓練に使用することができず、主に第1の入力状態データを与えられて取るべき適切なアクションを決定するために使用される。その後、第1のゲームプレイ(例えば、第1の入力状態データ)を使用して、追加の訓練によってAIモデルを改良することができる。
【0089】
430において、本方法は、第1の入力状態データをAIモデルに適用して、出力を生成することを含む。一実施形態では、出力は、第1のゲームプレイに対するシナリオの成功度を示してもよい。つまり、出力により、第1のゲームプレイが、シナリオの進行においてどの程度成功することになるかが予測され得る。
【0090】
440において、本方法は、予め定義された目的に基づいて、出力の分析を行うことを含む。さらに、入力のセット(例えば、現在及び過去の入力のセット)を分析することもできる。予め定義された目的に応じて、分析により、(入力されたデータのセットによって示されるゲームアプリケーションの状況またはゲーム状態によって決定される)シナリオの対応するゲームプレイにおける特定のポイントに対して行うべきアクションを生成することができる。
例えば、予め定義された目的が支援を提供することである場合、分析により、ゲームアプリケーションのシナリオのゲームプレイ中に遭遇した状況を、どのように進行させるかに関するレコメンデーションまたはアドバイスが生成され得る。予め定義された目的が指導を提供することである場合、分析により、プレーヤの弱点を判定し、その弱点に対処するためのチュートリアルセッションをプレーヤに提供してもよい。他にも、ゲームサポートの提供、ゲームプレイの同等性の提供、AIモデルの自動訓練、ゲームアプリケーションの欠陥の発見、ゲームアプリケーションの自動テストなど、予め定義された目的がサポートされている。
【0091】
したがって、450において、本方法は、分析された出力に基づいて、予め定義された目的を達成するためにアクションを実行することを含む。図5A図5Fは、予め定義された目的に応じて実行し得る種々のアクションまたは応答の様々な説明図及び例を提供する。
【0092】
図4Bは、本開示の一実施形態による、ゲームアプリケーションのプレイ方法を理解するように構成されたAIモデルを適用するために構成された、図2BのAIプロセッサエンジン210であって、このAIモデルが、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される、図2BのAIプロセッサエンジン210のブロック図である。図示するように、AIプロセッサエンジン210は、AIモデル160を訓練する、及び/または適用するように構成されている深層学習エンジンまたは機械学習エンジン190を含み、AIモデル160は、所与の入力に対して出力を提供するように構成されている。AIプロセッサエンジン210はまた、AIモデル160からの出力を使用して、入力に対する応答を決定するための分析器を含む。
【0093】
具体的には、入力状態データ405が、AIモデル160を実装するように構成された深層学習エンジン190への入力として提供される。入力状態データには、ゲームアプリケーションのゲームプレイに関連付けられていて、上記のとおり、コントローラ入力、ゲーム状態データ、ユーザデータ、成功基準などが含まれ得る。入力状態データ405は、いくつかの実施形態では、AIモデル160が訓練された後に提供されてもよい。他の実施形態では、入力状態データ405は、AIモデル160の訓練(例えば、AIモデルの自己訓練)中に提供されてもよい。上記のとおり、AIモデル160は、所与の入力状態データ405に対して出力173を生成する。例えば、ゲームアプリケーションのシナリオを進めていく上で、ゲームプレイがどの程度成功し得るかを出力することができる。
出力は、ゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために、分析器140によって分析され得る。分析器140により、上記のとおり、予め定義された目的(例えば、指導、支援の提供など)に応じて、適切なアクションまたは応答が決定される。つまり、AIモデル160は、シナリオ中にゲームプレイを成功裏に導くのに必要なものを判定するために、分析器140によって使用され得る。したがって、分析器140は、所与の入力状態データに対する予め定義された目的に応じて、アクションを決定し、実行し得る。そのようにして、分析器は、AIモデル160を利用して、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供することができる。
【0094】
図示するように、分析の一部として、分析器140は、1つ以上の機能を実行してもよい。例えば、分析器140のプレーヤプロファイラ144aは、ゲームアプリケーションをプレイするプレーヤのプロファイリングを行う(例えば、プレーヤのスキルレベルを判定する)ように構成される。分析器140の弱点特定器141aは、プレーヤのゲーム能力の弱点を特定するように構成される。分析器140の入力制御シーケンス構文解析器147aは、ゲームプレイを制御するためにプレーヤによって使用されるコントローラ入力のシーケンスを決定するように構成される。
分析器140のシーケンスマップ及び/またはルート追跡器148aは、ゲームプレイの進行を追跡して、ゲーム環境中の進行を追跡することを含むように構成される。例えば、追跡器148aは、ゲーム環境で採用されたルートを追跡する、またはゲーム環境のマップを構築する、またはゲームアプリケーション中の進捗を示すゲームプレイのノードマップを構築するように構成される。所与の入力状態データ405に対するAIモデルの出力の分析を提供する、さらに他のモジュールがサポートされている。
【0095】
分析器140は、所与の入力状態データ405に応答して決定された出力の分析に応答して、アクション生成器170によるアクションを決定して実行するように、さらに構成される。アクションは、予め定義された目的に応じて決定され、実行される。例えば、アクションは、ゲームアプリケーションをプレイするプレーヤにサービスを提供し得る(例えば、ゲームアプリケーションをプレイするプレーヤのプロファイルを提供する、プレーヤによるゲームアプリケーションのゲームプレイ中に、プレーヤにレコメンデーションを提供する(レコメンデーションは、ユーザプロファイルを考慮して構造化されていてもよい)、プレーヤの弱点を見つける、それらの弱点に対処するサービスを提供する、プレーヤを訓練する、プレーヤにボットの対戦相手を提供する、プレーヤのゲームプレイを引き継ぐ、など)。
アクションはまた、ゲームアプリケーションの欠陥の発見、マルチプレーヤオンラインゲームなどのゲームアプリケーションで互いに競争するプレーヤプロファイルを用いた対等なチームの構築、オートプレイによるAIモデルの自動学習、ゲームアプリケーションのゲーム環境を探索して欠陥を発見するなどのサービスを、ゲーム開発者または他のエンティティに提供してもよい。図5A図5Fは、予め定義された目的に応じて実行し得る種々のアクションまたは応答の様々な説明図を提供する。
【0096】
具体的には、図5Aは、本開示の一実施形態による、ゲームアプリケーションをプレイするプレーヤにレコメンデーションを提供するためのプロセスであって、このレコメンデーションが、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたAIモデル160によって提供されるプロセスを示すデータ流れ図を示す。ゲームアプリケーションのゲームプレイ501xを示す。ゲームプレイは、対応するクライアントデバイスを介してプレーヤP-xによって制御され得、上記のとおり、ストリーミングゲームサービス(例えば、クラウドゲームシステム)のバックエンドサーバで、ゲームアプリケーションのインスタンスが実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、AIモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ501xは、シナリオS-1中に発生している。
【0097】
ゲームプレイ501xからの入力状態データ505xが、訓練されたAIモデル160の出力を分析するように構成された分析器140に提供され、AIモデル160は、深層学習エンジン190を介して(学習フェーズではなく、適用フェーズにおいて)実装される。入力状態データ505xは、AIモデル160が訓練された後に受信され、そのため、上記のAIモデルの訓練に使用された訓練状態データの一部ではないことがある。AIモデル160は、出力173を提供するように構成されていて、分析器140は、出力173の分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【0098】
具体的には、分析器140のアクション生成器170は、プレーヤによるゲームアプリケーションのゲームプレイ中に、プレーヤにレコメンデーションを提供するように構成されたレコメンデーションエンジン145aを含む。例えば、予め定義された目的が、分析器140を介して実施されるゲームサポートをプレーヤP-xに提供することであってもよい。レコメンデーションは、プレーヤがゲームアプリケーションの特定のシナリオをうまく通過するのが困難な場合など、ゲームプレイの状況(例えば、ゲーム状態)に応答して提供されてもよい。一実施形態では、分析器140は、第1の入力状態データ、または第1の入力状態データ内の特徴が、対応する成功基準を満たさないと判定することにより、プレーヤが苦戦していると判定することができる。
成功基準は、ゲームプレイがどの程度成功する結果になるのか、特にゲームプレイのその部分が、どの程度成功する結果になるのかについての指標を提供するものであり得る。例えば、成功基準は、シナリオ中に、どれだけポイントが蓄積されたかを示すことであり得る。分析器140が、AIモデル160の出力から、第1の入力状態データが成功基準を満たさないと判定した場合には、プレーヤP-xのクライアントデバイスに対して、アクションとして、レコメンデーション515を提供してもよい。
【0099】
一実施形態では、レコメンデーションは、プレーヤP-xのユーザ/プレーヤプロファイル510xを考慮する(例えば、プレーヤのスキルレベルを考慮する)場合があり、プレーヤプロファイラ144aが、訓練されたAIモデル160からの出力データ及び/または入力状態データを分析して、シナリオに対するユーザプロファイル510x(例えば、シナリオ中にプレーヤがゲームアプリケーションに対してどのように反応するか、スキルレベル、などのプレーヤ特性メトリクス)を決定してもよい。
つまり、レコメンデーションは、プレーヤP-xのスキルを反映している。他の実施形態では、ユーザプロファイル510xは、対象のゲームアプリケーションだけでなく、他のゲームアプリケーションの過去のゲームプレイを通じて決定されてもよい。例えば、ユーザプロファイル510xが、プレーヤがゲームのエキスパートであることを示す場合、プレーヤP-x向けのレコメンデーション515では、あまり詳細な説明をせずに、小さなヒントを提供するようにしてもよい。その一方で、ユーザプロファイル510xが、プレーヤP-xがゲームの初心者であることを示す場合、レコメンデーション515では、プレーヤが従うための詳細な指示を提供してもよい。
【0100】
一実施形態では、レコメンデーション515は、プレーヤP-xがオートプレイ機能を利用したいかどうかを尋ねるクエリを含んでもよい。イエスの場合、タスクオートプレイエンジン145bは、プレーヤP-xのゲームプレイを引き継ぐように構成される。そのようにして、タスクオートプレイエンジン145bは、ゲームアプリケーションにおけるシナリオまたはシナリオ内のタスクを自動的に(かつ成功裏に)実行する。
【0101】
図5Bは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたAIモデルによって判断されたプレーヤプロファイルを使用して、ゲームアプリケーションをプレイするプレーヤのチームのバランスをとるプロセスを示すデータ流れ図を示す。ゲームアプリケーションの複数のゲームプレイ501(例えば、501a~501n)を示す。
ゲームプレイは、複数のプレーヤP-1~P-nによって、対応するクライアントデバイスを介して操作され得る。上記のとおり、ゲームアプリケーションのインスタンスは、ストリーミングゲームサービス(例えば、クラウドゲームシステム)のバックエンドサーバ上で実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、AIモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ501a~501nは、例えば、1つ以上のシナリオS-1、S-2、及びS-3を通じて発生していることがある。
【0102】
ゲームプレイ501a~501nからの入力状態データ505a~505nが、訓練されたAIモデル160の出力を分析するように構成された分析器140に提供され、AIモデル160は、深層学習エンジン190を介して(学習フェーズではなく、適用フェーズにおいて)実装される。一実施形態では、複数の入力状態データ505a~505nは、ゲームアプリケーションのシナリオの第2の複数のゲームプレイ中に受信され、ゲームプレイは、AIモデルを訓練した後に実施され得る。
第2の複数のゲームプレイは、複数のプレーヤによって操作され、複数の入力状態データは、複数のプレーヤの複数のプレーヤ特性メトリクスを含む。複数の入力状態データがAIモデルに適用されて、シナリオの第2の複数のゲームプレイに対する複数の成功度を示す複数の出力が生成される。さらに、複数の出力が分析されて、複数のプレーヤ特性メトリクスに基づいて複数のプレーヤプロファイルが決定される。AIモデル160は、出力を提供するように構成されていて、分析器140は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。具体的には、分析器140は、予め定義された目的を達成するために、複数のプレーヤから、対応するプレーヤプロファイルに基づいて、バランスの取れたプレーヤのチームを構築するように構成される。
【0103】
分析中、分析器140は、プレーヤプロファイラ144aなどによるユーザプロファイリングを行ってもよい。具体的には、訓練されたAIモデル160からの出力は、ゲームアプリケーションをプレイしているプレーヤP-1~P-nのプロファイルを提供するように構成されたプレーヤプロファイラ144aに提供される。プレーヤプロファイル510a~510nは、ゲームアプリケーションの特定のシナリオのゲームプレイに限定されてもよい(例えば、プロファイルは、対応するプレーヤが、シナリオ中にゲームアプリケーションに対して、どのように反応するか、対応するプレーヤのスキルレベルなどが決定または予測される)。
例えば、プレーヤプロファイルは、複数のプレーヤ特性メトリクスに基づいて定義されてもよく、各プレーヤプロファイルは、1つ以上の対応するプレーヤ特性メトリクスを含む。入力状態データは、プレーヤによるゲームアプリケーションのゲームプレイ中に受け取ることができる。入力状態データは、複数のプレーヤの複数のプレーヤ特性メトリクスを含む。入力状態データはまた、上記のとおり、AIモデル160に適用されて出力が決定される。プレーヤプロファイラ144aは、出力173及び/または入力状態データ505a~505nを分析して、対応するプレーヤの対応するプレーヤプロファイルを決定する。
例えば、対応するプレーヤプロファイルは、訓練されたAIモデルへの入力として提供された対応するプレーヤ特性メトリクスに基づいている。例えば、プレーヤ特性メトリクスには、プレーヤの正確さ、または対応するプレーヤによる入力制御データシーケンスの生成速度、またはシナリオ内のイベントを受けたときの対応プレーヤの反応時間、または対応プレーヤの一貫性、または第1のターゲットと第2のターゲットとの間の対応プレーヤの遷移時間などが含まれ得る。他の実施形態では、対応するプレーヤプロファイルは、上記のとおり、対象のゲームアプリケーションだけでなく、他のゲームアプリケーションの過去のゲームプレイを通じて決定されてもよい。
【0104】
また、分析器140のアクション生成器170は、予め定義された目的に応じて、プレーヤプロファイルを用いて、公平にバランスの取れたチーム(例えば、ゲームアプリケーションにおいて互いに競争するチーム)を構築するように構成されたチームバランサモジュール144bを含む。例えば、予め定義された目的が、(例えば、多人数同時参加型オンラインゲームアプリケーション(MMO)において)分析器140を介して実施されるゲームプレイの同等性を提供することであってもよい。
例えば、プレーヤプロファイル510a~510nに基づいて、チームバランサ144bは、公平にバランスの取れたチーム(例えば、ゲームアプリケーションにおいて互いに競争するチーム)を構築するように構成されている。そのようにして、2つのチーム間のゲームアプリケーションのゲームプレイが、それぞれのチームのプレーヤにとって、公平で魅力的で価値のあるものになる。例えば、バランスの取れたチームであれば、一方的なゲームを回避するのに役立つようになる。1つ以上のカテゴリのスキルレベルに基づいて、さらに2つのグループ(G1とG2)に区分されたプレーヤプロファイルを考慮されたい。
各グループのプレーヤ、及び/またはプレーヤのスキルは、全てのチーム(例えば、チーム-1~チーム-n)に均等に分散させることが望ましい。戦闘に重点を置くゲームアプリケーションの各チームには、リーダー、スナイパー、訓練(例えば、近接格闘術)を受けた殺人者など、1つ以上のポジションが含まれる。1つの説明図では、全てのスキルポジションをグループ化し、それをチーム間で均等に分散させている。この図では、リーダーは除外されており、簡単のために、全てのチームが等しく有能なリーダーを持つように、全てのリーダーが単一のグループG-2から選択されている。他の全ての熟練したポジションは等しく評価されると想定されている。つまり、各チームは、各グループG1及びG2から同数の選手を採用して、いくつかの熟練したポジションで構成されるべきである。
例えば、各チームには、グループG1のプレーヤが1人、グループG2のプレーヤが1人含まれている(リーダーを除く)。図示するように、チーム-1とチーム-2とはそれぞれ、グループG1からの1人のプレーヤ(スナイパー)と、G2からの1人のプレーヤ(例えば、キラー)とを含む。また、チーム3には、グループG1からの1人のプレーヤ(キラー)と、G2からの1人のプレーヤ(例えば、スナイパー)とが含まれる。したがって、各チームは、ユーザプロファイル(例えば、スキルレベル)に従ってバランスが取れている。
【0105】
図5Cは、本開示の一実施形態による、AIモデル160によって指示されたオートプレイを介してAIモデルを訓練するためのプロセスを示すデータ流れ図を示す。上記のとおり、AIモデル160は、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練される。ゲームアプリケーションの複数のゲームプレイ310a~310nを示す。上記のとおり、ゲームプレイデータ320a~320nは、ゲームプレイ310a~310nから生成される。一実施形態では、複数のゲームプレイは、訓練中にAIモデル160によって操作される。そのようにして、入力状態データは、AIモデル160からのデータを使用して分析器140によって生成され、入力状態データは、訓練中に分析器140によって以前のアクションとして提供される。
ゲームプレイデータには、特定のポイントでのゲームの状態を記述したゲーム状態データを含むメタデータが含まれてもよく、コントローラ入力データが含まれてもよく、メタデータ及び/または訓練状態データを抽出する目的で、ゲームプレイ310a~310nの記録が含まれてもよい。キャプチャエンジン340は、上記のとおり、ゲームプレイデータ320a~320nのほか、成功基準330など、提供され得る他のデータも取り込む。成功基準は、訓練の目的で、類似している訓練状態データを区別するために使用することができる。
つまり、成功基準は、AIモデル160を訓練するために、深層学習エンジン190によって使用されてもよい。訓練状態データ345は、深層学習エンジン190に提供される。深層学習エンジン190の機能については、図3B-1及び図3B-2に関連して説明したが、図5Cに示す深層学習エンジン190にも同様に適用できる。簡単にするために、深層学習エンジン190の全ての構成要素を図5Cに示しているわけではない。
一般に、深層学習エンジン190は、訓練状態データ345及び成功基準330を使用して、AIモデル160を訓練及び/または構築するように構成されたモデラ120を含む。モデラ120は、様々なニューラルネットワーク(例えば、畳み込み型、リカレント型など)を介して人工知能を実装し得る。具体的には、モデラ120は、入力のセット(例えば、ゲームアプリケーションのコンテキストまたは状況(ゲーム状態)を定義し得る特徴)を与えられて、予測を行い、及び/または取るべきアクションを決定する、特徴依存ルールのセットを識別する。例えば、AIモデル160の出力は、ゲームアプリケーションのシナリオを進めていく上で、(例えば、ゲームアプリケーションのゲームプレイの状況を定義する)所与の入力データのセットの成功を予測し得る。特徴及び/またはノードを接続するルールのセットが、AIモデル160を構成する。
【0106】
図示するように、深層学習エンジンは、学習フェーズと適用フェーズの両方で機能する。具体的には、ゲームプレイ310は、AIモデル160などによって自動的に実行される。そのようにして、AIモデル160は自己訓練される。具体的にいえば、分析器140は、入力制御シーケンス構文解析器571、プレーヤプロファイラ144a、及びマップ/ルート追跡器572を含み、これらはそれぞれ先に紹介したとおりである。例えば、入力制御シーケンス構文解析器147aは、ゲームプレイを制御するためにプレーヤによって使用されるコントローラ入力のシーケンスを決定するように構成される。分析器140のシーケンスマップ及び/またはルート追跡器148aは、ゲームプレイの進行を追跡して、ゲーム環境中の進行を追跡することを含むように構成される。分析器140のプレーヤプロファイラ144aは、ゲームアプリケーションをプレイするプレーヤのプロファイリングを行う(例えば、プレーヤのスキルレベルを判定する)ように構成される。
【0107】
さらに、分析器140のアクション生成器170は、予め定義された目的に応じて、AIモデルトレーナ143bによって指示されて、AIモデルを自動的に訓練する目的などで、ゲームアプリケーションをオートプレイするように構成されているオートプレーヤ143aを含む。例えば、予め定義された目的は、AIモデル160を自動的に訓練することであってもよい。具体的にいえば、分析器140は、AIモデルトレーナ143bによって指示されて、ゲームアプリケーションをオートプレイするように構成されたオートプレーヤ143aを含む。例えば、訓練インスタンスなどの所与の訓練状態データのセットについて、AIモデル160の学習済み出力が、対応するゲームプレイを制御するためのコントローラ入力の次のセットを決定するために、分析器140によって分析されてもよい。具体的には、AIモデルトレーナ143bのボットセレクタと入力制御選択/予測エンジン537とを組み合わせたものが、目的に応じて次のコントローラ入力のセットを決定するように構成されている。例えば、最高の成功及び効率をもってゲームをやり遂げるために最適化されたボットを選択したり、あるいはゲームアプリケーションの様々な順列を探索したりすることができる。目的に応じて、入力制御選択/予測エンジン537は、目的と選択されたボットとが与えられた場合に、コントローラ入力の次のセットが何であるかを予測するように構成される。コントローラ入力は、オートプレーヤ143aに返信され、次いでオートプレーヤ143aは、コントローラ入力を、対応するゲームプレイをサポートするゲームアプリケーションの対応するインスタンスに送信する。そのようにして、対応するゲームプレイ310a~310nのために、ゲームアプリケーションのインスタンスを実行するためのバックエンドサーバのバンクを利用することにより、訓練状態データ345を迅速かつ効率的に自動生成することができる。
【0108】
一実施形態では、第1の入力状態データに対して、複数の入力制御またはコントローラ入力のセットが、第1の入力状態データに続いてプレイされるように決定され得る。成功基準を満たすと予測され、複数の入力制御のセットの中で最も成功度が高いと予測される第1の入力制御のセットが選択される。このようにして、第1の入力制御のセットは、実行のためゲームアプリケーションの対応するインスタンスにアクションとして配信することができる。
【0109】
図5Dは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたAIモデル160によって指示されたオートスイーパ/プレーヤ146aを使用して、ゲームアプリケーション内を自動的に回るプロセスを示すデータ流れ図を示す。ゲームアプリケーションの複数のゲームプレイ501(例えば、501a~501n)を示す。ゲームプレイは、AIモデル160を介してなど、自動的に制御することができる。その場合、AIモデル160は、次の入力状態データ(例えば、ゲーム状態などの入力状態データを生成するために使用されるコントローラ入力)を提供するように構成されてもよい。
ゲームアプリケーションのインスタンスは、ストリーミングゲームサービス(例えば、クラウドゲームシステム)のバックエンドサーバ上で実行されている場合がある。ゲームプレイ501a~501nは、例えば、1つ以上のシナリオS-1、S-2、及びS-3を通じて発生していることがある。ゲームプレイ501a~501nからの入力状態データ505a~505nは、AIモデル160の出力を分析するように構成された分析器140に提供される。深層学習エンジン190は、AIモデル160を(学習フェーズではなく適用フェーズで)実装する。AIモデル160は、出力を提供するように構成されていて、分析器140は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【0110】
具体的には、ゲームプレイ310は、AIモデル160などによって自動的に実行される。例えば、予め定義された目的は、AIモデルが訓練された後に、ゲームアプリケーションを自動的にテストすることであってもよい。例えば、AIモデルは以前に自動的に自己訓練されていた可能性があり、次にそのAIモデルを使って、ゲームアプリケーションをテストすることができる。別の実施形態では、訓練中に、オートスイープ機能が実行される。具体的にいえば、分析器140は、入力制御シーケンス構文解析器571とマップ/ルート追跡器572とを含み、これらはそれぞれ先に紹介したとおりである。例えば、入力制御シーケンス構文解析器147aは、以前にテストされたコントローラ入力のシーケンスを決定するように構成される。分析器140のシーケンスマップ及び/またはルート追跡器148aは、テスト中のゲームプレイの進行を追跡して、ゲーム環境中の進行を追跡することを含むように構成される。
【0111】
一実施形態では、第1の入力状態データが、訓練中に採用された以前のアクションとして、AIモデルによって生成される。AIモデルの出力を分析中に、第1の入力状態データに応答するための様々な順列が、そのとき決定される。例えば、各順列には、取得すべきコントローラ入力の一意のセットが含まれている。その後、異なる順列の実行など、1つ以上のアクションが起こされる。そのようにして、本システムは、ゲームアプリケーションをプレイする際の異常を発見するように構成され得る。
【0112】
具体的には、分析器140のアクション生成器170は、ゲームアプリケーションが実行し得る様々な順列を決定するために、順列エンジン146bなどを使用することにより、ゲームアプリケーションを探索するように構成されたオートスイーパエンジン/プレーヤ146aを含む。例えば、入力制御順列エンジン146bは、所与の状況(例えば、特定のゲーム状態)などに応答して、ゲームアプリケーションが実行可能な様々な順列を決定するように構成される。つまり、入力制御順列エンジン146bは、所与の入力状態データ405a~405n(例えば、ゲーム状態)に対して、次のコントローラ入力のセットが何であるべきかを決定することができる。この場合、順列エンジン146bは、入力状態データに応答するための異なる順列を発見し、各順列が、起こすべき異なるアクションのセットを含む。そして、オートスイーパエンジン146aは、ゲームプレイ401a~401nを制御することにより(例えば、ゲームアプリケーションの実行インスタンスに適切なコントローラ入力を渡すことにより)、様々な順列を経るように構成される。
【0113】
さらに、分析器140は、ゲームアプリケーションのウィークポイント(例えば、過度に長くて退屈なシーケンス、難しいセクションなど)、または欠陥(例えば、グリッチ、ループなど)を発見する目的などで、ゲームアプリケーションの品質分析を行うように構成される。例えば、マップ/ルート分析器441は、ゲームアプリケーションの異なる順列の出力(例えば、ゲームの状態)を分析して、ゲームアプリケーションのウィークポイントを発見するように構成される。一実施形態では、ゲームコード識別器443が、ゲームアプリケーションのコーディングにおける問題を発見するように構成され、コード位置447が出力として提供される。
【0114】
図5Eは、本開示の一実施形態による、対戦相手をプレーヤに提供するためのプロセスであって、この対戦相手は、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されるAIモデルによって指示されるプロセスを示すデータ流れ図を示す。ゲームアプリケーションのゲームプレイ501xを示す。ゲームプレイは、対応するクライアントデバイスを介してプレーヤP-xによって制御され得、上記のとおり、ストリーミングゲームサービス(例えば、クラウドゲームシステム)のバックエンドサーバで、ゲームアプリケーションのインスタンスが実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、AIモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ501xは、シナリオS-1中に発生しており、プレーヤの入力操作503xによって制御されている。
【0115】
ゲームプレイ501xからの入力状態データ505xが、訓練されたAIモデル160の出力を分析するように構成された分析器140に提供され、訓練されたAIモデル160は、深層学習エンジン190を介して(学習フェーズではなく、適用フェーズにおいて)実装される。入力状態データ505xは、AIモデル160が訓練された後に受信され、そのため、上記のAIモデルの訓練に使用された訓練状態データの一部ではないことがある。AIモデル160は、出力を提供するように構成されていて、分析器140は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【0116】
具体的にいえば、分析器140は、入力制御シーケンス構文解析器571とプレーヤプロファイラ144aとを含み、これらはそれぞれ先に紹介したとおりである。例えば、入力制御シーケンス構文解析器147aは、ゲームプレイを制御するためにプレーヤによって使用されるコントローラ入力のシーケンスを決定するように構成される。分析器140のプレーヤプロファイラ144aは、ゲームアプリケーションをプレイするプレーヤのプロファイリングを行う(例えば、プレーヤのスキルレベルを判定する)ように構成される。
【0117】
さらに、分析器140は、1つ以上のボット(ゲームプレイに使用される、またはゲームプレイ中のキャラクタを制御するための自動プレーヤロボットまたは対戦相手)を構築するように構成されたボットビルダ575を含む。例えば、ボットビルダ575は、成功基準の適用によりAIモデル160によって学習されたアルティメットボット142dを構築するように構成され得る。上記のとおり、所与の入力のセット(例えば、入力訓練データ)に対して、より成功したパターン(例えば、結び付けられた特徴及び/またはラベルを含むルール)が学習され、成功していないパターンよりも選ばれる。そのようにして、ゲームアプリケーションのプレイにおいて最も成功する最高または究極のボット142dが訓練される。別の例では、ボットビルダ575は、第1のプレーヤをシミュレートするバーチャルプレーヤまたはバーチャルミーボット(virtual me bot)142cを構築するように構成される。一実施形態では、訓練状態データは、1つ以上のクライアントデバイスでの第1のプレーヤによるゲームプレイから得られる。つまり、他のプレーヤのゲームプレイからのデータは、バーチャルミーボット142cの訓練には使用されない。そのようにして、AIモデルは、最初のプレーヤのゲームプレイによって作成されたメタデータを覚え込ませられるので、AIモデルは、最初のプレーヤをそのまま反映したものになる。
【0118】
さらに別の例では、ボットビルダ575は、様々なスキルレベルの1つ以上のボットを構築するように構成される。例えば、様々なスキルのボットには、エキスパートボット576、中級ボット577、及びビギナーボット578が含まれ得る。一実施態様では、AIモデルが、対応するスキルレベルのデータを使用して訓練されるように、訓練状態データが、対応するスキルレベルを反映するように解析されることがある。例えば、ボットビルダ575がエキスパートボット576を構築できるように、エキスパートプレーヤのゲームプレイのみをAIモデルの訓練に使用するように、成功基準を定義してもよい。別の例では、ボットビルダ575が中級ボット577を構築できるように、中級スキルのプレーヤのゲームプレイのみをAIモデルの訓練に使用するように、成功基準を定義してもよい。
さらに別の例では、ボットビルダ575がビギナーボット578を構築できるように、ビギナーのスキルを持つプレーヤのゲームプレイのみをAIモデルの訓練に使用するように、成功基準を定義してもよい。さらに別の実施形態では、特定のスキルレベルのボットは、バーチャルアルティメットボット142dを使用し、アルティメットボットのパフォーマンスに1つ以上の状況を適用することによって実装することができて、ランダム性及び/または待ち時間を導入することを含む。例えば、アルティメットボットのパフォーマンスは、シーケンス内のコントローラ入力の実行間に遅延を導入することによって、またはタスクの実行に極めて成功しやすいことが知られているコントローラ入力の特定のシーケンスにランダムなコントローラ入力を導入することによって、損なわれ得る。
【0119】
さらに、分析器140のアクション生成器170は、予め定義された目的に応じて、AIモデルトレーナ143bによって指示されて、AIモデルを自動的に訓練する目的などで、ゲームアプリケーションをオートプレイするように構成されているオートプレーヤ143aを含む。例えば、予め定義された目的は、AIモデル160を自動的に訓練することであってもよい。具体的にいえば、分析器140は、AIモデルトレーナ143bによって指示されて、ゲームアプリケーションをオートプレイするように構成されたオートプレーヤ143aを含む。
【0120】
分析器140は、ボット対戦相手(例えば、自動的に反応するロボット対戦相手)を提供する目的でゲームアプリケーションをオートプレイするように構成されたオートプレーヤ143aを含む。ボット対戦相手セレクタ142aは、以前に紹介したボット(例えば、アルティメットボット142d、バーチャルミーボット142c、及びエキスパートボット576、中級ボット577、またはビギナーボット578を含む様々なスキルのボット)など、適切なボットを選択するように構成される。ゲームプレイを操作するプレーヤは、ボットの対戦相手に立ち向かうキャラクタを操作することができる。具体的には、オートプレーヤ143aは、選択された自動ロボット(ボット)を実装するように構成されている。所与の入力状態データ505xのセットについて、出力がオートプレーヤ143aによって分析器140によって分析されて、ゲームアプリケーションで見つけたボットを制御するための次の命令のセットを決定することができる。
【0121】
さらに、ボットスロットラ142bが、対応するボットに反映される難易度設定を(例えば、ボットの操作に)適用するように構成される。ボットスロットラは、アルティメットボット142d、または他のいずれかの学習済みボットから始めることができる。難易度の設定は、プレーヤが積極的に適用してもよく、またはユーザプロファイルに応じて適用してもよい。例えば、プロファイルに示されているプレーヤがエキスパートであれば、難易度は高く設定される(対戦相手ボットを倒すのは難しい)。逆に、プレーヤが初心者であれば、難易度は低めに設定される(対戦相手ボットを簡単に倒せる)。
図示するように、ボットスロットラ142bは、ランダム命令を導入するように構成されたランダマイザ551を含み得る。難易度の高い対応するボットは、アルティメットボット142dを制御するために通常使用される命令のストリームに、低レベルのランダムな命令が挿入されている。そのため、結果として得られるボットは、アルティメットボット142dに似ている。その一方で、結果的に難易度の低いボットは、アルティメットボット142dを正常に制御するために用いられる命令のストリームに、高レベルのランダムな命令が挿入されることになる。ランダムな指示があるために、結果として得られるボットの動作は不安定になり、アルティメットボット142dほどの性能を発揮できない。
さらに、難易度設定を適用するために、待ち時間エンジン553を実装してもよい。結果として得られる高度な難易度のボットの場合、通常はアルティメットボット142dに適用される、命令のストリームに導入される待ち時間は制限されるか、まったくない。一方、結果的に難易度の低いボット(例えば、初心者向け)の場合、アルティメットボット142dに対して通常適用される命令のストリームに、より大きな待ち時間が導入されることになる。そのようにして、結果として得られる難易度の低いボットは、攻撃時、または防御操作時などでは非常にゆっくりとした動きをすることになり、そのような者は簡単に倒されてしまうことになる。
【0122】
図5Fは、本開示の一実施形態による、プレーヤの弱点を特定し、それらの弱点を克服するようにプレーヤを訓練するための様々なサービスを提供するプロセスを示すデータ流れ図を示す。ゲームアプリケーションのゲームプレイ501xを示す。ゲームプレイは、対応するクライアントデバイスを介してプレーヤP-xによって制御され得、上記のとおり、ストリーミングゲームサービス(例えば、クラウドゲームシステム)のバックエンドサーバで、ゲームアプリケーションのインスタンスが実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、AIモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ501xは、シナリオS-1中に発生しており、プレーヤの入力操作503xによって制御されている。
【0123】
ゲームプレイ501xからの入力状態データ505xが、訓練されたAIモデル160の出力を分析するように構成された分析器140に提供され、訓練されたAIモデル160は、深層学習エンジン190を介して(学習フェーズではなく、適用フェーズにおいて)実装される。入力状態データ505xは、AIモデル160が訓練された後に受信され、そのため、上記のAIモデルの訓練に使用された訓練状態データの一部ではないことがある。AIモデル160は、出力を提供するように構成されていて、分析器140は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【0124】
さらに、分析器140のアクション生成器170は、予め定義された目的に応じて、AIモデルトレーナ143bによって指示されて、AIモデルを自動的に訓練する目的などで、ゲームアプリケーションをオートプレイするように構成されているオートプレーヤ143aを含む。例えば、予め定義された目的は、AIモデル160を自動的に訓練することであってもよい。
【0125】
具体的には、分析器140は、予め定義された目的に従って対応するゲームプレイを制御している対応するプレーヤの弱点を判定して、指導を提供するように構成された、弱点特定器141aを含む。弱点は、プレーヤのゲームプレイの分析によって判定される。
【0126】
例えば、分析には、成功基準との比較が含まれ得る。具体的には、第1の入力状態データが、AIモデルからの出力を、比較可能な入力状態データから得られる他の出力と比較して分析することによって判定されて、平均の成功度よりも低いと判定することにより、弱点を特定することができる。例として、所与の入力状態データ(例えば、第1の入力状態データ)について、第1の入力状態データに応答して出力を生成する相互接続されたノードの第1のセットは、対応する成功基準を満たす際の値が、比較可能な入力状態データを有する類似のゲームプレイに対して決定された平均値よりも低い値を有する場合がある。つまり、同じかまたは類似の入力状態データを有するゲームプレイに対して比較が行われる。したがってそのように、弱点特定器141aは、プレーヤの弱点を判定することができる。
【0127】
さらに、弱点訓練器141bが、プレーヤが弱点を克服するのに有用なサービスを行うように構成されている。例えば、弱点訓練器141bは、プレーヤの弱点に関連してプレーヤのスキルを向上させることを目的とした1つ以上のチュートリアル561(例えば、映像、ゲームセッションなど)を提供してもよい。チュートリアルには、弱点に関連したプレーヤのスキルを強化する方法を説明するビデオチュートリアル、または弱点に関連したスキルを強化することを目的としたゲームセッションなどがあり得る。さらに、特定された弱点に対処する訓練セッションが、対応するクライアントデバイスを介してプレーヤに提示されてもよい。また、弱点訓練器141bは、一実施形態では、プレーヤの弱点を露呈するようなゲームプレイを指示することに特化したボットを提供するように構成してもよい。ボットは、プレーヤが対戦するための仮想の究極の対戦相手565であってもよい。仮想の究極の対戦相手565は、上記のとおり、アルティメットボット142dであってもよい。
【0128】
図6は、本開示の様々な実施形態の態様を実行するために使用することができる例示的なデバイス600の構成要素を示す。例えば、図6は、本開示の一実施形態による、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を実行することができるAIモデルを訓練するのに適した、例示的なハードウェアシステムを示している。このブロック図は、パーソナルコンピュータ、サーバコンピュータ、ゲーム機、モバイルデバイス、または他のデジタルデバイスを組み込むことができる、またはそれらの各々が本発明の実施形態を実践するのに適しているデバイス600を示している。デバイス600は、ソフトウェアアプリケーション及び任意選択でオペレーティングシステムを実行するための中央処理装置(CPU)602を含む。CPU602は、1つまたは複数の同種または異種の処理コアで構成されてもよい。
【0129】
様々な実施形態によれば、CPU602は、1つ以上の処理コアを有する1つ以上の汎用マイクロプロセッサである。さらなる実施形態は、深層学習、コンテンツ分類、及びユーザ分類のために構成されたアプリケーションのうち、メディア及びインタラクティブエンターテインメントアプリケーションなどの高度に並列かつ計算集約的なアプリケーションに特別に適合したマイクロプロセッサアーキテクチャを有する1つ以上のCPUを使用して実施することができる。例えば、CPU602は、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連して様々な機能性(例えば、予測)を提供することに関して、学習動作をサポート及び/または実行するように構成されたAIエンジン(例えば、深層学習)190を含むように構成されてもよい。
深層学習エンジンは、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するように構成されたAIモデルを構築及び/または訓練するように構成されたモデラ120を含み得る。さらに、CPU602は、訓練されたAIモデルを実装するように構成された分析器140を含む。訓練されたAIモデルは、入力に応答して出力を提供し、出力は、訓練されたAIモデルの予め定義された機能性に依存する。訓練されたAIモデルは、ゲームプレイ中にどのようなアクションを取ることができるかを判断するのに使用され得る。分析器140は、どれが取るべき適切なアクションであるかを判断する。つまり、分析器140は、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連して、様々な機能性を実行するように構成されている。分析器140は、所与の入力(例えば、コントローラ入力、ゲーム状態データ、成功基準)に対する訓練されたAIモデル160からの出力を分析し、応答を提供するように構成されている。
【0130】
メモリ604は、CPU602が使用するアプリケーション及びデータを記憶する。ストレージ606は、アプリケーション及びデータのための不揮発性ストレージ及びその他のコンピュータ可読媒体を提供し、固定ディスクドライブ、リムーバブルディスクドライブ、フラッシュメモリデバイス、及びCD-ROM、DVD-ROM、Blu-ray(登録商標)、HD-DVD、またはその他の光学ストレージデバイス、ならびに信号伝送及びストレージメディアを含んでもよい。ユーザ入力デバイス608は、1人以上のユーザからのユーザ入力をデバイス600に伝達するものであり、その例としては、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、スチルまたはビデオレコーダ/カメラ、及び/またはマイクロフォンがあり得る。
ネットワークインタフェース614は、電子通信ネットワークを介してデバイス600が他のコンピュータシステムと通信することを可能にするものであり、ローカルエリアネットワークやインターネットなどのワイドエリアネットワークを介した有線または無線の通信を含み得る。オーディオプロセッサ612は、CPU602、メモリ604、及び/またはストレージ606によって提供される命令及び/またはデータから、アナログまたはデジタルのオーディオ出力を生成するように適合されている。CPU602、メモリ604、データストレージ606、ユーザ入力デバイス608、ネットワークインタフェース610、及びオーディオプロセッサ612を含むデバイス600の構成要素は、1つ以上のデータバス622を介して接続されている。
【0131】
グラフィックスサブシステム614が、データバス622及びデバイス600の構成要素とさらに接続されている。グラフィックスサブシステム614は、グラフィックスプロセシングユニット(GPU)616とグラフィックスメモリ618とを含む。グラフィックスメモリ618は、出力画像の各画素の画素データを格納するために使用される表示メモリ(例えば、フレームバッファ)を含む。グラフィックスメモリ618は、GPU616と同じデバイスに統合されてもよく、GPU616と別個のデバイスとして接続されてもよく、及び/またはメモリ604内に組み込まれてもよい。画素データは、CPU602から直接グラフィックスメモリ618に提供することができる。
あるいは、CPU602は、所望の出力画像を定義するデータ及び/または命令をGPU616に提供し、そこからGPU616が1つ以上の出力画像の画素データを生成する。所望の出力画像を定義するデータ及び/または命令は、メモリ604及び/またはグラフィックスメモリ618に格納することができる。実施形態では、GPU616は、シーンのジオメトリ、ライティング、シェーディング、テクスチャリング、モーション、及び/またはカメラパラメータを定義する命令及びデータから、出力画像用の画素データを生成するための3Dレンダリング機能を含む。GPU616は、シェーダプログラムを実行することができる1つ以上のプログラマブル実行ユニットをさらに含むことができる。一実施形態では、GPU616は、AIまたは深層学習機能のためなど、追加の処理能力を提供するために、AIエンジン190内に実装されてもよい。
【0132】
グラフィックスサブシステム614は、ディスプレイデバイス610に表示すべき画像、または投影システム640で投影すべき画像の画素データを、グラフィックスメモリ618から定期的に出力する。ディスプレイデバイス610は、CRT、LCD、プラズマ、及びOLEDディスプレイを含む、デバイス600からの信号に応答して視覚情報を表示することができる任意のデバイスであり得る。デバイス600は、例えば、アナログ信号またはデジタル信号をディスプレイデバイス610に提供することができる。
【0133】
よって、本開示では、様々な実施形態において、1つ以上のゲームプレイをサポートするゲーミングアプリケーションのインスタンスを実行するサーバのネットワークから収集した訓練データを使用してAIモデルを構築するために、ならびに訓練されたAIモデルを使用して、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために、深層学習(機械学習とも呼ばれる)技法を実施するシステム及び方法について説明した。
【0134】
本明細書で定義される様々な実施形態は、本明細書で開示される様々な特徴を使用する特定の実施態様に組み合わされ得る、または組み立てられ得ることを、理解されたい。従って、提供される実施例は、いくつかの可能な実施例にすぎず、様々な要素を組み合わせることでより多くの実施態様を定義することが可能な様々な実施態様に限定されない。いくつかの実施例では、いくつかの実施態様は、開示されたまたは同等の実施態様の趣旨から逸脱することなく、より少ない要素を含んでもよい。
【0135】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施され得る。本開示の実施形態はまた、有線ベースまたは無線のネットワークを介してリンクされるリモート処理デバイスによりタスクが行われる分散型コンピューティング環境においても、実施することができる。
【0136】
前述の実施形態を念頭に置いて、本開示の実施形態は、コンピュータシステムに記憶されたデータを伴う様々なコンピュータ実施動作を用い得ることを、理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の実施形態の一部を形成する、本明細書で説明される動作のうちのいずれも、有用な機械動作である。開示の実施形態はまた、これら動作を実行するためのデバイスまたは装置に関する。装置は、必要な目的のために特別に構築されてもよい、または装置は、コンピュータに記憶されたコンピュータプログラムにより選択的に起動または構成される汎用コンピュータであってもよい。具体的には、様々な汎用機械を、本明細書の教示に従って書かれたコンピュータプログラムと共に使用することができる、あるいは、必要な動作を実行するためにより専門的な装置を構築するほうがより好都合である場合もある。
【0137】
開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを記憶することができ、その後コンピュータシステムによって読み取ることができる任意のデータ記憶デバイスである。コンピュータ可読媒体の例には、ハードドライブ、ネットクワーク接続ストレージ(NAS)、読み出し専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、並びに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で記憶及び実行されるように、ネットワーク接続されたコンピュータシステム上に分散されたコンピュータ可読有形媒体が含まれてもよい。
【0138】
方法動作は特定の順序で説明されたが、オーバーレイ動作の処理が所望の方法で実行される限り、動作間に他の維持管理動作が実行されてもよく、または動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起こることを可能にしてもよいことを、理解すべきである。
【0139】
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示の実施形態は、本明細書に提供される詳細に限定されるものではなく、添付の特許請求の範囲内及び均等物内で変更されてもよい。
図1A
図1B
図2A
図2B
図3A
図3B-1】
図3B-2】
図3C-1】
図3C-2】
図4A
図4B
図5A
図5B
図5C
図5D
図5E
図5F
図6
【手続補正書】
【提出日】2023-12-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオゲーム用のグローバル人工知能(AI)モデルを、複数のプレーヤによる前記ビデオゲームの複数のゲームプレイから収集された訓練状態データとそれに関連する成功基準とを用いて訓練するためのプログラム命令であって、前記グローバルAIモデルは前記ビデオゲームをプレイするように構成されたものであり、
ユーザによるゲームプレイ中に入力状態データを受信し、
前記ゲームプレイ中に前記入力状態データに対するゲーム応答を受信し、
前記入力状態データと前記ゲーム応答を深層学習エンジンに適用して前記グローバルAIモデルを修正することで前記ユーザのためのパーソナルAIモデルをトレーニングし、
前記パーソナルAIモデルは前記ビデオゲームをプレイする前記ユーザをシミュレートするように構成されている、
方法。
【請求項2】
前記入力状態データを前記グローバルAIモデルに適用して前記ゲームプレイの予測成功度を決定し、
かつ、前記予測成功度に基づいて前記ビデオゲームをどのようにプレイするかについてのレコメンデーションを前記ユーザのデバイスへと提供し、
前記レコメンデーションは、前記入力状態データに応答して生成された前記ゲーム応答とは異なる推奨ゲーム応答に前記ゲームプレイを導くための次の入力状態データを含む、
請求項1に記載の方法。
【請求項3】
前記適用では、
前記パーソナルAIモデルを訓練する際に、与えられた前記入力状態データに対する前記ゲーム応答を段階的に実現するように、前記深層学習エンジンで実装された前記関連する成功基準を調整する、
請求項1に記載の方法。
【請求項4】
前記グローバルAIモデルの訓練では、前記訓練状態データを用いて、前記ビデオゲームのシナリオをプレイするように前記グローバルAIモデルを訓練し、
前記パーソナルAIモデルの訓練では、前記入力状態データおよびゲーム応答を用いて、前記シナリオをプレイするように前記パーソナルAIモデルが訓練される、
請求項1に記載の方法。
【請求項5】
前記パーソナルAIモデルに前記入力状態データを適用して次の入力状態データを生成し、
前記次の入力状態データを含む前記ビデオゲームをどのようにプレイするかに関するレコメンデーションを提供し、
前記次の入力状態データは、前記シナリオを進めてプレイする前記ユーザをシミュレートするように構成されている、
請求項4に記載の方法。
【請求項6】
前記プレーヤ用のユーザプロファイルにアクセスし、
かつ、前記レコメンデーションを前記ユーザプロファイルに基づいて生成する、
請求項5に記載の方法。
【請求項7】
前記ゲームプレイ中に新しい入力状態データを受信し、
前記ゲームプレイ中に前記新しい入力状態データに対する新しいゲーム応答を受信し、
前記新しい入力状態データと前記新しいゲーム応答を前記深層学習エンジンに適用して前記パーソナルAIモデルをトレーニングする、
請求項4に記載の方法。
【請求項8】
前記グローバルAIモデルの前記訓練では、
前記複数のゲームプレイをサポートする前記ビデオゲームの複数のインスタンスを実行し、
前記複数のゲームプレイに関連付けられた前記訓練状態データを収集し、
前記関連する成功基準を定義し、
前記訓練状態データと前記成功基準とを前記深層学習エンジンに提供する、
請求項1に記載の方法。
【請求項9】
前記関連する成功基準は、前記複数のゲームプレイからの訓練状態データどうしの間に優先順位を付けるために用いられる、
請求項1に記載の方法。
【請求項10】
方法を実行するためのコンピュータプログラムを記録されたコンピュータ可読媒体であって、
ビデオゲーム用のグローバル人工知能(AI)モデルを、複数のプレーヤによる前記ビデオゲームの複数のゲームプレイから収集された訓練状態データとそれに関連する成功基準とを用いて訓練するためのプログラム命令を有し、前記グローバルAIモデルは前記ビデオゲームをプレイするように構成されたものであり、
ユーザによるゲームプレイ中に入力状態データを受信するためのプログラム命令を有し、
前記ゲームプレイ中に前記入力状態データに対するゲーム応答を受信するためのプログラム命令を有し、
前記入力状態データと前記ゲーム応答を深層学習エンジンに適用して前記グローバルAIモデルを修正することで前記ユーザのためのパーソナルAIモデルをトレーニングするためのプログラム命令を有し、
前記パーソナルAIモデルは前記ビデオゲームをプレイする前記ユーザをシミュレートするように構成されている、
コンピュータ可読媒体。
【請求項11】
前記適用するための前記プログラム命令は、
前記パーソナルAIモデルを訓練する際に、与えられた前記入力状態データに対する前記ゲーム応答を段階的に実現するように、前記深層学習エンジンで実装された前記関連する成功基準を調整するためのプログラム命令を有する、
請求項10に記載のコンピュータ可読媒体。
【請求項12】
前記グローバルAIモデルを訓練するための前記プログラム命令には、
前記訓練状態データを用いて、前記ビデオゲームのシナリオをプレイするように前記グローバルAIモデルを訓練するためのプログラム命令が含まれ、
前記パーソナルAIモデルを訓練するための前記プログラム命令には、前記入力状態データおよびゲーム応答を用いて、前記シナリオをプレイするように前記パーソナルAIモデルを訓練するためのプログラム命令が含まれる、
請求項10に記載のコンピュータ可読媒体。
【請求項13】
前記パーソナルAIモデルに前記入力状態データを適用して次の入力状態データを生成するためのプログラム命令と、
前記次の入力状態データを含む前記ビデオゲームをどのようにプレイするかに関するレコメンデーションを提供するためのプログラム命令とをさらに有し、
前記次の入力状態データは、前記シナリオを進めてプレイする前記ユーザをシミュレートするように構成されている、
請求項12に記載のコンピュータ可読媒体。
【請求項14】
前記ゲームプレイ中に新しいゲーム入力状態データを受信するためのプログラム命令と、
前記ゲームプレイ中に前記新しい入力状態データに対する新しいゲーム応答を受信するためのプログラム命令と、
前記新しい入力状態データと前記新しいゲーム応答を前記深層学習エンジンに適用して前記パーソナルAIモデルをトレーニングするためのプログラム命令とをさらに有する、
請求項12に記載のコンピュータ可読媒体。
【請求項15】
前記グローバルAIモデルを訓練するための前記プログラム命令には、
前記複数のゲームプレイをサポートする前記ビデオゲームの複数のインスタンスを実行するためのプログラム命令と、
前記複数のゲームプレイに関連付けられた前記訓練状態データを収集するためのプログラム命令と、
前記関連する成功基準を定義するためのプログラム命令と、
前記訓練状態データと前記成功基準とを前記深層学習エンジンに提供するためのプログラム命令と、が含まれる、
請求項10に記載のコンピュータ可読媒体。
【請求項16】
コンピュータシステムであって、
プロセッサと、
前記プロセッサに結合されて、前記コンピュータシステムによって実行されると、方法を前記コンピュータシステムに実行させる命令を格納したメモリを有し、前記方法では、
ビデオゲーム用のグローバル人工知能(AI)モデルを、複数のプレーヤによる前記ビデオゲームの複数のゲームプレイから収集された訓練状態データとそれに関連する成功基準とを用いて訓練し、前記グローバルAIモデルは前記ビデオゲームをプレイするように構成されたものであり、
ユーザによるゲームプレイ中に入力状態データを受信し、
前記ゲームプレイ中に前記入力状態データに対するゲーム応答を受信し、
前記入力状態データと前記ゲーム応答を深層学習エンジンに適用して前記グローバルAIモデルを修正することで前記ユーザのためのパーソナルAIモデルをトレーニングし、
前記パーソナルAIモデルは前記ビデオゲームをプレイする前記ユーザをシミュレートするように構成されている、
コンピュータシステム。
【請求項17】
前記方法における前記適用では、
前記パーソナルAIモデルを訓練する際に、与えられた前記入力状態データに対する前記ゲーム応答を段階的に実現するように、前記深層学習エンジンで実装された前記関連する成功基準を調整する、
請求項16に記載のコンピュータシステム。
【請求項18】
前記方法における前記グローバルAIモデルの訓練では、前記訓練状態データを用いて、前記ビデオゲームのシナリオをプレイするように前記グローバルAIモデルを訓練し、
前記方法における前記パーソナルAIモデルの訓練では、前記入力状態データおよびゲーム応答を用いて、前記シナリオをプレイするように前記パーソナルAIモデルが訓練される、
請求項16に記載のコンピュータシステム。
【請求項19】
前記方法では、さらに、
前記パーソナルAIモデルに前記入力状態データを適用して次の入力状態データを生成し、
前記次の入力状態データを含む前記ビデオゲームをどのようにプレイするかに関するレコメンデーションを提供し、
前記次の入力状態データは、前記シナリオを進めてプレイする前記ユーザをシミュレートするように構成されている、
請求項18に記載のコンピュータシステム。
【請求項20】
前記ゲームプレイ中に新しい入力状態データを受信し、
前記ゲームプレイ中に前記新しい入力状態データに対する新しいゲーム応答を受信し、
前記新しい入力状態データと前記新しいゲーム応答を前記深層学習エンジンに適用して前記パーソナルAIモデルをトレーニングする、
請求項18に記載のコンピュータシステム。