Geliştiricilerden
İstemci Temizliği: Mimari Çalışmaları Sürüyor

Bu yazımızda LoL İstemcisi'ni iyileştirme çalışmalarımızda kaydettiğimiz ilerlemelerden bahsedeceğiz.

GeliştiricilerdenYAZARLARRiot Cactopus, Riot Sparango, Riot Id, Riot A Huevo
  • Seçim panoya kopyalandı

Bu yılın başlarına doğru, League of Legends İstemcisi'nin performansını arttırmaya yönelik perde arkası çalışmalarımızı her iki ayda bir sizinle paylaşacağımıza söz vermiştik.

Bugünün güncellemesiyle serimizin üçüncü yazısı olacak. (İlk yazımızı burada[1] , ikinci yazımızıysa burada bulabilirsiniz.)

ÖZET: İstemciye güç veren kodu temizleme amacımıza doğru emin adımlarla ilerliyoruz. Ayrıca yol boyunca başımıza bela olan bazı hataları temizlemekten de geri kalmıyoruz. Bunların ayrıntılarını aşağıda bulabilirsiniz. Kaydettiğimiz ilerlemeye rağmen hâlâ yapacak pek çok şey var. Temizlik çalışmalarımız tam gaz sürüyor.

SON DÖNEMDEKİ İLERLEMELER

İlk istemci yazımızda da belirttiğimiz gibi istemcinin performans sorunlarından bazılarını çözmenin en iyi yolunun istemcideki eklenti ve ember uygulamalarının bir araya getirilmesi ve sayıca azaltılması olduğunu düşünüyoruz.

Eğer bilmeyenleriniz varsa eklentilerin istemcinin kodunu kullanışlı parçalara ayırmakta kullandığımız araçlar olduğunu söyleyebiliriz. Ember uygulamaları, istemcinin kullanıcı arayüzünü çalıştırmamıza yardımcı oluyor.

Bu amaca doğru ilerleme kaydetmeyi sürdürüyoruz. Aşağıdaki grafik, eklenti ve ember uygulaması sayısının zaman içindeki değişimini gösteriyor.

Architecture_Stats-tur.jpg

Eğer yukarıdaki grafiği incelediyseniz, muhtemelen "Tamam da tüm bunlar istemcinin performansını nasıl etkiliyor?" sorusu aklınıza gelmiştir. Bu sorunun cevabıysa aslında epey karmaşık ama kısaca açıklamak gerekirse, daha az eklenti ve ember uygulaması daha etkili istemci kodu anlamına geliyor. Kodumuz sadeleştikçe performans da artıyor. Ayrıca bu sayede geliştiricilerin istemciyi çalışır halde tutması kolaylaşıyor.

Yaptığımız çalışmaların etkisini ölçmekte kullandığımız yöntemlerden biri de istemcinin açılma süresini gözlemlemekti. Bu ölçümün zaman içindeki değişimini aşağıdaki grafikte bulabilirsiniz:

Loading_Screen_Render-tur.jpg

Gördüğünüz gibi, önyükleme süreleri son birkaç aydır epey sabit. Yaptığımız işin risklerini göz önünde bulundurduğumuzda bunu orta ölçekli bir başarı olarak kabul edebiliriz. Büyük ölçekli kodları oraya buraya savurup eklentileri yeniden düzenlemek, dikkatli olmamamız halinde beklenmedik sorunlara yol açabiliyor. Tabii şimdilik böyle bir şey olmadı.

Önümüzdeki birkaç yama boyunca önyükleme sürelerinde bazı iyileşmeler görmeyi umuyoruz. Bunun sebebiyse, istemciyi her açtığınızda hangi eklentilerin yüklenmesi gerektiğini akıllıca seçecek yeni bir çözüm geliştirmemiz. (Bu konu hakkında daha kapsamlı bilgi almak için son istemci yazımızın "Affinity Sorunları" bölümünü inceleyebilirsiniz.)

Şu anki planımız, en azından önümüzdeki birkaç ay boyunca bu ayrı parçaları bir araya getirme çalışmalarımızı sürdürmek. Çünkü eklentiler ve ember uygulamalarının sayısının azaltılmasının uzun vadede önemli faydalar sağlayacağını düşünüyoruz. Kod ortamını genel anlamda temizlediğimizde hataları, bellek sızıntılarını ve çökmeleri gidermemiz kolaylaşacak.

Hatalar ve çökmeler demişken, gelin son dönemde oyuna getirdiğimiz bazı düzeltmelerden bahsedelim.

SON DÖNEMDE GİDERİLEN HATALAR

İstemci Ekibi, son birkaç aylık dönemde tonla hatayla ilgilenme şansı buldu. 10.13 Yaması'ndan itibaren, LoL Yama Notları paylaşımlarımızda giderilen istemci hatalarına yönelik ayrı bir bölüm göreceksiniz.

