2017年9月5日火曜日

【Unity】RTSゲーム Bwars2 戦術AIの実装


 前回各セクターにユニットが配られるようになったのでセクターごとに与えられたユニットに指示を出す戦術AIの実装を始めた。戦術AIは与えられたユニットを効果的に利用し戦闘を有利に進めなければならない。戦術AIの仕事は究極的には1つしかない―ユニットに任意の場所への移動命令を出すことだ。そのためおおまかに2つの演算を行う。1つ目は敵ユニットの位置の予測で、2つ目はその位置に対する効果的な味方の配置場所を計算することだ。1つ目については隣り合うセクターの支配権や実際に確認されている敵に応じて候補地(理想的にはセクター全域が対象となるが演算コストの理由から相当間引いている)にスコアを与えスコアの高い順から敵予想値位置とする。2つ目は味方ユニットの現在位置と移動速度、敵味方の攻撃範囲の内外などの要素から同じくスコアにより移動先位置を決定する。上の写真では敵の予想位置に球体が置かれている。決して現状精度が高いものではない。しかしプロセスは正しいと感じている。ゲームの他の部分との開発と二人三脚でAIもよりましなものに変わっていくだろう。

2 件のコメント:

  1. 暴言に近いけど
    ユーザーが求めていたのはストーリーとか育成要素、その他演出だったと思う
    良くできたRTSゲームはsteamで買ったほうが早いかと…

    個人的にはsteamやらクリエーター支援サイトに登録してくれたほうが応援しやすい

    返信削除
  2. ユーザーが求めているもの云々~というのは本当に同感です。今の時代では魅力的なストーリーやキャラクターがいないと受け入れられにくいという意見を聞いたことがありますしSNSなどでFandomの様子を見ているとそのとおりだと感じます(overwatchなど)。BwarsではModに積極的に対応しユーザーが作成したユニットやシナリオを扱えるようにしたいと考えていてその部分で需要に応えることができるはないかと思っています。ただユニットを突撃させるAIに興ざめする私としてはAIは軽視できない課題であり、現状AI一辺倒ではありますがやむを得ないかなと思います。Bwarsはシミュレーションでありまたシングルプレイなので最低限のAIの実装のために努力してくでしょう。Steam、クリエイター~は考えてみます。

    返信削除