August 17, 2019

IITC: незаменимый помощник ингрессера

Планирование операций в Ingress, сохранение перечня хотя бы раз захваченных порталов, визуализация перемещений игроков и даже проведение неофициальных аномалий — это лишь малая часть возможностей неофициальной карты для Ingress, ставшей must have для сотен тысяч игроков по всему миру.

Привет, друзья. Я агент modos189 и расскажу о запущенном проекте IITC-CE, одним из разработчиков которого я являюсь.

Что такое IITC?

Ingress Intel Total Conversion (IITC) — это дополнение, работающее поверх официальной Ingress карты Intel. IITC полностью меняет метод работы с картой, значительно повышает производительность за счёт задействования аппаратного ускорения и расширяет возможности с помощью использования плагинов.

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

Скриншот окна IITC с несколькими установленными плагинами

Например, IITC вместе с плагином Draw tools широко используется при планировании операций с помощью рисования будущих линков и полей, а плагин Cross links подсвечивает мешающие линки. 

Скриншот окна IITC с множеством плагинов

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

На скриншоте видно, как плагин Mini map выводит уменьшенную карту видимой области карты в левом нижнем углу, плагин Scoring cycle сообщает о начале и окончании игрового цикла, Portal names выводит названия порталов над ними, Player activity tracker позволяет следить за игроками по логу их действий (разрушению резонаторов, захвату порталов) и строить примерный маршрут их перемещений, а тип карты Google Roads + Traffic показывает пробки на карте, чтобы не отвлекаясь от карты выбрать оптимальный маршрут.

Не секрет, что IITC ещё со времён запуска проекта используют фракционные операторы на официальных аномалиях для координации игроков, но для меня было неожиданным применение IITC для проведения своей собственных аномалий в Санкт-Петербурге и Москве. Кластеры, шарды, ограниченная зона игры и хорошее настроение — всё как на официальных мероприятиях от Niantic Labs.

Карта зоны игры после одной из отсечек

Хотя IITC является модификацией официальных инструментов Ingress и, вероятно, противоречит условиям предоставления услуг, он очень популярен среди агентов, особенно при планировании и проведении крупномасштабных операций. Похоже, Niantic это молчаливо принимает.

История IITC

Скриншот одной из первых версий IITC

В начале 2013 года Stefan (breunigs) Breunig запустил проект Ingress Intel Total Conversion. IITC был революционным по сравнению в тогдашней официальной картой. Скриншоты выше показывают ранние его версии. IITC был быстрее, чем обычная карта и содержал разные интересные фичи. Уже тогда он мог следить за игроками по логу их действий и строить примерный маршрут их перемещений, что помогало находить фермы и видеть агентов на карте. Эта возможность сильно поспособствовала его популярности.

Скриншот одной из первых версий IITC. Результат работы плагина Player tracker

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

Да особо нечего рассказать. Разговор с Ниантиком выглядел как-то так:
— Вы не против IITC?
— Против. (Их ответ был похож на шаблонный.)
Я решил, что не хочу проверять, какие шаги последуют далее, и убрал весь код из репозитория. Не помню точное содержание их ответа, я не храню электронную почту так долго. Но там не было скрытых или явных угроз, скорее что-то типа «нарушение прав, пожалуйста, удалите».
Уже не вспомню, почему я вообще решил у них спросить, но сейчас это выглядит довольно глупо с моей стороны.

— breunigs / Stefan Breunig

Проект был закрыт, а его репозиторий на Гитхабе удалён, но его сразу же 16 марта 2013 года восстановил у себя jonatkins, который успел скопировать себе оригинальный репозиторий. Он и другие участники поддерживали IITC в актуальном состоянии при обновлениях игры и стандартной карты, а также добавили множество фич в виде плагинов.

Одна из ранних версий мобильного IITC

Тогда IITC стал базой для многих инструментов внутри фракций, на нём были основаны куча приложений и плагинов. В 2016 году страница проекта уже имела 44 000 плюсов на Google+, что говорит о большой популярности у пользователей.

В начале декабря 2013 года произошёл инцидент, после которого некоторых пользователей IITC забанили. Официальная карта Intel была обновлена, и некоторая плохо написанная часть IITC, предназначенная для работы с предыдущей версией, начала генерировать большое количество сетевых запросов и стала причиной серьезной нагрузки на серверы Ingress. Ниантик забанил некоторых пользователей именно за это.

Это был единственный инцидент, и IITC принял меры, чтобы избежать подобного в будущем. По имеющимся данным, после проведённой в 2014 году общественной кампании в социальных сетях #IntelIsNotACrime в поддержку IITC, ни один агент не был забанен за использование IITC.

Ноутбук с запущенным IITC на официальной фотографии Niantic

29 марта 2017 года IITC был замечен на фотографии от Niantic с местоположением лагеря Наварро в Калифорнии, где проходило событие Magnus Reawakens.

К сожалению, в феврале 2016 года стало известно, что Jon Atkins решил свести своё участие в проекте к минимуму и обновлять его только при поломке. Сторонние разработчики продолжали предлагать уже даже готовые улучшения и плагины, однако эти изменения всё реже принимались. Проект начал медленно умирать.

5 ноября 2018 года был запущен Ingress Prime, а 30 октября 2018 года Niantic Labs изменила адрес к карте Intel, поэтому агентам приходилось либо самим вносить правки в скрипт, либо использовать чьи-то сборки.

Niantic Labs пообещала заняться обновлением карты Intel после отключения старого сканера в конце сентября 2019 года, а это означает, что старый IITC перестанет работать.

Работа Giuseppe Lucido

Поэтому в конце ноября 2018 года я решил заняться продолжением поддержки проекта и запустил IITC Community Edition.

Довольно быстро стали приходить первые отзывы, а некоторые люди и сами подключились к разработке. По итогу я принял часть внутренних изменений, предложенных различными разработчиками, не считая моих собственных улучшений. Особо хочется выделить вклад MikeLambert, johnd0e и McBen, все они внесли значительный вклад в проект.

Изменения были внесены как во внутренних частях IITC (обновлены сторонние библиотеки, повышена производительность, исправлены некоторые баги), так и в пользовательском интерфейсе и плагинах. Например, мобильное приложение получило материальный дизайн, плагин Draw tools был адаптирован для управления с мобильного телефона, был исправлен плагин синхронизации данных между устройствами пользователя, добавлены новые карты, появилась возможность перейти к порталу по нажатию на кнопку рядом с названием портала в окне информации.

Браузерное дополнение IITC-Button

Было создано специальное браузерное расширение IITC-Button для Firefox и Chrome, упрощающее установку IITC и управление плагинами. Благодаря этому для установки нового плагина стало достаточно выбрать его из списка, причём большинство плагинов запускаются без перезагрузки страницы с картой.

Что касается сторонних плагинов, на данный момент подготовленные для старых версий IITC плагины продолжают поддерживаться, однако если при работе используются устаревшие, ныне удалённые возможности сторонних библиотек Leaflet или jQuery, то потребуется их обновить на новые версии библиотек. Об этом можно найти информацию в интернете в темах таких библиотек. Но, безусловно, когда-то совместимость будет поломана, и в этом случае в репозитории будет описан процесс обновления плагинов.

Планы на развитие

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

Также я планирую постепенно переводить IITC на фреймворк Vue.js. Это позволит как значительно упростить разработку и поддержку, так и добавит возможность перевода на другие языки, что поможет понизить порог входа для пользователей. Кстати, уже сейчас IITC-CE переведён на японский и китайский, но для этого требуется установка специально подготовленной версии.

Концепт обновлённого дизайна от InexCode

Из планов на далёкое будущее — хочется обновить визуальный вид IITC. В нашем местном комьюнити это было очень хорошо принято, и агенты даже нарисовали несколько довольно красивых макетов того, как они видят IITC, один из которых от InexCode изображён выше. 

Вопросы безопасности

Так же, как и старый IITC, новый никуда не рапортует об используемых пользователем плагинах, потому можно не бояться запускать секретные плагины фракций. Прогресс разработки полностью открыт на GitHub, а в развитии принимают участие множество людей из обеих фракций.

Некоторые новые игроки с настороженностью смотрят на авторизацию методом ввода логина-пароля на сайте Google, что привычно для веб-версии, но уже всё реже встречается на мобильных устройствах. К сожалению, здесь мы ничего не можем предпринять, так как IITC работает поверх официальной карты Intel, использующей такой метод авторизации, а IITC отправляет запросы на сервера Niantic также, как это делает официальная карта Intel.

Как установить IITC-CE

IITC-CE доступен для Android в Google Play и iOS в App Store, а также для Firefox и Chrome.

Есть и альтернативные пути установки: apk для Android и традиционные UserScripts для десктопных браузеров, для установки которых нужен менеджер пользовательских скриптов, такие как GreaseMonkey или TamperMonkey.

Новости проекта можно читать либо на сайте, либо на канале IITC News. Также был запущен сабреддит /r/IITC и группа в телеграм для дискуссий.

Устанавливайте IITC-CE на всех своих устройствах, чтобы получить лучшую карту для Ingress. Присоединяйтесь к каналу и группе, а если есть возможность — помогите в разработке, чтобы сделать карту для нашей любимой игры ещё лучше.