De belangrijkste functie van Numivo is onzichtbaar: je uitgeleverde game bevat er niets van. Elk gereedschap in de doos (scatter, mesh blending, grids) produceert gewone engine-assets en niets anders. Deze post legt uit wat dat technisch betekent, en waarom we het als niet-onderhandelbaar beschouwen.
Wat "native" concreet betekent
Wanneer je in Unreal een scatter-pass bakt, schrijft Numivo Hierarchical Instanced Static Mesh-componenten of foliage-instanties: dezelfde structuren die je met handmatig plaatsen zou krijgen. In Unity zijn het standaard prefab-instanties of terreindetails. Materialen uit mesh blending compileren naar gewone engine-materialen met pixelperfecte normal-overgangen; er is geen aangepaste shader-pass, geen plugin-werk per frame, geen "Numivo-runtime"-module in je Build.cs of je package-manifest.
De getallen die hieruit volgen:
- 0 regels Numivo-code in je build
- 0 ms toegevoegde frametijd: er valt niets uit te voeren
- < 150 MB editor-RAM in typische scènes, want de editor-tooling is de hele voetafdruk
- 1 gedeelde kern voor Unreal en Unity, zodat presets tussen engines overgaan
Waarom we een runtime-afhankelijkheid weigeren
Runtime-afhankelijkheden zijn schuld die iemand anders moet betalen:
- Certificering. Console-cert-teams vragen wat elke module van derden doet. "Die is er niet" is het kortst mogelijke antwoord.
- Levensduur. Games overleven tool-abonnementen. Omdat gebakken resultaten gewone assets zijn, opent en levert een met Numivo gebouwde scène over tien jaar, met of zonder ons. Als je opzegt, houd je alles wat je hebt gemaakt: dat is geen belofte in onze voorwaarden, het is een eigenschap van de architectuur.
- Eigenaarschap over prestaties. Je profiler toont engine-primitieven die je al weet te optimaliseren (cull-afstanden, LOD's, Nanite-instellingen), geen black box.
Wat het voor je repo betekent
Gebakken resultaten versioneren als elk ander asset: ze diffen, mergen, reviewen. Numivo's species- en grid-presets zijn kleine, eenvoudige bestanden die je kunt committen en met je team delen. Het enige dat niet in versiebeheer hoort, is de lokale content-index-cache (die bouwt zichzelf opnieuw op); één ignore-regel en je bent klaar.
De afweging, eerlijk gesteld
Niet-destructief procedureel bewerken heeft de plugin nodig: eenmaal gebakken is een helling engine-data, en het procedureel opnieuw bewerken betekent het opnieuw openen met Numivo. Wij vinden dat de juiste afweging: het alternatief (scènes afhankelijk houden van een runtimelaag) gijzelt je project stilletjes. Je levels horen bij je game, niet bij je gereedschap.
Als die filosofie past bij hoe je team werkt, is het gratis niveau de makkelijkste manier om het te testen: scatter iets, bak het, verwijder de plugin en zie de scène er niets om geven.