İçeriğe atla
Giriş Adımları
Mimari · Katman 04

Netcode ve Tick Rate: Sunucu Saniyede Kaç Kez Düşünüyor

Tick oranı, çok oyunculu bir oyunun hassasiyet tavanını belirler. Netcode ise bu kesikli hesabı ekranda akıcı bir hareket hâline getirir. İkisini ayrı ayrı anlamak, oyun içinde hissettiğiniz çoğu tuhaflığın açıklamasını verir.

Kütüphanedeki aralık
20-64 tick
En yüksek
64 tick
Tick aralığı
15,6-50 ms
Netcode işi
3 adım

Tick nedir

Sunucu, dünyayı sürekli değil kesikli olarak günceller. Her güncellemeye tick denir. Tick oranı otuz ise sunucu saniyede otuz kez düşünür ve iki düşünce arasında otuz üç milisaniyelik bir boşluk kalır.

Bu boşluk, oyunun hassasiyet tavanıdır. Sunucunun görmediği bir an, hiç yaşanmamış sayılır.

Tick oranının zaman karşılığı
Tick oranıTick aralığıPratik anlamı
20 tick50,0 msSıra tabanlı ve temassız başlıklar için yeterli
30 tick33,3 msKooperatif savunma için dengeli
32 tick31,3 msFiltreleme yükü ağır başlıklar için
64 tick15,6 msRekabetçi nişancılar için standart
128 tick7,8 msSunucu maliyeti kat kat artar

Kare hızıyla karıştırmayın

Kare hızı sizin bilgisayarınızın saniyede kaç görüntü çizdiğidir. Tick oranı ise sunucunun saniyede kaç kez hesap yaptığıdır. İkisi birbirinden tamamen bağımsızdır.

İki yüz kare üreten bir bilgisayar, otuz tick çalışan bir sunucuda otuz tickten fazla bilgi alamaz. Fazla kareler yalnızca aradaki hareketi yumuşatır; yeni bilgi taşımaz.

64Rekabetçi başlıkların tick oranı
15,6 msİki tick arasındaki boşluk
2xTick iki katına çıkınca sunucu maliyeti

Netcode ne yapıyor

Netcode, kesikli sunucu güncellemelerini akıcı bir görüntüye çeviren kod bütünüdür. Üç işi vardır ve üçünü de aynı anda yapar.

  1. Ara değer üretme. İki tick arasındaki hareketi tahmin ederek karakterin kaymadan ilerlemesini sağlar.
  2. Tampon tutma. Gelen paketleri küçük bir kuyrukta bekletir; böylece bir paket geç gelirse görüntü takılmaz.
  3. Uzlaştırma. İstemcinin tahmini ile sunucunun sonucu farklıysa aradaki farkı yumuşak bir geçişle kapatır.

Tamponun bedeli

Tampon ne kadar büyükse görüntü o kadar akıcı, tepki o kadar geç olur. Netcode ayarının tamamı bu iki uç arasındaki dengeyi bulmakla ilgilidir.

Neden her başlık 128 tick değil

Tick oranını iki katına çıkarmak, sunucu tarafındaki hesap yükünü de iki katına çıkarır. Aynı donanım yarısı kadar maça bakabilir; bu da eşleştirme havuzunun daralması ve bekleme süresinin uzaması demektir.

Ayrıca kazancın sınırı vardır. Altmış dörtten yüz yirmi sekize çıkmak, iki tick arası boşluğu yaklaşık sekiz milisaniye kısaltır. Çoğu oyuncunun girdi zincirindeki değişkenlik bu farktan zaten büyüktür. Zincirin tamamını girdi zinciri sayfasında ölçtük.

Yanlış anlaşılma

Yüksek tick oranı isabet garantisi vermez. Yalnızca sunucunun zamanı daha ince dilimlemesini sağlar. Vuruşun sayılıp sayılmaması, tick oranından çok gecikme telafisinin nasıl kurulduğuna bağlıdır.