Shipping Xbox Game Pass
در 13 ژوئن 2022، Riot Games اعلام کرد که با مایکروسافت برای آوردن بزرگترین بازیهای خود به Xbox Game Pass همکاری میکند. این همکاری دو شرکت بزرگ بازیسازی جهان را گرد هم آورد تا مجموعهای از بازیهای رقابتی مورد علاقه بازیکنان را ارائه دهند. شش ماه بعد، آنها به این تعهد بزرگ عمل کردند و موفق شدند عنوانهای بزرگ خود را در Game Pass منتشر کنند.
اکنون میخواهیم نگاهی بیندازیم به پشت صحنه این تلاشها در طول این ماهها و درباره تیمی صحبت کنیم که ممکن است قبلاً چیزی درباره آن نشنیده باشید: Player Platform.
Player Platform چیست؟
Player Platform پلی است بین بازیهای Riot Games و بازیکنان، که یک اکوسیستم و جامعه چند بازی را ایجاد میکند. این تیم تجربهای یکپارچه برای بازیکنان ایجاد میکند و آنها را با محتوای مختلف بازیها مرتبط میسازد. به عبارت دیگر، Player Platform مسئول ارائه و تحقق تقریباً همه چیز در مورد بازیهای Riot Games است که به گیمپلی مربوط نمیشود. این شامل قابلیتهای فراتر از بازی برای حسابهای کاربری، ورود به بازی، جنبههای اجتماعی، خرید و موارد بیشتر است که از طریق پورتالها، یکپارچهسازی SDK و APIهای مستقیم ارائه میشوند.
از آنجا که Player Platform مسئول همه چیز پیرامون تجربه بازی بازیکنان است، بخش عمدهای از کار ادغام Xbox Game Pass باید توسط این تیم انجام میشد. این کار نیازمند روحیه همکاری، ذهنیت باز و تعداد زیادی افراد سختکوش و مصمم بود تا این درخواست را تحویل دهند و در عین حال از بازیهای فعلی و آینده Riot Games نیز پشتیبانی کنند.
شروع سریع!
از آنجا که Riot Games اولین همکاری با Xbox Game Pass برای ارائه بازیهای رایگان بر روی PC و موبایل بود، ناشناختههای زیادی وجود داشت. علاوه بر این، ما میخواستیم تجربه بازیکنان را با اعطای پاداشهای درون بازی به همه کسانی که حسابهای خود را متصل میکردند، بهبود بخشیم. وقتی به پروژهای با این مقیاس نگاه میکنیم، سعی میکنیم آن را به جریانهای ویژگی مستقل تقسیم کنیم تا مالکیت و تمرکز را حداکثر کنیم و جلسات بدون اهداف مشخص را کاهش دهیم.
برای انجام این کار، مدیریت برنامه به طور مستقیم با مایکروسافت همکاری کرد تا تحویلهای اصلی را برنامهریزی کند. این نقش حیاتی اطمینان حاصل میکرد که افراد مناسب در زمان مناسب درگیر پروژه شوند. تیم مدیریت برنامه Player Platform، مراسم و تشریفات را در سراسر Player Platform و کل Riot Games با تیمهای بازی، انتشار، پشتیبانی از بازیکنان و سایر ذینفعان کلیدی تنظیم کرد. آنها استراتژیها را برنامهریزی کردند و مشکلات پیچیده را در میان چندین تیم بازی و صدها نفر در Player Platform مقیاسبندی کردند.
طراحی برای Game Pass
قبل از ایجاد سیستمهای جدید یا کار بر روی سیستمهای موجود، باید درک مشترکی از مشکل و اینکه موفقیت برای بازیکنان به چه معناست، وجود داشته باشد. طراحی تجربه کاربر در Player Platform برای ایجاد تجربههای مثبت برای بازیکنان بسیار حیاتی است و در همکاری با Xbox Game Pass نقش مهمی ایفا کرد. در حالی که طراحی اغلب ابتدا با رابطهای کاربری نهایی مرتبط است، نقش مهمتری در برنامهریزی تعاملات بازیکنان با محصولات و سیستمهای پیچیده و ایجاد تجربهای بدون درز ایفا میکند. اکنون ممکن است بپرسید، چقدر سخت میتواند باشد که بازیکنان بتوانند حساب Xbox Game Pass خود را متصل کنند؟ خوب، مشخص شد که این کار بسیار پیچیده است!
در اوایل همکاری بین Riot Games و مایکروسافت، رهبری طراحی تجربه کاربر با سرپرستان تیمها همکاری کرد تا ایجاد “سناریوهای حداقل دوستداشتنی” برای بازیکنان را هدایت کند. این سناریوها شامل اطلاعاتی از چندین رشته و بخش در مورد زمان، شرکای مورد نیاز و منابع لازم برای تحقق این سناریوها بود. تمرکز ویژهای بر بزرگترین خطرات برای تجربه عالی بازیکنان وجود داشت، زیرا هرچه زودتر توافق کنیم که دستیابی به یک هدف مشترک دشوار ارزش تلاش را دارد، زودتر میتوانیم تخصص خود را برای امکانپذیر کردن غیرممکن به کار بگیریم. (برای کسب اطلاعات بیشتر در مورد فرایند اولیه تعریف این سناریوهای حداقل دوستداشتنی، مقاله Medium طراحی تجربه کاربر Riot Games را مطالعه کنید.)
“همکاری بین دو شرکت همیشه چالش بزرگی خواهد بود. اصطلاحات متفاوت، نقشهای متفاوت، فرضیات متفاوت. ما باید عمیقتر فکر میکردیم تا بفهمیم سیستمهای احراز هویت و تجربه نصب Game Pass مایکروسافت چگونه کار میکنند تا بتوانیم این بخش از تجربه را در نظر بگیریم و هزینه توسعه تجربه کامل را برآورد کنیم و ارزیابی کنیم که دقیقاً چه چیزی برای سناریوی حداقل دوستداشتنی بازیکن مورد نیاز است.”
– Cheryl Platz
با ایجاد جریانهای اولیه، تیم طراحی تجربه کاربر به کار بر روی جزئیات هر نقطه تماس بازیکن پرداخت تا اطمینان حاصل شود که بازیکنان هنگام متصل کردن حساب Game Pass خود از طریق بازی یا Riot Client، یا حتی بازیکنان جدید Riot Games که برای اولین بار از طریق اپلیکیشن Game Pass میآیند، تجربه ورود نرمی خواهند داشت.
ترکیب پلتفرمها از دو شرکت مختلف برای اولین بار اغلب سناریوهای جدیدی را ارائه میدهد که نه تیم Riot Client و نه Xbox قبلاً با آنها مواجه نشده بودند. برای مثال، مدل امنیتی متفاوت مایکروسافت فرصتی جالب برای Player Platform فراهم کرد تا استانداردسازی بیشتر پلتفرمهای احراز هویت و هویت را بررسی کند. ارتباط باز و همکاری فعال با مایکروسافت به هماهنگ کردن اهداف و اطمینان از پیشرفت در مسیر درست کمک کرد.
“ما اولین یکپارچهسازی آنها نبودیم، اما فکر میکنم روش مورد استفاده برای ما متفاوت بود، بنابراین آنها با ما همکاری کردند تا آن را به سرانجام برسانند. این همکاری بود، ما هر دو طرف کد را تکامل دادیم تا بتوانیم از نیازهای آنها پشتیبانی کنیم. عملکرد از پیش تعریف شده مایکروسافت در این مورد کار نمیکرد و از نظر زمانی امکانپذیر نبود.”
– Luther Baker
با ایجاد مستندات کشف اولیه (گاهی اوقات پیشکشف نامیده میشود)، طراحان باید مشخص میکردند که چه اتفاقی در حال رخ دادن است و پیشنیازها را با پرسیدن این سوال از خود مشخص میکردند: «چگونه میتوانیم به نتیجه دلخواه برسیم؟». از طریق روشهای مختلفی مانند نقشهبرداری سناریو و جریانهای کاربر، طراحان مایکروسافت و Player Platform با یکدیگر همکاری کردند تا بسیاری از مصنوعات را ایجاد کنند که با مهندسان، محصول و QA به اشتراک گذاشته شد تا اطمینان حاصل شود که جریانها با انتظارات مطابقت دارند و حلقه بازخورد مداومی ایجاد شود تا خدمات و قابلیتهای موجود برای پشتیبانی از بهترین تجربه ارزیابی شوند.
“در چنین مواردی، بهتر است که طراحی تجربه کاربر اشتباه باشد تا درست، زیرا افراد بیشتر احتمال دارد که متوجه چیزی شوند و بازخورد دهند، مثلاً “هی، این دقیقاً همان چیزی نیست که من درک میکنم.” بهتر است که سریع اشتباه کنیم تا اینکه زمان صرف پیدا کردن پاسخ درست کنیم و سپس چیزی را ایجاد کنیم.”
– Melody Seng
این مصنوعات به طور مداوم تکامل یافتند، حتی پس از تأیید آنها. موارد حاشیهای کشف شدند که نیاز به تحقیقات و تکرارهای بیشتر برای حل آنها داشت. کار مستقیم با مهندسان و تیمهای فنی برای رسیدن به درک مشترک بسیار مهم بود.
ایجاد خدمات نزدیک به زمان واقعی
برای ارائه بهترین تجربه کاربر با Riot Games و Xbox Game Pass، ما میخواستیم بازیکنان به طور فوری پس از متصل کردن حساب فعال Xbox Game Pass خود به محتوای جدید درون بازی دسترسی پیدا کنند، که نیازمند خلاقیت زیادی بود. تیم تجربه محتوا با تیم حسابها (در Player Platform) همکاری کرد و بر روی ارسال پیام از طریق اتوبوس رویداد Riot (رویکرد جدید Riot Games برای ارتباط مبتنی بر پیام) هر زمان که بازیکن حساب Xbox خود را متصل یا قطعمیکرد، توافق کرد. پس از دریافت پیام، سرویس گوش دادن به موضوع پیامرسان میتوانست رویداد را پردازش کند. از آنجا که ممکن بود بازیکن حساب Riot Games و Xbox خود را بدون داشتن Game Pass فعال متصل کند، تیم همچنین باید از طریق توکن ارائه شده از طریق اتصال حساب، از API Xbox برای دریافت این اطلاعات استفاده میکرد، در حالی که تیم حسابها توکن را در یک سرویس جدید ذخیره میکرد. با این حال، این فقط بخشی از مشکل را حل کرد، زیرا ما هنوز باید بررسی میکردیم که آیا بازیکن دارای اشتراک فعال Xbox Game Pass است یا خیر.
تیم تجربه محتوا (بخشی از Player Platform) سرویس اشتراک گذاری Gateway (GSS) را ایجاد کرد که منبع اصلی واقعیت، درون Riot Games، برای وضعیت Game Pass بازیکن، برای هر تماس گیرنده است. این بدان معنی بود که هر زمان یک سرویس نیاز داشت وضعیت اشتراک را بررسی کند، میتوانست به GSS مراجعه کند و پاسخی با تأخیر کم و دقت بالا دریافت کند تا مشخص شود بازیکن چه مزایایی باید داشته باشد. GSS دادهها را با مصرف رویدادهای اتصال حساب از تیم حسابها و استفاده از API مایکروسافت برای بررسی وضعیت Game Pass بازیکن به دست میآورد. این دادهها را از طریق یک نقطه پایانی API HTTP در اختیار سایر تیمهای Riot Games قرار میدهد تا از آنها برای موارد استفاده مختلف استفاده کنند، از جمله:
- پلتفرم دسترسی به محتوا: افزودن محتوای خاص اشتراک به موجودی بازیکن
- Martech: نمایش تبلیغات خاص بر اساس وضعیت فعلی Game Pass بازیکن
- پشتیبانی از بازیکن: استفاده عوامل پشتیبانی بازیکن از این اطلاعات برای پردازش بلیطهای مربوط به اشتراکهای Xbox
- تجربه وب (WebEx): نمایش وضعیت اشتراک بازیکن در صفحه مدیریت حساب بازیکن
هنگامی که بازیکن حساب Riot Games خود را با حساب Xbox Game Pass خود متصل کرد، GSS از API Xbox مایکروسافت برای دریافت وضعیت Game Pass بازیکن استفاده کرد، این اطلاعات را در یک پایگاه داده ماندگار ذخیره کرد و به طور منظم آن را به روز کرد و برای پرس و جو در دسترس قرار داد. آیا این کار ساده به نظر میرسد؟
بازیکن میتوانست در هر زمان پس از متصل کردن حساب Riot Games و Xbox خود، Game Pass را فعال کند. سرویس فقط میتوانست به طور منظم API Xbox را برای بررسی وضعیت بازیکن پرس و جو کند. برای ارائه بهترین تجربه بازیکن، ما میخواستیم بازیکنان به طور فوری پس از متصل کردن و فعال کردن Game Pass خود به محتوای اشتراکی دسترسی داشته باشند، بنابراین پرس و جوی مکرر لازم بود. اما چه تعداد پرس و جو کافی بود؟ هر دقیقه عالی بود، اما مرسوم نیست که میلیونها درخواست در هر دقیقه برای یک API فقط برای بررسی وضعیت ارسال کنید، به ویژه وقتی که 99٪ زمان هیچ تغییری در وضعیت بین فراخوانیها وجود ندارد.
تیم بر روی مواردی تمرکز کرد که میتوانستند به تعاملات با بازیکنان در سمت Riot Games واکنش نشان دهند، مانند زمانی که بازیکن برنامه بازی را راهاندازی میکرد، که زمان مناسبی برای به روزرسانی وضعیت Game Pass بود. با این حال، به روزرسانی یک فراخوانی خارجی HTTP است که حدود یک ثانیه طول میکشد و GSS باید در کمتر از 50 میلی ثانیه پاسخ میداد، زیرا بخشی از مسیر بحرانی زمان برای دریافت موجودی بازیکن بود. هیچ راهی برای قرار دادن یک فراخوانی خارجی یک ثانیهای در پنجاه میلی ثانیه وجود نداشت، بنابراین تیم باید خلاقیت به خرج میداد. آنها تصمیم گرفتند که ارزش ذخیره شده فعلی را که پس از آخرین به روزرسانی یا پس از اتصال حساب به دست آمده بود را برگردانند و یک به روزرسانی غیرهمزمان در پس زمینه را فعال کنند. اگر سرویس تغییری در وضعیت Game Pass پس از آن به روزرسانی غیرهمزمان مشاهده میکرد، یک پیام از طریق سرویس پیام رسانی Riot Games به برنامه بازی ارسال میکرد تا بازی بتواند مزایای اشتراک را از CAP بازیابی کند و اطمینان حاصل شود که بازیکن بدون نیاز به بارگذاری دستی برنامه بازی به محتوای اشتراکی خود دسترسی خواهد داشت.