Лонг

"Итеративный ад" или как мы джем-версию игры переделывали. «Is Anybody There?» | Дневник разработки #2

И снова здравствуйте! Несколько лет назад я сделал игру на геймджем и решил: «Допилю ка я её за пару месяцев и выпущу в Steam». Спойлер: всё пошло не по плану. В этом дневнике разработки рассказываю:

  • Как проект чуть не отправился в корзину (несколько раз).
  • Как я зафейкал графику и сильно выиграл в производительности.
  • Почему ИИ-озвучка — это зло, а звук — главная механика.
  • И как я чуть не лишился компа во время плейтеста.

С меня рассказ, с вас комменты и лайки, deal? Приятного просмотра! Ниже текстовая версия, но я настоятельно рекомендую к просмотру именно видео.

Видео на youtube (подпишись!)
***

Напомню, в октябре 23-го я участвовал в КОД21, для которого создал проект «Is Anybody There?». Меня порадовал фидбек, а сама тема показалась крайне интригующей, и я решил продолжить разработку как сайд-проект, периодически отвлекаясь на него от D.F.D.

Предыдущий дневник разработки: https://enthub.it/story/61809-ot-dzhema-do-steam-is-anybody-there-dnevnik-razrabotki-1

Этот проект казался мне крайне простым. Ну потрачу я на него месяца 3−4. Разве сложно сделать игру на часик-другой, в жанре симулятор ходьбы с пугалками? *Грустный смешок*

Я понимал, что для «большой» игры всё то, что было сделано для джема никуда не годится. И передо мной встали сотни больших и маленьких вопросов. Вот некоторые:

  • Как визуально показать мир глазами слепого героя и при этом сделать игру коммерчески привлекательной?
  • Как разнообразить геймплей?
  • Как научить игрока ориентироваться в мире?
  Читаемостью локации в джем-версии явно не обладали  

Если игру для джема я делал в соло, то теперь стал работать в команде. C Pooffick'ом делаем игры с 2014 — он взял на себя отлов ядрёных багов, систему слепого чтения и локализацию. mitava.noida тащила на себе весь 2D-арт.Плюс куча тестеров, редактор, профессиональные актеры…

Да, так как бОльшая часть работ осуществлялась на энтузиазме, задачи были распределены неравномерно, и почти всё делал я сам, но называть это «соло-разработкой» язык не повернется. Даже такая простая вещь, как своевременный фидбек, это гигантское подспорье в разработке. Всегда нужен человек, который скажет, что ты делаешь что-то не то. Без помощи с задачами и моральной поддержки вряд ли бы этот проект дорос до демо в Steam, за что я всем причастным очень сильно благодарен.

Джем-версия была, по сути, прототипом из палок и г… энтузиазма. Переделывать нужно было всё.

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

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

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

Поэтому, сев перерабатывать это безобразие, на каком-то этапе экспериментов я подумал: а почему бы не зафейкать эти частицы?

Ну знаете, как в кино-павильонах делают картонные фасады домов. Зачем строить настоящее здание, если зритель не отличит подделку?

Идея гениальна и проста: пусть материал сам по себе будет отражать свет только в процедурных точках. То есть вместо расчета столкновений тысяч частиц с объектами я просто буду светить на эти точки фонариками. Сработало просто идеально, я думаю, что большинство из вас бы и не догадалось, если бы я открыл эту тайну. Так что тсс… Никому. Это наш секрет!

 Одним этим решением я сразу убил всех зайцев. Графика стала очень производительной, окружение значительно читабельнее, а навигация легче. Я смог назначать разным объектам разные оттенки, что сделало визуал чуточку разнообразнее. Этот принцип построения графики вы могли видеть в трейлере и демо…

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

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

Помните старые ситкомы? Закадровый смех как бы говорит: «Смейтесь, сейчас смешно». Так и в хоррорах пугают не только скриммерами и резкими моментами, но нередко используют подобные манипулятивные приемы. Но зачем? На самом деле суть не в том, что «американцы тупые», а в создании ассоциативной связи, выработке рефлекса. Вот так и в хоррорах можно настроить такую связь, чтобы у игрока появлялась тревога по триггеру, как слюна у собаки Павлова при зажигании лампочки.

