ノードエディタで組んだロジックで AI 同士が戦う様子
企画の意図
ロボコンで自動制御を作っていたときに一番面白かったのは、「自分が書いた判断ロジックのとおりに 機体が勝手に動く瞬間」でした。その体験をゲームとして再現したいと考えたのが出発点です。
プレイヤーが直接操作すると腕前の勝負になってしまうため、操作は AI に任せ、 プレイヤーは行動方針の設計だけを担当する形にしています。 結果として「負けた理由が自分のロジックにある」という納得感が生まれる構造になりました。
実装したシステム
- ノードエディタ(自作):条件ノードと行動ノードをつないで行動ロジックを組み立てる UI。ノードの追加・接続・削除と、組んだロジックの保存に対応
- ロジック実行エンジン:組まれたノードグラフを毎フレーム評価し、ロボットの行動(移動・照準・攻撃)を決定する
- ゲーム AI とバトル進行:複数機体を同時に動かし、撃破数を集計。相手の位置・距離・残機といった状態をノードの条件から参照できるようにした
- 物理判定:弾と機体の当たり判定、被弾によるノックバックなどを Unity の物理で処理
- パーツ / 武器のアイテムシステム:機体に装備を組み替えられる仕組みと、フィールド上のアイテム拾得処理を実装
設計で苦労した点
「組めるが破綻しない」ノード設計
自由に組めるようにすると、循環参照や条件が一つも成立しない状態が容易に作れてしまいます。 そのため評価の順序を決め、どの条件にも当てはまらない場合の既定行動を必ず持たせる構造にして、 プレイヤーがどんなグラフを作ってもロボットが停止しないようにしました。
ロボコンの経験が効いた部分
NHK ロボコンでは、移動先や行動手順をプログラミング不要で編集できる行動計画エディタを 作っていました。そこで得た「非プログラマにも編集させる UI をどう作るか」という感覚が、 このゲームのノードエディタ設計にそのまま活きています。
今後
対戦バランスの調整と、組んだロジックを他プレイヤーと共有できる仕組みを検討中です。 将来的には強化学習で獲得した方策をノードグラフと戦わせる、といった拡張も考えています。