Archived

This topic is now archived and is closed to further replies.

Antiarc

ShadowCraft: Rogue spreadsheet for 4.0

986 posts in this topic

Another thing to check is that if u were gemming exp or hit at all, it changes your reforge to exp/hit and then regems I had this same issue till i realized it had done this.

Share this post


Link to post
Share on other sites

Is there a way to reset the character you uploaded? I mistakenly uploaded my toon in a full pvp set and gear and was hoping there was just a way to recheck the armory on it instead of manually swapping everything out.

Share this post


Link to post
Share on other sites
As noted a couple posts above, it's set to aim for 26 expertise by default, which will be correct for lvl 85, but is not correct at the moment. Secondly, you can rig your racial in by simply adjusting the boss dodge chance to be in line with what your actual needed expertise would reflect, if that makes sense. If my rough math is right, you'll want to set your boss dodge chance to 4.75, which should cause the reforging to aim for 19 expertise (~146 exp rating).

All of that is assuming you meant expertise and not mastery in the above quote, of course.

although, with 24 expertise on game, the expertise tooltip is showing me having a .50% dodge chance so i really have no idea, using 264 t10 pants and 277 ikfirus's sack puts me at like 28 with the racial, when not reforging expertise away

Share this post


Link to post
Share on other sites
although, with 24 expertise on game, the expertise tooltip is showing me having a .50% dodge chance so i really have no idea, using 264 t10 pants and 277 ikfirus's sack puts me at like 28 with the racial, when not reforging expertise away

The in-game estimates are using the old calc where 26 expertise is correct. Recent findings and blue posts confirm that until we get to lvl 85 end-game content, the correct value needed to drop dodges off of the table is actually only 22 exp (~172) rating. Furthermore, if your racial grants you 3 expertise when using daggers, you should only need 19 expertise, which like I mentioned should be ~146 exp rating. To simulate this within the roguething tool, you should set your boss dodge chance to 4.75 down in the box that says Boss Dodge (%). *Do not* change the box that says Expertise Rating to 4.75. Leave that box set at whatever your approximate weight for expertise is (2.6 for mut and 2.2 for combat). Make sense?

Share this post


Link to post
Share on other sites
The in-game estimates are using the old calc where 26 expertise is correct. Recent findings and blue posts confirm that until we get to lvl 85 end-game content, the correct value needed to drop dodges off of the table is actually only 22 exp (~172) rating. Furthermore, if your racial grants you 3 expertise when using daggers, you should only need 19 expertise, which like I mentioned should be ~146 exp rating. To simulate this within the roguething tool, you should set your boss dodge chance to 4.75 down in the box that says Boss Dodge (%). *Do not* change the box that says Expertise Rating to 4.75. Leave that box set at whatever your approximate weight for expertise is (2.6 for mut and 2.2 for combat). Make sense?

yeah, i understood the boss dodge thing from the start :)

Share this post


Link to post
Share on other sites

I'm not entirely sure if this thread is the place to discuss the RogueThing tool or not, or even if someone who can answer my question reads the EJ forums to begin with, but I'll try none the less I suppose.

I originally reforged my gear based on just a base knowledge of the class mechanics and how I felt to best optimize the total dps gain of reforging within those mechanics: try to nail expertise on the exact rating I wanted, spell hit on the exact rating I wanted, best stats past that point when applicable, reforge pieces with our best non-capping stat (haste) on them when possible so that later pieces can go into haste, etc. In doing so I ended up with a piece which appeared to be optimal not to reforge at all (hit and haste with the hit being entirely spell hit). After coming across the RogueThing tool and adjusting weights and boss dodge, I checked out the auto-reforge tool to see if what I came up with was optimal or not. Interestingly enough, the tool recommended something fairly substantially different. So I jotted down the total EP readout of the suggested reforging and then plugged my own guess into the tool, only to find that my rough eyeball of the best reforge gained me 33 EP over the suggested one.

So with that said, I'm pretty curious as to what sort of methodology the auto-reforge routine takes, and possibly even more so, what the truly best method is (aside from brute-forcing every combination of course).

To outline my method, if it helps spur some ideas in others, I first listed every numerical value of stats that I could confidently gain (i.e. dumping crit) on every piece except for my mentioned piece which had hit/haste. With these values all listed, I went through a trial and error process until I found combinations that produced exactly 172 expertise. With these values crossed off the list, I went through another trial process which brought me as close as possible to the spell hit cap (I think I ended up 3 over). From here the rest was fairly straight-forward, just reforge crit into whatever stat was left that was the best.

