13 Haziran 2022 tarihinde Riot, Microsoft ile yeni bir işbirliği yaparak en büyük oyunlarının Xbox Game Pass'e taşınacağını duyurdu. Bu işbirliğiyle dünyanın en büyük oyun şirketlerinden ikisi, oyuncu odaklı rekabetçi oyunlara karşı duydukları sevgi doğrultusunda birlikte çalışma imkânı buldu. Altı ay sonra bu tarihi birlikteliği hayata geçirdik ve en büyük oyunlarımızı Game Pass'te yayınladık.
Gelin, aylar süren bu sürecin perde arkasına bakalım ve daha önce duymamış olabileceğiniz Oyuncu Platformu Ekibi'nden bahsedelim.
Oyuncu Platformu Ekibi Nedir?
Oyuncu Platformu Ekibi, Riot oyunları ve oyuncular arasında çok oyunlu bir ekosistem ve topluluk kuran bir köprü görevi görür. Ekip ortak bir oyuncu deneyimi oluşturarak oyuncuları ve içerikleri tüm oyunlarımızda bir araya getirir. Yani diğer bir deyişle Riot oyunlarının doğrudan oynanış ile alakalı olmayan neredeyse her alanında Oyuncu Platformu Ekibi görev alıyor. Portallar, SDK entegrasyonları ve direkt API'lar aracılığıyla sağlanan ve tüm oyunlarımızda geçerli olan hesaplar, oyun girişi, sosyal, alışveriş gibi sistemler ve çok daha fazlası buna dahil.
Oyun deneyimine dair her şeyden Oyuncu Platformu Ekibi sorumlu olduğundan Xbox Game Pass projesinin büyük bir kısmıyla da onlar ilgilendi. Bu süreçte hem Riot'un mevcut ve yapım aşamasındaki oyunlarını desteklemeye devam etmek hem de bu projeyi hayata geçirmek için işbirlikçi bir ruha, açık görüşlülüğe ve çok sayıda kararlı ve çalışkan insana ihtiyacımız vardı.
Çabucak İşe Koyulmak!
Riot Games işbirliğiyle ilk kez Xbox Game Pass üzerinden PC ve mobilde ücretsiz oyunlar sunulacağından ortada birçok soru işareti vardı. Buna ek olarak hesaplarını bağlayanlara oyun içi ödüller vererek oyuncu deneyimini iyileştirmek istedik. Bu genişlikte bir projede odaklı çalışabilmek ve amaçları kesişmeyen toplantıların sayısını azaltmak için her şeyi birbirinden bağımsız unsurlara indirgemeye çalışırız.
Tüm bunların altından kalkabilmek için Program Yönetimi Ekibi Microsoft'la birlikte plan yapmaya koyuldu. Bu kritik rol, gereken kişilerin doğru zamanda projenin başına geçmesini garantiledi. Oyuncu Platformu departmanının Program Yönetimi Ekibi; Oyuncu Platformu Ekibi ve Riot'un tüm oyun ekipleri, yayın sorumluları, oyuncu destek ve diğer önemli gruplar arasında toplantı ve etkinlikler düzenledi. Karmaşık problemleri birçok oyun ekibiyle ve kendi içlerindeki yüzlerce çalışanla birlikte ele aldılar ve buna göre yol haritalarını çizdiler.
Game Pass İçin Tasarımlar
Genel olarak yeni sistemler tasarlamadan ve var olanları yıkmadan önce ortadaki problemin ve oyuncuların gözündeki başarı tanımının ne olduğuna dair ortak bir görüşte buluşmak gerekir. Oyuncu Platformu içerisindeki kullanıcı deneyiminin tasarımından sorumlu ekip, oyunculara olumlu deneyimler yaşatmakla görevli ve Xbox Game Pass işbirliğinde de büyük bir rol oynadı. Tasarım denildiğinde akla ilk gelen şey akıcı arayüzler olsa da aslında oyuncuların karmaşık ürün ve sistemlerle etkileşimini planlayıp her şeyin tıkır tıkır işlemesini sağlamakta oynadıkları rol çok daha önemli. "Oyuncuların Xbox Game Pass hesaplarını bağlamasına izin vermek ne kadar zor olabilir ki?" diye düşünebilirsiniz. Hemen cevaplayalım: Epey zormuş!
Riot ve Microsoft arasındaki ortaklığın ilk aşamalarında Kullanıcı Deneyimi Ekibi bu senaryoları gerçeğe dönüştürmek için ne kadar zaman, iş ortağı ve kaynağın gerekeceği üzerine birden çok alan ve departmandan alınan bilgilerle "en az sevilen" oyuncu senaryolarının oluşturulması için çalıştı. Özellikle de kusursuz bir oyuncu deneyimine engel olan en büyük risklere yoğunlaşıldı. Çünkü paylaştığımız zor hedefin yaptığımız çalışmaya değeceğine ne kadar çabuk karar verirsek imkânsızı başarmak için uzmanlık alanlarımızı da o kadar hızlı birleştirebilirdik. (Bu en az sevilen senaryoları belirleyen süreçle alakalı daha fazla bilgi için İngilizce Riot Games Kullanıcı Deneyimi makalesine göz atın.)
“İki şirket arasında işbirliği her zaman çok zorlu bir süreçtir. Farklı terimler, farklı pozisyonlar, farklı beklentiler devreye girer. Microsoft'un kimlik doğrulama sistemlerinin ve Game Pass kurulum deneyimlerinin nasıl çalıştığını anlamak için ciddi araştırmalar yapmamız gerekti. Bu sayede deneyimin bu kısmını, uçtan uca deneyim gelişiminin maliyetini belirlerken ve en az sevilen oyuncu deneyimi için tam olarak neye ihtiyaç duyulduğunu değerlendirirken hesaba katabilecektik.“
- Cheryl Platz

