Attacks Per Second Display Issue
|
>LEGEND
APS.....Attacks Per Second APSr....Attacks Per Second raw (on white version of weapon) APSw...Attacks Per Second on weapon ASM.....Main Hand Attack Speed Modifier (shown on character sheet) IAS......Total Increased Attack Speed (from passives & non-weapon items) IASw....Increased Attack Speed on weapon >PROBLEM I am in the process of creating a DPS calculator and noticed a frustrating discrepancy between my character-sheet APS and what my calculated APS should be. My character sheet shows 2.79 APS when my calculation(s) show 2.80 APS. Normally not a big deal, but since I'm trying to add DPS values to every attainable stat, it's important that my formulas are accurate to at least the 2nd decimal place. Essentially, this discrepancy makes my calculator output an incorrect DPS value. >EVIDENCE Using this bow
Spoiler
![]() My character sheet APS shows 2.79
Spoiler
![]() My passive tree gives a total 0.61 or 61% IAS. I have counted this 10+ times. >CALCULATION BREAK-DOWN Reading around the forums there seem to be two different formulas used to calculate APS. Formula A APSw*(1+IAS) = APS Formula B APSr*(1+ASM) = APS Here are my values: APSr......1.45 for a white Imperial Bow IAS........0.13 or 13% APSw.....1.64 = 1.45*(1+0.13) = 1.6385 --> 1.64) IAS........0.71 or 71% = 0.61 (from passives) + 0.10 (from items). ASM.......0.93 or 93% HOW IS THIS VALUE DETERMINED??? Formula A 1.64*(1+0.71) = 2.8044 --> 2.80 APS Formula B 1.45*(1+0.93) = 2.7985 --> 2.80 APS >THOUGHTS Formula B comes closest to 2.79, the value shown on my character sheet. At first I thought the character sheet was simply rounding down. Not the case. Using different bows, I found that the character sheet always rounds APS up. >QUESTIONS 1. Which is the right formula for calcuating APS, Formula A or B? 2. What is the ASM formula? Perhaps the game's APS formula is using a hidden, unrounded ASM value? 3. And the $1,000,000 question, why does my character sheet show 2.79 instead of 2.80? Thank you for your consideration. -Nairul Last edited by Nairul#4127 on Jul 26, 2015, 11:45:43 PM
This thread has been automatically archived. Replies are disabled.
|
|
|
Alright, since i'm sometimes having fun with numbers, i tried to find a way to explain that 2.79 value.
I'll use your terminology, for the sake of simplicity. First of all, it seems that ASM is a multiplicative combination of IASw & IAS. In your case, ASM=IASw*IAS=13*71=923 (0.923 or 92.3%). It is rounded up (you seemed to be right) and displayed as 93%. But, and that's the important part, only the display of that value is rounded up, which means the actual variable is still internally defined as 0.923. Indeed, at some point, GGG must have decided to display percentages as integers, and APS as X.XX at max. Now, you have your 1.45*1.923=2.78835, rounded up again and finally displayed as 2.79 APS. Again, that 2.79 is also an approximation for display purpose and isn't necessarily used by the algorithm when calculating the actual attack speed. For the $1,000,000, i prefer cash =] PLEASE QUOTE ME IF YOU ARE EXPECTING A REPLY Last edited by xhul#1978 on Jul 26, 2015, 10:03:24 PM
| |
" Thanks for your response. I actually thought the same conclusion and came to the 0.923 value. It's a solution for the values I've provided, but doesn't give me a matching ASM when I use a different bow. ![]() So let's try with these new values APSr = 1.2 IAS = 0.71 or 71% IASw = 0.1 or 10% With this new bow equipped, my character sheet gives an ASM of 88% But using your formula... ASM = 71*10 = 710 (.71 or 71%). See? EDIT: With this example bow, my APS on character sheet goes to 2.26 Last edited by Nairul#4127 on Jul 27, 2015, 4:54:29 PM
|
|
|
Oh, so that 0.923 thing would have been pure coincidence ?
What are the odds... By any chance, are you using any form of "more" or "less" attack speed somewhere (not "increased"|"decreased") ? I'm particularly thinking of your gems, cause i just noticed the first test bow had some, but not the second. PLEASE QUOTE ME IF YOU ARE EXPECTING A REPLY Last edited by xhul#1978 on Jul 27, 2015, 12:39:54 AM
| |
" Not sure if pure coincidence, but that formula just doesn't seem to work for other bows, ya know? All of the passives & item bonuses say "increased" I've been referring to character screen for default attack, with no buffs on my character. So gems don't factor in. Last edited by Nairul#4127 on Jul 27, 2015, 3:03:49 AM
|
|
|
I just thought of something.
Each animation in the game must be defined by its duration somewhere, in frames, not in seconds. Basically, "attacks per second" is definitely human language (the game would rather deal with attack duration internally). Furthermore, a "second" has absolutely no direct meaning for the code that handles animations. That means that even the base APS of a weapon is already an approximation, and most likely a rounded value. The good news is that i'm pretty sure that each displayed value regarding attack speed is rounded at the end of its calculation (which uses frames as reference, and only the final result is converted into seconds so that the player actually gets an idea of the duration). The question is, what is the native frames per second ratio used by POE ? PLEASE QUOTE ME IF YOU ARE EXPECTING A REPLY Last edited by xhul#1978 on Jul 27, 2015, 3:12:03 AM
| |
|
Attacks per Second is:
A*B*C*D*E or while dual wield: (A1*B1*C*D*E+A2*B2*C*D*E)/2 where: A - Weapon base attack speed (Attacks per Second) B - Weapon local attack speed modifier C - Global attack speed "Increased" modifiers (skills, gears etc) D,E etc - Dual wield bonus and any other "More" modifiers (don't remember any but in future case) 1.45*1.13*1.71=2,801835 or preliminary rounding versions (your formulas A and B, which are the same. the difference is only in the preliminary rounding) 1.45*1.93=2,7985 1.64*1.71=2,8044 In any case, the final rounding does not seem accurate. Keep in mind that character screen is not final endgame calculation but just approximate information, it is not 100% accurate. Attack speed modifier is B*C*D*E etc. 1.13*1.71=1,9323 (93% is shown) 71*10 is incorrect calculation. Should be 1.71*1.1=1.881 (88%) |
|
" The engine is not frame-bound (I don't know of any 3D-rendered game that is frame-bound; that was a 2D sprite thing). The game calculates Attack Time in milliseconds, and derives an Attacks per Second statistic from that value. -- APSr......1.45 for a white Imperial Bow IAS........0.13 or 13% APSw.....1.64 = 1.45*(1+0.13) = 1.6385 --> 1.64) IAS........0.71 or 71% = 0.61 (from passives) + 0.10 (from items). 1 / 1.45 = 0.68965, so the Base Attack Time of an Imperial Bow is 690 milliseconds, it seems. (100 + 13) * (100 + 71) / 100 - 100 = 93.23, 93% total Attack Speed modifier 690 / (1 + (93/100)) = 357.51 1000 / 357.51 = 2.79 Second example: APSr = 1.2 IAS = 0.71 or 71% IASw = 0.1 or 10% 1 / 1.2 = 0.8333, so 833 milliseconds I guess. (100 + 10) * (100 + 71) / 100 - 100 = 88.1, 88% total Attack Speed modifier 833 / (1 + (88/100)) = 443.08 1000 / 443.08 = 2.25 APS I take it? I'd be pretty excited if this works out. Last edited by Vipermagi#0984 on Jul 27, 2015, 6:10:00 AM
|
|
" Thanks for your response. Converting to milliseconds is an interesting prospect, and probably yields more accurate internal values, but based on these two examples (and others that I've tried) it doesn't seem to explain my problem. Your 2.79 APS conclusion was achieved by rounding down, since 1000/357.51 = 2.7971... Your 2.25 APS conclusion was also achieved by rounding down, since 1000 / 443.08 = 2.2569... Unfortunately with that second bow example equipped, my character sheet APS shows 2.26, not 2.25, so it is rounding up! And we're back where we started =( Last edited by Nairul#4127 on Jul 27, 2015, 7:05:28 PM
|
|
|
I may have been wrong when i said that POE was dealing with frames instead of milliseconds (internally), despite i still don't understand why (maybe i've coded in assembler for too long).
Anyway, i'm pretty sure the problem lies in the fact that even the base APS shown on weapons is already rounded (even on normal items) AND that values on the character window are the result of calculations using unrounded ones. I mean, using rounded values in the first place may explain the differences from one weapon to another. PLEASE QUOTE ME IF YOU ARE EXPECTING A REPLY Last edited by xhul#1978 on Jul 28, 2015, 1:26:06 AM
|













