Pada 13 Juni 2022, Riot mengumumkan kemitraan baru dengan Microsoft untuk menghadirkan game-game terbesar kami ke Xbox Game Pass. Kemitraan ini menyatukan dua perusahaan game terbesar di dunia yang sama-sama fokus pada game kompetitif yang mengutamakan pemain. Enam bulan kemudian, kami memenuhi komitmen monumental ini dan berhasil meluncurkan game-game terbesar kami di Game Pass.

Sekarang kami ingin melihat pekerjaan di balik layar selama berbulan-bulan tersebut dan membahas tentang tim yang mungkin belum pernah kamu dengar sebelumnya, Player Platform.

Apa itu Player Platform?

Player Platform menjalin hubungan antara game-game Riot dan para pemain untuk membangun ekosistem dan komunitas multi-game. Tim ini menciptakan pengalaman pemain yang terhubung, menyatukan pemain dan konten di seluruh game kami. Dengan kata lain, Player Platform bekerja dan menghadirkan hampir semua hal tentang game Riot yang kamu mainkan yang tidak secara langsung berhubungan dengan gameplay. Ini termasuk kemampuan game-agnostik untuk akun, entri game, sosial, pembelian, dan banyak lagi yang dihadirkan melalui portal, integrasi SDK, dan direct API. 

Karena Player Platform bertanggung jawab atas segala sesuatu terkait pengalaman bermain game kamu, sebagian besar pekerjaan Xbox Game Pass perlu dibangun oleh Player Platform. Hal ini membutuhkan semangat kolaboratif, pola pikir yang terbuka, dan banyak orang yang bertekad kuat dan bekerja keras untuk memenuhi permintaan ini sambil terus mendukung game-game Riot yang sudah ada dan yang akan datang.

Memulai … Dengan Cepat!

Karena Riot Games adalah kemitraan pertama dengan Xbox Game Pass yang menawarkan game gratis untuk dimainkan di PC dan mobile, ada banyak hal yang tidak diketahui. Selain itu, kami juga ingin meningkatkan pengalaman pemain dengan memberikan hadiah dalam game kepada semua yang menautkan akun mereka. Ketika melihat proyek berskala besar seperti ini, kami mencoba menyederhanakannya menjadi beberapa aliran fitur yang terpisah untuk memaksimalkan kepemilikan dan fokus, serta mengurangi rapat tanpa tujuan yang selaras.

Untuk mengatasi semua ini, manajemen program bekerja sama dengan Microsoft dalam merencanakan hasil utama. Peran penting ini memastikan orang yang tepat berada di garda depan proyek pada waktu yang tepat. Tim Program Management di Player Platform mengatur seremoni dan ritual di seluruh Player Platform dan Riot dengan tim game, publishing, player support, dan pemangku kepentingan lainnya. Mereka menyusun strategi dan mengukur masalah yang kompleks di berbagai tim game dan ratusan orang di dalam Player Platform.

Mendesain untuk Game Pass

Sebelum membangun sistem baru atau memperbaiki sistem yang sudah ada, harus ada pemahaman bersama tentang masalah dan seperti apa kesuksesan itu bagi para pemain. Desain Pengalaman Pengguna (UX) dalam Player Platform sangat penting untuk menciptakan pengalaman pemain yang positif dan memainkan peran penting dalam kemitraan Xbox Game Pass. Meskipun desain sering kali dikaitkan terlebih dahulu dengan antarmuka akhir yang dipoles, desain memainkan peran yang lebih penting dalam merencanakan interaksi pemain dengan produk dan sistem yang kompleks serta membuat interaksi itu terasa lancar. Kamu mungkin penasaran, memangnya seberapa sulit sih, membuat pemain bisa menautkan akun Xbox Game Pass mereka? Ternyata, ini cukup rumit!

