Игра "Wake Up": история создания, первый тизер

Разработка игры, судя по отзывам диванных экспертов, нынче простая: скачал бесплатный движок, накупил на 100$ ассетов, и "мама, я делаю игры". Ну а если этот так просто, почему бы не макнуть перо в навоз, и не сделать свою игру?
Разумеется, таких иллюзий у меня не было, а был план, дедлайны и минимальный допустимый функционал. И, спустя много времени, усилий и всего такого, готов представить вашему вниманию скрины, тизер, и краткую историю создания моей игры "Wake Up". И много-много картинок.

Игра "Wake Up": история создания, первый тизер

Начнем со сладенького: вот так выглядит первый тизер.

Попробуйте угадать по тизеру, о чем именно игра.

Давайте познакомимся. Основная моя профессия - инженер мягких изделий (Software Engineer). Ежедневная деятельность с разработкой игр не связана почти никак, однако, в свободное время, так или иначе удается коснуться и этой темы. Учим новый язык программирования Haskell? Замутим на нем логику на condingame, благо, аналитическая геометрия отлично ложится на функицональные языки программирования. Вышел C++17? Давайте попробуем новые фичи на API для Blizzard.

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

И с высоты этого опыта оглянулся на свои развлечения в свободное время: сколько времени затрачено на окологеймдейвные активности, но нет ни одного законченного проекта. (Здесь стоит уточнить, что сам термин "законченный" представляет собой довольно неоднозначное понятие. Однако с проектами в любом случае швах: мне не удалось подобрать ни одного определения этого слова, которое бы соответствовало хотя бы одному проекту).

Горечь от осознания собственного ничтожества. 
Горечь от осознания собственного ничтожества. 

Итак, все решено: мама, я - ГейМдев разработчик.

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

Выбор движка был простым: Unreal Engine 4 (5-ого тогда толи не было, толи был в зачаточном состоянии). У него есть два важных для меня преимущества:
1. Подложка из C++. Если все пойдет хорошо - для следующего проекта можно будет дописать что-нибудь серьезное на нем, благо, почти 10 лет опыта с этим языком.
2. Интегрированный магазин с ассетами (которого, разумеется, не хватило, но это отличная стартовая позиция).
Ну а дальше можно накачать бесплатных/дешевых ассетов, или ассетов со скидкой, и посмотреть, что можно из этого сваять.

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

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

И где все это может натуральным образом объединиться? Разумеется во сне. Итак мы ходим по сну... Пытаемся понять, сон ли это... Если да - стреляем в себя. Получается некая головоломка по Нолановскому сюжету.
Ты выстрелил себе в голову, проснулся, и пытаешься понять: действительно ли ты проснулся, или это сон внутри сна. И снова ищешь неправильную гравитацию, странную погоду, газеты из будущего, исчезающие картины. И каждый раз либо решаешься на выстрел, либо пытаешься жить как в реальности, с риском застрять во сне.

Игра "Wake Up": история создания, первый тизер

Анализ рынка показал, что такая игрушка уже есть. И называется она Knock Harder. (К слову, отличная игрушка! Горячо и искренне рекомендую.)
Очень не хочется быть вторичным, но, по здравому размышлению, решил, что несмотря на схожесть концепции, игры будут все-таки разными. Там 2д, постапокалипсис и хедкрабы. Здесь - 3д, вид от первого/третьего лица, офис и промышленный шпионаж. Ну и, чего греха таить, пару идей я оттуда позаимствовал, больно хорошо продумано. Даже послушал выпуск подкаста с автором этой игры. Автору - респект, игру еще раз рекомендую.

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

Дедлайн поставил себе - год. Откровенно говоря, для простенького проекта без самостоятельных моделей и всего прочего - это много. Но было несколько осложнений.
1. У меня есть основная работа. Иногда она занимает очень много времени и усилий, в том числе, моральных. Это было учтено, и даже сыграло. Например, весь декабрь вместо кода по выходным гулял по Хорринису и Архолосу, потому что браться за код было выше моих сил. И весь февраль. И часть мая...
2. Семья требует внимания и заботы. С одной стороны, все понимают, что если мне приспичило реализовать себя таким любопытным способом - надо дать мне возможность. С другой я понимаю, что это не повод забывать своих близких. (доброжелательность и взаимная поддержка - основа нашей семьи).
3. Есть ряд новых для меня бюрократических активностей, в которых могут оказаться непредсказуемые задержки. Так, например, письмо от стима потерялось в спаме, и страница в стиме появилась на 2 недели позже ожидаемого.
И даже с таким запасом пришлось резать некоторое количество изначальных идей, но об этом ниже.

Первый прототип.

Итак, все слышали про принцип Парето?
Коротко: каждый следующий процент продукта дается сложнее предыдущего. Последние 20% работы требуют 80% усилий.
Если минимальную играбельную версию я не сумел бы сделать в первый месяц, то проект можно было бы смело закапывать: довести проект до релиза в приемлемом виде за год было бы невозможно.
Но первый прототип удалось собрать за неделю. Что-то удалось даже в первый же день, но что там было, с вашего позволения, не покажу. А демка после 22-х дней разработки выглядела вот так (чистыми - неделя отпуска и еще дня 4 выходных. Ну и по вечерам иногда...).

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

Клевое стартовое меню.

концепция: луна и солнце в окне одновременно. Признак сна. 
концепция: луна и солнце в окне одновременно. Признак сна. 

Типа офисное окружение с ужасным освещением.

Видел фотки хат в новостройках, которые выглядели лучше
Видел фотки хат в новостройках, которые выглядели лучше
Солнце. Думал прикрутить Lens Flare эффект, но так руки и не дошли.  
Солнце. Думал прикрутить Lens Flare эффект, но так руки и не дошли.  
Столы вызывают приступ ностальгической паники. 
Столы вызывают приступ ностальгической паники. 
Лифты пока не умеют открываться. Да и зеркала в туалете нет. Но направления намечены. 
Лифты пока не умеют открываться. Да и зеркала в туалете нет. Но направления намечены. 

Возможность шмальнуть, и, если все пойдет не так, откинуть копыта.

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

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

Нарисовано давным давно. 
Нарисовано давным давно. 

Страдания следующих месяцев.

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

Дошло до того, что пришлось купить себе новый комп. Старый решительно не тянул. Ну и, как оказалось, быстрый SSD при работе в UE - просто производственная необходимость.

На самом деле, практически про каждый из пунктов можно написать лонгрид. К примеру, освещение. Посмотрите на эту стену.

Игра "Wake Up": история создания, первый тизер

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

Ну или, например, в какой-то момент у меня на верхней части стен (всех) стала появляться тень. Оказалось: я поместил какой-то объект на высоту -4500 (это -45 метров), и Unreal Engine достиг какого-то лимита по рассчету освещения в высоту. И на всех стенах у меня появился участок без освещения.

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

Так или иначе, к концу ноября стартовое меню стало выглядеть вот так:

Оно стало отдельным уровнем с 3д фоном и движением
Оно стало отдельным уровнем с 3д фоном и движением

Появились запертые двери, и объекты, в которых можно искать ключи.

Справа электронный замок
Справа электронный замок
Не повезло ¯\_(ツ)_/¯
Не повезло ¯\_(ツ)_/¯

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

Ну и вцелом внешний вид немного пришел в себя.

Немного лофта
Немного лофта
Хрущовки на фоне - муахаххахаха
Хрущовки на фоне - муахаххахаха

Помимо этого, нашелся еще ряд вещей, которые пришлось выучить в самом движке. К примеру, вы знаете, как правильно сделать объект, который двигается на сцене по заданной траектории? Первые такие объекты остались сделанными в Sequence Editor, а новые при помощи Spline и некоторого количества кода. Мешанина вышла, но не переделывать же работающую вещь.

Еще квартал усилий

Завершилось все тем, чего пытался избежать: осваиванием blender. Ну не художник я совсем. Скрипты, которые писал, будучи студентом, рисовали лучше меня. И это без нейросетей. Но справиться с проблемами освещения родными средствами UE, а так же плагинами типа Modelling Tool, у меня просто не получалось. (здесь должна быть вставка про 2 пакетика травы и все прочее Ψ( ̄∀ ̄)Ψ).

