Combat Simulator

Hier gefunden -> ... in-here/p3

Ich habe bei ihm angefragt ob ich die Executable bekomme.
Asayre;3699160 hat geschrieben:I actually finished programming a combat simulator. I wrote in Matlab and @Panth141 tried it out for a while. The rough idea I used is to create a priority cast list like
Shooting Star -> Blockade of Fire -> Force Pulse
And then put things on a periodic cast so you would only cast Blockade of Fire every 8 seconds. The interface is not well designed but works.

Skill coefficients are readily available. My error in damage calculation is usually within 5 points.
I have a basic stat page. Some of my inputs are a bit odd, I admit but its what I'm used to from my spreadsheets.
The second tab allows you to put your abilities in a priority. The script tries to pick the first castable skill from the list. Once it's cast the ability is not allowed to be cast for time, t_Period. The execute time, t_Execute, is the global cooldown. There is an option to LA weave with that skill or not. min health and max health are used to control when an ability can be casted. So I would put max health = 0.2 to start casting Mages Wrath at 20% for example. I haven't implemented SD yet for reasons that will soon become obvious but my intention was that would pick a number from a standard deviation to add to t_Period to simulate errors in rotation.

To the right there are periodic buffs and debuffs. In the example picture, a magicka potion (with Major Sorcery) is drank every 45 seconds starting at 0 seconds. The bottom is just target stats and where to save files.
The third tab outputs a single damage parse. You have a damage log and a damage summary. There are some buttons to open up graphs that plots your stats.
The final tab aggregates all the simulations and calculates statistics. Again there are some buttons to make plots of stats.
I'm pretty happy with it so far. I can simulate most commonly encountered DPS abilities. An excel spreadsheet of abilities I can simulate right now can be found here.

So I've been thinking of what I want to simulate and just messing around with convergence and simulation time. Below is a quick summary of my convergence and time test so far
Slimecraw simulations take about 7 seconds each while Bloodspawn takes around 39. Time taken should be linear to target health. Convergence is achieved in only 10 simulations! That surprised me a lot. But as expected, standard deviation scales as sqrt( Health) thus the standard deviation of Bloodspawn is ~ sqrt(5) smaller than Slimecraw.

In the images of my combat simulator above you might notice that for that particular simulation I predict a mean DPS of 40254 with a SD of 492. That's 1.2% which is a bit on the large side since some of the effects of interest are smaller than that. And those simulations initially took around 15 minutes. But then I use parallel computing in matlab and got them down to 6 ish minutes. I would ideally want a SD of 200 (at 40k DPS) so I would need the target health to be around 50 million which means each simulation would take 30 ish minutes. I was hoping to run simulations in the 5 - 15 minutes duration. (I don't like waiting ...) So this is why I haven't messed around with adding a standard deviation to t_Period. As an aside, I'm using a Core i5-3570k.

Slightly back on topic, I have two options for simulating Moondancer, which are already implemented, one is a smart synergiser which only synergises when you don't have the spell damage buff and another random synergiser which as the name suggest synergises every synergy. The number of available synergies is dictated by a periodic buff called 'Synergy' (panel 2)

So overall I find that while the simulation is nice, in order to get a nice low SD the simulation time has to be quite long. Perhaps I have to just deal with it and accept that things will take long and create batch simulation files before I sleep or something.

If you want to use the simulator feel free to PM me, I can compile it into a Windows executable. I don't have a Mac with Matlab so I can't compile to a Mac environment.

SD - standard deviation

And for those who want some graphical representation of the results from the 4th panel. It's an older simulation thus the lower numbers but it shows a histogram of total DPS for 100 simulations and histograms for the top 9 damage dealing abilities. The top right shows the name and percentage contribution.

Re: Combat Simulator

Sind immernoch 0,01% mehr als wer ders nicht benutzt. Das Ziel sollte sein immer das Maximum rauszuholen, also ist sowas garnicht verkehrt.

Respekt an den, der es programmiert hat. Schaut nach einem nützlichen Tool aus.
Zuletzt geändert von Ayeline am Do 19. Jan 2017, 16:38, insgesamt 2-mal geändert.

Re: Combat Simulator

Ich verstehe dich auch und bin auch immer dafür das Maximum rauszuholen auch wenn es hier mal 0,01% und da mal 0,00005% sind ist das dennoch Dmggewinn.
Was ich allerdings zu mir sagen muss das ganze Zeug mit Tabellen und Taschenrechner ist mir zu viel da hoffe ich auf Leute die gerne rechnen und mit
solchen Tabellen rumspielen um dann auszuprobieren.

Re: Combat Simulator

ganz ehrlich die Vielfalt in diesem Spiel ist meistens so gering, dass die Auseinandersetzung mit Tabellen, etc. vollkommen unnötig ist. Wenn ich zwei Sets vergleiche, teste ich den Schaden anhand von identischen Mobs = eindeutiges Ergebnis. Skills sind ja wohl eindeutig, aber vielleicht bin ich einfach bloß dumm ..... eher unwahrscheinlich

Re: Combat Simulator

Da geht's vor allem um PvE und darum wieviel uptime sich z.B. bei sets wie BSW / monndancer usw erwarten lässt und wie die dann im Vergleich zu anderen sets aussehen.
Dazu kommt, dass schon länger ein Vergleich von sets wie twice-born gegen andere davon abhängt, welche buffs im raid vorhanden sind.

Trotzdem schreie ich bei so einem Simulator jezt auch nicht unbedingt juhu: Entweder sind viele Fragen wirklich eindeutig und lassen sich z.B. so Vergleichen, wie Julia das mal hier im Forum für Templar Skills gemacht hat, also mit damage-per-cast. Oder aber sie hängen zu sehr von anderen Umständen ab. Evtl muss man sich mal Schilden, rezzen, hat kleine lags oder der Mob läuft man für 2 Sekudnen aus den AoE's -> schon ändert sich so viel bezüglich uptime von procs, buffs und auch and er optimalen Rota. Erfahrungswerte vom Spielen bringen da dann eigentlich eh mehr als eine perfekte Simulation.