Радио из Silent Hill — это отличный пример такой ассоциативной связи. Ты только попадаешь в помещение, там темно, стремно, еще и камера выбрала не самый информативный ракурс. Твое радио предательски шумит, и ты не знаешь: притаился ли кто за углом, или это опять ложная тревога на гигантского таракана.

  или не таракана…

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

  Мне очень нравится этот эффект, но как же его не любят алгоритмы компрессии…  

Если знать, что делать и не терять времени, то пройти джем-версию можно было за 5−10 минут. Новые игроки же проходили её за 30-40, что, согласитесь, довольно мало. Нужно было расширять игру.

Но просто заставить игрока больше ходить — это очень лениво и порицаемо. Я хотел привнести в каждом новом геймплейном отрезке новый игровой опыт. Например, геймплейная фича одного из отрезков игры — это аудиальный лабиринт, классика (Lost Woods) по типу старых Zelda. Пройдешь в нужный проход — ты молодец, прошел в неправильный — либо оказался в том же помещении, либо повстречался с тем, кого бы точно не хотел встретить.

  Реализовать подобную механику бесшовной было той еще задачкой  

И, как оказалось, стоило догадаться, что в линейной срежиссированной игре каждая минута геймплея — это УЙМА работы: постоянное тестирование и сотни прогонов, чтобы наладить все тайминги и атмосферу. Теперь мне приходилось не просто придумывать новые фичи и сюжет, а также предугадывать: сколько времени займет тот или иной отрезок? Как ещё можно чуть-чуть растянуть геймплей? В демо до сих пор остался эпизод, когда тебя просто заставляют стоять на месте минуту и слушать голосовое сообщение…

Геймплей на кончиках пальцев, 10 из 10!!!

К релизу я это исправлю, обещаю.

Ох… Моя следующая игра будет точно будет построена на системном геймплее…

Разработка поначалу шла уверенными темпами, контент и фичи добавлялись довольно легко, но что-то все равно не клеилось. Результат мне совершенно не нравился, из-за чего я всё чаще и чаще откладывал разработку на всё большие и большие промежутки. Пока меня в какой-то момент не осенило, что всё дело в ЗВУКЕ.

Звук довольно часто в играх плохо технически проработан, вспомнить ту же недавнюю Kingdom Come 2 или Blood West, где ты слышишь, что рядом кто-то есть, но где он: в соседней комнате? На другом этаже? В подвале? Непонятно. Ты чаще всего можешь определить просто направление до источника звука по панораме, и хорошо, если разработчики хотя бы добавляют эффекты реверберации под разные помещения. Тем не менее, чаще всего геометрия уровней никак не влияет на звук.

Я же хотел, чтобы звук вел себя правдоподобнее, чтобы в игре, где ты должен ориентироваться на звук, ты РЕАЛЬНО МОГ ориентироваться на звук. Аудио-движок Unity не рассчитан на подобное, и даже такие штуки, как fmod и wwise, тут не спасут. Решением стал плагин от Valve под названием Steam Audio. Если раньше динамик за стеной звучал ровно так же, как будто между игроком и динамиком стены не было, то теперь звук по физике распространяется по помещениям, отражается от стен, просачивается, изменяясь, сквозь тонкие объекты и полностью блокируется капитальными стенами.

  Официальная демонстрация от Valve

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

Запись номер 45. Я злодей, и я положил ключ под ковриком. Конец связи.

Серьёзно, кто-то в реальной жизни вообще разбрасывает диктофоны со своими голосовыми по всему дому?

Сами собой напрашиваются записки… Но это отчасти уже моветон, да и герой ведь слепой?

Вот именно, герой — СЛЕПОЙ! Тогда я вспомнил про шрифт Брайля — те самые выпуклые точечки для слепых людей. Но как это реализовать? Такой шрифт читают на ощупь, значит и игрока нужно было заставить прощупывать текст!

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

Решение оказалось простым, но с нюансами. Игрок водит курсором по тексту и когда задевает символы, то шрифт Брайля на них меняется на более привычный для зрячего человека. Момент замены шрифта был довольно просто реализован коллегой Pooffick'ом, но с самими шрифтами мне предстояло отдельно запариться. Бесплатные скаченные шрифты криво посимвольно заменялись. Строки меняли длину, а текст буквально скакал туда-сюда. Пришлось вручную переделывать шрифты.

Спустя несколько месяцев разработки, я решил, что настало время ЭСКПЕРИМЕНТОВ.

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

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

Если кратно, то демо из двух актов было пройдено все так же минут за 40−50, а я чуть не лишился компа и обоих своих мониторов. По итогу мне было важно ответить для себя на ряд важных вопросов:

  • Насколько цели и задачи понятны для игрока?
  • Насколько визуальная эхолокация помогает в навигации?
  • Получается ли ориентироваться на звук?
  • Атмосферно и cтрашно?

Хотелось бы мне соврать, что эти несколько месяцев разработки решили все проблемы джем-версии, но нет. Тестер хоть и лучше ориентировался в пространстве, чем игроки ранее, но все так же не понимал, куда идти и что делать. На звук этому человеку ориентироваться было сложно, но тут, скорее всего, сыграли физиологические особенности. Единственное, что меня порадовало, так это ответ на последний вопрос. Неискушенному в хоррорах игроку действительно было крайне напряженно и страшно. А зайдя в один из неправильных коридоров и триггернув находящееся там существо, игрок подпрыгнул со стула, чуть не перевернул мой стол со всем его содержимым. «ТЫ ЖЕ ОБЕЩАЛ, ЧТО НЕ БУДЕТ СКРИММЕРОВ!!!» Я не врал, их и не было на самом деле… Был максимум джампскейр)))))

Несмотря на радость, что мне удалось напугать игрока, я все же больше чувствовал разочарование. Может, стоит заняться чем-то другим? Я минимум месяц не притрагивался к игре. Тест показал — главная проблема «а что дальше делать?» не исчезла, игрока нужно направлять. Но как? Обычно направляют игрока с помощью маркеров, сюжетного контекста, реплик персонажей, грамотного левелдизайна с освещением и визуалом. Но в моей игре были только кликеры, чего очевидно было недостаточно. Тогда я понял, что герою нужно дать голос.

Для теста я использовал нейроозвучку. Которая в отрыве от контекста звучит… неплохо? Я думаю, вы и сами заметили прогресс в нейроголосах за последние годы. Но летом 24-ого они всё еще не умели в качественную симуляцию эмоций, и поэтому в игре это звучало просто ужасно, но для тестов сойдет. До этого я не сильно задумывался, как много мне придется переделать. Мне буквально пришлось пересобрать ВСЕ скрипты и ВСЮ логику прохождения игры. Пришлось сильно менять игровой темп и добавлять новые сцены.

Проблемы пришли откуда не ждали. Я запустил новый плейтест, теперь онлайн и на бОльшую аудиторию. Да, вопросы непонимания «что делать» ушли, игроки теперь не выпадали из повествования и не скучали. Но то, что раньше проходилось за 30−40 минут, СТАЛО ПРОХОДИТЬСЯ 10−15!!!

Столько работы, чтобы игра просто СКУКОЖИЛАСЬ. А это означало что? Нужно больше контента. Я вернулся к работе, сделал еще один акт, расширил предыдущие и потратил на это несколько месяцев.

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

А что мы хотим вообще от игры? Какая цель? Без четких целей сложно оценивать, куда тебя этот путь завел. Просто «сделать игру» — это уже пройденный этап. Игр с джемов у нас было достаточно. Теперь мы хотим:

  • Сделать полноценную игру «по-взрослому». С лайф-квалити-фичами, поддержкой геймпада, локализацией на другие языки.
  • Сделать коммерческий продукт, который будет продаваться в Steam.
  • Пройти весь путь от начала и до конца, получить такой большой опыт и набить гору шишек.
  • Научиться маркетингу игр.
  • Сколотить хотя бы небольшое комьюнити. Которое будет расти от проекта к проекту.

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

Это проект не про деньги. Получится немного заработать — клёво, куплю новое оборудование и вложу в следующий проект. Если нет — ну и ладно, будем делать следующий проект.

Попробовать Демо-версию игры можно уже сейчас в Steam. Буду благодарен за добавление в Вишлист!

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

10
10комментариев