Archived

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

Antiarc

ShadowCraft: Rogue spreadsheet for 4.0

986 posts in this topic

Moderator's Note: I realize we're all excited by the great work Antiarc is doing, and if you want to shoot him a PM to express your gratitude/admiration/whatever, I'm sure he'd be happy to hear it; however, in the interest of keeping this thread productive, please keep such observations out of this thread. If you have issues or suggestions or questions or whatever, that's fine - I'm not trying to discourage you from posting - but so far we've had an awful lot of posts with no content beyond "wow, looks great" - and those posts, I will have to start infracting at some point.

-----------

We currently have two implementations against Shadowcraft-Engine:

Antiarc's Shadowcraft: ShadowCraft - Rogue DPS Spreadsheet (source at http://github.com/cheald/shadowcraft-ui)

Major features:

* Armory import and automatic item discovery

* Save and restore multiple snapshots to contrast and compare

* Gem optimizer

* Reforge optimizer based on bsoft's Java reforging tool

* Talent and glyph calculator

Caffeine's Shadowcraft-test: ShadowCraft-Online

Major features:

* Stat breakdowns

* Save and restore multiple snapshots

* More raw data straight from the engine

Share this post


Link to post
Share on other sites

I've started work on the calcs part - you can see the framework that's in place at Aldriana's ShadowCraft-Engine at master - GitHub

Edit: (11/3/10) Some of you may have noticed that ShadowCraft-Engine has now gotten to the point where its returning a DPS value and EP. This is because it is now somewhat functional. However, there are a couple of very important points I want to make.

1) The results are for level 85 *only*. They have absolutely nothing whatsoever to do with level 80.

2) The modeling is highly incomplete. Some things are working, but a lot of things aren't. This is not a completed model, it has nowhere near the same accuracy that my Wrath spreadsheets had in 3.3.

3) There are almost certainly bugs. I would be shocked if there weren't any bugs. So even things that are modeled may not be modeled correctly.

Hence, the takeaway: do not under any circumstances use numbers you get from the engine for level 80 raiding. Be very very cautious about drawing any major conclusions about level 85 raiding. For instance: right now the tool will tell you that Leatherworking is far and away the strongest profession. And that may or may not turn out to be the case as the model improves. So while it's an interesting thing to make note of... I wouldn't start rerolling professions just yet.

Edit: (11/16/10) The assassination model is now somewhat functional for level 85 analysis. There are still bugs, to be sure, but it seems to get agreement around the 1-2% level with more established modeling. It is thus probably reasonable to start basing some decisions off what it has to say, though be aware that there's still room for errors and mistakes in it.

The combat model, on the other hand, is brand new and most likely completely unreliable. Feel free to play with it and post bugs as you find them, but don't draw any major conclusions about the spec until we've had a bit more time to work on the model.

Share this post


Link to post
Share on other sites

For those of us who will be testing/using this during it's development, should we just post bugs and/or feature request here in a running thread or does github have a place for that. I noticed github has the Issues tab, but I wasn't for certain if that was for bug posting by users/testers or if it was to be used for coders/developers to keep track of known issues.

This looks like a really great project. I wish I could help more but unfortunately I have no coding skills, however, I can test/bug report with the best of 'em :p.

Share this post


Link to post
Share on other sites

I second the new interface. Holy crap, that looks fantastic.

The gem/reforge/enchant box needs to move to the item you're trying to enchant. Scrolling up and down is tedious.

Share this post


Link to post
Share on other sites

You might well be aware of this, however I will post just incase:

The auto-reforge tool (or the internal gubbings in general) does not seem to take into account Axe specialisation for Orc's as well as the "New Exp Cap" outlined by Blizzard yesterday.

Generally it is shaping up to be a valuable tool, I look forward to testing and using as the project runs it's course.

Share this post


