# ドキュメント概要

> OpenWar3 とは何か、何ができるか。クイックスタート、最初の Bot、LLM で Bot を書く、API・プロトコル、ゲートウェイ・MCP への入口。

出典: https://war3ai.com/ja/docs/

**OpenWar3** は War3AI のオープンインターフェース層です。Warcraft III 1.27 に注入するランタイムと、Python SDK で構成されています。

- ランタイムは **50 ms** ごとに、マップ全体の完全な状態を共有メモリへプッシュします。全プレイヤーの資源と人口、全ユニットの HP・マナ、オーダー、攻撃中の相手、スキルのクールダウン、バフ、インベントリ、地面のアイテム、樹木、生産キュー、昼夜。さらに**イベントストリーム**もあります。ユニットの出現と死亡、1 回ごとのダメージ、生産完了……
- 外部プログラムは**約 1 フレーム**の遅延で**セマンティックコマンド**を発行できます。移動、攻撃、採集、建設、訓練、スペル使用、スキル習得、蘇生、アイテム使用、購入……すべてのコマンドに**レシート**が返り、エンジンが受理したかどうかと、受理されなかった場合の理由コードがわかります。
- 伝えるのは「何をするか」だけです。ユニットは 4 文字コード、スキルはオーダー名で指定し、ゲーム内の呼び方と一致します。「どう実現するか」はランタイムが担当します。

そのため LLM には低レベルの知識も、画面を見ることも必要ありません。ドキュメントを読めば、内政も戦闘もこなす Bot を書けます。対戦に出したあとは、レシートとイベントをもとに自分で修正していきます。

対戦だけではありません。[キャンバス](https://war3ai.com/ja/docs/canvas/) でゲーム画面に自分のパネルや注釈を描き、[UI と入力](https://war3ai.com/ja/docs/ui-input/) で描いたボタンをクリック可能にしたりホットキーに反応させたりでき、[JASS チャネル](https://war3ai.com/ja/docs/jass/) で外部からゲーム内の 1291 個の関数を呼び出せます。RPG マップでは [AI コンパニオン](https://war3ai.com/ja/docs/companion/) を連れて行くこともできます。作った AI は [スキーム](https://war3ai.com/ja/docs/schemes/) にまとめて、ワンクリックで切り替えたり、エクスポートして共有したりできます。新しい遊び方を丸ごと [ゲームプレイ MOD](https://war3ai.com/ja/docs/mods/) として書くこともできます。

Python を書かなくても接続できます。[ゲートウェイ](https://war3ai.com/ja/docs/gateway/) を使えば、どんな言語やブラウザのページからでも WebSocket / JSON で同じ API を呼べます。[MCP サーバー](https://war3ai.com/ja/docs/mcp/) を使えば、Claude Code のような Agent がツールを直接呼び出して、局面を見たりコマンドを出したりできます。

  - [クイックスタート](https://war3ai.com/ja/docs/quickstart/): 環境を整え、1 コマンドでゲームを起動し、サンプル Bot が操作を引き継ぐのを確認します。
  - [LLM で Bot を書く](https://war3ai.com/ja/docs/ai-bot/): プログラミング不要。プロンプトをコピーし、戦術を説明して Agent に任せます。
  - [メンタルモデル](https://war3ai.com/ja/docs/concepts/): スナップショット、コマンド、レシート、イベント、ティック。Bot を書く前に 5 分で目を通してください。
  - [API カタログ](https://war3ai.com/ja/api/): すべての API に、実測ステータス、レイテンシ区分、内部メカニズムを記載しています。

## あなたに合った読み方

| あなたは | まず読む | 次に |
|---|---|---|
| Warcraft はプレイするが、プログラミングはしない | [クイックスタート](https://war3ai.com/ja/docs/quickstart/) → [LLM で Bot を書く](https://war3ai.com/ja/docs/ai-bot/) | 困ったら [よくある質問](https://war3ai.com/ja/docs/faq/) |
| Python が書ける | [最初の Bot](https://war3ai.com/ja/docs/first-bot/) → [メンタルモデル](https://war3ai.com/ja/docs/concepts/) → [15 のルール](https://war3ai.com/ja/docs/rules/) | [プロ戦術クックブック](https://war3ai.com/ja/docs/cookbook/)、[サンプル Bot](https://war3ai.com/ja/docs/examples/) |
| Coding Agent や自動化を作っている | [Agent による自律反復](https://war3ai.com/ja/docs/agent-loop/) | [レシートと理由コード](https://war3ai.com/ja/docs/reason-codes/)、[`llms-full.txt`](https://war3ai.com/ja/llms-full.txt) |
| LLM にゲーム中の判断をさせたい | [LLM をアドバイザーに](https://war3ai.com/ja/docs/llm-coach/) | [頭上の吹き出しとローカルモデル](https://war3ai.com/ja/docs/speech/) |
| Agent に直接操作させたい（Claude Code など） | [LLM がツールを直接呼び出す（MCP）](https://war3ai.com/ja/docs/mcp/) | [UI と入力](https://war3ai.com/ja/docs/ui-input/) |
| 他の言語を使う（JS、C#、Go、Rust……） | [ゲートウェイ](https://war3ai.com/ja/docs/gateway/) | より低レベル：[W3P プロトコル](https://war3ai.com/ja/docs/protocol/) |
| 異なる人の AI 同士を対戦させたい | [フェアモード](https://war3ai.com/ja/docs/fair-mode/) | [アリーナ](https://war3ai.com/ja/arena/) |
| RPG / カスタムマップで自分だけの遊びを作りたい | [ゲームプレイ MOD](https://war3ai.com/ja/docs/mods/) | [UI と入力](https://war3ai.com/ja/docs/ui-input/)、[キャンバス](https://war3ai.com/ja/docs/canvas/)、[JASS チャネル](https://war3ai.com/ja/docs/jass/)、[RPG コンパニオン](https://war3ai.com/ja/docs/companion/) |
| 自分の AI を他の人と共有したい | [AI スキーム](https://war3ai.com/ja/docs/schemes/) | [Farsight コンソール](https://war3ai.com/ja/docs/console/) |

## リポジトリの構成

```text
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 プロトコル](https://war3ai.com/ja/docs/protocol/) だけです。Python SDK を使うのが一番手軽ですが、他の言語でもプロトコルに沿って接続できます。

## API の「実測ステータス」とは

API カタログでは、各 API に次の 3 つのステータスのいずれかが付いています。

- **実機検証済み**：内部の経路（アクション番号、引数の形、読み戻した効果）を実際の対戦で検証済みで、検証スクリプトで守られています。
- **実験的**：新しく追加された API で、テストインスタンスでは動作を確認済み、項目ごとの実機検証を継続中です。使うことはできますが、API の細部は今後変わる可能性があります。
- **推定 / 未完全検証**：内部メカニズムはエンジン自身のやり方（JASS の同等関数など）をそのまま踏襲していますが、対戦の中での項目ごとの確認はまだです。使う前にレシートを確認してください。

> **補足**
>
> 現在サポートしているのは **Warcraft III 1.27**（The Frozen Throne）のみです。1.24 〜 1.28 は同じエンジン構造で、複数バージョン対応は [ロードマップ](https://war3ai.com/ja/roadmap/) の P4 フェーズで行います。1.29 以降と Reforged は別のエンジンのため、対応の対象外です。
