Tanking Simulation

#0 - April 11, 2007, 7:01 p.m.
Blizzard Post
Hi there,

As a personal project to learn Java programming, I wrote a small application that fully simulates the damage a tank takes from a boss. It works for Druids, Paladins and of course Warriors, taking into account the class' unique abilities (Holy Shield, Redoubt, Shield Block), their stats and other variables like incoming attack speed. It does this by running 10.000 swings on the tank, and keeping track of damage taken, crushing blows taken, double crushing blows taken (a killer for a tank) and more.

The results are quite interesting, for example:
- It turns out a Druid with comparable stats takes about 10% more overall damage than a Paladin and about 15% more than a Warrior.
- Also, for Paladins Redoubt tends to be active 20% of the time (at a 2 second attack speed) but provides little to no actual block.
- Shield Block (nor Holy Shield) doesn't provide crushing immunity until the boss attacks slower than once every 2.5 second, but at a 2 second attack speed it does reduce the amount you get crushed to around 1% of the time.
- Once a Paladin reaches over 102.4 avoidance with Holy Shield up, he takes less crushing blows than a Warrior, only about 0.1% of the time.
- etc

A possible use I see of this application is helping tanks decide on what stats to focus when gearing up. It works well and is very accurate.

EDIT 04/09/2007: The above post is largely redundant, the latest version is posted at page 4:
Q u o t e:
Hi, remember me? ;)

I finally got my act together and finished the damn thing :)

New features:

- It now places the tanks in an actual combat situation where they have a limited amount of health and need healers to keep them up.
- A lot less random. What the program does is generate a list of random rolls between 0-100, in the previous version this was done every time you ran it, now only when the boss stats get changed.
- This means that you can more accurately compare paladin/warrior/druid performance to each other, because both face the same random rolls.
- Also, you can now compare gear upgrades based on that fact. It can tell you how much damage reduction is provided by each kind of stat.
- You can plot graphs to give you a graphical insight in how the tank performs. Mostly a gimmick but this is still purely an exercise in Java for me so it was useful to me :)

To do:
- A feature similar to the stat comparison mentioned above, but for a specific item to for example check if -10 agility and -35 block value is outweighed by gaining +30 dodge rating.
- Shield Wall for warriors.

Bugs:
- To get a graph you have to push the "Graph" button twice, the first time some weird graph comes out, the second time the proper one comes. No clue what causes this.
- Some errors in chronology might be seen in the combat log (most obvious one is the message of the tank dying before the last hit hits him) but this is purely aesthetic and a result of how messages are placed in the combat log.

The source code is included in the JAR file, but I need to update the (lack of) comments still and a lot of the code isn't self explanatory.

That's all, let me know what you think :)

Download:
http://rapidshare.com/files/53398161/TankingSimulation.rar.html
http://depositfiles.com/files/1674391

PS: To run just double-click the JAR. You do need Java installed on your PC but that shouldn't be a problem to anyone.
#35 - April 23, 2007, 3:46 p.m.
Blizzard Post
Very impressive!

I'll make sure we include it in Forum Watch tomorrow.
#72 - Aug. 9, 2007, 3:57 p.m.
Blizzard Post
This thread has been added to the “Informative & useful Raids & Dungeons threads” compilations sticky: http://forums.wow-europe.com/thread.html?topicId=443734369&sid=1