This project is read-only.

Status of Shadowpriest Model?

Topics: Rawr.ShadowPriest
Dec 21, 2010 at 4:42 PM

How ready is this model for use? It seems to really give some strange results in the Optimizer. I am starting to suspect something is wrong, as no values show for up at all for Crit or Mastery in the Relative Stat Values area, so maybe it's not calculating those stats for the model? I'm not really knowledgeable enough about the inner workings to make that judgement but that's what it appears.

Dec 21, 2010 at 6:36 PM

Per, it's only partially ready. ie, it's not really ready for accurate use.

Dec 21, 2010 at 9:52 PM

Last check in: 11/19/2010. Sadface. Any idea when it'll be worked on again? How high are Shadow Priests on your guys' priority list? I'll continue to check in for updates of course, but can I ask when you expect it'll be finished? Excited. Excited. Excited! Keep up the great work team.

Dec 21, 2010 at 9:59 PM

Most models (including ShadowPriest) are handled by individual devs, whom that is their only priority. TNSe, any status updates?

Dec 25, 2010 at 1:47 AM
Edited Dec 25, 2010 at 1:48 AM

I am currently enjoying all the content, yes the model still needs alot of work the spells should almost be there but there is no mastery calculations taking place at the moment, i should get one or two day between christmas and new year but i dont know how much i will get done im afraid. I should get some more time in january when i get back to work, been having a nice long holiday!

Jan 27, 2011 at 1:23 PM

Any change about this status report ? even some little improvment wiil help, if not possible, I understand any people has his own worries, someone knows another damage simulator?


Feb 1, 2011 at 4:31 AM

Ooooor.. can we perhaps get someone else to pick up the Shadow Priest project? No offense.. but waiting and waiting for not a single update concerning Spriests is getting lame. It's February already and it seems the developer may have abandoned the project; considering he hasn't touched it since Dec 19th 2010. ;;__;;;

Feb 1, 2011 at 5:08 AM

You're asking us to do what we're already doing. We're always looking for new developers to help out.

Feb 1, 2011 at 11:03 AM

I would love to be spending time on this but am having a serious lack of time at the moment, i had december off work for Cata launch/a holiday to see family etc. I was hoping to do some work on this in January but we had someone leave my team at work and the other sent off on site work so im left doing the work of 3 people at the moment. unfortunatly this dosnt leave me with alot of time. If any one would like to pick up the model that would be great, I will be about on IM to help when i can unfortunatly until we get someone hired this leaves me with little to no time to do work on the model.

I appologise to everyone who has been waiting for this and i too would love to have this working for my own gear but until my real life calms down a bit i am unable to do alot.


Feb 3, 2011 at 3:47 AM

Taking care of yourself always comes first! So, no need to apologize Shep', it's alright if you aren't available to work on the program.  I'm sorry to hear that you're going through a rough patch and hope things get better for you. ^.^

As for the model, it seems finding talented developers are hard to find these days. I feel guilty,  I wish I could help.. xD I know html pretty well. >.> If it's a matter of just typing in a million numbers then I could offer you my time and help out. Other then that.. I'm pretty worthless to you guys. Anyways, thanks for replying atleast and letting your fan base know the down-low. Much respect!

Feb 5, 2011 at 4:06 PM

I added a patch to for removing the Glyphs that are currently not in the game anymore.

I'm trying to figure out how to investigate but I'm completely at lost at the inner workings and interfaces of Rawr in order to understand where I should start looking at.

I'm guessing that the optimizer doesnt know (anymore?) that hit should be kept to a certain amount, but where and how is this determined? And how can I influence this behaviour from the ShadowPriest model?

Feb 7, 2011 at 10:04 PM
Edited Feb 7, 2011 at 10:04 PM

I cann't say for sure, but does Hit effect the ShadowFiend, while Spirit does not? ... Boomkin has this issue with with Trees, and thus, Hit has a Slight advantage to DPS (and mana return) over pure spirit.


Feb 7, 2011 at 10:32 PM
japj wrote:

I added a patch to for removing the Glyphs that are currently not in the game anymore.

I'm trying to figure out how to investigate but I'm completely at lost at the inner workings and interfaces of Rawr in order to understand where I should start looking at.

I'm guessing that the optimizer doesnt know (anymore?) that hit should be kept to a certain amount, but where and how is this determined? And how can I influence this behaviour from the ShadowPriest model?

Think of it like this...

In the base code of Rawr it generates a Stats object that contains all the stats that the program wants the model to evaluate. The model takes the Character object (for things like checking talents) and the Stats object with the stats set to evaluate and throws it at the model (in CalculationsModelName class).

The model then implements a calculation routine and spits out an object that has the Overall value and any sub values the model wants to define (eg: normal vs burst dps).

So its a black box - the optimiser simply throws LOTS (thousands) of Stats objects at the model and says give me a result it then keeps going swaping things out trying to get a higher and higher number.

