Bluetracker

Tracks Blizzard employees across various accounts.


Improve MVP algorithm

I have taken a closer look at how the MVP award is chosen using the MVP algorithm and the MVP award distribution and I feel like the algorithm is really poorly designed. Right now, the algorithm is way too simplistic and has several flaws:

  • Only being the very best at something gives you any "MVP score". Having 95% of the best score in every category gives you nothing at all. This is really terrible design. Also, it also doesn't matter if you're just 5% ahead in top hero damage or 100% ahead - both just give 1 score point.
  • The system heavily favors players who have a lot of takedowns with little deaths, like Li-Ming or Abathur, but it's very hard to get MVP as melle assassin.
  • Early game kills count as much as late game kills, while late game deaths are more punishing (which is actually good, but should be the same for kills)
  • Doing camps or objectives is not included in the MVP algorithm at all, even though those things already get counted. CC is also not used at all, even though it's a really important part of the game.

With the current system, an average player would get the following MVP score values:

  • +14,4 score through takedowns (average gotten from hotslogs)
  • -4.8 score from time spend death (average death amount with an estimated 30 second deathtimer per death and an average of 19:40 game length)
  • +1.2 score from getting highest XP/siege/hero damage/healing/damage taken (in one entire game, there are only 12 score points given)

I hope most of you can agree, that this algorithm is putting WAY too much emphasis on getting takedowns and not dying - those things are very important for sure, but getting a lot of siege damage, XP contribution, hero damage and healing can almost be ignored if you want to get MVP, since each of those is worth at most 2 takedowns. This is probably one of the reasons why heroes that can deal damage from a safe distance or have a safe escape are the likeliest to get the MVP award: The top 10 heroes with the most MVP awards are:

Gall, Abathur, Li-Ming, Sgt. Hammer, Chromie, Zarya, Azmodan, Tracer, Guldan, Nova

Now, what I am going to suggest is by no means perfect, but I'm sure it's a lot better than what the first iteration of the MVP algorithm was. Also, there really is no algorithm that can perfectly recognize good play based on stats, and we should never take this too seriously, because the MVP award is mostly here for fun.

First of all, I would not give score points for players that are the best at something, but rather calculate the average of the whole game in one category and give each player the appropriate amount of points for each category:

* calculate average hero damage

* add (hero damage/average hero damage)

* add (healing/average hero damage)

* calculate average siege damage

* add (siege damage/average siege damage)

* calculate average XP contribution

* add (XP contribution/average XP contribution)

* calculate average damage received

* add nothing because damage received is a terrible stat

This way, having good stats really influences your MVP score and if you're extremely good at one thing (siege damage for example), you will also have a higher chance at getting MVP even if you had 3 or 4 less takedowns.

I would also add lines to get MVP scores for doing camps, objectives and having enemies crowd controlled:

* timeEnemyHeroCrowdControlled = timeStunned + timePolymorphed*0.9 + timeSilenced*0.7 + timeRooted *0.8 + timeBlinded*0.5 + timeSlowed*0.75*slowAmount + timeStasis *0.7

* add (timeEnemeyHeroCrowdControlled / gameLength) * 35

* add (damageDoneToNeutralMercenaries/average siege damage)

* add (customMapObjectiveFormula)  (For maps where it makes sense)

example: 

* add (damageDoneToImmortal/average DamageDoneToImmortal)*0.7

Now, since everything else is based on map time and game averages, there really is no reason to not do the same for takedowns and deaths, since if those were raw numbers, takedowns would once again be dominant in long games and have little meaning in short games. Also, late game deaths or deaths when ahead in level can lead to a (unnecessary) lost game more often, so they also should be weighted more than early game deaths or deaths when already behind. Luckily, the XP gained from a kill already is a good measurement on how important a kill is, so we'll just use that:

* add XPgainedThroughTakedowns/averageXPthroughKills *1.5

* add XPgivenToEnemyThroughDeaths/averageXPthroughKills * -1.5

This will once again ensure that takedowns and deaths really matter for the MVP score, but you no longer need to be on the very top of it to get MVP. Note that XPgainedThroughTakedown should be divided by the amount of players responsible for the takedown.

And finally, because this algorithm once again can't nearly be perfect to determine MVP:

* multiply by heroFactor

Where heroFactor is a number that gets calculated over a lot of games to give every hero a ~8-12% chance to get MVP (maybe 8% for low winrate heroes, 12% for high winrate heroes). Heroes that tend to get higher MVP score (Li-Ming, maybe healers in my algorithm) would get a lower heroFactor, while heroes that tend to get a low MVP score get a higher heroFactor. So in order to get MVP as Illidan (traditionally low stats), you don't need to get higher score than a Li-Ming, you just roughly need to be the best in regards of:

(yourScore/averageScoreOfPlayedHero)

TL;DR

Improve MVP algorithm because certain hero archetypes are heavily favored and stats are almost meaningless for MVP score, which is just incredibly stupid.


  • BlizzTravis

    Posted 7 years, 11 months ago (Source)

    Good stuff. I'm actually looking at similar updates to better capture when a player not only takes best in a category, but does so to a high degree.

    BTW, even with the current formula, the difference between the hero who gets MVP the most and the one that gets it the least is only about 10%. That's excluding Abathur, who gets it significantly more than any other hero right now, but we have adjustments coming this patch to bring him inline.




Tweet