Главное о кейсе
Наш клиент — крупная IT‑компания с развитой корпоративной культурой. Каждый год сотрудники организуют выезды, где совмещают хакатоны с отдыхом. Проблема заключалась в том, что любая активность быстро теряла смысл: участники мгновенно осваивали её и становились лучшими.
Перед нами стояла нетипичная задача — разработать игру, которая заставит команду заказчика «пострадать».
Действие разворачивается в выдуманном офисе компании. Жанр игры — платформер и bullet hell. Все локации выполнены в стиле пиксель‑арт.
Игрок переходит на следующий уровень только после того, как убьёт босса. Каждое новое убийство усиливает мобов и усложняет прохождение. Жизни не восстанавливаются.
С каждым уровнем игра становится сложнее, а к четвёртому уровню прохождение становится практически невозможным.
Как проект изменил жизнь пользователей
Эта игра стала не только «развлечением на один корпоратив», но и частью корпоративной культуры.
Сотрудники сплотились, делились на «кружки по интересам» и выменивали информацию о прохождении.
Бизнес-задача и ее решение
Главная задача — увлечь команду клиента.
После релиза игры прошёл турнир. Из 150 человек лишь 5 прошли в финал. До конца игру никто так и не прошёл.
Среднее время вовлечённости — 2 часа. И это не суммарное время, а средняя длина одной сессии. Проще говоря, топ‑разработчики проводили в нашей игре до 10 часов в день.
Крафт (мастерство), реализация, технические детали
Во‑первых, движок. Для нас им стал полюбившийся
Phaser.js.
Во‑вторых, нативный JavaScript + TypeScript.
В‑третьих, высочайшая оптимизация (60 FPS).
В‑четвёртых, он имеет базовую поддержку созданных карт в Tiled.
Кроме того, там можно добавлять кастомные объекты с любыми данными — это очень полезно при конструировании уровней.
Мы утвердили прототип, софт и стек, после чего перешли к созданию функционала по добавлению и загрузке разных карт, уровней и их тайлсетов.
После проведения этих работ дальнейшие задачи делились на 5 типов:
- реализация фичи в самой игре;
- реализация управления фичей через карту;
- интеграция ассетов этой фичи;
- написание документации в нашу базу знаний (для левел‑дизайнера);
- связь с баланс‑листом на бэке (если необходимо).
Параллельно велись работы по бэкенду и интерфейсу игры. На бэкенде использовали WordPress, поскольку там есть готовый механизм авторизации (наработки из предыдущих игр) и в целом обеспечивается очень быстрая разработка.
Инсайты, гипотезы, процесс создания и взаимодействия с заказчиком
Мы показали клиенту всё, что сделали в лор‑режиме. Ему всё понравилось, и он стал предлагать ещё больше идей.
Мы добавили пасхалки, которые можно разделить на две группы:
- просто хорошо спрятанные;
- те, что требуют выполнения определённого алгоритма действий (квесты).
Теперь на каждом уровне есть персонализированный квест: выполнив его, игрок получает пасхалку.
Например:
- в одном из уровней нужно догадаться вернуться в самое начало;
- в другом — убить шесть бариста подряд.
Единственный способ узнать об этом — обратить внимание на намёки в диалогах или дешифровать код игры.
Особое внимание мы уделили рейтинговому режиму. Раньше баланс выставлялся по дефолту, но этого стало недостаточно. Мы вынесли в админку переменные величины всего, что может влиять на геймплей:
- урон пушки;
- жизни главного героя;
- скорость мобов;
- границы перехода в фазы.
Тщательно конфигурировали значения: порой изменение даже на одну десятую кардинально меняло геймплей. Также мы добавили в админку функционал хранения логов игр каждого пользователя и общую статистику по пользователям.
Мы серьёзно подошли к защите от взлома. Была реальная угроза того, что игроки могут:
- прописать себе очки;
- создать бота для прохождения игры.
Для защиты данных мы:
- внедрили антиспам и античит‑систему: анализировали триггеры, чтобы определить, играет человек или бот;
- запретили любое вмешательство в код: при открытии DevTools очки обнулялись, а игра начиналась заново;
- запутали и сжали код, использовали шифрование при передаче данных;
- настроили логирование и отслеживали нажатия клавиш игроком;
- выявили и устранили чизовые тактики.
Кроме того, мы самостоятельно создали саундтреки к игре — получился мощный индастриал‑рок. В какой‑то момент наш геймдизайнер в шутку написал трек для одного из боссов. Клиенту настолько понравилась эта идея, что мы создали треки для всех боссов.
Прочая информация о кейсе
Меньше чем через неделю мы получили запрос на дополнения. Сейчас уже готов спецвыпуск.
Скриншоты
Комментарий заказчика
Работа с ребятами — это не просто сотрудничество, а настоящее партнерство. За какие-то 2-3 месяца мы вместе с нуля создали игру с мощным геймплеем и крутой детализацией, которая зашла даже нашим самым требовательным игрокам. Видно, что они сами горят играми — это чувствуется в подходе, вовлечённости и желании сделать проект максимально крутым.