Archived

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

Ullas

WoW Simulator - What do you want?

61 posts in this topic

Great project - I've recently been playing with simulationcraft, so I appreciate any effort making a user-friendly UI for a simulation application ;-)

I'm a java developer by profession with 6+ years of Swing experience. The project I'm currently involved with at work is a symbolic simulation engine for engineering - I'm involved in the rendering engine for 3d simulation results for mechanical/multi-body systems. I've been playing Warcraft since vanilla WoW, though I didn't get any raid experience until TBC. I've tanked, healed and dps-ed, but for now I'm only playing my shadow priest for raiding. I'm new to theorycrafting and have limited knowledge of game mechanics (still trying to soak up all the masses of info here at EJ), but I'd be glad to help in any way that I can. I'm also working on a small personal project to create a tool for evaluating SP raiding gear (a modest best-raid-gear-available tool specifically for Shadow Priests).

Share this post


Link to post
Share on other sites

Two things:

1) I'm having some difficulty figuring out how to read the itemcache.wdb file. It used to be similar to the game database files (spells, instances, icons, etc...), where essentially you have a table with every row having the same number of values. As of WoW client 3.02, the rows in itemcache.wdb don't seem to have a set number of rows.

Is there some mod that I could use to make an easily parsable file containing:

1) Information pertaining to all the items my character has seen

2) The contents of my bank

3) Any other information relevant to the character, which is not available in armory (i.e., info on quests, currency, guild notes, etc..)

2) What types of searches would people be interested in using armory for? For example, I know a common one might be get all characters in guild X on realm Y so you can use them in simulations. Another might be get all items for X slot that drop in instances A, B or C. Would people want to do more complicated things, like finding characters that resemble their own gear, spec, etc...? Do people find the "find an upgrade" for an item useful?

Share this post


Link to post
Share on other sites

Would people want to do more complicated things, like finding characters that resemble their own gear, spec, etc...? Do people find the "find an upgrade" for an item useful?

I don't think something like searching players would be possible, considering the number of armory requests involved.

http://elitistjerks.com/f15/t14035-how_get_xml_php_armory/#25

As far as 'find an upgrade' goes, I think that would be a very good feature, although I think using customizable stat weights (like the ones built into Rawr or on WoWHead) would be more useful than pulling from the Armory.

Share this post


Link to post
Share on other sites
I don't think something like searching players would be possible, considering the number of armory requests involved.

http://elitistjerks.com/f15/t14035-how_get_xml_php_armory/#25

There's "easy" and there's "possible". It is already looking like I'm going to have to have a database on wow-sim.com for information regarding proc rates, some of the more unique items (i.e., what's the equivalent dps of a particular summoned guardian like a peasant of barov), and so on. Storing a very abbreviated version of each character would not be too difficult.

  • Character Name
  • Character Realm
  • Talents (the string like 0000000000000001422352342342300000000000000 created in the official WoW talent calculator)
  • Equipped Items (ids only)

This isn't a whole lot of data to store, especially considering I just need to have a good sample for each talent/spec/gear level combination. The armory XML already has a "last modified" timestamp, so that makes discarding old data fairly easy. As for getting data, I can just pick one "active" character on each realm, and then get his guildies, get their arena team mates, get their guildies, their team mates, etc... It's not perfect but it's still nearly as useful as if I could "advanced search" characters (some similar tool to the advanced item search).

One thing that's missing is a way to differentiate geared from not-geared players. Maybe I could store the average iLevel of all equipped items?

As for the armory "find an upgrade" feature, I was tempted to make a UI for it since I get it for free (I already have a parser for most/all of the armory xml pages), but it's a poor substitute for making an upgrade suggestion based on the differential performance increase per increase in each stat (where the differential is found by running a simulation, increasing the stat by some small amount, running it again).

Share this post


Link to post
Share on other sites
Storing a very abbreviated version of each character would not be too difficult.

Well, that certainly changes things.

One thing that's missing is a way to differentiate geared from not-geared players. Maybe I could store the average iLevel of all equipped items?

That sounds like as good a measure as any, although you may also want to take resilience into account as well. I wouldn't want to be looking at a pvp-geared character regardless of how similar they are otherwise. Also, in regards to talents, what about a feature that reports something like "X% of similarly geared players have Y talent that you do not"?

As for the armory "find an upgrade" feature, I was tempted to make a UI for it since I get it for free

The armory's feature seems to work pretty well. The problem I have with it though is simply that it reports an arbitrary 'relevance' rather than an actual measure of dps gained. I would say all or nothing with this feature, either run the simulation or leave it out.

Share this post


Link to post
Share on other sites

Armory data fetching is fine but doesn't solve the problem of people switching their gear for Pvp/Solo/Farm/Whatever purpose. With a 25-man group this problem escalates even more. What would be required for simulations purpose would be an addon to go in combination with the simulator. It would need to inspect and store the whole raids gear setups and talent distributions mid-raid. Perhaps even gear and talent switches mid-raid?

When dual-specs enter the picture I fully expect Blizzard will enable viewing both specs via Armory but then there's the problem of which spec to use in simulation. If those specs are PVE/PVE, selecting based on Armory data becomes even more problematic.

Share this post


Link to post
Share on other sites

I definitely agree with Redbeard that Armory data is going to be a pain to use. It's too bad there's not a website like CTProfiles around anymore. I like the idea of using an addon to pull from in-game. Maybe even just pulling data from specific characters with problematic armory data to compliment what the sim pulls.

Share this post


Link to post
Share on other sites
Armory data fetching is fine but doesn't solve the problem of people switching their gear for Pvp/Solo/Farm/Whatever purpose. With a 25-man group this problem escalates even more. What would be required for simulations purpose would be an addon to go in combination with the simulator. It would need to inspect and store the whole raids gear setups and talent distributions mid-raid. Perhaps even gear and talent switches mid-raid?

When dual-specs enter the picture I fully expect Blizzard will enable viewing both specs via Armory but then there's the problem of which spec to use in simulation. If those specs are PVE/PVE, selecting based on Armory data becomes even more problematic.

I'm aware of these issues, and am addressing them in the following way:

There's not much I can do to get the 'real' raid gear for all characters in a raid. What I have now is a collection of gear sets owned by each character, a pool of other other items owned by the character, and a pool of items attainable by the character (things he has access to via rep, raiding, arena points, arena rating, etc..., but has not yet obtained.).

Certain game data can be "Updated", as long as it has a "Data source" associated with the object's type. For example, armory is a data source for characters (basic info, reputations and talents can each be updated independently of updating the whole character), guilds, arena teams and items. Allakhazam and Wowhead are data sources for items. You would associate a particular object with a data source, in effect telling WoWSim where to put the data. For example, if you have 7 specs you're experimenting with, exactly one of them would be associated with Armory. When you "Update" your character, that one spec may change, but nothing else will. I have pretty much finalized the API for registering a new data source with WoWSim (details here). If someone were to write a new data source for a gear set, their code would just receive the CharacterGearSet object that needs to be updated, and they would be free to appropriately change things. One possibility would be detecting how different a spec is (maybe this means X% or more talent points have changed), and asking the user whether the "armory talent spec" should be updated, or a new spec should be created. This would, in theory, allow a PvP build to not override a PvE build.

The reason I'm not sweating this armory issue too much, is because it's extremely easy to set up talents and gear sets, especially when you've been playing for a while. When you look at the alternatives like Simulationcraft, even just pulling data from armory, in addition to a typical talent tree creation panel, is a huge step forward. My goal is to make things about as easy as manually setting your character up in CTProfiles was (minus the annoying wait every time you added an item, changed a gem, etc...) and leave it at that.

Also, I hope you guys realize you can tweak whatever data you get from Armory. If you logged out in a white wedding dress, you still have the ability to replace it with something a little more practical. Even if your data is only 70% right, I call that a success, because it's a better starting point than being naked with 0/0/0.

I believe blizzard will have its own version of ItemRack in patch 3.1. If this data ever makes it to Armory, that'll make the dual-spec thing quite a bit easier.

If you guys have a better idea, I'm all ears, but I would rather get everything working at an acceptable level before investing too much time refining a particular thing to perfection.

Share this post


Link to post
Share on other sites

I have a 10 second favor to ask:

I'm building an XML feed that provides base stats for any Class+Race+Level combo.

Could you please add data to the set by entering your character or guild's name, along with your realm here:

http://feeds.wow-sim.com/baseStats.php

Note: I have hardcoded the U.S. armory URL in my php code, and thus only U.S. guilds will be properly read.

Depending on how many people do this at once, my web server may earn its self a 12 hour IP ban from armory. If you get an error, this is probably why, so don't worry about it.

Thanks!

Share this post


Link to post
Share on other sites

I'm having some problems with making my stat calculations agree with armory.

Base Health:

I am trying to establish whether the following is true:

Mh: Health multiplier (i.e., Frost Presence, etc..)

Ah: Added health (i.e., Battlemaster's Audacity )

Ms: Stamina multiplier (i.e., Improved Blessing of Kings, Heart of the Wild, etc... )

As: Added stamina (i.e., Prayer of Fortitude, Items with stamina on them, etc... )

TotalHealth = Mh * (BaseHealth + HealthFromStamina + Ah)

HealthFromStamina = 10*(TotalStamina - 20) + 20

TotalStamina = Ms * (BaseStamina + As)

BaseHealth and BaseStamina should be numbers that are the same for all players of the same class, race and level. However, looking at two characters of the same class, race and level (Paladin, Human, 80)

Excerpt from The World of Warcraft Armory - Strydaris of Azjol-Nerub


<characterBars>

   <health effective="29869"/>

</characterBars>

<baseStats>

   <stamina base="220" effective="2284" health="22660" petBonus="-1"/>

</baseStats>
Excerpt from The World of Warcraft Armory - Troggen of Azjol-Nerub

<characterBars>

   <health effective="16314"/>

</characterBars>

<baseStats>

   <stamina base="143" effective="956" health="9380" petBonus="-1"/>

</baseStats>

(1) Why is Strydaris' "base stamina" 220, while Troggen's is only 143?

Even setting this aside for a moment..

Strydaris' Base Health: 29869 - 22660 = 7209

Troggen's Base Health: 16314 - 9380 = 6934

Strydaris has the talents Sacred Duty and Combat Expertise, so depending on whether these add or multiply, this would result in Ms = 1.14 or Ms = 1.1448, but we have supposedly already subtracted all health from stamina. I can't explain why Strydaris' base health is 3.966% (275) higher than Troggen's.

Anyone have any ideas as to what's going on here?

EDIT:

I never realized that mining now adds a passive stamina buff. Taking into account that Strydaris is a 450 miner (+50 stamina), his base stamina is

(143 + 50) * 1.14 = 220.

EDIT:

And I neglected to account for Strydaris' +275 health to chest enchant. Everything adds up now. This model for health works.

Share this post


Link to post
Share on other sites

It may seem a bit unorthodox, but I'd definitely use a simulator that could model healing and absorbs done given a set cast chain, under varying secondary stats. Especially if it could spit out a mana deficit for the entire chain after accounting for mana returns.

I know this kind of information can be calculated directly. IE, you don't really NEED an actual simulator to find stat weights for healing. However, it's rather bulky/restrictive trying to do it in a spreadsheet, and there's no way you'll be able to see what amounts of devation to expect because of crit.

Hard right now to estimate secondary stat values for healers. Requires lots of trickery and experimentation.

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.