On a scale from 1 to 5, how confused are you?

  • 1

    Votes: 2 11.8%
  • 2

    Votes: 1 5.9%
  • 3

    Votes: 0 0.0%
  • 4

    Votes: 0 0.0%
  • 5

    Votes: 1 5.9%
  • Who are you and what did you do with my brain!?!?!?

    Votes: 13 76.5%
  • Total voters
    17
  • Poll closed .

Math Fish

Squirrel
Royal Guardian
Characters
Math Fish (Marksman), Shama Fisha (Water), Accursed Angelfish (Shadow), Logical Loach (Fire)
Platform
PC, Steam
Last edited
I figured I was going to give @Sarah Otter something as meme-y as a bunch of screaming goat songs, I should give something similarly over-the-top for @Damon Otter. Therefore, I present to you on this Christmas day the first part of a huge humongous giant monstrous formula I am working on that will eventually be used to tell you the value of every stat in the game (except Magic Find ... forget that lol).

1640436978204.png

Well this is definitely very math-y looking and quite large as I said, but ... what in the name of all things logical is this thing? That is what I will attempt to explain in the rest of this post.



First, and foremost, this part of the formula simply gives the total damage per second of a single ability. The reason it is so large and complicated is that I am attempting to account for pretty much anything ... consumable buffs, party buffs, how often something triggers, how active a stat is, how stats influence one another, and so on. And I have a variable somewhere for every single one of these (or will eventually lol)! For the mathematically inclined, this is just a few multipliers scaled by total cooldown followed by a few adders. This isn't perfect yet, as I haven't fully fleshed out the adders or the ACT formulas for Flux and Berserk. That will come once I have a lot more foundational stuff built up.

Second, there are a lot of "variables" in there. I put "variables" in quotes because, believe it or not, most of these things is actually its own formula ... most with 24 or so variables in them. I condensed the formula down to this because this is all I could reasonably fit on one line. rofl Here is what they are:
  • 1640437411004.png
    This one is the base damage of the ability before any modifiers (note that Ability+ runes are not taken into account yet). The subscript denotes which ability we are looking at. One day I will have a numbering system for every ability in the game, but that is still a bit off in the future.​
  • 1640437518648.png
    All these ones with "ACT" in them are formulas that tell me how active a particular stat is. Most of these will have a flat value of 100%, but there was a need to generalize all these for cases like Onslaught, Flux, Berserk, Blasting, Voidstrike, and Juggernaut (just from the stats taken into account here). Each one of these 24 formulas and their 576 partial derivatives will have to be custom-written ... that will bring much pain and suffering. lol​
  • 1640437756297.png
    I would have written these as "OSF" instead of "F", but that would have made the formula take two lines. Oh well! All these are the Official Stat Formula for each stat, but generalized to have many more variables in them. For ease in comparison I included both formulas below this bullet point. The stats I have in the massive formula above are:​
    • 1 - Mastery 1 (There is one for Mastery 2 ... but it is more complicated to add than you would think)​
    • 10 - Haste​
    • 11 - Expertise​
    • 12 - Savagery​
    • 13 - Brutality​
    • 14 - Berserk​
    • 15 - Blasting​
    • 16 - Flux​
    • 17 - Glory​
    • 18 - Juggernaut​
    • 21 - Onslaught​
    • 22 - Poise​
    • 23 - Voidstrike​
1640438950955.png
1640438917872.png

  • 1640438069603.png
    This is the indicator function. It is 1 if the ability is a single target damaging ability and 0 otherwise. I use this to filter abilities for the Voidstrike stat, which only can be utilized off single target abilities.
  • 1640438175021.png
    These are two times I have to calculate for the Voidstrike stat. The first time is the average time it takes to trigger Voidstrike while the second time is the average time it takes to utilize Voidstrike once triggered. Both of these will have formulas that will be as nasty as they sound.
  • 1640438287351.png
    Expected Hit Points. It is a value I need to calculate how much damage Juggernaut actually does, as Juggernaut is based of your CURRENT hit points.
  • 1640438356486.png
    It means dip s ... Seriously, it means Damage Instances per Second. It is a value I need to determine the damage per second of Blasting. The damage is easy enough, but scaling it to be a per second value requires more work.
So, imagine for a minute that you have this giant formula with all this stuff I talked about inserted into there. In order to get the value of a stat, I need to take the derivative of this thing with respect to the stat I'm interested in. And I need to do this for all 24 stats! That is why this whole thing is taking a very long time to do (and why I couldn't have it ready for Christmas). What I do have, though, is a massive spreadsheet with numbers. So for this last section I will just paste a bunch of out-of-context stuff from the document and let you stare at them (or blank out, whatever lol) for a bit. Merry Christmas and a Happy New Year!! <3



This first bunch is from the "Constants" sheet:

1640439286348.png
1640439325454.png
1640439347668.png
1640439366614.png

This last one is from the "Abilities" sheet.

1640439449658.png
 

Sinjin

Jack Of All Trades
Platform
iOS
Bitter Chill’s group buff (ice wiz’s only group buff) provides about the same mastery boost as a single augy rune (when fully charged). Amortizing it’s benefit over its uptime (<30 seconds) over it’s 3 minute cooldown results in a… wait for it… <1% dmg increase (at full charge). so, just noise in the data.

It doesn’t even compare favorably to the Will benefit of Mass Absorb Shield, and that is buffing something as marginally beneficial as mana regen.

Compounding it with Steady, Bitter Chill’s benefit is a rounding error. Well, at least it’s not Tempest of the Roc.
 
Reactions: Sumi
  • Likex1

Renaiss

Villager
Characters
Renaiss, AutumnFall, Dee Endisnear
Platform
PC
I have two questions.

1. Does a slow ping rate (from satellite internet) affect or alter the data?
2. Why did you use Christmas to lure me into reading this?

I need to rest my brain now. 🧠 🛏
 
Reactions: Zaphyra
  • Hahax1

Tenzor

Legendary Hero
Characters
Dezgrim, Tenzor
Platform
Steam
Last edited
Stats math is a good thing but that not help to ppl do more damage because most of them did not understand base and more important things like right build and right ability rotation - that gives main damage output. Diminishing return and right stats values is more like Polishing when everything else is right. Thats something like you have a car and you start to make your carburetor perfect ever, over all others important things that can make your car faster...

In the Diablo 3 was good damage output info in the character screen, where you got real time info while changing gear.
At least it would be nice to make some kind of damage calculator similar to that - http://d3ps.github.io/

I don't think that coming up with a bike again is a good idea. Here you can check how that problem solved in the WOW and millions of players use this: - https://www.simulationcraft.org/
And how that calculated - https://github.com/simulationcraft/simc/wiki

Everything is much more complicated than just complicated formulas that you write...We really need this??? but if we need this - is we must stop on the half-way like just complicated formula? or maybe we need something like Simcraft. But I am not sure that we have that level of importance for such things, because we are not compet for the world first DPS logs. I think that some basic DPS calculator like in Diablo 3 that would be perfect for suiting our needs.

And what is CDx and CTx in the denominator ? BTW some ability has different cast time, some no cast time and they are instant...and we also have some concept of "global cooldown" for every ability after using it.

You are doing good things....but I don't think that your spent efforts will make someone life easier. Ppl need something intuitive and that they can use. Delving into the formula is not at all an easy task for simple Jon!
 
Reactions: Zaphyra and Black_Cvlt
  • Likex2

Math Fish

Squirrel
Royal Guardian
Characters
Math Fish (Marksman), Shama Fisha (Water), Accursed Angelfish (Shadow), Logical Loach (Fire)
Platform
PC, Steam
I have two questions.

1. Does a slow ping rate (from satellite internet) affect or alter the data?
2. Why did you use Christmas to lure me into reading this?

I need to rest my brain now. 🧠 🛏
I have two answers. :)
  1. It does not currently alter the data I have. In theory I could add something like that. The way it affects data is actually quite simple, but actually measuring it is the problem. For now I will leave it out and consider it after I am done with everything else.
  2. Sorry about that (kinda hehe). I just figured I should get something overly mathematical for Damon as I got something overly goat-y for Sarah. And it turned out that I was far enough in developing this things to present something meaningful.
So did I. I am writing this post at around 10am my time. I just woke up. rofl

Stats math is a good thing but that not help to ppl do more damage because most of them did not understand base and more important things like right build and right ability rotation - that gives main damage output. Diminishing return and right stats values is more like Polishing when everything else is right. Thats something like you have a car and you start to make your carburetor perfect ever, over all others important things that can make your car faster...
The main purpose of this will be to provide a way to compare stats to one another. A DPS calculator would actually be much simpler than what I am trying to do. The difficulty I am facing in both cases right now is that a lot of work is needed to mathematically measure things like "how many times you get hit per second" and "average time between two single target ability casts". I could just ignore those measurements and have the user ballpark it. Then I would be done, but the calculator may or may not be that useful.

Everything is much more complicated than just complicated formulas that you write...We really need this??? but if we need this - is we must stop on the half-way like just complicated formula? or maybe we need something like Simcraft. But I am not sure that we have that level of importance for such things, because we are not compet for the world first DPS logs. I think that some basic DPS calculator like in Diablo 3 that would be perfect for suiting our needs.
I will be using averages to estimate a lot of the more complicated values. For example, when I measure the average time between single target attacks, I will simulate maybe the first 1000 spell casts and take an average. With Flux, I cannot hope to have a perfect simulation for mana usage at any given point. Instead I will use an average mana used per second. Depending on how you use your character the values may be slightly different (like if you spam heavy mana spells out of combat to trigger Flux). That said, I could create a case that handles those niche cases, but that is a lot more work that I think I will be doing for this. This is meant to give the overall value of a stat. We will see about further alterations one I'm done with this "simplified" version.

And what is CDx and CTx in the denominator ? BTW some ability has different cast time, some no cast time and they are instant...and we also have some concept of "global cooldown" for every ability after using it.
I'm not sure I adequately explained them in the original post. (EDIT: I completely forgot to put them in there. Oops! rofl) They are the base cooldown and base cast time, respectively, of a given spell. The formula you see in the original post is just for a single spell (the x in the formula). The real giant formula will be a summation of many copies of what you see in the original post, one term for every ability in the game (and one for auto attacks). So all variations of cooldowns and cast times will be accounted for. Instant cast abilities will have a CTx of 0. Strangely, auto attacks will have a CDx of 0 and a CTx of 2. That is just how attacks work. lol

Before anyone asks: When I do the sum, I will zero out most of the terms by using something like an indicator function (1 if being used and 0 if not).
 
Reactions: BLUEPAWS and Renaiss
  • Likex2

Tenzor

Legendary Hero
Characters
Dezgrim, Tenzor
Platform
Steam
When you do something complicated that's very hard to understand for the most of the peoples. And even you do a good thing but people don't read, because they did not want seem silly. The most hard part is convey thoughts to the mass of the people's about what you are doing and what is purpose of this.

Why I am mentioned about SIMcraft - Blasting is a good example:

Example 1
You are melee and face a single Bounty with slow attack then it can proc 1-2 time and average damage it done through the fight is about 10%

Example 2
You are melee and face a Bounty with 5 mobs and get hitted to often and Blasting has proc too often and average damage it done through the fight is about 50%. of total damage.

Example 3
You are melee and face a Bounty with 5 mobs and got a 2 DoT on self (like posion) and get hitted to often and Blasting has much more proc too often and average damage it done through the fight is about 70%. of total damage.

Example 4
Next Exaple for good MM Hunter.

You are use up trinket with [Brutal Force] (crt DMG and 3 of 100% crits) then use [Concussion shot] (AoE stunshot) then [Splinter shot] (AoE). Usually that enough to oneshot entire pack. But lets continue - next you tag a mob with low HP and kill him with [Murder] and with [Vengeance] talent that's gives you immediately reset of all talents and trinkets. So you can repeat AoE stun + AoE again.
So pack get killed from afar and all blasting that you have from DoT pocs just goes nowhere and overall output is 0% of additional damage. Sure, you can go to melee-range and to actualize that's procs from blasting but no really needs in that.

So we have different result for the one stat output but for different situations. Effectivies of blasting for melee range is very great (I mean abilitiy range and Shadow Priest's AoE also considered as melee range). I had many times situation with my warrior in the Pyrron, when I get stunned while I rushed in to the pack and all mobs around died before stun falls off from me, so they died without being hitted by any strike of mine and I get 100% damage output only from blasting.

So for real values need modeling of situations like SIMcraft but that will take so much efforts to calculate everything like this...
 

Tenzor

Legendary Hero
Characters
Dezgrim, Tenzor
Platform
Steam
Also here some questions about mechanics like - is can be Juggernaut occur from the DoT damage. If can, then value of importance for such things for DoT attacks can be higher. And how much ticks of DOT occur per minute for different DoT ability, then divide to 60 sec to get DPS. Also some time losses for reapplying DoT after proc of [Ultimate: Unstable power] (shadow priest).
 

Math Fish

Squirrel
Royal Guardian
Characters
Math Fish (Marksman), Shama Fisha (Water), Accursed Angelfish (Shadow), Logical Loach (Fire)
Platform
PC, Steam
When you do something complicated that's very hard to understand for the most of the peoples. And even you do a good thing but people don't read, because they did not want seem silly. The most hard part is convey thoughts to the mass of the people's about what you are doing and what is purpose of this.
That's the thing: No one needs to understand what is going on with all the calculations but me. All the masses need to understand is what numbers to put in. That part I will try to keep as simple as possible.

As for simulating every possible type of way someone can use their abilities, I simply will not be doing that. This will be a simple model with some strong assumptions. That said, you will be able to set a priority for abilities and an initial volley of attacks (if I can figure out the latter part). I guess you could set your initial volley of attacks to be everything you will use in the encounter (if I have enough space for that lol), but that would be asking too much for most people. I understand that this will not be perfect, but it will be more than enough for most people and that is enough for me and my sanity.

This is how I picture Math, when he's writing these formulas. 🤭👇

View attachment 15037
The only secret of the VnH universe is how to have fun with other people around. I do that by sometimes getting away from people and doing stuff like this. lol
 
Reactions: Zaphyra
  • Happyx1

Math Fish

Squirrel
Royal Guardian
Characters
Math Fish (Marksman), Shama Fisha (Water), Accursed Angelfish (Shadow), Logical Loach (Fire)
Platform
PC, Steam
As an aside, I figured out how I want to do one of the simulations and uh ... I think I will have to use that to change the denominator of the giant formula. That means I will have to do simulations to approximate derivatives! Oh joy! (sarcasm)
 

temp512

Warrior
Royal Guardian
Platform
PC
first and Foremost I want to thank you (mathfish) for all you do for the game. you try to make the game better and help people understand things.
but i didn't come here for a math lesson hahaha joke on second part
 

BLUEPAWS

Great Adventurer
Characters
Spotsthecheetah
Platform
Android
I have two answers. :)
  1. It does not currently alter the data I have. In theory I could add something like that. The way it affects data is actually quite simple, but actually measuring it is the problem. For now I will leave it out and consider it after I am done with everything else.
  2. Sorry about that (kinda hehe). I just figured I should get something overly mathematical for Damon as I got something overly goat-y for Sarah. And it turned out that I was far enough in developing this things to present something meaningful.
So did I. I am writing this post at around 10am my time. I just woke up. rofl


The main purpose of this will be to provide a way to compare stats to one another. A DPS calculator would actually be much simpler than what I am trying to do. The difficulty I am facing in both cases right now is that a lot of work is needed to mathematically measure things like "how many times you get hit per second" and "average time between two single target ability casts". I could just ignore those measurements and have the user ballpark it. Then I would be done, but the calculator may or may not be that useful.


I will be using averages to estimate a lot of the more complicated values. For example, when I measure the average time between single target attacks, I will simulate maybe the first 1000 spell casts and take an average. With Flux, I cannot hope to have a perfect simulation for mana usage at any given point. Instead I will use an average mana used per second. Depending on how you use your character the values may be slightly different (like if you spam heavy mana spells out of combat to trigger Flux). That said, I could create a case that handles those niche cases, but that is a lot more work that I think I will be doing for this. This is meant to give the overall value of a stat. We will see about further alterations one I'm done with this "simplified" version.


I'm not sure I adequately explained them in the original post. (EDIT: I completely forgot to put them in there. Oops! rofl) They are the base cooldown and base cast time, respectively, of a given spell. The formula you see in the original post is just for a single spell (the x in the formula). The real giant formula will be a summation of many copies of what you see in the original post, one term for every ability in the game (and one for auto attacks). So all variations of cooldowns and cast times will be accounted for. Instant cast abilities will have a CTx of 0. Strangely, auto attacks will have a CDx of 0 and a CTx of 2. That is just how attacks work. lol

Before anyone asks: When I do the sum, I will zero out most of the terms by using something like an indicator function (1 if being used and 0 if not).
This actually answered what I was going to ask. Unrelated but I feel I should say this, I may joke, but I have nothing but respect for my fellow players, even more so the epically smart ones, you are amazing MathFish!
 
Reactions: BadgerReborn and Zaphyra
  • Likex2

BLUEPAWS

Great Adventurer
Characters
Spotsthecheetah
Platform
Android
I figured I was going to give @Sarah Otter something as meme-y as a bunch of screaming goat songs, I should give something similarly over-the-top for @Damon Otter. Therefore, I present to you on this Christmas day the first part of a huge humongous giant monstrous formula I am working on that will eventually be used to tell you the value of every stat in the game (except Magic Find ... forget that lol).


Well this is definitely very math-y looking and quite large as I said, but ... what in the name of all things logical is this thing? That is what I will attempt to explain in the rest of this post.



First, and foremost, this part of the formula simply gives the total damage per second of a single ability. The reason it is so large and complicated is that I am attempting to account for pretty much anything ... consumable buffs, party buffs, how often something triggers, how active a stat is, how stats influence one another, and so on. And I have a variable somewhere for every single one of these (or will eventually lol)! For the mathematically inclined, this is just a few multipliers scaled by total cooldown followed by a few adders. This isn't perfect yet, as I haven't fully fleshed out the adders or the ACT formulas for Flux and Berserk. That will come once I have a lot more foundational stuff built up.

Second, there are a lot of "variables" in there. I put "variables" in quotes because, believe it or not, most of these things is actually its own formula ... most with 24 or so variables in them. I condensed the formula down to this because this is all I could reasonably fit on one line. rofl Here is what they are:
  • View attachment 15014
    This one is the base damage of the ability before any modifiers (note that Ability+ runes are not taken into account yet). The subscript denotes which ability we are looking at. One day I will have a numbering system for every ability in the game, but that is still a bit off in the future.​
  • View attachment 15015
    All these ones with "ACT" in them are formulas that tell me how active a particular stat is. Most of these will have a flat value of 100%, but there was a need to generalize all these for cases like Onslaught, Flux, Berserk, Blasting, Voidstrike, and Juggernaut (just from the stats taken into account here). Each one of these 24 formulas and their 576 partial derivatives will have to be custom-written ... that will bring much pain and suffering. lol​
  • View attachment 15016
    I would have written these as "OSF" instead of "F", but that would have made the formula take two lines. Oh well! All these are the Official Stat Formula for each stat, but generalized to have many more variables in them. For ease in comparison I included both formulas below this bullet point. The stats I have in the massive formula above are:​
    • 1 - Mastery 1 (There is one for Mastery 2 ... but it is more complicated to add than you would think)​
    • 10 - Haste​
    • 11 - Expertise​
    • 12 - Savagery​
    • 13 - Brutality​
    • 14 - Berserk​
    • 15 - Blasting​
    • 16 - Flux​
    • 17 - Glory​
    • 18 - Juggernaut​
    • 21 - Onslaught​
    • 22 - Poise​
    • 23 - Voidstrike​

  • View attachment 15017
    This is the indicator function. It is 1 if the ability is a single target damaging ability and 0 otherwise. I use this to filter abilities for the Voidstrike stat, which only can be utilized off single target abilities.
  • View attachment 15018
    These are two times I have to calculate for the Voidstrike stat. The first time is the average time it takes to trigger Voidstrike while the second time is the average time it takes to utilize Voidstrike once triggered. Both of these will have formulas that will be as nasty as they sound.
  • View attachment 15019
    Expected Hit Points. It is a value I need to calculate how much damage Juggernaut actually does, as Juggernaut is based of your CURRENT hit points.
  • View attachment 15020
    It means dip s ... Seriously, it means Damage Instances per Second. It is a value I need to determine the damage per second of Blasting. The damage is easy enough, but scaling it to be a per second value requires more work.
So, imagine for a minute that you have this giant formula with all this stuff I talked about inserted into there. In order to get the value of a stat, I need to take the derivative of this thing with respect to the stat I'm interested in. And I need to do this for all 24 stats! That is why this whole thing is taking a very long time to do (and why I couldn't have it ready for Christmas). What I do have, though, is a massive spreadsheet with numbers. So for this last section I will just paste a bunch of out-of-context stuff from the document and let you stare at them (or blank out, whatever lol) for a bit. Merry Christmas and a Happy New Year!! <3



This first bunch is from the "Constants" sheet:


This last one is from the "Abilities" sheet.

Are these stats just based on hunter class alone then?
 

Math Fish

Squirrel
Royal Guardian
Characters
Math Fish (Marksman), Shama Fisha (Water), Accursed Angelfish (Shadow), Logical Loach (Fire)
Platform
PC, Steam
Are these stats just based on hunter class alone then?
I am currently using a hunter ability as a stand in. Later on I will have every ability in the game. Proof of concept first, fancy stuff later. :)
 
Reactions: BLUEPAWS and Zaphyra
  • Likex2
Top