Incorrect Rune Math

Mellori··26 votes·3,120 views

I was browsing through comparing rune totals, and I noticed incorrect math on one of them. The Greater Glyph of Scaling Mana Regeneration states:

+0.06 mana regeneration / 5 sec. per champion level (+1.2 at champion level 18) However, .06 x 18 is 1.08, not 1.2

This makes the glyph for scaling mana regeneration better than the seal for scaling mana regeneration even though it shouldn't be. The Greater Seal of Scaling Mana Regeneration states:

+0.065 mana regeneration / 5 sec. per champion level (+1.17 at champion level 18) This math is actually correct, and makes sense, as the Greater Seal of Mana Regeneration (without the scaling) is better than the Greater Glyph of Mana Regeneration.

I don't know if this affects the rune pages, but at the very least, the incorrect math bugs me.

22 Comments

MrGoldTech5 votes

-No Life Detected-

Dryditch3 votes
affectioned1 votes
  • You mean he pays attention in school?-
The Rodabaugh2 votes

COOL CATCH!

Mellori1 votes

Aw, thanks!

I've noticed a few of the other ones do it as well, bumping the stat up higher than the math says, this is just the first one I noticed. I don't exactly have the time to list them all right now, but I might do it someday.

Just, considering some of them are odd numbers like "1.17", I don't see how it's rounding. It's weird for them to do correct math for some, and incorrect math for others.

The Rodabaugh2 votes

Im just a little surprised that this was not caught earlier Too many people look at this just to not notice

Mellori1 votes

Well I would have noticed it a lot earlier, but I just got to 20 a few days ago and have been slowly buying runes. I was making a chart of all the ones I need, which were best in what, ect.. and I saw this while comparing the totals. After I had just realized Seals were better at regular mana regen, it didn't make sense for Glyphs to be better just because it scaled. I noticed one other rune (I can't remember which) had a scaling total of 3 even, when the math only added up to 2.88.

In a way, it's almost cheap to do this. Granted you aren't buying RP, but you're playing dozens upon dozens of games to get these runes with IP, and then you find out the math isn't right and you have to buy 9 Seals instead of the 9 Glyphs you thought were better, and have replace 9 runes to get better totals. It's not fair.

When I get time I'll list all the scaling runes, and which have bad math. ^^

Khristophoros2 votes

Aw, thanks!

I've noticed a few of the other ones do it as well, bumping the stat up higher than the math says, this is just the first one I noticed. I don't exactly have the time to list them all right now, but I might do it someday.

Just, considering some of them are odd numbers like "1.17", I don't see how it's rounding. It's weird for them to do correct math for some, and incorrect math for others.

In computing, the way decimal numbers are stored is weird and it varies depending on the data type used.

The worst type to use is called a Floating Point. It's called that because the decimal point is allowed to be moved around instead of being in a fixed place, a useful feature. The problem is the Floating Point data type has egregious accuracy problems. There is a better version of it called Double (short for Double precision floating point).

Floating Point uses 32 bits in memory, which means there is a limit of ~4 billion (4,294,967,296) unique values that can be represented. In order to cover a wide range of numbers, it sacrifices decimal accuracy which is where it gets its problems. The Double type is 64 bits so it can represent 18,446,744,073,709,551,616 unique values which mostly takes care of that. 32 bit Floating Point starts having accuracy issues with even the first decimal place, but Double doesn't until you get into very precise numbers.

Anyway the accuracy issues with Floating Point result in much more than rounding issues because there are some numbers that literally do not exist in the context of a Floating Point. The data type cannot represent certain numbers so the computer picks the nearest possible number that exists in the data type's range of numbers.

That is my guess for why the runes have incorrect math.

LoL's client is made in Adobe Air and I don't know anything about it, but maybe it only has 32 bit Floating Point available. Maybe the programmers just used Float because they were ignorant of the problems with it. A lot of programmers actually don't know how bad the data type is.

Anyway... The actual game is a different application so it might use Double for all the numbers. That's why the rune tooltips probably don't match the actual effect in game. But I don't know. I've never run tests to determine that.

Mellori1 votes

So for my peace of mind, would that mean the "0.06 per level" is correct, and just not the 1.2 total? I'm not a computing wiz, so most of that went right over my head xD

Khristophoros1 votes

So for my peace of mind, would that mean the "0.06 per level" is correct, and just not the 1.2 total? I'm not a computing wiz, so most of that went right over my head xD

It doesn't mean that actually. Both numbers could possibly be wrong. The most accurate way to test would be to equip the runes and test in a custom match.

stokastic3 votes

With numbers these small, and with precision essentially irrelevant after even the first decimal place, there would be virtually 0 error using floating point maths. To be honest, the numbers could be stored using 16 bit floats and still have errors less than 0.001. I don't think you'll hear anyone arguing about having 0.001 extra mana regen/5, as it would come out to about 0.5 mana over the course of the entire game.

I think it is unfair to call the developers ignorant because of the use of 32 bit floats. 32 bit floats are FAR beyond the precision requirements for the numbers at play here. It is even feasible that all the numbers are internally stored as integers, and only manifested as floats at display time (used by banks to avoid rounding errors in monetary values). I doubt everything in league is stored as integers though, because we all know everything is made of minions... Huehuehuehue

Jokes aside, I disagree with your statement that 'floats are the worst kind of data'. Floats are ENORMOUSLY useful in applications everywhere, ranging from games to simulations to medicine to astronomy. I just wanted you to know that floats aren't something to be scared of :)

Khristophoros1 votes

With numbers these small, and with precision essentially irrelevant after even the first decimal place, there would be virtually 0 error using floating point maths. To be honest, the numbers could be stored using 16 bit floats and still have errors less than 0.001. I don't think you'll hear anyone arguing about having 0.001 extra mana regen/5, as it would come out to about 0.5 mana over the course of the entire game.

I think it is unfair to call the developers ignorant because of the use of 32 bit floats. 32 bit floats are FAR beyond the precision requirements for the numbers at play here. It is even feasible that all the numbers are internally stored as integers, and only manifested as floats at display time (used by banks to avoid rounding errors in monetary values). I doubt everything in league is stored as integers though, because we all know everything is made of minions... Huehuehuehue

Jokes aside, I disagree with your statement that 'floats are the worst kind of data'. Floats are ENORMOUSLY useful in applications everywhere, ranging from games to simulations to medicine to astronomy. I just wanted you to know that floats aren't something to be scared of :)

32 bit floats are not accurate no matter what level of precision you need. You should always use double unless you have extreme hardware constraints because the 32 bit version loses accuracy starting at the first decimal place.

stokastic1 votes

I didnt argue the accuracy. I said that the error has virtually no effect because it is so small. Absolutely nothing would be gained by using doubles. Hell, by your logic we might as well use quad-precision floats.

Knalxz2 votes

COOL CATCH!

D:

I made this same post 3 months ago and every said i was stupid.

Mellori1 votes

Three months ago? That's a long time to leave rune numbers messed up. o_o

Knalxz1 votes

Three months ago? That's a long time to leave rune numbers messed up. o_o

To my knowledge they've always been this way. I checked all the runes i had and they all had messed up math. When the brought it up only about 3 people noticed an issue others said i was wrong or just flat out stupid.

....no clue why.

I talked about it several other times no one seem, interested in it other then shouting GUT THE FREELO!

Mellori1 votes

Well either way they need fixed. I'm not gonna say it's gamebreaking, it's just wasting a lot of time for people who don't catch the math and have to end up re-buying runes because they were lied to. :/

Khristophoros1 votes

The rune tooltips can't be trusted. Test it in game.

Mellori1 votes

That's the thing though. I didn't buy them BECAUSE they were messed up. That's what I'm saying. They shouldn't be messed up to begin with.

Sylas on acid1 votes

Even without floating decimal places or double decimal places, it wouldn't matter. For the number to be this far off is just an error in the math computation. Needs to be fixed.

NINTENDO Galaxy1 votes

I found this out too the other day when I decided to do the math for having a full page of Scaling Ap Runes. The game tells you +85 ap when the math (also checked in-game with no ap masteries) says + 90 ap.

Riot if you ever look at this old post, please fix the rune math issue.

More from Report a Bug

More by Mellori