Обзор документации
Документация OpenWar3: что это и что умеет; быстрый старт, первый бот, LLM пишет бота, API и протокол, шлюз и MCP — с какой страницы начать чтение в вашей ситуации.
OpenWar3 — открытый интерфейсный слой War3AI: рантайм, внедряемый в Warcraft III 1.27, плюс Python SDK.
- Каждые 50 ms рантайм выкладывает в общую память полное состояние всей карты: ресурсы и пищу всех игроков; здоровье и ману каждого юнита, его приказ, кого он сейчас атакует, перезарядку способностей, баффы и инвентарь; предметы на земле, деревья, очереди производства, время суток. Плюс поток событий: юниты появляются и гибнут, каждый отдельный удар, завершение производства…
- Внешняя программа отдаёт семантические команды с задержкой около одного кадра: движение, атака, добыча, строительство, тренировка, применение и изучение способностей, воскрешение, использование предметов, покупки… На каждую команду приходит квитанция: принял ли её движок, а если нет — код причины.
- Вы говорите только «что сделать»: юниты задаются четырёхсимвольными кодами, способности — строками приказов, как в самой игре. «Как это сделать» — забота рантайма.
Поэтому LLM не нужны никакие низкоуровневые знания и не нужно смотреть на экран. Прочитав документацию, модель пишет бота, который умеет вести экономику и воевать, а после выхода на карту сама дорабатывает его по квитанциям и событиям.
И не только бои: холст рисует поверх игрового экрана ваши собственные панели и пометки, с интерфейсом и вводом нарисованные кнопки нажимаются, а горячие клавиши срабатывают, JASS-канал позволяет извне вызывать 1291 функцию игры, а на RPG-картах можно взять с собой ИИ-компаньона. Готовый ИИ можно оформить как схему — переключение в один клик, экспорт для обмена; целый новый геймплей можно написать как игровой мод.
Подключиться можно и без Python: шлюз позволяет вызывать те же методы по WebSocket / JSON из любого языка и со страницы в браузере, а MCP-сервер даёт агентам вроде Claude Code напрямую вызывать инструменты — смотреть обстановку и отдавать команды.
Выберите путь под свою ситуацию
| Кто вы | С чего начать | Что дальше |
|---|---|---|
| Играете в Warcraft, но не программируете | Быстрый старт → Пишем бота с помощью LLM | Если возникнут вопросы — частые вопросы |
| Знаете Python | Первый бот → Ментальная модель → Пятнадцать правил | Приёмы профи, Примеры ботов |
| Делаете coding-агента или автоматизацию | Автономные итерации агента | Квитанции и коды причин, llms-full.txt |
| Хотите, чтобы LLM принимала решения по ходу матча | LLM как советник | Реплики и локальные модели |
| Хотите, чтобы агент сам управлял игрой (Claude Code и т. п.) | LLM вызывает инструменты (MCP) | Интерфейс и ввод |
| Пишете на другом языке (JS, C#, Go, Rust…) | Шлюз | Уровнем ниже: протокол W3P |
| Хотите стравить ИИ разных авторов | Честный режим | Арена |
| Хотите придумать свой геймплей на RPG / пользовательской карте | Игровые моды | Интерфейс и ввод, Холст, JASS-канал, RPG-компаньон |
| Хотите поделиться своим ИИ с другими | ИИ-схемы | Консоль 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 (игровые моды)
xwar3/ Эталонный мозг: стратегический слой (секунды) + рефлекторный слой (4 процесса) + модель шансов на победу
console/ Веб-консоль Farsight (FastAPI + React)
gateway/ Шлюз (WebSocket / JSON) + JS-клиент + демо-страница для браузера
director/ Автооператор камеры, полоски здоровья над юнитами
speech/ Облачка реплик над юнитами + локальная LLM
runtime/ Оркестрация нескольких экземпляров (каждый матч перезапускается по настройкам)
data/ order-ids.txt; инструменты для извлечения данных из вашей собственной игры
schemes/ Ваши ИИ-схемы (mine/) и схемы, которыми поделились другие (installed/); в репозиторий не попадают
tools/ play.py (матч одной командой), run_scheme.py (запуск схем), war3_mcp.py (MCP-сервер), run_tests.py, скрипты проверки в реальной игре
docs/ Каталог API api.json (генерируется из кода), протокол, руководство
Между рантаймом и вашим кодом — только версионированный протокол W3P: проще всего работать через Python SDK, но можно подключиться по протоколу и с любого другого языка.
Что означает «статус проверки» метода
В каталоге API у каждого метода указан один из трёх статусов:
- Проверено в реальных играх: низкоуровневый путь (номер действия, форма аргументов, считанный результат) проверен в настоящих матчах, и его охраняют скрипты проверки.
- Экспериментальный: новый метод, уже работает на тестовом экземпляре, проверка в реальной игре идёт по пунктам. Пользоваться можно, но детали интерфейса ещё могут измениться.
- Выведено / не полностью проверено: механизм повторяет то, как это делает сам движок (например, эквивалентная функция JASS), но ещё не проверен в матчах пункт за пунктом. Перед использованием смотрите на квитанцию.
Сейчас поддерживается только Warcraft III 1.27 (The Frozen Throne). Версии 1.24 ~ 1.28 устроены на одном и том же движке; поддержка нескольких версий запланирована на этапе P4 дорожной карты. Начиная с 1.29, а также Reforged — это другой движок, и их поддержку мы не обещаем.