Плеер, оценивающий для игры со случайными командами

Я работаю над алгоритмом для выигрыша индивидуальных игроков в основанной на команде игре. Проблема состоит в том, что никакие фиксированные команды не существуют - каждый раз, когда 10 игроков хотят играть, они разделены на две (несколько) ровных команды и играют друг друга. Поэтому не имеет никакого смысла выигрывать команды, и вместо этого мы должны полагаться на оценки индивидуального игрока.

Существует много проблем, которые я хочу принять во внимание:

  • Новым плеерам нужен своего рода временный рейтинг для достижения их "реальной" оценки, прежде чем их оценка будет считать то же в качестве закаленных плееров.
  • Система должна принять во внимание, что команда может состоять из соединения уровней квалификации плеера - например, одно действительно хорошее, одна польза, два посредственных, и одна действительно плохая. Поэтому простое "среднее число" оценок плеера, вероятно, не будет достаточно, и оно, вероятно, должно быть взвешено в некотором роде.
  • Оценки корректируются после каждой игры и как таковой алгоритм должен быть основан на основании на игру, не на "оценку периода". Это могло бы измениться, если хорошее решение подходит (я знаю, что Glicko использует период оценки).

Обратите внимание, что обман не является проблемой для этого алгоритма, так как у нас есть другие меры проверки плееров.

Я посмотрел на TrueSkill, Glicko и ELO (который является тем, что мы в настоящее время используем). Мне нравится идея TrueSkill/Glicko, где у Вас есть отклонение, которое используется, чтобы определить, насколько точный оценка, но ни один из алгоритмов не принимает случайную перспективу команд во внимание и, кажется, главным образом на основе 1v1 или игры FFA.

Было предложено где-нибудь оценить плееры, как будто каждый плеер из команды-победительницы избил все плееры в проигрывающей команде (25 "поединков"), но я не уверен, является ли это правильным подходом, так как это могло бы дико расширить оценку, когда действительно слабый игрок находится на команде-победительнице и получает победу по сравнению с очень хорошим плеером в проигрывающей команде.

Любому и всем предложениям рады!

Править: Я ищу алгоритм для установленных плееров + некоторый способ оценить новичков, не эти объединенные два. Извините за беспорядок.

Нет никакого AI, и игроки только играют друг друга. Игры определяются победой/потерей (нет никаких, тянут).

16
задан Christian P. 20 June 2010 в 12:15
поделиться

7 ответов

Предварительные рейтинговые системы всегда несовершенны, но лучшие из них (такие как Elo) разработаны так, чтобы корректировать предварительные рейтинги быстрее, чем рейтинги уже состоявшихся игроков. Это признает, что попытки установить рейтинг способностей на основе всего лишь нескольких игр с другими игроками по своей природе будут сопряжены с ошибками.

Я думаю, что вы должны использовать средний рейтинг всех игроков команды соперника в качестве исходных данных для определения предварительного рейтинга начинающего игрока, но рассматривать это как одну игру, а не как N игр против N игроков. Каждая игра на самом деле является всего лишь одной выборкой данных, и система Эло обрабатывает накопление этих игр для улучшения оценки рейтинга отдельного игрока с течением времени, прежде чем переключиться на обычную систему рейтинга.

Для простоты я бы также не делал различий между установленными и предварительными рейтингами членов команды-соперника при расчете нового рейтинга для какого-либо члена другой команды (если только Эло не требует этого). Все эти рейтинги имеют подразумеваемую погрешность, поэтому нет смысла добавлять ненужные сложности, которые, вероятно, имеют небольшую ценность для улучшения рейтинговых оценок.

5
ответ дан 30 November 2019 в 23:18
поделиться

Первый вопрос имеет очень игривый характер. ' решение. вы можете либо создать лобби для новичков для первых двух игр, где игроки еще не могут видеть свой счет, пока они не закончат определенное количество игр, которые предоставят вам достаточно данных для точного рейтинга.
Другой вариант - это вариант первого, но более простой - дать им один матч против ИИ, который будет использоваться для определения начального счета (например, посмотрите на Quake Live).

0
ответ дан 30 November 2019 в 23:18
поделиться

Несколько лет назад в журнале Game Developer Magazine была опубликована статья некоторых ребят из команды TrueSkill в Microsoft, в которой объяснялись некоторые из своих соображений, лежащих в основе принятых там решений. В нем определенно упоминаются командные игры для Xbox Live, так что он должен быть хотя бы в некоторой степени актуальным. У меня нет прямой ссылки на статью, но вы можете заказать предыдущий выпуск здесь: http://www.gdmag.com/archive/oct06.htm

Один конкретный момент, который я помню из статья оценивала команду в целом, а не, например, дает больше очков игроку, который убил больше всех. Это было сделано для того, чтобы побудить людей помочь команде победить, а не просто попытаться максимизировать свой собственный счет.

