Big Farm: Homestead — о технологиях, стоящих за миром 3D-мобильных игр

Компания New Moon Production была основана в 2016 году с целью оставаться на передовой технологий разработки игр, сохраняя при этом устойчивость производства. За последнее десятилетие студия выпустила игры, включая Empire: Третья мировая война, Империя: Age of Knights, Дом и сад: Изменение дизайна, Любовь и страсть: Главы, Big Farm: Mobile Harvest, Big Farm: Историяи Остров Саншайн.
Их последняя игра, Big Farm: Homestead,это игра-симулятор фермы для мобильных платформ. Оно основано на Big Farm: Mobile Harvest и это первая полностью 3D игра в основной серии Big Farm.
Мы поговорили с Аниссой Нелс, директором по маркетингу продуктов в New Moon Production, Фолькером Цербе,художественный руководитель, и Феликса Фишера, эксперта по разработке в Unity, о технических проблемах и решениях, связанных с переносом 3D-мира Big Farm на мобильные устройства.
Игровое видение, создание мира и архитектура
Как работает Big Farm: Homestead отличатьсяот Big Farm: Mobile Harvest?
Анисса Нелс: Big Farm: Homestead isсильно ориентирован на сюжет. Игроки следуют за Тессой, которая восстанавливает семейное хозяйство на трех разных фермах, каждая из которых имеет свои культуры, здания и животных. Помимо фермерства, игроки восстанавливают города главу за главой, открывая персонажей, производственные цепочки и части загадки, связанной с высохшим озером.
Система глав поддерживает структурированное развитие и позволяет легко возвращаться к игре, в то время как мир остается теплым и ностальгическим. Элементы многопользовательского режима, такие как гильдии и совместные мероприятия, улучшают игровой процесс. Игроки приходят ради уютного управления ресурсами и остаются ради сообщества.
Какова была основная цель команды при создании этой игры?
ОТВЕТ: Наша цель заключалась в том, чтобы работать быстро, не жертвуя при этом основной фантазией бренда Big Farm. Мы учли опыт, полученный в ходе разработки игр Sunshine Island и Mobile Harvest – от технологических процессов до маркетинговых идей – и с помощью Unity выпустили игру менее чем за год.

Какая была самая большая техническая проблема во время разработки?
Феликс Фишер: Общий код между Big Farm: Homestead и Sunshine Island без создания форка было критически важно. Мы упаковали общий код в пакет NMP и использовали его через Package Manager Unity. Это позволило поддерживать чистую версификацию, пока обе игры развивались независимо. Мы обрабатывали ресурсы и настройки отдельно и заново создавали ScriptableObjects для каждого названия.
Фолькер Цербе: Оптимизация для мобильных устройств была еще одной ключевой задачей. Игра имеет большой, безшовный ландшафт с плотными объектами, и она должна работать без перебоев на устройствах возрастом до восьми лет. Мы сосредоточились на использовании памяти, вызовах отрисовки и отправке только необходимого контента.

Как Timeline упростила последовательность событий в мире?
ФЗ: Timeline управляет состояниями строительства и внутриигровыми кат-сценами. Каждый производственный цикл здания проходит через состояния простоя, производства и сбора, созданные в виде циклических последовательностей Timeline. Специальная дорожка помечает разделы состояниями, а воспроизведение контролируется с помощью легких скриптов. Это позволяет поддерживать тесную связь между анимацией и логикой и упрощает предварительный просмотр для художников.
FF: Мы также расширили Timeline, добавив дорожки для создания объектов и запуска событий, превратив его в инструмент для создания последовательностей как для игрового процесса, так и для кинематографических моментов. По сравнению с рабочими процессами Animator Controller, Timeline кажется более интуитивно понятным и снижает проблемы с синхронизацией.

Как вы использовали Cinemachine для игрового процесса и кат сцен?
ФЗ: Cinemachine обеспечивает плавные переходы камеры и последовательности между картами мира и интерьерами. Виртуальные камеры позволяют нам динамично управлять кат сценами без сложных ручных настроек.
FF: Основная камера полностью виртуальна и следует за невидимой мишенью, управляемой игроком. Дополнительные камеры для событий или кат сцен автоматически настраиваются. Это обеспечивает точное и плавное управление игровыми процессами и кинематографическими последовательностями.

Как Universal Render Pipeline (URP) и Shader Graph помогли в этом?
FF: Universal Render Pipeline (URP) был необходим для управления визуальным качеством и производительностью на всех устройствах. Он упростил настройку нескольких уровней качества — низкого, среднего и высокого. Мы сделали эти уровни доступными, чтобы игроки могли выбирать между качеством и производительностью.
В то же время URП помог нам предложить хороший уровень производительности по умолчанию, начиная с средних или высоких настроек. Это обеспечивает хорошее первое впечатление и позволяет уменьшить такие функции, как тени, чтобы достичь целевой частоты кадров. Мы также использовали функции рендеринга URП, такие как маскування штампом, для эффективного смешивания 3D- и UI-элементов. Фиксированные шейдеры сделали бы эти эффекты более сложными и дорогими в реализации.

