Todos os artigos
Tutoriais · 2 min read

Custo zero em tempo de execução: como o Numivo converte tudo em assets nativos da engine

A decisão de arquitetura por trás do Numivo, e por que cada scatter, blend e grid vira um asset comum da engine, e o que isso significa para seus builds, seu repositório e sua equipe.

Illustration of Numivo scene data being baked into engine-native asset files

O recurso mais importante do Numivo é invisível: seu jogo publicado não contém nada dele. Cada ferramenta da caixa (scatter, mesh blending, grids) produz assets comuns da engine e nada mais. Este post explica o que isso significa tecnicamente, e por que consideramos isso inegociável.

O que "nativo" significa concretamente

Quando você faz o bake de uma passagem de scatter na Unreal, o Numivo grava componentes Hierarchical Instanced Static Mesh ou instâncias de foliage: as mesmas estruturas que você obteria posicionando as coisas à mão. Na Unity, são instâncias de prefab padrão ou detalhes de terreno. Os materiais do mesh blending compilam para materiais comuns da engine com transições de normais perfeitas ao pixel; não há nenhuma passagem de shader personalizada, nenhum trabalho de plugin por frame, nenhum módulo "runtime do Numivo" no seu Build.cs ou no seu manifesto de pacote.

Os números que decorrem disso:

  • 0 linhas de código do Numivo no seu build
  • 0 ms de tempo de frame adicionado: não há nada a executar
  • < 150 MB de RAM do editor em cenas típicas, porque a ferramentaria do editor é a pegada inteira
  • 1 núcleo compartilhado entre Unreal e Unity, de modo que os presets passam de uma engine para a outra

Por que recusamos uma dependência em tempo de execução

Dependências em tempo de execução são uma dívida que outra pessoa tem de pagar:

  1. Certificação. As equipes de certificação de console perguntam o que cada módulo de terceiros faz. "Não existe nenhum" é a resposta mais curta possível.
  2. Longevidade. Jogos sobrevivem a assinaturas de ferramentas. Como os resultados do bake são assets comuns, uma cena criada com o Numivo abre e é publicada daqui a dez anos, com ou sem nós. Se você cancelar, mantém tudo o que fez: isso não é uma promessa nos nossos termos, é uma propriedade da arquitetura.
  3. Domínio do desempenho. Seu profiler mostra primitivas da engine que você já sabe otimizar (distâncias de cull, LODs, configurações de Nanite) não uma caixa-preta.

O que significa para o seu repositório

Resultados do bake versionam como qualquer outro asset: eles entram no diff, no merge, na revisão. Os presets de espécies e de grid do Numivo são arquivos pequenos e simples que você pode commitar e compartilhar com sua equipe. A única coisa que não deveria entrar no controle de versão é o cache local do índice de conteúdo (ele se reconstrói sozinho); uma regra de ignore e pronto.

O trade-off, dito com honestidade

A edição procedural não destrutiva precisa do plugin: uma vez feito o bake, uma encosta é dado da engine, e reeditá-la de forma procedural significa reabri-la com o Numivo. Achamos que esse é o trade-off certo: a alternativa (manter as cenas dependentes de uma camada de runtime) mantém o seu projeto refém silenciosamente. Seus níveis deveriam pertencer ao seu jogo, não às suas ferramentas.

Se essa filosofia combina com o jeito como sua equipe trabalha, o nível gratuito é a maneira mais fácil de testá-la: espalhe algo, faça o bake, apague o plugin e veja a cena não se importar.