Частые вопросы

Это чит? Какие версии поддерживаются? Что ИИ видит и что умеет? Можно ли обойтись без программирования?…

Это чит?

Нет. Это интерфейс для разработчиков, созданный для исследований ИИ и развлечения. Он работает только с клиентом, которым вы владеете на законных основаниях: на вашем компьютере, в локальной сети или в собственных играх — против компьютера или других ИИ. Его нельзя использовать в Battle.net и на любых серверах с античитом, и в нём нет никаких функций для игр против живых людей. Подробнее — в условиях использования.

Какие версии игры поддерживаются?

Сейчас только Warcraft III 1.27 (The Frozen Throne). Версии 1.24 ~ 1.28 построены на одном и том же движке; поддержка нескольких версий (таблица символов под каждую версию, поиск по сигнатурам как запасной вариант, самопроверка при запуске со списком доступных возможностей) запланирована на этапе P4 дорожной карты. Версии начиная с 1.29 и Reforged — другой движок, их нужно адаптировать отдельно; пока мы этого не обещаем.

Изменяются ли мои файлы игры?

Нет. Рантайм внедряется во время работы игры и не изменяет Game.dll на диске и любые другие файлы игры. Для запуска нескольких копий оригинальный загрузчик War3.exe просто копируется под другим именем. Игровые данные (таблицы юнитов и т. п.) извлекаются из вашей собственной игры и вместе с кодом не распространяются.

Что видит ИИ?

По сути всё, что хотел бы знать профессиональный игрок, с обновлением каждые 50 ms:

  • золото, древесину и пищу всех игроков; позицию, здоровье и ману, текущий приказ, кого юнит сейчас атакует, уровень и опыт каждого юнита;
  • уровни способностей и оставшуюся перезарядку у героев и юнитов, баффы на них, инвентарь;
  • что тренирует / исследует / строит / улучшает каждое здание, какой прогресс и не застряло ли производство из-за нехватки пищи;
  • предметы на земле, деревья, сетку проходимости и пригодности для застройки, стартовые точки, игровое время (день и ночь);
  • поток событий: появление и гибель юнитов, каждый удар (кто ударил, тип атаки, урон до учёта брони), убийства, завершение производства, повышение уровня героя…
  • Кроме того, можно напрямую спросить движок: можно ли сейчас что-то сделать и почему нельзя; какой уровень у технологии; видна ли точка; сколько золота осталось в руднике; куда компьютерный противник поведёт армию.

Поверх этого SDK уже считает боевые характеристики (бонусы типов атаки и брони, броню, улучшения атаки и брони), «за сколько секунд его убить» и поиск пути по земле. Все методы — в каталоге API.

Что умеет ИИ?

Практически всё, что может игрок: движение, атака с движением, атака конкретной цели, стоп, удержание позиции, патруль, атака по земле, добыча, ремонт, строительство (с автоматическим поиском места), тренировка / исследование / улучшение, отмена, изучение способностей, применение способностей (на юнита / в точку / без цели), точка сбора, воскрешение героев, поднять / использовать / выбросить / передать / продать предмет, покупки, призыв к оружию; очередь через Shift, марш по точкам маршрута, постройка нескольких зданий одним рабочим подряд; а ещё скорость игры, пауза и облачка реплик над юнитами. На каждую команду приходит квитанция.

Помимо действий игрока, можно рисовать поверх игрового экрана собственные панели и пометки (холст), а в одиночной игре — вызывать 1291 функцию JASS, доступную авторам карт (JASS-канал).

Можно ли использовать на RPG / пользовательских картах?

Да. Выберите RPG-карту, назначьте экземпляру схему «Пример компаньона» (buddy), и после начала матча играйте сами — рядом с вами будет ИИ-напарник, который помогает в бою, лечит вас и болтает с вами; см. RPG-компаньон. g.map_data читает имена пользовательских юнитов карты; JASS-канал умеет создавать юнитов, настраивать союзы, открывать панели… Как играть — решать вам. Действия, меняющие мир, доступны только в одиночной игре (в многопользовательской возникнет рассинхронизация), а холст безопасен и в многопользовательской игре.

Можно ли пользоваться без программирования?

Да. Настройте окружение по быстрому старту, затем откройте страницу Пишем бота с помощью LLM: вы простыми словами описываете стиль игры, а LLM пишет код. Если что-то не работает, передайте ей текст ошибки или опишите, что видите в игре, — и попросите исправить.

Только Python?

SDK написан на Python. Между рантаймом и внешней программой есть только протокол общей памяти (W3P), так что подключиться может любой язык, умеющий читать и писать общую память Windows. Проще всего — через шлюз (WebSocket / JSON): те же методы можно вызывать из JS, C#, Go, Rust, со страницы в браузере и из программы на другой машине; LLM-агента можно подключить напрямую через MCP.

Какая LLM лучше?

Подойдёт любая популярная модель, умеющая писать код. Главное — не модель, а правильные материалы (руководство + api.json + один пример) и требование использовать только методы из каталога API. Решения в реальном времени по ходу матча (советник, озвучка) чувствительны к задержке — локальные MoE-модели справляются с ними очень хорошо, см. LLM как советник и Реплики и локальные модели.

Не замедлит ли это игру?

Один сбор состояния мира занимает в игровом потоке в медиане 0.5 ~ 0.9 ms (100 ~ 120 юнитов) и выполняется раз в 50 ms. Одна команда занимает в игровом потоке несколько микросекунд; на одну обработку очереди отводится бюджет 4 ms, а всё, что не успело выполниться, переносится на следующую, так что игру это не тормозит. Все вызовы в игру защищены обработкой исключений: если бот упал, останавливается только его сторона, а игра продолжает работать.

Можно ли запустить несколько игр одновременно?

Да. Оркестрацией нескольких экземпляров занимается runtime/farm.py, у каждого экземпляра свой номер; запускать и останавливать их можно из консоли Farsight. Ваш бот подключается к нужному экземпляру через --inst N.

Можно ли стравить двух ИИ?

Откройте в одном матче два канала player (--player 0 / --player 1) — это и есть ИИ против ИИ. В локальном режиме честность держится на договорённости; официальные бои с судьёй, фильтрацией по обзору и проверкой владения юнитами будут на Арене (этап P6).

Есть ли поддержка Mac / Linux?

Пока поддерживаются только Windows 10 / 11.

Какая лицензия?

Лицензия будет объявлена вместе с официальным релизом. Сторонние компоненты сохраняют свои лицензии (например, MinHook — BSD-2); у AMAI собственная лицензия, производные от неё данные с проектом не распространяются, а генерируются при установке из публичного репозитория AMAI.

Куда сообщать о проблемах?

Канал обратной связи откроется после официального релиза. В сообщении укажите номер экземпляра, вывод python -m openwar3 status и шаги воспроизведения. Но сначала загляните в Отладку и производительность — возможно, ответ уже там.