Project 1999

Go Back   Project 1999 > Class Discussions > Melee

Reply
 
Thread Tools Display Modes
  #1  
Old 11-24-2024, 03:36 PM
Snaggles Snaggles is offline
Planar Protector


Join Date: Jul 2011
Posts: 3,504
Default

An archived example, not mine. Not sure on ranger buffs but Texas is one so assumed so. No avatar.

3/06/2020
/GU Derakor the Vindicator in 137s, 122k @883 | Swindles 13916 | Bista 11440 | Capricious 11367 | Zalir 9945 | Shaydir 9758 | Duckwalk 9194 | Zigzagdreams 8822 | Enessae 8744 | Apnea 6539 | Apathe 6188 | Arvan 5900| Texas 3942 | Jener 3862 | Suboptimized 3707

Duckwalk tstaff 255 str, 41% haste
Did the pull, zoned and started 15 seconds late.

9194/ 122 seconds (roughly) = 75.36 dps (doesn’t include proc damage)
(If parsed over 137 seconds = 67dps)

Patch notes: 9/8/2019 melee table change, monks can triple attack
https://www.project1999.com/forums/s...amage+bonus%94

Patch Notes: 8/13/2011 Damage bonus based on delay
https://www.project1999.com/forums/s...3Two-handed%94
Last edited by Snaggles; 11-24-2024 at 03:45 PM..
Reply With Quote
  #2  
Old 11-24-2024, 04:18 PM
Snaggles Snaggles is offline
Planar Protector


Join Date: Jul 2011
Posts: 3,504
Default

https://www.project1999.com/forums/s...d.php?t=367831

This post provided better info and more efficient heckling in only two pages.
Hopefully you hit 60 and get to take some swings at ol’Derakor.
Reply With Quote
  #3  
Old 11-24-2024, 04:37 PM
Jimjam Jimjam is offline
Planar Protector


Join Date: Jul 2013
Posts: 12,719
Default

Really interesting code there. Thanks for posting it. What is the source? If I understand correctly it creates a loaded d20 dice where the weighting of the faces is derived from a complex comparison of offense and mitigation.

It seems mitigation gets scaled to the attacker's offense by subtracting the average between the attacker's offence and the defender's mitigation from the mob's mitigation, producing the adjusted scaled mitigation. I supose this is to make it so that while it is possible to squelch a weaker' mob's mitigation to some degree, they always have at least some chance to mitigate?

The code then does some comparisons of the adjusted mitigation value to offence to create a multiplier based on offense.

The next bit I'm not sure of, but the presence of a mean and standard deviation along with other values suggests a normal distribution is created, the mean for which is set based on the offence mitigation comparisons.

This explains why we have spikes counts of the lower and highest hit values. As a normal distribution has been generated, theoretically there are no limits to the highest and lowest values of d generated, so the values which are out of bounds are getting lumped into the dice as rolls of 1 or 20 (i.e. min or max damage).

Can stats/code fans verify I'm understanding this snippet of code correctly? Are there any details where you can provide deeper understanding either? My interpretation seems to match my previously reported understanding, but I admit my interpretation was likely coloured by my existing beliefs.

Edit: Here is the code DSM kindly shared, which I interpret as creating a loaded d20 damage roll with the faces weighted by a complex comparison of offence and mitigation transformed into a normal distribution.
 

function RollD20(offense, mitigation)
local diff, mult1, mult2;

mitigation = mitigation - (mitigation - offense) / 2;
diff = offense - mitigation;
if ( offense > 30 ) then
mult1 = offense / 200 + 25.75;
if ( mitigation / offense < 0.35 ) then
mult1 = mult1 + 1;
elseif ( mitigation / offense > 0.65 ) then
mult1 = mult1 - 1;
end
else
mult1 = 11.5 + offense / 2;
end
if ( offense > 30 ) then
mult2 = offense / 140 + 18.5;
else
mult2 = 14 + offense / 6;
end

local mean = 0;

if ( offense > mitigation ) then
mean = diff / offense * mult1;
elseif ( mitigation > offense ) then
mean = diff / mitigation * mult2;
end

local stddev = 8.8;
local theta = 2 * math.pi * math.random();
local rho = math.sqrt(-2 * math.log(1 - math.random()));
local d = mean + stddev * rho * math.cos(theta);

if ( d < -9.5 ) then
d = -9.5;
elseif ( d > 9.5 ) then
d = 9.5;
end
d = d + 11;
d = math.floor(d);
return d;
end
Last edited by Jimjam; 11-24-2024 at 04:51 PM..
Reply With Quote
  #4  
Old 11-24-2024, 05:04 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,149
Default

Quote:
Originally Posted by Jimjam [You must be logged in to view images. Log in or Register.]
Really interesting code there. Thanks for posting it. What is the source? If I understand correctly it creates a loaded d20 dice where the weighting of the faces is derived from a complex comparison of offense and mitigation.

It seems mitigation gets scaled to the attacker's offense by subtracting the average between the attacker's offence and the defender's mitigation from the mob's mitigation, producing the adjusted scaled mitigation. I supose this is to make it so that while it is possible to squelch a weaker' mob's mitigation to some degree, they always have at least some chance to mitigate?

The code then does some comparisons of the adjusted mitigation value to offence to create a multiplier based on offense.

The next bit I'm not sure of, but the presence of a mean and standard deviation along with other values suggests a normal distribution is created, the mean for which is set based on the offence mitigation comparisons.

This explains why we have spikes counts of the lower and highest hit values. As a normal distribution has been generated, theoretically there are no limits to the highest and lowest values of d generated, so the values which are out of bounds are getting lumped into the dice as rolls of 1 or 20 (i.e. min or max damage).

Can stats/code fans verify I'm understanding this snippet of code correctly? Are there any details where you can provide deeper understanding either? My interpretation seems to match my previously reported understanding, but I admit my interpretation was likely coloured by my existing beliefs.

Edit: Here is the code DSM kindly shared, which I interpret as creating a loaded d20 damage roll with the faces weighted by a complex comparison of offence and mitigation transformed into a normal distribution.
 

function RollD20(offense, mitigation)
local diff, mult1, mult2;

mitigation = mitigation - (mitigation - offense) / 2;
diff = offense - mitigation;
if ( offense > 30 ) then
mult1 = offense / 200 + 25.75;
if ( mitigation / offense < 0.35 ) then
mult1 = mult1 + 1;
elseif ( mitigation / offense > 0.65 ) then
mult1 = mult1 - 1;
end
else
mult1 = 11.5 + offense / 2;
end
if ( offense > 30 ) then
mult2 = offense / 140 + 18.5;
else
mult2 = 14 + offense / 6;
end

local mean = 0;

if ( offense > mitigation ) then
mean = diff / offense * mult1;
elseif ( mitigation > offense ) then
mean = diff / mitigation * mult2;
end

local stddev = 8.8;
local theta = 2 * math.pi * math.random();
local rho = math.sqrt(-2 * math.log(1 - math.random()));
local d = mean + stddev * rho * math.cos(theta);

if ( d < -9.5 ) then
d = -9.5;
elseif ( d > 9.5 ) then
d = 9.5;
end
d = d + 11;
d = math.floor(d);
return d;
end
The source is from you[You must be logged in to view images. Log in or Register.]

Quote:
Originally Posted by Jimjam [You must be logged in to view images. Log in or Register.]
If anyone is interested, here is a link which produces some of Torcen’s work on eqemu regarding mitigation. Again I don’t know how well it aligns with p99, but for anyone interested in classic eq statistics / emulation / modelling they are pretty interesting reads.

https://www.eqemulator.org/forums/se...rchid=20679267
More specifically, this post: https://www.eqemulator.org/forums/sh...58&postcount=3. For some reason your link doesn't work anymore. It was coming up with three searched threads from Torven.
Last edited by DeathsSilkyMist; 11-24-2024 at 05:23 PM..
Reply With Quote
  #5  
Old 11-24-2024, 04:48 PM
Duik Duik is offline
Planar Protector

Duik's Avatar

Join Date: Oct 2017
Location: Near the largest canyon in the world!
Posts: 2,937
Default

That's bold statement!
Reply With Quote
  #6  
Old 11-24-2024, 05:17 PM
Troxx Troxx is offline
Planar Protector

Troxx's Avatar

Join Date: Jun 2014
Location: The sands of DSM’s vagina
Posts: 4,285
Default

None of my level 60s that I play regularly on raids are in primary dps roles.

There's some nuance that I do not understand but I do know that for the following classes the best dps possible is found with the BiS (or same/close tier) 2handers:

Monk
Ranger
War
Sk
Pal

.... so yeah pretty much every melee dps class but rog.
__________________
Quote:
Originally Posted by DeathsSilkyMist View Post
There is no fail message for FD.
https://www.project1999.com/forums/s...43&postcount=2



.
Reply With Quote
  #7  
Old 11-24-2024, 05:30 PM
Jimjam Jimjam is offline
Planar Protector


Join Date: Jul 2013
Posts: 12,719
Default

Reposting as I added a lot of text.
Quote:
Originally Posted by DeathsSilkyMist [You must be logged in to view images. Log in or Register.]
The source is from you[You must be logged in to view images. Log in or Register.]



