ThomasCool Posted May 23, 2015 Share Posted May 23, 2015 (edited) Hey guys, I've been working at an actual DPS simulator since i can't find a recent comprehensive one. you can find it here: https://github.com/tomcool420/swtor-simulator-matlab It is written in MATLAB (cause i'm lazy) and it's still in the early stages of development (I started yesterday really). Current Working Specs (i'll be glad to fix any mistakes): Gunslinger (ALL specs) - Snipers (missing engineering) Vanguard (ALL specs) - Powertechs (just AP) Shadow (ALL specs) Scoundrel (Scrapper,Ruffian) Guardian (Vigilance) Early Work Completed on (Basically the JSON files) Gunnery HELP Needed: There are a couple of way people can help Submit a couple of parses without relic/adrenals AND a couple with relic/adrenals (to compare). Also, submit gear ratings Help creating the JSON files, no programming experience needed, just some patience and about 30 mins per spec. (maybe a little more if you want to help getting all the spec coefficients) Help developing and debugging the code (matlab experience needed) Eventually - Writing rotations down in such a way that they can be programmed in (Guide people, i'm looking at you) JSON Files An example for the JSON file can be found here. An explanation for what all those numbers are can be found here. The XML file containing all the values can be found here Someone could also adapt and xml parser to find those if they were good at parsing Results Tactics - based on Kwerty's no relics/no adrenal parse here Thanks ~Lunagazer P.S. even if you are not interested in helping with coefficients, i'd love any advice, opinions and/or other help Credits: * swtor_potato for coefficients * KBN for lvl 55 equations (was easy to adjust them for 60) * Kwerty for fixing my alacrity stupidity Updates June 10th - VigilanceJune 4th - First Working Optimizer (1 variable)May 30th - RuffianMay 29th - ScrapperMay 28th - Saboteur working May 27th - Infiltration now worksMay 27th - Tactics Fix + AP added (easy mirror)May 26th - Plasmatech AddedMay 25th - Serenity Working Edited June 10, 2015 by ThomasCool Link to comment Share on other sites More sharing options...
TACeMossie Posted May 23, 2015 Share Posted May 23, 2015 Hey guys, I've been working at an actual DPS simulator since i can't find a recent comprehensive one. you can find it here: https://github.com/tomcool420/swtor-simulator-matlab It is written in MATLAB (cause i'm lazy) and it's still in the early stages of development (I started yesterday really). There is more information on the front page but the basic point is that for now, just the virulence and dirty fighting spec have data for them. I'd like to believe that it works well for those classes and seems to match pretty well to the expected values from my parse (as can be seen in the readme.md on that page). If you are interested in that, I would LOVE some help, if not to code, then to find the coefficients for all the abilities The explanation for the coefficients is explained there but it is tedious to have to search through http://torcommunity.com/potato/3.2c/FullAbilities.xml to find them Thanks ~Lunagazer P.S. even if you are not interested in helping with coefficients, i'd love any advice, opinions and/or other help P.P.S. i was going to post an example here BUT this forum is terrible at handling spaces Have the vanguard + Powertech coefficients (well, the vanguard ones)! Note: As I couldn't be bothered completely pulling apart my code from my old matlab gear optimizer model, you'll get it in the form of: Ability Abreviation = ([Power + Standard Health Bonus] * Coefficient + [Ranged Damage]*Ranged Coefficient) * Discipline bonus's * Armor Penalty if applicable Ability Abreviation *= (1 + (Crit Chance/100 + Surge/100)) Also note I didn't add in susceptible until I got to the final calculations. Oh and standard variation in abilities wasn't included because it was a model and not a simulator PLASMATECH HS = (weapon_damage + Ranged_Bonus)*Armor_Reduc*(Accuracy - 0.1) * 1.05; HS = HS .* (1 + (crit/100 * Surge/100)); SHSk = (Tech_Bonus + STDH) * 1.78 * 1.15 * Armor_Reduc; SHSk = SHSk .* (1 + (techcrit/100 * (Surge+30)/100)); HiB = (1.3089*weapon_damage + (Ranged_Bonus + STDH) * 1.9705)*(1 - (BossArmor * 0.4)/(15200 + (BossArmor * 0.4))) * 1.05; HiB = HiB .* (1 + Surge/100); SC = 0.98 * (Tech_Bonus + STDH+(81.5))*Armor_Reduc*1.05; SC = SC .* (1 + ((techcrit + 175/8)/100 * Surge/100)); IP = (Tech_Bonus + STDH)*1.05; IP = IP .* (1 + (elementcrit/100 * Surge/100)); SHSe = (Tech_Bonus + STDH) * 0.41 * 1.15; SHSe = SHSe .* (1 + (elementcrit/100 * (Surge+30)/100)); IR = (Tech_Bonus + STDH) * 0.41 * 1.05; IR = IR .* (1 + (elementcrit/100 * Surge/100)); IRb = (Tech_Bonus + STDH) * 0.34 * 1.05; IRb = IRb .* (1 + (elementcrit/100 * Surge/100)); FP = (Tech_Bonus + STDH) * 1.74 * 1.05; FP = FP .* (1 + ((100 + 3*elementcrit)/400 * (Surge+30)/100)); PCL = (Tech_Bonus + STDH) * 0.1715 * 1.35; PCL = PCL .* (1 + (elementcrit/100 * Surge/100)); PCN = (Tech_Bonus + STDH) * 0.55 * 1.55 * 1.1; PCN = PCN .* (1 + (elementcrit/100 * (Surge+30)/100)); PT = (Tech_Bonus + STDH) * 0.37 * 1.05; PT = PT .* (1 + (elementcrit/100 * (Surge+30)/100)); TACTICS HiB = (1.31*weapon_damage + 1.97*(Ranged_Bonus+STDH))*(1 - (BossArmor * 0.1)/(15200 + (BossArmor * 0.1))) * 1.15; HiB = HiB .* (1 + (crit/100 * (Surge+30)/100)); CB = 4*0.84*(STDH + Tech_Bonus)*Armor_Reduc*1.15; CB = CB .* (1 + (techcrit/100 * (Surge+30)/100)); SS = 1.77*(Tech_Bonus + STDH)*Armor_Reduc*1.25; SS = SS .* (1 + ((techcrit+5)/100 * (Surge+30)/100)); AP = 2.48*(Tech_Bonus + STDH)*Armor_Reduc*1.15; AP = AP .* (1 + ((techcrit+5)/100 * (Surge+30)/100)); Gut = 0.95 *(Tech_Bonus + STDH)*Armor_Reduc * 1.15; Gut = Gut .* (1 + (techcrit/100 * (Surge+30)/100)); TS = 1.72*(Tech_Bonus + STDH)*Armor_Reduc*1.15; TS = TS .* (1 + (techcrit/100 * (Surge+30)/100)); SC = 0.98*(Tech_Bonus + STDH+(81.5))*Armor_Reduc*1.25; SC = SC .* (1 + ((techcrit + 175/8)/100 * Surge/100)); HS = (weapon_damage + Ranged_Bonus)*Armor_Reduc*(Accuracy - 0.1)*1.10; HS = HS .* (1 + (crit/100 * Surge/100)); Bleed = 0.25*(Tech_Bonus + STDH) * 1.25; Bleed = Bleed .* (1 + (techcrit/100 * (Surge+30)/100)); Link to comment Share on other sites More sharing options...
ThomasCool Posted May 23, 2015 Author Share Posted May 23, 2015 (edited) Yea i was gonna do vanguards next (the tactics coefficients are already up) shoulder cannon was giving me some issues though. P.S. My vanguard gear is kinda crap. could you give me your gear and link a parse? Edited May 23, 2015 by ThomasCool Link to comment Share on other sites More sharing options...
ThomasCool Posted May 23, 2015 Author Share Posted May 23, 2015 (edited) Marksman/Sharpshooter has now been added. Ability Cooldown is now implemented Taking the best result of a high number of iterations reproduces the results from Tosh'oldi'mel (link) to within 2-3K damage although it still runs it a bit fast (as expected). I also do not know the exact stats that he had then (If he reads this, i'd love to have them) Edited May 23, 2015 by ThomasCool Link to comment Share on other sites More sharing options...
KeyboardNinja Posted May 24, 2015 Share Posted May 24, 2015 Marksman/Sharpshooter has now been added. Ability Cooldown is now implemented Taking the best result of a high number of iterations reproduces the results from Tosh'oldi'mel (link) to within 2-3K damage although it still runs it a bit fast (as expected). I also do not know the exact stats that he had then (If he reads this, i'd love to have them) I'll send him your way (he's a guildy). I'm sure he'd be very interested to help. Awesome work, btw! Link to comment Share on other sites More sharing options...
TACeMossie Posted May 24, 2015 Share Posted May 24, 2015 (edited) Yea i was gonna do vanguards next (the tactics coefficients are already up) shoulder cannon was giving me some issues though. P.S. My vanguard gear is kinda crap. could you give me your gear and link a parse? Sure. I'll do 10 parses and link the list to ya. No relics + adrenals for said parses because it makes it more consistent, and if you've got relics/adrenals working fine then no need to incorporate em here. As for gear: 3907 Aim 1638 Power (there is more but I took relics off) 441 Crit Rating 720 Alacrity 760 Accuracy 302 Surge Full 198s with a 204 mainhand Also note that since 3.2 dropped i've had issues with hitting my usual APM - I've been ~2 below it, and that's been hurting my DPS. I might drop an alac piece for an acc piece and get more power augments if testing can prove its better, but until the PTS comes back up no testing will be done. PARSES BEING ADDED AFTER ALL 10 ARE DONE EDIT - Ok I know I said 10, but my stim is running out so I'll drop it to 5. 5 should be good for an average-ish situation right? Edited May 24, 2015 by TACeMossie Link to comment Share on other sites More sharing options...
ThomasCool Posted May 24, 2015 Author Share Posted May 24, 2015 (edited) KBN, thanks. BTW Tosh is one of the few people that seems to have a rotation where the parser doesn't have to wait for Aimed Shot. (standard rotation has 1s lost due to PB only being 2s) - No one notices it due to the clunky way the proc works Kwerty, I got tactics working and have it up on github. I'll test it a bit more against your parses when i get them (there might be something off but i was guesstimating so yea. Edited May 24, 2015 by ThomasCool Link to comment Share on other sites More sharing options...
TACeMossie Posted May 24, 2015 Share Posted May 24, 2015 (edited) Ok here's the 5 parses. The second last one, I forgot to preload Cell Burst, so obviously ignore it. I did experiment around a bit with combining Shoulder Cannon with battle Focus, which is why there is a decent amount of variation despite removing relics + adrenals from the equation Edited May 24, 2015 by TACeMossie Link to comment Share on other sites More sharing options...
ThomasCool Posted May 24, 2015 Author Share Posted May 24, 2015 where are the parses? Link to comment Share on other sites More sharing options...
TACeMossie Posted May 24, 2015 Share Posted May 24, 2015 where are the parses? Forgot to link em Note: Thats no relics, no adrenals, so its a little lower than usual. Just gonna emphasize that I can do more with relics + adrenals, however I'll only be able to get 1-2 for ya. And right now, I'm doing some plasmatech parses because i'm trying to break 5.1k Link to comment Share on other sites More sharing options...
ThomasCool Posted May 24, 2015 Author Share Posted May 24, 2015 It's all good. Thanks. That being said, i'm also interested in the plasma parses when you get them Link to comment Share on other sites More sharing options...
ThomasCool Posted May 24, 2015 Author Share Posted May 24, 2015 (edited) Update to the Tactics Simulations So... I did in fact have a mistake (forgot to take into account the 10% boost to stockstrike from the passive) That being said, here are the results i obtained once i fixed that (with Kwerty's ability usage and stats). Using this parse: Kwerty I first ran the simulation for 2000 iterations with the APM unckecked (basically no lag, either computer or server) and obtained this: Image. The mean is around 4620 DPS and the standard deviation is about 86.5. The best Parse got the following results: STATS: time - 203.832, damage = 1000232.301, DPS = 4907.132, APM = 53.57, Crit = 0.38 As a sanity check, i made sure it was (in theory) possible to get this so i counted the number of abilities on the GCD: 1 Gut, 37 HiB, 15 AP, 24 SS, 49 TS, 9 CD, 12 HS = 147 Activations on the GCD With 8.3% Alacrity that is 147*1.5*(1-0.083)=202.13s (I manually add a very small delay before each HiB to allow the gut dot to tick before the refresh) On Average, it seems like Kwerty looses about 0.237s per HiB cycle (lag, i know) which amounts to around 8.7s on this high end results On the other hand, when i matched the APM to his parse, I get results very similar to his: STATS: time - 222.449, damage = 1013629.050, DPS = 4556.690, APM = 49.09, Crit = 0.35 This is mostly as expected. The histogram is here (again for 2000 iterations). The histogram is completely skewed because the APM is being matched but not damage above the total dummy HP is being accepted so it somewhat truncates the high end while leaving the low end tail alone (maybe i can allow it to go over 1mil when just looking at numbers like this. An additional thing i checked was: what would happen if i added a 0.237s delay before HiB. The best result i got was: STATS: time - 207.203, damage = 1000555.490, DPS = 4828.860, APM = 52.70, Crit = 0.40 But, more interestingly the mean apm was dropped by about 1.5 over the unchecked rotation. In addition, the mean dps was 4489 which is closeish to the average of his linked parses. (Histogram) If you want more information, here are the detailed results for the best parses Results I am actually surprised (And happy) about how well this turned out ~Lunagazer Edited May 24, 2015 by ThomasCool Link to comment Share on other sites More sharing options...
Archaetorrhi Posted May 24, 2015 Share Posted May 24, 2015 (edited) Hey Luna, hope I can help! Especially since you were the one I modeled my lethality parsing after when SWTORBoard was a thing back in the 2.x's. Unfortunately I'm out on vacation with my family this weekend, so I don't have access to my swtor client, since I just have my macbook air with me, not my gaming PC. I don't have the exact stat setup in my brain, but I'm in full 198's except for my mainhand barrel and a bracer armoring. I think my crit is somewhere in the low 300's, and 1 alacrity enhancement. I don't recall the amount of accuracy I have, but I'm just over 100% accuracy with 1 accuracy augment... can't recall the number of enhancements off the top of my head. I just changed over to cunning augs from power augs since I last parsed. Don't have any explanations for these, other than following the gospel of KBN same thing with my rotation, followed his suggestions (doing them when I had the 4pc/2pc illegal mods was super fun and cheesy!) and they worked great so I kept doing them Almost got a 5k doing that, but then double proc-ing got fixed. I'll be back at my apt monday evening, what info/parses would you like when I return? Edited May 24, 2015 by Archaetorrhi Link to comment Share on other sites More sharing options...
ThomasCool Posted May 24, 2015 Author Share Posted May 24, 2015 (edited) For parses, I just need a couple to get an idea of an average. I don't need an exceptional parse. If you can do a couple with adrenal/relics and a couple without that'd be amazing (mostly SS), i'm pretty confident with my DF numbers but if you want i can check those too. Oh and obviously the gear you use for each type Thanks ~Luna Edited May 24, 2015 by ThomasCool Link to comment Share on other sites More sharing options...
Archaetorrhi Posted May 24, 2015 Share Posted May 24, 2015 (edited) Sounds good! I don't really don't DF that well now, I've almost exclusively played sharpie for all of 3.x so far because of the bug that favors sharpie for slingers - I've used it for every single guild kill we've done so far! for whatever reason I just find DF to be annoying this time around, but now that sharpie has been adjusted I should probably re-learn DF again. Do you have a 3.x writeup for it, or know of a good one? I had one but can't find it anymore. Have you done any stat testing for sharpie/DF? I usually just cede that to the superior mathemagicians If you have done testing, do you know the optimal stat layouts for DF/Sharpie? Oh also for clarification when I get started - do you want some with Relics/Adrenals, some without, and some with one or the other? or just the first two? Edited May 24, 2015 by Archaetorrhi Link to comment Share on other sites More sharing options...
ThomasCool Posted May 24, 2015 Author Share Posted May 24, 2015 For DF right now i'm using the old 4pc new 2pc. Sadly we don't get to raid as much as i want so i'm not full 198s yet but i've gotten some pretty damn good results with it. the new 6pc works also with either 3 WS or 2WS rotation (for the 2WS rotation look at lord_of_stone's post from a while back. I've simulated both the 2WS with old set bonus and 3WS with new and honestly it's super close. Right now, i'm still more focused on actually getting the simulations to match up with parses to prove that they are valid-ish. The 2WS is much much more flexible in combat. Honestly in combat i usually go back and forth between them. As for the parses: I'd like a couple with as high as possible numbers (so relic + adrenals) and a couple more constant parses (no adrenals or relic) Thanks ~Luna Link to comment Share on other sites More sharing options...
TACeMossie Posted May 25, 2015 Share Posted May 25, 2015 Got another bit of feedback for ya luna, based off those sims you ran. The APM was looking a little high which is why I started looking. You are currently handling alacrity wrong! Alacrity isn't a multiplication of (1-alacrity) for cooldowns + the GCD, but rather it is a division of (1+alacrity). The easiest way to see this is beserk on a combat sentinel. Master Strike goes from 3 sec channel / 18 sec cooldown with no alacrity to 2.25 sec channel / 13.53 sec cooldown with 33% alacrity. If alacrity worked the way you currently have it coded, it would be a 2.01 second channel and a cooldown of 12.06 seconds. Also explains why you had 12 hammer shots in your best parse whereas I found that I'd have 10 if I didn't make silly mistakes like using HiB->TS when that would cap me on energy whereas TS->HIB would not, since you got the resource regen part of alacrity right. Link to comment Share on other sites More sharing options...
ThomasCool Posted May 25, 2015 Author Share Posted May 25, 2015 (edited) Eek thank you for catching that. Now i need to go fix that. Energy regen is for the next version lol. Edited May 25, 2015 by ThomasCool Link to comment Share on other sites More sharing options...
ThomasCool Posted May 25, 2015 Author Share Posted May 25, 2015 So Kwerty, thanks for catching that. After applying that fix the APM lines up pretty awesomely... I'll get some pretty plots up soon again Link to comment Share on other sites More sharing options...
Archaetorrhi Posted May 25, 2015 Share Posted May 25, 2015 Nice work! I'll be back later today probably around 5 or 6, if I'm not too exhausted I'll parse some then (hopefully I'm not too family-hungover to be effective, these babies were too frakkin' loud! ), if not, I'll take care of it tomorrow Link to comment Share on other sites More sharing options...
ThomasCool Posted May 25, 2015 Author Share Posted May 25, 2015 It's cool man, no rush. I just finished refactoring the code (it was already turning into a mess, and have almost finished the serenity one ... if only force technique could hit the correct amount.... ~Luna Link to comment Share on other sites More sharing options...
MackTK Posted May 25, 2015 Share Posted May 25, 2015 (edited) If you need more Powertech parses, I can help, if you want. Full 198 except one armoring and 204 MH. Cheers! Edited May 25, 2015 by MackTK Link to comment Share on other sites More sharing options...
ThomasCool Posted May 25, 2015 Author Share Posted May 25, 2015 If you want, that'd be great i will need more information about gear though (all the ratings - crit, surge, ala, tech bonus, ranged bonus) P.S. updated main post Link to comment Share on other sites More sharing options...
Cuiwe Posted May 25, 2015 Share Posted May 25, 2015 Got another bit of feedback for ya luna, based off those sims you ran. The APM was looking a little high which is why I started looking. You are currently handling alacrity wrong! Alacrity isn't a multiplication of (1-alacrity) for cooldowns + the GCD, but rather it is a division of (1+alacrity). The easiest way to see this is beserk on a combat sentinel. Master Strike goes from 3 sec channel / 18 sec cooldown with no alacrity to 2.25 sec channel / 13.53 sec cooldown with 33% alacrity. If alacrity worked the way you currently have it coded, it would be a 2.01 second channel and a cooldown of 12.06 seconds. Also explains why you had 12 hammer shots in your best parse whereas I found that I'd have 10 if I didn't make silly mistakes like using HiB->TS when that would cap me on energy whereas TS->HIB would not, since you got the resource regen part of alacrity right. Of course, Bioware decides to use campy logic. Why would I expect anything different? Anyhow, nice job OP! Keep whacking it! We'll all thank you later Link to comment Share on other sites More sharing options...
TACeMossie Posted May 26, 2015 Share Posted May 26, 2015 Of course, Bioware decides to use campy logic. Why would I expect anything different? Anyhow, nice job OP! Keep whacking it! We'll all thank you later How is that campy logic? Doing it that way means that 1% alacrity = 1% more DPS. If they did it so its times (1 - Alac%), then 100% alacrity would be infinite DPS. But the way they did it, 100% alacrity is a 100% DPS boost. Link to comment Share on other sites More sharing options...
Recommended Posts