@caperon, I can but it's not going to give you what I want. The current simulation will use synergies every 15 seconds without regard to your current bar. Since you only have 4 pieces of Moondancer on your main bar it will be quite unlikely that you will get the Moondancer buff.
Really impressive! I always thought that for boss fights aether 3pc was better than moondancer...
In the pic you posted you used scathing with moondancer and 2inferno's. Wouldnt it be better to use aether with scathing for the crit bonus and a mix of lightning and inferno?
Gonna try and play around with it!
IzakiBrotherSs wrote: »@Asayre Thank ypu very much for all your answers its really appreciated and informative. So I have a few more for you!
1. I thought that doing heavy attacks removed the off balance effect..! So wouldn't heavy attack builds actually hinder this whole group set up based around Concussed and off balance?
2. If the "meta" does shift to the 75 Thaumaturge, is the fire staff still going to out perform a shock one? The damage on liquid lightning and blockade will be really boosted at this point, so maybe the front bar staves for sorcs will also change?
Thanks in advance!
IzakiBrotherSs wrote: »@Asayre Thank ypu very much for all your answers its really appreciated and informative. So I have a few more for you!
1. I thought that doing heavy attacks removed the off balance effect..! So wouldn't heavy attack builds actually hinder this whole group set up based around Concussed and off balance?
2. If the "meta" does shift to the 75 Thaumaturge, is the fire staff still going to out perform a shock one? The damage on liquid lightning and blockade will be really boosted at this point, so maybe the front bar staves for sorcs will also change?
Thanks in advance!
Heavy attacks remove off balance, yes. BUT blockade of storms sets enemies immediately off balance again because they are still concussed. So it doesn't really affect the uptime on concussion or off-balance
For single target, I think Inferno staff is better for a main bar. If you are using Burning Spellweave then the light attacks are helping in maintaining a good uptime. But even if you are not using Burning Spellweave, an Inferno staff is preferable on your main bar because the majority of your damage is single target. In terms of simulation comparison, DPS for 2 Ilambris, 5 Julianos, 3 Moondancer with two Inferno staves is 42167 but 41903 if using a lightning staff on the main bar.IzakiBrotherSs wrote: »What is your take on the Lightning vs Inferno staff on the main bar?It depends a bit on how far away you are from putting 75 CP into Thaumathurge. If I assume 40% of my damage is from DoT and I'm just getting Major Breach, then my CP optimiser says to put 100 in Elemental Expert, 46 in Spell Erosion, 42 in Elfborn and 12 in Thaumathurge. The optimisation function output is 1.793. If you open the developer console on my CP optimisation webpage you can see the optimisation function output. If I force it to put 75 points into Thaumathurge it then suggest 100 in Elemental Expert, 5 in Spell Erosion, 22 in Elfborn with an optimisation function output of 1.745. So you'll be losing about 3% damage. This suggest that you need your target to be off-balance for at least a third of the time, possibly higher since Exploiter is presumably additive with other forms of damage done.IzakiBrotherSs wrote: »As well as the Exploiter passive, is it worth spending 75 CP into Thaumaturge and rely on setting enemies off balance for the 10% damage increase?
I think @Masel92 provides interesting comments. Putting 75 points to get Exploiter is probably best done in raids where you have heavy attack builds going on. @Masel92 do you happen to use Combat Metrics? And if so, does it show the debuff uptime of Off-balance?Woops I made a mistake there. (6) should have been with an Aether staff. When compared to (4) it is just comparing the difference between using 3/4 pieces of Infallible instead of Moondancer and I find that the difference is too small to be detected by my simulation which agrees well with the weighted ability metric calculations. A straight ability metric calculation for 2 Ilambris, 5 Burning Spellweave, 3 Moondancer is 86580 and for 2 Ilambris, 5 Burning Spellweave, 3 Infallible it is 85870. That means that 3 Moondancer should do about 0.8% more damage than 3 Infallible but neglects to take into account that the damage difference is in favour of Infallible for light and heavy attacks thus the damage difference is smaller than 0.8%. I also made a mistake of putting my notes on Minor Vulnerability for (5) into that of (6). (5) has higher Minor Vulnerability because Blockade of Storms is being used. I've updated my figure. Sorry for the confusion and thanks for spotting it. That simulation was more personal because I have a Sharpened Maelstrom Lightning staff and was interested in what I could expect.IzakiBrotherSs wrote: »I noticed that your setup (6) was using Aether and a random staff, yet there is no considerable DPS loss in comparison to setup (4). Also your minor vulnerability uptime is significantly higher, this leads me to guess that you were using Boundless Storm over Curse?.
IzakiBrotherSs wrote: »@Asayre Thank ypu very much for all your answers its really appreciated and informative. So I have a few more for you!
1. I thought that doing heavy attacks removed the off balance effect..! So wouldn't heavy attack builds actually hinder this whole group set up based around Concussed and off balance?
2. If the "meta" does shift to the 75 Thaumaturge, is the fire staff still going to out perform a shock one? The damage on liquid lightning and blockade will be really boosted at this point, so maybe the front bar staves for sorcs will also change?
Thanks in advance!
The critical damage formula I have implemented isSiliconShadow wrote: »1) Have you considered the change to critical damage in the new patch? It looks like the calculations you have are multiplicative, and it looks like now we are getting additive critical damage, drastically changing how TBS stacks up.
I answered a similar question so just copy pasting the answerSiliconShadow wrote: »2) With the new patch the exploiter passive may be more beneficial than going more into elfborn. Requiring 75 into thaumaturge to get the 10% bonus to off balance mobs which may be better going forward in organised groups.
IzakiBrotherSs wrote: »
As well as the Exploiter passive, is it worth spending 75 CP into Thaumaturge and rely on setting enemies off balance for the 10% damage increase?
It depends a bit on how far away you are from putting 75 CP into Thaumathurge. If I assume 40% of my damage is from DoT and I'm just getting Major Breach, then my CP optimiser says to put 100 in Elemental Expert, 46 in Spell Erosion, 42 in Elfborn and 12 in Thaumathurge. The optimisation function output is 1.793. If you open the developer console on my CP optimisation webpage you can see the optimisation function output. If I force it to put 75 points into Thaumathurge it then suggest 100 in Elemental Expert, 5 in Spell Erosion, 22 in Elfborn with an optimisation function output of 1.745. So you'll be losing about 3% damage. This suggest that you need your target to be off-balance for at least a third of the time, possibly higher since Exploiter is presumably additive with other forms of damage done.
No, I haven't but I like the idea. I'm not familiar with C#, I tried it out a bit when I was learning Unity but didn't do much else. If you don't mind could you explain the core process?SiliconShadow wrote: »3) Have you thought about doing this the opposite way around in the application and using a tsp algorithm to calculate an optimal rotation for a weapon set? (I am working on one, but in c# currently this is why I ask)
If you want you can send me a PM for a Windows executable or the Matlab source code. I understand that not many people will have Matlab but it is like the only programming language that I can write anything decent in.SiliconShadow wrote: »4) Are you releasing what looks like the matlab application that you have written at all?
IzakiBrotherSs wrote: »No, I haven't but I like the idea. I'm not familiar with C#, I tried it out a bit when I was learning Unity but didn't do much else. If you don't mind could you explain the core process?SiliconShadow wrote: »3) Have you thought about doing this the opposite way around in the application and using a tsp algorithm to calculate an optimal rotation for a weapon set? (I am working on one, but in c# currently this is why I ask)
SiliconShadow wrote: »I don't have access to PM you here, so I have sent on Tamriel Foundry.IzakiBrotherSs wrote: »No, I haven't but I like the idea. I'm not familiar with C#, I tried it out a bit when I was learning Unity but didn't do much else. If you don't mind could you explain the core process?SiliconShadow wrote: »3) Have you thought about doing this the opposite way around in the application and using a tsp algorithm to calculate an optimal rotation for a weapon set? (I am working on one, but in c# currently this is why I ask)
This is a time based algorithm, where we cover as much distance as possible using a limited amount of points over a set period of time. For distance we use the damage dealt presuming number of targets in different scenarios.
Each skill has:
Cast time
Animation time
Initial damage
Damage over time (Which includes a more complicated component of which point to clip or not to clip, or to leave down)
We also have
Bar swap
Light attack
Heavy attack
Given a finite number of inputs of skills, which can be taken from the skill dump, and a finite number of armours (which would require work to change from a sheet in a format of descriptions to actual values) we can create a timeline of how skills are to be cast in order.
To determine the order we can use one of a number of methods but the two I would go for with this are organic or brute force. Brute force would be immensely hard to calculate unless we use restrictions such as giving a role to a skill (DOT / Spammable / Reactive) we can then create the algorithm to create every combination of skill bars possible, then every combination of DOT > Reactive > Spammable possible. In our case a TSP algorithm fits the problem quite closely in respects to brute force or organic. (Brute force here: https://programmingpraxis.com/2010/03/12/traveling-salesman-brute-force/)
The brute force algorithm describes cities and calculating the distance between cities for the shorted route possible between them all. Our problem is the inverse to this where we want to travel the most amount of distance (Damage caused) in the shortest amount of time possible using the skills as our destinations. The algorithm here can either done recursively or iteratively using the same method. We can pre-calculate skill time lines giving them points of time which can overlap on different tracks of damage. This data then is compiled and each possible combination is recorded, and the best result is given. This brute force algorithm may be fine for our scenario however even with a 50 or so destinations, the number of permutations would be immense albeit giving the perfect answer every time, however the alternative would be organic.
Ants. How ants find food is they forage on paths randomly with equal probability, during the path they travel they leave pheromones. Once an ant has reached it's destination then it evaluates the quality of the food and returns home leave a pheromone trail marking how good the source was. This can be applied to optimising skill rotations. We don't necessarily have to calculate every permutation. We can put a number of ants on each starting point, and let them pick skills determining the skill order to be the best outcome of damage and cast time giving a value to that route, the value would be the dps dealt over the amount of time of the ants travels. We can repeat this process by combining path sections with the highest pheromone values as biases for which path the ant takes to optimise the route. The number of passes determines how close we get to the perfect value, but this then becomes very close within a few % of the optimal brute force solution, however we have calculated far fewer paths over the same processing time.
minDPS = S/Cs S: Spamable dmg Cs: Spamable casttimeThe maximum DPS is given by:
maxDPS = 1/T*[Ns*S+SUM_i(Di*Ni)] Di: DOT number i, i = 1, 2, ..., M, with M the total number of DOTs Ci: Cast time of DOT i Ti: Duration of DOT i Ns: Number of spamable casts Ni: Number of DOT casts for DOT i T: Total fight duration Using Ni=T/Ti and T = Ns*Cs+SUM_i(Ni*Ci) <-> Ns= T/Cs(1-SUM_i(Ci/Ti) we get for our final DPS: maxDPS = [1-SUM_i(Ci/Ti)]/Cs * S + SUM_i(Di/Ti) (1)The highest DPS increase a DOT can provide is given by its dmg per duration (Di/Ti). So ideally you have DOTs with a long duration and a high DPS, but that is often not the case. A high cast time on DOT or Spamable lowers the total DPS.
DPS = S/Cs + 1/T1(D1/C1-S/Cs), only a gain by D1 if D1/C1 > S/Cs
DPS = [1-Ci/Ti]/Cs * S + Di/TiSo inserting the values for all DOTs Di will give a DPS ranking that can be translated into a cast priority. In a standard rotation the priority is only relavant in the beginning of the fight and when two dots expire at the same time and you have to decide which you refresh first. It can also be used to determine at which health % a templar should start using execute over sweeps and how long it is benefiting to keep every individual DOT up compared with the execute.
I think you can heavily reduce the size of the problem especially the permutations if you make use of additional information:
@SiliconShadow
Thanks for the explanation. So if I understand correctly, if we wanted to simulate let's say just Force Pulse we have a Force Pulse Node that loops back on itself and we would use that path. The path length is proportional to damage and you would want to keep using paths until you reach the target health. And if you had two skills say one is a DoT and one is a spammable then some nodes would be deactivated for a duration equal to the length of the DoT? I imagine that the path lengths have to be updated every time you get a buff as well?
@montiferus I'm a bit undecided on what class to simulate next. Templars are a bit of annoyance because I have to make sure magicka cost calculations are exactly right or else their Radiant Oppression goes a bit wonky. Magicka dragonknights or nightblades are probably the easiest because I have most of their skills done already but I'm also thinking of stamina nightblades.