CS:GO'da interp ve interp ratio değerleri kaç olmalıdır?

Durum
Mesaj gönderimine kapalı.
O zaman cl_interp 0 mı yapmak lazım diyorsunuz oyuna bağlanmadan önce?
En iyi değerimi atıyor pinge göre?
 
O zaman cl_interp 0 mı yapmak lazım diyorsunuz oyuna bağlanmadan önce?
En iyi değerimi atıyor pinge göre?
Evet.Çünkü test ettim. 0.0014322 değeri yaptım .
Fakat tekrar 0.0015 li interp değerini attı oyuna girince cs go.
1651083210265.png
 
Hocam kafa karışıklığı oldu kesin ne yapmamızı önerirsiniz şimdi kusurumuza bakmayın çok şey söyleniyor kafa karışıyor faydalı bir konu tam aydınlanalım cl_inerp 0 mı olacak yoksa 0.015625 mi olacak ben denedim 0 yapınca bir 0.015625 oluyor bazen de 0.07821 oluyor değişyor en sağlıklı olanı nedir 55 70 arası ping alan kişiler için.
 
Hocam kafa karışıklığı oldu kesin ne yapmamızı önerirsiniz şimdi kusurumuza bakmayın çok şey söyleniyor kafa karışıyor faydalı bir konu tam aydınlanalım cl_inerp 0 mı olacak yoksa 0.015625 mi olacak ben denedim 0 yapınca bir 0.015625 oluyor bazen de 0.07821 oluyor değişyor en sağlıklı olanı nedir 55 70 arası ping alan kişiler için.
Server kendisi ayarlıyor artık galiba. Yabanci forumlardada artık işe yaramıyor diyorlardı.
 
Cl_interp_ratio 1 yapıyorum ben pingim 70-90 arası.
Daha iyi HS attığımı ve mermilerin daha iyi gittiğini hissettim bu ayarda.
 
Cl_interp_ratio 1 yapıyorum ben pingim 70-90 arası.
Daha iyi HS attığımı ve mermilerin daha iyi gittiğini hissettim bu ayarda.

Cl_interp_ratio 1 ping ve loos kaybı yoksa 1 olması lazım evet ama cl_interp ne olması gerekiyor cl_interp 0.015625 bende böyle.Pingim 55 70 arası değişiyor
 
Ben cl_interp 0 olarak kullanıyorum otomatik olarak en iyi ayarı atıyor zaten sana. 0 olarak kullandığın zaman.
 
Yazmayayım yazmayayım diyordum da "gidin kendinize konu açın" diye berbat bir çıkıştan sonra yazayım dedim.

Sözde rehber zaten fiyasko, bir de üzerine böyle ahkam kesmek komik oluyor.

Şimdi sıfırdan başlayalım, bunu konu olarak da açarım oradan devam ederiz. Konu sahibi üzülüyor yoksa.

İşin teknik kısmına girmeden herkesin anlayacağı şekilde anlatacağım ki burada konuşulan şey nedir tam olarak anlayalım, ardından tek tek yanlışları gösterelim. Tavsiyelerimizi ve ayarlarımızı verdikten sonra da İstiklal Marşı ile kapanışı yaparız.

İnternetteki bazı Türkçe kaynaklarda belirtildiği gibi interp ayarı kimin daha önce ateş ettiğini belirlemez. Mermi gidiş süresini falan dengelemez. Bunlar tamamen SALLAMA şeyler. İnterpolasyon tamamen farklı bir olaydır.

Öncelikle, Tick nedir?

Tick sistemi online/offline fark etmeksizin her oyunda kullanılan bir sistemdir. Oyundan oyuna adı değişse de temel mantık olarak sistem aynıdır. Madem konu CSGO'dan ilerliyor, ben de onun üzerinden anlatacağım.

64 tick bir sunucu, o an oynanmakta olan oyunu saniyede 64 kere hesaplar demektir. Bir nevi monitörlerin Hz değeri gibi. Oyun, saniyede 64 kere yenileniyor. Hangi oyuncu ne yöne hareket etti, ne tarafa baktı, o yönde neler değişti, fırlatılan el bombası ne kadar yol kat etti vs vs hepsi saniyede 64 kere hesaplanarak ekrana yansıtılıyor.

