mrtcnaslnts

Aktif üye
8 Ara 2019
610
2
44
28
Bir haritam var ve bu haritada 40 tane düşman var. oyun başladığında fps 25lerde geziyor. O esnada test için ayarladığım bir tuş ile bütün düşmanları yok ettiğimde fps 45 50 ye çıkıyor.. Yine bir test için boş bir harita açtım içerisine 40 düşman koydum oyunu başlattım fps 60. Hiçbir şey anlşamadım bu işten. Sorun nerde?
 
UEditörde oyunu başlattığımda tablo bu kardeşim. Değerlerin iyileştiği görsel, düşman AI yok edildikten sonraki tablo
 

Ekli dosyalar

  • 2.png
    2.png
    74.7 KB · Görüntüleme: 5
  • 3.png
    3.png
    61.3 KB · Görüntüleme: 5
Son düzenleme:
Bazen sorun haritanın kendisi de olabiliyor, haritayı kopyala, koy 40 düşmanını, başla sırayla haritadaki her şeyi tek tek silmeye. Sil test et döngüsü, herhangi bir actor kaynaklıysa doğrudan bulmanı sağlar, haritada ışık ve zemin harici birşey kalmadığı halde hala fps drop yiyorsan harita bug a girmiş demektir, neden diye sorma bunca yıldır ben de sebebini çözemedim :)
 
UEditörde oyunu başlattığımda tablo bu kardeşim. Değerlerin iyileştiği görsel, düşman AI yok edildikten sonraki tablo
Some CharacterMovementComponent problems.
Ben direkt kutu şeklinde karakterler ekledim sahneye. Boş kutu bildiğin animasyon yok bir şey yok. 50 adet ekledim ve yürüme komutu verdim FPS çakıldı.
Boş haritada box karakterler bile yürürken navigasyon işlemlerinde FPS yi yere çakmaya yetmişti. Sonra araştırdığımda böyle kalabalık düşmanların olduğu projelerde Entity kullanmak gerektiğini öğrendim. Fakat şu anda Unreal Engine Entity sistemi kullanmıyor. Ayrıca CharacterMovementComponent çok iğrenç bir şey. İçerisinde 500 tane özellik sürekli tick altında çalışıyor. Hem geri kalmış bir component hem de performans maliyeti aşırı yüksek.
Entity Component System var fakat ek şeyler yapmanız lazım bunu kullanmak için bayağı bir zahmetlidir.

Unreal Engine 6 geçildiğinde tamamen ECS geçilecek bu sorun da ortadan kalkacak. Şimdilik CrowdManager falan kullanmak dışında yapabileceğiniz bir şey yok.
Düşmanları o anda render edilmiyorsa kapatabiliyorsunuz ticklerini durdurabiliyorsunuz. Bunları kullanın.
No Tick When not rendered gibi bir şey vardı.
Sorun tamamen yürümeye başladıklarında ortaya çıkıyor. Dynamic Navmesh kullanın. Navmesh + MovementComponent birleşince FPS yok oluyor resmen. Bu motor o kadar kırılgan ki hiçbir şeye müdahale etmiyor. Bir şeyi yanlış yaparsanız FPS çakılıyor direkt.
 
CPU kaynaklı gibi gözüküyor.

Detaylıca bakmak için Unreal Insights diye bir tool var.


Unreal Insights Oyun motorunu kurduğun klasörde mevcut .exe dosyası olarak.

Benim kullandığım sürüm için burada

C:\Program Files\Epic Games\UE_5.8Engine\Binaries\Win64 klasörü içerisinde

UnrealInsights.exe

Adlı yazılımı çalıştır.

Daha sonradan Unreal Engine oyun klasörüne gel, ".uproject" dosyana sağ tıkla "Launch" et .

Unreal Insights Frontend üzerinde gözükecek benimkisi 20261013_191913 diye devam ediyor. Gördüğün üzere, burada LIVE dediği zaman şu anda kaydoluyor demek.


UnrealEditor_5RsBSeIvnh.png


Buradaki graphı analiz edip trace dosyasını incelersen nerede problem olduğunu analyabilirsin. GPU seçeneklerini disable edebilirsin.

Senin oyunu tam olarak bilmediğim için kaç saniye alıyor sürüyor veya düşme sebebi ne tam olarak kestiremiyorum. Eğer .utrace dosyalarını upload edebilirsen analiz yapabilirim. Şurada şu sorun var vs diye

MainThread'e bakmanı öneririm CPU sorunlu olduğu için orada bak hangi fonksiyonlar hangi timerlar çalışıyor, ne zaman CPU performansı düşüyor/yükseliyor.