Numivo'nun en önemli özelliği görünmezdir: yayınladığın oyun ondan hiçbir şey içermez. Kutudaki her araç (scatter, mesh blending, grid'ler) sıradan motor asset'leri üretir, başka hiçbir şey değil. Bu yazı bunun teknik olarak ne anlama geldiğini ve neden bunu pazarlık konusu yapmadığımızı açıklıyor.
"Yerel" somut olarak ne demek
Unreal'de bir scatter geçişini pişirdiğinde, Numivo Hierarchical Instanced Static Mesh bileşenleri ya da foliage örnekleri yazar: nesneleri elle yerleştirdiğinde elde edeceğin yapıların aynısı. Unity'de bunlar standart prefab örnekleri veya arazi detaylarıdır. Mesh blending'den gelen materyaller, piksel hassasiyetinde normal geçişleriyle sıradan motor materyallerine derlenir; özel bir shader geçişi, kare başına plugin işi ya da Build.cs'inde veya paket manifestinde bir "Numivo runtime" modülü yoktur.
Bundan çıkan sayılar:
- Build'inde 0 satır Numivo kodu
- 0 ms eklenen kare süresi: çalıştırılacak hiçbir şey yok
- Tipik sahnelerde < 150 MB editör RAM'i, çünkü tüm ayak izi editör araç setidir
- Unreal ve Unity arasında 1 ortak çekirdek, böylece ön ayarlar motorlar arasında geçer
Neden bir çalışma zamanı bağımlılığını reddediyoruz
Çalışma zamanı bağımlılıkları, başkasının ödemek zorunda kaldığı bir borçtur:
- Sertifikasyon. Konsol sertifikasyon ekipleri her üçüncü taraf modülün ne yaptığını sorar. "Öyle bir şey yok" mümkün olan en kısa yanıttır.
- Kalıcılık. Oyunlar araç aboneliklerinden daha uzun yaşar. Pişirilmiş sonuçlar sıradan asset'ler olduğundan, Numivo ile oluşturulan bir sahne on yıl sonra da açılır ve yayınlanabilir, bizimle ya da bizsiz. İptal edersen yaptığın her şeyi elinde tutarsın: bu, şartlarımızdaki bir vaat değil, mimarinin bir özelliğidir.
- Performans sahipliği. Profiler'ın, nasıl optimize edeceğini zaten bildiğin motor ilkellerini gösterir (cull mesafeleri, LOD'lar, Nanite ayarları), bir kara kutuyu değil.
Depon için ne anlama geliyor
Pişirilmiş sonuçlar başka her asset gibi sürümlenir: diff'lenir, birleştirilir, gözden geçirilir. Numivo'nun tür ve grid ön ayarları, commit'leyip ekibinle paylaşabileceğin küçük, sade dosyalardır. Sürüm kontrolüne girmemesi gereken tek şey yerel içerik indeksi önbelleğidir (kendini yeniden oluşturur); bir yok sayma kuralı ve işin biter.
Ödünleşim, dürüstçe söylenmiş
Yıkıcı olmayan prosedürel düzenleme plugin'i gerektirir: bir kez pişirildiğinde bir yamaç motor verisidir ve onu prosedürel olarak yeniden düzenlemek, onu Numivo ile yeniden açmak demektir. Bunun doğru ödünleşim olduğunu düşünüyoruz: alternatif (sahneleri bir çalışma zamanı katmanına bağımlı tutmak) projeni sessizce rehin alır. Seviyelerin oyununa ait olmalı, araçlarına değil.
Bu felsefe ekibinin çalışma biçimine uyuyorsa, ücretsiz katman onu denemenin en kolay yoludur: bir şeyler serpiştir, pişir, plugin'i sil ve sahnenin hiç umursamamasını izle.