覇県を握れ AIの秘密
47都道府県で戦うSLG「覇県を握れ」。
https://www.dlsite.com/home/work/=/product_id/RJ237627.html
覇権を握れのAIを作る時に目指したのは、「バカではない、ズルしているようには見えない、だが完璧な行動は取らない。」です。今回は最初の部分について書いてみます。
■バカではない
都道府県を運営するためのルールをAIにちゃんと理解させて、実行させなければなりません。
資金が減ったら地方債を発行する、資金が余ったら税率を下げる、戦争になりそうな勢力が隣りにいたらエリアに戦力を配置する、首都エリアが脅かされていたら防衛する……などなど。
これができないと、ゲーム開始直後に財政破綻で滅亡してしまったり、日本を統一するぐらい巨大化した後に弱小勢力に一発首都を殴られただけで滅亡するなど、ゲームの舞台が整いません。
もっと言うと、プレイヤーと同盟を結んでいるのに、その事を理解せずにプレイヤー県に侵攻を開始してしまったりしたら、ゲームが破綻してしまいます。
ゲームルールをAIに理解させる事で、はじめてゲームとして成立し、また張り合いがある競争相手になります。
でもこれがまた難しい・・・。
「資金が減ったら地方債を発行」とはいうものの、資金が減るというのは計算式上ではどういう状態を意味するのか?
「戦争になりそうな勢力が隣りにいる」とは数値上どういう状態なのか。また戦力を防衛用に配置するとして、どこからどれぐらいの戦力を引き抜くのか?
外交をするとして、47都道府県のうち、何を基準にしてどこに優先して外交官を送るのか?
こういうのを、大量の計算式と条件分岐を繰り返し実行させて、行わせます。
たとえば、地方債の発行判定だと、
地方債と税制による増加分を除いた基礎収支が、食料と燃料代を上回っているかを判定し……。
上回っている場合は、余力があるので地方債をへらす。ただし無発行の場合は何もしない。
下回っている場合は、現状の財政収支を元に放置すると資金が尽きるのか、当面は大丈夫なのかを判定し、何もしないか、地方債を引き上げるか分岐させる・・・
みたいな感じです(実際はもっと複雑)。
ただ地方債の判定AIがうまく機能していても、他のシステムとの兼ね合いがあります。例えば地方債を発行する事により収入に余裕ができたため、戦闘機をばりばり買って財政破綻してしまったり……。
地方債の発行により収支が改善する事で、財政状況がよくなったと判断し、税率を極限まで下げて、タックスヘイブン&借金全開という謎政策を始めてしまったり……。
トライアンドエラーを繰り返しつつ、ちょうどいい塩梅になるように条件式を調整していくのです。