This simulator was created during the Cataclysm Beta (with assistance from Communism and Anothriel) with the purpose of comparing the effects of various stat setups on damage, healing and absorption output, as well as such statistics as average downtime and rotational gaps.
Like all simulators, as close a reflection of reality as possible is the primary goal of BloodSim. If, in your use, you find something that needs to be corrected or investigated, please contact me as soon as possible. This also applies to the information in this thread.
BloodSim is available at BloodSim as well as the source code. The most current version of BloodSim and the Required DLLs must both be downloaded in order for BloodSim to run.
As most of these are straightforward and self-explanatory, not all settings will be covered.
- Ratings: The amount of each rating from your character sheet. Percentage conversion will be displayed in the adjacent field.
- Racial Bonus: Bonus to Expertise (not rating) due to Race
- Non-Armor DR: The total combined Physical Damage Reduction due to outside buffs (such as Inspiration)
- DS Heal: The percentage of damage done in the Last 5 Seconds that is healed by Death Strike
==== Behavior ====
- Pool RP: Minimum amount of Runic Power to maintain
- Disease Refresh: If applicable via rotation, wait until a diseases is this duration or lower before attempting to refresh
- Avoid Consecutive DS: Simulated DK will not use Death Strike twice in a row unless the length of time between two Death Strikes is greater than 5 seconds
- Smart Blood Tap: Causes the Death Knight to only use Blood Tap if doing so will allow use of a Death Strike when it would not before (due to Runic Empowerment)
- Diseases / Scarlet Fever: The duration in seconds for diseases / Scarlet Fever.
- Scarlet Fever: Duration of Scarlet Fever in seconds
- Scent / BCB: The number of talent points placed in Scent of Blood and Blood-caked Blade.
- Periodic Enrage: Every <Interval> ms, the boss will gain a damage and/or attack speed bonus as set by the user.
- Dragon Breath: Simulates a magic damage attack that occurs every <Interval> ms. This ignores armor and Blood Shield but is calculated in Death Strike's heal, as appropriate.
== Running the Simulation ==
- Iterations: The number of consecutive fights to simulate.
- Minutes: The length of each fight.
- Show Sim Log: Show/hide the simulation log to reduce calculation time and memory usage. Automatically hidden when iterations exceeds 20.
- Show Graph: Show/hide the graph window when simulation is finished. If hidden, the output data will instead be saved to a text file in the BloodSim directory.
- Name: The name to be displayed in the Graph window or used when saving results when Graph window is hidden.
Performs repeated simulation batches according to the normal run settings, increasing the user selected stat each time.
When the simulation has finished, a Graph! window will pop up (provided it is shown) that graphs some basic information between iterations. This window also contains many statistics about each individual fight, and an average of all fights. This data format can be copied into an Excel friendly format via standard selection and Ctrl+C.
Current statistics that are tracked in output are as follows.
Total number of:
- Death Strike
- Heart Strike
- Rune Strike
- Blood Boil
- RE Procs
- Total Damage Dealt
- Total Damage Taken
- Total Damage Absorbed
- Total Threat Dealt
- Total Healed
- Top 3 gaps in ability usage
- Timestamp for when each gap occurred in the fight
- Total damage dealt by each ability that was used
- Overwrite Clips/Overwrite Clip Total: The count/amount of shields lost due to overwritten Blood Shields
- Heal Clip Total: Calculated loss due to Last 5 Seconds window including a hit mitigated by Blood Shield
- Boss Hits/Boss Hits Avoided
- Lost/Gained Shield from Missed DS: Calculated increase or decrease in Blood Shield due to a miss/dodge/parry-ed Death Strike changing the Last 5 Seconds window
=== Simulation Log===
Found in the main window, this serves as an enhanced combat log for the simulated fight(s). Generally more useful when running single simulations for analysis than in multiple iterations, its current main use is to determine what can cause large rotational gaps.
== Current Needs and Future Goals==
In the previously stated goal of being as accurate as possible, I have undertaken two large tasks for the future of BloodSim:
- Provide simulation options specific to each current Raid boss encounter
- Simulate, as realistically as possible, Healers of each class
=== Simulate each specific Raid boss===
This task is currently in progress and I am in the data gathering stage, with which I will need significant help in order to accurately recreate each boss fight. Some boss ability data is available, but this early into the expansion much of it is not. If you wish to contribute and can do so, this is the information I need for each boss. (Note: I'm not at home as I write this, and it will be broken down into specific needs by boss when I have the opportunity, as I have some of this information already.)
- Names and unmitigated damage amounts (10 and 25) for all abilities that will actually hit the tank and their cooldowns.
- Armor amounts
- Unmitigated melee swing damage and swing speed
=== Simulate Healing===
Very light groundwork has been laid for this, but it is not yet in development.
Problem: BloodSim throws an Unhandled Exception at startup and does not load.
Solution: Download the required DLLs and place them in the BloodSim directory
Problem: BloodSim throws an Unhandled Exception when running the simulation, or has wildly inaccurate results
Solution: If you are in a non-US location, try changing the periods (.) to commas (,) in any number that has decimal places