Какую роль сыграли ECS и компилятор Burst в создании мира?
FF: Мы использовали Entity Component System (ECS) в Unity’s Data-Oriented Technology Stack (DOTS) для эффективной структуры мира. Здания, типы производства и персонажи были сущностями. Системы работали только с соответствующими группами, что позволяло поддерживать чистоту и производительность логики. Системы, критически важные для производительности, такие как сетки зданий и поведение при ловле рыбы, получали преимущества от компилятора Burst, сокращая время выполнения сложных вычислений с секунд до почти мгновенного.
ECS обрабатывал все объекты 3D-мира (не интерфейс пользователя), поэтому мы могли масштабировать до большого количества сущностей. Система запросов позволяла нам нацеливаться на соответствующие сущности без использования кастомных менеджеров, а ECS способствовала созданию модульной архитектуры, что улучшало удобство обслуживания. Работа с API на ранней стадии означала частые обновления, но преимущества в производительности и структуре делали инвестиции стоящими.

Какие функции Unity 6 вы использовали и какие планируете использовать?
ФЗ: Мы исследовали рендеринг Forward+ в Unity 6 для повышения производительности и масштабируемости, и мы с нетерпением ждем 32-битных масок для динамических переменных, которые обеспечат большую гибкость в обработке данных во время выполнения.
FF: Обновление до Unity 6.3 позволит нам более эффективно объединять объекты без нарушения SRP Batcher, в то время как улучшенная профайлинг памяти предоставляет более глубокие возможности для управления ресурсами и их оптимизации.
Производительность, оптимизация и лучшие практики
Как команда решала проблемы производительности?
ФЗ: Полностью динамическое освещение с детализированными зданиями было дорогостоящим, поэтому мы ввели прокси-тени — упрощенную геометрию для теней, сохраняя при этом высокодетализированные сетки для рендеринга. Мы также оптимизировали рендеринг теней вокруг одного направленного источника света.
Рендеринг в родных разрешениях 2K или 4K приводил к падению кадров на высокопроизводительных устройствах. Мы внедрили динамическое масштабирование разрешения через URP, которое снижает разрешение до 70–80%, когда это необходимо, с минимальным визуальным эффектом.
FF: Мы также оптимизировали шейдеры. Используя Shader Graph, мы создали легкие шейдеры и перенесли освещение с пиксельного на вершинное, где это было целесообразно. В сочетании с пакетной обработкой SRP это обеспечило гибкость материалов без использования больших текстурных атласов и привело к созданию масштабируемого, производительного конвейера.

Как вы выявили и устранили узкие места производительности?
ФЗ: Мы использовали отладчик кадров и Memory Profiler для оптимизации производительности. Отладчик кадров помог нам выявить неэффективное выполнение вызовов отрисовки и недостаточную степень пакетной обработки. Профилировщик памяти выделил объемные 2D-активы и атласы пользовательского интерфейса, что помогло нам сократить использование памяти на старых устройствах.
FF: Мы также использовали Unity Profiler для мониторинга систем ECS в реальном времени и выявления узких мест. Unity Auditor выявил потенциальные улучшения, такие как сжатие текстур и аудио. Совместно эти инструменты помогли нам сбалансировать производительность и визуальное качество, а также обеспечить плавное воспроизведение на всех устройствах.
Как Addressables оптимизировали активы и размер приложения?
FF: Мы используем систему Addressables для всех наших активов, что упрощает управление зависимостями. Addressables позволяет нам решать, будут ли активы включены в приложение или размещены удаленно в нашей сети доставки контента. Это помогает уменьшить размер приложения и гарантирует, что игроки скачивают только то, что им нужно. Это особенно полезно для сезонного контента или контента, связанного с событиями, с которым игроки сталкиваются реже. Загружая эти ресурсы динамически, мы избегаем ненужного использования памяти.
ФЗ: Addressables также крайне важны для соответствия требованиям Google Play, таким как ограничение размера пакета Android App Bundle в 200 МБ. Основные ресурсы для первой игровой сессии или первой недели встроены в приложение, чтобы обеспечить плавный начальный опыт. Мы доставляем сезонный или редко используемый контент удаленно. Это позволяет сохранить легкость приложения, поддерживая при этом операции в реальном времени и контент, управляемый событиями.

Какой совет вы можете дать по балансировке производительности и визуальной составляющей в мобильных играх?
ФЗ: Для нас производительность на первом месте. Игра должна иметь привлекательный визуальный стиль, но особенно на мобильных устройствах, где игроки часто играют короткими сессиями, важна плавная работа. Длительное время загрузки, подтормаживание или задержки нарушают погружение и отбивают желание регулярно играть. Наша цель — создать красивый мир, который работает без перебоев, чтобы погружение в него и выход из него были легкими.
FF: В то же время мы хотим, чтобы мир казался живым. Мелкие детали, такие как скрытые животные или тонкие движения, поощряют исследование и открытие. Они делают процесс увлекательным, не перегружая устройство или игрока.
Чтобы узнать больше о проектах, созданных в Unity, посетите сайт Страница ресурсов.
