VALORANT Oynanış İstikrarı Gelişmesi 2

VALORANT Oynanış Ekibi karşılaşmalar arasındaki istikrarlılıkla ilgili incelemelerini paylaşmaya devam ediyor.

Tekrar merhaba! VALORANT Oynanış Teknolojisi Ekibi olarak size oynanış istikrarıyla ilgili incelememizin sonuçlarını ve bu konuda yaptıklarımızın ikinci kısmını anlatacağız.

Şimdiye kadar kulağımıza gelenlerle ilgili genel bir hatırlatmaya ihtiyaç duyarsanız, geçtiğimiz ay yayınladığımız bir önceki yazımızı okuyabilirsiniz. O yazımızda oyunculardan genel olarak neler duyduğumuza ve hangi alanlara odaklandığımıza (gecikme süresi, doğruluk ve yüksek ping'li oyuncu performansı) değinmiştik.

Bir önceki yazımızda "ne" ve "neden" sorularını büyük ölçüde yanıtlamıştık. Bugün iyileştirdiğimiz temel alanlardan biriyle ilgili detayları paylaşmak istiyoruz: Gecikme Süresi ve Arabellek. Gecikme süresi ve arabelleğin VALORANT için öneminden, yaptığımız incelemelerden, bulduğumuz çözümlerle iyileştirmelerden ve daha uzun vadeli planlarımızdan bahsedeceğiz.

4.10 Yaması'yla neler getirdiğimizin kısa bir özeti:

  • Ani ağ dengesizlikleri, istemcideki düşük kare hızları, alt+tab veya uzun süreli yüksek ağ gecikmeleri sonrasında oluşan birkaç sorunu tespit ettik ve çözdük.
    • Bu durumlardan etkilenen oyuncular sunucudaki girdilerinin veya ekranlarındaki düşmanın hareketlerinin işlenmesinde gecikme yaşadıklarını hissetmiş olabilirler.
  • 4.10 Yaması'yla bu durumlarda ağ arabelleğinin davranışını iyileştiren ve oyunculara arka planda yaşananlarla ilgili veriler sunan değişiklikler getiriyoruz.
  • Bu değişiklikler, karşılaşmalar arasındaki tutarsız gecikme süreleri ve tepki sürelerine ilişkin bulduğumuz birincil sebebi ele alıyor. Ancak ilerleyen günlerde durumu izlemeye ve gerektiğinde iyileştirmeler yapmaya devam edeceğiz.
    • Karşılaşmalarınızda hâlâ sorun yaşıyorsanız hazırladığımız yeni grafiklerin yaşadığınız sorunları sayılara dökme ve olası nedenleri ölçmenize yardımcı olacağını umuyoruz.

GECİKME SÜRESİ VE ARABELLEK

Bir önceki yazımızda VALORANT'ta gecikme süresini ve ağ arabelleğinin performansını incelediğimizden bahsetmiştik. Aradan geçen zamanda araştırmalarımızı tamamladık ve karşılaştığımız sorunların çözümlerini 4.10 Yaması'nda sunuyoruz.

Devam etmeden önce "ağ arabelleği" veya "işleme gecikmeleri" dediğimizde ne kastettiğimizle ilgili daha fazla bilgi vermemiz size yardımcı olabilir.

VALORANT gibi çevrimiçi oyunlarda sunucu oyunun doğru halini gördüğü için hamlelerinizi gerçekleşmeleri için sunucuya gönderirsiniz. İdeal olarak sunucu oyun simülasyonunu her güncellediğinde (yani saniyede 128 defa) oyun istemcinizden ajanınız için oynanabilecek bir hamle gelir. Eğer hamleniz internet ağında hedefine ilerlediği sırada gecikirse sunucu hamlenizi beklemez ve sizin için bir hamle yapmak durumunda kalır.

Sunucu tarafından öngörülen bu hamle genellikle yol alan hamleyle uyuşmaz. Bu uyuşmazlıklar istemcide doğru konuma ufak ışınlanmalar şeklinde görünen hamle düzeltmelerine sebep olur. Bu düzeltmeler çok fazla olursa oyunun "atlamalı" görünmesine ve daha yüksek bir yüzdede gerçekleşirse de oynanamaz olmasına sebep olur.

Sunucunun öngördüğü bu hamlelerden kaçınmak için sunucunun bazı hamleleri arabelleğe alması ve onları ufak bir gecikmeyle oynaması gerekir. Herhangi bir veriyi internette yayınlarken sıklıkla kullanılan bu strateji, sunucunun ajanınızın hareketlerini her karede rahatlıkla oynamasını sağlamaya yardımcı olur. Ancak bu arabelleğe alma işlemi, sunucu işleminizi sıraya koymadan önce bir gecikme payı ekler. Eğer bu çok fazla olursa Ağ Gidiş Geliş Sürenizin gösterdiğinden (Ağ RTT'si) daha yüksek bir ping'de oynuyormuş gibi hissedebilirsiniz.

Doğru miktarda arabelleğe alma işlemi sağlamak istikrarı korumak için önemli bir hamle. Arabelleğin çok az olması, çok fazla sunucu öngörülü hamleye ve istemci düzeltmesine sebep olurken arabelleğin çok büyük olması yüksek gecikme süresi ve dikiz avantajı gibi durumlara maruz kalmanıza sebep olur. İstikrarı sağladığımızda VALORANT hem sorunsuz hem de hızlı olur.

Sunucunun hamlelerinizi arabelleğe almasına benzer şekilde istemciniz de düşman hamlelerinin bilgisini ekranınıza yansımadan önce arabelleğe almak zorunda. Bu sayede internet bağlantınız kötü olduğunda düşmanlarınızın etrafta ışınlanıyormuş gibi görünmesi engelleniyor. Yani diğer oyuncuları sorunsuz ve kolay şekilde takip edebiliyorsunuz.

İnceleme

İncelememiz kapsamında bu iki arabelleğin tam olarak nasıl performanslar sergiledikleri konusunda daha fazla bilgiye ihtiyacımız oldu.Hamlelerin her birinin arabellekten ne kadar sürede geçtiğini takip etmek için yeni hata ayıklama araçları geliştirdik. Bu araçları kullanarak hareket arabelleklerinin istenmeyen şekillerde davranmasına sebep olan senaryoların var olup olmadığını görmek için denemeler yaptık.

Bu inceleme sırasında peşine düştüğümüz ilgili sorunlardan biri, oyuncular tarafından rapor edilen ve alt+tab yapıldığında artan atış işleme gecikmesiydi. "Arka Planda FPS'yi Kısıtla" ayarıyla oyun arka plana alındığında kare hızını düşürerek daha kapsamlı bir istemci performans sorununa benzer bir sorun oluşturuyor. Oyun odağa geri aldığında aniden yükselen FPS, sunucudaki hamle sırasının uzadıkça uzamasına sebep olabiliyor.İstemcide bu durum mevcut Ağ RTT'si grafiğine yansıtılmayan çok yüksek bir ping'de oynuyormuş hissi uyandırabiliyor.

Benzer bir etki yaratmak için bulduğumuz diğer bir yolsa istemcide hızlı bir ping sıçraması üretmekti. Daha yüksek bir ping değerinden düşük bir ping'e ani bir çakılma yaşandığında sunucudaki o istemciye özel hamle sırasında birikmeye yol açabilir. Daha düşük bir ping değerinden birden daha yüksek bir ping'e sıçrama yaşandığında istemci tarafında diğer oyuncuların yaptığı hamleleri işleme aşamasında birikme olabilir. Her iki durumda da sıradaki hamlelerin bu denli birikmesi, sıra hedeflenen boyuta ulaşıncaya kadar daha yüksek ve belirgin bir gecikme süresiyle karşılaşılmasına sebep olacaktır.

İki senaryoda da mevcut sistem en sonunda sorunları çözer ve arabellekleri hedeflenen boyutlarına çeker gibi görünüyor. Ancak tamamıyla iyileşmenin istenenden daha uzun sürebileceğini fark ettik. Bu da etkin olarak artan ağ gecikmesi süresinin uzamasına sebep olacaktır.

Fazla olan arabellek sürelerini azaltmak için iki yeni çözüm geliştirdik. Bu sayede fazladan gecikme süresini yalnızca deneyimi iyileştirmek amacıyla kısa aralıklarla görüyorsunuz.


Çözümler ve İyileştirmeler

İlk hayata geçirdiğimiz çözüm, herhangi bir şey arabellekte birikmeye sebep olduğunda arabelleği hızla hedef boyuta indirmemizi sağlıyor. Hamle işleme sistemine arabellek artışlarının boyutuna daha sert şekilde müdahale edebilme kapasitesi verdik.

Bu değişiklik sayesinde arabelleğe alınan hamleler öncekinden daha hızlı bir şekilde yedekleniyor. Örneğin bu değişiklikten önce arabellekte fazladan 5 hamle varsa ideal hedefe dönmek 5 saniyeye kadar sürebiliyordu. Yeni iyileştirmelerle bu süre şimdi 1 saniyenin altına indi. Bu da demek oluyor ki aksama veya ağ bağlantısındaki ani sıçramalar gibi oyuna etki eden durumlarla karşılaşan oyuncular, ilave arabellek işleminden kaynaklanan gecikme süresinden çok daha kısa süreliğine etkilenecek.

Ancak ciddi vakalarda arabelleğe alınan hamlelerin yedeklemesi o kadar büyüyebilir ki yukarıda bahsettiğimiz düzeltmeye rağmen hamle işlemesinin bu birikmenin üstesinden gelmesi saniyeler sürebilir. Bu durum oluştuğunda artık arabelleği tam sıfırlıyor ve son hamle haricindeki diğer tüm hamleleri atıyoruz. Böylece ek gecikme süresi anında ortadan kaldırılıyor ancak bu durumda hareket düzeltmesinden kaçınmak da mümkün olmuyor.

Kare hızının ciddi oranda sekteye uğraması veya ağ sıçramaları gibi ciddi etki yaratan durumlarda, hamle işlemesinin arabellek boyutunu düzenlemesi için birkaç saniye beklemektense hareket düzeltmesini beklemenin daha iyi olduğunu gördük. Bu durumda oyuncuların düzeltmeden önce karşılaştıkları giderek uzayan yüksek gecikme süresindense düzeltme almak genellikle daha az aksamaya sebep oluyordu. Bu düzeltmeyle karşılaşabileceğiniz ciddi durumlardan biri, Arka Planda FPS'yi Kısıtla ayarına düşük bir değer verdikten sonra alt+tab yaptığınızda gerçekleşiyor. Bu, aşırı bir kare hızı değişimine yol açarak arabelleğin şişerek sorun çıkarmasına sebep olabiliyor. Mevcut değişiklikle bu sorun artık hızlıca çözülebiliyor.

Arabelleği incelerken karşılaştığımız ilgili sorunlardan biri de şuydu: Sistem, ağ gecikme düzenli olarak yüksek olan oyuncuların gecikme süresini sunucunun tahmin ettiği hamleleri kullanarak istikrarlı bir hale getirmeye çalışıyor ve bu yüzden oyunculara düzenli olarak daha düşük veya yüksek arabellek arasında geçiş yaptırıyor. Bu tarz uzun süreli ağ gecikmelerini hesaba katarak hedeflenen arabellek boyutunu daha iyi ayarlamak için gereken çözüm üzerinde çalışıyoruz.


Gelecek Planlarımız

Yukarıdaki değişikliklerin yanı sıra oyuncuların mevcut hamle işleme gecikmelerini anlamak için gerekli araçlara sahip olmadığını fark ettik. Bu sorunu takip etmek için kullandığımız grafikler oldukça kullanışlı olduğundan Ağ RTT'si ve İşleme Gecikmeleri adı altında ağ gidiş geliş sürenizi hem sunucu hem de işlemci hamle gecikmeleri boyunca gösteren yeni bir grafiği sizler için ekledik.

Grafikte ölçülen süre, eski "bıçak testinde" hissettiğiniz gecikmeye nispeten eşit olmalı. İşler yolunda olduğunda grafik için makul olan Ağ RTT'si sizin hızınızdan kabaca 20-30 ms yüksek olmalı. İdeal değerse tamamen ağ ve kare hızınızın koşullarına bağlı olarak farklı olacaktır.

Ayrıca, AĞ RTT'sinde paketten pakete nasıl bir değişim olduğunu gösteren Ağ RTT'si Gecikmesi grafiğini de ekledik. Ping sıçramaları ve yüksek ağ gecikmeleri genellikle ek arabellek gerektiren durumlar oluşturuyor. Sıradan Ağ RTT’si grafiğinde sadece ortalama değerler bulunduğu için görülmeyen olumsuz ağ koşullarının teşhisine yardım etmek amacıyla bunu da grafik olarak ekledik.

Ayrıca oyunlar arasında oyuncuların hangi işleme gecikmelerini deneyimledikleriyle ilgili veri toplamak için ek olarak uzaktan ölçümler gerçekleştirdik. Oyunun sağlığını takip etmek ve anlattığımız düzeltmelerin istediğimiz etkileri oluşturup oluşturmadığını ve ilave düzenleme gerekip gerekmediğini görmek için bu verileri düzenli olarak gözden geçireceğiz.

Son olarak her ne kadar çeşitli sosyal medya platformlarındaki paylaşımları okuyor olsak da oyun sonrası anketimiz aracılığıyla karşılaşma kalitenizle ilgili bağlantı kalitesi ve silah kullanımı gibi daha ayrıntılı oyuncu geribildirimleri toplamak istiyoruz. Bu alanları yansıtması için bazı sorular ekleyecek ve düzenlemeler yapacağız.

BİR SONRAKİ GÜNCELLEME

Hamle işleme arabelleğine yaptığımız bu iyileştirmelerin, oyuncuların ping’leri iyi değerlerde seyrediyormuş gibi göründüğü halde oyunda deneyimlediği tutarsızlıkları azaltmaya yardımcı olacağınız umuyoruz. Eğer oyun sırasında problemler yaşamaya devam ederseniz grafik formundaki yeni gecikme ve işleme gecikmesi bilgilerinin yaşadığınız sorunları sayılara dökme ve olası nedenleri teşhis etmenize yardımcı olacağını umuyoruz. Eğer tutarsızlık problemleri yaşıyorsanız ve oynayışınızı kaydediyorsanız bu grafiklerin sağlayacağı fazladan bilgiler sorunu çözmek için odaklanmanız gereken yeri tespit etmek konusunda size yardımcı olabilir.

Güncellememizi, bizim de hissettiğimiz veya gördüğümüz problemlerin videolarını ve detaylarını paylaşan herkese teşekkür ederek noktalıyoruz. Oyuna olan sevginiz ve onu geliştirmemizde bize yardımcı olmak için gösterdiğiniz çaba için minnettarız. Geri bildirimlerinizi her zaman çok ciddiye alıyoruz.

Sunucu seçimini ve yüksek ping’li oyuncu performansıyla sunucu seçimi arasındaki bağlantıyı anlatacağımız gelecek güncelleme için takipte kalın.