İlk adımlar atıldıktan sonra Kullanıcı Deneyimi Ekibi, oyuncuların kim ve nerede oldukları fark etmeksizin pürüzsüz bir başlangıç deneyimi yaşamalarını sağlamak adına göz önünde olan unsurların nelere ihtiyacı olduğunu belirlemek için çalıştı. Ekip, Game Pass üyeliğini doğrudan oyun içinden veya Riot İstemcisi üzerinden bağlayan eski bir Riot oyuncusunun Game Pass uygulamasından ilk kez gelen yeni bir Riot oyuncusu kadar sorunsuz bir başlangıç deneyimi yaşayacağından emin oldu.
Birbirinden farklı iki şirketin platformlarını bir araya getirmek, Riot İstemci Ekibi'nin ve Xbox'ın daha önce karşılaşmadığı yeni senaryolar ortaya çıkardı. Ancak mükemmel bir oyuncu deneyimi için bunları çözmek gerekiyordu. Örneğin Microsoft'un farklı güvenlik modeli, Oyuncu Platformu Ekibi'ne yetki ve kimlik platformlarının standartlaştırılması için ilginç bir fırsat sundu. Microsoft ile sürekli iletişim ve işbirliği halinde olunması, sürecin doğru şekilde ilerlediğinden ve aynı hedefler doğrultusunda çalışıldığından emin olmamıza yardımcı oldu.
“İlk entegrasyonları değil ancak bence bizim için uygulanan yöntem çok farklı olduğu için bizimle çalışmaları, ortaklık yapmaları gerekti. Birlikte hareket ettik, gereksinimleri karşılayabilmek için iki tarafın da kod tabanlarını değiştirdik. Aksi halde Microsoft'un kendine has işlevselliği bu durumda işe yaramayacaktı ve platformu yetiştiremeyecektik.“
- Luther Baker
Tasarımcıların ön keşif belgelerinden başlayarak olan biteni tanımlamaları ve kendilerine "İstediğimiz sonuca ulaşmak için nasıl bir yol izlemeliyiz?" sorusunu sorarak ön gereksinimleri belirlemeleri gerekiyordu. Microsoft ve Oyuncu Platformu Ekibi'nin tasarımcıları, senaryo eşleme ve kullanıcı akışları gibi birçok yöntem kullanıp birlikte çalışarak Mühendis, Ürün ve Kalite Kontrol Ekipleriyle paylaşılan çok sayıda parça ürettiler. Böylece sürecin beklentileri karşıladığından emin olundu ve mümkün olan en iyi deneyim için hangi hizmet ve imkânların uygun olduğunun değerlendirilebilmesi amacıyla kesintisiz bir geribildirim ağı oluşturuldu.
“Kullanıcı Deneyimi Ekibi olarak böyle bir durumda hata yapmak daha iyi çünkü insanlar kafalarına yatmayan bir şey gördüklerinde genellikle tepki gösterir ve geribildirim verirler. Hatayı baştan yapmak daha iyi. Böylece doğruyu bulmak ve daha sonra bir şeyler üretmek için vakit harcamak yerine hemen hatanın üzerine konuşabiliriz."
- Melody Seng
Her şey tamamlandıktan sonra bile parçalar sürekli değişim halindeydi. Çözülmesi için daha fazla araştırma ve deneme gerektiren istisnai durumlar ortaya çıkmıştı. Ortak bir paydada buluşmanın sırrı doğrudan mühendisler ve teknik ekiplerle birlikte çalışmaktı.

