Один вариант, который я хотел бы реализовать, - это автоматическая система самонастройки.
В качестве примера я собираюсь использовать игру из жанра MOBA, потому что она структурирована таким образом, что позволяет довольно просто увидеть, как каждый герой сравнивается с другими героями.
По сути, для каждого героя все характеристики этого предмета должны зависеть от значения гандикапа, которое сервер автоматически меняет в зависимости от коэффициента выигрыша для этого героя. Затем, всякий раз, когда начинается новая игра, она использует самое последнее значение гандикапа в течение всей игры.
Hero(){
attackSpeed = 50 + 5*heroType.adjustment;
moveSpeed = 100 + 5*heroType.adjustment;
}
Затем в конце каждой игры сервер изменяет значение для каждого героя на небольшую величину, в зависимости от того, выиграл или проиграл этот герой, сколько он выиграл и т. Д .:
for(Hero hero: game.winners)
hero.heroType.nerf();
for(Hero hero: game.losers)
hero.heroType.buff();
Точная формула корректировки может быть примерно такой, хотя более сложные статистические данные могут быть лучше:
nerf: adjustment[heroType] -= 1 / globalNumberOfGamesPerWeek
buff: adjustment[heroType] += 1 / globalNumberOfGamesPerWeek
Таким образом, если добавлен некий новый герой, который значительно одолел, то есть наличие этого героя значительно увеличивает шанс игрока на победу, то игровой сервер автоматически исправит его с течением времени.
Фактически, эта система также исправит другие причины, по которым конкретный герой может стать подавленным, например, кто-то найдет новую мету, которая действительно работает действительно хорошо, или некоторую модификацию местности, которая дает конкретному герою какое-то новое преимущество. И исправление могло бы произойти, даже если знание новой тактики все еще только распространяется.
Третье, с чем это может помочь, - это обнаружение факта, что что-то серьезно влияет на героя. Если герои спроектированы таким образом, что значение корректировки остается около нуля, то когда значение для одного из героев существенно меняется, разработчики узнают, что с героем возникла какая-то проблема, так что они могут перейти и сделать более разумную балансировку герою в вопросе.