Я знаю алгоритм Truskill, він досить складний, але ефективний.
Моє запитання: чи існують інші алгоритми / методи, щоб визначити навички гравців для точного вимірювання багатокористувацької змагальної гри?
Я знаю алгоритм Truskill, він досить складний, але ефективний.
Моє запитання: чи існують інші алгоритми / методи, щоб визначити навички гравців для точного вимірювання багатокористувацької змагальної гри?
Відповіді:
Я думаю, що просити "найпростішого найефективнішого" - це нереальна вимога, але, безумовно, є кілька хороших підходів. Замість того, щоб розбиратися в деталях, я посилаюсь на статтю:
http://www.lifewithalacrity.com/2006/01/ranking_systems.html
Це стосується:
В цілому ви побачите, що всі вони в значній мірі відрізняються на одну і ту ж тему - ви вибираєте початкове або середнє значення для гравця, а потім ці значення використовуються для прогнозування результату гри. Різниця між фактичним результатом і передбачуваним результатом використовується для зміни балів для кожного гравця, і процес повторюється з налагодженими балами. Оскільки кожна модифікація балів робить прогнозований результат більш точним, бали збігаються на їх "справжніх" значеннях. (Це насправді передбачає, що це гра навичок, а не випадковість, що вміння, про яке йде мова, може лінійно ранжуватися тощо).
Залежить від гри. Ви можете зіткнутися з кількома проблемами:
Для ігор, у яких є складова удачі та компонент навичок (Bridge, Poker, Magic: The Gathering тощо), більшість алгоритмів не враховує того, що слабшому гравцеві іноді може пощастити. Якщо ваша гра підпадає під цю категорію, вам потрібно буде трохи попрацювати. Як правило, це означає з'ясувати, який відсоток везіння, а який відсоток - вміння (складний трюк, але якщо ви вже використовували алгоритм, заснований на навичках, як Elo, ви можете запустити деякі показники за результатами, щоб зрозуміти, наскільки часто алгоритм прогнозує засмучення порівняно з тим, як часто це відбувається насправді). Тоді вам доведеться змінити алгоритм, і саме те, на що його потрібно змінити, ймовірно, виходить за рамки цього питання.
Для ігор, де матчами можна маніпулювати (я можу вибрати гру з рангом проти свого друга), ви повинні поставити додаткові гарантії, щоб не допустити, щоб гравці цілеспрямовано кидали матчі.
Для ігор, де гравець може «вийти з практики», якщо він не грає регулярно, система може передбачати деяку часову деградацію. Система Glicko - це модуль Elo, який додає змінну "невизначеності" до рейтингу кожного гравця, виходячи з того, скільки ігор вони грали і як останнім часом вони грали в них; чим впевненіший рейтинг гравця, тим менше він змінюється від гри до гри.
Мультіплеерні ігри (будь то безкоштовні для всіх, на базі команд чи інша структура гравців), звичайно, потребують особливого догляду. Деякі ігри, що базуються на команді, полегшують визначення внеску кожної людини порівняно з іншими.
Також запитайте, яка мета вашої рейтингової / рейтингової системи. У професійних іграх і видах спорту мета є статистичною: рейтинг використовується як предиктор результату будь-якого даного матчу. Основна мета тут - точність. Однак цього рідко хочуть гравці; натомість вони хочуть прогресування, відчуття, що вони стають кращими, і піднімаються через ряди (чи справді вони стають кращими, чи ні). Коротше кажучи, існує компроміс між точністю та забавою, що вам потрібно врахувати.
Що вам стало складніше в TrueSkill ? Я подумав, що це простий алгоритм із достатньою кількістю ручок для налаштування різних режимів гри, і він зводиться до Elo, коли гра з високою визначеністю грає.
Якщо ви шукаєте найпростіший спосіб ефективного ранжування та вимірювання гравця в багатокористувацькому середовищі - моя рекомендація - TrueSkill.