Link to post
Share on other sites
For those of us who will be testing/using this during it's development, should we just post bugs and/or feature request here in a running thread or does github have a place for that. I noticed github has the Issues tab, but I wasn't for certain if that was for bug posting by users/testers or if it was to be used for coders/developers to keep track of known issues.

Definitely use Githubs issues for reporting bugs/enhancements, it makes it much easier to follow the development of an issue when it's tied into commits on Github.

Share this post


Link to post
Share on other sites

Great stuff you have going so far!

Just curious if the intent is for this to be used by more than just Rogues?

The reason I ask is that as a Rogue, if I for instance click on my wrists to see what upgrades are available I get [iTEM]50000[/iTEM] as an upgrade to [iTEM]50670[/iTEM].

So if it is intended to be used by any class to evaluate gear based on EP weights, that's cool but either way the query should be fed a variable to limit the items returned to items that are usable, such as leather in this case.

Share this post


Link to post
Share on other sites

Hi,

I've been working with a guy on creating a reforge calculator (at Reforge Calculator ) and we have a thread up about it in the Public Discussion.

One of the biggest things I've found is that you'll want to provide the option to "lock" some items or stats and *not* reforge them.

For instance, let's assume you have a combat spec and assassination spec and they use the same gear except for the weapons. Then you reforge to get to the expertise cap, but part of the "auto-reforge" used your weapons. Now when you go to Assassination spec, you're no longer expertise capped.

A second example would be the current situation with expertise. The number is ideally calculated at 200, but for right now, everyone should be setting a target of 172. So I want to hit *exactly* 172 expertise and then just leave that stat alone and don't reforge it any more, even if the calculator says I need 28 more.

Also, since stat weights can change relative to each other, it may make sense to allow a more iterative process on reforging. The way we're doing it is that you can reforge to a specific target, then lock those values in and reforge again for another goal (maxing another value or hitting a specific target).

Edited to add:

I'll also note that I'm finding it impossible to actually achieve 172 expertise in the reforger even though it's dead simple to get with my gear set (Ikirus keeps exp +106, reforge 277 DBW to +66 exp equals exactly 172). I tried changing the boss dodge number and if I set boss dodge of 5.24509% it gives me a rating of 175 and if I set 5.24508% it gives me a rating of 162. I'm not sure why there would need to be +13 "step" between the two when as I said, I *can* get exactly 172.

Share this post


Link to post
Share on other sites
Hi,

I've been working with a guy on creating a reforge calculator (at Reforge Calculator ) and we have a thread up about it in the Public Discussion.

One of the biggest things I've found is that you'll want to provide the option to "lock" some items or stats and *not* reforge them.

For instance, let's assume you have a combat spec and assassination spec and they use the same gear except for the weapons. Then you reforge to get to the expertise cap, but part of the "auto-reforge" used your weapons. Now when you go to Assassination spec, you're no longer expertise capped.

A second example would be the current situation with expertise. The number is ideally calculated at 200, but for right now, everyone should be setting a target of 172. So I want to hit *exactly* 172 expertise and then just leave that stat alone and don't reforge it any more, even if the calculator says I need 28 more.

Also, since stat weights can change relative to each other, it may make sense to allow a more iterative process on reforging. The way we're doing it is that you can reforge to a specific target, then lock those values in and reforge again for another goal (maxing another value or hitting a specific target).

Edited to add:

I'll also note that I'm finding it impossible to actually achieve 172 expertise in the reforger even though it's dead simple to get with my gear set (Ikirus keeps exp +106, reforge 277 DBW to +66 exp equals exactly 172). I tried changing the boss dodge number and if I set boss dodge of 5.24509% it gives me a rating of 175 and if I set 5.24508% it gives me a rating of 162. I'm not sure why there would need to be +13 "step" between the two when as I said, I *can* get exactly 172.

From what I understand of the system, it goes iterates through multiple times and goes by whats the highest total EP value of your character with the lowest expertise. Now, while you may be able to get exactly 172 rating, you may be giving up the ability to, lets say, reforge your 277 DBW to +66 haste, when you could have reforged pieces of gear with haste and crit already on it.

I do have a question, it seems that the values for spell hit cap are not taking into account the precision talent, or it's just valuing all hit at the spell hit cap. Anyway around this or is this a known bug you'll be working on when you can?

Share this post


Link to post
Share on other sites
From what I understand of the system, it goes iterates through multiple times and goes by whats the highest total EP value of your character with the lowest expertise. Now, while you may be able to get exactly 172 rating, you may be giving up the ability to, lets say, reforge your 277 DBW to +66 haste, when you could have reforged pieces of gear with haste and crit already on it.

It's definitely doing some sort of iterative process because it appears to come up with different numbers for expertise based on where it started from.

I think for right now, maybe it'd be better to set "target expertise" instead of boss dodge chance? I'm not sure how the mechanics are going to work in Tier 2 of Cata when they said we'll need more hit rating for instance.

As far as giving up ability to reforge DBW to +66 haste, that shouldn't matter. Expertise is my highest EP stat. There is no stat that's better for it to be reforged to. The only good reason to NOT reforge it is because the calculator isn't trying to get to exactly 172.

But if it's goal is to get to an exact number, there shouldn't be a better solution than reforging one item with just one stat that's the lowest EP stat the *exact* amount you need to get the target amount of the highest EP stat. Once you get into an item with multiple stats then yea, you may be better off reforging the crit / haste item instead of the hit / expertise item. But there shouldn't be any better item to reforge than the one that just has crit.

Share this post


Link to post
Share on other sites

After having used this tool abit, there is one thing I do miss, and thats a button to re-import my character from the armory to get an updated profile.

Share this post


Link to post
Share on other sites
Great stuff you have going so far!

Just curious if the intent is for this to be used by more than just Rogues?

The reason I ask is that as a Rogue, if I for instance click on my wrists to see what upgrades are available I get [iTEM]50000[/iTEM] as an upgrade to [iTEM]50670[/iTEM].

So if it is intended to be used by any class to evaluate gear based on EP weights, that's cool but either way the query should be fed a variable to limit the items returned to items that are usable, such as leather in this case.

To answer the larger question: for the calculations piece, at least, I'm trying to leave the possibility that other classes may want to use this open. I've organized this in such a way that if a druid or warrior or whatever wanted to write a module, it would be reasonably straightforward for them to do so. I haven't looked at the UI design, but it seems to me it should be reasonably straightforward to make similar allowances there. So for the moment, we're just building towards a rogue tool; however, depending on the level of success it achieves, that may not remain the case indefinitely.

To answer the question in specific: I agree that there should be some way in the UI of limiting results to stuff that is usable by a given class - not just to deal with the leather vs mail question, but also to prevent, for instance, druid set pieces from appearing in the rogue list.

Share this post


Link to post
Share on other sites

I agree the option to cover additional classes should be left open. For instance my main is a rogue but I have an alt DPS Warrior. It would be nice to use the same simulator rather than having to find another that I trust.

Share this post


Link to post
Share on other sites
For those of us who will be testing/using this during it's development, should we just post bugs and/or feature request here in a running thread or does github have a place for that. I noticed github has the Issues tab, but I wasn't for certain if that was for bug posting by users/testers or if it was to be used for coders/developers to keep track of known issues.

GitHub's issue tracker would be great. That lets people take issues to work on them as they want to, and keeps all the problems consolidated in one place.

You might well be aware of this, however I will post just incase:

The auto-reforge tool (or the internal gubbings in general) does not seem to take into account Axe specialisation for Orc's

No racials are implemented yet (make an issue for it!)

I'd like to see where I can get those items. You know like craft, Badge of Justice, heroic dungeons etc

This would be valuable, but it's low-priority, since associating that data is somewhat tricky. There will be an ilevel filter in the interim, though.

