doxxx / ffxiv-craft-opt-web

Web frontend for FFXIV Crafting Optimizer service.
zlib License
224 stars 197 forks source link

Bug with higher level recipe penalty calculation for crafter levels<50 (effective level<120) results in wrong progress value #140

Open danj2k opened 7 years ago

danj2k commented 7 years ago

I'm expecting this is not a bug, just something I am doing wrong, as I only just discovered this website. EDIT: I now believe it is a bug, see my subsequent comment below for details.

What I am seeing is that after I am inputting my level, stats etcetera, choosing a recipe and then starting the simulator, the output contains more synthesis steps than it should, and looking at the action logs it seems that this is because the progress values it is using do not match what I am seeing in-game.

The specific example I was currently trying is a level 35 Culinarian making level 40 Apple Juice. I have 164 craftsmanship, 159 control and 255 CP. I also have Careful Synthesis, Hasty Touch and Manipulation as cross-class actions.

Here's the log of a result I just got:

Seed: 1499178899141, Use Conditions: true

Monte Carlo Example
===================
 # Action                           DUR    CP      QUA      PRG    IQ  WWYW   CTL  QINC  BPRG  BQUA   WAC       Cond   S/F
 0                                   80   255        0        0     0     0   159     0     0     0     0     Normal     0
 1 Inner Quiet                       80   237        0        0     0     0   159     0     0     0     0     Normal     1
 2 Hasty Touch                       70   237        0        0     0     0   159     0     0    68     0     Normal     0
 3 Manipulation                      70   149        0        0     0     0   159     0     0     0     0     Normal     1
 4 Careful Synthesis                 70   149        0       16     0     0   159     0    16     0     0     Normal     1
 5 Steady Hand                       80   127        0       16     0     0   159     0     0     0     0     Normal     1
 6 Basic Touch                       80   109       68       16     1     0   159    68     0    68     0     Normal     1
 7 Basic Touch                       70    91      145       16     2     0   191    77     0    77     0       Good     1
 8 Hasty Touch                       60    91      273       16     3     0   223   128     0    85     0     Normal     1
 9 Hasty Touch                       50    91      367       16     4     0   254    94     0    94     0     Normal     1
10 Basic Synthesis                   40    91      367       34     4     0   286     0    18     0     0     Normal     1
11 Manipulation                      40     3      367       34     4     0   286     0     0     0     0     Normal     1
12 Careful Synthesis                 40     3      367       50     4     0   286     0    16     0     0       Good     1
13 Careful Synthesis                 40     3      367       66     4     0   286     0    16     0     0     Normal     1
14 Careful Synthesis                 40     3      367       82     4     0   286     0    16     0     0     Normal     1
15 Careful Synthesis                 30     3      367       98     4     0   286     0    16     0     0       Good     1
16 Careful Synthesis                 20     3      367      114     4     0   286     0    16     0     0     Normal     1
17 Careful Synthesis                 10     3      367      130     4     0   286     0    16     0     0     Normal     1
18 Careful Synthesis                  0     3      367      146     4     0   286     0    16     0     0     Normal     1
Progress Check: true, Durability Check: true, CP Check: true, Tricks Check: true, Reliability Check: true, Cross Class Skills: 2, Wasted Actions: 0

There are way too many synthesis actions in this, and this seems to be because it thinks the progress of Careful Synthesis on this recipe is 16. This does not match what I see in-game, which in fact is 28.

So, what have I done wrong? For example, when inputting the stats, should I have input base stats without any gear on, and then input the gear bonuses in the extra boxes on the simulator page? EDIT: I think this is a bug, see below for explanation.

crossedxd commented 7 years ago

Yeah, I'll be running some tests this afternoon. Currently planning on recording the expected/actual synth values for a bunch of stuff I'm gonna be making for myself. If there's anything else you'd like recorded, let me know asap.

doxxx commented 7 years ago

Ermad's changes are also available on the beta site now. I'm leaving this open for further discussion as necessary,

danj2k commented 7 years ago

Here's some more data:

