Сделать, зарелизить и не сгореть. Первый опыт в создании игры

Привет ДТФ! 7 января 2021 года я собрал все силы в кулак и провел долгожданный релиз своей игры, над которой работал около 10 месяцев. В этой статье я расскажу о том как я пришёл к идее создания игры, чего мне это стоило, какие технологии использовал, и какие препятствия встретил на своём пути.

Текст будет немного техническим и много прозаическим. В меру того, что я ранее особо никогда не писал статьи, прошу понять и простить, чуть что.

Что я умел делать ДО начала работы над проектом:

  • У меня был опыт разработки на Javascript
  • начальный уровень C++
  • внушительный опыт работы с Adobe приложениями
  • базово Blender

Все эти навыки, приобретённые за жизнь, были очень кстати на протяжении всего процесса создания игры.

Что я умею делать ПОСЛЕ релиза игры в раннем доступе:

  • научился моделировать в Блендере, вполне сносно
  • подтянул С++, хотя чистого кода в игре почти нет
  • значительно расширил свои возможности работы в Unreal Engine 4 (далее как UE4)
  • очень хорошо овладел Blueprints
  • научился монтировать в Adobe Premier
  • научился работать с Steamworks и его интеграцией в UE4

Чаптер 1. Зачатие.

Как вы успели заметить - для разработки игры я выбрал движок UE4, всех достоинств рассказывать не буду, но скажу то, что было главным для меня - большое и отзывчивое комьюнити, количество уроков на YouTube, простота в освоении, огромное количество бесплатных ассетов из маркетплейса (у меня UE4 c 2015 года и я почти не пропускал раздач бесплатного ежемесячного контента).

Идея проекта родилась как-то сама по себе - я был(и есть) большим поклонником Dark Souls и хотел создать что-то похожее, но оценивая адекватно свои силы (+работа 40ч в неделю + семья с 3х летним мальчишкой) я понимал, что один человек подобный проект будет делать десятилетие и поэтому я взял из Dark Souls самое ценное - страдания и мучения игрока от попыток пройти игру :) звучит весело, не правда ли? Взял я это и подумал, что давно не встречал интересных 3д платформеров, так почему бы не сделать такой? Так и родилась идея игры Космотроник (Cosmotronik), где вы играете за солдата, который хочет попасть в войска орбитальной охраны, для этого ему “всего лишь” требуется преодолеть пару препятствий.

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

У меня не было диздоков, не было четких планов и дедлайнов, потому что не знал сколько времени смогу уделять своему хобби. Делал тогда когда мог и сколько мог. В голове всё было просто - делаю один тестовый уровень, который вместит в себя всю основную механику игры, дальше беру отдельные элементы и делаю 45 уровней, добавляю интерфейс, подключаю Steam и вуаля, зарабатываем миллионы. Oh, boy… как же тогда я заблуждался, что всё окажется не так просто.

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

В YouTube можно найти практически всю нужную информацию или гайды, если там нет чего-то - ступайте на форум, если там нет чего-то - загляните в UE4 Answerhub, иногда даже можно и нужно официальную документацию почитать. Если же поиски увенчались провалом - ищите похожее решение и дёргайте автора, в этом мне обычно помогал их Discord. В моей игре не так уж и много инновационного геймплея, поэтому в большинстве случаев я находил ответы на свои вопросы, но бывало заходил в тупик и там уже приходилось изобретать\программировать и надеяться, что выйдет так как хочешь.

Напишу пару YouTube каналов, которые мне очень помогли в процессе создания игры (англоязычные):

Twiz - чуть ли не единственный канал, на котором можно найти как интегрировать Steam достижения.

AndiDev - отлично объясняет как работает UE4 Control Rig

VR Division - тут много говорят про свет и как его настраивать

Gavin Eisenbeisz - очень хороший туториал по юзер интерфейсу

Lusiogenic - всё что связано с физикой в UE4

Чаптер 3. Процесс разработки

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

Затем наступил момент, когда нужно было собрать весь уровень воедино, чтобы он работал от старта и до финиша, в это входило:

  • появиться в определённой локации
  • расставить все платформы по местам
  • сделать меню паузы (про это подробнее ниже)
  • сделать кнопку “рестарт” при падении
  • добавить рэгдолл при падении. Этим я прям очень гордился, потому что падения получились очень эффектными
  • сделать секундомер, который начнется и остановится в том месте где нам нужно. В этом мне помог замечательный туториал и его создатель, который охотно подсказал как добавить миллисекунды
  • добавить меню при завершении уровня, которое будет отображать наше время и проверять был ли поставлен новый рекорд
  • сделать атмосферный ангар, в котором это всё разместиться
  • создать космос, в котором мы и разместим ангар
  • подобрать материалы
  • создать фоновую музыку, чтобы не уснуть по пути к финишу
  • добавить звуки ударов, при соприкосновении нашего солдата с поверхностью (про это подробнее ниже)

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

Меню
Меню

Гораздо сложнее оказалось сделать настройки - видео, звук, раскладка клавиатуры, а ещё точнее - это сохранение данных. Долго мучался, а потом нашел готовое решение за 5 долларов - решил не мучатся и купить, сэкономил очень много времени. Рекомендую (не реклама!!) и вам, если не хочется утонуть в море блупринтов.

Создание реалистичных стуков об пол казалось бы можно заделать обычным onComponentHit ивентом, но почему-то моя капсула игрока напрочь отказывалась эти ивенты генерировать. Я использовал Advanced Locomotion System в своём проекте, он не идеален, но наверное лучшее решение что есть на маркетплейсе. Так вот, генерировать onComponentHit у меня вышло с помощью Line Trace, вот есть хороший урок на русском. Я буквально прилепил эти лучи (читай линии) к каждой движущейся части тела и ими ловил onComponentHit.

Когда уровень был собран я представлял это себе так, что 50% игры уже готовы, всего-то осталось сделать ещё 44 таких :D. В дальнейшем я урезал это число до 15, которые будут в альфа версии, так как с этим уже можно идти на рынок, получить полезный фидбэк и доделать остальные уровни.

Первый уровень
Первый уровень

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

Фантазия у меня бурная и проблем с остальными уровнями первой части не возникло. Примерно 2 месяца ушло на все 14 уровней первой “Лунной Орбитальной Станции”, попутно реализовал связь между всеми уровнями, систему сохранений и загрузки, внутриигровое меню.

Чаптер 4. Релиз не за горами, выгорание тоже

Делать игру, при этом работая фулл тайм - совсем не лёгкая задача. От этого начинают страдать твои близкие и твоё здоровье. Я спал от 4 до 6 часов в сутки и если ты так делаешь больше чем пол года - начинаешь ощущать недомогание. Сил становится меньше, задачи делаются дольше, идеи покидают твою голову. Наверное поэтому релиз состоялся только в январе 2021.

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

Чаптер 5. Релиз

Релиз был намечен на конец декабря, но Steam внес свои правки. Я охотно делал весь необходимый маркетинговый материал и мы плотно работали над трейлером, с композитором, с которым мы познакомились где-то в октябре, благодаря его посту на ДТФ. Этот, безумно крутой, человек согласился на добровольных основах инвестировать своё время и силы в мою игру и в конечном итоге создал шикарный OST, который можно услышать при прохождении игры и не менее шикарную звуковую дорожку для трейлера (можно послушать и посмотреть тут). Генрик был не просто композитором, но и одним из главных тестеров. Он иногда как никто другой мог поднять мою мотивацию до небес и заставить трудится ещё усерднее. Спасибо тебе, Генрик!

Steam очень скрупулезно подходит к оценке и проверке игр. Помимо того, что игра должна включать все фичи Steam которые ты указал как присутствующие в твоей игре (пример: достижения, таблица лидеров, статистика пользователя и т.д.), они еще и посмотрят на геймплей и дадут толковые советы по тому, что можно улучшить. Так у меня появилась поддержка контроллера, что в свою очередь генерирует дополнительный трафик на страничку в магазине. Из-за того, что у меня были некоторые критические замечания с проверяющей мою игру стороны, релиз пришлось отложить и исправить все недочеты. В целом процесс интеграции Steam и релиза игры на площадку прошёл плавно и без лишней головной боли. Создание глобальной таблицы лидеров было ещё тем испытанием, получилось довести до ума буквально пару дней назад - теперь всё работает и вы можете увидеть своё время в глобальной таблице.

Когда я увидел заветную зелёную кнопку - “Ready for release” ощущения были неописуемые. Побежал к жене и сыну, чтобы рассказать о произошедшем и разделить этот момент счастья с ними :). Вообще хочу сказать, что не справился бы без их поддержки. Сын любил сидеть у меня на руках и говорить - “давай сделаем так, чтобы дядя упал, он красиво падает”, соответственно этот “дядя” - это наш многострадальный солдат :). Моя жена замечательно рисует и я попросил её сделать иконки для достижений в Steam, которые получились у неё очень крутыми..

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

Немного цифр на 18-й день после релиза:

  • Игру добавили в вишлист - 137 человек (60 на момент релиза)
  • Количество посещений странички в Steam за всё время - 13484 раз! (по продажам этого не заметно)
  • Количество впечатлений (сколько раз игра мелькала перед пользователями Steam) - 313000.
  • Продажи без согласия Steam вроде как разглашать нельзя, но скажу - их не много.
График посещения страницы в Steam
График посещения страницы в Steam

Ласт чаптер. Умозаключение.

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

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

Я очень много вдохновения черпаю из ДТФ и хотел бы поделиться чем-то взамен. Если моя игра показалась вам интересной - напишите в комментариях “ключик” и я случайным образом через недельку раздам 5 ключиков.

Всем позитива и удачных релизов!

109109
46 комментариев

Какая приятная статья, было интересно читать. Успехов с расширением проекта и со всеми последующими! Ну и отдохнуть, конечно)

7
Ответить

Очень приятно читать такие комментарии. Спасибо большое!

5
Ответить

В описании ачивки очепятка. 

4
Ответить

благодарю, поправим

1
Ответить

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

2
Ответить

вылаживания

4
Ответить

Благодарю. Да, можно написать, есть на что обратить внимание, да и память ещё свежа :) постараюсь к следующему понедельнику управится. 

3
Ответить