kinglord34

Aktif üye
7 Ocak 2017
261
30
28
Belirtilmemiş
Servera her oyuncu bağlandığında oyuncuların FPS değeri 2, 3 FPS düşüyor. Bu normal mi?

Örneğin, serverda 2 kişinin olduğunu varsayalım. Oyuncu1 serverda 2 kişi varken 30 FPS alıyorsa, serverdaki kişi sayısı 4 olduğunda aldığı FPS, 20-25 FPS'ye kadar düşüyor.
 
Servera her oyuncu bağlandığında oyuncuların FPS değeri 2, 3 FPS düşüyor. Bu normal mi?

Örneğin, serverda 2 kişinin olduğunu varsayalım. Oyuncu1 serverda 2 kişi varken 30 FPS alıyorsa, serverdaki kişi sayısı 4 olduğunda aldığı FPS, 20-25 FPS'ye kadar düşüyor.
Standalone de bakacaksın buna. Steam de paketlenmiş halde olsun mesela. Ya da Editör üzerinden test yapmıyor olman lazım. Test ederkenki 4 pencereyi diyorsan fazladan render olduğu için düşüyor FPS.
 
  • Beğen
Tepkiler: kinglord34
Standalone de bakacaksın buna. Steam de paketlenmiş halde olsun mesela. Ya da Editör üzerinden test yapmıyor olman lazım. Test ederkenki 4 pencereyi diyorsan fazladan render olduğu için düşüyor FPS.
Evet, oyunun paketlenmiş halinden bahsediyorum. Sizde böyle bir sorun olmuyor mu? Ben herkeste olduğunu düşünüyordum. Steamde arkadaşlarla birlikte oyunu test ederken her bir oyuncu spawn olduğunda 4, 5 FPS düşüyor.
 
Açıkçası 2 ihtimal öngörüyorum, 1.si saçma olsa da mümkün; aşırı detaylı karakterler kullanmak, ayrıca üzerilerinde groom-cloth gibi extralar var ise yapabilir. 2.si overdose replication; karakterler tick üzerinden birşeyleri replicate ediyor ise CPU yu zorlaması mümkün. "stat NET" ile bunu kontrol edebilirsin. Bir de senin örneğine bakarsak yani normalde de oyun 30 FPS lerde geziyorsa zaten sistemi yeterince zorluyorsun demektir artık ekle çıkar yapacağın herşeyin fps ye yansıması normaldir.
 
  • Beğen
Tepkiler: kinglord34
Açıkçası 2 ihtimal öngörüyorum, 1.si saçma olsa da mümkün; aşırı detaylı karakterler kullanmak, ayrıca üzerilerinde groom-cloth gibi extralar var ise yapabilir. 2.si overdose replication; karakterler tick üzerinden birşeyleri replicate ediyor ise CPU yu zorlaması mümkün. "stat NET" ile bunu kontrol edebilirsin. Bir de senin örneğine bakarsak yani normalde de oyun 30 FPS lerde geziyorsa zaten sistemi yeterince zorluyorsun demektir artık ekle çıkar yapacağın herşeyin fps ye yansıması normaldir.
1. ihtimal olamaz çünkü oyunda karakter harici oyunda kullandığım modellerin neredeyse tamamı low kalite. (karakter medium kalite ve groom cloth barındırmıyor)
2. karakterbpnin event tickinde sistemi yoracak bir şey kullanmıyorum fakat begin play kısmında set timer by function name nodeunu 0.1 saniye ile looping ettiğim fonksiyonlar bulunmakta. Bundan da kaynaklanabileceğini düşünmüyorum. 30 FPSyi örnek olarak verdim 60 FPS olsun yine FPS düşüşü gerçekleşiyor. Stat net ile değerleri kontrol ettim fakat herhangi bir şey anlamadım :D. Stat nette Hangi parametrelere dikkat etmeliyim?
 
Screenshot_2.png

genel olarak her değer önemli aslında burada ama ilk bakışta önemli olan işaretlediklerim, işaret yanlış olmuş num network actors önemli ki sahnede kaç kişi rep durumunda anlayabilirsin, in out değerler şu an gördüğün rakamların pek de üstüne çıkmamalı, en yoğun rep kullanılan sahnelerde dahi 10k üzerine çıkmamalı
 
  • Beğen
Tepkiler: kinglord34
Ekli dosyayı görüntüle 603

