View Single Post
Old 06/07/07, 2:53 PM   #1
dedmonwakeen
Don Flamenco
 
Undead Priest
 
Llane
From TheoryCraft to SimulationCraft

Near the release of Burning Crusade I attempted to analysis the DPS/DPM of various caster talent builds.

The results can be found here: http://wiki.shadowpriest.com/index.p...DPS_Comparison

My source code can be found here: http://wow-raid-sim.cvs.sourceforge....aid-sim/phase1

I was as thorough as possible, reasonably confident in my modeling...... but I remained frustrated by all the hand-waving and "averaging out".
I was limited by the architecture of a simple spell sequence extrapolation and the fact that each player was modeled separately.

Eventually the frustration boiled over into motivation: I've recently completed a discrete simulator to model WoW raid combat.
Currently only casters are supported, but I hope to change that with a little help.

It accepts raid/parties of arbitrary size.
Player AI is controlled via a list of spell priorities.
Talents can be specified singly or via WoW Talent Calculator links.
All manner of gear can be accepted +dmg, +crit, +hit, +haste.
It supports Tier 4/5/6 2-pc and 4-pc set bonuses for all classes and the Spellstrike set bonus.
It supports simple dmg trinkets of the form X +dmg for Y sec with Z cooldown.
In addtion the following unique trinket procs are also modeled: Darkmoon Crusade, Eye of Magtheridon, Lightning Capacitor, Quagmirrans Eye, Sextant of Unstable Currents, Talisman of Ascendance, Zandalarian Hero Charm
Class specific versions of the Ashtongue Talisman are also supported.
Spellsurge enchant and Mystical Skyfire diamond are also modeled.

It can generate simple player/spell statistics as well as a combat log.

It's main drawback at the moment is usability......
It is written in C++ and requires at least a little progamming knowledge to compile and run.

The main project link is: http://sourceforge.net/projects/wow-raid-sim

A simple README file with examples can be found here:
http://wow-raid-sim.cvs.sourceforge....ME?view=markup

A compressed tar file for download can be found here:
http://wow-raid-sim.cvs.sourceforge....ar.gz?view=log

DISCLAIMER: I am under no illusions that this actually models real raid combat. How often does the Boss actually just sit there and let you pound on it "tank-n-spank" style??? This is merely a tool to experiment with various raid/party/talent configurations. Take it with a very large grain of salt.

Enjoy.......

Example profile:
#
# Example raid profile with just 5 casters
# Simulate for 100,000 seconds, ignoring mana restrictions.
# Lag is assumed to be a random number near 0.2sec.
# Verbose set to "5" means that some spell-specific info will be printed.
#
max_time=100000
infinite_mana=1
target_level=73
lag=0.2
verbose=5
#
# Corrose
# A Fire Mage with 4 pieces of Tier 6 and a Mystical Skyfire diamond.
# Note the "debuff_1" modifier on Scorch. This means that Scorch has
# priority until Fire Vulnerability is fully stacked.... or is about
# to expire.
#
mage=Corrose
talents=http://www.worldofwarcraft.com/info/classes/mage/talents.html?0000000000000000000000050520001230303105311502030321310005010000000
file=example_gear
tier6_2pc=1
tier6_4pc=1
mystical_skyfire=1
spells=scorch-debuff_1/combustion/fire_blast/fire_ball
#
# Dedmonwakeen
# A Shadow Priest with the Darkmoon Faire: Crusade deck. The spell priority has
# Mind Flay at number 1 only if it is hasted to 1.5 sec. The "wait_0.5" modifier
# on the last Mind Flay will prevent it from being cast if a spell with higher
# priority will be available in less than 0.5 sec.
priest=Dedmonwakeen
talents=http://www.worldofwarcraft.com/info/classes/priest/talents.html?000000000000000000000230501000000000000000503250410250123051551
file=example_gear
darkmoon_crusade=1
spells=mind_flay-hasted_1.5/vampiric_touch/shadow_word_pain/mind_blast/shadow_word_death/mind_flay-wait_0.5
#
# Docsuess
# An Affliction Warlock with Ruin instead of UA. Note that the first spell is "dmg_trinket".
# The modifier "155-20-120" means "155 +dmg for 20 seconds with 120 second cooldown." This
# corresponds to Icon of the Silver Crescent.
warlock=Docsuess
talents=http://www.worldofwarcraft.com/info/classes/warlock/talents.html?5502212012230105510300000000000000000000000505000512200010000000
file=example_gear
spells=dmg_trinket-155-20-120/life_tap/curse_of_shadow/corruption/siphon_life/shadow_bolt
#
# Garass
# An Elemental Shaman with Quagmirrans Eye and the Lightning Capacitor. Note the Elemental
# Mastery and Lightning Bolt combination. This is an example of chaining certain spells.
# Similar spells are Natures Swiftness, Inner Focus, Presence of Mind, etc.
shaman=Garass
talents=http://www.worldofwarcraft.com/info/classes/shaman/talents.html?5500015500001435105100000000000000000000050005050005000000000
file=example_gear
quagmirrans_eye=1
spell_dmg_enchant=37
lightning_capacitor=1
spells=totem_of_wrath/wrath_of_air_totem/elemental_mastery-lightning_bolt/searing_totem/bloodlust/lightning_bolt
#
# Owl
# A Moonkin Druid the (class-specific) Ashtongue Talisman. Note the spells lead off with
# Moonkin Form. This will only get called once for entire fight and will not cost mana.
# Note that Wrath will be chosen over Starfire unless the cast time of Starfire drops by
# at least 0.3 seconds.
druid=Owl
talents=http://www.worldofwarcraft.com/info/classes/druid/talents.html?51202201253313523135100000000000000000000005500001000000000000
file=example_gear
ashtongue_talisman=1
spells=moonkin_form/moonfire/starfire-hasted_0.3/wrath

Last edited by dedmonwakeen : 06/07/07 at 4:43 PM.

 
User is offline.
Reply With Quote