Therefore when looking at the code you do not really need to know ANYTHING about how the optimiser works nor anything about how it calculates the Stats or clicks buttons or any interface stuff. All you need to look at is "does the calculation take the Stats and give a sensible result".


So for ShadowPriest - the optimiser IS NOT LOOKING AT ANYTHING AT ALL. It is the model calculation code that is simply spitting back at the optimiser a number for the dps done for that set of Stats. If the hit rating is wrong it is likely to be how it is calculated. For example if it is using the level 80 numbers. So all you need to do is investigate the Calculations class in Shadow Priest model and see if all the formulae are actually correct. As you change formula the results get better.

So to get a working model really you should do the following...

1) Review the code and change any obvious level 80 stuff to level 85 stuff

2) Load up various characters and check that the display values of things like hit %, crit% etc etc all match what is on the paper doll in game. If not find the error and fix (remember to remove buffs when checking).

3) Play with talents make sure that adding or removing a talent correctly influences output

4) Review the dps calcs is the model giving sensible outputs for each ability - if not why not.

Fix as you go - having fixed the display values it makes it easy to test to see if changing something by a small amount actually reflects accurately in the output stats - eg: adding extra spellpower do all the dps abilities go up by the right amounts.

If you get into it and want to help further apply to the co-ordinators to be granted developer status. We can then advise further.



Feb 7, 2011 at 10:36 PM

By thousands, he actually means millions.

Feb 8, 2011 at 1:02 PM
Edited Feb 8, 2011 at 1:09 PM

My understanding of the Genetic Algorithms in use by the Optimiser is that it does the generations and mutations in such a way as to avoid having to do Millions of calls to the model. ie: it doesn't have to consider all possible options as that sort of brute force attack is not how a GA works. I've not investigated the sort of GA in use but I'd imagine it is using some sort of hill climber methodology, with random mutations.


Edit: In any case the model developers don't need to worry about how the optimiser works all they need to know is that if a block of stats is thrown their way all they need do is return what is the expected dps total for that stats. If the model developer thinks of it as the model takes a simple input of stats processes them and throws out a number and thats all they worry about then it gets them started.

Feb 8, 2011 at 9:52 PM

Millions probably isn't far off. A typical Rawr model can do about 10-100k calculations per second.

Feb 8, 2011 at 10:25 PM
Edited Feb 8, 2011 at 11:10 PM

According to my last round of tests, 20k calculation runs for most models were in the half second range. The slowest ran at 2-3 seconds and fastest at about a tenth of a second. With the VS2010 SP1 install, there's silverlight profiling so I was able to find out one of the big reasons DPSWarr was going so slowly. I chopped off like 66% of the slowness with 2 simple fixes.

Edits: So at an average of 20k per 0.5 sec, running an optimize taking 5 minutes exactly: (5*60)*(2*20,000) = 12,000,000 combinations of gear run through a single calc to determine it's DPS/Tanking/Healing whatever scores. It starts with a giant negative number (something like -10 * 10^13th), then processes the first set of gear, which will always be higher than than giant negative. As it runs, it throws out gear combinations with a lower score than than that first set and each time it finds a set with a higher number, it makes that the new baseline (new sets after that have to be higher than that one). It does this until it runs out of likely combinations. The likely part is where Kavan's awesome shiny-ness comes in, he created some algorithms that allows us to limit the gear combinations to a much smaller number, where all the least likely combinations are thrown out before being processed. I don't know the details on this, I guess I should read the code in there more thoroughly at some point.

Feb 8, 2011 at 11:56 PM

I guess it would be interesting to some to know a bit more what's happening under the hood so here it goes.

In short the optimizer uses a variation of island based genetic algorithm. For a good analogy you can imagine there being many islands that are initially populated with 20 characters each. Each character does their job (dps, heals, tank) and gets a score, taking into account any constraints in form of penalties. The scores on each island are then compared and each character on the island is given a probability of being selected for succession, higher scored characters having a higher chance. When the new generation of population on the island is constructed the best character on the island always survives while the rest are generated by genetic operations. First there is a small chance of inserting a completely new random character. Next there is a chance that a character is generated with a crossover operation, this takes two parent characters and generates a new ones by taking some gear from each of them. Finally a new character can be created through mutation. In this case there is only one parent character which is modified by either changing some items, changing some gems or swapping some gems around. The island approach comes into play if there is no improvement for some time. If an island doesn't see any improvement in 50 generations it becomes open to outside pressure and when selecting parents for genetic operations they can be chosen from other islands also.

One slightly problematic issue when trying to evaluate such a system is that we're dealing with a highly random system and what might work for one model or one character might not necessarily make it good in general. We don't currently have any standardized test suite to measure the performance of the optimizer, but if someone would be interested in something like this it's quite possible that some improvement could be made just by tweaking some parameters.

Feb 10, 2011 at 5:08 PM

I'm going a little off-topic, but, as you guys are too, i'm gonna throw a sugestion at you.

I've downloaded rawr's code this week, and took a fast look at the tree model, trying to fix the intellect issue. My time is quite limited, and it took me too long to understand where to find the bug. I believe i found it, but i still don't know if and what else needs changes. The lack of comments on the code doesn't help either.

I believe all models must implement a given interface, so that the optmizer can handle all the models the same way. I just took a look into a couple of them, and could easly find the pattern. But all the rest seems to be implemented at the developer's discretion.

Creating a simple Class diagram with the relations, should help a lot ocasional fixes by the comunity, as is my case, saving a lot of troubles to the development team. 

I mean, if users have documentation for easly figure their way around the models (classes mainly, as i believe the core, ui, etc have stable developers), it would be easier to keep thing going, by patching, even if the model developer is short on time.

Feb 10, 2011 at 5:10 PM

Sure, if someone wants to take the time to actually write that I'm all for it, but the devs are strained as it is to keep writing code.

The one with the most comments currently (I think) is Bear.

Feb 10, 2011 at 7:05 PM

I'm not sure what you mean, all models inherit from CalculationsBase and that is pretty well documented I believe.

Feb 11, 2011 at 9:45 AM

Indeed it is. I was only navigating in the model itself. I guess it's due to not being that used to VS.  

Feb 25, 2011 at 4:44 AM

Hi Rawr,

Do you need shadowpreist volunteers. I am by no means a programmer but i do raid 4 times a week and upload our fights to World of logs we are currently 10/12 raid boss kills.I am really missing the use of this program.

Feb 25, 2011 at 5:18 AM

Yes, we could use another Developer to help with ShadowPriest. If you know someone, send them our way.

Mar 5, 2011 at 8:20 AM
Edited Mar 5, 2011 at 8:21 AM

Any pro Developers want to take on an additional project? =3 *coughs* Shadow Priest!?

Am I wrong to use the Shadow Priest model right now? Are the numbers even remotely accurate? I realize the Spriest model is disregarding hit, but it's odd that it will actually give me a little but no where near enough. Why is this?

 I can pull insane dps in a dungeon but on a lvl ?? boss it's miss* miss* miss* miss*. "Well of course you're missing, you're way below hit cap." Let me explain why I trusted the model's decision, a lot of theory crafters have been saying that being as low at ~800 hit is okay for a shadow priest since the added stats make up for the misses. I've done this for awhile now and I can't seem to determine for myself.  Hit cap or follow rawr's partially complete model? Is there anyway I can tell the optimizer to value hit?

Mar 5, 2011 at 5:08 PM

Hello Everyone concerned with the Shadow Priest model.

I am a new Rawr developer assigned to work on this module. At the moment I am just confirming some of the calculations and maths involved in the model. It's going a little slower than I expected. However you can expext to see some updates and improvments coming through shortly.

Some of the things I am working/planning on right now. Expect this list to grow.

  • User Priority Adjustments.
  • Spell Calculation Verification
  • Add Shadow Specific Charts
  • Hit % selection to optimizer.

I am not sure the hit % is such a big problem at the moment because for the most part hit is not as important as it used to be (for shadow anyways). Of course it is a useful stat but Int is just a big contibutor of dps these days. Hopefully my work will confirm these facts over the next couple of days. 

Mar 6, 2011 at 6:12 AM
Edited Mar 6, 2011 at 6:12 AM



E V E R ! ! ! =D


Mar 7, 2011 at 9:38 AM

Hey discomurray,

That is some good news!

I hope to be able to contribute in testing a bit, since I have a (human) shadow priest that is currently raiding. (and I can make builds from the subversion repository to check things).

Mar 8, 2011 at 8:44 PM


This is fantastic news.  I wish I could offer some help, but I don't have much to offer.  Instead I'll offer encouragement:  Thank you for taking on this project and best of luck to you!  I hope things happen quickly!

May 11, 2011 at 12:44 PM

Shadow Priest are not a lucky people :)   

May 13, 2011 at 7:27 PM

Yeah, unfortunately, I've all but given up on rawr. =(

May 15, 2011 at 11:39 AM

Join the club. I've been QQing about this for awhile. Miss the old expansions when we were loved.

May 15, 2011 at 5:10 PM

Why not put the word out that there are open positions on the Rawr team?  Surely we are not the only place to learn about your class, so go to those other places and let them know that we could use developers for various models.

May 16, 2011 at 7:37 AM

The site states that Elemental & Hunter are looking for Devs, not Shadow Priest. It's assumed that Discomurray is the Spriest dev. He's been on in March, so maybe the model doesn't need work just a explaination. Doesn't seem appropriate to spam for a new Dev when we have one, right?

May 16, 2011 at 6:00 PM

Discomurray is still here, but cannot dedicate enough time to work on this as we would like. So yes, we need a shadow dev that can devote several hours a week to working on Rawr.

May 17, 2011 at 7:04 AM

To add to this thread, I've also started working on the shadowpriest module now, but bear in mind that its going to take a lot of changes.  I'm new to the code base so it takes some time to get used to things.  I've got a few changes set aside that could be pulled into a separate patch if needed, mainly around fixing spell constants for things like mana cost etc.  The bulk of my work right now is on doing a bigger refactor, to make things a little easier to work with for the future.  I'm blatantly borrowing a lot of structure and code from the Moonkin module, as many of the concepts are similar and it saves a lot of time.  I'd like to hopefully have something functioning within the next week or so, pending time balancing with work on my Masters.

May 17, 2011 at 4:47 PM

Fantastic, thank you for stepping up.  I know a lot of us appreciate it and would love to have a working shadowpriest model.

Good luck!

May 22, 2011 at 12:26 AM

Great! Good luck Eitri, anything at all is very much appreciated. Much respect to Discomurray as well, it's just too bad you can't dedicate your entire life to Rawr ;] I'm wondering if either of you two could answer my question - What exactly is and isn't working currently? When I compare stats from the model to live they are the same. I notice if you optimize for burst damage you'll be given 1800+ hit and if you optimize for sustained you'll be given 500- hit. This seems far too low, however MB is our only CD and the model isn't stacking mastery so perhaps this isn't so bogus after all. O.e;

May 22, 2011 at 8:13 AM

There are some big areas missing for Cata support.

First off, the new way haste affects dots hasn't been updated, meaning haste scaling is off.  This affects spell information on dots as well as dps totals.  I've mostly got this fixed on my copy, this is probably the easiest to implement and test, as the mechanics are already modeled in other modules like Moonkin.

Second, Improved Devouring Plague support needs to be adjusted.  This is slightly related to the above change, but basically the way that the damage on casting Devouring Plague is calculated does some different checks than the calculations for hasting dots.  This should not be a huge impact on numbers but needs to be handled at some point.

Third, Shadow Word: Death is ignored for the current rotation.  Need to implement using it during execute phase based on Boss Handler options.  This also includes the mana gains from Masochism, double SW:D from the glyph, damage boost from Mind Melt, etc.

Fourth, Mind Flays impact on other spells isn't implemented.  This includes SW:P refresh chance and crits reducing shadow fiend CD.  This should be fairly easy to implement, pending other modifications to the rotation code.  Probably going to take the easy way out and assume 100% uptime of SW:P and model it more nicely later.

Fifth, Dark Evangelism/Dark Archangel isn't modeled.  Neither the dot buff from having stacks off mind flay, or the use of the dps CD for mana and the direct damage buff.  Haven't dug into this at all, not sure how I'm going to work it out.

Sixth, Shadowy Apparitions are ignored.  This one is going to be complicated.  Need to calculate the number of SW:P ticks, while adjusting for the movement % increase and the 4 apparition limit.  Also need to implement the 4 piece damage bonus.

Last, but certainly not least, mastery is basically ignored.  It has no effect on rotation (in terms of adjusting mind blast usage based on number of orbs up), or in terms of the actual dps increase of empowered shadows being active.  This obviously has a very big impact on numbers.  My plan right now is to cheat and just add a slider for Empowered Shadows uptime to get something working, and put together a more elegant solution for calculating uptime based on actual casts later.  In addition to general mastery implementation, Harnessed Shadows needs to be handled for its effect on orb generation.

For "rotation", the first iteration will also likely just mind blast on CD, once again in the interest of time.  Priority is assumed to be VT -> DP -> SW:P -> SFiend -> Dark Archangel -> SW:D (under 25%) -> Mind Blast -> Mind Flay.  Later on I'd like to try to make it a little smarter about keeping Empowered Shadows up, but for now I'm just trying to get something spitting reasonable numbers.

I hope this doesn't scare anyone off =)  I know its a big list, but I'm hoping to just knock things out one at a time, using estimations instead of full models as needed, and fine tune as time is available.  Also, feel free to provide feedback if something doesn't look quite right or if my statements seem off.  Most of my information is based on discussions from, Elitist Jerks, and

May 26, 2011 at 5:07 AM
Edited May 26, 2011 at 5:08 AM

The Spriest model needs some good ole TLC it seems, thanks a ton for listing all this. I wont bug you with anymore questions as I'm sure you're busy enough as is. I've noticed a lot of the things you've mentioned myself - for instance the model would rather use both my 2 set bonuses on my pvp gear and my T11 instead of my T11 4 set. Also, sure you already know this, the trinket scaling is pretty whacked. Good luck dude! Willing to donate if I can actually use the Spirest model. ^^ <3