Самая важная функция Numivo невидима: в вашей выпущенной игре нет ни капли его. Каждый инструмент в наборе (скаттер, mesh blending, гриды) создаёт обычные ассеты движка и ничего больше. Этот пост объясняет, что это значит технически и почему мы считаем это не подлежащим обсуждению.
Что «нативный» значит конкретно
Когда вы запекаете проход скаттера в Unreal, Numivo записывает компоненты Hierarchical Instanced Static Mesh или инстансы foliage: те же структуры, которые вы получили бы, расставляя объекты вручную. В Unity это обычные инстансы префабов или детали террейна. Материалы из mesh blending компилируются в обычные материалы движка с идеальными по пикселям переходами нормалей; нет никакого пользовательского прохода шейдера, никакой работы плагина на кадр, никакого модуля «Numivo runtime» в вашем Build.cs или манифесте пакета.
Числа, которые из этого следуют:
- 0 строк кода Numivo в вашей сборке
- 0 мс добавленного времени кадра: выполнять нечего
- < 150 МБ ОЗУ редактора в типичных сценах, потому что редакторские инструменты — это весь след
- 1 общее ядро для Unreal и Unity, так что пресеты переносятся между движками
Почему мы отказываемся от зависимости во время выполнения
Зависимости во время выполнения — это долг, который приходится оплачивать кому-то другому:
- Сертификация. Команды консольной сертификации спрашивают, что делает каждый сторонний модуль. «Его нет» — самый короткий возможный ответ.
- Долговечность. Игры переживают подписки на инструменты. Поскольку запечённые результаты — обычные ассеты, сцена, созданная в Numivo, откроется и выйдет через десять лет, с нами или без нас. Если вы отмените подписку, вы сохраните всё, что сделали — это не обещание в наших условиях, а свойство архитектуры.
- Владение производительностью. Ваш профилировщик показывает примитивы движка, которые вы уже умеете оптимизировать (дистанции отсечения, LOD, настройки Nanite), а не чёрный ящик.
Что это значит для вашего репозитория
Запечённые результаты версионируются как любой другой ассет: их можно сравнивать, сливать, рецензировать. Пресеты видов и гридов Numivo — это маленькие простые файлы, которые вы можете коммитить и делить с командой. Единственное, что не должно попадать в контроль версий, — это локальный кэш индекса контента (он пересобирается сам); одно правило игнорирования, и готово.
Компромисс, названный честно
Неразрушающее процедурное редактирование требует плагина: однажды запечённый склон — это данные движка, и повторное процедурное редактирование означает повторное открытие в Numivo. Мы считаем это правильным компромиссом: альтернатива (держать сцены зависимыми от слоя времени выполнения) тихо берёт ваш проект в заложники. Ваши уровни должны принадлежать вашей игре, а не вашим инструментам.
Если эта философия совпадает с тем, как работает ваша команда, бесплатный уровень — самый простой способ проверить её: разбросайте что-нибудь, запеките, удалите плагин и понаблюдайте, как сцене всё равно.