Несколько лет делаю помощника по Dota 2: как пет-проект превратился из базы знаний в приложение
Привет! Я продуктовый дизайнер, немного разработчик и просто любитель иногда покатать в доту пару каток вечерком. Последние 3 года в свободное время делаю околоигровое приложение по Dota 2.
Недавно я наконец зарелизил его в Google Play, поэтому решил рассказать не только “вот ссылка, скачайте”, а скорее про то, как проект вообще появился, во что вырос и с какими проблемами я столкнулся по дороге.
Если коротко, сейчас внутри:
- база героев и предметов под актуальный патч
- анимации, способности, таланты и фильтры
- гайды и квизы для новичков
- Smart Picker для драфта
- 9 языков и обновление данных без обновления приложения
Это не игра, а скорее помощник: тут есть база героев, предметов, гайды и пикер, помогающий в выборе героя на стадии драфта.
Почему я вообще за это взялся
Dota 2 — игра, в которую очень сложно вкатываться. Даже если ты уже понимаешь базовые правила, дальше начинается веселая часть: больше сотни героев, куча предметов, постоянные патчи, таланты, способности, нейтральные предметы, контрпики, роли и миллион “а опять слили за две секунды”.
Мне хотелось сделать инструмент, который помогал бы новичку не просто читать сухую информацию, искать ее в разных местах, а постепенно лучше понимать игру.
Изначально идея была довольно простой: сделать удобную базу знаний по героям и предметам. Но со временем проект начал разрастаться.
С чего начался проект
Первой версией была простая база знаний по героям и предметам. Тогда я хотел просто собрать в одном месте актуальную инфу по текущему патчу: все характеристики, способности, таланты, роли, аспекты (когда они еще были).
Тут начались танцы с бубнами и с данными. Работа над обработкой всего что есть в данных которые я получаю. Даже такие таблички рисовал чтобы расшифровать, что за что отвечает.
Но мне хотелось сделать проект максимально полезным, а в Доте важно не только знать, что делает способность, но и понимать, как она меняется, какие таланты на нее влияют, как это выглядит в игре. Поэтому старался соблюдать стилистику самой игры и давать максимум информации, схожей с тем, как она отображается в самой игре.
Так постепенно появилась полноценная энциклопедия героев.
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)
Что пока сырое
Не хочу делать вид, что все идеально.
Профиль игрока еще в процессе. Авторизация через Steam и Google уже работает, но дальше я хочу добавить сохранение сборок, любимых героев и анализ матчей ваших игр.
Раздел гайдов тоже пока ограниченный. Сейчас там есть статьи для новичков и квизы после прочтения, но, скорее всего, я буду его серьезно перерабатывать.
iOS-версии в App Store пока нет. Приложение уже адаптировано, но сам релиз через App Store — отдельный и долгий этап.
Что дальше
Ближайшие направления, которые я сейчас рассматриваю:
- развитие пикера
- анализ матчей игрока
- сохранение билдов и любимых героев
- улучшение гайдов для новичков
- iOS-релиз
- больше персонализации под конкретного игрока.
- и конечно стараться больше писать и рассказывать про проект, чтобы больше людей могли его попробовать
Но тут мне как раз очень интересно мнение со стороны.
Зачем я это пишу
Я понимаю, что это околоигровое приложение, а не игра. Но мне кажется, что вокруг больших игр часто не хватает качественных companion tools, особенно для новичков.
Поэтому буду рад любому фидбеку:
- кажется ли такой инструмент полезным?
- чему бы вы доверяли или не доверяли в пикере?
- что стоило бы добавить в первую очередь?
- что выглядит лишним?
- какие экраны/функции стоит показать подробнее?
Приложение можно посмотреть тут:
Есть еще сайт, но там пока мало полезной информации:
Спасибо всем, кто дочитал, надеюсь было интересно. Всем GG WP 🏆
P.S. Тему выбрал геймдева, хотя проект все-таки про разработку околоигрового инструмента — с дизайном, данными, логикой пикера, релизом и всеми сопутствующими болями. Поэтому решил, что сюда он подходит лучше, чем просто в общую тему по Dota 2