Я знаю алгоритм Truskill, он довольно сложный, но эффективный.
Мой вопрос: существуют ли другие алгоритмы / методы для определения навыков игрока для точного измерения для многопользовательской соревновательной игры?
Я знаю алгоритм Truskill, он довольно сложный, но эффективный.
Мой вопрос: существуют ли другие алгоритмы / методы для определения навыков игрока для точного измерения для многопользовательской соревновательной игры?
Ответы:
Я думаю, что запрос «самого простого и эффективного» является нереалистичным требованием, но, безусловно, есть несколько хороших подходов. Вместо того, чтобы вдаваться в подробности, я сделаю ссылку на статью:
http://www.lifewithalacrity.com/2006/01/ranking_systems.html
Это охватывает:
В целом вы увидите, что все они в значительной степени являются вариациями на одну и ту же тему - вы выбираете начальное или среднее значение для игрока, а затем эти значения используются для прогнозирования результата игры. Разница между фактическим результатом и прогнозируемым результатом используется для изменения оценок для каждого игрока, и процесс повторяется с откорректированными результатами. Поскольку каждая модификация баллов делает прогнозируемый результат более точным, баллы сходятся по своим «истинным» значениям. (На самом деле это предполагает, что это игра на ловкость, а не на шанс, что рассматриваемое умение может быть линейно ранжировано и т. Д.)
Зависит от игры. Есть несколько проблем, с которыми вы можете столкнуться:
Для игр, в которых есть компонент удачи и навык (Мост, Покер, Магия: Сбор и т. Д.), Большинство алгоритмов не учитывают тот факт, что слабому игроку иногда может повезти. Если ваша игра попадает в эту категорию, вам нужно будет поработать. Обычно это означает, что выяснить, какой процент является удачей, а какой процент - навыком (сложная уловка, но если вы уже использовали алгоритм, основанный на навыках, такой как Elo, вы можете запустить некоторые метрики для результатов, чтобы выяснить, как часто алгоритм предсказывает расстройство против того, как часто это происходит на самом деле). Затем вы должны изменить алгоритм, и именно то, на что его изменить, вероятно, выходит за рамки этого вопроса.
В играх, в которых можно манипулировать матчами (я могу выбрать игру против моего друга по рейтингу), вы должны установить дополнительные меры предосторожности, чтобы игроки не могли целенаправленно бросать матчи.
Для игр, в которых игрок может «выйти из практики», если он не играет регулярно, система может повлечь за собой какое-то временное ухудшение. Система Glicko - это мод Elo, который добавляет переменную «неопределенности» в рейтинг каждого игрока, основываясь на том, сколько игр они сыграли и как недавно они в них играли; чем точнее рейтинг игрока, тем меньше он меняется от игры к игре.
Разумеется, многопользовательские игры (будь то бесплатные для всех, командные или какая-то другая структура игроков) требуют особого внимания. Некоторые командные игры позволяют легче определить вклад каждого человека по сравнению с другими.
Также спросите, какова цель вашей системы рейтинга / рейтинга. В профессиональных играх и спорте цель статистическая: рейтинг используется как предиктор результата любого конкретного матча. Основная цель здесь - точность. Тем не менее, это редко то, что игроки хотят; вместо этого они хотят прогрессирования, ощущения, что они поправляются и поднимаются по карьерной лестнице (независимо от того, улучшаются они на самом деле или нет). Короче говоря, есть баланс между точностью и весельем, которые вы должны рассмотреть.
Что вы нашли сложного в TrueSkill ? Я подумал, что это простой алгоритм с нужным количеством ручек для подстройки под разные режимы игры, и он сводится к Elo, когда игра идет с полной уверенностью.
Если вы ищете самый простой способ эффективно оценить и измерить игрока в многопользовательской среде - я рекомендую TrueSkill.
А как насчет парной системы, такой как Эло ? Это использовалось целую вечность в "нормальных" спортивных состязаниях с превосходными результатами.
Для свободных для всех матчей вы можете интерпретировать их как набор парных матчей и назначать очки на основе относительного положения.