Я полагаю, что была также некоторая дискуссия о настройке параметров, чтобы попытаться ускорить сходимость для точной оценки навыков игрока, что похоже на то, что вас интересует.

Надеюсь, что это поможет ...

1
ответ дан 30 November 2019 в 23:18
поделиться

как рассчитывается «подсчет очков»?,

если команда наберет в сумме 25 очков (оценки всех игроков в team), вы можете разделить очки игроков на общий результат команды * 100, чтобы получить процент от того, сколько этот игрок сделал для команды (или всех очков с обеими командами).

Вы можете рассчитать оценку с помощью этих данных, и если процент ниже, чем, например, 90% членов команды (или членов обеих команд): относитесь к игроку как к новичку и подсчитывайте счет с другим коэффициентом взвешивания.

иногда более простая концепция срабатывает лучше.

0
ответ дан 30 November 2019 в 23:18
поделиться

Во-первых: очень маловероятно, что вы найдете идеальная система. У каждой системы где-то есть изъян.

И отвечу на ваш вопрос: возможно, идеи здесь помогут: Рейтинг Lehman на OkBridge .

Эта рейтинговая система используется (с 1993 года!) На сайте интернет-моста OKBridge. Мост - это партнерская игра, в которую обычно играют командой из 2 человек, противостоящей другой команде из 2 человек. Система рейтинга была разработана для оценки отдельных игроков и учитывает тот факт, что многие люди играют с разными партнерами.

2
ответ дан 30 November 2019 в 23:18
поделиться

Без какой-либо подготовки в этой области мне кажется, что системы ранжирования - это в основном статистическая модель.Хорошая модель со временем приведет к последовательному ранжированию, и цель будет состоять в том, чтобы сойтись как можно быстрее. Мне приходит в голову несколько мыслей, некоторые из которых были затронуты в других публикациях:

  1. Очевидно, что у состоявшихся игроков есть послужной список, а у новых - нет. Так что неопределенность, вероятно, больше для новых игроков, хотя для непоследовательных игроков она может быть очень высокой. Кроме того, это, вероятно, зависит от того, использует ли игра в основном врожденные навыки или приобретенные навыки. Я думаю, вам нужен параметр «дисперсия» для каждого игрока. Дисперсия может состоять из двух частей: истинной дисперсии и «температуры». Температура такая же, как при моделировании отжига, когда у вас есть температура, которая со временем понижается. Предположительно, после достаточного количества игр температура снизится до нуля.
  2. Есть ли несколько аспектов, которые нужно сыграть? Как и в футболе, у вас могут быть хорошие стрелки, хорошие распасовщики, парни, которые хорошо владеют мячом и т. Д. По сути, это будут степени свободы в вашей системе (в моей аналогии с футболом они могут быть, а могут и не быть по-настоящему независимыми). Кажется, что точная модель учла бы это, конечно, у вас может быть модель черного ящика, которая неявно обрабатывает их. Однако я ожидаю, что понимание количества степеней свободы в вашей системе будет полезным при выборе черного ящика.
  3. Как вы делите команды? Ваш алгоритм объединения подразумевает модель того, что делает равные команды. Возможно, вы могли бы использовать эту модель для определения веса для каждого игрока и / или ожидаемого уровня производительности.Если есть разные аспекты навыков игроков, возможно, вы могли бы дать дополнительные очки игрокам, чьи показатели в одном аспекте значительно лучше, чем ожидалось.
  4. Действительно ли игра выигрывает или проигрывает, или же разница в счете может сыграть роль? Поскольку вы сказали, что нет ничьей, это, вероятно, не применимо, но, по крайней мере, близкий результат может означать более высокую неопределенность в результате.
  5. Если вы создаете модель с нуля, я бы разработал ее с намерением что-то изменить. Как минимум, я ожидал, что может быть ряд параметров, которые можно будет настраивать, и даже может быть автонастройка. Например, чем больше у вас игроков и больше игр, тем лучше будут известны начальные значения температуры и начальных рейтингов (при условии, что вы отслеживаете статистику). Но я, конечно, ожидал, что чем больше игр будет сыграно, тем лучше вы сможете построить модель.

Просто набор случайных мыслей, но это похоже на забавную задачу.

2
ответ дан 30 November 2019 в 23:18
поделиться

Каждый раз, когда 10 игроков хотят играть, они делятся на две (в некоторой степени) ровные команды и играют друг с другом.

Это интересно, поскольку подразумевает, что средний уровень мастерства в каждой команде одинаков (и поэтому не имеет значения) и что каждая команда имеет равные шансы на победу. Если предположить, что это ограничение верно, то простой подсчет побед и поражений для каждого отдельного игрока должен быть таким же хорошим показателем, как и любой другой.

-2
ответ дан 30 November 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: