Selam arkadaşlar dövüş sistemi kuruyorum ancak bir performans/hassasiyet ikilemi arasında kaldım. Fikirlerinize ihtiyacım var.
Haritada yaklaşık 100-150 aktif karakter (AI ve Player) bulunacak. Saldırı animasyonlarım oldukça hızlı, bazı vuruş pencereleri (Notify Begin/End arası) 0.10s - 0.15s gibi çok dar bir aralıkta gerçekleşiyor.
Mevcut Yapı: SphereTraceMulti ile frame-to-frame (Last Location - Current Location) tarama yapıyorum.
YAŞADIĞIM SORUN
1. Set Timer by Function Name: 0.01s aralıkla çalıştırdığım Timer, düşük FPS veya sunucu yükü anlarında kararsızlaşıyor. Trace sayısı (bazı vuruşlarda 2, bazılarında 5 kare gibi) tutarsız çıkıyor. Ayrıca ilk karede LastTraceLocation verisi henüz güncellenmediği için ilk trace geriden başlayabiliyor veya hiç oluşmuyor.
2.Event Tick: Hassasiyet anlamında en iyi sonucu verse de, 150 karakterin aynı anda Tick üzerinden tarama yapmasının sunucu (Server) tarafında ciddi bir CPU darboğazı yaratmasından endişeliyim.
3.Tunnelling (Tünelleme): Özellikle düşük FPS durumlarında kılıç, düşman collision'ının içinden hasar vermeden geçebiliyor.
Tecrübelerinize dayanarak şu sorulara cevap arıyorum:
AnimNotifyState (ANS) vs Event Tick: ANS içindeki NotifyTick fonksiyonunu kullanmak, global Event Tick kullanımına göre performans (CPU cycles) açısından kayda değer bir avantaj sağlar mı?
Nekdar doğru bilmiyorum ama Network'de araştırmalarıma göre. ANS Even tick için fps drop esnasında Tunnelling gerçekleşebiliyormuş.
Event Tick: Hassasiyet anlamında en iyi sonucu verse de, 150 karakterin aynı anda Tick üzerinden tarama yapmasının sunucu (Server) tarafında ciddi bir CPU darboğazı yaratmasından endişeliyim.
Sektör standartlarında, bu ölçekteki projelerde "kare kaçırmayan" ama sunucuyu da yormayan en stabil yaklaşım nedir?
Haritada yaklaşık 100-150 aktif karakter (AI ve Player) bulunacak. Saldırı animasyonlarım oldukça hızlı, bazı vuruş pencereleri (Notify Begin/End arası) 0.10s - 0.15s gibi çok dar bir aralıkta gerçekleşiyor.
Mevcut Yapı: SphereTraceMulti ile frame-to-frame (Last Location - Current Location) tarama yapıyorum.
YAŞADIĞIM SORUN
1. Set Timer by Function Name: 0.01s aralıkla çalıştırdığım Timer, düşük FPS veya sunucu yükü anlarında kararsızlaşıyor. Trace sayısı (bazı vuruşlarda 2, bazılarında 5 kare gibi) tutarsız çıkıyor. Ayrıca ilk karede LastTraceLocation verisi henüz güncellenmediği için ilk trace geriden başlayabiliyor veya hiç oluşmuyor.
2.Event Tick: Hassasiyet anlamında en iyi sonucu verse de, 150 karakterin aynı anda Tick üzerinden tarama yapmasının sunucu (Server) tarafında ciddi bir CPU darboğazı yaratmasından endişeliyim.
3.Tunnelling (Tünelleme): Özellikle düşük FPS durumlarında kılıç, düşman collision'ının içinden hasar vermeden geçebiliyor.
Tecrübelerinize dayanarak şu sorulara cevap arıyorum:
AnimNotifyState (ANS) vs Event Tick: ANS içindeki NotifyTick fonksiyonunu kullanmak, global Event Tick kullanımına göre performans (CPU cycles) açısından kayda değer bir avantaj sağlar mı?
Nekdar doğru bilmiyorum ama Network'de araştırmalarıma göre. ANS Even tick için fps drop esnasında Tunnelling gerçekleşebiliyormuş.
Event Tick: Hassasiyet anlamında en iyi sonucu verse de, 150 karakterin aynı anda Tick üzerinden tarama yapmasının sunucu (Server) tarafında ciddi bir CPU darboğazı yaratmasından endişeliyim.
Sektör standartlarında, bu ölçekteki projelerde "kare kaçırmayan" ama sunucuyu da yormayan en stabil yaklaşım nedir?
Son düzenleme:
