Mikroyamalar ve Anivia

League of Legends Çağatay Paçin

Birkaç hafta önce Karnaval Anivia, festival havasını Vadi'ye getirmişti. Her şey güllük gülistanlık giderken buzul kuşla ilgili hata raporları gelmeye başladı. Riot QA ekipleri Anivia'nın ultisinin zayıflatma etkisinin gerektiği gibi Ayaz Yanığı hasarını iki katına çıkarmadığını doğruladı. Hata, biz bir çözüm bulana kadar şampiyonu devre dışı bırakacak büyüklükteydi ve bu çözümün canlı sunuculara gelmeden önce bütün bir gece boyunca QA testlerinden geçmesi gerekiyordu. Bu da Anivia'nın en iyi ihtimalle cuma öğleden sonraya kadar oynanamayacağı anlamına geliyordu; ancak oyunda çok büyük bir hata olmadığı sürece düzeltmeleri cuma günlerinde yapmıyoruz. Hafta sonunun en yoğun saatlerinde başka bir hataya sebep olma riski çok yüksek.

Bu yüzden parti daha en başında bitmek zorunda kalacak ve Anivia pazartesiye kadar Vadi'de süzülemeyecekti. Ancak böyle olmadı ve Anivia hafta sonu boyunca oynanabildi.

Buz Ankası'nı böyle kötü bir kaderden kurtarmakta bize yardımcı olan şey neydi? Buna cevap vermek için oyun sunucularının, istemcilerin, düzenlemelerin ve mikroyamaların göz kamaştıran dünyasına girmek zorundayız.

Teknik Olarak Bahsetmek Gerekirse,

Oyun verileri iki yerde tutulur: İstemci ve sunucu. İstemci verileri herkesin bilgisayarına iner ve bir değişiklik yapıldığında herkesin yama indirmesi gerekir. İstemcide Vadi'nin görünümü, şampiyon modelleri ve ses dosyaları gibi fazlasıyla görsel ve işitsel bilgi bulunur.

Oyun sunucusuysa şampiyon seçiminden sonra bağlandığın, 5v5 (ya da 3v3 veya 1v9) oyununu oynadığın küçük bir evren gibidir. Oyun sunucularında değişiklik yaptığımızda, oyunda kesinti veya herhangi bir dosya indirmesi söz konusu olmuyor. Sunucularda şampiyonların sayısal verileriyle birlikte yeteneklerinin nasıl işlediğini kontrol eden kodlar bulunuyor (ancak nasıl göründüklerine dair bir şey bulunmuyor).

Karnaval Anivia Açılış Görseli İçin İlk Fikirler

Uzun bir süre boyunca istemcide ya da sunucuda bir değişiklik yapmak için bütün yeni bilgileri yamalar ya da düzenlemelerle birlikte göndermemiz gerekiyordu. Düzenlemeler, geçmişte oyundaki sorunları (çok büyük denge problemleri, şampiyon hataları vb.) çözmek için kullanılırdı ve genellikle sunucu verilerini hedef alırdı.

Sorunlar ve bu sorunların çözümleri küçük şeyler olsa bile düzenleme yapmak gece boyunca QA testleri gerektiren riskli bir durum. Ayrıca sorunun küçük olması bir şeyi değiştirmiyor; çünkü düzenleme yapılması gerektiğinde sadece küçük bir veri parçasını değil, bütün verileri düzenlemek gerekiyor. Yazılım mimarı Brian “Riot Penrif” Bossé, “Küçük bir değişikliği getirmek için büyük ölçekli bir QA sürecini tamamlamak çok zahmetli ve bazı zamanlarda tahmin edildiğinden daha riskli olabilir,” diyor.

Eğer çok acil bir durum yoksa (Dereceli'nin çalışmaması ya da sadece Teemo'nun oynanabilmesi gibi) bütün bir gece denenmiş olsa bile cuma günleri düzenleme yapmıyoruz. LoL'ün mimarisinin bir kısmı uzun bir zaman önce, biz daha bu temellerin üzerine ne kadar içerik koyacağımızı bilmiyorken inşa edildi ve temellerin bazıları istediğimiz kadar güvenilir değil.

Bir keresinde istemci verilerini düzenledikten sonra ortaya çıkan hata herkesin çalıştırılabilir LoL dosyasını sildi. Yani hiç kimse League of Legends'ı açamıyordu. Donna “Riot Feithen” Mason, “Bir tuşa bastığımızda bu tuşun her defasında aynı şekilde çalışmasını bekleriz; ancak bazen işler böyle yürümez,” diyor.

LoL'ün eski temellerini güncellemek üzerinde hâlâ çalışıyoruz; ancak bu da düzenlemeleri bazen tahmin edilmesi zor hâle getiriyor. Değişiklik ne kadar küçük olursa olsun düzenleme yapmak tüm bilgileri tekrar göndermemizi zorunlu kıldığından, özellikle hafta sonundan önce yaptığımız düzenlemelere çok dikkatli yaklaşıyoruz.

Büyük sorunlara yol açan küçük şeyleri düzeltmenin başka bir yolu olduğunu biliyorduk.

 

Perde Arkasındaki Kahraman Mikroyamalar

Yaklaşık bir yıl önce mikroyama adı verilen yeni teknoloji her şeyi değiştirdi. Düzenlemelerin aksine mikroyamalar oyun verilerindeki belirli değişiklikleri hedef alabiliyor. Eğer oyun sunucusunu bir pano olarak düşünürsek; mikroyamalar bu panonun üstüne yapıştırılmış not kağıtları olurdu. Düzenlemelerse sadece bir harf hatasını düzeltmek için bütün panonun yenilenmesi demek. Mikroyamalar sayesinde eski oyun sunucusu varlığını sürdürüyor; ancak yeni bir oyun başlarken bu notları inceleyerek yalnızca üzerlerinde belirtilen değişiklikleri uyguluyor.

Bir mikroyamayı bütün sunuculara iki dakikadan az bir sürede gönderebiliyoruz.

Bu da mikroyamaları düzenlemelere göre hem daha az riskli hem de çok daha hızlı yapıyor. Öncelikle mikroyamalar halihazırda bulunan sunucu verileri üzerine getirildiğinden, yaptığımız değişiklikler çok daha sınırlı oluyor. Ayrıca mikroyamaları getirmek ve kaldırmak gerçekten çok kolay. Bir mikroyamayı bütün sunuculara iki dakikadan kısa bir sürede getirebiliriz ve aynı hızla kaldırabiliriz.

Başlarda mikroyamalar sadece sayısal verileri değiştirmek için kullanılıyordu. Basitçe anlatmak gerekirse hızlı dengeleme gerektiren bir durum olduştuğunda mikroyamaları kullanıyorduk. Şampiyon yeteneklerini kontrol eden yazılımları hedef almak hâlâ mümkün değildi; yani bir şeylerin devre dışı bırakılmasına neden olan hataları düzeltmek için uzun düzenlemeler yapmak elimizdeki tek çözümdü.

Bu şampiyon kurtaran teknoloji, Anivia'nın devre dışı kalmasına neden olacak hatadan yalnızca birkaç hafta önce tamamlanmıştı. Artık mikroyamalarla yeteneklerin yazılımları üzerinde belirli değişiklik yapabilecektik.

 

Anivia'nın Tekrar Doğuşu

Anivia'nın Karnaval kostümünün çıktığı gün, ultisinin bütün kostümlerinde hatalı olduğunu öğrendik. QA ekibimiz sorunun kaynağını belirlemek için çalışmalara başladı. 6.23 yamasındaki Anivia değişiklikleri üzerinde çalışan oyun tasarımcısı Matthew “PhRoXzOn” Leung-Harrison “Hatayı görür görmez neyin yanlış gittiğini anlamıştım,” diyor.

