Echo Weaver: Проектирование метроидвании с временным циклом в Unity 6

  • PublicPublic
  • 09 Oct, 2026
Echo Weaver: Проектирование метроидвании с временным циклом в Unity 6

Echo Weaver, новая метроидвания от Moonlight Kids и Akupara Games, выходит на ПК и консоли с уникальной философией дизайна, построенной вокруг временного цикла. Трое разработчиков изначально задумали проект, чтобы избежать notorious системы сохранения состояний, которая вызывала проблемы в их предыдущей игре The Wild at Heart. Идея была проста: если время сбрасывается, сохранять ничего не нужно. Однако бесшовный, взаимосвязанный мир игры требует постоянной загрузки и выгрузки чанков карты, что означает необходимость поддерживать персистентность событий, таких как разрушенные стены или взаимодействие с NPC, до момента перезапуска цикла. В итоге команда реализовала полноценную систему сохранений, но обнаружила, что механика временного цикла смягчает фрустрацию от потери данных, поскольку игроки всегда могут сбросить цикл, если произошла ошибка.

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

Для более крупных сокращений, которые нельзя решить в рамках одного цикла, команда полагается на визуальное сокрытие: проходы прячутся за передним планом на одном конце и помещаются на передний план на другом. Часы игры — центральная система, видимая всегда, и начинаются с одной минуты на цикл. Игроки собирают кристаллы времени, чтобы продлить это время, или жертвуют ими для лечения. Ранние версии использовали таймер с точностью до секунды, но тестировщики сообщали о высоком уровне стресса. Итоговый HUD отображает минутные отрезки, названные «колоколами», что согласуется с таймингом игры и позволяет игрокам создавать оптимизированные «последовательности запуска», чтобы быстро накапливать время.

Техническая архитектура, возглавляемая программистом Ankit Trivedi, делит игровой мир на чанки с собственным процессом сборки, который удаляет дорогостоящий контент. Тяжелый, неизменный слой геометрии мира запекается в сцены и остается загруженным постоянно, в то время как легкая сцена «основного» содержит волатильное состояние, такое как менеджер игры и данные игрока. При сбросе цикла игра выгружает активные чанки, отбрасывает сцену «основного» и загружает ее заново, потоково загружая обратно только необходимые чанки для начальной последовательности. Состояние, специфичное для текущего забега, хранится в словаре строк в оперативной памяти, который очищается при сбросе, в то время как персистентные данные, такие как количество циклов и увиденные способности, сериализуются на диск. Этот подход «выбросить и переделать» обеспечивает чистое управление состоянием без значительного влияния на производительность.

Оптимизация производительности была критически важна из-за плотного стиля рисованной графики. Команда обнаружила, что включение сжатия для атласов текстур снижает использование памяти примерно до 1 ГБ. Для обработки загрузки декоративные активы удаляются из чанков во время сборки и асинхронно воссоздаются небольшими партиями, чтобы предотвратить зависания главного потока. Собственный инструмент сглаживает группы спрайтов в отдельные изображения, чтобы уменьшить количество вызовов отрисовки, особенно для сложных фонов, таких как небо. Освещение также было оптимизировано путем объединения шести отдельных слоев света в три, что значительно снижает затраты на рендеринг, сохраняя визуальное качество. Эффекты воды, использующие Game2D Water Kit, были настроены для низкопроизводительного оборудования путем разделения эффектов перспективы и преломления, чтобы избежать дорогостоящих повторных рендеров камеры.

Разработка перешла с Unity 2021 на Unity 6, и команда выделила конкретные функции, которые улучшили их рабочий процесс. Chris Sumsky отметил, что вложенные префабы и режим редактирования стали решающими для управления сложными сценами. Ankit Trivedi подчеркнул полезность Composite Collider 2D и нативного пула объектов Unity, что позволило команде отказаться от собственного пула объектов, написанного для их предыдущей игры. Использование Frame Debugger от Unity было ключевым для выявления разрывов батчинга, что позволило команде унифицировать материалы и конвертировать спрайты для максимизации производительности. Команда советует другим разработчикам активно использовать Frame Debugger с самого начала проекта, чтобы выявлять и исправлять неэффективности рендеринга на раннем этапе.