4 мин чтения Автор: EAT team

Есть ли ИИ-бот для Evony? Как компьютерное зрение и OCR управляют современным инструментом автоматизации

Что значит «ИИ» в боте для Evony: компьютерное зрение узнает экраны и кнопки, OCR читает числа и таймеры, планировщик решает, что делать дальше.

Эта запись переведена автоматически. Английская версия является эталонной. Читать на английском

Да, в том смысле, который важен: современный бот для Evony работает на тех же методах компьютерного зрения и оптического распознавания символов (OCR), на которых держится многое из того, что сегодня называют ИИ. Он смотрит на скриншоты игры, узнает на них кнопки, значки, карточки и числа и решает, куда нажать дальше. Это не чат-бот, и он не использует большую языковую модель, чтобы играть. Ниже о том, что на самом деле делает «ИИ» в боте для Evony и почему именно такая архитектура продолжает работать после каждого обновления игры.

Проблема: бот видит только пиксели

Эмулятор дает боту две вещи: скриншоты и способ отправлять нажатия. Меню, у которого можно спросить «открыто ли ралли?», нет. Боту нужно посмотреть на картинку и понять это самому, сотни раз в минуту, на экране, который меняется с каждым всплывающим окном, баннером события и обновлением игры. Это задача восприятия, а восприятие это то, для чего нужно компьютерное зрение.

Уровень 1: распознавание экранов и кнопок

Первая задача: понять, где вы находитесь. Город, карта, список ралли, Таверна, всплывающее окно. Бот хранит библиотеку эталонных изображений, то есть небольших фрагментов кнопок, значков и надписей, которые показывает игра, и сопоставляет их с текущим скриншотом. Когда кнопка «Join» на карточке ралли совпадает с высокой уверенностью, бот знает, что карточка ралли есть, и знает, куда нажать. Та же техника распознает значок босса на карточке ралли, экран кормления дракона, секторы Колеса фортуны, товары Черного рынка и сотни других вещей, с которыми работает ежедневный цикл.

Две детали делают это сложнее, чем кажется. На слабых устройствах игра рисуется мягче, поэтому эталон, снятый на мощном ПК, может слабо совпадать на ноутбуке, и пороги сопоставления приходится подбирать для каждого экрана с учетом этого. А еще игра меняет графику с обновлениями, поэтому часть поддержки бота это повторная съемка эталонов после каждого патча и проверка на разных эмуляторах.

Уровень 2: чтение чисел и текста

Недостаточно знать, что открыт экран марша: боту нужно прочитать время марша, количество войск, выносливость, уровень клетки, оставшиеся места в ралли. Это OCR: бот вырезает область, где находится число, и запускает на ней распознавание текста. Именно OCR позволяет боту для ралли отказаться от ралли без свободных мест, боту для фарма выбрать клетку 6 уровня вместо 4, а планировщику знать, что марш вернется через 14 минут, а не гадать.

OCR на игровых шрифтах требует отдельного мастерства. Числа с контуром, цветным фоном и крошечным размером сбивают универсальные распознаватели, поэтому области подбираются для каждого экрана, а результаты проверяются на здравый смысл (выносливость 9 000 это ошибка чтения, а не чудо).

Уровень 3: решение, что делать

Восприятие отвечает на вопрос «что на экране». Планировщик отвечает на вопрос «что должно произойти дальше». Он хранит список задач для каждого аккаунта, их приоритеты и таймеры: марши на сбор возвращаются в известное время, боссы появляются по известному расписанию, постройки событий открываются и закрываются по календарю, ежедневные задания сбрасываются в фиксированный час. Планировщик выбирает следующую задачу, передает экран логике задачи, а задача использует уровни 1 и 2, чтобы ее выполнить, с проверками перед любым рискованным действием, например отправкой марша.

На этом уровне живет календарь событий в приложениях, включая сообщения сообщества о том, когда события заканчиваются на самом деле, и здесь же ротация эмуляторов решает, какие аккаунты работают сейчас, а какие ждут.

Почему не большая языковая модель?

Языковые модели хороши в языке. Игра в Evony это задача восприятия и тайминга: увидеть экран, прочитать число, нажать в пределах секунды и повторять всю ночь без сбоев. Конвейер компьютерного зрения делает это надежно и дешево на вашем собственном ПК, а языковая модель в цикле была бы медленной, дорогой и не лучше узнавала бы кнопку Join. Языковые модели полезны вокруг бота: поиск по документации, поддержка и инструменты для тех, кто его разрабатывает. Внутри цикла работают зрение, OCR и планировщик.

Что это значит для вас как пользователя

  • Настройки экрана важны. Разрешение, графический режим и версия игры это входные данные для уровня зрения, поэтому руководство по настройке такое конкретное.
  • Обновления это нормально. После патча игры эталоны и области заново снимаются, и исправлением становится обновление бота. Держите предыдущую версию игры, пока оно не выйдет.
  • Проверки это функции. Проверка марша перед отправкой и проверки результатов OCR на здравый смысл не дают ошибке чтения стоить вам войск.

Если хотите увидеть, как это работает, создайте бесплатный аккаунт, скачайте приложение и следите за логом во время работы: каждая строка это бот, который сообщает, что он распознал и что решил.

Часто задаваемые вопросы

Использует ли бот для Evony ИИ?

Он использует компьютерное зрение и OCR, которые относятся к методам ИИ: распознает кнопки и экраны на скриншотах и читает с них числа, а затем планировщик решает, что делать дальше. Чат-бот или большая языковая модель для игры не используются.

Может ли ChatGPT играть в Evony за меня?

Практически нет. Игра это задача восприятия и тайминга: распознать экран, прочитать число, нажать в пределах секунды, и так всю ночь. Конвейер зрения на вашем ПК делает это надежно, а языковая модель была бы медленной, дорогой и не лучше распознавала бы кнопку.

Почему бот ломается после обновления игры?

Потому что он узнает игру по внешнему виду. Когда обновление меняет графику, раскладку или шрифты, часть эталонных изображений и областей OCR перестает совпадать, пока их не снимут заново. Поэтому стандартный совет такой: держите предыдущую версию игры, пока не выйдет обновление бота.

Читает ли бот память игры или сетевой трафик?

Нет. Наши приложения работают по скриншотам и нажатиям через эмулятор, как игрок. Инструменты, которые внедряются в клиент игры или обращаются к ее серверам, ломаются после каждого патча и быстрее всего приводят к бану.

Попробуйте на своём аккаунте

Создайте бесплатный аккаунт, скачайте Emulator Automation Tool или ESB-TKR и следуйте Документации. Поддержка в Discord.