Echo Weaver: Создание меродибрании с петлей времени в Unity 6

Oct 8, 2026|8 мин.
Fergus Baird
Fergus Baird - Unity Technologies
Senior Content Marketing Manager
Made with UnityGame design
Ключевое искусство от Echo Weaver от Moonlight Kids и Akupara Games, Made with Unity. Неоново-насыщенное мультяшное изображение фигуры с белыми глазами и белыми волосами, по грудь. Они окружены несколькими персонажами, включая (по часовой стрелке) кота с пиццей, человека с голубыми волосами, лизозавроида, скелетообразного насекомого, старуху с седыми волосами и очками, замаскированную фигуру и инопланетянина с обнаженным мозгом.

Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Эхо Уивер Долгожданная метроидрейния от Moonlight Kids и Akupara Games выходит сегодня на PC и консолях. Мы взяли интервью у гейм-дизайнера Криса Сумски и программиста Анкита Триведи, чтобы поговорить о проектировании с ограничением доступа к знаниям, архитектуре с циклическим сбросом и уроках, которыми они могли бы поделиться с другими небольшими командами, разрабатывающими игры на Unity.

Когда инди-студия Moonlight Kids, состоящая из трёх человек, начала работу над Echo Weaver , они подумали, что нашли лазейку в одной из самых печально известных систем разработки игр: системе сохранения состояния.

«Если кто-то проиграет сохраненную игру, вы станете его главным врагом», — говорит Крис. В своей дебютной игре, коллекционере существ The Wild at Heart , команда столкнулась с проблемами, связанными с ошибками сохранения состояния, поэтому идея временной петли для Echo Weaver казалась воплощением мечты: «Мы подумали: никаких сбережений!» Путешествие во времени! Всё обнуляется!

Конечно, в разработке игр редко всё бывает так просто. Echo Weaver транслирует свой взаимосвязанный мир без экранов загрузки, что означает, что игре приходится постоянно загружать и выгружать фрагменты карты по мере того, как игрок перемещается по миру. Это приводит к таким ситуациям, как: Пробил ли игрок препятствие в виде короткого пути в этом цикле? Они разговаривали с этим NPC? В мире Echo Weaver необходимо сохранять определенный уровень стабильности, по крайней мере, до тех пор, пока у игрока не закончится время и цикл не начнется заново. «В итоге оказалось, что нам просто необходимо было все сохранить», — говорит Крис. «Но когда что-то идёт не так, это менее опасно, потому что игрок всегда может перезапустить цикл».

Эхо Уивер

Детективная игра в жанре космического паркура

В игре Echo Weaver нет ограничений на использование способностей. С первой минуты игры игровой мир полностью открыт, но игроку предстоит самому разобраться, как его полностью исследовать. «Внутри компании мы представили проект под названием „детектив, занимающийся космическим паркуром“», — говорит Анкит.

«Представьте, что вам нужно создать игру, в которой ничто не сохраняется», — говорит Крис. «Все необходимые игроку ощущения прогресса уже присутствуют, они просто скрыты под слоями секретов». Это та большая и странная штука, которую мы делаем с Echo Weaver . Для меня это одновременно и самое крутое, и самое большое испытание, потому что человек может случайно обрести любые способности в любой момент.

На начальных этапах разработки команда позиционировала проект как целенаправленную реакцию на книгу «Дикие сердцем» . «В то время он плохо продавался — к счастью, позже ситуация изменилась — поэтому мы старались делать все, чтобы противостоять этому проекту». «Мы решили сделать что-то немного мрачнее, немного жестче», — говорит Крис. «Конечно, это означало, что мы шли против того, в чём были хороши, — и мы быстро осознали свою ошибку!»

Эхо Уивер | Лунные дети | Игры Акупара

Многие элементы, перешедшие от Echo Weaver к The Wild at Heart, лежат в основе идентичности Moonlight Kids как студии: от стиля рисования от руки соучредителя и креативного директора Джастина Болдуина («вплоть до тех же кистей и палитр») до больших, взаимосвязанных пространств, полных секретов, и стремления к тонкому повествованию в жанрах, где это нечасто является приоритетом.

С технической стороны, внутренняя библиотека инструментов команды также претерпела изменения по сравнению с The Wild at Heart , включая систему диалогов, интерфейсный слой FMOD, код контроллера и динамических значков ввода, а также функцию дрожания экрана.

Эхо Уивер | Лунные дети | Игры Акупара

Основные принципы проектирования: Ткач помнит