Now I'm not saying my choice was the absolute 100% best, and in fact I'm fairly sure it's probably not, given the restrictions on reforging (must pick a stat non-present) and the sheet number of possible combinations, but I do find it at least interesting that my crude guess beat the reforging routine in the tool by 33 EP.

So, with all the exposition out of the way, how does this tool produce its result, and more importantly, how should it produce it's result? If reforging could add any stat regardless of what the item started with, I think the optimal path would be fairly close to what I outlined in my thought process, but as long as we have that restriction to work around, I think the truly best path is a bit more complicated than people realize.

Share this post


Link to post
Share on other sites

I think the thing to keep in mind is that while that algorithm works pretty well at the moment, it is fairly tightly coupled to the relative stat values right now in ways that needn't be true in general. Hence, coming up with a more mathematical approach based on EP values and whatever and applying an hillclimbing algorithm or some such is likely to provide more general results than "max expertise, hit the spell hit cap, and work from there". Particularly since there are secondary considerations which can be subtle, for instance: as combat it's better to reforge crit/haste items to expertise and hit so the crit/xxx items can be reforged to haste, and the tradeoffs for doing so versus hitting the caps exactly may not be obvious.

Share this post


Link to post
Share on other sites
I think the thing to keep in mind is that while that algorithm works pretty well at the moment, it is fairly tightly coupled to the relative stat values right now in ways that needn't be true in general. Hence, coming up with a more mathematical approach based on EP values and whatever and applying an hillclimbing algorithm or some such is likely to provide more general results than "max expertise, hit the spell hit cap, and work from there". Particularly since there are secondary considerations which can be subtle, for instance: as combat it's better to reforge crit/haste items to expertise and hit so the crit/xxx items can be reforged to haste, and the tradeoffs for doing so versus hitting the caps exactly may not be obvious.

Right. Like I mentioned, one of my aims was to reforge items with haste before items without, precisely so that later items would return more when it came time to reforge into the best "non-capping" stat. As far as a general solution goes, I don't see why EP values are relevant at all. What truly matters is their relative order to one another. If the best stat a rogue could ever get is special-hit, that is, hit rating below the special cap, then it doesn't particularly matter if the EP of such a thing is 20 or 200, the best-case general solution would return equal results either way.

As to your closing about the non-obvious trade-offs pertaining to exactly capping haste pieces versus over-capping from non-haste pieces, this was basically what I meant by saying that it was likely my "solution" was non-optimal as well. I didn't go through and double check if landing 2 expertise over the cap would yield greater results due to firstly reforging pieces with "better" base stats. I guess mostly I'm interested in how the routine is literally coded, and how we think it's optimal to implement such a thing.

While a hill climbing algorithm sounds reasonable, it seems like the issue with local maximum versus global maximum is a pretty serious one in this application. For instance, if we apply a priority order based on EP (or even just a relative ordering) and decide we want to go: special-hit > spell-hit > expertise > haste > mastery > white-hit > crit, the algorithm may start to realize it has a ton of room to play with once it's no longer constrained to "capping stats". Of course if it tries to lock in on precise caps (as I did in my cursory approach), it would need to be pretty advanced to be able to back up possibly multiple steps (to spell-hit) if what it found was only a local max. I wouldn't feel very confident in an algorithm that exactly imitated what I outlined as my thought process, though it would certainly get you "close".

I think if I were personally coding such a thing, I would run through a handful of methodologies that would get me "close" and then simply compare them. For example, my method could be described as trying to gain the most EP per reforge as I went through my items at the vendor. Subsequently, you can imagine a method in which the aim was to gain the most EP per item by first looking at the "worst" items and trying to get the most gain from them on an item-to-item basis (as I noted my neck ended up being not reforged at all, which is "bad" in terms of wanting to take advantage of the reforging system). Comparing these results, along with another method or two possibly, would make me feel far more confident in my results as the coder.

Share this post


Link to post
Share on other sites

It seems to me that the weapon calculation is completly broke. The tool only looks at the stats of the weapon and not at procs (as already mentioned), speed and dps. So the ranking isnt really meaningful.

Share this post


Link to post
Share on other sites
Right. Like I mentioned, one of my aims was to reforge items with haste before items without, precisely so that later items would return more when it came time to reforge into the best "non-capping" stat. As far as a general solution goes, I don't see why EP values are relevant at all. What truly matters is their relative order to one another. If the best stat a rogue could ever get is special-hit, that is, hit rating below the special cap, then it doesn't particularly matter if the EP of such a thing is 20 or 200, the best-case general solution would return equal results either way.