genel olarak her değer önemli aslında burada ama ilk bakışta önemli olan işaretlediklerim, işaret yanlış olmuş num network actors önemli ki sahnede kaç kişi rep durumunda anlayabilirsin, in out değerler şu an gördüğün rakamların pek de üstüne çıkmamalı, en yoğun rep kullanılan sahnelerde dahi 10k üzerine çıkmamalı

Number of player sayısı : 1

Screenshot_2.png

Number of player sayısı : 2


Screenshot_1.png

Değerlerde herhangi bir problem görebiliyor musunuz?
 
In rate 2 actor için fazla ama can alıcı birşey gözükmüyor, yani buradan sonrası projeyi görmek lazım a gider. Diğer profiling leri kontrol et derim.
Bu içeriği görmek için üçüncü parti çerezlerine izin vermeniz gerekli.
Daha fazla detay için çerezler sayfasını ziyaret edin.
şuna bir göz at fena anlatmamış, Sonuçta oyuncu sayısı arttıkça fps drop var ise bir yerlerde mutlaka spawn olan karakterlerle beraber gelen bir overload var demektir. Aynı host-join logic i boş third person oyun ile dene, genel olarak paketlemede bir sıkıntı var mı bunu da denemiş olursun.
 
  • Beğen
Tepkiler: kinglord34
In rate 2 actor için fazla ama can alıcı birşey gözükmüyor, yani buradan sonrası projeyi görmek lazım a gider. Diğer profiling leri kontrol et derim.
Bu içeriği görmek için üçüncü parti çerezlerine izin vermeniz gerekli.
Daha fazla detay için çerezler sayfasını ziyaret edin.
şuna bir göz at fena anlatmamış, Sonuçta oyuncu sayısı arttıkça fps drop var ise bir yerlerde mutlaka spawn olan karakterlerle beraber gelen bir overload var demektir. Aynı host-join logic i boş third person oyun ile dene, genel olarak paketlemede bir sıkıntı var mı bunu da denemiş olursun.

Attığınız video bana ilaç gibi geldi hocam teşekkür ederim. Bir ay önceki açtığım konu için bebek adımlarıyla ilerle demiştiniz yine o şekilde adım adım ilerlemekten başka şansım yok. Ha bu arada sanırım 5.3 sürümü ve sonrası için UnrealInsights kullanmak gerekiyormuş, yeni bir şey daha öğrendim :D. UnrealInsightsi detaylıca inceleyip geri dönüş yapacağım.
 
  • Beğen
Tepkiler: nonlinear
Sorunun KarakterBPden kaynaklandığını düşünüyorum. Boş bir haritaya karakter spawn ettiğimizde aldığımız fps düşüyor. KarakterBP'de ne yazık ki C++ kullanmıyorum, kodların tamamı blueprint. Nasıl bir optimizasyon yapabilirim?
 
Sorunun KarakterBPden kaynaklandığını düşünüyorum. Boş bir haritaya karakter spawn ettiğimizde aldığımız fps düşüyor. KarakterBP'de ne yazık ki C++ kullanmıyorum, kodların tamamı blueprint. Nasıl bir optimizasyon yapabilirim?
karakter movement hariç tüm ana fonksiyonların bağlantısını kes, sonra sırayla ana fonksiyonları bağlamaya başla, hangisinde patlarsa onun alt fonksiyonlarında sorunu aramaya başlayabilirsin aynı şekilde, yani yine baby steps :))
 
  • Beğen
Tepkiler: kinglord34
Sorunun KarakterBPden kaynaklandığını düşünüyorum. Boş bir haritaya karakter spawn ettiğimizde aldığımız fps düşüyor. KarakterBP'de ne yazık ki C++ kullanmıyorum, kodların tamamı blueprint. Nasıl bir optimizasyon yapabilirim?
FPS düşüren şey genelde şu oluyor. KarakterBP içerisinde milyon tane kod yazdıysan. Construction Scripti çok doluysa veya Karaktere önceden daha sahneye sürüklenirken birçok obje attach edildiyse.
Mesela el feneri, tabanca, objektif eşyaları, melee eşyası gibi bir çok şey.
Bunları sonradan attach etmek lazım. Ya da event begin play de socket lokasyonu verilerek attach edilmesi gereken şeyler.
Öncesinde edilince sahneye sürüklerken FPS düşer.

