Мы искали чистую подложку для планировщика клановых войн — а в итоге собрали бесплатный инструмент, который достаёт карты прямо из файлов игры и умеет то, чего нет ни у одной существующей карты. Плюс — важный апдейт по новому OCR.
карты
Для встроенного планировщика отрядов нам нужна была карта арены — но именно чистая: без меток баз, точек игроков, иконок и интерфейса. Оказалось, что такой готовой картинки попросту нигде нет: ни в самой игре её не «достать», ни в комьюнити-картах (они все с разметкой).
Тогда мы пошли вглубь и разобрали, как игра вообще хранит карту. Выяснилось, что миникарта —
это, по сути, блочные данные в стиле Minecraft, лежащие в локальном кэше игры. Распутав формат,
мы научились собирать из них полноценное изображение вида сверху — в масштабе
1 пиксель = 1 блок, ровно как это рисует сама игра, но начисто.
В процессе всплыла приятная неожиданность: тем же методом можно «снять крышу» со зданий и увидеть их внутреннюю планировку — стены, проходы, комнаты. Ни внутриигровая карта, ни одна из существующих комьюнити-карт так не умеет. Для подготовки к КВ это принципиально новый уровень: можно заранее изучить раскладку построек, а не только улицы.
Что в итоге умеет инструмент:
Инструмент выложен бесплатно и открыто как отдельное дополнение к SCWA — github.com/sahabush/stalcraft-zone-map-extractor. Он только читает ваш локальный кэш игры, ничего в ней не меняет, не лезет в сеть и не даёт преимуществ в бою — он лишь показывает то, что вы и так видите на карте, просто чище и нагляднее. Готовые карты лягут в основу нашего планировщика клановых войн.
Честная оговорка: добиться точь-в-точь игровых цветов пока не выходит — для этого нужно либо вручную перебирать палитру блоков, либо пробивать обфускацию клиента EXBO. Так что цвета близкие, но не идентичные. Переживём, хехе.
под капотом
Новый движок распознавания таблиц КВ, о котором мы рассказывали в прошлых девлогах, практически готов. Пока мы аккуратно экспериментировали с ним на реальных данных — и на тестах инфраструктуры выяснилось, что в текущем виде связка непригодна: всплыла неожиданная проблема.
Старый алгоритм-постобработчик писался под «мусорный» вывод Tesseract — он заточен вычищать именно его ошибки. И когда мы скормили ему чистый вывод нового движка, он начал буквально ломаться: исправлять то, что и так верно, и плодить ошибки на ровном месте.
Иными словами, новый движок настолько точнее, что старая «чистилка» стала ему мешать. Мы уже написали новый постобработчик под чистый вывод — и в ближайшее время надеемся открыть новый OCR для пользователей. Делаем всё по порядку, чтобы релиз был стабильным.
поддержать
Инструмент карт мы выкладываем бесплатно для сообщества, а планировщик КВ будет доступен без подписки. Развитие сервиса и перевод нового OCR на круглосуточную работу требуют своей инфраструктуры и напрямую зависят от вашей поддержки — чем больше кланов с нами, тем быстрее всё это выходит в свет.