В игре Moonlight Kids, где отсутствуют ограничения на способности, а мир сбрасывается с каждым циклом, необходимо было установить правила, определяющие, что сохраняется между запусками. Они пришли к сюжетному решению, которое не нарушило бы погружение в игру: Игровой персонаж, Ткач, сохраняет свои воспоминания во время различных циклов. «Всё, что они помнят в своей памяти, мы можем использовать в качестве аргумента». «Если это видит Ткач, то это должен увидеть и игрок», — объясняет Крис. «Это не нарушает правило метроидбрейничества».

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

Эхо Уивер | Дети лунного света | Unity

Разработка уровней без постоянных упрощений

Выбор способа ограничения прогресса на основе знаний игрока, а не конкретных улучшений, лишает стандартный набор инструментов дизайнера уровней важного инструмента. В играх жанра «метроидвания» обычно преобладают односторонние стены и постоянные короткие пути — сломайте стену, и этот путь будет открыт до конца прохождения. «В игре с временной петлей, такой как Echo Weaver , когда вы разрушаете препятствие и перезапускаете петлю, это препятствие тут же появляется снова», — говорит Крис. «Это не входило в мои обязанности».

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

Для более сложных и масштабных путей — «Представьте себе Храм Огня в Dark Souls », — говорит Анкит, — единственным реальным вариантом остается маскировка. Проход может быть спрятан за произведениями искусства на переднем плане с одной стороны и расположен на переднем плане с другой, создавая секрет, скрытый на виду. «В таких играх, как Tunic, это очень хорошо реализовано с помощью перспективы», — добавляет он.

Эхо Уивер | Лунные дети | Игры Акупара

Управление временем игрока

Часы на борту Echo Weaver — это наиболее заметная система, которая постоянно видна игроку. Каждый цикл начинается с 1 минуты на таймере. Игроки могут искать кристаллы времени, чтобы продлить его, или же жертвовать кристаллами, чтобы исцелиться; здесь крайне важно найти правильный баланс для успеха.

В ранних версиях игры таймер отсчитывал секунды, но тестировщикам это не понравилось. «Это вызвало сильный стресс», — говорит Крис. «Однажды мы подумали: а что если мы просто уберем часы?» Вам на самом деле не нужны секунды — достаточно знать только минуты.

Финальный интерфейс представляет собой ряд временных интервалов, каждый из которых соответствует одной минуте — в игре они называются «колокольчиками», потому что реплики NPC типа «Вернитесь на 8-й минуте» разрушали иллюзию. Практически всё в мире тщательно синхронизировано с этими минутными ритмами. Тестировщики положительно отреагировали на эту новую систему и вскоре начали изобретать «загрузочные последовательности» — тщательно оптимизированные начальные маршруты, которые позволяют выиграть огромное количество времени в первые несколько секунд цикла.

Эхо Уивер | Лунные дети | Игры Акупара

Как работает временная петля

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

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

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

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

Данный подход не является полностью свободным от ошибок. Анкит обнаружил, что постоянно отображаемые переходные двери не полностью сбрасывают свое состояние пользовательского интерфейса между циклами, поэтому он просто перестал их сохранять. Теперь интерактивный компонент каждой двери представляет собой клон, который создается заново при каждом сбросе. «Для объектов, которых может быть около 20, это не имеет значения — это не влияет на производительность», — объясняет он.

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

Многослойные элементы окружения Echo Weaver в редакторе

Оптимизация детально проработанного, нарисованного от руки мира.

Как и The Wild at Heart , Echo Weaver изобилует созданными вручную рисунками , которые, хотя и выглядят потрясающе, могут потребовать значительных затрат на загрузку и рендеринг. Команда внедрила ряд исправлений для максимальной производительности.

Сжатие активов

Решение их первой серьезной проблемы, связанной с выступлением, оказалось не слишком впечатляющим. «Ни в одном из наших атласов не было включено сжатие», — смеется Анкит. Включение сжатия позволило уменьшить объем данных в памяти примерно до 1 ГБ.

Обзор анимации Weaver в редакторе Unity .

Загрузка сцены

Загрузка игры представляла собой более сложную задачу. Создание экземпляров происходит синхронно в основном потоке, поэтому декоративные элементы удаляются из фрагментов во время сборки (с сохранением настроек размера, вращения и спрайтов, заданных с помощью ManualOverrides ) и создаются заново асинхронно, партиями по несколько объектов за кадр. В сочетании с системой соседства, которая постоянно поддерживает загрузку смежных фрагментов, эффект внезапного появления объектов остается незаметным.

Группировка

