frzyc / genshin-optimizer

An Artifact optimizer for Genshin Impact.
https://frzyc.github.io/genshin-optimizer/
MIT License
794 stars 234 forks source link

Theorycraft mode feature - minmaxing #83

Closed nickkcin02 closed 3 years ago

nickkcin02 commented 3 years ago

When I do min-maxing, I want to get the best of all stats possible disregarding the bonus from the set bonus because if we select any set bonus, all the rest that can't complete the set won't be shown, but some of those may have god roll on it. So it would be great if there is an option that ignores the set bonus from owned artifacts but is still able to choose the set bonus, then we can just build from only sub stat and main stat. Even though we don't really have those artifacts on the correct set, the result of the best ratio possible will be more accurate. I request this for Theorycrafting mode

frzyc commented 3 years ago

@nickkcin02 By not setting any set filters, the builder will calculate builds without being confined to sets. This is already a feature in GO since conception. image

nickkcin02 commented 3 years ago

@frzyc I think you misunderstand my point. please see this, for example, this is the best set for Ayaka, all are my owned artifacts build by GO. image the plume is not that great(6 rolls) but it's the best to combine as 4 set blizzard strayer I mean if GO could build this plume instead image because it has a better substat (8 rolls) for Ayaka but it's the wrong set, so if GO could simulate this Gladiator plume's substat on the blizzard set then Theorycrafter can have a better 'possible' overall stat when build.

frzyc commented 3 years ago

I still don't understand what you want. If that Gladiator's plume is picked by the builder, then you'd lose the 4 set bonus from Blizzard, no? I don't see the point of generating a build that is calculated on the wrong set effect?

nickkcin02 commented 3 years ago

Yeah, you get the idea, my point is I think that feature will make the optimization target plot have a higher balance, just to see the diminishing return point more clearly. I could be wrong though.

frzyc commented 3 years ago

so If I understand it, you want an option in the optimization plot to display builds without set effects, to better demonstrate diminishing return.

However, the calculated results of the optimization plot uses set effects in its calculation, and its only accurate if the entire sum of its party is considered. Its like baking a cake, decorate it with frosting, and when you go to the party, scraping all the frosting into the trash and present the naked cake to your friends.

I don't see how this feature, which misrepresents the results, can provide any usable data to the end user.

D1firehail commented 3 years ago

What this sounds like to me is using main/substat combinations from all owned artifacts as a base for finding out the theoretical performance graph for a given (or no) set effect. It wouldn't be useful for an end user, but for the purpose of theorycrafting it could be interesting given a sufficiently representative artifact pool

nickkcin02 commented 3 years ago

As I said it is a theorycraft feature, the point is not about I really have that beautiful cake or not but I can have a better picture of what the best cake looks like in my mind. For end users, they can try to reach those stats even if they can't. But if my artifacts pool is really big(maybe like a public pool of artifacts) then this feature is not important. Finally, you can ignore this though, it's just my idea. Thank you for your response. @frzyc

nickkcin02 commented 3 years ago

It's not like an urgent feature, just an idea.

frzyc commented 3 years ago

I feel like this might be the wrong approach to what you have in mind. unfortunately, the builder is such a "blackbox" that all results that come out of it must be correct. You are suggesting a feature that makes then incorrect, which I can't agree with. Also, it would be somewhat difficult to strip out the set effect contribution from the final number in a hyper-optimized pipeline in the builder, so it would be prohibitively difficult to implement for a feature that I don't ultimately see much use out of.