UE5 performansının ilk kuralı, ölçmediğiniz şeyi düzeltemeyeceğinizdir. Çoğu indie optimizasyon zamanı boşa gider çünkü biri CPU-bound bir oyunun GPU tarafını ayarlar veya hiçbir zaman darboğaz olmayan mesh'leri elle-LOD'lar. Bu kontrol listesi bunu ters çevirir: önce profille, gerçek kısıtı bul, sonra onu hedefleyen düzeltmeyi uygula. Bu, Althera Games olarak Potion Rise Simulator ve NightRecord: Thin Walls'ta çalıştırdığımız iş akışı ve her alt sistem için daha derin rehberlere link veriyor ki darboğazınızın gerektirdiği kadar derine inebilesiniz.
Adım 1 — Profille: stat unit ve stat GPU
Konsolu açın (`) ve stat unit yazın. Milisaniye olarak dört sayı alırsınız: Frame (toplam), Game (CPU oyun thread'i), Draw (CPU render thread'i) ve GPU. Game / Draw / GPU'dan hangisi Frame'e en yakınsa darboğazınız odur — şu an optimize etmeye değer tek şey odur. Sonra stat GPU GPU karesini geçişlere (Lumen, BasePass, Translucency, PostProcess) böler; böylece GPU süresinin tam olarak nereye gittiğini görürsünüz. Her zaman paketlenmiş Shipping build'de profilleyin; editör ek yükü her şeyi çarpıtır.
| Darboğaz şuysa… | Şusunuz… | Şuna bakın |
|---|---|---|
| GPU | GPU bound | Lumen, Nanite uygunluğu, çözünürlük/TSR, post-process, overdraw |
| Draw (render thread) | CPU bound | Draw call, materyal sayısı, dinamik gölge |
| Game (oyun thread'i) | CPU bound | Blueprint tick, fizik, animasyon, GC, AI |
Adım 2 — GPU Bound İseniz
Lumen genelde ilk şüphelidir. Sahnenin ihtiyacı olmadığı yerde yansımaları kapatın, temel olarak yazılım tracing tutun ve donanım ray tracing'i yüksek-uç kademeye ayırın — tam değişkenler UE5 Lumen konsol değişkenleri referansımızda, kavramlar ise Lumen rehberinde. Nanite yoğun opak geometri için yardımcı olur ama bedava değildir — aşağıya bakın. Çözünürlük devasa bir koldur: daha düşük iç çözünürlükten TSR/upscaling çoğu zaman herhangi bir materyal ayarından daha fazla kare süresi kazandırır. Ve translucency ile parçacıklardan gelen overdraw'a dikkat edin — Niagara rehberimiz VFX'i ucuz tutmayı anlatıyor.
Adım 3 — CPU Bound İseniz
En yaygın indie suçlusu draw call'lardır. Renderer'ın gönderdiği her benzersiz mesh/materyal kombinasyonu render-thread süresine mal olur; statik mesh'leri birleştirmek, instanced static mesh kullanmak ve benzersiz materyalleri kesmek bu maliyeti çökertir. Sonra Blueprint tick'i denetleyin: birçok aktörde her kare çalışan mantık sessiz bir katildir — event, timer veya daha düşük tick aralıklarına taşıyın. Sonra fizik ve animasyon (ekran dışı aktörlerde tick'i kapatın, significance kullanın) ve garbage collection sıçramaları. Oyun thread'i duvar olduğunda, Blueprint vs C++ rehberimiz sıcak mantığı C++'a taşımanın ne zaman değdiğini anlatıyor.
Bir ayara dokunmadan önce stat unit'te geçirilen her saat, yanlış alt sistemi optimize etmenin bir gününü kurtarır. Ölç, darboğazı düzelt, tekrar ölç — disiplin becerinin ta kendisidir.
Adım 4 — Nanite: Güçlü, Evrensel Değil
Nanite yoğun, statik, opak, yüksek-poligonlu mesh'ler için mükemmeldir: elle LOD'ların yerini alır ve draw kurulumunu keser. Ama "her yerde aç" anahtarı değildir. Çok küçük mesh'ler, yoğun masked/translucent materyaller ve çok overdraw'lı foliage Nanite altında daha kötü çalışabilir. Geometrinin ağır ve opak olduğu yerde kullanın, daha ucuz olduğu yerde geleneksel mesh ve LOD tutun ve ikisini de ölçün. Tam döküm UE5 Nanite rehberimizde.
Adım 5 — Streaming ve Dünya Yapısı
Dünyanızın nasıl yüklendiği bir performans kararıdır. Büyük sürekli bir dünya, World Partition'ın otomatik streaming ve HLOD'undan yararlanır; bir dizi ayrık mekân, elle tasarlanmış sublevel'larla daha hafif ve öngörülebilirdir. Yanlış seçmek, ihtiyacınız olmayan streaming'in bedelini ödemenize veya aştığınız streaming'i elle yönetmenize yol açar — World Partition vs Level Streaming rehberimiz kararı, World Partition rehberi ise derin dalışı verir.
Adım 6 — Ölçeklenebilirlik: Gönder, Atlama
En çok atlanan indie adımı. Pahalı ayarlarınızı — Lumen kalitesi, gölge kalitesi, görüş mesafesi, post-process, çözünürlük ölçeği — UE5'in ölçeklenebilirlik gruplarına ve device profile'larına bağlayın ki Low gerçekten hafif çalışsın ve Epic her şeyi açsın. Yalnızca tek kalite seviyesi olan bir oyun ya zayıf makinelerde kötü çalışır ya da güçlülerde düz görünür. Bir ayarlar menüsü sunun, ölçeklenebilirliğe eşleyin ve her kademeyi paketlenmiş build'de test edin. "Benim RTX'imde çalışıyor"u "oyuncularınızın dizüstülerinde çalışıyor"a çeviren şey budur.
Kısaca Kontrol Listesi
- Ölç:
stat unit→ CPU mu GPU mu bound?stat GPU→ hangi geçiş? - GPU: Lumen cvar, TSR/çözünürlük, Nanite uygunluğu, overdraw, post-process.
- CPU (Draw): instancing/birleştirmeyle draw call azalt, materyalleri kes.
- CPU (Game): kare-başına Blueprint tick'i öldür, fizik/animasyon/GC'yi ehlileştir.
- Dünya: düzenine doğru streaming seçimi.
- Ölçeklenebilirlik: gerçek Low→Epic kademeleri + device profile, paketlenmiş test.
- Her tek değişiklikten sonra yeniden ölç.
Sıkça Sorulan Sorular
UE5 oyunumun CPU mu GPU mu bound olduğunu nasıl anlarım?
stat unit yazın. Frame, Game (CPU oyun thread'i), Draw (CPU render thread'i) ve GPU'yu milisaniye olarak gösterir. Game/Draw/GPU'dan hangisi Frame'e en yakınsa darboğazınız odur. GPU en yüksek → GPU bound (Lumen, Nanite, çözünürlük, post-process); Game veya Draw en yüksek → CPU bound (tick maliyeti, draw call, Blueprint, fizik). Bir şeye dokunmadan önce stat unit okuyun.
İndie oyunlar için en büyük UE5 performans kazançları neler?
Genelde: birleştirme/instancing ile draw call azaltmak, Lumen'i ayarlamak (gereksiz yansımaları kapatmak, yazılım tracing temeli), uygun yerde yoğun opak geometri için Nanite, Niagara sayı/overdraw'ı kontrol, kare-başına Blueprint tick'i kesmek ve düşük-uç makinelerin daha hafif çalışması için gerçek ölçeklenebilirlik. Önce stat unit/stat GPU ile profilleyin.
İyi bir GPU'da bile UE5 oyunum neden kare düşürüyor?
CPU bound iseniz güçlü bir GPU yardımcı olmaz. Güçlü donanımda kare düşüşleri sık sık CPU tarafıdır: çok draw call, her kare pahalı Blueprint tick, kontrolsüz fizik/animasyon veya GC sıçramaları. stat unit çalıştırın — Game veya Draw baskınsa hiçbir GPU ayarı düzeltmez. Draw call azaltın, kare-başına işi event/timer'a taşıyın, stat game ve Unreal Insights ile profilleyin.
İndie oyunlar UE5'te her şey için Nanite kullanmalı mı?
Hayır. Nanite, elle LOD'ların yerini aldığı yoğun, statik, yüksek-poligonlu mesh'ler için mükemmeldir ama bedava değildir: çok küçük mesh'ler, yoğun masked/translucent materyaller veya çok overdraw'lı foliage daha kötü çalışabilir. Geometrinin ağır ve opak olduğu yerde Nanite, daha ucuz olduğu yerde geleneksel mesh/LOD kullanın ve iki yolu da hedef donanımda ölçün.
Sonuç
UE5, indie'lere bir AAA render araç kutusu verir ve bu gücün bedeli "varsayılan açık"ın nadiren "optimal" olmasıdır. Ama performans işi, onu ölçüm-önce yaptığınız an gizemli olmaktan çıkar: stat unit okuyun, gerçekten bound olan tarafı düzeltin ve yeniden ölçün. Bunu Lumen, Nanite, draw call, streaming ve ölçeklenebilirlikle yapın; iki kişilik bir ekip, oyuncuların gerçekten sahip olduğu makinelerde pürüzsüz çalışan bir UE5 oyunu gönderebilir.
Buradan herhangi bir alt sisteme dalın: Lumen cvar'ları, Nanite, Niagara, streaming ve Blueprint vs C++ — hepsi UE5 rehber hub'ında indekslenmiş.