Обзор документации

Документация 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 — это другой движок, и их поддержку мы не обещаем.