Ekibimizin yılın başından bu yana giderdiği bazı istemci hatalarını yamalara göre sıralanmış şekilde paylaşmak gerekirse:

  • 10.1 - İstemcinin konumu, artık tamamlanan karşılaşmaların ardından değişmiyor.
  • 10.1 - Bazı durumlarda "Oyna" düğmesinin yanındaki LoL logosunun kaybolmasına sebep olan hata giderildi.
  • 10.1 - [MAC] İnternet bağlantısının bir dakikadan uzun bir süreliğine kesilip geri gelmesi halinde bazen istemcinin çökmesine neden olan hata giderildi.
  • 10.1 - Profil arka planı değişiklikleri artık diğer oyuncular tarafından doğru şekilde görüntülenebiliyor.
  • 10.3 - Bağlantılara orta fare düğmesiyle tıklamak artık istemciyi bozmuyor.
  • 10.3 - Mağaza sembolü, Ganimetler bölümünde bir Hextech Sandığı kullanıldıktan sonra seçildiğinde doğru şekilde aydınlanıyor.
  • 10.3 - Koleksiyonda sıralama yapılırken, sıralama filtreleri değiştirildiğinde otomatik olarak ters alfabetik özelliği seçilmiyor.
  • 10.3 - Koleksiyon bölümündeki "Geçilen Dönüm Noktaları" sıralama özelliği artık doğru şekilde çalışıyor.
  • 10.4 - Şampiyon Seçimi ekranında belli eylemlerin (birini arkadaşlıktan çıkarmak, arkadaşlıktan çıkarılmak, engellenmek) gerçekleştirilmesi halinde sosyal panelinin ve sohbet penceresinin bozulmasına neden olan hata giderildi.
  • 10.4 - Koleksiyon bölümünde şampiyonları farklı yazımlarla aratmak yeniden mümkün.
  • 10.4 - Koleksiyon bölümünde yapılan aramalar artık küçük-büyük harfe duyarlı değil.
  • 10.4 - Koleksiyon bölümünde şampiyonları alfabetik olarak sıralamak artık doğru işliyor.
  • 10.4 - Oyuncunun özel teklifleri incelerken oyuna girmesi halinde, "Yeniden Oyna" düğmesine basmanın siyah ekranla sonuçlanması hatası giderildi.
  • 10.5 - Koleksiyon bölümündeki şampiyonlar sayfasının alt kısmındaki gereksiz kaydırma çubuğu kaldırıldı.
  • 10.7 - Özel lobilerde "Arkadaşlık İsteği Gönder" düğmesinin çalışmaması sorunu giderildi.
  • 10.7 - Clash Merkezi'nde yakında gerçekleşecek turnuvalar incelenirken "Programı Görüntüle" bilgi ekranı artık bulanık görünmüyor.
  • 10.8 - Kaydedilmemiş değişiklikler varken İfadeler sekmesinden çıkıldığında, kaydetme hatırlatıcısı artık doğru şekilde gösteriliyor.
  • 10.8 - Oyun Sonu Ekranı'ndan çıkmak artık oyuncuyu Profil sayfasına götürmüyor.
  • 10.8 - Sihirdar simgeleri, istemciye giriş yapıldığı sırada doğru şekilde gösteriliyor.
  • 10.9 - Mavi Minyon Izbandut sihirdar simgesinin seçilememesine sebep olan bir sorun giderildi.
  • 10.9 - LoL bakım nedeniyle devre dışı kaldığında oyunculara yanlış bir hata mesajı gösterilmiyor.
  • 10.9 - Engellenen oyuncuların adlarının, engellenenler listesinde görünmemesi sorunu giderildi.
  • 10.9 - Ember'ın eski bir sürümünün yol açtığı bellek sızıntısı sorunlarına yönelik çeşitli düzenlemeler yapıldı.
  • 10.10 - Oyuna giriş yapıldığında rün sayfalarının kayıp veya silinmiş şekilde görünmesine yol açan hata giderildi.
  • 10.10 - "Oyna" düğmesine tıklandığında artık rün sayfaları otomatik olarak kapanıyor.
  • 10.10 - Rün sayfalarını yeniden düzenlemek artık kopya sayfalar veya çökmelerle sonuçlanmıyor.
  • 10.10 - Bazı oyuncuların rün sayfalarını düzenlemesini engelleyen hata giderildi.
  • 10.11 - "Tasarruf modunu aç" ve "Oyun sırasında istemciyi kapat" seçenekleri artık ayarlar penceresi kapatıldığında doğru şekilde kaydediliyor.
  • 10.11 - Koleksiyon bölümündeki "kostüm nadirliği" düğmesinin bazen kısmen boş hale gelmesi hatası giderildi.
  • 10.11 - Bazı durumlarda oyuncuların İzleyici Modu'na giriş yapmasına engel olan sorun giderildi.
  • 10.12 - Şampiyon Seçimi ekranındayken rün sayfası işlevlerini etkileyen bazı sorunlar giderildi.

Şimdilik bizden bu kadar! Eğer bir hatayla karşılaştıysanız bu form aracılığıyla onu bize ulaştırabilirsiniz. Ayrıca istemcinin sağ alt köşesindeki "hata" düğmesine tıklayarak bize istediğiniz zaman geribildirimde bulunmanız mümkün.

SONRAKİ ADIMLARIMIZ

İstemci üstünde çalıştığımız esnada kendimize sürekli şu temel soruyu soruyoruz: LoL İstemcisi, oyunculara layık olabiliyor mu?

Bunun cevabıysa tabii ki öyle olamadığı yönünde. En azından şu an için.

Giderilmesi gereken hatalar, engellenmesi gereken çökmeler ve ortadan kaldırılması gereken derin mimari problemleri hâlâ mevcut. Kısacası bu yılın başlarında giriştiğimiz çalışmalar bu sorunun cevabı kocaman bir "evet" olana dek sürecek.

Böyle bir noktaya gelmemizin epey zaman alacağı kesin ve kaydettiğimiz ilerlemeleri sizinle paylaşmayı sürdüreceğiz. Önümüzdeki birkaç yama boyunca eklenti ve ember uygulamalarını bir araya toplamaya ve gördüğümüz hataların başlarını bir bir ezmeye devam edeceğiz. Bir sonraki güncellememizi paylaştığımızda, çalışmalarımızda yeni bir döneme girmiş olmayı umuyoruz. Bu noktada, özellikle Şampiyon Seçimi bölümünün hassasiyetine odaklanacağız.

Her zamanki gibi, oynadığınız için teşekkürler. Birkaç ay içinde yeni bir istemci yazısıyla karşınızda olacağız.



  • Seçim panoya kopyalandı