16.【Rekiden】AIをFSMとして使うとゲーム設計になる|状態遷移で歴史シミュレーションを動かす
tags: [AI, ChatGPT, FSM, ゲーム設計, 戦国, シミュレーション]
🏁 はじめに
前回(Rekiden-15)では、
「テンプレートをAIに貼るだけでゲームが始まる」
という、かなり乱暴で、しかし実用的な方法を示しました。
では次の疑問が出てきます。
なぜ、あれで“ゲーム”として成立するのか?
答えはシンプルです。
AIはFSM(有限状態機械)として振る舞っているからです。
🎯 結論:AIは自然言語FSMとして使える
FSM(Finite State Machine)は、ゲーム設計の基本です。
- 状態(State)
- 遷移(Transition)
- 条件(Condition)
RekidenのAIゲームは、これを コードではなく自然言語で定義しています。
🧱 RekidenシナリオのFSM構造
状態(State)
例:1561年 川中島シナリオ
S0:決戦前夜(両軍対峙)
S1:索敵・偵察段階
S2:局地戦発生
S3:本戦突入
S4:勝敗確定
AIは常に
「今はどの状態か」
を文章として保持しています。
遷移(Transition)
プレイヤーの入力が、そのまま遷移条件になります。
条件:
- 夜襲を選択 → S0 → S2
- 啄木鳥戦法を選択 → S0 → S3
- 撤退を選択 → S0 → S1
if 文はありません。
意味理解で遷移が決まります。
状態遷移図(概念)
[S0 決戦前夜]
↓ 行動選択
[S1 偵察]
↓ 接触
[S2 局地戦]
↓ 拡大
[S3 本戦]
↓ 結果
[S4 勝敗確定]
これは完全に FSM です。
🔍 なぜAIでこれが可能なのか
① 状態を「文章」で保持できる
AIは、
- 現在の戦況
- 兵力差
- 士気
- 地形
を 数値ではなく意味として保持します。
これは人間のGMと同じです。
② 遷移条件が曖昧でよい
通常のFSM実装では、
if (hp < 0) gameover
のように、条件を厳密に書きます。
AIではこうなります。
「この行動は戦線を崩壊させる可能性が高い」
→ 確率・文脈・歴史補正込みで遷移
📐 RekidenテンプレはFSM定義書である
Rekiden-14のテンプレを見てください。
初期状態:上杉軍と対峙、決戦前夜
敵勢力:上杉家(18,000人)
これはコード的に書けば、
state = S0
enemy_power = high
と同義です。
つまり、
テンプレ = 初期状態定義
✅ AIをFSMとして使うメリット
✔ 実装が不要
- エンジン不要
- 状態管理コード不要
✔ 分岐爆発に強い
- 想定外の行動でも破綻しにくい
✔ 歴史補正が自然
- 「史実的にあり得るか?」をAIが判断
⚠️ デメリットもある
正直に書きます。
- 完全再現性はない
- 数値的厳密さは弱い
- デバッグ不能
しかしこれは、
TRPGと同じ性質
です。
Rekidenは 数値SLGではなく、設計SLG です。
🔁 15_ → 16_ で何が変わったか
- 15_
テンプレを貼る → 遊べる - 16_
FSMとして理解する → 設計できる
ここで Rekiden は、
「遊び」から「設計」へ
一段階進みます。
🚀 次のステップ(17_ 予告)
FSMとして理解できたら、次はこれです。
- 勝利条件・敗北条件の形式化
- 評価関数(士気・損耗・時間)
- AI vs AI 自動進行
Rekiden-17 では、
人が介入しなくても歴史が進むところまで行きます。
✍️ おわりに
AIは便利な文章生成器ではありません。
状態を持ち、遷移し、評価する存在です。
それを認めた瞬間、
ゲームエンジンは コードである必要がなくなります。
Rekidenは、その実験です。