Командные матчи для Dota Bot

У меня есть бот ghost ++, на котором размещаются игры по DotA (карта Warcraft 3, на которой играют 5 против 5 игроков). Я пытаюсь придумать хорошие формулы для баланса игроков, вступающих в матч, на основе их рекордов (у меня есть история игр для нескольких тысяч игр). Я знаком с некоторыми концепциями, необходимыми для подбора игроков, такими как уверенность, основанная на размере выборки количества сыгранных игр, аппроксимация параметров и степени свободы. Таким образом, отбрасывая любые переменные, которые не вносят достаточного вклада в r ^ 2. Мой бот собирает довольно много переменных для каждого игрока из каждой игры:

The Important ones:
Win/Lose/Game did not finish
# of Player Kills
# of Player Deaths
# of Kills player assisted

The not so important ones:
# of enemy creep kills
# of creep sneak attacks
# of neutral creep kills
# of Tower kills
# of Rax kills
# of courier kills

Краткое объяснение:

Убийства / смерти не определяют, кто победит, но золота, полученного и потерянного от этого, обычно достаточно, чтобы изменить ход игры. Убийства Tower / Rax - вот что является целью игры (как только команда теряет все свои башни / rax, их трон может быть атакован, а если он будет разрушен, они проиграют), но я не На самом деле я считаю их важными, потому что убийство башни достается довольно случайно. И есть вероятность, что если вы разрушите башню, это произойдет только потому, что какой-то другой игрок преуспевает и отвлекает другую команду в другом месте на карте.

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

Возьмите игрока, который действительно хорош в убийствах, имеет 40 убийств и только 10 смертей, но в своих 5 играх он выиграл только один раз. Следует ли мне отдать ему должное за такой высокий показатель убийств, несмотря на проигрыш (проигрывая, трудно поддерживать положительное соотношение убийств / смертей)? Или я должен прикончить его за проигрыш, если предположить, что, несмотря на хорошее соотношение убийств / смертей, он, вероятно, играет очень жадно, только заботясь о себе, а не помогая своей команде?

В конце концов, я не думаю, что мне нужно гадать на подобные вопросы, потому что у меня так много данных. Но я действительно не знаю, как смотреть на данные, чтобы отвечать на подобные вопросы. Может ли кто-нибудь помочь мне придумать формулы, которые помогут сбалансировать команду и предсказать результат?

Спасибо, Дэн


person Dan    schedule 18.12.2009    source источник


Ответы (1)


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

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

person jball    schedule 18.12.2009
comment
Ну, есть 60 героев на выбор. Я провожу игры, в которых игрокам дается случайный герой. 3 убийства / 3 смерти могут быть хороши для некоторых героев, но ужасны для некоторых героев-убийц. Отчасти моя проблема в том, что у большинства игроков есть 5 или меньше игр, так что разбивать людей по категориям не так уж и много. Возможно, мне придется отбросить стиль как шум, уводящий меня дальше от желаемого значения r ^ 2. Типы игроков будут непрерывными ... и поэтому мы будем давать каждому игроку по крайней мере двухмерную оценку (навык + тип), что может быть слишком много, чтобы извлечь из ограниченной выборки каждого игрока. - person Dan; 19.12.2009
comment
Закончились персонажи ... Я оцениваю ваши отзывы и постараюсь посмотреть, смогу ли я увидеть отдельные типы, которые способствуют выигрышу / проигрышу, и посмотреть, смогу ли я придумать некоторые значимые характеристики. В конце концов, мне придется поэкспериментировать с множеством различных способов разрезания данных и просто посмотреть, что лучше ... ни одна модель не станет лучшей регрессией переменных. - person Dan; 19.12.2009
comment
Даже приблизительного типа игрока с одним или двумя параметрами может быть достаточно, чтобы построить полезные командные веса. Возможно, такие вещи, как стойка = наступление / защита, фокус агрессии = игрок / крип / здание, стиль = соло / группа. - person jball; 19.12.2009