Sunday 1 April 2018

A new approach to DPE: Damage/Cycle

Hey there trainers!

tl;dr? Here's a Summary:


Here is a spreadsheet of the charge moves you can play with that uses an improved metric to rank charge moves. I've also included DPS*DPE and three new metrics (Damage/cycle with a cycle of 10s, 15s, and 20s) to show how they all stack up. Each column is formatted to list good moves in green and bad moves in red. The middle metric (with Frenzy Plant topping the charts at 344) is the metric I'd like to suggest using. Titled simply, it's the Damage/Cycle (10s):



Improvements by using this new metric:

You'll notice that moves like Precipice Blades and Origin Pulse do not outrank Frenzy Plant and Doom Desire. What's neat is seeing how moves like Dragon Claw, Draco Meteor, and Outrage stack up. With this new metric, Dragon Claw is still the worst of the three. But Draco Meteor actually out-ranks Outrage because you get to use more Quick Attacks during a cycle, generating some more damage and energy to make up for the loss in raw power.

But this still needs to be applied to the real world. Outrage has a significant advantage in being able to launch a powerful charge move for -50 energy. That means for 1.5 charge bars worth of energy, Outrage is out-damaging Draco Meteor. But for 2 charge bars worth of energy, Draco Meteor beats Outrage by ~20 points of damage. So to me, the moves are more equal than you'd think.

For the full analysis...

How I generated this spreadsheet:


About a year ago I wrote an article on the utility of using DPE vs. DPS to rank moves. Back then I was focused on defending moves, and then the focus of the game totally shifted when they updated the gym system. As such, that article is seriously outdated. But the principles are still useful! DPE is an important consideration that's under-utilized in the ranking of attacking moves.

Recently, Gamepress wrote an article announcing a new change to their move-ranking system by using a DPE*DPS metric. This definitely improves on using DPS alone, and also improves on using DPE alone (which ignores the cooldown of moves). It's a great step forward in generating a useful list of charge moves to understand which moves are objectively best. Indeed, Gamepress has been killing it over the last year, which is part of why I haven't written anything in a while: the game is very attacker-focused now, and Gamepress is going above and beyond to understand the dynamics of raids and best attackers.

Their recent article got me interested in the new metric, and got me to look back at my old metric to compare the two. That got me to look at my old Gamepress FAQ post where I advertised my old metric first. And there, I found that I had two comments that I hadn't addressed from a year ago! Moreover, both were insightful and really helped focus my thoughts on how to utilize DPE in ranking moves. So a big thanks goes out to Bruno Brezel and KingPanagiotis on gamepress for their contributions to this article, and the unknown author(s) that wrote up the DPE*DPS article for their unique approach.

Why are we interested in DPE?


The motivation behind this article is to understand what charge moves are the best to use for attacking. We want to deal the most damage in the least time to maximize our damage output during raid battles. The basic approach of a move's power (POWER) divided by its cool down (TIME) gives us damage-per-second (DPS). DPS was used as the metric for ranking moves for the longest time, but it was immediately apparent that moves with multiple charge bars and high base damage were performing far better than the highest DPS moves. As such, recommended movesets typically had to be manually curated, rather than using an algorithm to give us a definitive answer. We want a definitive answer, ergo why we're interested in improving on using DPS alone.

So why is damage-per-energy (DPE) interesting? I'll straight-up copy/paste the Machamp example of Close Combat vs. Dynamic Punch here to emphasize the point:

An example of how DPE is useful: 
Close Combat
Machamp will crush you either way
Damage: 100
Energy bar(s): 1
Cool down: 2.30 seconds
DPS: 43.48
DPE: 100

Dynamic PunchDamage: 90
Energy bar(s): 2
Cool down: 2.70 seconds
DPS: 33.3
DPE: 180

Note that Close Combat has a higher DPS (43.48), but a lower DPE (100). Sure, for those 2.30 seconds you get to do more damage-per-second than if you were using Dynamic Punch. But if you run the numbers of the course of a full ~5.40 seconds, Dynamic Punch's damage output leaves Close Combat in the dust. You can of course use your quick move in the meantime (e.g. Counter), which has its own DPS. But Dynamic Punch is still leagues ahead. Moreover, Dynamic Punch can be launched with only half an energy bar, meaning if you're approaching the end of a battle, you can more readily use Dynamic Punch to finish the defender off, than if you were using Close Combat. That energy efficiency is worth something too!

Ok, so how do we deal the most damage in the least time?


Well, we want to consider how to deal the most damage over a set period of time (let's call that a "CYCLE"). Previously, we just used DPS and then manually figured out which moves were the best by using DPS as a pre-emptive guide. My previous article used the approach of DPE/TIME to rank the best defending moves. I think this is still a pretty good metric, but no-one cares about defending anymore, and it isn't a good metric for attacking. As KingPanagiotis pointed out, I also didn't adjust for the total time spent for multiple charge moves, which really explains why my list was terrible for attacking moves.

Bruno Brezel also pointed out that you really need to consider the damage done by quick moves in-between charge move uses. In adapting these analyses for attacking movesets, we definitely need to include that consideration.

Arriving at my current formula


The Gamepress crew's new DPE*DPS formula definitely improves on using either alone, but they acknowledge that it over-rewards  single-charge bar moves. This is due to how they incorporate POWER into their formula as a multiplier. It does a nice job in incorporating TIME (used to generate DPS) and ENERGY (100 divided by the number of charge bars) into the formula, but the deconstructed formula they're using is:


POWER   x   POWER
    TIME         ENERGY

So it effectively uses POWER^2, exponentially rewarding moves for having a high base power, and then punishes moves for having high TIME and high ENERGY. It works well, but by effectively using POWER^2, they over-value high POWER, not simply high DPS, nor one-charge moves.

So I got to thinking about how to best balance these variables. Breaking it down into the principles of our goal, we want to:

Reward 
High POWER
High DPE
Punish 
Long cool downs (high TIME)

I also agree with Bruno Brezel's point that we can't just ignore the damage done by quick moves in the calculation. If a move finished 3 seconds before another, that means you did 3 seconds worth of quick move damage, and gained 3 seconds worth of quick move energy. Bruno suggested a quick move 10 base DPS and 10 base EPS. I like this approach, but it's important to remember that these are just approximations of a Pokemon's quick move, and actual calculations would benefit from incorporating full movesets.

i.e. we want to reward power, reward total uses, and punish for cooldown. But the only way to punish for cooldown appropriately is to consider what damage is done in-between charge moves.

After playing around with formulae for a while, I came up with this:


Damage/Cycle = DMGtotal + Extra TIME * QuickDPS

Or re-written with the actual terms:

CBs = # of charge bars
POWER = The move's base power
TIME = The cool down of a move
10s = 10 seconds, my approximation of a cycle's worth of time
10dps = I've inserted a 10 DPS move here 

Damage/Cycle = (POWER * CBs) + ((10s - TIME * CBs) * 10dps)


To translate this into english:


DMGtotal = (POWER*CBs) 
This gives you the total damage output from a full charge bar 

Extra TIME = (10s - TIME * CBs) 
This gives you the amount of time spent not in cool down (TIME * CBs) over a 10 second CYCLE 

QuickDPS = 10 
This multiplies the time not spent in cool down by the DPS you can expect to do during this time. I used Bruno's 10 DPS as a baseline.

What I haven't considered yet is the energy gained by the quick move usage. With this system, Outrage beats out Draco Meteor by a ton. But Draco Meteor spends 4.2s less time in cool down, so it has a lot of opportunity to close that gap. Thus, I think it's worth including.  As such, I need to adjust the formula to include the extra energy gained using quick moves, and the extra damage that energy would contribute towards. Here's what I arrived at in the end:

10eps = I've inserted a 10 energy-per-second (EPS) move here
Extra energy, converted to damage: ((10s - TIME * CBs) * 10eps)*(DPE)
This gives us the extra time not spent in cool down, times the energy we gain per second, time the damage per energy (the units cancel out to damage if you do the algebra). 

Damage/Cycle = (POWER * CBs) + ((10s - TIME * CBs) * 10dps) +
((10s - TIME * CBs) * 10eps)*(DPE)


The additional interaction calculates the energy gained and then uses it to generate additional damage. Thus, you get a more complete view of Damage/Cycle.

Utility of this approach: surprises and insights


It's promising to see all the good charge moves ranked near the top like we'd expect. Indeed, Frenzy Plant takes the #1 spot, while Shadow Ball sits right up there as well. We also don't see a bias towards single-charge moves vs. multi-charge moves. While Wild Charge rank above Zap Cannon, Precipice Blades is still very near the top, thanks to leaving so much time to use quick moves in between Precipice Blades. We also see that Draco Meteor out-damages Outrage by a bit, while Dragon Claw is left in the dust despite having 3 charge bars.

Draco Meteor vs. Outrage is something that's been hard to really figure out. By virtue of having extra time to use Quick Moves, Draco Meteor generates extra Damage and Energy, since it spends 4.2s less in cool down. But Outrage is 70 points stronger over a full charge bar. If you consider 4.2s of damage at 10dps and 10eps, you make up 42 damage over that time and 42 energy; that's almost halfway to another Draco Meteor! So this result makes sense, despite Outrage seeming to be so much stronger due to its ludicrous base damage.

Also unique to see is the comparison of moves like Dazzling Gleam and Shadow Ball (thanks to WaterYouWading4 for this talking point). Shadow Ball and Dazzling Gleam are both 2-charge moves with 100 base damage and similar cool down times (3s and 3.5s respectively). But Shadow Ball is ranked well ahead of Dazzling Gleam. What gives? Well... over the course of a full charge bar Shadow Ball gains 1s of quick move usage. Assuming 10dps and 10eps, that's 10 damage done, and 10 energy gained. Since Shadow Ball has such a great DPE, that 10 energy contributes 20% towards a future Shadow Ball, so that's effectively an extra 20 damage done! So while they both have very similar qualities, Shadow Ball picks up an extra ~30 damage over Dazzling Gleam per charge bar cycle off of quick moves alone!

Considerations and flaws

The one major issue with this approach is finding the appropriate timeframe to use as our definition of a "cycle." I used 10s as a cycle, which ranks Doom Desire 2nd. But if you use a 15s or 20s cycle, the longer cycle drops Doom Desire down to 4th or 9th respectively. Conversely, Outrage ranks up to 9th then 3rd respectively. That's because Outrage benefits greatly from reducing the influence that quick moves have on generating damage and energy in that timeframe. But this 20s result is definitely artificial inflation at a 20s cycle, because you use more than 2 charges in 20s. This is because we multiply the energy gained by quick moves by the DPE, moves with higher DPE get unfairly favoured. But how many charge bars do you actually use in 10s? 15s? Maybe the best value is 12s assuming phone lag.

How I can improve on this estimate is to figure out about how long a Pokemon survives against a Raid Pokemon on average to see what an appropriate definition of "cycle" is. I've stuck with 10s/cycle because I assume a full-charge bar, and a 10eps move (therefore 10s gives me one full charge bar). Unfortunately this varies wildly for different Pokemon. For instance, Gengar using Shadow Ball ain't gonna last too long, but Gardevoir using Dazzling Gleam will last ages. So is it fair to compare the two at a static 10s cycle? 15s cycle? 20s cycle? I think we'd need to insert a general bulk factor somewhere, and then normalize the cycle length over the bulk factor.

In Conclusion


There you have it! If the folks at Gamepress like this system, please feel free to optimize it and use it! Including the actual DPS and EPS of quick moves only works in a Pokemon-specific fashion, so while that is definitely worth considering, I don't think you can rank charge moves in a general fashion like that. But maybe some testing of how long it takes to reach a full charge bar could generate a better definition of a "cycle."

Cheers,
Let's GO!

p.s. if you haven't seen it yet, check out the Let's GO Gym Decay Rate calculator(s)! 

No comments:

Post a Comment