LoL'ün bütün şampiyonları, yeteneklerini kontrol eden kodları içeren bir mantık dosyasına sahip. Bu dosyada genellikle yeteneklerin nasıl göründüğü veya ne kadar hasar verdiğine dair bilgi bulunmaz. Dosya, yeteneklerin nasıl çalışması gerektiğini kontrol eder. Bu dosyayı bütün bilgileri birbirine bağlayan ve ekranınızda gördüğünüz şeylere dönüştüren bir anakart olarak düşünebilirsiniz.

Bir karışıklık yüzünden Anivia'nın ulti dosyasının hatalı bir sürümünü canlı sunuculara göndermiştik. Bunun sonucunda ultisinde sorun yokmuş gibi gözükmesine rağmen aslında gerektiği şekilde çalışmamaya başlamıştı. Buzul Fırtınası'nın, Buz Yanığı hasarını ikiye katlayacak iki saniyelik bir zayıflatma etkisi uygulaması gerekirken, zayıflatma etkisi sadece 0,5 saniye sürüyordu. QA ekibi lideri Brian “Aotus” Brause, “Gerçekten güzel görünmesine rağmen hiç hasar vermiyordu,” diyor.

Sorunu belirledikten sonra yazılım dosyasını güncelledik ve QA testleri yapmaya başladık. Değişiklik yeni hatayı düzeltmişti; ancak daha kapsamlı bir hata temizleme işlemi 6.23 yamasından gelen eski bir hatayı ortaya çıkardı. Neyse ki yalnızca belirli bir değişikliğin sonuçlarını kontrol ettiğimiz için, mikroyamaların QA işlemleri çok hızlı. İkinci bir değişikliğin ardından çalışmaya başlamıştı. Her iki hata da düzeltilmiş ve mikroyamalar üzerinden oyunculara gönderilmeye hazır hâle getirilmişti.

Bırakın bütün hafta sonu boyunca devre dışı bırakılmayı, Anivia dört saat içinde Vadi'ye geri dönüp festivali tekrar başlatmıştı bile.

 

Mikroyamalar Her Şeyi Düzeltir Mi?

Geçmişte mikroyamalar dengeleme sorunlarını çözmek için kullanılırdı. İlk defa mikroyama kullanarak bir yazılım dosyasını güncelleyip, şampiyonu devre dışı bırakılmaktan kurtardık. Tabii ki mikroyamalar her konuda yardımcı olmuyor. Mikroyama kullanarak Anivia'ya yeni bir kanat ya da fazladan görsel efekt eklediğimizi göremezsiniz; ancak mikroyamalar fazlasıyla hızlı ve güvenli şekilde bazı sorunları çözebiliyor.

Şu anda mikroyama değişikliklerini oyunculara nasıl daha iyi iletebileceğimiz konusu üzerinde çalışıyoruz. Mikroyamalarla bir değişiklik yapıldığında yama notunun en üstüne ekleniyor; ancak kim bir daha yama notlarını açıp tekrar okur ki? Güçlendirme ya da dengeleme gibi büyük değişiklikleri istemcinin içinde yayınlamayı düşündük ama onun da gerçek görevi, bir şey hatalı ya da dengesiz olduğunda oyunculara bildirmek. Güncellenen İstemci'nin mikroyama değişikliklerini size aktarmak konusunda daha iyi bir yol sunacağını umuyoruz.

Bu arada, Riot Penrif şakayla karışık “Bozulduğunu sandığınız bir şey beklenmedik şekilde çalışıyorsa; mikroyamaların günü kurtardığını düşünebilirsiniz,” diyor.

Önceki Haber

[ 21 Mart - 28 Mart ] Ücretsiz Şampiyon Rotasyonu

Sonraki Haber

Şampiyon ve Kostüm İndirimi 24.11 - 27.11