本気の戦闘AIづくりの話

クロノスの旅路製作中、現在AIを作っている段階なのですが、それに関する記事をひとつ。

世にフリーゲームのRPGは星の数ですが、その中でも戦闘AIにまでこだわったものとなると相当数が絞られる気がします。
敵じゃなくて、味方の。
ツクールには「オート戦闘」が、ウディタには「デフォルトAI」が存在していますが、これらだけでは味方にAIを設定して快適な戦闘をこなすのは不可能でしょう。

商業ゲームのように、味方が状況に応じていろんな特技を使う、賢いAIを作りたい!

今回はそんな戦闘AIを本気で作りたい人のための話です。
続きは追記でどうぞ↓
しかし、パッと考えただけでも味方のガチなAIというのは、

・自分のレベルなどから使用できる特技を算出する
・敵と味方のパラメータを取得し、現在の状況を判断する
・自分の使える特技の中から最適な特技と、その対象を割り出す

という凄まじく難易度の高いタスクをこなさなければ作ることができません。
そのうえ、性質上デバッグが難しいという理由から、AIづくりはRPGの中でも最難関にあたるんじゃないかと思われます。
さて、どう作ったものか。とりあえずAIづくりの参考になりそうなサイトやゲームを探してみました。
……が、ほとんどと言っていいほど見つかりませんでした。
講座サイトも皆無で、フリゲ界でAIづくりに取り組む人の少なさを物語っている気がします。
とりあえずパッと見つけたものをいくつか紹介します。

●スフィアン・マスターズ
某氏のモンスター育成RPGですが、わりと賢いAIが搭載されています。
ただし特技個数は8個が上限で、敵数も3体が上限。この状況で処理負荷が限界っぽいので、あまり応用性はないでしょう。

● ピッコロRPGシステムサンプルゲーム
ピッコロさん製作の、ウディタ公式作品登録ページで見つけたゲームです。
他で公開されていないからかあまり注目されてないですが、かなりレベルの高い戦闘AIを搭載しています。
しかも非暗号化なので、本気でAIを作りたい人にはかなり参考になることと思います。
余談ですが、AI以外のシステムもかなり凝っていてコモンイベントの構造も分かりやすいので、自作システムのRPGを作っている方にはぜひお勧めしておきます。
http://silsec.sakura.ne.jp/WolfRPGEditor/GameList/memberlist.cgi
↑の登録ページから作品名で検索。

●DQMJ2PのAIが垣間見れるサイト
フリゲではないですが、いろいろ載っているので参考までに。
各特技のAI評価値みたいなのが掲載されています。評価基準にも工夫があって面白いので、眺めていると何か閃くかもしれません(自分は閃きませんでした←)
http://kumicyou.sakura.ne.jp/dqmj2p/page-3.htm

ということで見た感じだと、あらかじめ各特技に評価基準を設定しておき、敵味方のHPやパラメータから特技を使用する評価値を算出、評価値のもっとも高い特技を使用するというのが標準的なAI構築の手法のようですね。
戦闘AIに限らず、評価値の概念はアルゴリズム系統でよくお目にかかるので、知っておいて損はないと思われます。

などと書いておきながらアレですが、正直自分は評価値を使ってAIを作るという構図がまったく見えてこなかったです。
なにしろ、評価値を使ってAIを作るには、

・評価基準が適切でなければならない
・特技ひとつひとつに個別の評価基準を作らなければならない

という非常に面倒くさい大変なタスクをこなす必要があって、手を出す気になれませんでした。

そういうわけで、結局「各特技ごとに全ての敵に対する効果量を算出して、一番効果量の高い特技を使う(攻撃特技の場合)」という非常に原始的な方法でAIを作ることになりました。
某スフィアンでも同じような方法でAIを作っていましたが……。
いわば総当たり法ですね。
この方法はシンプルでバグが生じにくく、特技ごとの調整が必要ない代わり、総当たりなので特技数・敵数が増えるにつれて処理が肥大化するという特徴があります。

まぁ今度のゲームはあまり特技数が増えないし敵も8体上限なので、処理負荷的にも大丈夫かなと妥協した部分があったわけですが。
いつか評価値を使ったクールなAIを作りたいと思いつつ、今回はこのへんで。
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

Twitter
カテゴリ
最新コメント
月別アーカイブ
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR