Match Analyzer

Beesafree·3/23/2015, 8:07:33 PM·1 votes·1,262 views

https://www.lolanalyzer.gg/ site thanks to /u/paparHein

Hi, i have been waiting quite awhile to show my code for a match analyzer that i created for league, and with the new unveil of Champion levels, i think it might be time...

i have been working for about a year and a half now on a program that takes into consideration all major factors of a game to create a number that accurately compares all people in the match. I have refined it to a point which i dont think it can get any better.

i do not expect it to impact the game, so the response "neat program bro" would be fine XD... but if riot is finding it hard to figure out a way to accurately calculate various things to hand out: exp, ip, or exp in the new champion level thing, this may be a solution. i require no notoriety or fame for this, simply helping the game is my goal, and i would be honored for riot to use it.

if you use the https://www.lolanalyzer.gg/ - Please respond with stats and if you think it's accurate!

without further ado,

=========================The Formula========================= the variables used are all numbers already counted in game:

n:= Number of Players per team (5v5 = 5) k:= Kills d:= Death a:= Assist dd:= Damage Dealt to Champion dt:= Damage Taken w:= Wards Placed

ttp:= Total "Participation" (Kills + assists of everyone on your team) ttdd:= Total Damage Dealt to Champion (everyone on your team) ttd:= Total Deaths (everyone on your team)

ettd:= Total enemy Deaths (everyone on the enemy team)

first off i remove divide by zero cases, if any team didnt get a kill (if ttp = 0 or ettp=0) i set it to 1, if a specific person didnt die (if d = 0), i set their deaths to 1

and here's the equation i have come up with:** (((((a1.05) + k)/ttp)ttdd) + dd + dt + (w120)) / ((1 - (d / (ttd+ettd))) (d + (ttd/n)))**

this will give a number that is relatively fair across all roles, all positions, and comparable to one another, i know i abuse parentheses, and it is quite a long formula, i will try to break it down:

(1 - (d / (ttd+ettd)))(d + (ttd/n))

this is the divisor - it deals with the deaths that specific person had, and penalizes them for it

(d / (ttd+ettd))

this is the percentage of deaths that the person is, so 12 personal deaths out of 120 total deaths isnt as bad as being 12 out of 20

d + (ttd/n)

this is the percentage of your own team deaths that the person i, this is to prevent winning teams from having a HUGE advantage via deaths, they still due, but this numbs it a little. it also creates a "your brother's keeper" effect - your score gets worse as your allies die - so NOT saving them to protect your own score isnt a possibility, and saving them improves your score

(((((a1.05) + k)/ttp)ttdd) + dd + dt + (w120))

this is the numerator, this is everything that adds to your score

((((a1.05) + k)/ttp)ttdd)

this is where kills and assists come into play, assists *1.05 (this helps supports/jungles a tad) plus your kills, divided by your teams deaths - this creates a dynamic where getting assists and kills is good, but not at the death of your team (ie if you get 3 kills but your team deaths go up by 5, its a net loss), that number multiplied by total damage dealt gives what i like to call "Participation points", because you where there for 16 of the teams kills you allowed your team to do damage, so a portion of the total damage dealt by your team is attributed to you, whether you dealt it or you tanked enough damage to allow you adc to deal that damage - you where the reason your teams damage went up.

next along with that number we add personal damage dealt to champs and damage taken, and added is wards*120 - the wards part is prolly the worst part of the formula, i needed a number that supports did more than any other role, and wards usually accurately represent that.... but the constant number "120" can be abused.... and it should prolly include wards removed/revealed

=========================FAQ========================= ----why not include gold? because obtaining gold isnt the goal, and it is represented in other ways. you get more gold you buy more items, you deal more damage, you take more damage, you provide more opportunities for your team, gold could also be used as a normalization factor - if need be ----Why not first blood? first blood is genuinely meaningless, gives gold, gold gets items, etc.... ----Why not objectives? All objectives in the game are represented by the values i use, you get baron, you deal more damage, you get dragon you deal more damage, towers give gold, gold gets items.... ----Damage/KDA isnt the goal, the goal is destroying the nexus, right? yes, correct. but when towers go down, something is happening, the enemy is distracted, focusing something or someone else, getting a different objective or is dead, most often games are won by the enemy being dead, so goals like towers and destroying the nexus are represented via the values ive used. beyond that judging objectives destroyed isnt fair to all positions.

