私は戦略ゲームAI(ファイナルファンタジータクティクスを考える)を開発していますが、AIの設計を思い付くのに苦労しています。私の主な問題は、どちらが最適かを判断することです。
まず、AIに実行してほしいアクションの優先度を説明します。
最寄りのプレイヤーユニットを殺す
主な指令を実行する(すべてのプレイヤーユニットを殺す、ターゲットユニットを殺す、xターンの間生き残る)
- 味方ユニット/キャストバッファー
これでAIは次のことができるようになります。
移動-> {攻撃/能力/アイテム}(攻撃または能力またはアイテムのいずれか)
{攻撃/能力/アイテム}->移動
近づく(ターゲットが範囲内にない場合)
- {攻撃/能力/アイテム}(移動できない場合)
ノート
能力にはさまざまな範囲/効果/コスト/効果があります。各AIユニットには、5〜10の能力を選択できます。AIは、その指示がxターンの間存続することでない限り、安全よりも殺害を優先します。それは能力コストをあまり気にしません。プレーヤーは後で使用するために大きな呪文を保存したいと思うかもしれませんが、AIはできるだけ早くそれを使用します。
移動は(16進)グリッド上にあります
プレイヤーユニット数:3-6
aiユニットの数:3-7以上。おそらく最大10。
AIとプレイヤーは、同時にすべてではなく、1つのユニットを制御する順番を取ります。
プラットフォームはAndroidです(しばらくしてもプログラムが応答しない場合は、強制終了または待機を指示するポップアップが表示されます。
質問が来ます:
使用するのに最適な能力は、明らかに、最も多くのダメージで最も多くのターゲットを攻撃する能力です。しかし、それぞれの能力は範囲が異なるため、移動できる可能性のある場所をそれぞれ探索しなければ、それらが範囲内にあるかどうかはわかりません。
1つの解決策は、移動する可能性のある各場所を調べ、その場所での最適な攻撃を決定することです。これにより、各場所の最適な移動のリストが表示されます。次に、リストから最適なものを選択して実行します。ただし、これには多くのCPU時間を要します。より良い解決策はありますか?
私の現在の考えは、最も近い、最大の人々のグループにできるだけ近づき、そこから最適な攻撃/能力を決定することです。これはCPUの作業量が大幅に減り、広範囲の攻撃が可能になると思います。最適ではありませんが、AIは「スマート」に見えます。
その他のメモ/質問:
- 私はそれを過度に考えすぎ/複雑にしていますか?より良いソリューション?あらゆる提案を受け入れる
- 私は見てとったスペルキャストの質問に、それは考慮に動きをとらない-ので、おそらくことを使用し、可能な各移動位置のためのアルゴ?一番上の答えは、それが影響範囲とグループの戦いに最適ではなかったと述べたので、おそらくさらに調整が必要ですか?
- してくださいあなたはグラフ/ツリーに言及している場合、私に知らせて、基本的にそれを使用する方法。たとえば、ノードは能力を意味し、レベルはダメージに対応し、最も深いノードを検索します。