crafterClass crafterLevel recipeName recipeLevel levelDifference craftsmanship progress
BSM 29 Steel Broadsword 28 1 149 35
BSM 29 Steel Nails 27 2 149 36
BSM 29 Iron Raising Hammer 26 3 149 38
BSM 29 Iron Spatha 25 4 149 40
BSM 29 Bas-relief Iron Saw 24 5 149 41
GSM 26 Ice Brand 25 1 142 33
GSM 26 Silver Spectacles 24 2 142 35
GSM 26 Eye of Fire 23 3 142 36
GSM 26 Eye of Ice 22 4 142 38
GSM 26 Brass Choker 21 5 142 39
WVR 32 Velveteen Sash 31 1 141 33
WVR 32 Velveteen Dress Shoes 30 2 141 34
WVR 32 Velveteen Shortgloves 29 3 141 36
WVR 32 Velveteen Half Apron 28 4 141 38
WVR 32 Velveteen Tights 27 5 141 39
crossedxd commented 7 years ago

@doxxx much appreciated; I feel like I'm back in business with the tool up and running again, lol.

crossedxd commented 7 years ago

@Ermad Here are some more values I collected this afternoon. It looks like the solver is pretty spot on, and when it's off it's underestimating rather than overestimating (which is good, better safe than sorry).

The one thing that I noticed that seemed particularly off though was the Dew Thread, which had a much higher delta than the other errors.

Item Name iLvl cLvl cType Craftsmanship Control Action Used States Solver Value Actual Value
Holy Water 52 53 ALC 360 369 Careful Synthesis II   114 114
Dew Thread 23 63 WVR 606 609 Careful Synthesis III   290 305
Rainbow Thread 51 63 WVR 606 609 Careful Synthesis III   290 294
Holy Rainbow Cloth 52 63 WVR 606 609 Careful Synthesis III   290 293
Holy Rainbow Hat 130 63 WVR 606 609 Careful Synthesis II   232 234
Holy Rainbow Hat 130 63 WVR 606 609 Careful Synthesis III   290 293
Wyvernskin Workboots 130 52 LTW 343 334 Carefi; Synthesis II Ingenuity 126 131
Wyvernskin Jerkin 133 52 LTW 343 334 Careful Synthesis II   69 69
Wyvernskin Jerkin 133 52 LTW 343 334 Careful Synthesis II Ingenuity 126 130
Ermad commented 7 years ago

It seems the bonus for being over leveled isn't being calculated correctly when you vastly over level a craft isn't being calculated correctly. The current calculation is capped at ~56% at 100 levels above, after hitting 50% at 20 levels above. After doing some brief in game testing, you get a ~75% bonus on a level 1 craft hole being max level (289 levels above).

It seems accurate for up to 20 levels above, then slowly drifts off as you over level it. I'll try to gather more data to improve it.

danj2k commented 7 years ago

@crossedxd that'll be because it's so far below your level - smaller errors that you might not notice around your level are compounded as you go further in each direction.

Continuity28 commented 7 years ago

I don't have the materials to really test this out in depth, but there's a big issue when it comes to a particular synth I did today.

I'm currently a level 67 Armorer with 1046 craftsmanship and Ingenuity II.

I used a certain rotation I use for making most items right now, and it failed when making the Endless Expanse Shield which is a 60 ** synth. The simulator was saying each of my Careful Synthesis II would gain 397 progress, but the actual result was FAR lower than that at 205. Despite having steps of leeway, such a drastic difference bombed my macro with a failed synthesis.

I wish I could gather more data, but I don't have the resources to do that right now. Just letting everyone know about the drastic difference in that calculation.

EDIT: I wouldn't mind putting in the work to give the data that's needed to impove things, I just need some time to gather the gil and materials, but also direction on what exactly to test to find out where the issue is.

Ermad commented 7 years ago

I just tested a 60** on my 70 Armorer, taking off some gear to get 908 Craftsmanship. I got 352 progrees from a Careful Synth II (both with and without Ingen2). I don't see how you could have gotten 205 in game.

That value is slightly off from what simulator says, 341 and 361 with and without Ingen2. I know it isn't completely accurate when you vastly over level the craft (more then 20 recipe levels), but shouldn't be off me more then like 10% or so. I plan to try to gather a lot of data on that to try to improve it.

Ermad commented 7 years ago

Ah, I found the issue. The recipe "Endless Expanse Shield" has an elemental Aspect: Wind. Apparently when something has an aspect it reduces the progress of all actions by 50% that aren't a Brand of (Aspect Element). This isn't currently modeled at all in the simulator, but I'll look into implementing it. It only effects a very small amount of recipes, only "Vintage" recipes and crafted primal battle items.

Continuity28 commented 7 years ago

As soon as the craft started and I saw the wind swirling, I actually had that thought, but I forgot all about it.

You're right, it's not that important overall, as so few recipes make use of that, and I just happened to stumble into it. :P