К концу января меню стало менее кислотным.

Игра "Wake Up": история создания, первый тизер

Появилось нормальное приятное освещение (которое потом все-равно пришлось переделывать).

О эти тени. Как же мне нравятся тени. 
О эти тени. Как же мне нравятся тени. 

Гордость моего блендерпроизводства: ростовой аквариум (который потом тоже пришлось переделывать).
О боже мой, как я кайфанул от Niagara System, когда делал там пузырьки. Можно еще тем же способом сделать плавающие там косяки мелких рыб, но у меня для этого нет простейшего 3д ассета с рыбкой, а мои поделки на эту тему не годились даже на домашнее задание третьекласника.

Изменилось и освещение, и содержание, и материал воды. 
Изменилось и освещение, и содержание, и материал воды. 

Появился эффект дождя на окнах.

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

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

За столбом слева можно увидеть закрывающийся лифт. 
За столбом слева можно увидеть закрывающийся лифт. 

Ну, также росло количество сценариев, куча мелких доработок. Пришло понимание, что других уровней и не нужно: существующего пространства для изучения просто МОРЕ. Зная все сценарии я иногда некоторые могу не заметить.

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

Работа над тизером.

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

Игра "Wake Up": история создания, первый тизер

Тизеров в итоге вышло аж 4 версии. Последняя на двух языках.
И поскольку тизер уже готов, вы можете оценить соответствие начальной задумки финальному результату. Тизер отличается от раскадровки примерно как игра от того, что задумывалось. Где-то вместо хомяка в аквариуме - олень. Где-то другой ракурс. Но вцелом - примерно то, что и ожидалось. Если вы забыли, как он выглядит, то вот:

Кстати, это - английская версия

Отдельно хочу сказать про саундтрек. Автор саундтрека - Алексей Чистилин. У него есть ряд лицензированных треков, а так же бесплатные для использования на pixaby. И, в результате, я использую его бесплатные саундтреки в игре, потому что даже бесплатные - разнообразные и интересные. (тизер ему отправил недели за две до публикации, он оценил 😊).

Последние доработки

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

Сравните с предыдущими версиями. 
Сравните с предыдущими версиями. 

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

Генерация 1
Генерация 1
Генерация 2
Генерация 2

Теперь охранник выглядит как вооруженный военный. Потому что это единственный тематический ассет, который удалось нормально адаптировать. И даже это "нормально" включает в себя неестественные пропорции рук, а после смерти пальцы завязываются в морской узел. И даже не представляю пока, как это буду чинить.
Соответственно, чтобы оправдать военного, окружающая местность перенеслась в тщательно законсперированную научную базу где-то черт знает где. А в лоре (кстаааааати, появился ЛОР!!!) теперь есть некая научная компания.

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

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

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

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

Дальнейшие планы

Планы следующие.

Публикация демо версии на июньский Steam Fest. В демо версии будет все то же, что и в финальной, только сценариев сна штук 6. Из более чем 50-и (и есть заготовки еще примерно для 20-и, которые успею к тому времени сделать). По моим подсчетам, при таком количестве сценариев, после 10-и часов игры в каждой сессии с вероятностью больше 70% вы встретите не менее двух новых сценариев.

Геймплейный трейлер - нарезка игрового процесса под веселую музычку. Чтобы было понятно, как игра выглядит на самом деле.

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

Что хочется попросить.

Обратную связь по проекту.
Рекомендации по цене игры.
Советы куда опубликовать англоязычную версию этой статьи.

Ну и добавления в список желаемого, разумеется. Ссылку прилагаю.

3838
12 комментариев

Обалдеть там труда вложено.

Это в одиночку, я правильно понимаю? Респект!

2

Сразу видно, парень старался, конечно AAA здесь не пахнет, но для одного человека очень достойно) Индии проект во всей красе

1

задумка балдёжная

1

Задумка отличная! Желаю удачного релиза. Демку с удовольствием пощупаю

1

А обязательно ботов юзать для продвижения?

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

1