سیستم Matchmaking بازی و اصول طراحی آن
فهرست مطالب
در این مقاله موضوع ما یک موضوع فنی در حوزه ی بازی سازی می باشد که شاید بیشتر دولوپر های بازی و کسانی که در بک اند گیم فعال هستند از آن استقبال کنند.
اما در واقع این مقاله به تمامی کاربران ماناتاز پیشنهاد می شود ؛ زیراکه شما با مطالعه ی این مقاله با ساختمان کلی سیستم آنلاین سازی بازی ها آشنا خواهید شد.
ما قبلا در مقاله ای در رابطه با آنلاین سازی بازی ها (در موتور بازی سازی یونیتی) و متدهای آن توضیحاتی را ارائه داده بودیم.
اما در این مقاله ما بُعد دیگری از بازی های آنلاین را مورد بررسی قرار می دهیم و این بُعد مربوط به سیستم Machmaking می باشد.
این بعد بیشتر به ساختار و شکل کارکرد بازی های آنلاین و سیستم هایی که می توان برای آن چید اشاره دارد.
با ما در ادامه همراه باشید تا به صورت کامل در رابطه با سیستم Machmaking بازی ، اصول طراحی آن ها ، انواع و الگوریتم های آن به صورت کامل صحبت کنیم.
سیستم Machmaking چیست ؟
به طور کلی می توان سیستم Machmaking را یک سیستم برای بازی های آنلاین در نظر گرفت که الگوریتم آنلاین بودن یک بازی را مشخص می کند.
اجازه دهید برای درک بهتر مچ میکینگ ، تعریف آن را به دو بخش تقسیم کنیم.
۱- یافتن پلیرها
یکی از کلاسیک ترین ایده ها و به نظر اولین ایده در دنیای بازی های آنلاین است.
در سیستم machmaking چیزی جز تطبیق بازیکن به صورت تصادفی وجود ندارد ؛ این یعنی اینکه این سیستم کاری می کند تا در یک بازی آنلاین پلیرها یکدیگر را پیدا کرده و بتوانند با یکدیگر به رقابت بپردازند.
اما سوال اینجاست که اگر یک سیستم machmaking در این بخش به درستی کار نکند چه اتفاقی می افتد ؟
کاملا واضح است که یک نابرابری فاجعه در بازی آنلاین رخ می دهد ؛ به این معنا که ممکن است پلیر های ضعیف پلیرهای قوی را پیدا کنند و یا برعکس ؛ هیچ چیز در یک بازی آنلاین به اندازه ی این مشکل پلیرها را خشمگین و ناراضی نمی کند.
۲- تطابق پلیرها
طبق توضیحات بالا ، نکته ی مهم بعدی در تطابق درست پلیرها است.
با دادههای آماری بازیکنان از مسابقات قبلی و سایر دادههای مرتبط ، الگوریتم machmaking میتواند فردی را پیدا کند که به احتمال زیاد همان مهارت را دارد ؛ نه کمتر نه بیشتر (البته این کاملا به صورت حدودی است و قطعا هیچ الگوریتم مچ میکینگی نمی تواند دقیقا هم لول شما را پیدا کند ؛ و حتی اگر بتواند هم جامعه ی بازی برای اینکار باید به شدت بزرگ باشد که در لحظه بتواند دقیقا هم لول هر پلیر را رو به روی آن قرار دهد.)
متعادل کردن شکست و پیروزی
خب ما در بالا به یکی از تعاریف مربوط به matchmaking یعنی تطابق اشاره کردیم که این سیستم می آید و کاربران که لول آن ها به یکدیگر نزدیک است را رو به روی یکدیگر قرار می دهد.
شاید در نگاه اول این از دیدگاه شما به نظر بی عیب به نظر برسد ؛ اما از دیدگاه بازی های بزرگ اینگونه نیست.
در یک جمله این به این دلیل است که پلیرهای خوب همیشه خوب نیستند و پلیر های بد هم همیشه بد نیستند.
اما این جمله به چه معناست ؟
مشخصا شکست و گیم اور شدن ، چیزی است که باعث ناراحتی پلیرها می شود ؛ و البته اصلی است که باید حتما در سیستم بازی وجود داشته و نمی توان از آن گذشت.
در یک بازی آنلاین دو تا سه شکست متوالی یک چیز منطقی است ، اما تصور کنید یک پلیر خوب نزدیک ۱۰ شکست متوالی را تجربه کند.
شاید بپرسید این چطور ممکن است ؟
دلایل زیادی می تواند باعث همچین امری شود ، که یکی از مهم ترین آن ها این است که پلیر مدت زیادی را از بازی دور بوده و یک سری مواردی را فراموش کرده که دلیل اصلی شکست آن می باشد.
در این حالت وقتی پلیر چندین و چند شکست پی در پی را تجربه کند قطعا از بازی زده شده و آن را رها می کند.
به همین خاطر یک سیستم مچ میکینگ قوی فکر اینجای کار را نیز خواهد کرد.
قائدتا در یک سیستم matchmaking قوی به صورتی است که وقتی پلیر دچار شکست های متوالی می شود ؛ سیستم آن را با پلیرهای ضعیف تری رو به رو می سازد که بتواند در آن میان به پیروزی هایی نیز برساند.
برعکس این مورد هم صادق است ؛ یعنی ممکن است پلیر به حدی از توانایی برسد که بردهای متوالی را کسب کند ؛ در این حالت نیز می تواند بازی برای آن یک روند تکراری داشته باشد (و حتی در صورتیکه بازی درآمدزایی نیز ایجاد کند برای سیستم اقتصاد بازی مضر) به همین خاطر در اینجا نیز سیستم matchmaking باید پلیر را با پلیر های قوی تر رو به رو کند که در آن میان شکست را نیز تجربه کند.
به عنوان مثال در بازی کلش رویال شما به خوبی می توانید شاهد این موضوع در دنیای رقابتی بازی باشید.
پارامترهای لازم برای تطابق
خب در این بخش به این موضوع مهم می پردازیم که معمولا machmaking در بازی ها بر اساس چه پارامترهایی پلیرها را با یکدیگر تطبیق می دهد.
لول
قائدتا اولین و بدیهی ترین پارامتر برای تطابق مربوط به لول پلیر ها می باشد.
Matchmaking مبتنی بر مهارت یک بازی چند نفره سیستمی است که معمولاً برای قرار دادن بازیکنانی با سطوح مهارت مشابه در مسابقات در مقابل یکدیگر استفاده میشود تا بین تیمها تعادل ایجاد کند و لذتی که بازیکنان از بازی به دست میآورند به حداکثر برسد.
عملکرد بازیکن را ردیابی می کند و از نسبت برد به باخت، رگه های کشتار، شمارش مرگ و سایر معیارها برای محاسبه سطح مهارت آنها استفاده می کند.
SBMM (Skill Based Matchmaking) همیشه یک موضوع داغ در بین گیمرها بوده است.
SBMM با تلاش برای تطبیق بازیکنانی که دارای سطح مهارت مشابهی هستند برای منصفانه و رقابتی نگه داشتن بازی ها کار می کند.
اما نحوه تعیین سطح مهارت بر اساس بازی متفاوت است.
بازیهایی مانند COD ، CS:GO ، Valorant و League of Legends همگی دارای صفهای رتبهبندی شدهاند، با یک رتبه مهارتی واضح.
با این حال ، در صفهای معمولی ، بازیکنان سطحی دارند که لزوماً نشاندهنده مهارت آنها نیست، بلکه نشاندهنده میزان زمانی است که برای بازی کردن گذاشته اند.
پس می توان گفت مهارت بازیکن با استفاده از معیارهایی مانند نسبت های کشتن ، مرگ و برد و باخت تعیین میشود.
لوکیشن
اتصال به سرور در یک منطقه دیگر برای بازی آنلاین چالش دوم ما می باشد.
به عنوان مثال، اگر یک بازیکن در ایالات متحده به یک سرور اتحادیه اروپا متصل شود، داده های ارسال شده بین آنها مسافت زیادی را طی می کند.
این زمان می برد و باعث تاخیر زیاد و پینگ بالا می شود.
(البته بازی هایی که پلیرهای آن ها در سطوح بین المللی هستند دارای سرورهای بسیار قدرتمندی هستند که مشکلات مربوط به پینگ پایین را نخواهند داشت ؛ اما به صورت کلی با دو سرور یکسان ، دو تقابل لوکال در مقابل دو تقابل بین المللی می تواند سرعت بیشتری را داشته باشد.)
زمان انتظار
بازی همچنین مدت زمانی را که بازیکنان در جستجوی یک بازی بوده اند ، تعیین می کند.
Matchmaking سعی می کند تا هر چه سریعتر بازیکنان را وارد یک بازی کند تا از خسته و ناامید شدن آن ها جلوگیری کند.
همانطور که احتمالاً می دانید، همیشه امکان ندارد که هر سه عامل دارای اولویت یکسان باشند.
برای مثال ، اگر بیشتر از آنچه بازی معقول میداند زمان انتظار بالا برود ، دو عامل دیگر (لوکیشن و سطح مهارت) اولویت کمتری دارند.
این بدان معناست که شما ممکن است در لابی های خارج از سطح مهارت خود یا در یک سرور دور بازی کنید.
در این حالت معمولا بازی هایی که حداقل در شروع کار هستند و دارای تعداد پلیرهای کمی هستند از بات نیز استفاده خواهند که ما در مقاله ای به صورت کامل در رابطه با آن صحبت کرده ایم.
Room و فرآیند کار آن در Matchmaking
یک رووم معمولاً نشان دهنده یک مسابقه با دسته ای از بازیکنان است.
در بازی هایی که معمولا تقابل همزمان بیش از دو پلیر را دارند ، معمولا مفهوم رووم بیشتر استفاده می شود.
به عنوان مثال در بازی مافیا از این اصطلاح هم در بک اند بازی استفاده می شود هم در خود بازی.
اگر بازیکنی بخواهد به یک مسابقه ملحق شود، بازی از سرور فهرستی از تمام رووم هایی که حداقل برای یک بازیکن دیگر جای دارند، می خواهد.
سپس بازی انتخاب می کند که کدام رووم مناسب است و از سرور درخواست می کند که به آن بپیوندد.
به محض پیوستن به بازی ، لیستی از سایر بازیکنان آن مسابقه را دریافت می کند و می تواند با آنها ارتباط برقرار کرده و شروع به بازی کند.
مهم است که بدانیم رووم در واقع بازی را اجرا نمی کند.
این یک سرور گیم پلی نیست.
معمولا یکی از بازیکنان سرور گیم پلی است.
تنها کاری که رووم انجام می دهد این است که لیستی از افراد حاضر در مسابقه نگه می دارد و به بازیکنان اجازه می دهد مسابقات را برای پیوستن به آن ها جستجو کنند.
این رووم فقط برای یافتن و نگهداری فهرست مسابقات در نظر گرفته شده است و کار بسیار کمی انجام می دهد.
از آنجایی که رووم به گیم پلی واقعی رسیدگی نمی کند،
اغلب می تواند پس از شروع مسابقه و اتصال بازیکنان بسته شود. (البته بسته شدن رووم پس از شروع مسابقه و نحوه عملکرد آن به پلت فرم بستگی دارد.)
سروری که رووم را مدیریت می کند می تواند منطق اساسی را انجام دهد، اما به طور کلی زیاد نیست.
یکی از مهمترین کارهایی که انجام می دهد این است که تعداد افراد را در رووم محدود کند.
شما معمولاً یک محدودیت تعیین می کنید ؛ مثلا اگر دو بازیکن سعی کنند همزمان به آن بپیوندند در حالی که فقط برای یکی فضا وجود دارد، سرور مطمئن می شود که فقط یکی از آنها موفق به ورود می شود.
رووم ها تنها برای مسابقات قابل استفاده نیستند ؛ شما همچنین می توانید از آنها برای موارد دیگر استفاده کنید.
یک مثال ساده یک چت روم است.
همچنین ، اگر کلاینت در روومی باشد، اعلان تغییرات رووم و پیامهایی که از طریق رووم ارسال میشوند را دریافت میکند.
نباید انتظار داشته باشید که رووم ها بتوانند تعداد زیادی پیام را مدیریت کنند یا به سرعت آنها را ارسال کنند، اما بسته به پلتفرم، چیزی مانند چت روم که در آن تاخیر واقعاً مشکلی نیست، ممکن است مناسب باشد.
رووم ها امکان ذخیره داده های اضافی را نیز فراهم می کنند.
این دادهها را میتوان به هر طریقی که توسعهدهنده میداند مورد استفاده قرار داد و احتمالاً حاوی اطلاعاتی در مورد حالت بازی، مهارت بازیکنان در مسابقه و نقشهای است که مسابقه روی آن انجام میشود.
به این ترتیب وقتی بازیکنی در حال جستجوی یک حالت بازی خاص است، بازی میتواند از طریق فهرست رووم ها برای یکی از حالتهای بازی مورد نظر جستجو کند.
این همچنین به بازی اجازه می دهد تا بررسی کند که آیا سایر بازیکنان در رووم در سطح مهارتی مشابه بازیکن هستند یا خیر.
رووم ها میتوانند دادههای دلخواه را به دلخواه توسعهدهنده نگهداری کنند، اما معمولاً اجازه دادههای زیادی را نمیدهند، بنابراین فقط موارد ضروری در اینجا ذخیره میشوند.
رووم های برای حالت کراس پلتفرم
توجه داشته باشید که سیستم های رووم در پلت فرم های مختلف نیز نمی توانند به یکدیگر متصل شوند.
بنابراین اگر میخواهید بازی شما بتواند کاربران را در دیوایز های مختلف نیز به یکدیگر متصل کند ، اساساً باید سرورهای مچ میکینگ خود را بنویسید.
هوش مصنوعی و پارامترهای بیشتر برای تطابق
قبلاً در بازی ها ، فقط به تاریخچه برد-باخت شما نگاه می شد و توسعه دهندگان سعی می کردند یک امتیاز اسکالر (مثل Elo یا MMR (Matchmaking Rating یا MMR مقداری است که سطح مهارت هر بازیکن را تعیین می کند.)) برای شما ایجاد کنند تا مهارت شما خلاصه شود.
اما با گذشت زمان ، میتوانیم متوجه شویم که با استفاده از شبکههای عصبی ، مهارتهای شما در جنبههای مختلف خلاصه میشود، نه فقط یک امتیاز و تلاش برای استفاده از تاریخچه بیشتر.
نائومی کلارک ، یک توسعه دهنده بازی و رئیس مرکز بازی دانشگاه نیویورک است.
او می گوید : همانطور که استراتژیهای مچ میکینگ پیشرفت کردهاند، با استفاده از بینشهایی از زمینههایی مانند یادگیری ماشین و علم داده برای اصلاح بیشتر تجربیات بازیکنان، گسترش یافتهاند.
نائومی کلارک
مثلا سیستم matchmaking یک بازی شوتر ممکن است عواملی مانند بردها و باخت های قبلی، کشتار و مرگ، تعداد دفعاتی که بازیکنان ترک می کنند، چه حالتی بازی می کنند، چند ساعت بازی کرده اند، آیا با دوستانشان بازی می کنند یا حتی در چه زمانی بازی می کنند را در نظر بگیرد.
با در دسترس قرار گرفتن اطلاعات بیشتر در مورد عملکرد بازیکن، این پارامترها به طور مداوم به روز می شوند.
سپس از آمارهای پیشرفته برای استنتاج در مورد نتیجه قابل قبول هر بازی قبل از وقوع استفاده می شود.
برای آشنایی کامل با هوش مصنوعی بازی کلیک کنید.
مهرسا امینی
برنامه نویس ، انیماتور ، سئوکار
هیچوقت با هر دوی پاهات عمق یک رودخانه را تجربه نکن.