Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for customising the timeframe over which DPS is tracked #244

Open
yuiidev opened this issue Oct 15, 2022 · 4 comments
Open

Add support for customising the timeframe over which DPS is tracked #244

yuiidev opened this issue Oct 15, 2022 · 4 comments
Labels
enhancement New feature or request scope: ui Anything related to HunterPie's UI

Comments

@yuiidev
Copy link

yuiidev commented Oct 15, 2022

Right now HunterPie tracks DPS by, I assume, damage / time however if the monster runs away, or I'm unable to land any big moves for a long time my DPS just tanks and stays tanked for the rest of the hunt, making the DPS graph essentially useless as it will always start high and inevitably go down and isn't representative of your performance at specific points in the hunt.

Ideally HunterPie would track damage in a (configurable) interval let's say every 5 seconds and plot a new datapoint on the graph with the DPS you have dealt in those 5 seconds. The graph will then be representative of your performance and actions throughout the hunt as opposed to a simple damage / time calculation.

@Haato3o
Copy link
Member

Haato3o commented Oct 15, 2022

From what I understood you want it to basically calculate the DPS from an interval, plot it on the graph once the interval is over, reset the DPS and calculate it again for the next interval and so on.
But that creates another issue, the plots will look very weird in the graph, let's say you set it to an interval of 5 seconds and on the first interval you do 600 damage, the graph will plot it as 102/s, then you do 1000 damage in the next interval, the graph will plot it as 200/s, then you do only 200 damage in the next interval, that will be plotted at 40/s, this will make the graph look weird full of spikes and gaps, if you don't hit the monster for 5 seconds, it would also plot 0/s.

That situation would look kinda like the image below, and doing more damage after those intervals would make the graph spike again.
image

And it would still not fix the issue of your DPS being tanked because you stopped attacking the monster, the only thing that would actually fix that is if HunterPie kept track of when the player is in combat and subtracted it from the elapsed quest timer, but for that to work, it would need to keep track of every player in the party's combat state to not make your DPS look a lot higher than other people's, however, that solution would create empty gaps between plots if you leave the combat state for too long.

DPS Calculation strategies

As of today, HunterPie has 3 different ways to calculate DPS and you can change that in your damage meter widget settings:

  • Relative to quest timer (Default): It's the default damage / elapsed_time formula.
  • Relative to join: It will also take in consideration the time you joined the quest, this is useful if you join SOSes a lot, the formula is damage / (elapsed_time - time_you_joined)
  • Relative to first hit: It will take in consideration the time you first hit the monster, the formula is damage / (elapsed_time - time_you_hit)

Also, keep in mind, DPS stands for damage per seconds, and that's literally what it is, it's your total damage over time, if you stop attacking then obviously that will impact your DPS, that's how DPS meters work.

Also, it not always start high and go down, it usually becomes stable after some time as you can see in the image below.
image

@yuiidev
Copy link
Author

yuiidev commented Oct 16, 2022

Correct, however what you have outlined as an issue, is how graphs with a time component generally tend to work in my understanding. I'm also not suggesting replacing the existing solution, but rather add another mode as I'm sure the current functionality is fine for some/most people.

The issue of my DPS being tanked is more so because the total time continues to increase after quest commence, join or first hit while my total damage stays the same during a monster chase or just being unable to attack. I am more interested in seeing the "moment to moment" drops and spikes as opposed to a very averaged out graph.

@Haato3o Haato3o added enhancement New feature or request scope: ui Anything related to HunterPie's UI labels Oct 16, 2022
@TheSwerik
Copy link

I had the same idea and would also love to have this dps option!

@Kyle-B
Copy link

Kyle-B commented Jan 7, 2024

I was confused by these graphs as well. I think the issue is that what's being graphed isn't the Damage Per Second, it's the Total Damage Per Second. Total DPS/Time doesn't naturally make sense as a graph because it becomes stable over time (it gets harder and harder to change as you get further into a fight). Total DPS only really makes sense as a metric. Here's an example showing how it becomes more stable as the fight goes on:

image

I think that the graphs should either be Total Damage/Time, or it's derivative DPS/Time. Total Damage/Time will look very similar to the current Total DPS/Time graphs, but won't have the compression as you get further into the fight. Another benefit since DPS is the derivative of Total Damage/Time, it can easily be resampled to any time window for the recorded hunts as well. This is how every DPS tracker for MMOs works that I'm aware of, here's an example from the main FFXIV tracker:

https://www.fflogs.com/reports/HpY1XgtPBVkmjDh2#fight=4&type=damage-done

I can potentially take a look at changing this if you agree that this plan would make sense.

(As an aside, I do think encounter splitting is useful, but understand that would be more work to track)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request scope: ui Anything related to HunterPie's UI
Projects
Status: 🔖Backlog
Development

No branches or pull requests

4 participants