История о вечном страдании или как мы сделали Project DeepWeb

История о вечном страдании или как мы сделали Project DeepWeb

Идея. Кранч. Сломанный жесткий диск. Кранч. Депрессия. Кранч. Вдохновение. Кранч. Релиз. И после него еще пару кранчей.

Именно так в нескольких словах можно охарактеризовать весь цикл работы над Project DeepWeb — первым проектом NightCat Studios. Это desktop-like игра про исследование глубинного интернета.

Старт

Началось всё 19 мая 2018 года — на следующий день после DevGAMM Moscow 2018. Мой старый друг и коллега Евгений предложил мне поработать над еще одной desktop-like игрой, но на этот раз более оригинальной, чем те, над которыми мы с ним работали более года назад. На руках у нас уже был дизайн-документ и сценарий первых двух глав, написанный нашим сценаристом Сергеем (который тогда ещё не был нашим сценаристом). Это, а также заверения о том, что работы здесь на два месяца, подкупили меня и я согласился отложить свой проект и взять Project DeepWeb в распоряжение тогда только образованной NightCat Studios.

Знаменательное фото создания проекта в Unity сразу после DevGAMM Moscow 2018
Знаменательное фото создания проекта в Unity сразу после DevGAMM Moscow 2018

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

Основа

Самый ранний билд PDW на Construct 2. Сентябрь 2017
Самый ранний билд PDW на Construct 2. Сентябрь 2017

В первую очередь был создан костяк внутриигровой ОС — того, что позже мы назовём ReduxOS. Рабочий стол, окна и несколько простых программ. Почти все они работают по очень примитивному принципу — данные на вход, данные на выход плюс визуальные понты. Как швейцарские часы.

Что же касается браузера, у нас было два варианта — делать настоящий браузер в Unity с поддержкой HTML и, возможно, выходом в настоящий интернет (как мы это делали в предыдущем проекте), либо делать сайты обычными UI-префабами. Мы выбрали второй вариант потому, что так было проще прописывать взаимодействие веб-страниц с сюжетными скриптами, и потому, что из нас HTML-верстальщики такие себе.

Контент

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

Одна из многих папок с контентом, которые мы использовали полностью или частично
Одна из многих папок с контентом, которые мы использовали полностью или частично

В целом, может показаться, что такое количество контента создавалось в каком-то хаосе (либо я один боялся, что так будет), но нам удалось всё грамотно структурировать благодаря инструментам Trello, где мы распланировали весь пайплайн создания контента для игры, и Miro, в котором была выстроена схема всего сюжета.

Из интересного могу сказать то, что часть контента создавалась нейросетями. В основном это были фото персонажей, которые известны в игре очень плохими поступками. Фото со стоков мы брать не могли по правилам, друзей порочить не хотели, поэтому воспользовались нейросетью This Person Does Not Exist, где сгенерировали несколько фото и подредактировали их.

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

История о вечном страдании или как мы сделали Project DeepWeb

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

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

Синематики

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

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

На монтаж ушел месяц. Будете смеяться, но здесь даже CGI был, хоть и не совсем реалистичный.

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

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

Суммарно, на всё ушло три съемочных дня, два из которых прошли в нашей комнате в общежитии, а третий на берегу Днепра в Киеве, а также около 70 долларов на аренду оборудования и почти два месяца на пост-продакшн, включая примитивный VFX.

Вы думаете, я не знаю, как делаются VFX-брейкдауны? Вы правы...

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

Переделывание

В мае 2019 года, на второй день DevGAMM Moscow 2019, мы посмотрели на игру, на то, сколько мы на неё потратили времени, и приняли решение. Нужно завершать проект как можно скорее. И переделать половину игры.

Во первых, тогда мы сделали то, что должны были сделать с самого начала. Мы составили гайдлайны ReduxOS, стандартизировали весь UI-игры.

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

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

Кранчи и переносы

В июле мы определили для самих себя первую дату релиза. Мы хотели выпустить игру 16 августа. Но первой публичной датой релиза стало 17 сентября. И с этого момента всё пошло не по плану.

В игре с каждым днём находилось всё больше багов и "нерешаемых" задач. В один момент из-за недосыпа я чуть не уехал в больницу. Чуть не накрылся жесткий диск с единственной копией проекта (облачные бэкапы? что это такое?) и я буквально в последний момент перенёс проект на новый хард.

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

Сначала мы понадеялись на режим "Scale with screen size", который фиксировал макет экрана в пикселях и просто масштабировал его. Мы теряли нормальную поддержку экранов с соотношениями сторон, другими чем 16:9 (полосы по бокам или снизу/сверху), но в теории, это работало бы. Но нет — из-за проблем отрисовки интерфейса в Unity плыл текст и ссылки.

История о вечном страдании или как мы сделали Project DeepWeb

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

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

Макет экрана и ортографическая камера
Макет экрана и ортографическая камера

Кроме того, была ошибка Assertion failed: Callback unregistration failed.

Здесь вообще глухо. Форумы молчали, в тематических чатах никто ничего не понял, а техподдержка Unity отказалась нам помогать из-за того, что это старая версия.

История о вечном страдании или как мы сделали Project DeepWeb

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

А релиз тем временем откладывался всё дальше и дальше. Сначала на 1 октября, потом на 1 ноября, потом на "когда-то в 2019", потом и вовсе на 2020.

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

В ноябре получилось выбить время на какой-то отдых — на DevGAMM Minsk 2019 мне предстояло рассказать про desktop-like игры.

История о вечном страдании или как мы сделали Project DeepWeb

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

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

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

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

Релиз

В начале 2020 мы определили для себя последнюю дату релиза — 24 марта. Но побоялись её оглашать публике. И за неделю до этой даты отправили билд игры в Steam, где началась его ужасно долгая проверка. Ужасно долгих три недели. Против нас шло всё — релиз HL:Alyx, переход Valve на удаленную работу, а также довольно большое количество текста, у которого не было перевода на английский.

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

Но всё оказалось несколько проще. Через мучительно долгих (для нас) три недели нам прислали две правки: "не расписан контент для взрослых" и "неправильно настроен Steam Cloud". 14 апреля пришло окончательное письмо счастья. А на следующий день игра вышла.

Промежуточный итог

В целом, релизом и конечным продуктом мы остались довольны.

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

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

На что-то мы как-то не обратили внимание, например, на то, что открывающий синематик и начало игры никак не объясняют мотивацию главного героя. Это оказалось довольно просто исправить.

А чего-то мы вообще не планировали, так это истории с утилитой FSearcher. Мы боялись, что игроки будут постоянно про неё забывать, а оказалось, что они сканировали все сайты подряд. Вышло неловко, и мы теперь думаем, что с этим делать дальше.

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

А что дальше?

Хоть релиз уже случился, история разработки Project DeepWeb продолжается. Несколько недель назад мы выпустили первое, и далеко не последнее крупное обновление — ReduxOS 2.0, в котором мы исправили несколько ошибок гейм-дизайна и оформления внутриигровой ОС, а также дополнили её разного рода фичами, о которых нас просило комьюнити.

Трейлер обновления ReduxOS 2.0

Итоговый итог

Всю разработку можно описать словами:
Мы сами не знали, насколько большую игру мы делаем.

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

Почти два года игры показали нам то, что нужно:

  • научиться планировать разработку более точно
  • уметь останавливаться в полировке и доработке
  • тратить больше времени на оптимизацию
  • купить хлеба... погоди, что?

И самое важное: не сдаваться и не отменять проект на 90 процентах.

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

5252
21 комментарий
18
Ответить

Комментарий недоступен

Ответить

А что не так?

Ответить

Комментарий недоступен

Ответить

Небольшой вопрос по игре: ютуб уровня b есть?

1
Ответить

Да, конечно. Такое упустить было бы преступлением

1
Ответить

Комментарий недоступен

1
Ответить