Bright Lights of Svetlov: как построить историю в рамках ограничений
Большая конкуренция на рынке инди-игр приводит к тому, что первые проекты новичков в геймдеве редко становятся популярными или вовсе не доходят до релиза. Шансы на успех значительно возрастают, если разработчик придерживается четкого плана и трезво оценивает свои возможности даже на стадии концепта. Не менее важно следить за состоянием проекта после релиза и поддерживать его, чтобы избежать непредвиденных ситуаций. История Владимира Чолокяна, разработчика симулятора ходьбы Bright Lights of Svetlov полностью это подтверждает.
Осознанный старт в одиночку
Карьера Владимира в геймдеве началась довольно сумбурно. Он не мог сфокусироваться на определенной цели и, вспоминая о том периоде, признаётся, что «желаний было больше, чем конкретных действий». По этой же причине Владимиру не удавалось долгое время достичь ощутимого прогресса, хотя впервые изучением основ 3D-моделирования он занялся примерно в 2009 году. Осознанное стремление к разработке игр появилось спустя 4-5 лет. Именно тогда в свободное время Владимир стал делать симулятор ходьбы на Unity в стилистике деревенского постапокалипсиса. Но несмотря на то, что он работал над игрой в течение двух лет, она даже не была анонсирована: из проекта ушел программист; учеба в университете отнимала много времени, и, в конце концов, у начинающего разработчика пропал энтузиазм. Но были и положительные моменты: ассеты из невышедшего проекта успешно продавались в Unity Asset Store и пополнили портфолио Владимира. Поработав несколько лет в различных компаниях 3D-художником, молодой человек решился на вторую попытку.
Владимир Чолокян: "В 2020 году я понял, что нужно врываться в геймдев и рассчитывать только на себя. При этом выстроить пайплайн так, чтобы вытянуть разработку своими силами и не думать о том, что завтра уйдет программист, или еще кто-то… Помогут — хорошо, не помогут — не страшно."
Три пункта ограничений
Выбирая движок для новой игры, Владимир понял, что возвращаться к Unity уже нет смысла. На это повлиял опыт работы в компании, которая разрабатывала MMORPG на Unreal Engine. Знакомство с новой технологией происходило поэтапно, и Владимир заметил, что порог вхождения для новичков в UE4 стал значительно проще, чем в тот период, когда он пытался освоить Unreal SDK. Но важно не только выбрать основу для будущей игры, но и правильно расставить приоритеты.
Перед тем, как начать работу над игрой, Владимир четко понимал, что делает это не столько ради денег, сколько «закрыть гештальт» и полноценно вступить в ряды инди-разработчиков. Поэтому он составил список из трех ограничений, которые помогли бы избежать затягивания сроков.
- Игра должна быть короткой: нет смысла в одиночку делать масштабный проект в течение многих лет.
- Возможность многократного использования одних и тех же ассетов в целях оптимизации производства.
- Исходя из предыдущего пункта, привязать действие в игре к определенному пространству.
Сопоставив все эти особенности, разработчик понял, что место действия будет достаточно изолировано. Под это условие идеально подошла квартира: локации комнат не требуют большого количества ассетов, к тому же интересная история может произойти даже в четырех стенах.
Поиски сюжета
Владимир сразу определился с сеттингом: тема советской эпохи до сих пор вызывает у людей интерес. Оставалось только обозначить временной промежуток. Разработчику импонировала идея о повествовании, в котором события охватывали сразу несколько эпох: 30-е, 60–70-е и 90-е. Такая концепция могла бы не только отобразить перемены в мировоззрении героев, но и то, как время влияет на их быт и обстановку.
Владимир Чолокян: "Идея была в том, что повествование шло с точки зрения героев, которые жили в сталинскую эпоху, затем в главной роли были их дети, и, наконец, внуки. При этом сторителлинг влиял на окружение. Например, если в 30-х годах в квартире стоял новенький комод, в 60-70-х он уже выглядел старым барахлом, а в 90-х — развалился, или его вовсе выкинули. Было бы интересно понаблюдать, как меняется мир на протяжении игры."
Но вскоре выяснилось, что такой подход не соответствовал изначальным требованиям Владимира к проекту. Запланированный объем работ значительно вырос, ведь каждому значимому ассету требовалось, как минимум, три версии. К тому же разработчик все еще не мог определиться с основой сюжета: что же должно произойти в квартире?
Во время моделирования объектов в стиле постсоветской эпохи, Владимир вспомнил об инциденте, который произошел в 80-х годах. Об этом событии знают многие, при этом оно не на слуху, в отличие от аварии на Чернобыльской АЭС. На его основе разработчик написал сценарий. Чтобы уберечь будущего игрока от лишних спойлеров, Владимир замаскировал общий замысел деталями повседневного быта и элементами семейной драмы.
Рутина может быть интересной
Теперь концепт игры соответствовал всем вышеперечисленным пунктам ограничений. Но при таких условиях геймплей вряд ли мог похвастаться разнообразием. Как сделать игру интересной в рамках ограниченного пространства? Идею с паззлами Владимир отбросил сразу: лично ему не очень импонировала эта механика, и он считал, что большинство игроков все равно посмотрят решения головоломок на YouTube. В итоге основой геймплея стали ежедневные хлопоты, которыми человек обычно занимается дома: уборка, мытье посуды, чтение и т. д. Чтобы рутина была интересной, на помощь пришли нарративные элементы.
Записки, частично раскрывающие сюжет. Довольно стандартный способ, но в случае игры небольшого формата он не выглядит так, словно его вставили «для галочки».
Окружение как нарративный инструмент (environment storytelling). Один из самых ярких примеров в игре — кассетный магнитофон «Электроника-322». Впервые он появляется в игре в качестве подарка от тайного поклонника, затем оказывается в гараже, где его тайком слушает юная героиня с друзьями, а в другом эпизоде он вовсе стоит на подоконнике. Такие детали не влияют на сюжет, но их появление в разных местах расставляет определенные акценты в повествовании, которые всегда подмечают внимательные игроки.
Профессиональная озвучка, выполняющая две функции. Во-первых, она дополняет образ персонажей, компенсируя обезличенность героев (в игре они представлены абстрактными лоу-поли моделями без текстур). Во-вторых — озвучка повышает ценность производства, что сразу вызывает лояльность у пользователя. Bright Lights of Svetlov озвучивала студия GamesVoice, которая работала над локализацией русской версии Subnautica.
Не время для амбиций
Разрабатывая игру, Владимир тщательно просчитывал, сколько уйдет времени на создание того или иного элемента, а также брал в работу только то, что ему было по силам. Также у разработчика остались наброски дизайн-документа с прошлого проекта, который представлял собой краткое описание игры и сценарий с прописанными сценами в скобках. Отдельным списком шли ассеты. Владимир отмечает, что несмотря на разницу между проектами, в общей конструкции диздока мало что поменялось. Оставалось только следовать планам и доделать игру.
Ранний прототип квартиры Bright Lights of Svetlov
Владимир Чолокян: "Помимо проекта, я параллельно разбирался в основах Unreal Engine: как собрать уровень, работать с блупринтами… Естественно, если бы я начал с чего-то масштабного — скорее всего, у меня ничего бы не получилось. Возможно, это связано с первым неудачным опытом разработки на Unity, после чего я умерил амбиции и стал трезво оценивать свои возможности. Наверное, этого качества не хватает многим новичкам: как правило, они начинают свои проекты с азартом и воодушевлением, а потом выгорают. Я не хотел такого исхода."
Релиз и первые неприятности
До релиза игры в Steam разработчик прошел финальную версию игры с десяток раз, чтобы убедиться в отсутствии критических ошибок. По совету друга Владимир загрузил билд на площадку ночью (примерно в половину первого). Казалось, что теперь можно отдохнуть. Но что-то подсказывало разработчику, что Bright Lights of Svetlov стоит пройти еще раз. Опасения были не напрасны. Скачав игру в Steam и запустив ее, Владимир с ужасом обнаружил баг на старте игры, который блокировал дальнейшее прохождение.
Владимир Чолокян: "На локации самого первого уровня есть три бутылки алкоголя, с которыми игрок может взаимодействовать: рижский бальзам, водка и коньяк. В теории для каждой емкости можно создать отдельный блупринт и связать их, но я поступил иначе. Внутри блупринта (при наличии галочки) скрипт заранее определяет вид предмета. По умолчанию этот блупринт — по сути отключенный цилиндр без коллизии. В нем задействованы три модели, подобранные по размеру. Каким-то образом у каждого из этих предметов включилась исходная коллизия цилиндра, который сам по себе был огромный. И цилиндр, который находился в зале (бутыль в серванте), не позволял игроку подойти к шкафу за бельем и даже не давал положить документы из другой комнаты, где шел ремонт. Фактически, на уровне появился огромный невидимый объект, которого быть не должно. В тот момент я подумал: если игру могут сломать даже такие мелочи, то что происходит в крупных проектах? Представляете, какой стресс это может вызвать у разработчиков?"
В итоге Владимиру потребовалось порядка 20 минут, чтобы понять и устранить причину ошибки. Еще 5 минут создавался новый билд, и 3 минуты ушло на загрузку. Самое неприятное в том, что в это время на YouTube уже нашелся иностранный пользователь, который безуспешно пытался пролезть в комнату на локации. При этом с момента релиза прошло всего полтора часа.
Дальнейшая работа над ошибками
После этого разработчик поставил себе правило: даже при самом незначительном обновлении, заново проходить игру после загрузки апдейта и тщательно исследовать каждый угол. Владимир признается, что в какой-то момент уже не мог смотреть на свой проект, устав от бесконечных тестирований, но выложить билд в публичный доступ с критической ошибкой ему хотелось еще меньше. Первые дни ушли на исправление багов, о которых сообщали игроки. Некоторые недочеты в игре все же остались.
Владимир Чолокян: "Есть отдельный вид багов, который появляется только у единиц. У какого-то игрока не срабатывает скрипт на определенном этапе. Как это отследить? В редакторе блупринт работает, а у игрока — нет. Возможно, причина в какой-то последовательности действий или в конфигурации «железа» пользователя, но в таком случае я ничего не могу поделать. Мне пришлось закрыть глаза на такие вещи, потому что у большинства игра работает хорошо, и вряд ли с точки зрения программирования я смогу сделать лучше."
Неожиданный теплый прием
До релиза Владимир придерживался мнения, что большинство инди-проектов игроки просто не замечают, и в основном, такие игры покупает только близкое окружение разработчиков. Но в случае с Bright Lights of Svetlov все произошло иначе. Помимо интереса со стороны игроков, симулятор ходьбы привлек внимание популярных стримеров.
Владимир Чолокян: "Обычно разработчик радуется, когда его игру проходит такая личность как BlackSilverUfa. У меня была совершенно другая реакция: сейчас у стримера что-то пойдет не так, и обнаружится баг, о котором я не знаю. А это увидит в прямом эфире 4000 человек! Я настолько переживал, что в конце концов решил не смотреть эти стримы. В дальнейшем, чтобы не нервничать, я выработал свою тактику: если заходил на Twitch и видел, что какой-то человек в это время стримит мою игру, то периодически обновлял превью и наблюдал, где он находится. И только после финала, открывал стрим, смотрел титры и закрывал…"
* * *
Несмотря на достаточно стрессовый запуск, на сегодняшний день Bright Lights of Svetlov собрала 91% положительных отзывов в Steam из более, чем 530 обзоров. Владимир доволен результатом, и что самое главное — теплый прием игроков вдохновил его на создание нового проекта, разработка которого уже началась. Пока неизвестно, останется ли в следующей игре прежний подход к лаконичному повествованию, или разработчик предпочтет более комплексный вариант в духе 35MM, но приобретенный опыт и навыки, а также поддержка сообщества поможет ему выбрать правильный путь.