Несколько лет делаю помощника по Dota 2: как пет-проект превратился из базы знаний в приложение

Привет! Я продуктовый дизайнер, немного разработчик и просто любитель иногда покатать в доту пару каток вечерком. Последние 3 года в свободное время делаю околоигровое приложение по Dota 2.

Несколько лет делаю помощника по Dota 2: как пет-проект превратился из базы знаний в приложение

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

Если коротко, сейчас внутри:
- база героев и предметов под актуальный патч
- анимации, способности, таланты и фильтры
- гайды и квизы для новичков
- Smart Picker для драфта
- 9 языков и обновление данных без обновления приложения

Это не игра, а скорее помощник: тут есть база героев, предметов, гайды и пикер, помогающий в выборе героя на стадии драфта.

Почему я вообще за это взялся

Dota 2 — игра, в которую очень сложно вкатываться. Даже если ты уже понимаешь базовые правила, дальше начинается веселая часть: больше сотни героев, куча предметов, постоянные патчи, таланты, способности, нейтральные предметы, контрпики, роли и миллион “а опять слили за две секунды”.

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

Изначально идея была довольно простой: сделать удобную базу знаний по героям и предметам. Но со временем проект начал разрастаться.

Один из первых экранов приложения. В этот момент научился корректно обрабатывать данные с сайта доты
Один из первых экранов приложения. В этот момент научился корректно обрабатывать данные с сайта доты

С чего начался проект

Первой версией была простая база знаний по героям и предметам. Тогда я хотел просто собрать в одном месте актуальную инфу по текущему патчу: все характеристики, способности, таланты, роли, аспекты (когда они еще были).

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

Делал все в Figma, вся документация тоже в разрозненном виде хранилась там
Делал все в Figma, вся документация тоже в разрозненном виде хранилась там

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

Так постепенно появилась полноценная энциклопедия героев.
P.S. пока писал этот блок даже умудрился найти пару багов

Энциклопедия героев

Сейчас в приложении есть база по всем героям Dota 2 под актуальный патч.

Что внутри:

- Характеристики героя с учетом уровней
- Способности с подробными и скрытыми описаниями
- Показываю дерево талантов
- Подсветка влияния талантов внутри способностей
- Фильтры по ролям, типу атаки и способностям на общей странице героев
- Анимации героев и способностей.

Отдельно я старался сделать отображение способностей близким к тому, как это выглядит в самой игре. С одной стороны, хотелось сохранить ощущение Доты, с другой — не превратить экран в перегруженный игровой интерфейс.

Предметы: оказалось не все так просто как с героями

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

Сейчас в приложении можно смотреть:
- стоимость предмета
- атрибуты и способности
- из чего он собирается
- во что он улучшается
- обычные, нейтральные, зачарования и специальные предметы

Как выглядят экраны с предметами
Как выглядят экраны с предметами

Гайды: попытка помочь новичку не утонуть в информации

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

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

Сейчас внутри есть статьи для новичков и квизы после прочтения. Квизы нужны не ради “геймификации ради геймификации”, а чтобы человек мог быстро проверить, понял ли он материал. Прочитал статью про роли — ответил на несколько вопросов. Прочитал про предметы — проверил, понял ли, зачем они покупаются и в каких ситуациях.

Раздел гайдов и статей
Раздел гайдов и статей

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

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

Пример квиза
Пример квиза

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

Пикер: самая сложная и спорная часть

С недавних пор появился новый модуль — Smart Picker. Это попытка сделать помощника для стадии драфта.

Когда выбраны все герои, можно сходу оценить то как скомбинированы команды
Когда выбраны все герои, можно сходу оценить то как скомбинированы команды

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

Но на практике все сложнее, потому что “хороший пик” в Доте зависит от кучи факторов: Против кого стоит герой, с кем он играет в команде, на какой позиции его берут, что уже есть в составе и чего команде не хватает в данный момент: урона, контроля, пуша, стойкости и т.д.

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

В первом разделе я могу отправить героев в бан, либо в любую из команд, но так же провалиться в самого героя, если нужно. Отдельные табы покажут еще больше инфы по тому как команды собраны относительно друг друга
В первом разделе я могу отправить героев в бан, либо в любую из команд, но так же провалиться в самого героя, если нужно. Отдельные табы покажут еще больше инфы по тому как команды собраны относительно друг друга

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

Дизайн: хотелось сделать “для игроков Доты”, но не уходить слишком сильно в игровую тематику

Так как я продуктовый дизайнер, дизайн был для меня отдельной важной частью проекта.

Мне хотелось, чтобы приложение визуально ощущалось связанным с Dota 2: темные экраны, плотная информация, знакомая атмосфера, акценты, похожая логика карточек и описаний.

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

Самый сложный баланс был между “атмосферно” и “удобно”. Особенно на экранах, где много чисел, описаний и состояний. Надеюсь это получилось сделать :)

Что было сложнее всего

Самыми неприятными/сложными частями оказались:

1. Актуальность данных. Dota постоянно меняется, и если данные устаревают, приложение быстро теряет смысл.

2. Отображение способностей. У многих способностей есть нюансы, таланты, модификаторы, особые значения и исключения.

3. Локализация. Сейчас приложение переведено на 9 языков. Это удобно для пользователей, но добавляет много работы при обновлениях.

4. Обновление без стора. Я добавил возможность подтягивать игровые данные без обновления приложения через Google Play. Если есть новые данные, приложение может получить их при запуске.

5. Кроссплатформа. Приложение адаптировано под web, Android и iOS, но пока опубликовано только в Google Play и на других Android-площадках (есть и в RuStore и AppGallery - правда там пока не самые актуальные версии, т.к. упор в последнее время был именно на Google Play)

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

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

Не хочу делать вид, что все идеально.

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

Раздел гайдов тоже пока ограниченный. Сейчас там есть статьи для новичков и квизы после прочтения, но, скорее всего, я буду его серьезно перерабатывать.

iOS-версии в App Store пока нет. Приложение уже адаптировано, но сам релиз через App Store — отдельный и долгий этап.

Что дальше

Ближайшие направления, которые я сейчас рассматриваю:

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

Но тут мне как раз очень интересно мнение со стороны.

Зачем я это пишу

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

Поэтому буду рад любому фидбеку:
- кажется ли такой инструмент полезным?
- чему бы вы доверяли или не доверяли в пикере?
- что стоило бы добавить в первую очередь?
- что выглядит лишним?
- какие экраны/функции стоит показать подробнее?

Приложение можно посмотреть тут:

Есть еще сайт, но там пока мало полезной информации:

Спасибо всем, кто дочитал, надеюсь было интересно. Всем GG WP 🏆

P.S. Тему выбрал геймдева, хотя проект все-таки про разработку околоигрового инструмента — с дизайном, данными, логикой пикера, релизом и всеми сопутствующими болями. Поэтому решил, что сюда он подходит лучше, чем просто в общую тему по Dota 2

23
10
2
2
26 комментариев