That only holds true in situations where you are able to decide how much of each stat you want to reforge. Lets take the EP given in the 4.0.1 post for mutilate spec and say that you are 5 points from the spell hit cap. Lets also assume that you have a piece of gear with crit and expertise on it. The piece has 100 crit on it so you be able to reforge 40 points of that to another stat.

Using the method you mentioned that piece would be reforged to hit because the spell hit is the highest relative stat. This would give an EP value of 5*3.2+35*1.8 = 79

Now using the method that accounts for the EP values it would recommend reforging to haste. 40*2.2=88.

As you can see there is a gain of 9 EP by reforging to haste over hit.

Share this post


Link to post
Share on other sites
That only holds true in situations where you are able to decide how much of each stat you want to reforge. Lets take the EP given in the 4.0.1 post for mutilate spec and say that you are 5 points from the spell hit cap. Lets also assume that you have a piece of gear with crit and expertise on it. The piece has 100 crit on it so you be able to reforge 40 points of that to another stat.

Using the method you mentioned that piece would be reforged to hit because the spell hit is the highest relative stat. This would give an EP value of 5*3.2+35*1.8 = 79

Now using the method that accounts for the EP values it would recommend reforging to haste. 40*2.2=88.

As you can see there is a gain of 9 EP by reforging to haste over hit.

I think you're missing what I was trying to say. The EP value of a stat doesn't matter if you're trying to find a general case solution. What does matter, however, is their relative order to one another. If you're right against a break point and you can only reforge in "chunks", of course you're not going to get the better value of the stat (spell hit) for the entire chunk. You'll get the higher value (spell hit) out of it until you hit the break point, and then you'll get the lower value out of it (white hit), but the point is that what those values are (3.2 and 1.8) is not relevant at all, the only relevant info as far as a general-case solution is concerned is that their relative ordering is: spell-hit > haste > white-hit. The results of some optimizing routine would be exactly the same if their EP values were 3.2 > 2.2 > 1.8 versus 300 > 200 > 100 (ignoring other stats for the moment of course).

Share this post


Link to post
Share on other sites

If mastery works in chunks (whole numbers like we used to think expertise did) does this tool also apply mastery in chunks or does it just give mastery whenever it thinks it's a valuable stat?

Also there is no minor armor debuff or hit debuff anymore.

Share this post


Link to post
Share on other sites
I think you're missing what I was trying to say. The EP value of a stat doesn't matter if you're trying to find a general case solution. What does matter, however, is their relative order to one another. If you're right against a break point and you can only reforge in "chunks", of course you're not going to get the better value of the stat (spell hit) for the entire chunk. You'll get the higher value (spell hit) out of it until you hit the break point, and then you'll get the lower value out of it (white hit), but the point is that what those values are (3.2 and 1.8) is not relevant at all, the only relevant info as far as a general-case solution is concerned is that their relative ordering is: spell-hit > haste > white-hit. The results of some optimizing routine would be exactly the same if their EP values were 3.2 > 2.2 > 1.8 versus 300 > 200 > 100 (ignoring other stats for the moment of course).

In this case, you would still need to know the exact placement of the break point, as well as how close the values are to each other. Should one stat be higher than another for only 5 points, then lower for the remaining 35, you would assume the second stat is better off that information, but should the difference between the two past the cap be minor, this may not be the case.

Some form of quantification is needed, beyond merely an ordering. Which is better in an order has no relative value unless you know how much better it is. In the end, you still need some sort of numbers behind it, EP works as well as any other measurement.

For example, lets look at the values you posted. 3.2 -> 2.2 -> 1.8

If you are 5 points off of the hit cap, and reforge 15 points on a piece of gear:

Your method yields:

300 * 5 + 100 * 10 = 2500 for hit

200 * 15 = 3000 for haste

haste wins by a significant amount.

The EP method:

3.2*5+1.8*10= 16+18= 34 for hit

2.2*15 = 33 for haste.

hit barely wins.

Essentially, you can argue that your rating system should be scalable to their relative values to each other, but once you make that ratio of caparisons between stats, you have arrived to a system that is the same as EP with the exception of scale. All EP is is a quantifiable measurement of the difference in values between stats using AP as a scale.

I am also confused by your mention of a "general case" solution. Are you implying this priority simply for a quick gauge as to what stats you want on a piece of gear? If so, the logic still remains flawed as the proportional value of stats still needs to be taken into account, a higher amount of lesser stats can still outpace a higher stat, and I would certainly like to know how much better a specific item would be.

Share this post