Ancak oyunda saniyenin 64'te birinden daha kısa sürede gerçekleşen olaylar da oluyor. Üstelik saniyede 64 kere yenilenen bir oyun varken yüksek Hz değerine sahip monitörlerin de bir anlamı kalmıyor. Sonuçta FPS kaç olursa olsun oyun 64 kere yenileniyor. 500 FPS de olsa 1500 FPS de olsa sonuçta bu ekrana yansıyan FPS değeri, oyunun 64 farklı yenilenmiş versiyonundan görüntler içeriyor. Mantık olarak doğru ve işte zaten burada devreye interpolasyon giriyor.

Peki o zaman Interpolation (Interp) nedir?

CSGO'dan tutun binbir farklı online oyun interpolasyon kullanır. İnterpolasyon, her biri farklı bir "oyun bilgisi güncelleme" noktası olan tickler arasındaki geçişi kusursuz yapmaya yarıyor. Bir nevi tickler arasını doldurarak saniyede 64 kere yenilenen oyun bilgisini sanki anında yenileniyormuş gibi hissettiriyor. Bu yüzden kesik kesik 64 görüntü yerine ekranda direkt olarak "akıcı" bir görüntü görüyorsunuz. Çünkü iki tick arasında geçen zamanda olan hareketleri interpolasyon otomatik olarak dolduruyor.

1651100453228.png


Tick yüksek olursa interpolasyona duyulan ihtiyaç da daha az oluyor. Oyunun yenilenmesi interpolasyon gibi suni şeyler üzerinden değil direkt olarak sunucunun kendisinden gelen "durum bilgileriyle" yapıldığı için "mermiler 128'de daha iyi gidiyor" tarzı şeyler duyuyoruz.

