User Info: LambdaPublic LambdaPublic 4 years ago #1



Raw Power: Zell's RM2, grants a 50% chance for the user to begin each round with a full ATB gauge.

Auto-Haste: Luneth's RM2, Zidane RM1, and Balthier RM1. Grants the user Haste at the beginning of each battle. Also available in JP from Gau's RM3 with the additional effect of ATK +10% and Ranger's RM3 with the additional effect of turning Attack into Aim, but I'll be ignoring those bonuses here.



1. Input Delay

One thing I think is important to mention is the that there's a significant amount of time between a character's ATB bar filling up and the game actually allowing you to select your action:



My method for measuring this was to take a screenshot both before Tyro's ATB bar fills and after the cast time starts, both while a second character is casting a skill. The progress on the second character's cast bar tells me how much in-game time has elapsed. I similarly measure the time taken for the Tyro's ATB bar to finish filling and the time that the Tyro's skill had been casting, and the difference between the two totals leaves me with the total amount of input delay. My results are shown here:



http://puu.sh/ojVjn/d68f760647.png



My conclusion is that there's a .5 second real-time delay associated with the animation of the commands popping up in the UI, and that battle speeds 1-5 cause in-game time to progress at 1/3x, 1/2x, 1x, 1.5x, and 2.5x speed (playing around with doom timers roughly confirms the battle speed multipliers).



This typically means you should be adding somewhere between .167 and 1.25 seconds to your ability cast times depending on your battle speed for more accurate calculations on efficiency and such. That's not a perfect adjustment, since that UI-delay can occur during the animation of other skills (in dailies you can exploit this by having one character defend right as your character with Ruinga or other AoE has their bar filled, so that the UI finishes popping up during the short "Defend" animation) and waste no in-game time, or it can be repeatedly interrupted by things like summons and soul breaks that remove the UI and end up wasting significantly more in-game time.



Finally, I should note that this time does NOT include the time that the UI takes to fade out after selecting an action. A couple quick tests of measuring fade out+fade in of next character's UI gave me inconsistent results ranging from .75 to 1 real-time second. I didn't put together a similar image for it because I don't consider it relevant for purposes of this post and because of the inconsistency, but feel free to test that yourself if you're interested. Welcome to my analysis of Raw Power RM versus Auto-Haste RMs, primarily in the context of farming dailies with the intent of minimizing S/L. First things first:Raw Power: Zell's RM2, grants a 50% chance for the user to begin each round with a full ATB gauge.Auto-Haste: Luneth's RM2, Zidane RM1, and Balthier RM1. Grants the user Haste at the beginning of each battle. Also available in JP from Gau's RM3 with the additional effect of ATK +10% and Ranger's RM3 with the additional effect of turning Attack into Aim, but I'll be ignoring those bonuses here.One thing I think is important to mention is the that there's a significant amount of time between a character's ATB bar filling up and the game actually allowing you to select your action:My method for measuring this was to take a screenshot both before Tyro's ATB bar fills and after the cast time starts, both while a second character is casting a skill. The progress on the second character's cast bar tells me how much in-game time has elapsed. I similarly measure the time taken for the Tyro's ATB bar to finish filling and the time that the Tyro's skill had been casting, and the difference between the two totals leaves me with the total amount of input delay. My results are shown here:http://puu.sh/ojVjn/d68f760647.pngMy conclusion is that there's a .5 second real-time delay associated with the animation of the commands popping up in the UI, and that battle speeds 1-5 cause in-game time to progress at 1/3x, 1/2x, 1x, 1.5x, and 2.5x speed (playing around with doom timers roughly confirms the battle speed multipliers).This typically means you should be adding somewhere between .167 and 1.25 seconds to your ability cast times depending on your battle speed for more accurate calculations on efficiency and such. That's not a perfect adjustment, since that UI-delay can occur during the animation of other skills (in dailies you can exploit this by having one character defend right as your character with Ruinga or other AoE has their bar filled, so that the UI finishes popping up during the short "Defend" animation) and waste no in-game time, or it can be repeatedly interrupted by things like summons and soul breaks that remove the UI and end up wasting significantly more in-game time.Finally, I should note that this time does NOT include the time that the UI takes to fade out after selecting an action. A couple quick tests of measuring fade out+fade in of next character's UI gave me inconsistent results ranging from .75 to 1 real-time second. I didn't put together a similar image for it because I don't consider it relevant for purposes of this post and because of the inconsistency, but feel free to test that yourself if you're interested.

User Info: LambdaPublic LambdaPublic (Topic Creator) 4 years ago #2 2. Probability of a given enemy acting before your character

