概要
Baba is You をAI評価ベンチマークとして活用する試み ゲーム状態の取得・操作自動化 の技術的アプローチ 既存ソリューションの課題 とプレイヤー作成レベルの活用可能性 PythonとLua による連携と自動制御の実装詳細 現状のAI性能と今後の課題 の整理
Baba is Eval ― Baba is YouをAI評価ベンチマークに
- Baba is You は、 ルール自体を操作するSokoban系パズルゲーム
- 抽象的な推論 を要するため、 AIの推論能力評価 に適したベンチマーク候補
- ターン制 であるため、 クリアまでの手数 を細かい評価指標として利用可能
- ARC-AGI-3ベンチマーク (2026年予定)に類似しつつ、既に存在する点が特徴
- ただし メインゲームの解答は既出 であり、ベンチマーク利用には工夫が必要
- プレイヤー作成の高品質レベルや新規メカニクス を活用すれば解答未公開の問題も用意可能
ゲーム状態の取得
- 視覚情報 の直接取得より、 ゲームファイル・Luaスクリプト の活用が有効
- Lua API (MF_read, MF_store, MF_getunits)で INI形式データ や レベル内オブジェクト情報 を取得
- オブジェクト情報 には UNITNAME, XPOS, YPOS, ZPOS などのプロパティ
- 勝利判定 はlevel_wonフックで取得
- Python MCPサーバ を介し、 Luaから状態テーブルをシリアライズ→Pythonで読み込み
- 座標グリッド表示 で、 重なったオブジェクトはZ値順に同セル内表示
- 方向情報は無視 し、 レベルサイズ(roomsizex等) でグリッド範囲を決定
ゲーム操作の自動化
- キー入力のシミュレーション は遅いため、 Luaのcommand(key,player_)関数 を直接利用
- undo() も利用可能
- 非同期呼び出し はLua側alwaysフックで コマンドファイルを監視・実行 する手法を採用
- Pythonサーバがコマンドを書き込み→Luaが即時実行
- コマンド実行は高速(50-150ms/リスト) で、 人間より素早い操作 が可能
レベル選択とクライアント実装
- レベル選択の自動化 は困難で、 マップ移動+pyautoguiによるEnterキー入力 で代用
- Claude Desktop をクライアントとして利用し、 ツール呼び出しやコンテキスト管理を自動化
- MCPでゲームルールやキーワードのヘルプ機能 も実装
AIモデルの現状と課題
- Claude 4 は レベル0(右へ8回)以外はほぼ解けない
- ルール把握、経路探索、入力パターン管理、勝敗判定 など全て苦手
- o3のような推論特化モデル での計画立案・コンテキスト管理が今後の課題
- トークン消費削減のための密度高い状態表現 や move_to()のような抽象化入力 も検討余地
- PULLやMOVEなど一部レベルでは完全制御が必須
- Baba is You any%自動攻略はまだ遠い目標
今後の展望
- 進捗や開発参加希望者向けにリポジトリ公開
- より良いアプローチやアイデアの募集
- AIによる一般化推論・自動パズル解決技術の発展期待