Tous les articles
Tutoriels · 2 min read

Zéro coût à l'exécution : comment Numivo cuit tout en assets natifs du moteur

La décision d'architecture derrière Numivo, pourquoi chaque scatter, blend et grille devient un simple asset du moteur, et ce que cela signifie pour vos builds, votre dépôt et votre équipe.

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

La fonctionnalité la plus importante de Numivo est invisible : votre jeu livré n'en contient rien. Chaque outil de la boîte (scatter, mesh blending, grilles) produit de simples assets du moteur et rien d'autre. Cet article explique ce que cela signifie techniquement, et pourquoi nous le considérons non négociable.

Ce que « natif » signifie concrètement

Quand vous cuisez une passe de scatter dans Unreal, Numivo écrit des composants Hierarchical Instanced Static Mesh ou des instances de foliage : les mêmes structures que vous obtiendriez en plaçant les choses à la main. Dans Unity, ce sont des instances de prefab standard ou des détails de terrain. Les matériaux issus du mesh blending se compilent en matériaux de moteur ordinaires avec des transitions de normales parfaites au pixel ; il n'y a aucune passe de shader personnalisée, aucun travail de plugin par frame, aucun module « runtime Numivo » dans votre Build.cs ou votre manifeste de package.

Les chiffres qui en découlent :

  • 0 ligne de code Numivo dans votre build
  • 0 ms de temps de frame ajouté, car il n'y a rien à exécuter
  • < 150 Mo de RAM éditeur dans des scènes typiques, car l'outillage de l'éditeur est l'empreinte totale
  • 1 cœur partagé entre Unreal et Unity, si bien que les presets passent d'un moteur à l'autre

Pourquoi nous refusons une dépendance à l'exécution

Les dépendances à l'exécution sont une dette que quelqu'un d'autre doit payer :

  1. Certification. Les équipes de cert console demandent ce que fait chaque module tiers. « Il n'y en a pas » est la réponse la plus courte possible.
  2. Longévité. Les jeux survivent aux abonnements aux outils. Comme les résultats cuits sont des assets ordinaires, une scène créée avec Numivo s'ouvre et se livre dans dix ans, avec ou sans nous. Si vous résiliez, vous gardez tout ce que vous avez fait : ce n'est pas une promesse dans nos conditions, c'est une propriété de l'architecture.
  3. Maîtrise des performances. Votre profileur montre des primitives du moteur que vous savez déjà optimiser (distances de cull, LOD, réglages Nanite), pas une boîte noire.

Ce que cela signifie pour votre dépôt

Les résultats cuits se versionnent comme n'importe quel autre asset : ils se comparent, se fusionnent, se relisent. Les presets d'espèces et de grilles de Numivo sont de petits fichiers simples que vous pouvez commiter et partager avec votre équipe. La seule chose qui ne doit pas aller dans le contrôle de version est le cache local de l'index de contenu (il se reconstruit tout seul) ; une règle d'ignore et c'est réglé.

Le compromis, énoncé honnêtement

L'édition procédurale non destructive nécessite le plugin : une fois cuite, une colline est une donnée du moteur, et la ré-éditer de façon procédurale signifie la rouvrir avec Numivo. Nous pensons que c'est le bon compromis : l'alternative (garder les scènes dépendantes d'une couche d'exécution) prend discrètement votre projet en otage. Vos niveaux devraient appartenir à votre jeu, pas à vos outils.

Si cette philosophie correspond à la façon dont votre équipe travaille, le palier gratuit est le moyen le plus simple de la tester : dispersez quelque chose, cuisez-le, supprimez le plugin, et regardez la scène s'en moquer.