More specifically, this post: https://www.eqemulator.org/forums/sh...58&postcount=3. For some reason your link doesn't work anymore. It was coming up with three searched threads from Torcen.
Me, a highly credible source [You must be logged in to view images. Log in or Register.] … Torven really. Seems it is a model of his or her creation, at least I seem to have interpreted it ok (I think…). The work they have put into simulating eq is incredible! Of course this uses post classic data, so of course we can’t be sure how well it matches true classic. Also 2014 is after the split of p99 from base emu so damage rolls here could be handled very differently? This may explain why we see a centralish spike at only the mode value instead of a peak including the neighbouring ones?

In my defence I’ve not fully delved all the threads yet, some are pretty intense!

Ah, well that is disappointing the link expired. To recreate it the advanced search term was just ‘mitigation’ with author of ‘Torven’.
Reply With Quote
  #8  
Old 11-24-2024, 05:34 PM
bcbrown bcbrown is online now
Fire Giant


Join Date: Jul 2022
Location: Kedge Keep
Posts: 747
Default

Quote:
Originally Posted by Jimjam [You must be logged in to view images. Log in or Register.]
The next bit I'm not sure of, but the presence of a mean and standard deviation along with other values suggests a normal distribution is created, the mean for which is set based on the offence mitigation comparisons.

This explains why we have spikes counts of the lower and highest hit values. As a normal distribution has been generated, theoretically there are no limits to the highest and lowest values of d generated, so the values which are out of bounds are getting lumped into the dice as rolls of 1 or 20 (i.e. min or max damage).

Can stats/code fans verify I'm understanding this snippet of code correctly? Are there any details where you can provide deeper understanding either?
First off, the presence of a mean and standard deviation doesn't necessarily mean there's a normal distribution. A distribution is just a curve on a chart that shows the frequency with which the various values can occur if you draw a random value from the distribution.

A normal distribution looks the standard bell curve: values near the mean are more common than values near the tails. But there's other curves. For example, a flat line straight across the chart means every value is equally likely. This would correspond to rolling a single d10, for example: all integers from 1 to 10 are equally likely.

The standard deviation (or variance) is a number that describes how "compressed" the curve looks. It's a measure of how close to the mean you can expect a random value to be. A rule of thumb is that about two thirds of the time, you should get a value that's within one standard deviation of the mean. So if you have a mean of 50 and a standard deviation of 5, you should get a value between 45 and 55 two thirds of the time. But a mean of 50 and a standard deviation of 20 would mean you'd get a value between 30 and 70 two thirds of the time - you'd see a lot more variation.

[You must be logged in to view images. Log in or Register.]

Here's a chart that shows means and variance for a bunch of common distributions. We've already discussed normal and uniform distributions. The distribution for flipping a single coin is a Bernoulli. Flipping n coins all together is a Binomial. Nuclear radiation is described by a Poisson; note that it's characterized by lambda, the "half life". If you had a kilogram of Plutonium-238, after 87.7 you'd have only 500 grams, with the rest having undergone radioactive decay into something else.

What's special about normal distributions is the central limit theorem. What it says is that if you draw a large number of samples from any distribution, the distribution that describes the average of all your samples will be normally distributed. That's a really hard thing to understand and explain - I don't feel like I fully understand it.

The simplest way to put it is that although normal distributions describe lots and lots of things, there's other distributions as well, and a mean and standard deviation isn't just about normal distributions.

However, your intuition that "the values which are out of bounds are getting lumped into the dice as rolls of 1 or 20 (i.e. min or max damage)" as an explanation for why we see spikes at the min or max values seems reasonable. That's what I've been assuming, too. It doesn't explain the spike in frequency at the ~average, though.
Reply With Quote
  #9  
Old 11-24-2024, 05:40 PM
Troxx Troxx is offline
Planar Protector

Troxx's Avatar

Join Date: Jun 2014
Location: The sands of DSM’s vagina
Posts: 4,285
Default

you and your damned math textbooks ...

I'm fairly smart but that shit gives me a headache [You must be logged in to view images. Log in or Register.]
__________________
Quote:
Originally Posted by DeathsSilkyMist View Post
There is no fail message for FD.
https://www.project1999.com/forums/s...43&postcount=2



.
Reply With Quote
  #10  
Old 11-24-2024, 05:50 PM
bcbrown bcbrown is online now
Fire Giant


Join Date: Jul 2022
Location: Kedge Keep
Posts: 747
Default

Quote:
Originally Posted by Troxx [You must be logged in to view images. Log in or Register.]
you and your damned math textbooks ...

I'm fairly smart but that shit gives me a headache [You must be logged in to view images. Log in or Register.]
I'm putting this one in a spoiler tag because I don't want to give anyone a jump scare.
 
[You must be logged in to view images. Log in or Register.]
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:40 PM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.