Инди
Gary Levsky

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

Привет ДТФ! 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 и я считаю это главным успехом проекта. Очень банально скажу - верьте в себя!

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

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

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

{ "author_name": "Gary Levsky", "author_type": "self", "tags": [], "comments": 46, "likes": 101, "favorites": 121, "is_advertisement": false, "subsite_label": "indie", "id": 621308, "is_wide": false, "is_ugc": true, "date": "Mon, 25 Jan 2021 18:03:16 +0300", "is_special": false }
0
46 комментариев
Популярные
По порядку
Написать комментарий...
6

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

Ответить
5

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

Ответить
4

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

Ответить
0

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

Ответить
2

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

Ответить
4

вылаживания

Ответить
2

Алексей, я родом из Украины и уже как пятый год проживаю в Германии и знаете, за всю мою жизнь у меня не было ни одного урока русского языка :) поэтому, думаю, к ошибкам нужно относиться проще

Ответить
3

Для человека у которого не было ни одного урока русского языка, у вас, мой брат украинец из Германии, русский слог гораздо чище и грамотнее, чем у многих носителей, для которых русский является родным)
Моё уважение, в таком случае ;)

Ответить
0

Моё почтение. Это выше всех возможных похвал :)

Ответить
0

От слова "лажа", эй, шутка, которую нужно пояснять, уже не смешная
 (╯ ° □ °) ╯ (┻━┻)

Ответить
3

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

Ответить
1

все пытаюсь не лениться и написать простой текстовый квест) удачи вам!

Ответить
4

Лень погубит нас. Если у вас есть талант творить красивые тексты - используйте его. Пару лет назад читал про движок Twine - бесплатный и лёгкий в освоении. Дайте себе шанс :)

Ответить
1

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

Ответить
2

"Продажи без согласия Steam вроде как разглашать нельзя, но скажу - их не много."
С фига ли - это же твоя информация. 
+ Стим сам палит продажи на главной

Ответить
2

Ключик

Ответить
2

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

Ответить
0

Спасибо! Вдохновляйтесь и творите, оно того стоит :)

Ответить
2

UPD: Ключики были розданы данным лицам: @EkZo UE4 , @Aleksey Kinoby , @David Anipchenko , @Кирилл Березовский . Всех поздравляю :)

Ответить
0

Здорово, спасибо. А где ключик взять? В ЛС?

Ответить
0

Да, отправил Вам в ЛС. 

Ответить
0

Спасибо! Очень приятно!

Ответить
1

Спасибо за историю. Удачных вам продаж. Заметил одно упоминание про Стим контроллер. В прошлом году купил его именно по этой причине. Интересно по статистике продаж, какой процент купивших игру запускал ее с данным контроллером. Если вам известна такая информация, могли бы вы ею поделиться?

Ответить
1

Спасибо большое! Это упоминание относится больше к контроллерам в целом, но естественно Стим контроллер тоже поддерживается. Увы Стим такой подробной статистики не даёт, либо я ещё не знаю где так копнуть, чтобы увидеть. Я когда игру на проверку отправлял - мне модератор, который играл\проверял игру, посоветовал что для такого рода игры было бы замечательно иметь поддержку контроллера и что это в теории прибавит посещение страницы на 10-15 процентов. 

Ответить
1

а я тебе говорил сразу

Ответить
0

ну ты же не модератор в Стиме :D

Ответить
1

Клевая и полезная статья, купил игрушку :) хоть и не уверен. что поиграю — меня максимально не привлекают обещания "суперсложно, оченьсложно, дохнуть, как в Дарк Слоус, перепроходить одни и те же моменты"

Ответить
1

да не такой там ад, отвечаю

Ответить
0

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

Ответить
1

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

Ответить
0

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

Ответить
1

Как вариант можно реализовать периодическую смену камеры на вид сбоку по триггерам, как в Nier Automata в начале игры на заводе, это будет очень эффектно смотреться на мой взгляд, особенно если плавно камера будет смещаться. Это сделает геймплей более интересным, ощущение разнообразия просто за счет смены ракурса. 
Еще можно выделять платформы светом, на контрасте. Вот такой арт как в игрушке Dark LIght по-моему хорошо бы подошел

Ответить
1

Ключик;)

Ответить
1

Байт удался. Купил. В ближайшее время попробую. Были мысли о портировании на другие платформы? Или только боярская платформа? :) 

Ответить
0

Не зря старался! Спасибо, Олег :)
Из-за нехватки времени я пока даже не смотрю в сторону портирования, знаю, что каждая консоль имеет ряд требований (и нужна, кажется, лицензия?), но каких точно не вникал. Если финансово будет возможность задействовать помощь в разработке, то этот вопрос обязательно встанет на повестке дня, а пока в работе редактор карт, а затем мультиплеер. Буду очень рад вашему отзыву :) 

Ответить
1

Ключик
Мои поздравления. Это вдохновляющая история о целеустремленности и мотивации. 

Ответить
0

Спасибо!

Ответить
1

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

Ответить
1

Благодарю, @Anton Isakov! Концепт - это уже пол дела сделано, за работу! ;)

Ответить
1

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

Ответить
0

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

Ответить
0

А где задавал вопросы по движку? Это насчёт отзывчивого комьюнити. Мне мало кто помогает по сравнению с юнити

Ответить
1

Тут велик шанс, что твой пост не заметят, а начнёшь спамить - могут послать :) нужно правильно тайминг подобрать. Всё же я уверен в 99% случаев - ваш вопрос не уникален и уже имеет решение, я иногда находил ответ на 3!! странице гугла

Ответить
1

Очень помогал форум. Если в течении недели не давали ответ в ветке темы, писал в личку, отвечали не сразу, но отвечали. 

Ответить
0

Спасибо!

Ответить

Комментарии

null