64 Tick demek, oyun her 16 milisaniyede bir yenileniyor demek. Çünkü 1 saniye / 64 = 15.625.
Diyelim ki sizin 40 pinginiz var. Karşıdaki bir oyuncunun da 30 pingi olsun. Sizin ateş ettiğiniz bilgisinin sunucuya iletilmesi 20 ms sürecek. Sunucu bu bilgiyi işleyip karşıdaki oyuncuya gönderecek, bu bahsedilen olay da bir sonraki tick. Yani arada 16 ms daha geçti, etti mi 36 ms? Son bilgi oyuncuya gönderildi, onun da pingine 30 demiştik. Etti mi 51 ms? (Hesaplama tam olarak böyle değil ama işin tekniğiyle boğmak istemiyorum, temel mantığı anlamanız yeterli. Değerleri yarım almamızın sebebi ise ping değerinin sunucuya bir bilginin iletilimesi ve sunucunun karışılık olarak cevap göndermesi arasında geçen süreye verilen ad olmasından kaynaklı. Biz sunucuya bir bilgi iletiyorsak arada geçecen vakit pingimiz/2'dir.)

51 ms gibi bir sürede neler neler oluyor oyunda. İşte aradaki boşlukları dolduran kahramanımız = İnterpolasyon.

CS 1.6, 60 tick sunucular kullanıyordu. CS Source ise 66 tick. CSGO ilk zamanlarında 102 tick sunucular kullanıyordu. Sonradan 64 tick'e düşürüldü.

E madem yüksek tick yüksek akıcılık ve kesinlik demek, neden düşük tickli oyunlar oynuyoruz?

Çünkü bahsi geçen oyunları "internet üzerinden" oynuyoruz. Yukarıda da bahsettiğim gibi araya ping dediğimiz gecikmeler giriyor. Yüksek tick sunucu demek oyunun çok çok daha hızlı yenilenmesi demek. Bu da güçlü bir sunucu demek. Güçlü sunucu demek oyun yapımcısı için masraf demek. Ayrıca, bu güçlü sunucuya bağlanıp oyunu oynamak isteyen kişilerin de sağlam internet bağlantılarının olması demek. Çünkü önceden saniyede sunucudan alınan bilgi 64 adetken şimdi sallıyorum 128 oldu. Yani kullanılan ağ miktarı 2 katına çıktı. Yüksek bant genişliğine sahip bir internet bağlantısı olmadan isterseniz 4398912498712849 tick sunucularda oynayın, hiçbir faydasını görmezsiniz.

Onlarca kişinin izlediği CSGO turnuvaları LAN yani "Local Area Network" üzerinden yapılıyor. Eskinin internet kafelerinde Half-Life ya da CS 1.3/1.5/1.6 oynayanlar bilirler. İnternet bağlantısı olmadan aynı modeme bağlı makineler arasında oynadığımız oyunlardan bahsediyorum. İşte burada ister 128 ister 512 ister 4096 tick sunucularda oyun oynayabilirsiniz. Çünkü ping, yani gecikme neredeyse sıfır!

İnterpolasyonun ne olduğunu ve neden gerekli olduğunu anladıysak girizgah bitti demektir, şimdi asıl kısma geçelim.

1651105474444.png


Sunucunun bir oyuncuyu görme şekli böyledir. Arada boşluklar vardır. Yukarıda da anlattığım gibi bu aradaki boşlukları "interp" yani interpolasyon değerleri doldurur.

1651105826486.png


Kırmızı okla gösterdiklerim sunucunun verdiği bilgiler, yeşil ok ise "interpolasyonun" iki tick arasını doldurması olayı.

Şimdi bu interpolasyon değerini öyle bir ayarlamalıyız ki ne çok kısa sürmeli ne de çok uzun. Çünkü kısa sürerse oyuncu gerçekte düşündüğümüzden daha geride olur (sunucuya göre). Yok uzun olursa bu sefer gerçekte düşündüğümüzden daha ileride olur.

Bu ayarı kendi başınıza yapmanın hiçbir imkanı yok. Evet yok. Yani dağda taşta, internetin her tarafında "sözde doğru" olarak paylaşılan bu rehberimsi şeylerin hiçbiri gerçeği yansıtmıyor. Çünkü cl_interp CSGO'da çalışmayan bir komut. Oraya ne yazarsanız yazın oyuna yansımıyor. Oyun, sanki cl_interp değeri sıfırmış gibi kendisi otomatik değer giriyor. Bu otomatik değer de sunucuya girerken bağlandığınız "tick" ile bir önce tick arasında geçen süre ve sizin ping değerinize göre hesaplanıyor.

Yok arkadaş ben illa formülasyonunu bilmek istiyorum diyenler için :
cl_interp_ratio / cl_updaterate = interp

cl_updaterate ayarı, sunucudan saniyede kaç kere yeni bilgi edindiğinizi belirleyen ayardır. 64 tick bir sunucu için 64 olması yeterlidir.

cl_cmdrate ise bunun tam tersi, saniyede sunucuya kaç kere yeni bilgi gönderdiğinizi belirler.

Yani cmdrate ve updaterate harici interp ayarlarına dokunamazsınız. Evet konsola istediğinizi yazabilirsiniz ama değişen hiçbir şey olmaz. "cvar cl_interp" komutu hala çalışsa da atanacak olan değer yine varsayılan değerlere çok yakın bir değer olacak. Yani kendinizi yormanın bir alemi yok.

Gelelim "raito" komutuna. 64 tick bir sunucuda oyunun her 16 (15.625) milisaniyede bir yenilendiğini söylemiştim. Eğer ratio değerini 2 yaparsanız, oyun sunucudan her 16 milisaneyede bir yeni paket alır ama sunucu oyununn en yeni halini göstermek için üçüncü paketi almanızı bekler. Bu da interpolasyon süresini 32 milisaniyeye çıkarır.

Yani 2 yaparsanız Valve sunucusundan bir şeye bağlanmazsınız. +30 ms falan harcamazsınız. Ping değeriniz falan artmaz.

ratio ayarını 2 yapmanın olayı tamamen "sağlama" yapma amacı güder. Yüksek ping değeri demek sunucu tickleri arasındaki veri paketlerinde olası kayıplar demek. Bu olası kayıplarda da oyuncunun oyundan geri kalmaması için interpolasyon süresi arttırılır ki tickler arası boşluklar istemci tarafında doldurulsun ki sunucudan yeni gelecek olan veri paketine en yakın değer yakalansın - oyunun akıcılığı sağlansın.

İşte dananın kuyruğu da burada kopuyor. Hani o yüksek ping değerlerinde oyuncuların sağa sola ışınlanıyor gibi görünmelerinin sebebi interpolasyonun aradaki paket kaybını telafi edememesidir.

Örneklemek gerekirse, dust2 longa çıkmış bir terörist var diyelim. Araba tarafındaki değil de diğer taraftaki duvarın yanından A Site'a doğru ilerliyor olsun. Yolun yarısında paket kaybı yaşanmış olsun ve bu paket kaybı 40 ms sürsün. 40 ms demek oyuncunun o arada 40/16=2,5 yani 2,5 tick ilerlemiş olduğu anlamına gelir. Ancak paket kaybından dolayı biz bu aradaki 2,5 ticklik ilerlemeyi göremeyiz.

Eğer ratio 2 kullanıyorsak, interpolasyon süresi yaklaşık olarak 32 milisaniye süreceği için, geriye 8 milisaniyelik bir boşluk kalır. İşte o arada kalan boşluk sunucudan yeni paketin gelmesi ve oyun içerisinde görüntülenmesiyle anında güncel veriyle doldurulur ve izlediğimiz oyuncu çok kısa bir mesafe de olsa ışınlanmış gibi görünür. İnterpolasyonun yetersiz kaldığı durumlar da böyle ortaya çıkar. Eğer aradaki kayıp çok daha yüksek ise oyuncular sağa sola ışınlanıyor gibi görünürler. Ancak bazı oyunlar yeni veri paketi gelinceye kadar interpolasyonu sürdürürler.

Örnek verirken terörist oyuncusunun A Site'a doğru gittiğini ve arada 40 mslik bir boşluk olduğunu söylemiştim. Tam da o 40 mslik boşluğun 5. milisaniyesinde oyuncunun durup geri geri gitmeye başladığını düşünün. 32 ms sürecek bir interpolasyonun oyuncunun durup geriye gittiğinden bir haberi olmadığı için interpolasyon oyuncuyu ileriye doğru hareket ediyor gösterir. Ancak sunucudan yeni veri paketi geldiğinde ise oyuncu geriye ışınlanır.

Burada bahsettiğimi 8 ms, insanın algılayabileceği bir süre değil. Algılamak ve görmek farklı şeyler. O yüzden bu 8 ms görmezden gelinebilir. Ancak bu örnekte zıt yöne yapılan bir hareket olduğu için oyuncu bunu fark edecektir.

Vaziyet 15 milisaniyenin üzerindeyse, yani neredeyse 1 ticklik arada kayıp varsa ratio 2 kullanmak gerekir.

Eğer arada 15 ms altı bir fark varsa, ratio 1 kullanmak yeterli olur.

Paket kaybı olmamasına rağmen ratio değeri 2 girerseniz oyun yine sağlama yapmaya devam edeceği ve bu süre zarfında interpolasyona devam edeceği için interpolasyonun yukarıdaki longdan yürüyen terörist örneğindeki gibi oyundan farklı şeyler gösterdiği durumlar olabilir.

Ve o beklenen ana geleyim, uzun lafın kısasına...

Hem de çok kısasına. 80 ping üstü, stabil olduğundan emin olamadığınız internet bağlantılarında ratio 2, 80 ping altı ratio 1 kullanmanız yeterlidir. CSGO, sunucuya bağlanırken sizi bağladığı ticki bazen sapıtabiliyor, sunucuya bağlandıktan sonra "retry" çekmek ya da ana menüye dönüp tekrar bağlanmak, oyunun sizi atayacağı ticki tekrar belirlemesini sağlar.

Bu stabillik olayını nasıl anlayacağınıza ve interpolasyonu buna göre nasıl avantajınıza kullanacağınıza dair bir şeyler karalamak istiyorum ama saat çok geç oldu, bir dahaki sefere artık :)

CSGO ile ilgili her türlü sorularınızı sorabilirsiniz, seve seve yanıtlarım.
 
Son düzenleme:
FACEIT'e girerkende cl_uptadarate ve cmdrate 128 yapacağız o zaman değil mi?
128tick server olduğu için?
 
Durum
Mesaj gönderimine kapalı.

Technopat Haberler

Yeni konular

Geri
Yukarı