Поскольку в рисунках Джастина, выполненных от руки, отсутствуют повторяющиеся узоры, возможности для пакетной обработки были редки, поэтому Анкит написал инструмент, который объединяет группы спрайтов в одно изображение (и выполняет один вызов отрисовки). Например, небо в одном из биомов Echo Weaver состоит из десятков почти идентичных платформ; используя инструмент, они объединили его в два составных спрайта вместе с несколькими уникальными акцентами.

Освещение

Первоначальная установка освещения у Echo Weaver обошлась дорого. Первоначально спрайты могли содержать до четырех различных типов освещения (фон, игрок, предметы и варианты пола), и в какой-то момент одновременно отображалось 16 различных текстур освещения. Объединение шести световых слоев в три монтажных склейки значительно сокращает их количество, «и я не думаю, что это как-то повлияло на визуальную составляющую», — говорит Анкит.

водные эффекты

Вода была взята из Unity Asset Store: Game2D Water Kit , работающий на универсальном конвейере рендеринга . «Очень гибкий, дает действительно хорошие результаты», — говорит Анкит, — но для каждого водоема требуется повторная обработка изображения с камеры, а стоимость зависит от количества групп слоев, преломляющих свет под поверхностью. Команда разработчиков объединила подводные слои, а собственная команда портирования издателя Akupara Games пошла еще дальше, адаптировав плагин для слаботочных устройств, отделив эффект имитации перспективы входа на поверхность от настройки преломления, чтобы более слабые устройства сохраняли внешний вид без перерисовки.

Эхо Уивер | Лунные дети | Игры Акупара

Отладка

Отладчик кадров Unity сыграл центральную роль в большей части этой работы по оптимизации, позволив Анкиту пошагово просматривать вызовы отрисовки кадров и точно видеть, где именно происходит сбой при пакетной обработке и почему. Далее задача заключалась в консолидации: объединении материалов, преобразовании отдельных спрайтов и повторной проверке до тех пор, пока не будет обработано как можно больше элементов кадра. «Случаи брака в партиях продукции все еще можно заметить, — говорит он, — но их стало намного меньше, чем раньше». Совет Анкита другим командам прост: «Начинайте активно использовать Frame Debugger прямо сейчас!»

Эхо Уивер | Лунные дети | Игры Акупара

От LTS 2021 до Unity 6

Игра The Wild at Heart вышла на движке Unity 2021; Echo Weaver вышла на движке Unity 6 , и незадолго до релиза была привязана к одной из версий. На вопрос о том, что изменилось изо дня в день между версиями, Крис ответил без колебаний: « Вложенные префабы и режим редактирования — это изменило мою жизнь».

Анкит говорит, что команда активно использовала Composite Collider 2D и встроенный пул объектов Unity, что позволило ему наконец прекратить поддержку собственного пула объектов, который он написал для игры The Wild at Heart . «Приятно использовать встроенные функции там, где это возможно», — отмечает он.

Эхо Уивер | Лунные дети | Игры Акупара

Заключительный совет для небольших команд

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

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

Команда внедрила систему потоковой передачи данных Echo Weaver на раннем этапе проекта. Частицы собирались вместе с самого первого дня. Анкит всегда старается бережно относиться к удобствам C#, поскольку нагрузка на сборщик мусора может быстро возрасти. «Если вы пытаетесь выпустить игру, в конечном итоге она должна быть производительной». Зачем загонять себя в тупик, если это кажется невозможным? Для повышения производительности на более поздних этапах необходимы масштабные критические изменения.

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

Но единственное, что он бы сделал иначе, это доверился бы своей интуиции и придерживался бы того, что ему знакомо и кажется правильным. «Оглядываясь назад, я понимаю, что было неправильно с нашей стороны говорить: „Никто не хотел фильм «Дикие сердцем» , поэтому мы сделаем что-то совершенно другое“». Чего хотят люди? Нет – используйте свои сильные стороны по-настоящему. Мы потратили много времени, пытаясь понять, как взаимодействовать с рынком. В конце концов мы просто задались вопросом: а что мы вообще делаем? Делайте то, что у вас хорошо получается. Создайте игру, которую вы хотите создать.

Игра Echo Weaver выходит сегодня в Steam, на PlayStation®5, Nintendo Switch™ 2, Nintendo Switch и Xbox Series X|S. Узнайте больше об играх, Made with Unity, на нашей странице куратора Steam , а также ознакомьтесь с другими историями от разработчиков Unity в блоге Unity и центре ресурсов .


Nintendo Switch — зарегистрированный товарный знак компании Nintendo.