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

Deep dungeon data #12

Open
procrastin8 opened this issue Jan 18, 2023 · 2 comments
Open

Deep dungeon data #12

procrastin8 opened this issue Jan 18, 2023 · 2 comments

Comments

@procrastin8
Copy link

Hey I just came across this tool and think it would be insanely useful in deep dungeon. From what I gather the distance data is all manually gathered and it would be a small nightmare to measure every mobs aggro range in deep dungeon but couldn't an automated system be useful here?

What I have in my brain without knowing what's possible is some sort of toggle-able setting that will store aggro range data based on when an enemy aggros you and since you already can show distance to all mobs around you on their nameplates this data seems easy to obtain? But then again I don't know how hard it is to obtain aggro states of mobs and how hard it is to store/share this data.

@PunishedPineapple
Copy link
Owner

This is something that I've thought about in the past, but there are a few issues:

  • Probably wouldn't be approved for a first party plugin (this is fine, could be spun off into a 3pp no problem).
  • As you said, collecting distance data is done by hand (none of this is available to the client afaik), so this would be extremely time consuming, especially for the deeper floors where it's most useful.
  • You have to get vision cone data as well for sight-aggro mobs.
  • Enemies can, from what I've seen, probably have more than one mode of aggression. I'm relatively certain this was known in Eureka with magic or blood aggro mobs that also had small proximity aggro, and some other things like the e8s blind spot seem to indicate this as well. It's not an intractable problem, but makes data collection more complex.

It is reasonable to have a data point stored when you aggro an enemy, and use that as the distance. Besides the issue of sight cones, this has two major complications:

  • Ideally there would be some reporting back to help maintain a community database so that people don't have to engage every last mob to get valid ranges. This raises privacy issues, and is susceptible to malicious (or even accidental, potentially) poisoning of the data pool. This is not a domain in which I have any experience at all, and listening to someone much smarter than me (Kapture dev) talk about these issues from a perspective of crownsourcing drop rates makes me feel like it's not something I could ever solve.
  • Server ticks. This is ultimately what turns an automatic approach into a difficult problem to fully solve. You can be some distance toward an enemy from its aggro range before the tick happens and the enemy actually notices you. This in and of itself is pretty solvable; collect enough data points, and you can find the furthest. Ruling out cases where an enemy is pulled with a ranged attack is not something I'm sure that I know how to solve. You can probably do some sliding window based off of condition flags, but there are so many details, I just wouldn't know where to start for a foolproof solution.

It really is something I've had in the back of my mind from the beginning, and something that I'd like to do, but it's an overwhelming project for me. Not going to close this, since thinking about it more might be helpful, but ya, don't expect anything really.

@procrastin8
Copy link
Author

Yeah that looks like way too many headaches to deal with, especially the privacy part.

I'm just going to be happy with the distance data on nameplates, that's already insanely useful and build up a general rule of thumb for aggro ranges per type of aggro because it doesn't change per enemy in palace, except for mimics which have like double or triple the aggro range of normal mobs.

Good luck to you if you ever decide to tackle this though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants