Как я полтора года делаю летающий шутер и что из этого получается

С чего все началось

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

  • Его просто все случайно забыли, и если сейчас сделать качественную игру в таком сеттинге, то это будет хит!
  • С жанром наигрались уже давно и поняли, что коммерческий успех ему не светит.
Геймплей за 5 секунд

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

TLDR: просто посмотрите трейлер (ютуб, вк) того, что в итоге получилось. А теперь немного деталей как шла разработка!

Технический фундамент

Игра делается на Unreal Engine 5 и все тут, конечно, наслышаны про плюсы и минусы этого движка. В моем случае из последних фичей мне очень помогает Nanite для упрощения работы с высокополигональными инженерными моделями, но очень тяжело дается работа с Lumen - серьезные скачки фреймрейта (даже при высоком среднем) и большие проблемы с освещением, когда в темной сцене много emissive эффектов.

UE - сложный движок с запутанной документацией, и это может быть как и мой персональный skill issue, так и какая-то фундаментальная проблема, еще не залеченная разработчиками. Но на текущий момент я скорее всего откажусь от Lumen, чтобы поддержать побольше железа или оставить себе простор для других вещей.

Вся игровая логика находится по большей части в С++, что очень помогает с организацией кодовой базы по сравнению с блюпринтовым подходом. (Для меня загадка почему люди так сильно боятся плюсового анриала, если они уже освоили блюпринты. Если вы поняли блюпринты, значит вы уже умеете худо-бедно программировать, а LLM объяснят вам все детали почти без чуши)

Кватернионный контроллер 

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

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

Первый тест базового автопилота

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

Первый интеграционный тест FX движков

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

Геймплей

Враги получают урон от коллизий

Основные принципы, заложенные в геймдизайн игры были следующие:

  1. Кемперинг является невыгодной стратегией - основную массу ресурсов надо добывать из врагов, дроны стреляют очень точно по неподвижным целям и не подлетают к тебе по одному;
  2. Движение - жизнь, вытекает из предыдущего пункта;
  3. Не раздутый искусственно арсенал вооружения, функции пушек пересекаются между собой весьма ограниченно, но могут отлично работать в комбинации (качество > количество);
  4. Разнообразный набор врагов с выраженными геймплейными функциями: пушеры, рядовые болванчики, дальнобойные дроны с ракетами, снайперы, дроны поддержки, танки и т.д. - все направлено на то, чтобы каждое сражение было боевым пазлом, где игроку нужно постоянно менять фокус внимания;
  5. На высоких сложностях враги бьют больнее и используют больше способностей, но их пул здоровья всегда остается неизменным. «Несправедливых» смертей должно быть как можно меньше, игрок всегда должен понимать какая ошибка привела его к поражению;
Пример абсолютно честной драки

Если вам это напоминает Doom Eternal, то это не случайно ;) Мне очень нравится боевка в этой игре, разве что патронов у меня будет немного побольше на начальных этапах.

Матрешка левел-дизайна

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

Как я полтора года делаю летающий шутер и что из этого получается

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

  • Уровень поделен на несколько сегментов-матрешек, между которыми находятся временно непреодолимые препятствия;
  • Внутри каждого сегмента есть набор ПВО - мощных вражеских турелей, которые практически невозможно уничтожить. Они лимитируют начальную мобильность персонажа внутри каждого слоя «матрешки»;
  • Миссии направлены на постепенное отключение этих ПВО, игрок обретает все большую свободу передвижения внутри сегмента, раскрывая «матрешку»;
  • Чем больше пространства доступно игроку, тем более интенсивными будут боевые столкновения и больше высокомобильных врагов будут на арене;
  • Часть сражений проходит в крупных закрытых помещений с коридорами, когда необходимо дать игроку более классический арена-шутерный опыт;
  • На уровнях есть секреты - шорткаты, с помощью которых можно быстрее отключить ПВО на уровне и получить тем самым преимущество;
  • После зачистки каждой матрешки игрок открывает доступ к следующей, обычно в виде несложного пространственного пазла;
  • Альтернатива невидимым стенам - вылет слишком далеко за пределы локации приводит к постепенной «потери связи».
Как я полтора года делаю летающий шутер и что из этого получается

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

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

К каждой локации прилагается набор эпичных инженерных сооружений

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

Арт

Очень много времени ушло на экспериментирование с арт дизайном.

Как я полтора года делаю летающий шутер и что из этого получается

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

Как я полтора года делаю летающий шутер и что из этого получается

Поэтому мне было очень важно соблюсти баланс между красотой и простотой пайплайна по его созданию. В итоге родилась такая схема - стилизованные механические враги с легким cel shader’ом, детализированные инженерные сооружения натуралистичных пропорций и сильно стилизованные элементы природы - камни, ландшафт, растительность. Минимальное количество текстур и сложных шейдеров. Иными словами, я взял в этот пайплайн все, что я умею делать быстро и хорошо (моделинг) и выкинул то, что на качественном уровне мне делать просто непозволительно по времени, если я хочу этот проект когда-нибудь закончить (запекание, правильные развертки, ручная покраска).

Продвинутый искусственный интеллект врагов

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

Подготовка к анонсу

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

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

Кусочек геймплея до проведения финальных артпассов

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

(Музыка из трейлера, кстати, тоже написана мной и прошла несколько итераций)

Анонс

Я классический соло-индюк без паблишера, поэтому этап анонса меня сильно нервировал. Кому писать? Сколько людей это вообще увидит? Как достучаться до игровых СМИ?

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

  1. Попадание на GameTrailers. В какой-то момент я смог замучить их редакторов письмами и меня, даже не отвечая на эмейл, запостили посреди ночи на их канале. В целом игру довольно тепло приняли и ролик собрал относительно высокое количество просмотров и лайков для этого канала. Иногда IGN подбирает хорошо залетевшие ролики с этого «отборочного» канала к себе на основной и я, надо признаться, до сих пор на это надеюсь.
  2. Посты на Reddit. Каждый день я постил трейлер/нарезку из трейлера/кадры девлога в разные крупные сабы. Результаты очень разные, от 5-10 до 300 апвоутов, но все с довольно позитивными комментариями и хорошим соотношением апвоутов. Из сложностей - надо постоянно читать правила каждого отдельного саба и стараться адаптировать контент под конкретную аудиторию, в крупных сообществах ты можешь запостить только по одному посту на каждый крупный этап разработки, что серьезно тебя лимитирует. Некоторые комьюнити не очень относятся к пиару индюшат и активно дизлайкают все проекты на IndieSunday. Сообществ по геймдеву много, но средний геймдев тебе в лучшем случае выразит только респект, скорее всего он не твоя целевая аудитория.

Что пока не сработало?

  1. Твиттер. Геймдев-твиттер без уже выстроенной аудитории это грандиозный голландский штурвал. Тебя лайкают, смотришь кто - а это такой же голодный разработчик с игрой мечты, который твою игру даже скорее всего не посмотрел. Говорят, там лучше работает именно закупка трафика или если ты успел как-то завируситься и набрал себе 1000+ фолловеров;
  2. Шортсы, рилсы, тиктоки. Постить контент нужно регулярно, а это очень энергозатратно. Если игра не виралится, то нужен отдельный человек под это дело. Делаю по остаточному принципу.
  3. Письма по игровым медиа. В целом мне сразу сказали на это не надеяться, но попытаться было несложно.

По итогу имеем следующее: игру в целом принимают тепло, без мощной критики, людям нравится артстайл и геймплей. Многие прям рады, что появилось что-то свежее в забытом жанре. Но при этом завируситься и отправиться To The Moon пока не удалось (о чем я конечно же тайно мечтал, потому что заниматься разработкой игры намного приятнее, чем ее маркетингом без бюджетов). Шанс резко выстрелить в жанре шутеров в целом не такой высокий, как например в корпоративных хоррорах или рядом.

Нашлось в трейлере место и для моего проекта еще школьных времен
Нашлось в трейлере место и для моего проекта еще школьных времен

И это приводит нас обратно к вопросу из начала поста - этот жанр мертв или мне пока просто не удалось собрать достаточно видимости? И текущий результат… не дает четкого ответа на этот вопрос!

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

Полный трейлер

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

33
2
2
9 комментариев