Connect with us

Hi, what are you looking for?

Duran Gain'de!

Oyun

Bir Hacker, GTA Online Yükleme Süresini Azaltmayı Başardı!

Oyun modları, özellikle Grand Theft Auto Online için bir karmaşadır. Ancak bazen, birisi o kadar iyi ve yine de o kadar basit bir konuyla gelir ki, geliştiricinin aynı şeyi neden bir yamada yapmadığını merak edersiniz. İşte bugün böyle bir olay ile karşınızdayız, bir bilgisayar korsanı, yükleme süreleri için o kadar basit bir düzeltme gösterdi ki, Rockstar Games’in bunu neden yıllar önce yapmadığını merak edeceksiniz.

Grand Theft Auto Online oynayanlar bilir ki oyuna girişte yükleme süreleri çok uzun sürer. Geride bıraktığımız yaz döneminde Reddit’te yapılan bilimsel olmayan bir anket, çoğunun oyunun başlayabilmesi için üç ila altı dakika beklediğiniz ve oyuncuların yüzde 35’inden fazlasının altı dakikadan daha uzun yükleme sürelerine sahip olduğunu ortaya koydu. En kötü senaryolardan birinde ise bekleme süreleri 15 dakikadan fazlayı bile bulabiliyordu.

T0st isimli bir yazılım uzmanı, altı dakikalık yükleme sürelerine neyin sebep olabileceğini merak etti ve araştırdı. İşlem yığınını boşalttıktan sonra, tek bir CPU iş parçacığını en üst düzeye çıkaran iki darboğaz keşfetti. Kötü yazılmış bir rutin, 63.000’den fazla öğe içeren 10MB JSON dosyasını verimsiz bir şekilde ayrıştırmaya çalıştığını ispatladı.

Görünüşe göre, JSON dosyası oyun içi mağazalardan satın alınabilen öğeleri barındırıyordu (mikro işlemlerle karıştırılmamalıdır). Süreyi gereksiz yere uzatan rutin, dosyadaki her girişi okuyor ve ardından bir dizide depoluyor. Her geçişte, yeni öğeyi eklemeden önce tüm diziyi kopyalamak için yeniden denetliyor. Tahmin edilebileceği gibi, dizi büyüdükçe bu süreç uzayıp gidiyor.

Sorunu çözmek için T0st, bekleme süresini uzatan iki darboğazı ortadan kaldıran bir DLL oluşturdu. İlk düzeltme, uzun dizi uzunluklarını “önbelleğe alır”. “Dizenin aralığı içinde yeniden çağrılırsa, önbelleğe alınan değeri [döndürür],” .

Bu düzeltme, tekrarlanan girişleri ortadan kaldırdığından, çift kontrol artık gerekli değildir. Dolayısıyla, DLL’nin ikinci bölümü değerleri diziye ekler.

Bu iki yamanın sonuçları oldukça dikkat çekici. Yalnızca yineleme denetimi düzeltmesi yüklendiğinde, yükleme süresi mütevazı bir şekilde altı dakikadan 4,5 dakikaya düşürüldü. JSON ayrıştırıcısı çok daha etkiliydi, beklemeyi iki dakika 50 saniyeye düşürdü ve her iki yamayı DLL’ye uygulayarak yükleme süresinin hızını yaklaşık olarak yüzde 70 (veya 1 dakika 50 saniye) artırdı.

Sonuçlar, donanım yapılandırmasına bağlı olarak değişiklik gösterebilecek tabi ki, ancak optimizasyonlar, her kurulum için yükleme hızlarını önemli ölçüde iyileştirmelidir.

T0st, ilgileniyorsanız konsept kanıtını GitHub üzerinden paylaştı, ancak çevrimiçi iken enjekte etmenin sizi askıya alabileceği konusunda uyarıyor. Sorunu nasıl bulup çözdüğüne dair yazdığı yazı da oldukça iyi bir okuma. Rockstar Games’in PoC’sinden haberdar olacağını ve stüdyonun yedi yaşındaki nakit ineği için mantıksız bir talep olmayan resmi bir yama yayınlayacağını umuyor.

Advertisement. Scroll to continue reading.
Written By

Siberdefter'de Chief Executive Officer

Click to comment

Leave a Reply

E-posta hesabınız yayımlanmayacak.

Editörün Tavsiyeleri

Oyun

Son dönemlerin tartışmasız en iyi rol yapma oyunu ve Grand Theft Auto serisi olan GTA 5, popüleritesini yitirmeden günümüzde halen daha oynanıyor, Epic Games Store‘da...

Oyun

Son zamanların tartışmasız en iyi roleplay ve Grand Theft Auto serisi olan GTA 5, popüleritesini yitirmeden halen daha oynanıyor, Epic Games Store‘da başlayan büyük GTA...

Oyun

Son zamanların tartışmasız en iyi roleplay ve Grand Theft Auto serisi olan GTA 5, popüleritesini yitirmeden halen daha oynanıyor, Epic Games Store‘da başlayan büyük...

Oyun

Bundan bir önceki haberimizde GTA 5 Premium oyununun Epic Games üzerinden tamı tamına bir haftalığına ücretsiz olarak sunulacağını söylemiş idik. Fakat dünya çapında Epic...

Advertisement
Advertisement