Tick fazla kullanılmamalı.
Mesela karaktere silah attach ettin ve kodunu karakterbp içine yazdın. Bu yanlış. Silahın fonksiyonları silahın kendi içinde olmalı ve o silah ise BP olmalı. PistolBP gibi.
El fenerinin ışık fonksiyonları kendi içerisinde olmalı FlashlightBP olmalı. Bunları ya oyun başlangıcında attach ettirirsin. Ya da oyunun ilerleyişinde pickup şeklinde alınınca attach olur. Her objektifin kodları da kendi içinde çalışır.

Böylece kod ve iş yükü kontrol yükü kalkar. Ticki durduk yere her şeyde kullanmamalısın. Tetikleyiciler sayesinde aktif etmelisin ve işlem bitince yok etmelisin.
Birden fazla iş yapılacaksa araya 0.1 sn gibi delaylar konulmalı. Ticklerin süresi geciktirilmeli.
Milyon tane değişken kullanılmamalı.

Mesela : IsRunning, IsCrouching, IsInjured, IsFlying gibi şeyler yerine Enum(enumeration) kullanılmalı.
Mesela E_MovementState, E_CurrentWeapon gibi listelenmiş enumlar kullanılmalı. Böylece Timer ile Booleanları kontrol etmekten de kurtulursun.

Bir üst seviye bir şey istersen toplu değişkenler için Structures kullanılabilir. Karakterin can değeri, koşma hızı, adı, resmi, durumu, gibi şeyleri bulundurursun. Envanter için de ayrı bir structures kullanabilirsin.
Bazı şeyleri karakter içinde değil de Component şeklinde yapmalısın. Mesela envanter yapacaksın diyelim yani bir çanta gibi düşün. Sırtına takılı olduğu anda aktif olacak gibi.
BP_Inventory gibi bir şey yapıp attachlanmış karakterde interaksiyona girmesini sağlayabilirsin. Karakterin paneline bunu eklersin. Dolayısıyla o da kendi içinde veri tutacaktır.
Veri yükün kendi karakterinden envantere aktarılacak. Çünkü o değişkenler o envanterde tutuluyor olacak. Alınan nesne sayısı, nesnenin türü, resmi bilmem neyi gibi şeyler orada olacak sen sadece onu panelden çekip veri transferinde bulunacaksın. Araca NOS takmak gibi bir şey bu. Böyle eklentili ComponentBP ler mevcut.
Karaktere eklediğin sürece çalışır sadece.

Bir de BlueprintInterfaces denilen bir olay var. Bunu da kullanırsan optimizasyon sorunu %90 ortadan kalkacaktır.

Bir de görsel optimizasyon var. Mesela HairGroom sıkıntı çıkarabilir. Metahuman gibi çok detaylı karakterler de sıkıntı çıkarır. Bunlara ise LOD yapmak lazım.

Benim oyunda da aniden lapss diye fps düşüren şey
PlayerCharacterBP :)

Daha sahneye sürüklerken fps cortluyor. İçinde 50 değişken var 30 graph var ve her graphta bir çok kontrol ve kod var.
Tickler ve Contruction Scriptler var. Ayrıca karaktere Attachlanmış 20 obje var.
Dört oyuncu bağlandığında fps de yoğun düşüş oluyor. Bunlar NPC bile olsa aynı şekilde oluyor. Bu yüzden sistemi komple değiştiricem.
Genelde her şeyi CharacterBP içinde yaptım.
 
Son düzenleme:
  • Beğen
Tepkiler: kinglord34
Dostum ben buna benzer bir durum yaşadım bilgisayarıma format attığımda yeniden unreal engine'ı yükledim. 2 oyuncu bile seçsem çok kasıyordu. Bir çok yol denedim. Her zaman yaptığım windows updatei yaparak sürücüleri güncellemedim. Belki bundan kaynaklanıyordur. visual studioyu tekrar yükledim sorun çözülmedi en son format attım çözülmüştü.
 
karakter movement hariç tüm ana fonksiyonların bağlantısını kes, sonra sırayla ana fonksiyonları bağlamaya başla, hangisinde patlarsa onun alt fonksiyonlarında sorunu aramaya başlayabilirsin aynı şekilde, yani yine baby steps :))
Hocam sorunu çözdüm, sizin de dediğiniz gibi bir tane event yüzünden bu fps düşüşü yaşanıyormuş. O eventi bulup imha ettim :D. Çok teşekkür ederim
 
  • Beğen
Tepkiler: nonlinear