ドキュメント はじめに

ドキュメント概要

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 / カスタムマップで自分だけの遊びを作りたいゲームプレイ MODUI と入力、キャンバス、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 は別のエンジンのため、対応の対象外です。