Di awal kemitraan antara Riot dan Microsoft, pimpinan UX terlibat dengan para pemimpin untuk mendorong pembuatan skenario pemain yang "minimum lovable" (sistem yang disukai pengguna sejak awal), lengkap dengan informasi di berbagai disiplin ilmu dan departemen tentang waktu, mitra, dan sumber daya yang diperlukan untuk membuat skenario ini menjadi nyata. Ada fokus khusus pada risiko terbesar terhadap pengalaman pemain secara luas—karena makin cepat kami setuju bahwa target yang rumit ini sepadan dengan usaha yang dilakukan, makin cepat kami bisa menggabungkan keahlian untuk mewujudkan hal yang tampaknya mustahil menjadi mungkin. (Baca lebih lanjut tentang proses awal untuk menentukan skenario minimum lovable ini dalam artikel Medium Riot Games UX.)


"Kolaborasi antara dua perusahaan akan selalu menjadi tantangan besar. Terminologi yang berbeda, peran yang berbeda, asumsi yang berbeda. Kami harus menggali untuk mengetahui bagaimana cara kerja sistem autentikasi Microsoft dan pengalaman penginstalan Game Pass agar kami bisa memperhitungkan bagian dari pengalaman tersebut saat menentukan biaya pengembangan pengalaman end-to-end—dan menilai apa yang paling diperlukan untuk pengalaman pemain yang minimum lovable."

- Cheryl Platz
 

Riot Games Xbox Game Pass UX

 

Dengan alur awal yang sudah siap, tim UX mulai bekerja untuk mencari tahu detail tentang apa yang dibutuhkan oleh setiap titik kontak yang berhubungan dengan pemain untuk mendukung proses onboarding yang lancar bagi para pemain, siapa pun pemainnya dan dari mana pun mereka berasal. Tim memastikan bahwa pemain lama Riot yang menautkan keanggotaan Game Pass mereka secara langsung dari dalam game atau melalui Riot Client akan mendapatkan pengalaman onboarding yang sama mulusnya dengan pemain baru Riot yang datang dari aplikasi Game Pass untuk pertama kali.

Menyatukan platform dari dua perusahaan yang berbeda untuk pertama kalinya sering kali menghadirkan skenario baru yang belum pernah diselesaikan oleh tim Riot Client maupun Xbox untuk memberikan pengalaman pemain yang luar biasa. Sebagai contoh, model keamanan Microsoft yang berbeda memberikan kesempatan menarik bagi Player Platform untuk mengeksplorasi standardisasi lebih jauh yang ada di platform otorisasi dan identitas. Memiliki komunikasi terbuka dan kolaborasi aktif dengan Microsoft membantu mengarahkan tujuan dan memastikan kemajuan dibuat ke arah yang benar.
 

“Kami bukanlah integrasi pertama yang mereka lakukan, tetapi kurasa metode yang digunakan untuk kami cukup berbeda sehingga mereka bekerja sama dengan kami, bermitra dengan kami untuk mewujudkannya.  Ini adalah sebuah kolaborasi, kami mengembangkan kedua sisi basis kode sehingga kami dapat mendukung apa yang mereka butuhkan. Fungsionalitas out-of-the-box Microsoft tidak akan berfungsi dalam kasus ini dan tidak akan berhasil dari sudut pandang waktu.​”

- Luther Baker 
 

Dimulai dengan dokumentasi penemuan awal (terkadang disebut pra-penemuan/pre-discovery), para Designer perlu mengidentifikasi apa yang tengah terjadi dan mencari tahu persyaratan awal dengan bertanya pada diri sendiri, "Bagaimana cara kita mencapai hasil yang ingin kita capai?". Melalui berbagai metode seperti pemetaan skenario dan alur pengguna, Designer di Microsoft dan Player Platform bekerja sama untuk menciptakan banyak artefak yang dibagikan kepada para Engineer, Product, dan QA untuk memastikan alur tersebut sesuai dengan ekspektasi dan feedback loop yang konstan dibuat untuk menilai layanan dan kapabilitas apa saja yang tersedia untuk mendukung pengalaman terbaik.


