آشنایی با سرویس Match-Making
در این مستند با سرویس انطباق (Match-Making) آشنا خواهید شد. ما تعریف این سرویس و کاربرد آن را برای شما شرح خواهیم داد.
توجه: این مستند فقط برای رقابت آنلاین است و برای نیازمندیهای چت کاربردی ندارد.
پیشنیازها
- در صورتی که با سرویس بلادرنگ آشنایی ندارید، به معرفی سرویس بلادرنگ مراجعه کنید.
- در صورتی که هنوز با تنظیمات پنل سرویس بلادرنگ آشنا نشده اید، به تنظیمات پنل سرویس بلادرنگ مراجعه کنید.
Match-Making چیست؟
فرض کنید شما یک بازی آنلاین دارید، مثل Dota 2، Counter Strike، و یا بازیهای داخلی مانند هشتخوان، دنده دو و … در همه این بازیها شما مفهوم مسابقه دو یا چند نفره دارید، یعنی کاربران درخواست مسابقه آنلاین با کاربران دیگر اپلیکیشن شما را میدهند، و شما در همه این بازیها نیاز دارید که کاربران شما با یکدیگر انطباق پیدا کنند، یعنی بازیکنان همرده و هم سطح با هم بازی کنند و بازیکنان قویتر با بازیکنان ضعیفتر بازی نکنند. با این کار، کیفیت بازیها بالاتر رفته و رضایت کاربران افزایش خواهد یافت.
تعاریف مهم
مقدار MMR: هر کاربر موبایل شما یک عدد MMR دارد که مخفف Match-Making-Ranking است. این عدد سطح بازیکن را تعیین میکند. از دید بکتوری این عدد توسط اپلیکیشن یا بازی شما معنا پیدا میکند، مثلا تعداد بردها، مقدار Exprience و یا هر چیزی که از دید بازی شما معنای منطقی برای سطح میدهد. هر گاه کاربر شما در گوشی موبایل، درخواست رقابت آنلاین بدهد، شما باید عدد MMR او را به SDK بکتوری بدهید. مثال: در بازی Dota 2 مقدار MMR عددی بین صفر تا ۱۰۰۰۰ است و با هر برد ۲۵ واحد افزایش و با هر باخت ۲۵ واحد کاهش مییابد.
عملیات انطباق (Match Making): عملیات انطباق به فرآیند دریافت چندین درخواست رقابت آنلاین و وصل کردن کاربران هم سطح گفته میشود.
رقابت (Game): نتیجه یک عملیات انطباق، یک رقابت آنلاین خواهد شد که به این رقابت Game گفته میشود. در محاوره به «یک دست بازی» یک Game گفته میشود.
انواع Match-Making
در بکتوری سه نوع از Match-Making وجود دارد. یعنی کاربران با سه روش با هم انطباق پیدا میکنند. شما در تنظیمات خود میتوانید تا پانصد نوع مختلف از Match-Making تعریف کنید که هر یک از آنها میتوانند یکی از این سه نوع باشند:
-
Absolute: یعنی به صورت مطلق امتیاز آنها در یک بازه مشخص باشد. مثال: میخواهید کاربران حرفهای شما بتوانند با هم بازی کنند. شما یک Match-making خاص برای آنها تعریف میکنید و در تنظیمات بکتوری اعلام میکنید که آنهایی که امتیازشان (MMR) بین ۷۰۰۰ تا ۱۰۰۰۰ است با هم انطباق پیدا کنند.
-
Relative: این حالت معمولا برای Match-Making بازیهای عادی، رایج است. در این حالت بازیکنان با کسانی که از لحاظ امتیاز نزدیک به هم هستند تطابق پیدا میکنند. مثلا شما میتوانید تعیین کنید هر بازیکن با بازیکنانی که حداکثر ۵۰۰ امتیاز اختلاف MMR دارند بازی کنند.
-
Percent: حالت درصدی نیز مانند Relative است، با این تفاوت که به جای اختلاف ثابت، اختلاف درصدی محاسبه میشود. مثلا اگر اختلاف ۲۰٪ را تعیین کنید، یک بازیکن با MMR برابر با ۱۰۰۰ با بازیکنانی در حدود ۸۰۰ تا ۱۲۰۰ بازی خواهد کرد.
تعریف Match-Making در پنل
برای فعالسازی و تعریف انواع Match-Making مراحل زیر را طی کنید:
- وارد صفحه داشبورد پروژه خود شوید.
- از منوی سمت راست سرویس مرکز بازی را انتخاب کنید.
- در مرکز بازی از منوی سمت راست، گزینه Match-Making را انتخاب کنید.
حال شما وارد صفحه Match-making شدهاید. در صورتی که هنوز سرویس را فعال نکردهاید پیامی مشابه زیر در پنل خواهید دید.
بر روی دکمه فعالسازی کلیک کرده و دیالوگی مانند زیر را خواهید دید:
مانند تمامی سرویسهای بکتوری، فعالسازی این سرویس نیز مجانی است و تا زمانی که از طریق گوشی موبایل تعدادی درخواست انطباق ندهید، هیچ هزینهای از شما گرفته نخواهد شد.
توجه: با توجه به اینکه امکان Match-making به صورت پیشفرض بر روی سرویس بلادرنگ قابل استفاده است، با فعالسازی این سرویس، سرویس بلادرنگ هم برای شما فعال خواهد شد. فعالسازی بلادرنگ نیز مجانی است و تا زمانی که درخواست بلادرنگی از طریق موبایل به سرور ندهید هیچ هزینهای پرداخت نخواهید کرد.
پس از فعالسازی لیست انواع Match-Makingهای ساخته شده توسط شما دیده میشود که به صورت پیشفرض خالی است:
با کلیک بر روی دکمه ایجاد، دیالوگی به شکل زیر باز خواهد شد که میتوانید یک Match-Making جدید تعریف کنید:
در فرم بالا، فیلدهای به شرح زیر هستند:
- نام: نام یکتای Match-Making که در SDK درخواست خود را به این نام میدهید.
- توضیحات: یک توضیحات ساده که اجباری نیست و جنبه اطلاعاتی دارد و کاربردی ندارد.
- ماکزیمم بازیکنها: حداکثر تعداد بازیکنان یک Game، در مثال بالا بازی حداکثر ۱۰ نفره است.
- مینیمم بازیکنها: حداقل تعداد بازیکنان انطباقدادهشده برای شروع یک Game. در مثال بالا، هر بازی بین ۵ تا ۱۰ بازیکن خواهد داشت.
- شروع با حداقل بازیکن: در صورتی که این تیک فعال نباشد، فیلد مینیمم تعداد بازیکنها، نادیده گرفته خواهد شد و تا وقتی ۱۰ بازیکن برای بازی با هم درخواست ندهند، بازی اتفاق نخواهد افتاد.
- زمان: مدت زمانی که کاربران باید منتظر پیدا شده یک Match باشند. اگر این زمان سپری شود و تعداد به حد نصاب نرسد، عملیات Match-Making با شکست مواجه شده است.
- نوع: نحوه انطباق دو بازیکن با هم که در انواع Match-Making توضیح داده شد.
- بیشینه: حداکثر امتیاز حریف؛ در حالت Relative و Percent منظور از این مقدار اختلاف عددی و درصدی است.
- کمینه: حداقل امتیاز حریف؛ در حالت حالت Relative و Percent منظور از این مقدار اختلاف عددی و درصدی است.
در مثال بالا، هر عملیات انطباق ۲۰ ثانیه طول میکشد و فقط بازیکنانی با اختلاف ۲۰۰ امتیاز با هم بازی خواهند کرد.
یک مثال حرفهای
در مثال بالا، پس از ۲۰ ثانیه عملیات انطباق با شکست مواجه میشد. در صورتی که میخواهید کاربران شما به احتمال بیشتری بازی پیدا کنند، باید دو قانون دیگر مشابه زیر اضافه کنید:
معنای تصویر بالا این است:
- از ثانیه صفر تا بیست، سعی کن بازیکنانی با اختلاف ۲۰۰ امتیاز را با هم انطباق دهی.
- اگر هنوز به حد نصاب نرسیده، از ثانیه ۲۰ تا ۴۰، بازیکنانی با اختلاف ۵۰۰ امتیاز نیز مشکلی ندارد.
- اگر همچنان به حد نصاب نرسیده، تا ثانیه ۶۰، هر بازیکنی که بین صفر تا دههزار امتیاز دارد را انطباق بده.
- اگر باز هم به حد نصاب نرسید، عملیات با شکست مواجه شده است.