Echo Weaver: проєктування метроідванії з часовим циклом у Unity 6

  • PublicPublic
  • 09 Oct, 2026
Echo Weaver: проєктування метроідванії з часовим циклом у Unity 6

Echo Weaver, нова метроідванія від Moonlight Kids та Akupara Games, виходить на ПК і консолі з унікальною філософією дизайну, побудованою навколо часового циклу. Троє розробників спочатку задумали проєкт, щоб уникнути відомої системи збереження станів, яка спричиняла проблеми в їхній попередній грі 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 з самого початку проєкту, щоб виявляти та виправляти неефективності рендерингу на ранньому етапі.