Neredeyse Gerçek Zamanlı Hizmetler Oluşturmak
Riot ve Xbox Game Pass ile en iyi oyuncu deneyimini sunabilmek için oyuncuların Xbox Game Pass hesaplarını bağlar bağlamaz yeni oyun içi içeriklere erişebilmelerini istedik. Bu da ustalık isteyen bir işti. İçerik Deneyimi Ekibi ile Oyuncu Platformu departmanındaki Hesaplar Ekibi birlikte çalışarak ne zaman bir kullanıcı Xbox hesabını bağlasa veya bağlantısını kesse en yeni mesaj tabanlı Riot iletişim kanalı olan Riot Olay Veriyolu'na Hesaplar Ekibi tarafından mesaj gönderilecek bir sistem kurdu. Mesaj ulaştığında ileti aracısının konusunu takip eden hizmet buna göre tepki verebilecek ve eylemi işleyebilecekti. Bir oyuncu Game Pass'i aktif olmadan da Xbox hesabını Riot'la bağlayabileceğinden ekibin ayrıca hesap bağlayarak edinilen belirteç ile Xbox API sorgusu gerçekleştirip bu bilgiyi alması gerekiyordu. O sırada Hesaplar Ekibi bu belirteci yeni bir hizmette depoluyordu. Yine de bu, sorunun sadece bir kısmını çözüyordu. Hâlâ oyuncuların aktif Xbox Game Pass hesapları olup olmadığını kontrol etmemiz gerekiyordu.
Oyuncu Platformu departmanının bir parçası olan İçerik Deneyimleri Ekibi, Riot içerisinde her kullanıcının Game Pass durumları için yegâne bilgi kaynağı olan Ağ Geçidi Abonelik Hizmeti'ni oluşturdu. Bu, bir hizmetin aboneliğe dayalı herhangi bir içeriği kontrol etmesi gerektiğinde Ağ Geçidi Abonelik Hizmeti'ne yönelebileceği ve oyuncunun sahip olacağı ayrıcalıklara dair düşük gecikmeli, net bir yanıt alınabileceği anlamına geliyordu. Ağ Geçidi Abonelik Hizmeti, Hesaplar Ekibi üzerinden hesap birleştirme süreçlerini inceleyerek ve oyuncuların Game Pass ayrıcalıklarının aktif olup olmadığını Microsoft API aracılığıyla kontrol ederek veri topluyor. Bu verileri bir HTTP API uç noktası ile diğer Riot hizmetlerine sunuyor ve diğer ekipler bu bilgileri farklı durumlarda kullanabiliyor. Bunlara bazı örnekler şu şekilde:
- İçerik Erişim Platformu: Oyuncunun çantasına abonelikle açılan belli içerikler ekler.
- Martech: Oyuncunun güncel Game Pass durumuna bağlı olarak belli reklamlar gösterir.
- Oyuncu Destek: OD temsilcileri, Xbox abonelikleri ile alakalı oyuncu biletlerini işlemek için bu bilgileri kullanır.
- Web Deneyimi (WebEx): Oyuncuların abonelik durumlarını hesap yönetimi sayfalarında gösterir.
Bir oyuncu Riot Hesabı ile Xbox Game Pass hesabını bağladığında Ağ Geçidi Abonelik Hizmeti, hesap bağlama işlemindeki belirteci kullanarak oyuncunun Game Pass durumunu öğrenmek için Microsoft Xbox API'a bir ileti gönderiyordu. Aldığı bilgiyi kalıcı bir veritabanında depoluyor, düzenli aralıklarla güncelliyor ve API aracılığıyla istemciye erişim sağlayarak ileti gönderimine uygun hale getiriyordu. Böyle söyleyince basit geliyor, değil mi?
Bir oyuncu Riot ve Xbox hesaplarını bağladıktan sonra istediği zaman Game Pass'i aktifleştirebilirdi. Bu hizmet yalnızca oyuncunun ayrıcalıklarının aktif olup olmadığını kontrol etmek için düzenli olarak Xbox API'a ileti gönderebiliyordu. En iyi deneyimi sunmak için oyuncuların hesaplarını bağlayıp Game Pass'i aktifleştirdikleri anda abonelik içeriklerine erişebilmelerini istedik. Bu yüzden de sık aralıklarla ileti göndermek gerekiyordu. Ama bunun ne kadar sık olması gerekiyordu? Dakikada bir olsa çok iyi olurdu ancak bir API üzerine sadece durum kontrolü için her dakika milyonlarca istek göndermek çok mantıklı bir hareket değil, hele ki çağrıların %99'unun arasında durum değişikliği olmayacağını düşünürsek.
Ekip oyuncuların etkileşimlerine Riot tarafında tepki verebilecekleri, Game Pass durumunu yenilemenin mantıklı olacağı zamanlara odaklandı. Mesela bir oyuncunun oyun istemcisini açması bunlardan biriydi. Fakat yenileme yaklaşık 1 saniye süren harici bir HTTP çağrısıydı ve ana Ağ Geçidi Abonelik Hizmeti istemcisi olan İçerik Erişim Platformu, oyuncunun çantasına erişebilmek için zamanla yarışması gerektiğinden 50 milisaniyeden kısa süreli yanıtlara ihtiyaç duyuyordu. Bir saniyelik harici bir çağrıyı 50 milisaniyeye düşürmek mümkün değildi. Bu yüzden ekibin yeni çözüm yolları araması gerekti. Önceki yenilemeden veya hesap bağlantısı sonrasında elde edilen, güncel olarak depolanan değere dönmeye ve eğer depolanan değer iki dakikadan daha uzun bir süre önce elde edilmişse arka planda eş zamansız bir yenileme başlatmaya karar verdiler. Hizmet eş zamansız yenileme sonrasında Game Pass durumunda bir değişim gördüğü takdirde oyun istemcisine Riot Mesaj Hizmeti üzerinden bir mesaj göndererek oyunun İçerik Erişim Platformu yetkilendirmelerine erişebilmesine ve bu sayede oyuncunun bizzat istemciyi yenilemeden abonelik içeriğine ulaşmasına olanak sağlıyordu.
"Sıkı bir zaman kısıtlamamız olduğundan asıl amacımız gecikmeyi olabildiğince aza indirmekti. İçerik Erişim Platformu çağrısının bize ulaşması ve oyuncunun aktif bir Game Pass'i olup olmadığının yanıtını alması 50ms. sürüyor. Bu hesaba göre de neredeyse gerçek zamanlı bir hizmet sunmuş oluyoruz. Sorguyu bu zaman diliminde yanıtlayamazsak İçerik Erişim Platformu, çağrıyı zaman aşımına uğratıyor. Bu da oyuncunun alması gereken içeriği alamaması ile sonuçlanabiliyor."
- Vasily Katraev
Wild Rift, oyuncu çantası için İçerik Erişim Platformu sistemini kullanmıyor. Yani oyuncunun aktif bir Game Pass aboneliği olup olmadığını doğrudan abonelik hizmetine sorması gerekiyor. 50ms gecikme koşullarını karşılayabilmek için İçerik Deneyimleri Ekibi hizmetlerini dünyada oyunculara en yakın olabilecekleri dört adet veri merkezinde İçerik Erişim Platformu ve Hesap Yönetim hizmetleriyle birleştirdi.
Sınırlı Çıkış ve Veritabanı Sınırlamasına Geçici Çözüm
Asıl çıkıştan yalnızca birkaç gün önce ekip Riot Hesaplarını Xbox Game Pass'e bağlayarak bir sınırlı çıkış denemesi yaptı. Birden fazla kritik hatayla karşılaştılar ve çıkış gününden önce bu hataları giderdiler.
Oyunculara tüm Riot oyunlarındaki içeriklere erişme imkânı sağlayan yetkilendirme hizmetinin ne düzeyde kullanıcı yüküne maruz kalacağına dair ortada büyük endişeler vardı. Yetkilendirmeler çok fazla okuma talebi alıyor. Hatta bazı bölgelerde talep sayısı dakika başına 800.000'i bile bulabiliyor! Oyuncular için ayrıcalıkları etkinleştirmek adına her bir yetkilendirme çağrısı artık Game Pass ayrıcalıklarını oyuncuya geri sunmadan önce başka bir sisteme oyuncunun Game Pass aboneliği olup olmadığını kontrol etmesi için bir çağrı gönderiyordu. Bu işleyişin beraberinde getirdiği ekstra yük ve karmaşıklık, güvenilirlik riskleri doğurdu ve daha büyük sorunlara yol açabilecek yavaş tepkilere sebep oldu.
Ekip birçok senaryoyu yük testiyle denemiş olsa da sistemin sağlamlığını doğrulamanın en güvenilir yolunun sınırlı bir çıkış olduğunu fark etti. Sınırlı çıkış "sistemin şalterini kaldırarak" oyuncuların yalnızca Xbox Game Pass içeriklerini göremeyecekleri şekilde sistemi devreye soktu. Sistemin üzerindeki baskıyı tam anlamıyla görebildiler ve resmi çıkıştan önce sistemden tam olarak ne gibi davranışlara hazırlıklı olmaları gerektiğini öğrenmiş oldular. Sınırlı çıkış esnasında bağlantı havuzunda oyuncuların ayrıcalıklarını elde edemediği hatalı bir çıkışa sebep olabilecek bir yapılandırma sorunu olduğunu fark ettiler.
Ekip ayrıca veritabanının yazma kapasitesiyle ilgili bir soruna da rastladı. Mevcut yapı* ortaklığımızın çıkışı esnasında oluşabilecek oyuncu yüklenmesine karşı önlem olarak yazma kapasitesini arttırabilmelerine engel oluyordu. Böyle bir hizmette bir yüklenmeyle başa çıkmanın en yaygın yollarından biri hizmeti farklı aşama aşama erişime açmaktır. Ekip pazarlama sürecini birkaç aşamadan oluşacak şekilde yavaşlatarak yaşanan oyuncu akınını kontrol altına almaya karar verdi. Bu da oyuncu dalgasını daha uzun bir zamana yayacaktı ve ekip daha fazla pazarlama materyali çıkmadan önce her gelen yeni oyuncu dalgası için yeterli miktarda hizmet kapasitesi sunulduğundan emin olabileceklerdi. Pazarlama Ekibi'yle yakından çalışarak %50 yazma kapasitesinin altında tutmayı başarabildiler.
*O zamandan bu yana veritabanımızın teknik yığınını hesap değişikliklerinde daha fazla yatay arttırım kaldırabilecek şekilde düzenledik.

Zihniyet > Yetenek
Xbox Game Pass ile entegrasyon için gereken tonla teknik becerinin yanında sosyal becerilerin rolü de çok büyüktü. Kibirli olmamak, sorular sormak ve hem kendi içimizde hem de Microsoft ile işbirliği ve açık iletişim halinde olmak kritik faktörlerdi. Bu proje yalnızca altı ay sürmüş olsa da bünyesinde yüzlerce insanı, değişken çalışma saatlerini ve öğrenilecek yeni sistemleri barındırıyordu. Geri adım atıp alanında uzman olan kişilerin işe el atmasına ve farklı yollar denemesine izin vermek önemliydi. Bu sayede gerekmediği halde bir şeyleri yöneten tek bir kişi ya da ekip olmuyordu.
"İnsanların bu projeye olan yaklaşımları ve ellerinden geleni artlarına koymamaları bu projeyi özel kılan şeydi."
- Nate Portner
Bu işbirliğinde Riot Games'in temel değerleri ön plandaydı. Tüm süreç boyunca ekip üyeleri kendilerine "Bu deneyim oyuncularımızı nasıl etkiler?" diye sormaktan hiç vazgeçmediler. "Oyuncu deneyimi her şeyden önce gelir," düşüncesini kendileri için olabilecek en yüksek çıtaya çıkardılar ve tüm Riot ekipleri, Riot'un bütün oyunlarını etkileyecek bir şey için bir araya geldi.
"Her disiplin, verilen kararların oyuncuları nasıl etkileyeceğine odaklanarak harika bir iş çıkardı. Hiçbir oyuncuya, hiçbir zaman yanlış beklentiler sunmak istemedik."
- Matt Hawkins
Uzun Lafın Kısası
Yapılan işler bu teknik makaleye sığmayacak kadar fazla olsa da umarız Oyuncu Platformu Ekibi ve onun Riot/Xbox Game Pass işbirliği için geliştirdiği ve sunduğu hizmetler hakkında daha fazla bilgi sahibi olmuşsunuzdur. Bu süreç yüzlerce insanın el ele vermesi ve inanılmaz oyuncu deneyimleri oluşturmak için canla başla çalışmasıyla hayata geçti.