“Dalam hal ini, lebih baik salah sebagai UX daripada benar karena orang kemungkinan besar akan mengungkap dan memberikan feedback jika mereka melihat sesuatu seperti, "Hei, itu tidak sesuai dengan pemahamanku." Lebih baik melakukan sesuatu yang salah dengan cepat sehingga kita bisa membahasnya daripada menghabiskan waktu untuk mencari tahu apa jawaban yang benar, lalu menciptakan sesuatu.​”

- Melody Seng
 

Artefak terus berkembang, bahkan setelah sign-off. Ditemukan edge case yang membutuhkan lebih banyak investigasi dan iterasi untuk menyelesaikannya. Bekerja secara langsung dengan para Engineer dan tim Tech adalah kunci untuk mencapai pemahaman bersama. 
 

Riot Games Xbox Game Pass User Flows


Menciptakan Layanan yang Nyaris Real-Time

Untuk memberikan pengalaman pengguna terbaik dengan Riot dan Xbox Game Pass, kami ingin para pemain bisa langsung membuka konten dalam game baru setelah menautkan akun Xbox Game Pass mereka yang aktif, yang membutuhkan banyak kreativitas. Tim Content Experience berkolaborasi dengan tim Accounts (dalam Player Platform) dan menyelaraskan Accounts yang mengirimkan pesan ke Riot Event Bus (pendekatan terbaru Riot untuk komunikasi berbasis pesan) setiap kali pemain menautkan atau menghapus tautan akun Xbox mereka. Setelah pesan diterima, layanan yang mendengarkan topik perantara pesan kemudian dapat bereaksi dan memproses kejadian tersebut. Karena pemain bisa menautkan akun Xbox mereka ke Riot tanpa mengaktifkan Game Pass, tim juga perlu meminta API Xbox untuk mendapatkan informasi ini menggunakan token yang disediakan dari penautan akun, dengan tim Accounts menyimpan token di layanan baru.  Namun, ini masih hanya menyelesaikan sebagian masalah, karena kami masih perlu memeriksa apakah pemain memiliki akun Xbox Game Pass yang aktif.

Tim Content Experiences (bagian dari Player Platform) membangun Gateway Subscription Service (GSS) yang bertindak sebagai sumber kebenaran tunggal, di dalam Riot, untuk status Game Pass pemain, untuk setiap caller. Ini berarti bahwa setiap kali layanan perlu memeriksa konten berbasis langganan, mereka dapat memanggil GSS dan mendapatkan jawaban dengan latensi rendah dan ketepatan tinggi tentang manfaat apa yang seharusnya dimiliki oleh pemain. GSS mendapatkan data dengan menggunakan peristiwa penautan akun dari Accounts dan menggunakan API Microsoft untuk memeriksa apakah pemain memiliki status Game Pass yang aktif. Ini mengekspos data tersebut ke layanan Riot lainnya melalui endpoint HTTP API sehingga tim lain dapat menggunakan informasi tersebut untuk berbagai kasus penggunaan, termasuk:

  • Content Access Platform: Menambahkan konten berbasis langganan tertentu ke inventaris pemain

  • Martech: Menampilkan iklan spesifik berdasarkan status Game Pass pemain saat ini

  • Player Support: Agen PS menggunakan informasi tersebut untuk memproses tiket pemain yang terkait dengan langganan Xbox

  • Web Experience (WebEx): Menampilkan status langganan pemain di halaman web manajemen akun pemain

Ketika seorang pemain menautkan akun Riot dengan akun Xbox Game Pass, GSS meminta API Microsoft Xbox untuk mendapatkan status Game Pass pemain menggunakan token dari penautan akun, menyimpan informasi tersebut dalam basis data persisten, dan secara rutin memperbarui serta membuatnya tersedia untuk query dengan menyediakan akses ke klien melalui API. Kelihatannya cukup sederhana, bukan? 