=========================Examples========================= lets take a few of my games: http://matchhistory.na.leagueoflegends.com/en/#match-details/NA1/1750837143/200798440?tab=overview

B. Evelynn Evelyn - 9863 B. Leona Leona - 9662 B. JinxJinx - 9624 B. JarvanIV Jarven - 6163 P. Gnar Gnar - 4840 B. Ahri Ahri - 4735 P. Xerath Xerath - 3682 P. Brand Brand - 3084 P. MonkeyKing Wukong - 2752 P. Jinx Jinx - 2584

this game jinx and i dominated bot, rarely dying - i was a part of 31 kills, and jinx was similar with 25. ahri was a part of 14 kills, and damn near feeding, coming in at half our score. The enemy jinx went 0/9/7, was feeding the entire game, did little damage and took little back

a game i lost: http://matchhistory.na.leagueoflegends.com/en/#match-details/NA1/1754264878/200798440?tab=overview

B. TwistedFate Twisted Fate - 9101 B. Leona Leona - 6538 P. Leblanc Leblanc - 6295 B. MasterYi Yi - 5450 P. RivenRiven - 5055 B. Riven Riven - 4703 P. LeonaLeona - 3843 P. Nautilus Nautilus - 3646 P. Ezreal Ezreal - 3195 B. Heimerdinger Dinger - 2209

i am "p" leona, i died a bunch, we lost our lane hard, i tried to save my adc, failed a bunch of times and the enemy started rolling, ezreal did little more damage than i did - was part of less kills, and died one less time, his impact was minimal, and dinger's was even less. TF was their "ADC" and rolled in the kills and gold. "b" leona didnt do much damage, didnt take the most, but the formula understands that because she was there - she was important, being a part of 21 kills

I WOULD LOVE to analyze one of your games - https://www.lolanalyzer.gg/ then post your thoughts on it

4 Comments

RuGu3/23/2015, 8:43:05 PM3 votes

I see damage dealt to champion, but not total damage dealt.

I disagree with a few of your points in the analysis.

Dragons / Objectives matter, it also doesn't matter who did 99% of the damage to it, just the last hit. There have been plenty of games where i've stolen baron with a Lux laser, and turned a game around. Your formula doesn't seem to account for that.

It also doesn't account for Healing done (kind of makes supports like soraka or sona harder to get points with) or damage shielded (not a stat even offered by riot to my knowledge)

the TL;DR is you're focus is mostly damage oriented in some form or another (minus warding) where there are champions whose utility can't really be measured in a match, like Bard, or Zilean. Those champs are at an inherit disadvantage because they tools they bring to the fight aren't completely damage oriented.

neat tool though, just a bit biased towards the current meta.

FHMarshy3/23/2015, 8:09:19 PM1 votes

:( says it's not available :(

Lord Dusteon3/23/2015, 8:36:51 PM1 votes

A main problem I see with this is it doesn't account for some important parts, such as splitpushing or jungle objectives. I could be a 0/3/1 Tryndamere, and splitpush constantly for 2 turrets and 2 enemies coming to stop me. My team would win the resulting 4v3, but I might die, but this would overall lower my score despite taking 2 turrets AND keeping multiple enemies seperate for my team. For jungle objectives I could early on sneak a dragon in, giving all my lanes the 6% bonus AD + AP to help them get a bit ahead while securing scuttle crab so the enemy jungler can't gank, but that wouldn't show. I could counterjungle constantly and make the enemy jungle 0/2/0 and have no buffs while being several levels behind, but because I didn't gank much and they sent 2+ people I died. my score would lower despite keeping their jungler out of the game and providing my lanes with massive safety from the enemy jungler.

Sadly can't think of any solutions, as counting turrets destroyed would highly favor adcs and qualifying how behind you made another jungler/got ahead your lanes is hard. Maybe if there was a way to check if you got any help in taking a turret, and dividing up a score between everyone who helped attack it though?

FHMarshy3/23/2015, 8:55:23 PM1 votes

Sorry but I forgot to add this:

Thanks for taking the time making this.

Good work buddy