Link to post
Share on other sites
I think you're missing what I was trying to say. The EP value of a stat doesn't matter if you're trying to find a general case solution. What does matter, however, is their relative order to one another. If you're right against a break point and you can only reforge in "chunks", of course you're not going to get the better value of the stat (spell hit) for the entire chunk. You'll get the higher value (spell hit) out of it until you hit the break point, and then you'll get the lower value out of it (white hit), but the point is that what those values are (3.2 and 1.8) is not relevant at all, the only relevant info as far as a general-case solution is concerned is that their relative ordering is: spell-hit > haste > white-hit. The results of some optimizing routine would be exactly the same if their EP values were 3.2 > 2.2 > 1.8 versus 300 > 200 > 100 (ignoring other stats for the moment of course).

I would agree that ep values don't matter, if a) we didn't have stats that capped, and b) we never acquired new gear

We use EP to compare new gear and current gear, and that's basically the only way to compare, however if we had no caps on stats we would just reforge stuff to the primary stat when the gear didn't have that, secondary when it had the primary, but not the secondary, and leave it alone if it had the 2 best stats. This is of course assuming 2 ratings per piece of gear.

Share this post


Link to post
Share on other sites

This may be a stupid question please just yell at me if you think so but ive noticed that Mongoose and berserking are not on the list of ench and I was wondering if this is becuase they are based procs or if you just havent had time to put them on.

I am an epic failure when it comes to programing ^^

also if this is the wrong place to post the question please forgive me and point me to the right thread

Share this post


Link to post
Share on other sites

Actually, Berserking, Mongoose, and Black Magic are all in the list - but are currently valued as ~0 because (I suspect) as previously mentioned, procs are not currently modeled.

Share this post


Link to post
Share on other sites

By general-case solution, I'm simply referring to solving the problem of how to best reforge, independent of the actual numbers that show up on our gear. I'm not trying to dismiss EP weights as a useful tool, I'm just focusing on the mathematical curiosity of how to best optimize the system. Of course, at the end of the day all we care about is the dps output, but solving this system doesn't really rest upon those weights. Imagine a web tool not much unlike the RogueThing reforge tool. In this tool you entered the EP value of hit below the special cap, hit below the poison cap, hit above the poison cap, haste, expertise below the dodge cap, expertise above the dodge cap (i.e. zero), crit, and mastery. In addition to those, you entered the precise points within hit and expertise that cause discontinuous changes in their values (i.e. the exp "cap" and the special and spell "caps" for hit). With these inputs (and your gear of course) the tool spits out your optimal reforging scheme.

Now, realize that the coder of the routine (me, you, whoever) did not have access to these EP weights or the player's gear or the break points of expertise and hit ahead of time, they were fed into the tool on the fly. I'm merely interested in the solution of such a system with arbitrary inputs.

And yes, I get that the real-world application of reforging within the game does not allow you to allot points integer by integer. When it comes down to it, you have a finite set of values that you can swap out of your various pieces, however it seems to me that if in a completely random sample set of gear (my personal gear) I was able to land exactly on the expertise cap and only 2 points over the spell cap, armed only with a pencil and paper, that a computer-backed algorithm would be able to do just as well if not better, as I implied.

Share this post


Link to post
Share on other sites

OK so I spent 30 minutes trying to figure out how to run the framework. I have no programming knowledge, and have no concept of gits / gemfiles / etc. Any chance someone could help me get this thing running? Or is that probably not going to be worthwhile given my lack of experience?

Share this post


Link to post
Share on other sites

Depends on whether you're talking about the UI or the calculations engine. If you're talking the UI and you just want to play with it, I believe Antiarc is still hosting a version of it. If you're talking the calculations end of things, don't waste your time, because it doesn't actually do anything useful yet. It will start to become somewhat useful within a few more days, but it's still a few weeks out from being a viable tool. Which is okay, because its only set up to model Cataclysm right now, so we have a full month before its needed anyway.

Share this post


Link to post
Share on other sites

Do we need to sticky a "Why is Reforging hard?" post somewhere, because the same questions keep on coming up about it.

Basically, Reforging is an instance of the knapsack problem (Knapsack problem - Wikipedia, the free encyclopedia). This is an NP-complete problem (NP-complete - Wikipedia, the free encyclopedia). This means that if you come up with a fast way of solving it completely, you win. As of right now, noone has managed to win, so the only solution to get a guaranteed optimal Reforging is to generate all possible combinations of reforgings, then testing them. A back-of-an-envelope calculation gives over 1 trillion possible interesting Reforging combinations of a set of gear. This is not feasible to test for a WoW gear spreadsheet.

Instead of checking every possible combination, you can search for a local optimal solution, most likely using some sort of hill climbing algorithm. This involves looking at your current situation and working out which step you can take next that will put you higher up the hill than you were before ( higher EP value ). The problem with this is that you can't consider options that involve a temporary drop in EP during the process that will end up with a higher EP at the end. There are some modifications you can make to the algorithm to get you out of some situations where a better alternative is available, but you cannot ever know if you have the truely best result without carrying on to check every other possible combination. These changes also increase the number of combinations you check, and increase the memory usage of the app very quickly.

The result of this algorithm is entirely dependant on where you start from; the site probably just started in a different place to you, and you probably considered some intermediate EP drop that the tool didn't. Unless antiarc has a spare Blue Gene/L lying around to run shadowcraft on it will almost certainly be possible to say; "Hey, if I do X,Y,Z instead I get a better result" because of the nature of the problem. There may be improvements we can make to the starting point and exactly how the algorithm evaluates "up" to get closer to a global optimum, but it will likely never be perfect.

With regard to caps etc., the only change you need to make is that you need to reconsider which way "up" is during/ after each choice ( which Reforging gets you closest to the cap without going too far over, and which stat is best after you hit the cap).

Share this post


Link to post
Share on other sites
OK so I spent 30 minutes trying to figure out how to run the framework. I have no programming knowledge, and have no concept of gits / gemfiles / etc. Any chance someone could help me get this thing running? Or is that probably not going to be worthwhile given my lack of experience?

I'm not much of a linux guy, but I did manage to get it running under virtual box on Ubuntu 10.04LTS.

I basically just followed this guide:

Installing Ruby 1.9.2 and Rails 3 stable on Ubuntu / Neurons to bytes

And then I installed Aptana Studio 3.

MongoDB is way out of date on the official repos, but there's a handy page here.

Then I cloned the shadowcraft ui git from within aptana, and ran bundle install.

Did have to resolve a couple dependencies, xmllib-dev and xsltlib-dev I think it was, but that's easily done.

After that, just run the server (either from the Run menu, from the cogwheel icon on the left of the window next to the project name, or by typing "script/rails server" in the bottom terminal in aptana.) Then just point your browser at localhost:3000 and it should be up and running.

As for it being worth it or not, I have no idea. I've been wanting to learn some Ruby for a long time, so I think it's a great opportunity to have a poke. So far I've managed to break a lot of things, and not much else, but at least it's interesting.

I did look at installing on windows for about 15 minutes, but it just seems like way more work.

Besides, it's always nice just stuffing things like this on a virtual machine so you can mess around without anything actually breaking.

Share this post


Link to post
Share on other sites

Seems like no one mentioned the missing enchants in the Web UI.

Some of the engineering specific enchants are missing like Hyperspeed Accelerators and Nitro Boots.

Didnt check for other professions cause I'm in a hurry and was just briefly looking trough everything.

Share this post


Link to post
Share on other sites
OK so I spent 30 minutes trying to figure out how to run the framework. I have no programming knowledge, and have no concept of gits / gemfiles / etc. Any chance someone could help me get this thing running? Or is that probably not going to be worthwhile given my lack of experience?

Git for Windows - msysgit - Project Hosting on Google Code

I used Git-1.7.3.1-preview20101002.exe

RubyInstaller - RubyInstaller for Windows

I used Ruby 1.9.2-p0. Since some gems will need to be compiled locally you also need DevKit-4.5.0-20100819-1536-sfx.exe for Ruby 1.9.2p0, and follow those installation instructions: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit .

MongoDb - MongoDB

Once you have those working start mongod and follow the instructions on Shadowcrafts git page. The last steps of initial data population failed for me, but I could start it up and import my charachter anyway.

I also installed Aptana studion 3 to try that out, as I'm used to Visual Studio. You'll still need working Git+Ruby installs for it to work as noted here: Aptana | Getting Started. Had to add 'Eclipse Java EE Developer Tools' (Help -> Install new software -> Eclipse helios update site) before I could directly clone an existing project. Working on getting the project to run from within Aptana. Paths are all setup as they should, but Aptana still can't start rails, so I guess I've missed a setting somewhere.

[add] Apparantly Aptana really want git portable(as the documentation says). Worked once I added the path to git/bin and git/cmd to my %path%. Somewhat annoying that Aptana complained about not finding rails even if it was the wrong git version.

Share this post


Link to post
Share on other sites

Yeah, thing is the "new armory" doesn't support XML output or any API yet (see here).

Unless they add this, we're stuck with the old armory OR source code scraping, which really is a PITA and isn't viable for any publicly accessible project.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.