Uptime-based Modifiers and You #960
marcustyphoon
started this conversation in
Technical notes
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Say half the time you have a +50% buff and the other half you have a +100% buff, with no overlap, and your damage is otherwise flat over time. You have an aggregate +75% buff from these two combined.
The optimizer simulates this situation by giving you half of each buff and pretending you have them both, at the same time, all the time (+25% and +50%). This tool not/does not contain a rotation simulator; it doesn't know when any of this stuff is happening (save us, https://github.com/Mk-Chan/gw2combat).
For accurate results, this means that the buffs must be simulated as additive with each other, which they only will be if they're flagged as additive (with all additive buffs). They should not be multiplied with each other, because you never have both at the same time. If we simulated them as two multiplicative buffs, we would give you an aggregate +87.5% buff, which is too high for this case (the correct value is +75% regardless of whether the buffs are add or mult). Why?
Well, if you had two separate multiplicative buffs of this magnitude, each with 50% uptime, but the times you had them always overlapped, what would you have? +200% when you had both, +0% when you had neither so +100% aggregate. That's even higher!
What we effectively assume and simulate in mult mode is that if you have two separate buffs with separate uptimes, the uptimes overlap an amount equivalent to them being uncorrelated/random. In this case, that means a quarter of the time you have both buffs (and a +200% modifier), a quarter of the time you only have +100%, a quarter of the time you have +50%, and a quarter of the time you have neither (+0). Lo and behold, that averages to +87.5%.
This does, though, mean that the gear optimizer underestimates your modifiers if you have multiple multiplicative uptime-based ones that actually overlap, and overestimates your modifiers if you have multiple multiplicative uptime-based ones that actually don't overlap. Fortunately this is pretty rare.
(This would also, in theory, apply to multiple uptime-based gain-x%-more-stats bonuses, but those are extremely rare. Please keep them rare, anet. Please? 🙏)
The most obvious case where this would have an observable effect would be comparing eagle relic and thief relic when equipping one of the executioner traits (+20% damage to enemies under 50% health). The gear optimizer pretends that, all the time, you have a +5% mult bonus from eagle or thief and a +10% mult bonus from the trait, and thus gives you a +15.5% aggregate damage bonus with either relic and says they're tied. Eagle relic and the executioner bonus actually completely overlap, though, giving you +32% damage half the time, or +16% aggregate, so in a sense it should be half a percent better than thief even though the optimizer thinks they're the same. This ignores, though, the fact that in reality you never have exactly 50% uptime on executioner-style bonuses, as has been discussed at length in the theorycrafting community, so this comparison is inaccurate for other reasons. (Unsuspecting strikes on revenant and warrior's cunning on warrior have the opposite effect; they never overlap with eagle so they make the optimizer think eagle is better than it actually is; same caveat.)
In the end the effect discussed here is fairly minor compared to the obvious fact that, as you probably picked up on from the bold text in the first paragraph, no build's damage is actually flat over time. For example, of course we take pains to press "Sic 'em!" on soulbeast when we're doing skills that hit really hard, meaning its impact is more than "its percentage uptime multiplied by its effect" would calculate to (and I thus didn't even implement it as a checkbox). This means that any percentage uptime checkbox you make use of in the gear optimizer isn't ultra-accurate.
Beta Was this translation helpful? Give feedback.
All reactions