Поделитесь знаниями +)
s.battle_score.tofloat() / s.battle_time * 60 * (1 + 0.5 * s.victories / s.battles)
То есть если игрок получает в среднем 500 очков в минуту и рейтинг побед у него 80%, то будет 500 * 1,4 = 700 боевого рейтинга
Слишком больше влияние победы на итоговый рейтинг в командном режиме.
Получается из-за действий команды игрок с 500 очками в минуту может получить от 500 до 750 очков. Игрок с винрейтом 100% и 500 очками по данной формуле в минуту равен игроку с винрейтом 30% и 650 очками в минуту. Только победа часто зависит от желания союзников захватывать и оборонять точки. Данная формула теоретически может быть жизнеспособна только если добавить
- Разделение рейтинга по нациям. Это уберет дисбалансные инонациональные особенности различных кампаний.
- Минимальное количество боев для попадания в рейтинг (не менее 10). Это сгладит разину между успешными и провальными боями.
- Рейтинговый подбор союзников и противников. В таком случае команда союзников не будет тормозить или тащить игрока, а команда противников станет интереснее.
Кране желательно добавить в формулу коэффициент, отвечающий за действия на точке (фраги, захваты, минирования, прерывания захватов). Не обязательно делать его настолько большим (от 1 до 1.5), как с коэффициентом победы, но он нужен.
Ого, спасибо. Интересная информация.
Если не будет принято разделение рейтинга по нациям, как предложил @153297 , то есть альтернатива - доработать формулу с учётом распределения живых игроков за матч.
Т.е. ввести отдельный коэффициент вида X/Y, где X - количество игроков в команде врага, Y - количество игроков в твоей команде.
Если происходит игра вида 5 на 1, то будет поощрён хорошо играющий противник, но ценность такой победы будет не очень высоко.
Надо подумать, стоит ли заводить чисто “линейное” отношение. Возможно подумать о логарифмическом разделении, например K = 1 - lg(X/Y). В случае того же 5-1 K будет равен 0.31 с копейками - соотвественно команде с большим числом игроков уменьшить рейтинг на 0.31, а а с меньшим увеличить на 0.31.