Table of Content
- In-depth (more like oversophisticated) calculations
- Cornerstone of AE VK archetype
I have bought LE around two years ago but haven’t played actievly until recent time. I fell in love in ARPG genre when I was 7 years old trying to play D1 on dad’s PC. It was really scary for seven years old kid to get into the Diablo’s room at floor 16 but what a good time it was. Later on as a teenager sometimes skipped school (shame on me) to play D2. Then it was quite some break from the games since I started to study at the university. Haven’t had decent PC at those times and life was quite poor. Played a little in D3 though. Some years ago started to play PoE since Bestiary league. During the last two years started to get into the game mechanics in-depth (sort of).
I love LE. It’s beta but it’s very decent beta and already it can be seen how deep it is. LE is all about choices. LE is a good illustration of Bushnell’s Law:
All the best games are easy to learn and difficult to master.
During the years of gaming I have seen a lot of build guides. I’ve followed them rigorously. Some of them were good some of them weren’t. But it’s much more interesting to invent something new even though it can be another wheel it’s still a lot of fun and pleasure since it’s you who made this. To be honest if you get into theory crafting you are planning more than playing. But it’s still very enjoyable.
I don’t want to write any kind of a build guide telling you what and how to do. I’ve decided that it would be better to give some insight into the game mechanic, how it actually works and etc. Currently it’s just one skill - Abyssal Echoes. If such format appears to be interesting then I will try to make sort of series of posts regarding kind of “deep” analysis of some of the game skills. Probably this topic will be useful for people developing support tools for LE such as LastEpochTools developed by @Dammitt or Last Epoch Info (tunklab.com) by @Tunk.
Disclaimer.: I’m an engineer and I’ll try to do my best to explain techniques and models and thoughts for such analysis
Lets start it!
Abyssal Echoes (AE) it’s Void Knight’s (VK) skill. On use it releases a nova applying Abyssal Decay (AD) on hit. AD is a damage over time (DoT) skill. It deals 60 void damage over 6 seconds. Special feature of AE is that each enemy hit by this skill releasing (echoing) another AE. So that every mob in the dense crowd is affected by the skill which is quite useful for “clearing” (excuse me for this PoE jargon). Also enemies with AD upong receiving a hit get all the damage from AD immediately. I even made a gif.
By itself if we take this skill in its basic form there is nothing special. But what makes it so special and deserving such analysis is some nodes in its tree (as any other skill in LE I would say). These special nodes are Creeping decay, Temporal Echo + Abyssal Cadence and Sequel of Decay. Another notable node is Distant Echoes and we will cover it later on.
- Creeping decay allows AD stacking. But it comes with DoT time halved (I believe it means that AD deals 30 void damage over 3 seconds).
- (Temporal Echo - Official Last Epoch Wiki) + Abyssal Cadence makes every AE casted by you to be repeated several times with 1 second interval between repetetions (recasts).
In-depth (more like oversophisticated) calculations
From this point the analysis starts. First of all there is no limit on number of stacks applied. There is a time limit of 3 seconds but number of AE stacks aren’t limited by itself. It means that we want as much stacks to be active during these 3 seconds as possible (as mana allows actually but not sure though and you will see why). But the question I pose is how to calculate the number of stacks with some parameters of your char given. Lets get to the math!
ARPG generic damage formula
The generic formula for damage dealt by skills in ARPGs is
- Base damage (aka flat damage) it’s just a base damage which you get from sources with Spell Void Damage +1 for example.
- Modifiers such as Increased void damage by 10% are additive meaning that you should summarize all of them then add 1 (since it’s percentage) to get the increased multiplier value.
- Modifiers such as More void damage are multiplicative meaning that you should add 1 to each you have and then multiply them.
Skill’s damage is a simple formula consisting of different multipliers. Base damage, Increased modifiers and More modifiers are quite boring. You can take them from the passive tree or items. Only one thing should be mentioned here. In general case More modifier is preferable choise over Increased modifier since the funtion z = xy has a higher order than z = x + y (refer to here). It means that it is more likely that a multiplicative modifier (such as More modifier) will increase the damage output more efficiently than an additive modifier (such as Increased modifier).
Scaling by skill mechanic
The life would be boring if we had just Base, Increased and More modifiers, right? Apart of this we have special things such as gameplay and game mechanic or more precisely skill mechanic. What is the skill mechanic in this case? It’s stacking and recasting. All of these guys Creeping decay, Temporal Echo + Abyssal Cadence and Sequel of Decay are real game changers and they present sort of special mechanical multipliers. So we have a new multiplier in our “traditional” and boring formula:
Lets elaborate on this Mecahnical Multiplier for AE. It’s very interesting skill for such analysis.
Abyssal Echoes maximum number of stacks (averaged)
Lets keep it simple for the first look into this. We keep the same formula as stated above with the Base Damage for 1 AD (30 void damage over 3 seconds if Creeping decay is taken). But over this 3 seconds we recasts AE several times and each recast apllies AD for another 3 seconds.
First of all we are interested in number of total recasts (initial cast + recasts) summary happening over the given 3 seconds (limit given by the Creeping decay). The average number of total recasts (initial cast + recasts) summary is calculated as
Example is given in the picture below. In this case we assume that CastRate is 1 second, TotalRecasts is 3 and CreepingDecayDuration is 3. Total numer of casts (AE recasts + 1 initial cast casted by you) happening during the 3 seconds stacking interval is 9. The formula works like a charm.
It gives a solid understanding of multipliers we should maximize. Please note that the interval between the recasts do not relevant (at this stage of analysis at least). If you cast AE continiously (assuming you have “infinite” mana pool) then the total number of casts happening over the 3 seconds interval remains the same for any time between recasts (adjusted by Distant Echoes node). The interval between recasts affects only the “ramp-up” time. This is the first conclusion we can come up with.
Some oversophistication for a gourmet (can be skipped safely)
Actually even though the formula seems to be intuitive the actual “prove” of this calculation requires some efforts.
Even though the formula above already gave some insight into the multipliers it’s not enough. It’s working under assumption that we cast AE continiously all the time. The value given by the formula is true only when we have reached and continue to support the number of AE stacks allowing by our cast rate. But we don’t take into consideration that AE is a very expensive skill. It costs 60 mana (on average). So that it is very unlinkely that we can support it over the time interval needed to deliver the maximum number of AD stacks.
Each cast applies AD which is active during 3 seconds time interval. It means that each cast in the picture above should be considered as a rectangular function with a duration of 3 seconds. Rectangular function is this thing. Lets call it function rect(t) (t refers for time).
If you cast AE at once and it’s not repeated then the AD is active for 3 seconds (if Creeping decay node taken). We can write it as following
“d” in the denominator stands for the Duration of any effect such as AD application duration for example. In the picture below some illustration of the denominator effect is given. Basically denominator defines duration of the rect(t) function.
The above formula represents a trivial case of single AE usage without recasts. Lets add one recast (picking Temporal Echo node). It looks like this
“t_r” in the numerator stands for time between AE recasts. This is adjusted by Distant Echoes node in AE tree. For rect(t) function any negative term added to the argument shifts the center of the rectangle. The illustration is given below
where “t_c” stands for cast time. CastTime = 1/CastRate.
We are ready for further generalization of our model. Number of stacks if AE casted continously before we run out of mana is given by
“M” stands for the number of casts before run out of mana. Simple formula is ManaPool/Cost - 1. But we can improve it. First of all in LE you can cast a skill when your MP is positive (even though it can be less than the skill cost). So that
Lets improve it further. We have mana regeneration per second restoring our mana continuously. Mana regeneration reduce skill cost so that the effective cost is
So that the actual value of “M” is given by
But if we want to get maximum number of stacks then we should do something different. Of course we can use Volatile Reversal (VR) to restore our mana pool such that it is “infinite”. Here the formula
I can “snapshot” this. I’m interested in the interval of certain duration. This duration is “d”. I can apply rectangular “window” of length “d” to the function. Like this
“*” is convolution but not multiplication.
The result can be obtained by Fourier transform. Convolution converts to multiplication, all the additive terms in the argument become a product of complex exponent and etc. The most important is the influence of the “window” applied. Even though we consider the case with infinite MP we are interested in number of casts over the time interval “d” which is equal CastRate * d. This is the external sum (which uses “j”). Because the initial function is limited by the “window” applied we can use one of the property of the Fourier transform. Brifly speaking we need to calculate the value of the Fourier transform at 0. Also the inner sum value is N+1. It’s clearly visible after Fourier transform (trust me, I’m an engineer). We have
SA = CastRate * d * (N+1)
Basically there are much simpler ways to come up with the formula but I have some certain professional deviations towards Fourier transform. But another ways are also very interesting and give some more insight into the AE usage.
So it is the same “intuitive” formula we have come up in the beginning. Maximum number of stacks equals to the multiplicative of Cast Rate, Total Number of Recasts and Duration. If we have “infinite” mana since we use VR our Cast Rate becomes the main scaling factor. But VR is not a silver bullet. It introduces some interruption in our cast series. Even though the skill is instant it will return you to the position you were at some seconds ago. In real combat it results in interruption of AE stacks application on a target. We will take this effect into accaunt as well.
We have defined everything we need to calculate realistic damage gain given by AE mechanic. The main formula is those with two sums above. It can be easily translated in the code
Simulation of “real” scenarios and Volatile Reversal impact
Lets start some modeling. First of all we have to define our char’s stats. For example
- Time between recasts is [1, 1.4, 2, 2.4] (consider several cases given by Distant Echoes (DE))
- Number of recasts is 5
- Cast rate is 3
- AD duration is 3
- Infinite MP
Dynamic of number of AD stacks over the time is shown in the picture below.
- DE node increases ramp-up/down time.
- Maximum number of stacks is 54 = CastRate * Duration * Total Recasts.
In “real life” we would use VR to maximize the damage output. VR gives sort of “infinite” mana. But lets constrain our VR usage to make as close as possible to the real scenario and at ease some analysis aspects.
- VR cooldown (CD) more or equal VR Reversal Time. Otherwise I have no idea how it is supposed to work. Assume and keep this for simplicity.
- To guarantee that the mana pool is always full after VR usage while VR used on its CD we should keep some pause between casts. Pause Time (PT) is defined as a difference between VR CD and VR Reversal Time (RT). So that PT = CD - RT.
- Once again. PT is the time when you don’t use AE unless you want to get into the troubles.
Okay, next turn with some “real” VR usage (meaning that we take into account pause time (PT)).
- Number of recasts is 5
- Cast rate is 4
- Mana regen is 10
- Mana pool is 250
- VR CD is 3
- VR RT is 2
- Vector of time between recasts is [1 1.4 2 2.4] (consider several cases given by Distant Echoes (DE))
- Vector of AE costs is [62 55 38 26]
- Sequel of Decay (SoD) is taken
- Since we use SoD we will calculate AD Effective Multiplier given by the formula
AD Eff Mult = AD Stacks * (SoD stacks * 0.15 + 1)
Distant Echoes analysis
Is DE such a good node? Well, it depends. The reason why it gives more damage output while VR PT (pause time) is taken into account is that DE reduces AE mana cost. So that with finite MP and VR PT with DE node taken you cast AE more times per second. Interval between recasts do not relevant for maximum number of stacks. The penalty is increased ramp-up time. Since ramp up time increased it is expected that with some additional interruption time introduced DE will not work so efficient. Lets introduce some certain delay trying to model real game scenario. You are running from pack to pack, you are interrupted and etc.
Parameters are the same as above plus:
- Some additional 0.5 seconds delay to VR PT. To run a little, to cast Smite or buffs
- Average time between battles (time taken between packs of mobs) is 5 seconds
- Average time to kill the pack is 7 seconds
The difference in mean value of AD Effective Multiplier with and without DE is 200 vs 220 which is 10% more with DE. Not a big difference but ramp up time with DE is obviuosly more. However ramp down time with DE is also more which is a good thing actually. So, in general DE is a good node. I have no idea why the time between recast on DE node is marked with “red” as it is something bad. It’s neutral actually and depends on your playstyle and preferences.
Cornerstone of AE VK archetype
The cornerstone of the AE VK archetype is a simple formula.
- Mana pool is “MP”
- Cast rate is “CR”
- AE Coast is “C”
- VR reversal time is “RT”
- Mana regen is “MR”
And the “cornerstone” of the optimizing the whole VK AE archetype is:
We can omit MR here since it adds quite a small delta. And hence
This formula gives either the optimal MP value is the AE Cost is given or the optimal AE cost (adjusted by DE mainly) if MP is given. I would recommend to use this equation
- If k_mp is less than 1 it means that you need more MP or less AE cost to get the maximum damage from AD stacking
- If k_mp is more than 1 then you have more MP than you need and should consider either increase AE Cost gaining more cast speed instead (for example) or reduce your MP since it’s won’t affect the damage output and will free some modifier slots on the items
Abyssal Echoes’ Decay maximum number of stacks (Creeping Decay node is taken) is given by
CR - Cast Rate, N - Number of AE Recasts, d - Creeping Decay (or SoD duration).
Optimum MP vs AE Cost ratio is given by
This optimum should be equal 1. If it’s more than 1 you have more MP than you actually need. If it’s less than 1 you have less MP required to get the maximum gain from AD stacking.
Distant Echoes (DE) node introduces the interval between recasts but doesn’t affect the maximum number of stacks. Instead this increases the ramp-up/down time required to get to the maximum. The ramp-up/down time is given by
N - Number of AE Recasts, t_r - Time Between Recasts, d - Creeping Decay (or SoD duration). t_c - Cast Time (t_c = 1 / CR).
I can add some more code to show how it is actually can be modeled to give you some more tools for build and analysis of your chars (if someone is interesed ).
So, I’m waiting for feedback and suggestions and try to answer any question you want to know about calculations, models and etc. You are welcomed!
Also if you like this please add me some carma on reddit (https://www.reddit.com/user/te35)
I’m not an active redditor but would like to create my own threads in LE regarding this type of mechanics analysis but can’t do this due to the carma threshold! Please add me some carma