Pemain bisa mengaktifkan Game Pass mereka kapan saja setelah menautkan akun Riot + Xbox. Layanan ini hanya bisa secara berkala meminta API Xbox untuk memeriksa apakah pemain memiliki status aktif. Untuk memberikan pengalaman terbaik bagi pemain, kami ingin mereka bisa memperoleh akses ke konten langganan begitu mereka menautkan dan mengaktifkan Game Pass, sehingga penting untuk dapat melakukan query sesering mungkin. Namun, seberapa sering yang dirasa sudah cukup? Setiap menit sudah cukup, tetapi melakukan jutaan permintaan tiap menit di API hanya untuk mengecek sebuah status bukanlah praktik yang ideal, terutama jika 99% waktu tidak akan ada perubahan status di antara panggilan.

Tim berfokus pada kejadian-kejadian ketika mereka dapat bereaksi terhadap interaksi dengan pemain di sisi Riot, seperti ketika pemain meluncurkan Klien Game, yang merupakan waktu yang tepat untuk me-refresh status Game Pass. Namun, refresh adalah panggilan HTTP eksternal yang membutuhkan waktu ~1 detik dan klien GSS utama, Content Access Platform (CAP), membutuhkan respons yang dikembalikan dalam waktu kurang dari 50 milidetik karena ini adalah bagian dari jalur yang sangat penting untuk mengambil inventaris pemain. Tidak ada cara untuk memasukkan panggilan eksternal satu detik ke dalam 50 milidetik, jadi tim harus berpikir kreatif. Mereka memutuskan untuk mengembalikan nilai yang tersimpan saat ini yang diperoleh dari refresh sebelumnya atau awalnya setelah akun ditautkan dan memicu refresh asinkron di backend jika nilai yang tersimpan diperoleh lebih dari dua menit yang lalu. Jika layanan melihat perubahan dalam status Game Pass setelah refresh asinkron, layanan akan mengirimkan pesan melalui Riot Messaging Service ke klien game sehingga game dapat mengambil hak dari CAP untuk memastikan bahwa pemain akan mendapatkan konten langganan mereka tanpa perlu reload Klien secara manual.


“Tujuan utama kami adalah mengurangi latensi sebanyak mungkin karena kami memiliki persyaratan waktu yang cukup ketat. Pada dasarnya, CAP membutuhkan waktu 50ms untuk menghubungi kami dan mendapatkan jawaban apakah seorang pemain memiliki status Game Pass yang aktif atau tidak, yang menjadikan kami hampir seperti layanan real-time dalam hal ini. Jika kami gagal membalas dalam jangka waktu ini, CAP akan secara efektif mengakhiri panggilan dan mungkin mengakibatkan pemain tidak mendapatkan konten yang seharusnya mereka dapatkan.​”

- Vasily Katraev
 

Wild Rift tidak menggunakan sistem CAP untuk inventaris pemainnya, jadi mereka harus menanyakan langsung kepada layanan langganan apakah pemain tersebut memiliki langganan Game Pass yang aktif. Untuk memenuhi persyaratan latensi 50ms, Content Experience menggabungkan layanan mereka dengan layanan CAP dan Manajemen Akun di empat pusat data di seluruh dunia agar sedekat mungkin dengan para pemain kami. 

Peluncuran Senyap & Solusi Pembatasan Basis Data untuk Peluncuran

Beberapa hari sebelum peluncuran untuk pemain, tim menjalankan peluncuran senyap untuk menguji penautan antara akun Riot dan Xbox Pass. Mereka menangkap adanya beberapa bug kritis dan memperbaikinya sebelum hari peluncuran.

Salah satu perhatian utama adalah jumlah beban pengguna pada layanan Entitlement, yang bertanggung jawab untuk memberikan pemain akses ke item di semua game Riot. Entitlement menerima banyak permintaan baca – hingga 800.000 permintaan per menit di beberapa lokasi! Untuk membuka manfaat bagi pemain, setiap panggilan Entitlement sekarang memicu panggilan berikutnya ke sistem lain untuk memeriksa apakah pemain memiliki Game Pass, sebelum mengumpulkan dan mengembalikan manfaat Game Pass kepada pemain. Tekanan dan kompleksitas tambahan yang ditimbulkan oleh alur ini menyebabkan risiko tidak dapat diandalkan dan memperlambat respons dengan berbagai implikasi downstream.

