13 месяцев чтения мыслей
Короткий рассказ о разработке системы адаптивной сложности.
Всем привет! Давно уже не писал о буднях разработки - завалили те самые будни.
А в прошлую пятницу, в нескольких группах на Facebook, услышал о "сливе" информации по патенту EA за 2017й год в нескольких группах на Facebook.
Боже, каких только выводов не делали "эксперты"!
Впору доставать шапочку из фольги, укрываться в прохладном бункере с этими мягкими францускими булками и сжигать все игровые консоли - заодно с ПК и смартфонами.
Что забавно, догадки и предположения о существовании подобных систем в популярных проектах ходят как минимум десятилетие.
Те же матерые игроки mobile F2P игр зачастую ощущают, будто "Игра играет с ними".
Так уж вышло, что я - тот самый человек, для которого уготован отдельный котел в аду: начиная с апреля прошлого года, я работаю над созданием аналогичной системы для группы F2P проектов.
Спорить об этичности и Большом Брате можно долго - и безрезультатно. А в этой публикации я попробую пояснить:
- с какой целью создается подобная система;
- из чего она состоит;
- в чем сложность;
- итоги последнего года.
P.S.: к сожалению - я ограничен договором о неразглашении, потому подробности нашей реализации или логики не смогу даже упомянуть.
К счастью - некая структура уже доступна общественности, а комментировать public domain мне не запрещено.
Цели и задачи
Адаптивная сложность (далее - АС) отчасти схожа с пистолетом.
Мы не можем сказать, что пистолет сам по себе причиняет боль - но можем сказать, что в плохих руках пистолет способен нанести ущерб, порой - непоправимый.
Так и системы АС являются инструментом, который может как спасти умирающую от финансовой "жажды" компанию, так и искалечить вполне здоровую игровую систему.
Очевидно, цели АС определяет разработчик, решившийся внедрить подобную систему в свою игру.
Скажу больше: АС в принципе создается только и исключительно исходя из целей, поставленных перед ней.
Я понимаю всю очевидность последних абзацев, и теперь - мы можем идти дальше.
Какие цели могут стоять перед системой АС?
- создание уникального игрового процесса для каждого игрока
- улучшение монетизации проекта в целом
- работа с KPI под конкретные задачи
- и много, много других
Само собой, перед системой может стоять больше одной цели - чаще всего, они дополняют друг друга.
Надеюсь, все согласны с тем, что сложность влияет на очень многое в игре?..
Отлично, а что влияет на сложность?
Для каждого жанра (а часто - и для каждой отдельно взятой игры) существуют свои каноничные критерии сложности.
Приводя упрощенный пример, для HOPA-игр это соотношение зеленых-желтых-красных (от простых к сложным) предметов для поиска на каждом уровне и параметры времени (есть ли ограничение, сколько времени отведено);
для Match-3 - количество разных игровых элементов, которые могут появиться на поле, и само игровое поле;
и так далее.
Естественно, при таком разнообразии создать универсальную систему АС - цель маловыполнимая.
А вот узкопрофильная система для одного жанра, который имеет устоявшийся набор механик, хорошо известных игрокам?
О да, это вполне по силам небольшой команде.
Как выяснилось позже - системы АС для F2P относительно легко адаптируются под новые жанры, ведь общие механизмы воздействия на игрока зачастую пересекаются - править придется только аспекты конкретного жанра.
Компоненты системы
Допустим, я ни-че-го не знаю о том, как выглядит структура системы у АС от EA Games. И даже цензуру расставлял с закрытыми глазами.
Что же лежит в основе АС?
Правильный ответ - распределение ответственности.
Логично, в общем: система сложная, обязанностей много.
И данные собирать (деперсонализированные, само собой), и обрабатывать, и хранить/обновлять, и даже - страшное - применять их для анализа и изменения игрового процесса.
Ну что, вы готовы познать ужасную структуру системы АС?
Вот она:
- клиент
- сервер
- база данных
- админ-панель
Согласен, это крайне запутанная система, способная вывести из проекта даже самых многоопытных разработчиков.
Настолько, что я даже не буду упоминать распределение ответственности между компонентами - оставляю эту тайну на усмотрение читателей.
В чем сложность?
Самой крупной проблемой стал алгоритм принятия решений, в частности - в контексте F2P модели.
Как распознать, что игроку стоит дать сложность А?
Как понять, что прошлые решения были ошибочными, и обновить правила игры в соответствии с результатом анализа?
Почему нельзя объединить игроков по вектору параметра X, замещая его матрицей X*Y*Z?
Ответы на эти и другие вопросы скрыты за NDA, но ведь главное - знать об их существовании, верно?)
Именно для решения этих вопросов, первые три месяца мы посвятили созданию документации и логики для данного проекта, и ни разу не пожалели о потраченном времени.
Кроме анализа, спорным моментом стала.. скорость реакции системы.
По структуре из прошлого раздела, скорость (а порой и просто наличие) связи между компонентами - решающий фактор.
Еще три месяца потребовалось только на то, чтобы настроить взаимодействие всех компонент в режиме реального времени.
Не будь у нашего жанра разделения игрового процесса на множество этапов взаимодействия - потратили бы все шесть.
Глубина системы тоже повлияла на длительность работы.
Рассудите сами, у нашей системы должно быть готово:
- уникальное решение
- для уникального игрока
- в конкретной ситуации
- исходя из конкретного правила
- при плановой нагрузке в N тысяч игроков единовременно
И всё же, несмотря на всю сложность, мы создали с нуля свою систему, с полной интеграцией в существующих проект, доступный worldwide.
Итоги 13 месяцев разработки
Честно говоря, никогда бы не подумал, что возьмусь за подобный проект. А уж предположить, что хватит всего лишь одного года на реализацию - нет, к такому я не был готов.
По состоянию на 1 мая, система полностью протестирована как на ботах, так и на реальных игроках - и выполняет все поставленные перед ней задачи.
Особенно радует повышение Retention проекта на N% - приятно осознавать, что система не только повысила доход компании, но и позволила каждому игроку ощутить максимум удовольствия от своего, уникального игрового опыта.
Что дальше? Отладка и адаптация. Данных, полученных на текущий момент, хватит для внедрения системы в остальные проекты.
Это будет непросто - впереди адаптация для шести новых жанров.
Благо, работать с готовой системой много проще.
Так закупать фольгу или нет?
Приходя домой после работы, я часто запускаю игры. Сингловые и мультиплеерные/кооперативные. Сюжетные или тайм-киллеры.
И первое время мне-разработчику было сложно пояснить мне-игроку, что я не создаю ужасного монстра, призванного уничтожить всё то, что я люблю в играх.
Но, по мере работы над нашей АС, я понял:
Адаптивную сложность нельзя однозначно назвать злом.
Потому что негативной её могут сделать только сами разработчики.
Но и терять бдительность не стоит - наш пример ярко показывает, что сейчас создать и внедрить систему АС в состоянии не только крупная корпорация, но и относительно небольшая команда.
А значит - шанс встретить её в новых играх растет ежедневно.
Вместо заключения
Раз уж выпал такой шанс, хотел бы спросить у сообщества: