Я работаю над алгоритмом для оценки отдельных игроков в командной игре. Проблема в том, что никаких фиксированных команд не существует - каждый раз, когда 10 игроков хотят играть, они делятся на две (несколько) даже команды и играют друг с другом. По этой причине нет смысла оценивать команды, и вместо этого нам нужно полагаться на рейтинги отдельных игроков.
Есть ряд проблем, которые я хочу принять во внимание:
- Новые игроки нуждаются в каком-то предварительном рейтинге, чтобы достичь своего "реального" рейтинга, прежде чем их рейтинг будет таким же, как у опытных игроков.
- Система должна учитывать, что команда может состоять из сочетания уровней навыков игрока - например. один действительно хороший, один хороший, два посредственных, и один действительно бедный. Поэтому простой "средний" рейтинг игроков, вероятно, не будет достаточным, и его, вероятно, нужно каким-то образом учесть.
- Рейтинги корректируются после каждой игры, поэтому алгоритм должен основываться на каждой игре, а не на "период рейтинга". Это может измениться, если появится хорошее решение (я знаю, что Glicko использует рейтинговый период).
Обратите внимание, что обман не является проблемой для этого алгоритма, так как у нас есть другие меры проверки игроков.
Я просмотрел TrueSkill
, Glicko
и ELO
(это то, что мы сейчас используем). Мне нравится идея TrueSkill/Glicko, где у вас есть отклонение, которое используется для определения того, насколько точна оценка, но ни один из алгоритмов не учитывает случайные команды и, по-видимому, в основном основан на играх 1v1 или FFA.
Было высказано предположение, что вы оцениваете игроков так, как будто каждый игрок из команды-победителя избил всех игроков в проигрывающей команде (25 "дуэлей" ), но я не уверен, что это правильный подход, поскольку это может быть дико раздуйте рейтинг, когда действительно бедный игрок находится в выигрышной команде и получает выигрыш против очень хорошего игрока в проигрывающей команде.
Любые предложения приветствуются!
EDIT: Я ищу алгоритм для установленных игроков + способ ранжировать новичков, а не два вместе взятых. Извините за путаницу.
Нет AI, и игроки играют друг с другом. Игры определяются победой/потерей (нет ничьей).