最近、暇なときに『Final Fantasy XII』をやってるんですが。
今回のこのゲーム、フィールド画面と戦闘画面が一体になりました。フィールドにモンスターがいて、近づいたら互いにバカバカ戦闘をおっぱじめるのですよ。
で、併せて「ガンビットシステム」なるものを採用してます。いわゆるAI戦闘なんですが、ドラクエなんかのそれとは違って、ユーザプログラマブルになってます。
知らない人のために簡単に説明すると、
- 行動の対象となる「ターゲット」と、それに対する「アクション」(「たたかう」だとか、「ファイア」などの魔法、あるいは「ポーション」などのアイテム)のペアから構成される「スロット」を設定して、
- このスロットのリストを作る。「ターゲット」に合致した「アクション」が実行される。ちなみにリストの先頭のほうが優先度が高い。
という、まぁちょっとした制約システムになってる訳です。
しかし…(ココまでが前フリ)ちょっと考えればわかりますが、この方法だと、ものすごいバカAIしか書けなさそうです。制約のガード条件*1が、行為の対象だけって相当厳しくありません?「『目の前の敵』と『戦う』」くらいなら書けますけど、ゲーム中の状況(状態)を現す条件が何も書けない気が。
実際ゲームを進めて、最初「ターゲット」に選べたのは、最初のうちは『味方一人』とか『自分自身』とか『目の前の敵』とか、ほとんどAIの体をなさないもので。
暫くすると*2、『HP≦50%の味方』てなターゲットも手に入るようになったんですが…それでもまだ物足りない。例えばポーション(回復薬)が2,3個しか残ってないときに「『HP≦50%の味方』に『ポーション』」なんて使ってられないのです。
せめてそれくらいの設定したいよなぁ…とか思ってたら、ダンジョンの中で拾ったターゲットが
『アイテム数≧10なら味方に』
ふふふ…小賢しい真似を…(すでに「ターゲット」の範疇を超えてる気がする)
この後、どんな小賢しい「ターゲット」が出現するのだろう。ちょっと楽しみ。