کاربران انتظار دارند بدون توجه به دستگاه خود بتوانند با دوستانشان بازی کنند. اگر نسخه موبایل، کامپیوتر و کنسول یک بازی جامعههای جداگانه داشته باشند، زمان Matchmaking افزایش مییابد و ظرفیت اجتماعی محصول کاهش پیدا میکند. Cross-Play راهی برای تشکیل یک جامعه مشترک میان پلتفرمها است.
این قابلیت فقط خروجی گرفتن از یک پروژه برای چند دستگاه نیست. تفاوت کنترل، عملکرد سختافزار، قوانین فروشگاهها، حساب کاربری و زمان انتشار نسخهها باید مدیریت شود. بنابراین تصمیم درباره Cross-Play بهتر است پیش از تثبیت معماری شبکه و بکاند گرفته شود.
Cross-Play در بازیهای آنلاین چیست؟
Cross-Play در بازیهای آنلاین یعنی بازیکنان پلتفرمهای متفاوت بتوانند در یک محیط مشترک وارد Lobby، تیم یا مسابقه شوند. برای نمونه، کاربر اندروید میتواند با بازیکن کامپیوتر وارد یک Room شود. این مفهوم با Cross-Progression تفاوت دارد؛ Cross-Progression پیشرفت و دارایی حساب را میان دستگاهها منتقل میکند.
محصول ممکن است یکی از این دو قابلیت یا هر دو را داشته باشد. اجرای Cross-Progression به هویت مشترک و ذخیره ابری نیاز دارد، درحالیکه Cross-Play بیشتر به سازگاری پروتکل، نسخه بازی و قوانین Matchmaking وابسته است. ترکیب آنها تجربه کاملتری میسازد اما پیچیدگی امنیت و پشتیبانی را افزایش میدهد.
حساب کاربری مشترک
هر پلتفرم روش ورود مخصوص خود را دارد، اما بکاند باید همه آنها را به یک شناسه داخلی متصل کند. بازیکن ممکن است ابتدا مهمان باشد و بعد حساب گوگل، اپل، استیم یا سرویس کنسول را پیوند دهد. فرآیند Link و Unlink باید از تصاحب حساب و ایجاد حسابهای تکراری جلوگیری کند.
اطلاعاتی مانند نام نمایشی، پیشرفت، رتبه و فهرست دوستان بهتر است بر اساس شناسه داخلی ذخیره شوند. توکن پلتفرم در سمت سرور اعتبارسنجی میشود و اسرار سرویس نباید در کلاینت قرار بگیرند. بازیابی حساب و پشتیبانی از کاربری که دسترسی به دستگاه قدیمی را از دست داده نیز ضروری است.
سازگاری پروتکل و نسخهها
تمام نسخهها باید درباره ساختار پیامها، قوانین مسابقه و شناسه محتوا توافق داشته باشند. اگر نسخه موبایل هنوز بهروزرسانی نشده ولی نسخه کامپیوتر پیام جدیدی ارسال کند، احتمال قطع اتصال یا رفتار اشتباه وجود دارد. نسخهگذاری پروتکل و تعریف حداقل نسخه قابل پشتیبانی این مشکل را کنترل میکند.
سرور میتواند بازیکنان نسخههای سازگار را کنار هم قرار دهد و برای نسخه قدیمی پیام بهروزرسانی نمایش دهد. تغییرات غیرسازگار باید با برنامه انتشار فروشگاهها هماهنگ شوند، زیرا زمان تأیید بهروزرسانی در همه پلتفرمها یکسان نیست. Feature Flag امکان فعالسازی تدریجی قابلیت جدید را فراهم میکند.
عدالت میان کنترل لمسی، ماوس و کنترلر
در بازی تیراندازی، دقت ماوس با لمس یا کنترلر برابر نیست. ادغام بدون قاعده ممکن است تجربه ناعادلانه ایجاد کند. Matchmaking میتواند نوع ورودی را در نظر بگیرد، بازیکنان کنترلر را کنار هم قرار دهد یا Cross-Play رقابتی را به انتخاب کاربر وابسته کند.
Aim Assist، اندازه رابط، حساسیت دوربین و سرعت چرخش باید جداگانه تنظیم شوند. در بازی نوبتی یا کارتی این اختلاف بسیار کمتر است، اما اندازه صفحه و کیفیت اتصال همچنان مهم هستند. آزمون واقعی با کاربران هر پلتفرم بهتر از فرض کردن برابری تجربه است.
معماری سرور مشترک
راه مطمئن این است که سرور مرجع قوانین باشد و کلاینتهای مختلف فقط ورودی و نمایش را مدیریت کنند. سرور نتیجه برخورد، امتیاز، موجودی و پایان مسابقه را تعیین میکند. اگر بخشی از منطق حساس فقط در یک نسخه کلاینت اجرا شود، اختلاف پلتفرم و امکان تقلب افزایش مییابد.
سرورها میتوانند بر اساس منطقه جغرافیایی توزیع شوند تا Ping کاهش پیدا کند. Matchmaker علاوه بر مهارت و نوع ورودی، منطقه، نسخه و ترجیح Cross-Play را بررسی میکند. برای گروه دوستانه، گاهی حفظ اعضای Party مهمتر از تطبیق کامل مهارت است.
دوستان، دعوت و ارتباط اجتماعی
فهرست دوستان هر پلتفرم لزوماً روی پلتفرم دیگر قابل استفاده نیست. بسیاری از بازیها یک سیستم دوستان داخلی میسازند که بر پایه نام یا کد کاربری عمل میکند. دعوت به Party، وضعیت آنلاین، مسدودسازی و گزارش تخلف باید در همین لایه مشترک پیادهسازی شوند.
چت متنی و صوتی تابع قوانین سن، حریم خصوصی و محدودیتهای هر پلتفرم است. قابلیت Mute، فیلتر واژه، گزارش و کنترل والدین برای محصول عمومی ضروری است. اگر ارتباط میان پلتفرمی محدود باشد، این محدودیت باید پیش از ورود بازیکنان به مسابقه واضح نمایش داده شود.
اقتصاد و خرید میان پلتفرمها
انتقال ارز یا آیتم خریداریشده ممکن است تحت قوانین فروشگاهها محدود باشد. بهتر است پیش از طراحی فروشگاه بازی، سیاست هر پلتفرم بررسی شود. بکاند میتواند موجودی اصلی را نگهداری کند، اما نمایش و مصرف برخی اقلام باید با قراردادها و الزامات همان پلتفرم سازگار باشد.
رسید خرید باید در سرور اعتبارسنجی شود و سپس دارایی به حساب داخلی افزوده شود. اعتماد به پیام کلاینت امکان خرید جعلی ایجاد میکند. ثبت تراکنش غیرقابلتکرار، بازیابی خرید و مدیریت بازپرداخت نیز بخشی از سیستم اقتصادی Cross-Platform است.
مراحل پیادهسازی Cross-Play
- انتخاب پلتفرمهای هدف و بررسی الزامات انتشار
- طراحی هویت مشترک و پیوند حسابها
- نسخهگذاری پروتکل و محتوای بازی
- ساخت سرور مرجع و Matchmaking چندمعیاره
- طراحی رابط و کنترل متناسب با هر دستگاه
- آزمایش سازگاری، عدالت، خرید و قطع ارتباط
هزینه و زمان توسعه
افزودن پلتفرم جدید فقط هزینه Build ندارد. رابط کاربری، ورودی، بهینهسازی، احراز هویت، گواهیها و QA باید برای آن تکرار شوند. بازی نوبتی ساده میتواند Cross-Play را سریعتر دریافت کند، اما پروژه اکشن کنسولی با Voice Chat و اقتصاد مشترک به زمان و تیم بزرگتری نیاز دارد.
بهترین نقطه شروع یک Vertical Slice است که ورود، تشکیل Party و یک مسابقه واقعی را روی دو پلتفرم ثابت کند. در JPGames معماری Cross-Play بر اساس سبک بازی، بازار هدف و محدودیت فروشگاه طراحی میشود. برای برآورد دقیق، پلتفرمها، تعداد بازیکنان هر مسابقه و وضعیت فعلی پروژه باید بررسی شوند.