Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти

Нетипичная боль клиента – страшно умная команда. Рассказываю, как мы создавали игру по мотивам внутренней корпоративной культуры компании. А потом ещё и заказ DLC получили.

Привет! Я Серёга Шилов, фронтмен IT-аутсорс компании We Wizards. Мы умеем делать игры для бизнеса, в которых хочется залипнуть не только на корпоративах, но и в повседневной жизни.

Рассказать много о клиенте не могу, NDA не позволяет, но поверьте на слово: ребята потрясающие

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

Беда была в том, что любая такая деятельность быстро теряла смысл: они мгновенно всё осваивали и становились лучшими. Когда клиент увидел нашего дракончика для GlowByte, то решил, что инди-игра — именно то, что нужно.

Просто сделать игру было недостаточно

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

И вот собрались мы нашим геймдев юнитом, прямо как в передаче West Coast Customs, и стали думать что делать.

Вы смотрели фильм «Куб» ?

Это интеллектуальный триллер о выживании: герой оказывается в замкнутом пространстве, и его главная цель — выбраться.

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

Созвонились с клиентом, воодушевленно об этом рассказали, и получили неожиданную реакцию — идея скучная, не зацепило. Я даже растерялся. Решил, что нечетко выразился, и попробовал донести мысль еще раз, но всё безрезультатно.

Тогда мы начали докапываться до запроса клиента и поняли, что мыслили вообще не в ту сторону…

…они не хотели «думать», они хотели страдать

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

Например, в качестве референсов приводили I wanna be the boshy или Flappy bird в некоторых случаях Cuphead.

Ушли на неделю в бешеный креатив

Перебрали несколько вариантов жанров и решили остановиться на комбинации двух — платформер и bullet hell.

Платформер — это игры, где нужно прыгать, бегать и преодолевать препятствия.

Bullet Hell — это поджанр шутеров, в котором на игрока со всех сторон летит огромное количество пуль, лазеров или других снарядов. Его задача — избегать этих атак, но при этом продолжать сражаться с мобами и собирать разные предметы.

В рамках этих жанров было проще всего реализовать нужные нам игровые механики.

Набросали эскиз и пошли его защищать

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

Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти
Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти
Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти

Заказчику идея понравилась, мы защитили концепцию и перешли к формированию ГДД.

Перешли к дизайн-концепции

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

- офис;

- фуд-корт;

- экспериментальная лаборатория;

- чилл-зона.

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

Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти
Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти

Показали их клиенту, ему всё понравилось и мы пошли рисовать.

Попали в ожидания с первого раза

Пиксель-арт – фирменный почерк We Wizards, и все локации игры отрисованы в этом стиле. У нас это здорово получается, именно наши кейсы привлекли клиента по стилистике.

P.S. Если увидите где-то у крупных брендов пиксель арт игру, с вероятностью 99% ее делали мы ;)

Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти

Чтобы быстро формировать уровни и создавать там окружение, мы выбрали программу Tiled. Независимо от разработчиков, ГД и дизайнер могли собирать окружение и лить его в репозиторий отдельно.

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

Деталями делиться не будем, но показать как выглядят биомы можем:

офис
фудкорт
комната отдыха
лаборатория

Вернемся к нашим референсам: I wanna be the boshy и Flappy bird

Концепция этих игр основывается на том, что чем дальше игрок проходит, тем лучше его мышечная память запоминает, как это делать. Соответственно, тем легче становится проходить уровень снова — игрок просто интуитивно понимает, как лучше это сделать.

Продумали игровые механики

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

Усложнили задачу тем, что отделили ходьбу от прицеливания, и сделали так, чтобы каждый залп отталкивал (отдача от выстрела из рельсотрона или магнетронной киберпушки) персонажа от места выстрела. Это дало разнообразие геймплейной мехиники в стиле прохождения.

Выяснилось, что обычных арен недостаточно и нужен полноценный level-дизайн

Мы продумали игровые механики, показали прототип клиенту — он остался доволен, но…

Прямо в ходе разговора выяснилось, что все фичи и пасхалки, которые хотел реализовать клиент, не помещались на наши арены.

Он начал спрашивать такие вещи, которые они просто не предусматривали: какова длительность одной игровой сессии, какая формула набора очков, при каких условиях появляется босс, восстанавливаются ли мобы после убийства?

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

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

Он нарисовал первый прототип, мы показали его клиенту, получили «ок» и пошли рисовать еще три таких же.

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

карта фудкорта
карта фудкорта

И мы, не утверждая это с клиентом, нарисовали еще по несколько десятков декоративных предметов на каждый уровень.

Тут подключился сам собственник компании

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

Игра стала настолько сложной, что не все могли её пройти

Но у нас еще осталось время, чтобы это решить. Рейтинговый режим мы оставили для хардкорных ребят, а для всех остальных ввели лор-режим с обучением, диалогами и упрощенными мобами.

Так все гарантированно могли поиграть в игру и пройти её. А самые мотивированные — потренироваться в лор-режиме и перейти в рейтинговый.

Мы прописали новые механики диалогов и теперь персонаж игры обрел личность. Выкатили первую версию и показали клиенту — он остался доволен.

Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти
Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти

Параллельно заказали у нашего дизайнера кат-сцены. История была в том, что произошла сингулярность пересеклись параллельные миры и в офис компании интегрировалась cамая биопанковая нечесть, которая начинает поглощать все вокруг.

Потом этой нашей сингулярностью было удобно все что угодно объяснять. Почему в офисе компании висит сувенирная пушка, которая в итоге оказалась настоящей? Нуу…сингулярность)))

Джон закончил с проработкой уровней, и начал писать саундтреки

Он написал демо, Даня (разработчик игры) добавил гитару. В итоге получился мощный индастриал-рок саундтрек.

В какой-то момент Джон шутки ради сделал трек для одного из боссов. Клиенту так эта шутка понравилась, что мы потом всем боссам свой трек прописывали))

Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти

И это ещё не все. Самая интересная часть проекта только начиналась

Мы показали клиенту все, что наделали в лор-режиме. Ему все понравилось и он стал накидывать еще больше и больше идей.

Мы ввели еще пасхалки, которые можно разделить на две группы:

  • просто хорошо спрятанные;
  • те, которые должны быть выбиты при помощи какого-то алгоритма действий — квесты.

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

Но это не работает как в World of Warcraft

Никаких вам восклицательных знаков и указаний куда идти — никто не знал как выполнить квест. Да и случайно сделать это тоже не вышло бы.

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

А на другом убить шесть бариста подряд. И единственный способ это узнать — по намекам через диалоги. Ну или код игры дешифровать.

Много внимания уделили рейтинговому режиму

Вы помните обещанный приз за первое место? Это буквально золотая карта в любую точку мира) Поэтому желание клиента заставить игроков попотеть за такой приз — вообще неудивительно.

Раньше выставляли баланс по дефолту, но теперь этого стало недостаточно

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

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

Боролись с вероятностью того, что команда взломает игру

Я уже говорил, что нетипичная боль клиента — слишком умная команда. Существовала реальная угроза того, что кто-то просто взломает игру, пропишет себе очки или создаст бота, который будет проходить игру за него.

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

Вот что мы сделали для защиты данных:

  • внедрили анти-спам и анти-чит: анализировали триггеры, чтобы определить, играет человек или бот;
  • запретили любое вмешательство в код: если пользователь открывал DevTools, очки обнулялись, а игра начиналась заново;
  • запутали и сжали код, использовали шифрование при передаче данных;
  • настроили логирование и отслеживали, на какие клавиши нажимает игрок;
  • нашли и подчистили чизовые тактики.
Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти

Титры и финальные кат-сцены

Их мы, конечно же, тоже не планировали.

К титрам нужно было написать саундтрек и это тоже сделали своими силами. Я позвонил другу, который хорош в мат-метале, и заказал у него трек в стиле Мика Гордона.

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

Наступает день Х. Начинается турнир

Мы дико переживали за нагрузку на сервер — сотни сессий запускались одновременно. Но, к счастью, всё прошло штатно.

Две недели мы поддерживали игру, и это само по себе стало отдельным испытанием. Что-то могло сломаться в три часа ночи, и мы тут же вставали, разбирались и чинили.

В это время СЕО компании не спал сутками и играл в игру — это был его личный челлендж.

Из 150 человек лишь 5 прошли игру в рейтинговом режиме

Но что значит пройти игру?

  • Пройти все 4 биома.
  • Убить всех боссов.
  • Вернуться на первый уровень.

После этого запускалась кат-сцена, крутые титры, а затем открывался гипер уровень — абсолютный хаос. Всё начинало глючить: изображение искажалось, появлялся снег, кровь. Сингулярность в чистом виде)) Шанс пройти этот уровень был практически нулевым. Мобы стреляли сразу и убивали игрока мгновенно. Вдобавок к этому, по таймеру мы насильно отнимали жизни у игрока.

В какой-то момент игра так всех поглотила, что стали формироваться «кружки по интересам»

Они соревновались, выменивали и выторговывали информацию, не спали ночами. В общем, главный запрос клиента («заставить их попотеть») был выполнен на все сто.

Среднее время вовлеченности составило 2 часа — и это не суммарное время, а средняя длина одной сессии. Проще говоря, топ-разработчики проводили в нашей игре до 10 часов в день.

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

И вот что в итоге вышло

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

Отзыв

Работа с ребятами — это не просто сотрудничество, а настоящее партнерство. За какие-то 2-3 месяца мы вместе с нуля создали игру с мощным геймплеем и крутой детализацией, которая зашла даже нашим самым требовательным игрокам. Видно, что они сами горят играми — это чувствуется в подходе, вовлечённости и желании сделать проект максимально крутым.

Команда

Александра Ермилова

Даниил Сарабьев

Джонатан Бдоян

Сергей Шилов

без копирайта игру не оставили, вот мы сидим
без копирайта игру не оставили, вот мы сидим

Разработка

Во-первых, движок. Для нас это стал полюбившийся Phaser.js. Во-вторых, нативный Javascript + Typescript. В-третьих, высочайшая оптимизация (60 FPS). В-четвертых, он имеет базовую поддержку созданных карт в Tiled.

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

После проведения этих работ дальнейшие задачи делились на 5 типов:

  • реализация фичи в самой игре;
  • реализация управления фичей через карту;
  • интеграция ассетов этой фичи;
  • написание документации в нашу базу знаний (для левел дизайнера);
  • связь с баланс-листом на бэке (если необходимо).

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

FIN!

Спасибо всем, кто дочитал до конца) Оставляю ссылку на наш суперский сайт:

И на тг-канал, там мы делимся буднями, рассказываем о проектах и ищем людей в команду:

А если нужны руки для разработки – пишите лично мне в телеграм @olivoin или на почту hello@wewizards.ru

Как мы разработали инди-игру со сложным геймплеем, которую практически невозможно пройти
11
3
1
1
1
1
15 комментариев