メインコンテンツまでスキップ

ADR-0034 敵のIntent列をターンごとに乱数で生成する

状態accepted
決定日2026-08-29
区分ゲームデザイン

背景​

ADR-0032 は、敵の Intent と特性をページ効果と同じ変数・作用の文法に乗せたが、その中身をどう選ぶか(行動選択)は未定義のまま残した(Issue #36)。

盤面が数直線である以上、敵の行動選択はプレイヤーの刻の位置に依存しうる。一方で ADR-0024 は、エスカレーションで攻撃力ではなく Intent の個数を増やす理由を「プレイヤーがあと何回跨げば足りるかを数えられるようにするため」としており、予測可能性がこのゲームの設計思想に組み込まれている。

決定​

敵の Intent 列は、そのターンの抽選個数ぶんを、敵ごとの候補プールからシード付き乱数で毎ターン独立に抽選して生成する。前ターンの列は引き継がない。

  • 各敵は、複数種の Intent(威力・種類の異なる攻撃バリエーション、腐食型なら白紙化 Intent を含む)からなる候補プールを持つ。候補プールは敵のパラメータの一部である(敵の設計#敵のパラメータ)
  • そのターンの抽選個数は基準個数 + エスカレーションによる増分で決まる。エスカレーションが動かすのは抽選個数だけであり、候補プールの中身にも、抽選結果の威力にも関与しない
  • 抽選には ADR-0013 の状態層が所有するシード付き DeterministicRng を使う。Intent 列という「毎ターン変わる」対象を持ち込んでも、セーブ/ロード・リプレイの決定性は変わらず保たれる
  • 抽選後の列の順序は、既定では抽選順(ランダム)である。重いものを先頭・奥のどちらに置くかで意図的に跨ぎの価値を操作したい敵は、抽選後に並べ替えるルールを個別に追加してよい(下記「却下した案」)
  • 敵 AI が参照してよいプレイヤーの状態は刻の位置のみである。 手札・残りHP・山札の中身は参照しない
  • 座が移動する類型のうち、追走型はプレイヤーの刻へ固定歩数(速度パラメータ)で決定論的に近づく(乱数を使わない)。遊撃型は数直線全域から移動先を毎ターンシード付き乱数で抽選する
  • 全ての敵は共通の AI アルゴリズムに、敵ごとのデータパラメータ(座の類型・候補プール・速度など)を与えることで表現する。敵専用の AI コードは持たない
  • 予兆は、抽選・移動先決定が解決した後の確定値を提示する。 プレイヤーが跨ぎの回数を数える対象は常にこの確定値であり、乱数を使っていることはターン開始後の予測可能性に影響しない

却下した案​

案却下理由
行動選択を完全決定論にする(候補プールを持たず、固定の Intent 列を毎ターン繰り返す)Issue #36 の壁打ちで「敵は毎ターン同じ Intent 列を実行するのではなく、列は毎ターン異なってほしい」という要求が確認された。ターン数などから機械的に内容を変える決定論的なローテーションも検討したが、乱数のほうが単純であり、シード付き RNG を通せば決定性は損なわれない
プレイヤーの手札や残りHPを参照して行動を調整する、より賢いAI「あと何回跨げば足りるか」を数えられるという予測可能性(ADR-0024)が、参照する状態を増やすほど崩れる。読み合いは「プレイヤーが敵を読む」の一方向のみとし、「敵がプレイヤーを読む」は持ち込まない
敵ごとに専用のAIコード・差し替え可能なAIクラスを用意する敵の類型はすでに座の置き方(5類型)× Intent 列の積み方(4類型)の2軸パラメータ空間として設計されている(#35)。専用コードを許すと、この軸の外の挙動が個体ごとに積み上がり、パラメータ空間として敵を設計するという利点が薄れる
遊撃型の移動先も、追走型と同じ「現在位置からの固定歩数」の範囲でランダムに選ぶ遊撃型の役割は「手札の銘の組み合わせを毎ターン組み直させる」ことであり、範囲を絞ると追走型との差が薄れる。全域からのランダムのほうが遊撃型らしい読み合いの濃さを担保する
エスカレーションで増える Intent の中身を、基準構成の複製を列の末尾に足すといった形で個別に規定する列そのものが毎ターン抽選で生成される以上、エスカレーション専用の挿入ルールを別に持つ必要がない。抽選個数を増やすだけで、同じ抽選ロジックにそのまま乗る

影響​

  • 敵の設計 の「敵のパラメータ」の「Intent 列の基準構成」を「Intent 候補プール」に置き換える。抽選個数(基準個数+エスカレーション増分)という概念を追加する
  • 「カード側の作用列との接続」節にある「Intent 列の順序が設計変数になった」という記述を、「既定では抽選順(ランダム)であり、意図的な順序付けは個別ルールとして追加できる」に改める
  • 敵の類型 の追走型・遊撃型の説明に、移動先の決め方(決定論的な固定歩数 / 乱数による全域抽選)を明記する
  • バランス の「Intent の基準個数」「Intent 1個の威力」は、今後「候補プール内の各 Intent の威力」として読み替える。追走型の速度パラメータも同様にバランスの数値対象になる
  • 遊撃型の移動先が全域ランダムになったことで、座の位置に紐づく戦略的意味(敵の設計#座の位置が持つ戦略的意味)は、遊撃型に限り「そのターンだけ成立する」ものになる。バランス調整で体感を確認する