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ı | Tick aralığı | Pratik anlamı |
|---|---|---|
| 20 tick | 50,0 ms | Sıra tabanlı ve temassız başlıklar için yeterli |
| 30 tick | 33,3 ms | Kooperatif savunma için dengeli |
| 32 tick | 31,3 ms | Filtreleme yükü ağır başlıklar için |
| 64 tick | 15,6 ms | Rekabetçi nişancılar için standart |
| 128 tick | 7,8 ms | Sunucu 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.
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.
- Ara değer üretme. İki tick arasındaki hareketi tahmin ederek karakterin kaymadan ilerlemesini sağlar.
- Tampon tutma. Gelen paketleri küçük bir kuyrukta bekletir; böylece bir paket geç gelirse görüntü takılmaz.
- 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.
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.