Great stuff you have going so far!

Just curious if the intent is for this to be used by more than just Rogues?

The reason I ask is that as a Rogue, if I for instance click on my wrists to see what upgrades are available I get [iTEM]50000[/iTEM] as an upgrade to [iTEM]50670[/iTEM].

So if it is intended to be used by any class to evaluate gear based on EP weights, that's cool but either way the query should be fed a variable to limit the items returned to items that are usable, such as leather in this case.

It should be usable by anyone. Right now, it'll only be useful to people with rogue stats, since I fully ignore stats that rogues don't care about in the interest of keeping the data size down. It'll be extensible though.

Hi,

I've been working with a guy on creating a reforge calculator (at Reforge Calculator ) and we have a thread up about it in the Public Discussion.

One of the biggest things I've found is that you'll want to provide the option to "lock" some items or stats and *not* reforge them.

This is a fair point; I'll see about locking certain properties of a given item.

The reforger right now can find a local maximum rather than a global maximum for a reforge loadout. This'll need to be addressed at some point, but it's Good Enough for a first pass. :)

After having used this tool abit, there is one thing I do miss, and thats a button to re-import my character from the armory to get an updated profile.

That'll be in shortly.

Share this post


Link to post
Share on other sites

Just had a bit of a play with it. Looks-wise it's fab. Liking the dark background, it makes everything stand out really well and, as far as the item changes go, they're laid out clearly and in a logical order.

I would, however, suggest a slight layout change of the other boxes on the main tab:

- Stat Totals and Tools up where Notices currently is.

- Stat Weights below that.

- Notices and Log underneath Stat Weights.

For me, that would feel a more logical layout, plus it means things are laid out in a narrower format to start with so they don't shift around as much depending on the size of your screen (I tried looking at it on a 24" widescreen and 17" 4:3 screen). Also, a suggested addition to the main tab - a box telling you which spec you're currently configuring for depending on what is selected in the Talents tab. I'm guessing that Glyphs is coming later as they aren't currently showing?

The other tabs are laid out well but it may be an idea to add in some of the other professions as, for example, out of the professions I have only Leatherworking is selectable, however during the import it obviously picked up the fact that I have Skinning too as it's mentioned in the "Export" panel on the final tab, which could be confusing.

Going back to the reforging function, it seems to hit the right targets reasonably well, but it seems to do it in a slightly peculiar (from my view) manner. For example, it's telling me to do the following:

Chest

-36 Expertise +36 Haste

Hands

-32 Crit +32 Expertise

Obviously the numbers being changed aren't exactly the same, but to me it seems very inefficient to be reforging Expertise into something, only to have to reforge something else into Expertise because you then don't have enough. Is this intended or is it just the system getting a bit over-zealous in trying to hit exact numbers?

Overall though, great job so far. Definitely user friendly, simple to use while still giving you plenty of infomation if you want it and nice and fast.

Share this post


Link to post
Share on other sites
Going back to the reforging function, it seems to hit the right targets reasonably well, but it seems to do it in a slightly peculiar (from my view) manner. For example, it's telling me to do the following:

Chest

-36 Expertise +36 Haste

Hands

-32 Crit +32 Expertise

Obviously the numbers being changed aren't exactly the same, but to me it seems very inefficient to be reforging Expertise into something, only to have to reforge something else into Expertise because you then don't have enough. Is this intended or is it just the system getting a bit over-zealous in trying to hit exact numbers?

Ignoring the rest of the gear for a moment since fully analyzing the optimal reforging would be too time-consuming, look at it this way. Chest doesn't have haste on it, so clearly you're going to reforge into haste. So the options are hit->haste or exp->haste. Gloves have crit on them, so clearly you're going to get rid of that. There the options are crit->exp or crit->hit since they already have haste.

Chest: hit->haste or exp->haste

Gloves: crit->exp or crit->hit

