А у меня вот вопросик. Под спойлером партия. Пипцу в олл-тайм дали +10 , Аверу +14, а мне +8 Это потому что хуже всех играла или по половому признаку? ) Не то чтобы это меня сильно беспокоило, но вот решила разглядеть картинку и не понимаю: как, блин, это работает? )
Я ж не жадничаю, просто не понимаю как это работает ) толку то от того ЛИ никакого, только рейтинг понижает судя по всему )
Не, у меня рейтинг олл-тайм очень низкий, значит для меня состав мирных по рейтингу сильнее, чем для вас, поэтому я очков больше залутал
Было бы конечно неплохо, чтобы в итоге Dominator расписал готовую формулу, чтобы у всех было понимание
И, кстати, заметь, что ЛИ еще не внесены, то есть за это еще накинут, и так как ты топ-1 ЛИ, то тебе больше дадут
Это нормально и логично потому что. Сильный игрок, проиграв слабому, ставит под сомнение свой уровень и должен больше заплатить штраф. Также как и слабый игрок, если выиграл у сильного, значит уровень его возможно неоправданно низок на бумаге и такой игрок должен получить компенсацию за это.
Как бы на дистанции это уравновешивается тем, что сильный игрок на самом деле будет редко проигрывать слабому, а слабый редко выигрывать у сильного. Ну если брать систему в идеале.
А если не ЛИ, то просто дулю за победу Ну и ладно, не очень то и хотелось ) А система Бори самая лучшая получилась )
Да почему дулю? За победу ты в любом случае получаешь, просто меньше, чем игрок, у которого рейтинг ниже твоего
Буквально в двух словах: Spoiler: Формула подсчета рейтинга 1. Сначала определяется ожидаемый результат Перед каждой партией программа сравнивает Elo двух команд. Чем сильнее команда относительно соперника, тем выше вероятность её победы по рейтингу. Ожидаемый результат команды считается по классической Elo-формуле: E=1+10(Ropp−Rteam)/S1 где: Rteam — средний Elo своей команды; Ropp — средний Elo команды соперника; S — шкала Elo из настроек программы; E — ожидаемая вероятность победы от 0 до 1. Например, если команды равны по рейтингу, ожидание примерно 50% на 50%. Если одна команда заметно сильнее, условно может получиться 65% на 35%. 2. После игры определяется базовое изменение Elo Используется фактический результат: победа = 1; поражение = 0. Формула: ΔElo=K×(Result−Expected) K — К-фактор, который задаётся в настройках. Именно он определяет, насколько сильно одна партия способна двигать рейтинг. Простой пример при K = 20. Равные команды имели ожидание 0.50. Победитель: 20×(1−0.5)=+10 Проигравший: 20×(0−0.5)=−10 То есть при абсолютно равных составах получится примерно: победа +10 Elo / поражение −10 Elo. 3. Сила соперника имеет значение Если слабая по Elo команда неожиданно побеждает сильную, она получает больше. Например, ожидание слабой команды было всего 30%: 20×(1−0.30)=+14 Она получает +14. Сильная команда ожидалась победителем с вероятностью 70%: 20×(0−0.70)=−14 Она теряет −14. Обратная ситуация — фаворит действительно выиграл: 20×(1−0.70)=+6 То есть за ожидаемую победу сильная команда получает всего +6, а слабая за ожидаемое поражение теряет примерно −6. Поэтому система поощряет победы над сильными составами и меньше награждает за победы над заведомо более слабыми. 4. Затем применяется модификатор по количеству сыгранных игр В последних настройках мы добавили отдельные коэффициенты для новых игроков: 0–10 игр → свой процент 11–20 игр → свой процент 21–30 игр → свой процент 31+ игр → обычные 100% Формула становится: ΔEloexperience=ΔElo×100Modifier Например, базовое изменение: +10 Elo а для игрока с 0–10 играми установлено: 150% Тогда: 10×1.5=+15 При поражении это работает симметрично: −10 × 150% = −15 Elo. То есть рейтинг новичка можно заставить быстрее находить его реальный уровень. При 100% никакого дополнительного эффекта нет. 5. После этого учитывается MVP В программе есть два режима MVP. Режим «фиксированные очки» Например в настройках: 1 место MVP: +8 2 место: +5 3 место: +3 Тогда эти очки добавляются к рассчитанному изменению. Если игрок должен был получить: +12 и стал MVP №1 с бонусом +8: +12 + 8 = +20 Elo. Режим «процент» Здесь MVP изменяет результат партии на заданный процент. Например MVP №1 = 50%. При победе: +10 → +15 потому что: 10+50%=15 Но важная особенность, которую мы специально вводили: MVP проигравшей команды получает меньший штраф. Если обычный игрок проигравшей команды получает: −10 а MVP-бонус составляет 50%, то MVP получает: −5 Elo. То есть MVP не получает странный «бонус −50%» поверх поражения, а именно смягчает потерю рейтинга. Полная цепочка В упрощённом виде весь расчёт одного игрока выглядит так: 1. Средний Elo своей команды и соперника ↓ 2. Ожидаемая вероятность победы ↓ 3. Фактическая победа/поражение ↓ 4. K-фактор ↓ 5. Получаем базовый ΔElo ↓ 6. Применяем модификатор 0–10 / 11–20 / 21–30 игр ↓ 7. Применяем MVP-бонус ↓ 8. Получаем окончательное изменение Elo игрока То есть концептуально: ΔR=K(Result−Expected)×ExperienceModifier+MVP При процентном MVP последний этап фактически является процентной корректировкой полученного Δ, а не простым прибавлением фиксированного числа. 6. Пример целиком Допустим: Средний Elo мафии: 1550 Средний Elo мирных: 1500 По формуле программа определила, что вероятность победы мафии: 57% Мафия действительно победила. При K = 20: 20×(1−0.57)=8.6 После округления базовое изменение составляет примерно: +9 Elo. Игрок мафии сыграл пока только 7 игр. Для диапазона 0–10 установлен коэффициент: 150% Получаем: 9×1.5=13.5 ≈ +14 Elo. Игрок ещё и получил первое место MVP. Если MVP №1 установлен как 50%: 14×1.5=21 Итог: +21 Elo. Другой игрок той же команды без MVP получает: +14 Elo. А если этот MVP проиграл? Допустим его базовый результат после всех предыдущих расчётов: −14 Elo. MVP №1 = 50%. Штраф уменьшается на 50%: −14×(1−0.5)=−7 Итог: −7 Elo. То есть звание MVP имеет смысл даже в проигранной партии.
Блин, я только сейчас понял, что 8-5-3 это фиксированные очки, а не проценты Видимо, я прогуливал, когда это обсуждалось
Может МВП тоже по ожиданиям сделать? Ну типа если стол относительно твоего ЭЛО сильный, то тебе за МВП должно идти больше очков, чем если бы стол был бы относительно твоего ЭЛО слабым, ведь лутать МВП за слабым столом легче, чем за сильным.
По этому ответу как раз не должно получаться, что у игроков одной команды разные изменения, если только они не вызваны модификаторами за количество игр и МВП. А по факту получается, что в пункте один цепочки для конкретного игрока используется его рейтинг, против рейтинга другой команды, а не команда, против команды?
fxd Spoiler Да, верно. Я слишком упростил описание и пропустил ключевую особенность нашей реализации: внутри одной команды игроки могут получить разное изменение Elo, потому что ожидание считается индивидуально для каждого игрока относительно среднего Elo команды соперника. То есть у нас не так: «вся команда получила +10» а так: «каждый игрок команды получает свой ΔElo в зависимости от собственного рейтинга до игры». Для каждого игрока программа берёт его личный Elo перед партией и сравнивает его со средним Elo всей противоположной команды. Формула ожидания конкретного игрока: Ei=1+10(Ropp.avg−Ri)/S1 где Ri — рейтинг конкретного игрока, а Ropp.avg — средний рейтинг всех игроков противоположной команды. И вот это как раз создаёт разницу внутри одной команды. Допустим, мирные играют против мафии со средним Elo 1500. В команде мирных есть два игрока: Игрок A — 1700 Elo Игрок B — 1300 Elo Они оба находятся в одной команде и оба выиграли одну и ту же партию. Но система считает, что для игрока с 1700 победа над составом со средним 1500 была более ожидаемой. Поэтому он получит меньше Elo. Для игрока 1700: EA≈0.76 При K=32: 32×(1−0.76)≈+8 А для игрока 1300: EB≈0.24 32×(1−0.24)≈+24 То есть одна и та же победа может выглядеть примерно так: 1700 Elo → +8 1500 Elo → +16 1300 Elo → +24 И при поражении логика зеркальная. Высокорейтинговый игрок сильнее наказывается за поражение от более слабого среднего состава, а низкорейтинговый теряет меньше. Например против тех же 1500: 1700 Elo → примерно −24 1500 Elo → примерно −16 1300 Elo → примерно −8 И только после этого индивидуального расчёта на каждого игрока отдельно накладываются наши дополнительные правила: Δi=Round[K(Riresult−Ei)]×ExperienceModifieri+MVPi Где по шагам: Личный Elo игрока → средний Elo соперников → индивидуальная ожидаемая вероятность → победа/поражение → K-фактор → индивидуальный базовый ΔElo → модификатор по числу игр → MVP-бонус. Именно поэтому даже два мирных игрока одной команды без MVP могут закончить одну партию с разными изменениями рейтинга. Это важная часть философии нашей системы: сильный игрок должен подтверждать высокий рейтинг стабильностью, а игрок с низким рейтингом получает больший прирост, когда побеждает состав, который система считает сильнее него.
Нет. Домик хочет первые игры сделать "калибровочными" Они должны давать/отнимать больше, что бы если пришел условный руинер, и быстро улетел вниз на 1400 рейтинга, или пришел какой-то уже опытный чудик, который через игру будет ЛИшки лутать, что бы он быстрее взлетел в топ.
Ну хз... Новички будут приходить всегда, будут случайно лутать очки в первых 10 играх и попадать в топы. Необязательно, что вот пришел новичек и началась его карьера и он планомерно будет в игры пилиться. Будет много таких, у кого так и будет это количество игр висеть с высоким рейтингом. Мы вроде боролись со случайным попаданием в топ, а в итоге сделали еще хуже Зачем?
Да и вообще непонятно, зачем новичка сильно наказывать за ошибки и поощрять за попадания. Там почти все решения на рандоме, пока опыта нет.
Ну вот для примера давайте сравним 2 олл-тайм таблицы - с повышенным коэффициентом для новичков и с пониженным. Давайте посмотрим.
Вот это искусственное опускание его на дно вам что дает? Это чтобы, если он катку случайно все-таки потом затащит у вас, вам побольнее было?
Кароч, мне кажется что это какая то усредниловка ) И я не оч понимаю, почему количество игр это что то плохое и от этого нужно уходить подальше По сути это дистанция и она показывает много и рост/ развитие тоже, как и необучаемость, например А так получается, пришел чел на пяток игр. Если не совсем отбитый, сыграл по завещаниям, как сказали, оказался в победителях . В Тиме мафов сел, а напы затащили . И вот уже чел в топе А другой новикан впахивал год, два, три, но табличка его и не показывает, потому что потому )
Да перед каждой игрой все будут смотреть стату. Вот этот мало сыграл если с ним проиграю в одной тиме то снимут много, а вот этот руинет мне постоянно, а у этого вообще низкий эло тоже много снимут да ну его нах и т.д.
Он и стоит понижающий, в меню просто есть настройка где ты любые проценты можешь выставить, GPT то не знает какие у меня проценты стоят, поэтому написал про повышающие потому что обычно их и ставят для калибровки
Я не хочу, я просто писал Серпу что калибровка обычно наоборот делается через повышение. Ну в текущих реалиях понижение адекватнее выглядит, новички за плохие игры сразу не улетают на дно, но и таблица очищается от тех кто сыграл 2-3 игры с победкой и пропал с форума
Если кому-то интересно самому полазить в проге и покрутить ползунки то могу скинуть, но нет гарантии что ратник не идет в подарок
По-тихоньку перевожу из десктопной версии в web. В субботу дам всем линк для возможности самим побегать по базе. Пока из инсайдов добавлен PvP режим. Spoiler За размер и т.д. писать не нужно, масштаб уменьшил чтобы все в скрин вместилось, на самой странице базы это все скролить можно.
Есть предложение ввести штраф за неактивность (пропуски игр). Что-то похожее на анте в покерных турнирах с небольшим отличием. Также и тут - любая пропущенная игра отнимает у игрока ЭЛО (в небольшом количестве). Но если игрок играет - никакого штрафа нет. Это может показаться весьма радикальным, но это должно: 1. Стимулировать игроков играть 2. Исключить ожидание только топовых столов 3. Исключить удержание высокого рейтинга К тому же это логично в принципе, чем дольше игрок не играет, тем уровень его игры по идее падает.
Необязательно штрафовать прям с первой пропущенной игры. Например, мне норм с 4-й. Ну то есть 3 игры не штрафовать.