In this post, I'll be assuming that each player and enemy's ATB bars are set to a uniformly random value between empty and full (with the exception of when Raw Power activates). Hopefully that's accurate, or close enough.



Before I go any further, let me define a couple abbreviations I'll be using:

ECT - Effective Cast Time. An ability's cast time plus the UI-associated input delay. For enemies, this is the same as their regular cast time.

MAT - Max ATB Time. The total time taken for a character or enemy's ATB gauge to fill up from empty without the effects of Haste. This is equal to (4.5 - speed/150) seconds.



2.1 Auto-Haste

Let X_H be a random variable representing the amount of in-game time that elapses before one of your characters finishes casting an ability while using an auto-haste RM. Let ECT_C represent the character's ECT and MAT_C represent the character's MAT. Due to the effects of haste, the time it takes for the ATB bar to fill is uniformly random between 0 and MAT_C/2, so X_H is a uniform random variable between ECT_C and ECT_C + MAT_C/2. Thus, the probability density function of X_H is given by f_X_H(x) = 1/(.5(ECT_C + MAT_C/2 - ECT_C)) = 2/MAT_C when ECT_C <= x <= ECT_C + MAT_C/2, and f_X_H(x) = 0 otherwise.

http://puu.sh/okB3W/79a7c9dd95.png



Similarly, let Y be a random variable representing the in-game time from the start of battle for an enemy to finish casting an ability, let ECT_E be the enemy's ECT, and let MAT_E represent the enemy's MAT. The probability density function of Y is given by f_Y(x) = 1/MAT_E when ETC_E <= x <= ETC_E + MAT_E, and f_Y(x) = 0 otherwise.

http://puu.sh/okAW4/e6d723df94.png



Furthermore, it will be useful to calculate the cumulative distribution function for Y (denoted as F_Y) by integrating the f_Y. I'll be using LaTeX notation for integrals, so int_{a}^{b} represents the definite integral from a to b:

F_Y(x) = int_{negative infinity}^{x} f_Y(x)dx

F_Y(x} = int_{ECT_E}^{x} dx/MAT_E = (x-ECT_E)/MAT_E for ECT_E <= x <= ECT_E + MAT_E

F_Y(x} = 0 for x < ECT_E

F_Y{x} = 1 for ECT_E + MAT_E < x

http://puu.sh/okAxs/79a0528a6c.png



Now, the probability that Y < X_H (i.e. that the enemy acts before your hasted character), represented by P(Y < X_H), is given by:

P(Y < X_H) = int_{negative infinity}^{infinity} P(Y < X_H | X_H = x)f_X_H(x)dx

http://puu.sh/ok1Ot/a2979edcee.png



Since F_Y(x) is the cumulative distribution function for Y, we know that P(Y < X_H | X_H = x) = F_Y(x), so the integrand becomes F_Y(x)*f_X_H(x). Because F_Y(x) = 0 when x < ECT_E and f_X_H(x) = 0 when x < ECT_C or x > ECT_C + MAT_C/2, we can use max(ECT_E,ECT_C) and ECT_C + MAT_C/2 as our limits of integration.

Most enemies' abilities in dailies have cast times between 1.7-1.8 seconds (though there are some significantly higher), so if you're clearing them using Ruinga or a summon (1.8s cast time) ETC_C will be higher than ETC_E even disregarding the UI-delay. Because of this I'll be using ECT_C as my lower limit of integration here, but if you want to use these calculations for other purposes where ECT_E > ECT_C, keep in mind you'll need to make modifications.

P(Y < X_H) = int_{ECT_C}^{ECT_C + MAT_C/2} F_Y(x) f_X_H(x)dx

http://puu.sh/ok30h/88c5084898.png



One final consideration before we proceed: whether ECT_E + MAT_E is smaller than ECT_C + MAT_C/2. This isn't likely to happen unless you're facing a fast Ultimate boss or something. It certainly won't happen in dailies, thankfully, so within the domain of integration F_Y(x) = (x-ECT_E)/MAT_E. Now, evaluating the probability:

http://puu.sh/ok7hF/9cf38b8d99.png

So P(Y < X_H) = (ECT_C + .25 MAT_C - ECT_E)/MAT_E.

User Info: LambdaPublic LambdaPublic (Topic Creator) 4 years ago #3 As an example, if:

Battle Speed = 2

Character Cast Time = 1.8s (ruinga)

Character Speed = 150

Enemy Cast Time = 1.76s (varies)

Enemy Speed = 100 (true in all ++ dailies)

Then P(Y < X_H) = ~30.4%



2.2 Raw Power

Let X_RP be a random variable representing the amount of in-game time that elapses before one of your characters finishes casting an ability while using the Raw Power RM. As with auto-haste, let ECT_C represent the character's ECT and MAT_C represent the character's MAT. There's a 50% chance that X_RP is equal to ECT_C (when Raw Power procs) and a 50% chance that X_RP is uniformly random between ECT_C and ECT_C + MAT_C. Therefore the probability density function of X_RP is given by f_X_RP(x) = .5 delta(x-ECT_C) + .5/MAT_C = (1 + MAT_C delta(x-ECT_C))/(2 MAT_C) for ECT_C <= x <= ECT_C + MAT_C where delta is the Dirac delta function, and f_x_RP(x) = 0 otherwise.

http://puu.sh/ol3Bw/68a76df26f.png



Let Y, f_Y(x), and F_Y(x) be defined the same way as it was in section 2.1. Then, the probability that Y , X_RP is given by:

P(Y < X_RP) = int_{negative infinity}^{infinity} P(Y < X_RP | X_RP = x)f_X_RP(x)dx

http://puu.sh/ol1S8/c030059bff.png



Similarly to in section 2.1, we can use max(ECT_E,ECT_C) and ECT_C + MAT_C as our limits of integration, and we assume ECT_C > ECT_E, so we'll be using ECT_C and ECT_C + MAT_C. However, our other consideration is whether ECT_E + MAT_E is smaller than ECT_C + MAT_C, and since MAT_C isn't being divided by 2 as it was with haste, these values are typically quite close. Assuming the character with Raw Power is using Ruinga or another 1.8s cast time spell and that the battle speed is 1-2, ECT_C + MAT_C should typically be smaller. I'll be assuming this is the case, as simplifies the calculations somewhat. If ECT_C + MAT_C is larger than ECT_E + MAT_E, P(Y < X_RP) will be smaller than what I calculate here, but the effect should be fairly small. With this in mind, we say that:

P(Y < X_RP | X_RP = x) = F_Y(x) = (x-ECT_E)/MAT_E within the domain of integration, and we may evaluate the integral:

http://puu.sh/ol7tD/a72dc40725.png

So P(Y < X_RP) = (ECT_C + .25 MAT_C - ECT_E)/MAT_E. Look familiar? Yep, it's the same as P(Y < X_H). This isn't surprising, given that both f_X_H(x) and f_X_RP(x) have the same average value (of ETC_C+.25MAT_C) and f_Y(x) is uniform on the domain of integration. If that's all there was to the story, I'd be recommending Raw Power right about now because of that ECT_E + MAT_E vs ECT_C + MAT_C assumption we made. But wait, there's more!

User Info: LambdaPublic LambdaPublic (Topic Creator) 4 years ago #4 3. Probabilities of q/n enemies acting before your character

3.1 General Case

In addition to all previously defined variables and functions, let Y_i for any natural number i be an independent random variable with a probability density function f_Y_i(x) = f_Y(x) for every real number x. I won't work through the details because the general case isn't relevant to this discussion, but where H is the Heaviside step function, P(sum_{i=1}^{n} H(X-Y_i) = q), i.e. the probability that exactly q out of a total of n enemies in a given round act before your character, is given by:

P(sum_{i=1}^{n} H(X-Y_i) = q) = int_{negative infinity}^{infinity} F_Y(x)^q (1-F_Y(x))^(n-q) (n choose q) f_X(x)dx

http://puu.sh/ol9Su/d0c98a840f.png



3.2 Auto-haste with two enemies

Taking n = 2 and using the same assumptions regarding the domain of integration as in section 2.1, we can simplify the integral a bit:

http://puu.sh/omq2z/61fad64e0c.png



Then we evaluate this for each value of q.

For q = 0:

http://puu.sh/onITE/e8858c1553.png



For q = 1:

http://puu.sh/onIEM/87fd2a2cfc.png



For q = 2:

http://puu.sh/onIsB/f776463fe1.png



Using the same values as in our single-enemy example:

Battle Speed = 2

Character Cast Time = 1.8s

Character Speed = 150

Enemy Cast Time = 1.76s

Enemy Speed = 100

0 enemies act first: ~50.2%

1 enemy acts first: ~38.8%

2 enemies act first: ~11.0%



Always nice when things add up to 100% like they should. By the way, if you were wondering why we couldn't just use the single-enemy probability and square it to get the the probability of both enemies acting first, for example, it's because P(Y_1 < X_H) and P(Y_2 < X_H) are NOT independent.



3.3 Raw Power with two enemies

As before, we use the general case with n = 2, and the assumptions regarding the domain of integration from section 2.2:

http://puu.sh/onLbM/ba674b8761.png



For q = 0:

http://puu.sh/onO2b/3205ecfd12.png



For q = 1:

http://puu.sh/onQSZ/5ddebd4412.png



For q = 2:

http://puu.sh/onOih/e1b8988118.png



With the same example values:

0 enemies act first: ~57.1%

1 enemy acts first: ~24.9%

2 enemies act first: ~17.9%



Same average value as with auto-haste, but with a higher variance on the number of hits taken.

User Info: LambdaPublic LambdaPublic (Topic Creator) 4 years ago #5 4. Probability of a given number of enemies acting within a daily dungeon

For purposes of these calculations, I'll be (to the best of my ability) discounting Magic Pots, since they show up one at a time, usually spend a three-second cast time on a line of dialogue, and don't hit very hard when they decide to attack. Based on the FFRK Inspector data on orb ++ dailies at the time of writing, subtracting the total number of drops (2016) from six times the number of stages recorded (6*363=2178) should give the number of Magic Pots encountered (162), as Magic Pot waves are the only ones that give one drop instead of two. So the rate of Magic Pots appearing seems to be 162/(363*3) = ~14.9% of waves, so I'll be assuming the true rate is 15%.



Given that there are N non-magic pot waves in a dungeon run, since each wave is an independent event, we can simply expand (P(sum_{i=1}^{2} H(X-Y_i) = 0) + P(sum_{i=1}^{2} H(X-Y_i) = 1)x + P(sum_{i=1}^{2} H(X-Y_i) = 2)x^2)^N and the probability of q enemies acting will be the coefficient of x^q. So to get the average probabilities, we can take the sum of each such expansion times the probability of there being N non-magic pot waves out of the 9 waves in the dungeon:

http://puu.sh/oopbG/d765beb35d.png



4.1 Total enemy actions with auto-haste

Continuing with our earlier example values, we simply plug in our previously determined values for P(sum_{i=1}^{2} H(X_H-Y_i) = j):

http://puu.sh/oos1B/dfbffffed8.png



0 enemy actions: .70%

1 enemy action: 3.63%

2 enemy actions: 9.34%

3 enemy actions: 15.81%

4 enemy actions: 19.62%

5 enemy actions: 18.90%

6 enemy actions: 14.62%

7 enemy actions: 9.26%

8 enemy actions: 4.87%

9 enemy actions: 2.14%

10 enemy actions: .79%

11+ enemy actions: .32%



In terms of maximum allowable enemy actions:

0 enemy actions: .70%

At most 1 enemy action: 4.34%

At most 2 enemy actions: 13.68%

At most 3 enemy actions: 29.48%

At most 4 enemy actions: 49.10%

At most 5 enemy actions: 68.00%

At most 6 enemy actions: 82.62%

At most 7 enemy actions: 91.88%

At most 8 enemy actions: 96.75%

At most 9 enemy actions: 98.89%

At most 10 enemy actions: 99.68%



4.2 Total enemy actions with Raw Power

Still with the same example values, we can use the previously determined values for P(sum_{i=1}^{2} H(X_RP-Y_i) = j):

http://puu.sh/ooqmy/07f827acfe.png



0 enemy actions: 1.69%

1 enemy action: 5.09%

2 enemy actions: 10.44%

3 enemy actions: 15.03%

4 enemy actions: 17.53%

5 enemy actions: 16.65%

6 enemy actions: 13.50%

7 enemy actions: 9.34%

8 enemy actions: 5.63%

9 enemy actions: 2.94%

10 enemy actions: 1.35%

11+ enemy actions: .79%



In terms of maximum allowable enemy actions:

0 enemy actions: 1.69%

At most 1 enemy action: 6.78%

At most 2 enemy actions: 17.22%

At most 3 enemy actions: 32.25%

At most 4 enemy actions: 49.78%

At most 5 enemy actions: 66.44%

At most 6 enemy actions: 79.94%

At most 7 enemy actions: 89.28%

At most 8 enemy actions: 94.91%

At most 9 enemy actions: 97.86%

At most 10 enemy actions: 99.21%



So the bottom line here is that if 4 or fewer total enemy actions in a dungeon will typically to force you to S/L, Raw Power is better, but you can typically take 5 or more enemy actions (but fewer than 18) without having to S/L, auto-haste is better.



In my experience, I wouldn't expect 4 enemy actions to force a S/L unless I brought characters below lv50 or I'm not using a full 5-person party. But these days I usually use eggs to bring characters up to lv50 and only use fewer than 5 characters on Sunday, where I'm probably using +EXP RMs instead of auto-haste/raw power, so I very much prefer the numbers for auto-haste.

User Info: LambdaPublic LambdaPublic (Topic Creator) 4 years ago #6 5. Enemies with longer cast times

Up until now, we've been operating under the assumption that ECT_C > ECT_E, partly because it's true more often than not and partly because it simplified calculations a bit, but while most enemy abilities have cast times between 1.7-1.8 seconds, some of them (usually the ones that are actual spells) are significantly longer. Flare and Meteor, when cast by enemies in the Monday ++ orb daily, have 3.0 second cast times, for example. Let's see what happens when we work out the probability of single enemies acting first, under the assumption that ECT_E > ECT_C.



5.1 Auto-Haste

We want to find P(Y < X_H), just as in section 2.1, but this time we're using ECT_E as our lower limit of integration:

http://puu.sh/ooFze/393baabae9.png

So P(Y < X_H) = (MAT_C+2ECT_C-2ECT_E)^2/(4MAT_E MAT_C)



Using the same example as before, but with ECT_E = 2.5s:

P(Y < X_H) = 12.6%

Quite a bit lower than before!



5.2 Raw Power

Now we calculate the integral for P(Y < X_RP) as in section 2.2, but with ECT_E as the lower limit of integration:

http://puu.sh/ooGoH/5238caed76.png

So P(Y < X_RP) = (MAT_C+ECT_C-ECT_E)^2/(4MAT_E MAT_C)



You can see that this result is similar to the result in 5.1, but 2ECT_C - 2ECT_E has been replaced by ECT_C - ECT_E, which is an increase since our assumption is that ECT_E > ECT_C. With the same values as in 5.1:

P(Y < X_RP) = 17.3%

The enemy has a significantly higher chance of acting if you're using Raw Power. I won't work through the multiple-enemies since ECT_C > ECT_E more often than not. The point here is that when enemies have abilities with higher cast times, the numbers in section 4 are shifted towards fewer enemy actions more for auto-haste than for raw power. More importantly, it's some of the enemies' strongest abilities that are affected most by this difference, so depending the particular daily auto-haste may be worth taking over raw power even if you expect fewer than 4 enemy actions to force a S/L!



6. Other considerations

Slow overwrites Haste, so getting slowed is a significantly bigger problem for a character with auto-haste than for one with Raw Power. Not sure this would affect my decision since I think the probability of getting slowed is fairly small, plus if it happens in wave 3 of a stage it shouldn't be an issue, but it's something to consider. I believe Friday and Sunday ++ dailies are the only ones that have enemies that can slow.



Other status effects can also cause significant problems. There are enemies that can stop, confuse, or petrify you. These typically don't happen often and there's not a huge difference in the impact on auto-haste vs raw power, but the fact that single abilities can cause major issues is a slight advantage for Raw Power.



If you plan on bringing a BSB RW and its burst mode commands to help you clear, Raw Power is naturally the better choice since BSBs grant Haste.



If you're bringing two characters that can clear enemies, I believe having one with Raw Power and one with auto-haste is better than putting auto-haste on both, though admittedly I haven't done the math on this. Additionally, there's a 62.5% chance that the character with Raw Power will act before the character with auto-haste, so put Raw Power on the character with a higher number of casts if that's an issue.



TL;DR Auto-Haste > Raw Power. Usually.

User Info: raoxi raoxi 4 years ago #7 Abstract/Summary please

User Info: LambdaPublic LambdaPublic (Topic Creator) 4 years ago #8 Giving a mage an auto-haste RM will result in a lower chance of having to S/L during a daily dungeon ++ clear than giving them Raw Power if the enemy taking a total of 3 actions (varies roughly in the 2-4 actions range depending on enemy skill cast times) or fewer over the course of the dungeon's 3 stages doesn't typically result in a S/L.

User Info: EchoNull EchoNull 4 years ago #9

If you do get in a dicey situation where you start a round precariously and have to SL after few enemy attacks, Raw Power makes that repeated SLing less stressful.... Not sure whether that fits in the rational part of the analysis, but a couple of times NY Orbfest 2-man parties got in rough spots after RP failed to proc a couple of times.

Odd. Very nice write-up!If you do get in a dicey situation where you start a round precariously and have to SL after few enemy attacks, Raw Power makes that repeated SLing less stressful.... Not sure whether that fits in the rational part of the analysis, but a couple of times NY Orbfest 2-man parties got in rough spots after RP failed to proc a couple of times.