Быстрый старт

Дважды щёлкните start.bat — всё установится само; укажите папку игры в Farsight и запустите партию, чтобы посмотреть, как управление берёт пример бота. Около 15 минут.

Что понадобится

ТребованиеПояснение
СистемаWindows 10 / 11, 64-битнаяПока поддерживается только Windows
ИграWarcraft III 1.27a (The Frozen Throne, Game.dll 1.27.0.52240)Ваш собственный легально приобретённый клиент; никакие файлы игры на диске не изменяются

Больше ничего заранее ставить не нужно. start.bat скачивает только одно: Python 3.13 (официальный портативный пакет, около 14 МБ) — в папку bin\env\ репозитория, права администратора не нужны, системный PATH не меняется, в китайских сетях автоматически выбираются зеркала; если на компьютере уже есть рабочий Python, используется он. PowerShell берётся тот, что уже есть в Windows; веб-интерфейс Farsight поставляется вместе с репозиторием уже собранным, Node.js не нужен.

Установка

  1. Получите код

    git clone https://github.com/OPENXXAI/OpenWar3AI.git

    Или скачайте архив и распакуйте его. Рантайм (внедряемая DLL и загрузчик) поставляется вместе с репозиторием, отдельно скачивать его не нужно.

  2. Дважды щёлкните start.bat

    При первом запуске он сам:

    • скачает Python 3.13;
    • установит пакеты Python, проверит файлы рантайма и установит их;
    • скачает данные AMAI и сгенерирует из них стратегические данные для эталонного мозга (у AMAI собственная лицензия, сгенерированное в git не попадает; сбой затронет только эталонный мозг);
    • откроет главную страницу Farsight «Центр управления» http://127.0.0.1:8866.

    Результат каждого шага выводится на экран, а для неудавшегося шага скрипт подскажет, как это исправить. В дальнейшем каждый двойной щелчок — лишь проверка на одну-две секунды, после чего открывается Farsight.

    Чёрное окно через несколько секунд закроется само: Farsight продолжает работать в фоне и не остановится, даже если закрыть браузер.

  3. Укажите папку игры в «Центре управления»

    В самом верху «Центра управления» можно нажать «Найти автоматически» или выбрать папку Warcraft III самостоятельно через «Обзор…». Farsight проверит версию игры и извлечёт данные из вашей собственной копии игры (таблицы юнитов, способности, предметы, таблица контр… файлы Blizzard вместе с кодом не распространяются).

    Если версия не 1.27a, вы увидите предупреждение. Карты и настройки следующего матча задаются относительно этой папки (можно выбрать карту из любой подпапки <папка игры>\Maps); сменить папку позже можно на странице «Настройки».

  4. Запустите партию и отдайте управление примеру бота

    Проще всего — на странице Farsight «Экземпляры и запуск» отметить номер экземпляра, выбрать ИИ-схему и нажать «Начать тест». Можно и из командной строки:

    python tools/play.py --bot brains/examples/hello_bot.py

    Эта команда запускает экземпляр игры, внедряет рантайм, автоматически начинает партию и затем запускает бота. Если крестьяне пошли на рудник, а ратуша начала нанимать крестьян — всё работает.

    python в команде — это интерпретатор, записанный в openwar3.json; тот, что установил сам start.bat, лежит в bin\env\python\python.exe.

start.bat и stop.bat

start.bat              # проверка развёртывания + открыть Farsight
start.bat setup        # полная проверка: переустановить пакеты Python, повторить AMAI
start.bat restart      # перезапустить только бэкенд Farsight (игры и службы не затрагиваются)
start.bat node         # заодно установит Node.js (нужен только для предпросмотра сайта, обычно не нужен)
start.bat 5 6          # заодно начать тест на экземплярах 5 и 6 (игра + эталонный мозг)
stop.bat               # полностью остановить всё; stop.bat --keep-llm оставляет локальную модель в видеопамяти

Шлюз, облачка реплик и локальная LLM тоже запускаются и останавливаются в «Центре управления» Farsight — искать другие скрипты не нужно. Полная остановка: дважды щёлкните stop.bat или нажмите «Остановить всё» в правом верхнем углу «Центра управления» — по очереди остановятся экземпляры игры, ИИ, шлюз, облачка, локальная модель, которую использует система, и бэкенд Farsight. MCP-сервер принадлежит клиентам вроде Claude и не останавливается.

Файл конфигурации

openwar3.json автоматически записывают start.bat и Farsight; в нём хранятся только локальные пути, в git он не попадает. Чтобы изменить порты, адрес локальной LLM или имя модели, укажите по образцу openwar3.example.json только то, что от него отличается.

Параметры play.py

python tools/play.py --bot my_bot.py --inst 9 --race 2 --enemy-race 1 --difficulty 3 --speed 200
python tools/play.py --bot my_bot.py --inst 9 --attach      # игра уже запущена, только подключаем Bot
python tools/play.py --bot my_bot.py --fair                 # честный режим: видно только то, что в зоне обзора
ПараметрПо умолчаниюОписание
--botобязателенПуть к файлу бота (в файле должен быть подкласс Bot)
--inst9Номер экземпляра. Не занимайте номер уже работающего экземпляра (какие номера заняты, видно на странице Farsight «Экземпляры и запуск»)
--race1Наша раса: 1 Люди, 2 Орда, 3 Нежить, 4 Ночные эльфы
--enemy-race0Раса противника
--difficulty2Сложность компьютерного противника: 2 лёгкая, 3 обычная, 4 безумная
--speed100Скорость игры (в процентах, 200 = скорость 2×)
--mapdefault_map из конфигурацииКарта
--attachНе запускать игру, только подключиться к уже работающему экземпляру
--hz5Сколько раз в секунду вызывать on_tick
--minutes60Максимальная длительность в минутах (реального времени)
--fairЧестный режим
--playerОт имени игрока с каким номером командовать (для матчей AI против AI)

Не запускайте игру с --minimize: когда окно свёрнуто, симуляция игры стоит (часы не идут), и бот так и не дождётся начала партии.

Можно обойтись и без play.py и подключиться к уже работающему экземпляру через командную строку SDK:

python -m openwar3 run brains/examples/hello_bot.py --inst 5     # запустить Bot
python -m openwar3 status --inst 5                              # подключиться и вывести состояние снимка / быстрой полосы
python -m openwar3 catalog                                      # вывести каталог API

Когда всё заработало

Самопроверка

python tools/run_tests.py          # SDK / эталонный мозг / рефлекторный слой / консоль / реплики / примеры — каждый набор в отдельном подпроцессе

Офлайн-тестам запущенная игра не нужна. В «Центре управления» Farsight тоже есть проверка окружения — там видно, все ли части установлены.