سیستمهای مچمیکینگ واقعاً چطور کار میکنند: ریاضیات پشت الو، گلیکو و ترو اسکیل
مچمیکینگ در بازیهای ویدیویی مدرن روی الگوریتمهای پیچیده بیزی برای سنجش مهارت بازیکنان میچرخد. درک ریاضیات پشت سیستمهایی مثل TrueSkill و Glicko-2 نشان میدهد که چرا بالا رفتن در رنکها گاهی اینقدر روی اعصاب است.
به قلم سروین قاسمی
این خبر را به اشتراک بگذارید
- مهندسان مچمیکینگ
- تمرکز بر دقت ریاضی، استنتاج بیزی و ایجاد مسابقات کاملاً متعادل.
- بازیکنان رقابتی
- تمرکز بر پیشرفت در رنک، پاداش دادن به زمان صرفشده و اصطکاک روانی ناشی از احساس گیر افتادن در یک سطح.
- طراحان بازی
- تمرکز بر حفظ بازیکن، ایجاد تعادل بین واقعیت تلخ مهارت ریاضی و نیاز به سیستمهای پیشرفت پاداشدهنده.
دیدگاههایی که این گزارش پوشش نداده
- بازیکنان کژوال (تفننی) که مچمیکینگ مبتنی بر کیفیت اتصال اینترنت را به سیستمهای سختگیرانه مبتنی بر مهارت ترجیح میدهند.
در اعماق یک دیتاسنتر خنک و مجهز، یک سرور مچمیکینگ (Matchmaking) نشسته و منتظر دستور بعدی است. این سرور، قاضیالقضات سرنوشت دیجیتال ماست. وقتی بازیکنی روی دکمه «پیدا کردن بازی» کلیک میکند، این سرور فقط چند ثانیه وقت دارد تا میلیونها رقیب آنلاین را سبکسنگین کند، احتمال دقیق هر نتیجه ممکنی را حساب کند و یک لابی کاملاً متعادل بسازد. این تصمیمگیری با هر بار پر شدن صف بازی تکرار میشود و قضاوت ریاضیوار سرور، مو لای درزش نمیرود. سرور اصلاً کاری به این ندارد که شما الان چه حالی دارید، چند بازی پشتسرهم باختهاید یا چقدر دلتان میخواهد به رنک بعدی برسید. تنها چیزی که برایش مهم است، به حداقل رساندن فاصله ریاضی بین دو تیم رقیب است.[1]
با این حال، اگر از بازیکنانی که زیر تیغ این قضاوتها میروند بپرسید، سرور یک موجود خبیث و بدذات است. کامیونیتیهای بازیهای رقابتی پر از تئوریهای توطئه درباره «جهنم الو» (Elo Hell) است؛ باوری فراگیر که میگوید الگوریتم مچمیکینگ عمداً بازیها را طوری میچیند که نرخ برد شما روی ۵۰ درصد بماند و در رنک فعلیتان گیر بیفتید. اما واقعیت ماجرا کاملاً خالی از هرگونه خباثت است. این فقط همان استنتاج بیزی (Bayesian inference) است که در مقیاس کلان کار میکند. برای اینکه بفهمید چرا بالا رفتن در رنکها چنین حسی به آدم میدهد، باید نگاهی به ریاضیات پایهای بیندازید که این میدانهای نبرد دیجیتال را اداره میکنند.[3]
شالوده تمام سیستمهای مچمیکینگ مدرن، سیستم رتبهبندی «الو» (Elo) است که در دهه ۱۹۶۰ توسط آرپاد الو، استاد فیزیک مجارستانی-آمریکایی، برای رتبهبندی شطرنجبازان ابداع شد. نبوغ الو در سادگیاش بود: به هر رقیب یک عدد واحد اختصاص میداد. وقتی دو بازیکن روبهروی هم قرار میگیرند، سیستم اعداد آنها را مقایسه میکند تا برنده را پیشبینی کند. اگر شانس اول برد پیروز شود، چند امتیازی میگیرد. اما اگر بازیکن ضعیفتر شگفتیساز شود، امتیاز هنگفتی به جیب میزند. این یک تبادل با جمع صفر است که در گذر زمان، یک جمعیت را بر اساس مهارتشان دستهبندی میکند.
اما سیستم استاندارد الو وقتی پای بازیهای ویدیویی مدرن به میان میآید، کاملاً کم میآورد. یک سیستم کلاسیک الو فرض را بر یک مسابقه تنبهتن مثل شطرنج میگذارد. این سیستم هیچ درک ذاتی از مفهوم «تیم» ندارد، یعنی نمیتواند تغییرات رتبه را بهراحتی بین یک جوخه چهارنفره تقسیم کند؛ جایی که یک نفر کل تیم را به دوش کشیده و دیگری عملاً هیچ نقشی نداشته است. علاوه بر این، الو با یک بازیکن کهنهکار با ۱۰۰۰ مسابقه و رتبه ۱۵۰۰ دقیقاً همانطوری برخورد میکند که با یک تازهکار که بعد از پنج بازی به رتبه ۱۵۰۰ رسیده است. سرور میداند که رتبه بازیکن کهنهکار بسیار قابلاعتمادتر است، اما سیستم استاندارد الو دایره لغات ریاضی لازم برای بیان این قطعیت را ندارد.
همین محدودیت باعث شد تا مارک گلیکمنِ آمارشناس، سیستم «گلیکو» (Glicko) را در سال ۱۹۹۵ و بعداً نسخه جانشین آن یعنی Glicko-2 را توسعه دهد. گلیکمن یک مفهوم جدید و حیاتی را معرفی کرد: انحراف رتبه (RD). به جای یک عدد واحد، مهارت یک بازیکن به صورت یک بازه نشان داده میشود. رتبه ۱۵۰۰ با RD برابر با ۵۰ به این معنی است که سیستم ۹۵ درصد اطمینان دارد مهارت واقعی بازیکن جایی بین ۱۴۰۰ تا ۱۶۰۰ است. هرچه بازیکن بازیهای بیشتری را تمام کند، RD او پایینتر میآید و با تمرکز سیستم روی توانایی واقعی او، این بازه اطمینان باریکتر میشود.[2]
همین محدودیت باعث شد تا مارک گلیکمنِ آمارشناس، سیستم «گلیکو» (Glicko) را در سال ۱۹۹۵ و بعداً نسخه جانشین آن یعنی Glicko-2 را توسعه دهد.
سیستم Glicko-2 متغیر سومی را هم به این معادله اضافه کرد: نوسان (Volatility). طبق مستندات مارک گلیکمن، «معیار نوسان نشاندهنده میزان نوسان مورد انتظار در رتبه یک بازیکن است.» اگر بازیکنی ناگهان شروع به بازیهای غیرقابلپیشبینی کند — یعنی بازیهایی که باید ببازد را ببرد و بازیهایی که باید ببرد را ببازد — نوسان او به شدت بالا میرود. این جهش، بازه اطمینان او را بازتر میکند و اجازه میدهد رتبهاش با شدت بیشتری تغییر کند. این کار تضمین میکند که اگر بازیکنی سبک بازیاش را اساساً تغییر داد یا بعد از یک وقفه طولانی برگشت، سیستم بتواند سریعاً خودش را با او تطبیق دهد.[2]
وقتی بخش تحقیقات مایکروسافت برای راهاندازی ایکسباکس لایو و بازی هیلو ۲ (Halo 2) در سال ۲۰۰۴ به یک موتور مچمیکینگ نیاز پیدا کرد، آنها همین مفاهیم احتمالی را برداشتند و TrueSkill را ساختند. سیستم TrueSkill یک سیستم رتبهبندی کاملاً بیزی است که هر بازیکن را به شکل یک توزیع گاوسی (Gaussian distribution) مدلسازی میکند؛ توزیعی که با یک میانگین (μ، بهترین حدس از مهارت بازیکن) و یک انحراف معیار (σ، میزان عدم اطمینان سیستم) تعریف میشود. سیستم TrueSkill بازیکنان را با میانگین ۲۵ و انحراف معیار ۸٫۳۳۳ شروع میکند. مهارت واقعی یک بازیکن بین μ ± 2σ تخمین زده میشود، یعنی نقطه شروع یک بازیکن جدید میتواند هر جایی بین ۸٫۳۳۴ تا ۴۱٫۶۶۶ باشد.[1]
سیستم TrueSkill مشکل تیم بودن را از طریق یک فرض ریاضی به نام جمعپذیری حل کرد. وقتی یک تیم چهارنفره تشکیل میشود، سرور خیلی ساده میانگینها و واریانسهای آنها را با هم جمع میکند تا یک توزیع گاوسی عظیم و واحد برای کل جوخه بسازد. سپس این توزیع تیمی را با استفاده از یک الگوریتم پیامرسانی گراف عاملی، با توزیع تیم حریف مقایسه میکند. قبل از اینکه مسابقه حتی شروع شود، سرور درصد دقیق شانس پیروزی هر دو طرف را حساب کرده و این فاصله را به یک معیار قابل پیشبینی تبدیل کرده است.[1]
هر مسابقه یک بهروزرسانی بیزی به همراه دارد. وقتی بازی تمام میشود، سرور باورهای خودش را آپدیت میکند. میانگین بر اساس نتیجه بالا یا پایین میرود و انحراف معیار کوچکتر میشود، چون هر نقطه داده جدید، سیستم را در ارزیابیاش کمی مطمئنتر میکند. همانطور که محققان MetricGate در تحلیل این الگوریتم اشاره میکنند: «بازیکنان جدید سریعاً همگرا میشوند؛ کهنهکارها به آرامی جابهجا میشوند — این دقیقاً همان رفتار مچمیکینگی است که شما میخواهید.» بازیکنان جدید شاهد نوسانات شدید رتبه هستند چون انحراف معیارشان بسیار بزرگ است؛ اما رتبه کهنهکارها به سختی تکان میخورد، چون سیستم از نظر ریاضی کاملاً مطمئن است که جایگاه واقعی آنها کجاست.
دقیقاً همینجاست که اصطکاک بین روانشناسی انسان و ریاضیات مچمیکینگ خودش را نشان میدهد. بازیکنان این کوچک شدن انحراف معیار را به عنوان یک «تله» مصنوعی از طرف بازی برداشت میکنند. در واقعیت، الگوریتم صرفاً دادههای کافی جمعآوری کرده تا عملکرد آنها را با دقت پیشبینی کند. برای بیرون آمدن از این وضعیت، یک بازیکن نمیتواند فقط با بیشتر بازی کردن راه به جایی ببرد؛ او باید مهارت واقعیاش را به طور بنیادین ارتقا دهد تا بتواند به طور مداوم پیشبینیهای سرور را شکست دهد.[3]
وقتی یک بازیکن واقعاً پیشرفت میکند، ریاضیات در واقع به نفع او کار میکند. از آنجا که سیستمهایی مثل Glicko-2 و TrueSkill نوسان و عدم قطعیت را ردیابی میکنند، یک نوار پیروزی غیرمنتظره در برابر حریفانی با رتبه بالاتر، الگوریتم را مجبور میکند تا به قطعیت قبلی خود شک کند. انحراف معیار گسترش مییابد، ضریب بهروزرسانی بیشتر میشود و رتبه بازیکن بسیار سریعتر از یک سیستم خشک و انعطافناپذیر الو بالا میرود. سرور جلوی پیشرفت کسی را نمیگیرد؛ فقط منتظر یک مدرک ریاضی است که ثابت کند بازیکن واقعاً تکامل یافته است.[2]
نکات کلیدی
- مچمیکینگ در بازیهای ویدیویی مدرن بر پایه استنتاج بیزی استوار است، نه سیستم سنتی الو که در شطرنج استفاده میشود.
- الگوریتمهایی مثل Glicko-2 و TrueSkill مهارت بازیکن را به جای یک عدد ثابت، به عنوان بازهای از احتمالات مدلسازی میکنند.
- هر مسابقه، هم تخمین سیستم از مهارت بازیکن و هم میزان اطمینانش به آن تخمین را بهروزرسانی میکند.
- عملکرد نامنظم یا بردهای غیرمنتظره، معیار نوسان بازیکن را افزایش میدهد که از نظر ریاضی توانایی او برای بالا رفتن در رنک را سرعت میبخشد.
- تصور گیر افتادن در «جهنم الو» زمانی رخ میدهد که الگوریتم به مهارت یک بازیکن کاملاً مطمئن میشود و برای تغییر این باور ریاضی، به شگفتیسازیهای مداوم نیاز دارد.
بررسی عمیق دیدگاهها
دیدگاه مهندس مچمیکینگ
الگوریتمها برای یافتن حقیقت طراحی شدهاند، نه برای پاداش دادن به بازی کردنهای طولانی و طاقتفرسا.
از دیدگاه مهندسی، یک الگوریتم مچمیکینگ زمانی موفق است که بتواند نتیجه یک مسابقه را قبل از شروع آن به دقت پیشبینی کند. هدف این است که فاصله ریاضی بین دو تیم به حداقل برسد و احتمال پیروزی ۵۰ درصدی برای هر دو طرف تضمین شود. مهندسان کوچک شدن انحراف معیار را یک مجازات نمیدانند، بلکه آن را نشانه موفقیت سیستم در شناسایی سطح مهارت واقعی بازیکن میبینند. اگر رنک یک بازیکن دیگر تکان نمیخورد، یعنی الگوریتم دقیقاً همانطور که باید کار میکند.
دیدگاه بازیکن رقابتی
رنک باید بازتابی از زمان صرفشده و عملکرد اخیر باشد، نه فقط یک خط پایه ثابت ریاضی.
بازیکنان مچمیکینگ را از دریچه پیشرفت و پاداش تجربه میکنند. وقتی سیستمی از نظر ریاضی آنها را در یک رنک خاص قفل میکند چون انحراف معیارشان کوچک شده، اصطکاک روانی شدیدی ایجاد میشود. بازیکنان اغلب احساس میکنند که پیشرفتهای ظریفشان توسط الگوریتمی که از قبل تصمیمش را گرفته نادیده گرفته میشود. همین موضوع به باور فراگیر «جهنم الو» دامن میزند؛ این ایده که سیستم فعالانه جلوی صعود آنها را میگیرد تا نرخ برد متعادلی را به آنها تحمیل کند.
دیدگاه طراح بازی
ریاضیات محض باید پشت سیستمهای پیشرفت پنهان شود تا بازیکنان درگیر بازی بمانند.
طراحان بازی بین مهندسان و بازیکنان قرار دارند و وظیفهشان این است که واقعیت تلخ استنتاج بیزی را به تجربهای پاداشدهنده تبدیل کنند. آنها میدانند که اگر بازیکنان رتبه ریاضی واقعی و ثابت خود را ببینند، انگیزهشان را از دست داده و بازی را رها میکنند. برای حل این مشکل، طراحان اغلب «رنک» ظاهری را از «رتبه مچمیکینگ» پنهان (MMR) جدا میکنند. این کار اجازه میدهد رنک ظاهری به آرامی بالا برود و به زمان صرفشده توسط بازیکن پاداش دهد، در حالی که MMR پنهان تضمین میکند مسابقات از نظر ریاضی عادلانه باقی بمانند.
چرا مهم است
فهمیدن ریاضیات پشت الگوریتمهای مچمیکینگ، کلافگی بازیهای رقابتی را از بین میبرد. به ما نشان میدهد که سیستم از روی غرضورزی جلوی پیشرفت شما را نگرفته، بلکه فقط منتظر یک مدرک آماری محکم است تا باور کند واقعاً بازیکن بهتری شدهاید.
پرسشهای متداول
چرا برای یک باخت امتیاز بیشتری از دست میدهم تا برای یک برد؟
این اتفاق زمانی میافتد که رنک ظاهری شما بالاتر از رتبه پنهان مچمیکینگ (MMR) شما باشد. سیستم از نظر ریاضی به مهارت واقعی شما اطمینان دارد و رنک ظاهریتان را پایین میکشد تا با آن مطابقت پیدا کند.
آیا الگوریتم مچمیکینگ نرخ برد ۵۰ درصدی را تحمیل میکند؟
خیر. سیستم باخت را به شما تحمیل نمیکند. فقط شما را در برابر بازیکنانی با مهارت برابر قرار میدهد. وقتی مقابل حریفانی با مهارت یکسان بازی میکنید، نرخ برد ۵۰ درصدی یک نتیجه طبیعی و ریاضی است.
چطور از «جهنم الو» (Elo Hell) بیرون بیایم؟
از آنجا که سیستمهای مدرن نوسانات را ردیابی میکنند، تنها راه فرار این است که به طور مداوم بازیهایی را ببرید که سیستم انتظار دارد در آنها ببازید. این کار متغیر عدم قطعیت شما را افزایش داده و روند کسب امتیازتان را سرعت میبخشد.
منابع
[1]Microsoft Researchمهندسان مچمیکینگTrueSkill Ranking System
مطالعه در Microsoft Research →
[2]Glickoمهندسان مچمیکینگThe Glicko-2 system
مطالعه در Glicko →
[3]تیم سردبیری کوهستانطراحان بازیتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
نظرات
بیشتر در سرگرمی
مشاهده همه →اقتصاد تولید محتوا
چگونه قابلیت صدای چندزبانه یوتیوب، اقتصاد تولیدکنندگان محتوا را زیر و رو کرد
6 منبع
مجوز موسیقی
ماجرای تقسیم ۵۰/۵۰ و بند MFN: پشتپرده مجوز موسیقی در تلویزیون واقعاً چه خبر است؟
6 منبع
تکنولوژی انیمیشن
معامله بر سر ۸، ۱۲ و ۲۴ فریم بر ثانیه: انیمهها چطور بین کیفیت تصویر و بودجه تعادل ایجاد میکنند؟
5 منبع
جنگهای استریمینگ
نتفلیکس در پی نگرانی از کاهش تعامل کاربران، تغییر مسیر عمده به سمت تلویزیون زنده و فروش مجدد خدمات رقبا را بررسی میکند
3 منبع
هر زاویه. هر روز.
دریافت سرگرمی اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.





