leonscottkfm

Unreal MVP
31 May 2015
1,537
5
219
63
28
(34) İstanbul Avrupa
store.steampowered.com
Oyunlarda herkesin görebileceği gibi dakika saniye olabiliyor. Sizin fps değeriniz 1 de olsa 100 de olsa o süre normal bir şekilde akmaya devam ediyor. Bunun en sağlıklı yolu nedir ?
Mesela benim timerden kurup GameMode içerisinde yönettiğim oyun süresi herkesin performansına göre değişerek ilerliyor. Adam oyunu altada atsa dondursada fps değeri düşükte olsa o sürenin ilerlemesini istiyorsak nasıl bir yol izleriz ? Alta atma olayını GameInstance içerisinde bir timer oluşturarak yapabileceğimizi varsayıyorum ama fps değerinden bağımsız şekilde ilerlemesini nasıl uygulayabiliriz ?
 
Tickte her delta değerini bir float değişkeninin üstüne eklersen 1 saniye her zaman 1 değerine eşit olur FPS den bağımsız.

Ayrıca timer lar gerçek zamana göre çalışır FPS den bağımsız. Sen 1 saniyede 1 fonksiyon çağırıyorsan o her 1 saniyede 1 çalışır. Ama zamanlaması sadece FPS e bağlı olarak kayabilir.  1 saniyede bir float değerini 1 arttır dersen 4000 saniye sonra o float değeri 4000 olur. Eğer sen timer içinde saniyede 120 defa çalış dersen ve o süreçte FPS 110 ise şöyle olur: 100 tane frame de tek bir defa çağırılmış olur ama 10 tane frame de 2 kez çağırılır ama yine toplamda 1 saniyede 120 defa çalışır. Yani çalışma sayısı FPS den bağımsız ama zamanlaması tabi ki FPS e bağlı.
 
Peki Lolde mesela oyun süresi var oyun donsada fps 10 a düşse de 500 olsa da aynı şekilde ilerleyebiliyor o süre, internet üzerinden mi çekiliyor o veri ?
Örneğin sunucu websitesi oyununda bir lobi kurulduğu ve oyunun başladığı gözlemleniyor . Sayaç websitesinde ilerliyor , oyunda bunu veri olarak devamlı anlık şekilde alıyor. Onlar sanırım bu şekilde yapıyorlar.