Tim telah menguji coba banyak skenario, tetapi menyadari bahwa peluncuran senyap akan memberi mereka kepercayaan diri tertinggi dalam memastikan bahwa mereka memiliki sistem yang kuat. Peluncuran senyap memungkinkan mereka untuk "menghidupkan sistem" dengan aliran penuh, sambil mencegah konten Xbox Game Pass muncul di pemain. Mereka dapat melihat tekanan penuh yang akan dialami sistem dan perilaku yang tepat yang diharapkan sebelum peluncuran resmi. Melalui peluncuran senyap, mereka menemukan kesalahan konfigurasi kumpulan koneksi yang kemungkinan besar akan menyebabkan peluncuran yang gagal dan para pemain tidak dapat memperoleh manfaat.

Tim juga menemukan masalah dengan kapasitas tulis basis data kami - arsitektur* yang ada mencegah mereka menskalakannya untuk memperhitungkan beban pemain selama peluncuran kemitraan ini. Salah satu cara umum untuk mengelola beban pada layanan seperti ini adalah dengan meluncurkan akses secara bergelombang. Tim memutuskan untuk mencoba mengendalikan luapan pemain dengan memperlambat marketing. Hal ini akan menyebarkan gelombang pemain dalam jangka waktu yang lebih lama, dan tim dapat memastikan bahwa mereka memiliki kapasitas layanan yang cukup untuk setiap gelombang pemain baru seiring dengan makin banyaknya materi pemasaran yang ditayangkan. Dengan bekerja sama dengan Marketing, mereka mampu mempertahankannya di bawah 50% kapasitas tulis. 

*Sejak saat itu, kami telah mengubah stack teknis basis data kami untuk memiliki penskalaan yang lebih melandai pada perubahan akun.
 

Graph: Hourly Xbox account creations & links during launch.
Grafik: Pembuatan & tautan akun Xbox per jam selama peluncuran.


Mindset Ketimbang Skill Set 

Selain technical skill yang luas yang diperlukan untuk melakukan integrasi dengan Xbox Game Pass, soft skill memainkan peran penting. Bersikap rendah hati, selalu ingin tahu, dan memiliki kemampuan untuk berkolaborasi dan berkomunikasi secara terbuka secara internal dan eksternal dengan Microsoft adalah kuncinya. Meskipun hanya memakan waktu enam bulan, proyek ini melibatkan ratusan orang, menggeser jam kerja, dan mempelajari sistem baru. Penting untuk mengambil langkah mundur dan membiarkan orang-orang yang ahli di bidangnya mengambil alih dan mengarahkan dengan cara yang berbeda sehingga tidak ada satu orang atau tim yang mengarahkan segala sesuatunya secara tidak perlu. 


Cara orang-orang mendekati proyek ini, dan cara orang-orang bersatu di sekitar proyek ini benar-benar membuat perbedaan.

- Nate Portner
 

Kemitraan ini menyorot banyak nilai inti Riot Game. Sepanjang prosesnya, tim terus bertanya pada diri sendiri, "Bagaimana pengalaman ini akan memengaruhi para pemain?" Mereka menetapkan diri mereka pada standar tertinggi "Utamakan Kepuasan Pemain" dan seluruh Riot berkumpul untuk mengerjakan sesuatu yang berdampak pada semua game Riot.


“Setiap disiplin ilmu melakukan pekerjaan yang sangat baik dengan fokus pada bagaimana keputusan akan berdampak pada para pemain.  Kami tak mau memberikan ekspektasi palsu kepada pemain mana pun dan kapan pun.”

- Matt Hawkins

Penutup

Meskipun ada lebih banyak hal yang bisa dijejalkan ke dalam artikel teknis satu ini, semoga kamu bisa mengetahui lebih banyak tentang Player Platform serta layanan yang mereka buat dan sediakan untuk kemitraan Riot/Xbox Game Pass. Dibutuhkan dedikasi dan kerja keras dari ratusan orang untuk bersatu padu membangun dan terus membangun pengalaman pemain yang luar biasa.