Najważniejsza funkcja Numivo jest niewidoczna: twoja wydana gra nie zawiera jej ani trochę. Każde narzędzie w zestawie (scatter, mesh blending, grids) tworzy zwykłe assety silnika i nic więcej. Ten wpis wyjaśnia, co to oznacza technicznie i dlaczego uważamy to za nienegocjowalne.
Co „natywny" oznacza konkretnie
Gdy zapiekasz przebieg scattera w Unreal, Numivo zapisuje komponenty Hierarchical Instanced Static Mesh lub instancje foliage, te same struktury, które uzyskałbyś, umieszczając rzeczy ręcznie. W Unity to standardowe instancje prefabów lub detale terenu. Materiały z mesh blendingu kompilują się do zwykłych materiałów silnika z idealnymi co do piksela przejściami normalnych; nie ma żadnego niestandardowego przebiegu shadera, żadnej pracy pluginu na klatkę, żadnego modułu „runtime Numivo" w twoim Build.cs ani w manifeście pakietu.
Liczby, które z tego wynikają:
- 0 linii kodu Numivo w twoim buildzie
- 0 ms dodanego czasu klatki, nie ma czego wykonywać
- < 150 MB RAM edytora w typowych scenach, ponieważ narzędzia edytora to cały ślad
- 1 wspólny rdzeń dla Unreal i Unity, dzięki czemu presety przechodzą między silnikami
Dlaczego odmawiamy zależności w czasie działania
Zależności w czasie działania to dług, który ktoś inny musi spłacić:
- Certyfikacja. Zespoły certyfikacji konsolowej pytają, co robi każdy moduł innego producenta. „Nie ma żadnego" to najkrótsza możliwa odpowiedź.
- Trwałość. Gry przeżywają subskrypcje narzędzi. Ponieważ zapieczone wyniki to zwykłe assety, scena zbudowana w Numivo otwiera się i wydaje za dziesięć lat, z nami albo bez nas. Jeśli zrezygnujesz, zachowujesz wszystko, co zrobiłeś: to nie obietnica w naszych warunkach, to właściwość architektury.
- Kontrola nad wydajnością. Twój profiler pokazuje prymitywy silnika, które już umiesz optymalizować: dystanse cullingu, LOD-y, ustawienia Nanite, a nie czarną skrzynkę.
Co to oznacza dla twojego repozytorium
Zapieczone wyniki wersjonują się jak każdy inny asset: da się je diffować, mergować, recenzować. Presety gatunków i gridów Numivo to małe, proste pliki, które możesz commitować i udostępniać zespołowi. Jedyne, co nie powinno trafiać do kontroli wersji, to lokalny cache indeksu treści (odbudowuje się sam); jedna reguła ignorowania i gotowe.
Kompromis, uczciwie nazwany
Nieniszcząca edycja proceduralna wymaga pluginu: raz zapieczone zbocze to dane silnika, a ponowna edycja proceduralna oznacza otwarcie go ponownie w Numivo. Uważamy, że to właściwy kompromis, alternatywa (utrzymywanie scen zależnych od warstwy runtime) po cichu bierze twój projekt jako zakładnika. Twoje poziomy powinny należeć do twojej gry, a nie do twoich narzędzi.
Jeśli ta filozofia pasuje do sposobu pracy twojego zespołu, darmowy poziom to najprostszy sposób, by ją przetestować: rozsyp coś, zapiecz to, usuń plugin i patrz, jak scena ma to w nosie.