I'm assuming the tool puts you slightly over the exp cap without these 2 reforges. So if you went with exp->haste on the chest, then you'd be below the exp cap and exp would be worth more than hit, so the glove choice would have to be crit->exp. If you went with hit->haste on the chest then crit->exp on the gloves would be worthless as you're over cap, so crit->hit is the logical choice.

Compare:

exp->haste & crit->exp = -32 crit, -4 exp, +36 haste

hit->haste & crit->hit = -32 crit, -4 hit, +36 haste

If you're over the exp cap, losing the 4 exp doesn't cost you anything so it's the better choice. Of course it's more complicated when you're solving for every piece of gear at once, but at first glance it doesn't really look like an extremely unlikely result.

Share this post


Link to post
Share on other sites

*lightbulb*

Ohhh I get it now, thanks! I was forgetting you couldn't add a stat you already had on an item, because I had been wondering why the Chest couldn't just be left as it was and the gloves changed to Haste. And also now understand reasoning behind why the Exp and not the Crit is picked for reforge in that instance.

Share this post


Link to post
Share on other sites

I've started to add import functionality to my ingame addon. At the moment it will only tell you

a) If you are wearing the wrong piece of gear (and which one you should be wearing)

b) If the reforge differs from the imported value

The tool cannot automatically fix these for you at the moment, nor does it do anything with talents, enchants or gems.

The beta version can be found here: Shadowcraft Tools - Files - WoW AddOns - CurseForge.com and I would be interested to know if anyone can spot any bugs in it.

To use the data from the "Export" section of the website, you will have to strip out the [CharName-Realm.Region] section from the start before you paste it in to the addon. Use '/sc import' to bring up the import window.

Share this post


Link to post
Share on other sites

Amazing, Amazing tool thus far. I hope you guys can get it fully operational as I would love for this to replace the spreadsheets I have come to adore.

One bug/design note: Sometimes when I click to view upgrades it works fine, other times the upgrade window is see-through and you can see all the stats behind it, making it very difficult to read. It doesn't matter what slot I click on, the window appears at the top in front of the stats and it is all jumbled together.

Thanks for all the hard work.

Share this post


Link to post
Share on other sites
I've started to add import functionality to my ingame addon. At the moment it will only tell you

a) If you are wearing the wrong piece of gear (and which one you should be wearing)

b) If the reforge differs from the imported value

The tool cannot automatically fix these for you at the moment, nor does it do anything with talents, enchants or gems.

The beta version can be found here: Shadowcraft Tools - Files - WoW AddOns - CurseForge.com and I would be interested to know if anyone can spot any bugs in it.

To use the data from the "Export" section of the website, you will have to strip out the [CharName-Realm.Region] section from the start before you paste it in to the addon. Use '/sc import' to bring up the import window.

I exported my character from roguething and imported in the addon, works fine as far as I can tell.

Very handy.

Going to go find an enchanting trainer, do some reforging and see if I can break it for you :)

If not every slot has gear in it when you export the addon throws a couple errors, I'll get signed up to curse and put up a ticket.

Share this post


Link to post
Share on other sites

While working with Shadowcraft I did the auto-reforge after I enteerd my Ep values for Assassination. While looking it over it is telling me to reforge items up to 232 expertise. Have a feeling the Value s set wrong or I did something wrong ( Most likely that last one)

EDIT: Ended up lowering the Boss Dodge % from 6.1 to the 5.6, and I went -7 ep.

Share this post


Link to post
Share on other sites

I still don't get the whole git control system (I only write little projects for me and my friends) and I don't want to mess with it untill I understand it better. To get started easy, I'm going to comment on couple lines in Andriana's engine that I think need a second thought; under the backstab damage formula there we can find:

    def backstab_damage(self, ap):

        weapon_damage = self.stats.mh.normalized_damage(ap)


        opportunity_multiplier = 1 + .1 * (self.talents.subtlety.opportunity)

        aggression_multiplier = 1 + .05 * (self.talents.combat.aggression)

        damage = 2 * (weapon_damage + 345) * opportunity_multiplier * aggression_multiplier


        if self.assassins_resolve():

            damage *= 1.15


        return damage
This has not been tested yet as far as I know, but as Vulajin explained here at the start of wotlk, talents that affect one single ability tend to stack additively (opportunity and aggresion in this case); it is not important yet if they do stack additively or multiplicatively, but since they are two modifiers, the flow of the code should account for this posibility. So, I believe this thing could look like this:
    def backstab_damage(self, ap):

        weapon_damage = self.stats.mh.normalized_damage(ap)


        opportunity_modifier = .1 * (self.talents.subtlety.opportunity)

        aggression_modifier = .05 * (self.talents.combat.aggression)

        backstab_multiplier = 1 + opportunity_modifier + aggression_modifier

        damage = 2 * (weapon_damage + 345) * backstab_multiplier


        if self.assassins_resolve():

            damage *= 1.15


        return damage

Now my question would be: should I fork the project and add my code? should I fork and add a coment? should I open an issue (as it was suggested for bug reporting)?

For the same reason, I think it'd be sensible to store buffs/debuffs in the shape of percentages. Let me clarify: Leader of the pack is now stored as 1.05 and shadow and flame as 1.05 too. In the future, when we need to compute our spell crit chance we (well, Aldriana actually) will have to write something like UnbuffedCritChance*(LotP+SnF-1) just like it was done before in the spreadsheets, whereas having those constants stored as percentages would make the formula a little more understandable without the odd "-1"

While this is certainly not a big issue, if I find a better way to handle it, how should I comunicate that to the project manager?

When you write something like this you are bound to make many little changes and I don't know if they are worth a forking or just a mere PM to Aldriana. If all this sounds idiotic please disregard; it's just my humble attempt at being usefull for the project.

Share this post


Link to post
Share on other sites

Backstab damage: if someone would like to test + confirm, that'd be great. As may be evident from the littering of comments, I've been running sort of quick and dirty while setting up framework.

Buffs: Not sure where you're seeing it stored as 1.05; both the crit chance buff/debuffs are stored as 5 in the master revision at the moment. That said, following the change I made earlier this evening, it does need to be changed to .05 to be consistent (to avoid having a bunch of stray /100 terms around, for much the same reason). I'll be checking in a bunch more stuff in a few minutes, so I'll fix that then.

Git: I don't really understand it either, but its what people wanted to use (and it's been recommended to me by my brother), so I figured I'd give it a whirl. So far I'm sort of reminded of what my friend/former boss said about it: "I'm sure Git is amazing, but I'm not sure I'm smart enough to use it." Anyway, general approach, as I understand it, is that you fork, make your changes, and then send me (or Antiarc, depending on which piece you're working on) a pull request; at that point he (or I) will decide whether we like it (or not) and either pull your changes into the main branch or send a response explaining why we don't want to.

For those of you with coding backgrounds, I'd encourage you to just make the change and send it off if you seem something clearly wrong. If you're not comfortable with coding, it's fine to contact me (us) via this thread, via PM, via email or via GitHub issues tracking and someone else will do it. If you want to help but aren't sure what needs doing, again, contact us with what sorts of things you're interested in working on, and we'll find something for you to do.

Share this post


Link to post
Share on other sites

It's looking like Blizz might be adding items to the loot tables in raids with intelligently driven some random stats. That is to say, it's not going to be something like int and agi on a pair of pants, but more likely something usable. If this is going to be the case, it might be needed for some way to manually make an item. Now if the "Random" stats turn out to be a grab-bag of known quantities (that is to say, you will always get agi and stam, and then 2 sets of green stats), then this might just entail making a "Raid-tier-1 pants-of-the-<random-stat-moniker>" item for each possibility.

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.