ドキュメント概要
OpenWar3 とは何か、何ができるか。クイックスタート、最初の Bot、LLM で Bot を書く、API・プロトコル、ゲートウェイ・MCP への入口。
OpenWar3 は War3AI のオープンインターフェース層です。Warcraft III 1.27 に注入するランタイムと、Python SDK で構成されています。
- ランタイムは 50 ms ごとに、マップ全体の完全な状態を共有メモリへプッシュします。全プレイヤーの資源と人口、全ユニットの HP・マナ、オーダー、攻撃中の相手、スキルのクールダウン、バフ、インベントリ、地面のアイテム、樹木、生産キュー、昼夜。さらにイベントストリームもあります。ユニットの出現と死亡、1 回ごとのダメージ、生産完了……
- 外部プログラムは約 1 フレームの遅延でセマンティックコマンドを発行できます。移動、攻撃、採集、建設、訓練、スペル使用、スキル習得、蘇生、アイテム使用、購入……すべてのコマンドにレシートが返り、エンジンが受理したかどうかと、受理されなかった場合の理由コードがわかります。
- 伝えるのは「何をするか」だけです。ユニットは 4 文字コード、スキルはオーダー名で指定し、ゲーム内の呼び方と一致します。「どう実現するか」はランタイムが担当します。
そのため LLM には低レベルの知識も、画面を見ることも必要ありません。ドキュメントを読めば、内政も戦闘もこなす Bot を書けます。対戦に出したあとは、レシートとイベントをもとに自分で修正していきます。
対戦だけではありません。キャンバス でゲーム画面に自分のパネルや注釈を描き、UI と入力 で描いたボタンをクリック可能にしたりホットキーに反応させたりでき、JASS チャネル で外部からゲーム内の 1291 個の関数を呼び出せます。RPG マップでは AI コンパニオン を連れて行くこともできます。作った AI は スキーム にまとめて、ワンクリックで切り替えたり、エクスポートして共有したりできます。新しい遊び方を丸ごと ゲームプレイ MOD として書くこともできます。
Python を書かなくても接続できます。ゲートウェイ を使えば、どんな言語やブラウザのページからでも WebSocket / JSON で同じ API を呼べます。MCP サーバー を使えば、Claude Code のような Agent がツールを直接呼び出して、局面を見たりコマンドを出したりできます。
あなたに合った読み方
| あなたは | まず読む | 次に |
|---|---|---|
| Warcraft はプレイするが、プログラミングはしない | クイックスタート → LLM で Bot を書く | 困ったら よくある質問 |
| Python が書ける | 最初の Bot → メンタルモデル → 15 のルール | プロ戦術クックブック、サンプル Bot |
| Coding Agent や自動化を作っている | Agent による自律反復 | レシートと理由コード、llms-full.txt |
| LLM にゲーム中の判断をさせたい | LLM をアドバイザーに | 頭上の吹き出しとローカルモデル |
| Agent に直接操作させたい(Claude Code など) | LLM がツールを直接呼び出す(MCP) | UI と入力 |
| 他の言語を使う(JS、C#、Go、Rust……) | ゲートウェイ | より低レベル:W3P プロトコル |
| 異なる人の AI 同士を対戦させたい | フェアモード | アリーナ |
| RPG / カスタムマップで自分だけの遊びを作りたい | ゲームプレイ MOD | UI と入力、キャンバス、JASS チャネル、RPG コンパニオン |
| 自分の AI を他の人と共有したい | AI スキーム | Farsight コンソール |
リポジトリの構成
start.bat 唯一の入口:ゼロからのデプロイ + Farsight を開く。stop.bat ですべてを完全に停止
sdk/python/ インターフェース層。openwar3/ が公開ファサード(Game + Bot)。ここから始めます
brains/ 意思決定層
examples/ hello_bot(経済)→ rush_bot(出兵)→ macro_bot(内政)→ micro_bot(マイクロ + クリーピング)、buddy(RPG コンパニオン)、
mod_hero_roguelike / mod_endless_defense(ゲームプレイ MOD)
xwar3/ リファレンスブレイン:戦略層(秒単位)+ リフレックス層(4 プロセス)+ 勝率モデル
console/ Farsight Web コンソール(FastAPI + React)
gateway/ ゲートウェイ(WebSocket / JSON)+ JS クライアント + ブラウザ用デモページ
director/ 自動カメラワーク、頭上の HP バー
speech/ 頭上のチャット吹き出し + ローカル LLM
runtime/ マルチインスタンス管理(設定に従ってゲームごとに再起動)
data/ order-ids.txt。自分のゲームからデータを抽出するツール
schemes/ あなたの AI スキーム(mine/)と他の人が共有したスキーム(installed/)。リポジトリには含めない
tools/ play.py(1 コマンドでゲーム起動)、run_scheme.py(スキームランナー)、war3_mcp.py(MCP サーバー)、run_tests.py、実機検証スクリプト
docs/ API カタログ api.json(コードから生成)、プロトコル、マニュアル
ランタイムとあなたのコードの間にあるのは、バージョン付きの W3P プロトコル だけです。Python SDK を使うのが一番手軽ですが、他の言語でもプロトコルに沿って接続できます。
API の「実測ステータス」とは
API カタログでは、各 API に次の 3 つのステータスのいずれかが付いています。
- 実機検証済み:内部の経路(アクション番号、引数の形、読み戻した効果)を実際の対戦で検証済みで、検証スクリプトで守られています。
- 実験的:新しく追加された API で、テストインスタンスでは動作を確認済み、項目ごとの実機検証を継続中です。使うことはできますが、API の細部は今後変わる可能性があります。
- 推定 / 未完全検証:内部メカニズムはエンジン自身のやり方(JASS の同等関数など)をそのまま踏襲していますが、対戦の中での項目ごとの確認はまだです。使う前にレシートを確認してください。
現在サポートしているのは Warcraft III 1.27(The Frozen Throne)のみです。1.24 〜 1.28 は同じエンジン構造で、複数バージョン対応は ロードマップ の P4 フェーズで行います。1.29 以降と Reforged は別のエンジンのため、対応の対象外です。