Arcanaville

Arcanaville
  • Posts

    10683
  • Joined

  1. Quote:
    Originally Posted by Arbegla View Post
    Alrighty, got the build (before you posted, i was inputting it in by hand)

    Now, when you say 'better' do you mean 'maintain everything exactly + some' or better performing?

    Depending on what you mean, depends on what could be done. 48% is massive overkill on defense for an SR, with 95% DDR (which your build has) so did you want that much of a cushion, or could those numbers be lowered?

    You slotted alot of +hps, and +regen, which on an SR i can see being really useful, especially with MA not having much in the form of AoE to take down mass mobs before they can take you down. Is there a ball park you want, or just 'more of the same' of what you have now?
    Good question. I know you can make radically different builds that would be much better, particularly offensively. I don't have a hard and fast rule here, but I'm looking for a build that is a zero-compromise defensive build that *also* has good if not the absolute best offense.

    Let me switch to Santorican's build for an example. Defensively it has slightly less regen (378% vs 388%) and slightly less health (142.5% vs 145.5%). I'd consider that in the ball park for comparison purposes if I get something worthwhile out of it. What I get is primarily slightly higher recovery (3.88/s vs 3.49/s) and somewhat lower toggle burn rate (1.01/s vs 1.12/s). The net result is higher net endurance for offense: 2.87/s vs 2.37/s. So from a marathon perspective, this is definitely a better build.

    However, it also really skirts the line on defense: 45.2/45.0/45.3 (m/r/a). that's low enough that any significant amount of debuff will bring this build off the soft cap, particularly for ranged which makes it a significantly weaker build in terms of +DEF. It also has less damage buff (+11.5% vs +17%) and slightly lower damage slotting for three attacks (Storm Kick, Cobra Strike, and Dragon's tail although its negligable in the case of CS). It does have significantly higher recharge - 82.5% vs 57.5% but I don't know at a glance if that will make up for the damage loss (which would require an attack chain analysis).

    Overall, I'm going to have to say that in terms of endurance management, its a superior build, but its also defensively weaker and probably not offensively stronger (the recharge edge probably washes against the lower damage strengths although that's a guess). I personally wouldn't consider it a better build overall, although that's a qualitative judgment.

    What I'm looking for is something with at least some defensive cushion against debuffs (say, 46% to all or better, although if someone finds a 45.93% build I'm not going to quibble if it delivers in other areas), has a lot of health and regen (but that's negotiable) has at least the normal nominal bells and whistles you'd expect from an MA/SR build (meaning: at least *some* recharge buff), and doesn't sacrifice too much offense from the build I posted.

    Bonus points if you can do it while keeping most or all of the primary and secondary powers I took, although again that's somewhat negotiable. Losing Dragon's tail or several single target attacks completely would have to be justified with something extraordinary in my opinion, though, because part of the intent of this build was to see if I could build a less laser-focused build that only took like three attacks and had a ton of recharge to compensate, which is how a lot of offensively focused builds are constructed. This is something you could actually level up, gaining performance with every level of play.

    It also was intended to demonstrate what inherent fitness will buy you, although that's a secondary issue to whether the build can be improved upon. Plus, I'm genuinely curious to know what the Scrapper, err, min/max community can do here. I think I did a pretty good job on this build, but there's a lot of min/maxers out there that are at least as good as I am in optimizing builds, and I want to see if there are tricks that can be played here that I just haven't thought of yet.
  2. Quote:
    Originally Posted by Arbegla View Post
    Hey arcanaville, Your data link isn't working for me, i can't pull your build up. any chance you could post the data chunk?
    Ask and ye shall receive. Note that I built this in v1.8 with Leandro's patch. It *seems* to import correctly into 1.8.1 except the inherent powers don't display. The totals seem correct, you just literally can't see the inherent fitness powers in the slotting screen (they seem to show up in the active sets display when showing active invention sets).


    Code:
    | Copy & Paste this data into Mids' Hero Designer to view the build |
    |-------------------------------------------------------------------|
    |MxDz;1480;747;1494;HEX;|
    |78DA8D535B53525114DE878B887215114509F08637407BEA32D55466616208E443A|
    |9CC11B772EA04CC014BEBA51FD053CD644DF998FD86A61F47EBB2C1667AE98CAE6F|
    |AFB5BFB5BEBD167BE74F563D42BCBF2334DF7D536FB52AA5AAA5379BD2726DEAED6|
    |34B37BDDB46C394ED44F1F8D5BE295D4288F12EA59297A69499BC6EB50DDDACDCB5|
    |DAAD786F6F551ECA7A4B664AC7E815E5A1294F642B98ABD7A425EBED4C77E129341|
    |A666643EA4DA37EE425272F0F8CAA5197ECAD1947B536ECF9BBC40369B56A4633F8|
    |A0695433F71A07A795BCDE6A4BEB74140E370FFF9FF194F4759CE2106045D88E186|
    |A040E83E10541DF4B823C666994E510EB760C0DAD110CE7181E122C3D26D804BAC6|
    |74BBC6F451A68F323DCAF433E0D9D561ECCF0052A2EF3941FF0EC32EC1C01E4385E|
    |0096439B9BACD69D33094E8D04E4223EF0B10B8CD8ECDF5D3864A9E1F0C170405D8|
    |757305E15EA40EBF4268501D6590E7E2E381F87812019E44E011404C0CE5084620C|
    |BAB8EE2ED27F16927C16C5843FA1610FC8AE067C288838109DF801054BA41D69D65|
    |C159964FB16E8A7553AC1B81AC106789D01C118A100AAB9EC2690AC520146196167|
    |94A72D912C177D81953AA63AF891C7D433071C2F096E0CA3B865B34B612648DAB66|
    |C687A9D0952041829B890321A60831165C60C18532C13910E24A37CEDD26B9DB247|
    |79BE46EA7B9DB69EEB60C5993EA3A4D06A8D014CB4F8518585E03DE8C9ACA4C940A|
    |D92134A752E74634AC369FA5BB371F61EF2A790EE02DAA932F72ED2556CA72ED32D|
    |032AA762649B52FBC422CAB9C65EE76658B819B9E70F4DE1AFCC12736FE89141CEA|
    |614144A348DCD17B6B1D77A0F740FEE7735E3E5321F80EF4FD1DE29BE2BA0C3985F|
    |A956ED330D27CEEF43ADDD06C8E60659B82FD975936F191EEC3D22782F419C0B0F8|
    |E5E912DCC501B065340530DA36AE76D0ECA2BB872B1D57FB68AAE8767E7BBA93F15|
    |FC3015C477303CD4D34611884F8804C17BED241341E345E343E347E340134213451|
    |34E7683A7F00AF5FE7DA|
    |-------------------------------------------------------------------|
  3. I just posted a build for fun in the I19 discussion thread as an example of inherent fitness leveraging. Since I don't often post builds, I wouldn't want to cheat the number-crunching community of a chance to tear apart one of my min/max attempts. So I'm reposting here, so the I19 thread doesn't become a scrapper-dominated bloodfest.

    My question to you all is: what's wrong with this build? How could it be improved? Is it really something that benefits from inherent fitness, or is there a way to replicate it that I haven't found. And here's a real conundrum: there's actually a redundant set bonus in there, something over the rule of 5. Oddly, whenever I try to shuffle things around to get rid of that redundant bonus, I tend to make the build *worse* in some way. Very curious.


    Repost follows:

    Just for giggles, I tried to see what I could come up with in terms of an inherent fitness rebuild of my MA/SR scrapper. This is just for fun, and I'm not saying the results are going to be typical. On the other hand, I don't think this is necessarily the best anyone's going to be able to do either under inherent fitness. This build takes every MA/SR power except thunder kick, challenge, and elude, burns a power choice on travel (as opposed to just Ninja Running everywhere) and still ends up pretty tough. More importantly, its not trivial to replicate without inherent fitness due to the power choice requirements: losing three power choices means losing fighting, or losing MA attacks. You could eliminate EC, DT, and maybe Super Jump and then rebuild as a more recharge-heavy build (you'd need more recharge to make consistently full attack chains and also to boost single target to compensate for the lack of the crit-enhanced combo of EC->DT). But I think this build is a product of inherent fitness in large part.

    Reading off the totals:

    >48% defense to melee/ranged/AoE
    ~16.5% defense to s/l/f/c/e/n
    ~14.5% defense to psi
    19.9% resistance smash/lethal
    3% resistance f/c/t/p
    6.8% resistance energy
    9.9% resistance negative

    388% regen (31.5 h/s at level 50)
    145.5% health (1948 at level 50) [with accolades]
    190% recovery (3.49eps)
    end use: 1.12eps (with FF, FS, Ev, CJ, Tough, and Weave all running)

    Not bad. It has some PvPIOs in it (in Focused Fighting and Focused Senses of all places, but also a couple in Tough) but that's mostly extravagance for the +3% procs and a few more +health and +dmg bonuses. They could be replaced with LotG without seriously altering the build (without the Glad +3% I would shift the slot to Weave for some extra defense insurance, although I would still be above 45% to all positions either way - honestly, that's the one I would use merits to buy above all others if I was going to implement this build; the others are entirely optional).

    Interestingly, the strategy of this build is not to steal slots from fitness, but rather to steal slots from elsewhere to leverage the additional power choices. Which I think will happen as often as, if not more often than, people pull slots from stamina or health themselves. It still means that extra pool choice and four more power choices are still very meaningful.

    I'm curious to know if anyone can recreate this build more or less without inherent fitness. I couldn't, but then again I'm not the worlds most experienced Mids jockey.

    Also, I rarely post builds, so now's everyone's chance to rip my min/max skillz a new one by posting a far superior build that does more or less the same things. Hit me with your best shot, people.




    (Note: the build uses version 1.8 with the inherent fitness database hacks if you want to load it)

    Hero Plan by Mids' Hero Designer 1.803
    http://www.cohplanner.com/

    Click this DataLink to open the build!

    Violet Rumble: Level 50 Natural Scrapper
    Primary Power Set: Martial Arts
    Secondary Power Set: Super Reflexes
    Power Pool: Leaping
    Power Pool: Medicine
    Power Pool: Fighting
    Ancillary Pool: Body Mastery

    Hero Profile:
    Level 1: Storm Kick -- Mako-Acc/Dmg(A), Mako-Dmg/EndRdx(3), Mako-Dmg/Rchg(3), Mako-Acc/EndRdx/Rchg(5), Mako-Acc/Dmg/EndRdx/Rchg(5), Mako-Dam%(7)
    Level 1: Focused Fighting -- SW-Def(A), SW-Def/EndRdx(19), SW-Def/EndRdx/Rchg(21), SW-Def/Rchg(21), SW-ResDam/Re TP(45)
    Level 2: Focused Senses -- SW-Def(A), SW-Def/EndRdx(25), SW-Def/EndRdx/Rchg(25), SW-Def/Rchg(27)
    Level 4: Cobra Strike -- T'Death-Acc/Dmg(A), T'Death-Dmg/EndRdx(7), T'Death-Dmg/Rchg(9), T'Death-Acc/Dmg/EndRdx(9), T'Death-Dmg/EndRdx/Rchg(11), T'Death-Dam%(11)
    Level 6: Agile -- S'dpty-Def(A), S'dpty-Def/Rchg(33), S'dpty-Def/EndRdx/Rchg(33)
    Level 8: Focus Chi -- GSFC-Rchg/EndRdx(A), GSFC-ToHit/Rchg(13), GSFC-ToHit/Rchg/EndRdx(13)
    Level 10: Practiced Brawler -- RechRdx-I(A)
    Level 12: Crane Kick -- Mako-Acc/Dmg(A), Mako-Dmg/Rchg(15), Mako-Acc/Dmg/EndRdx/Rchg(15), Mako-Dam%(17), P'ngS'Fest-Acc/Dmg(17), P'ngS'Fest-Dmg/EndRdx(19)
    Level 14: Combat Jumping -- GftotA-Def(A), GftotA-Def/Rchg(37), LkGmblr-Rchg+(39)
    Level 16: Dodge -- GftotA-Def(A), GftotA-Def/EndRdx(23), LkGmblr-Rchg+(23)
    Level 18: Crippling Axe Kick -- Mako-Acc/Dmg(A), Mako-Acc/Dmg/EndRdx/Rchg(39), Mako-Dmg/Rchg(39), Mako-Dam%(40), P'ngS'Fest-Acc/Dmg(40), P'ngS'Fest-Dmg/EndRdx(40)
    Level 20: Super Jump -- Jump-I(A)
    Level 22: Quickness -- Run-I(A)
    Level 24: Aid Other -- Numna-Heal(A), Numna-Heal/Rchg(48)
    Level 26: Dragon's Tail -- Sciroc-Acc/Dmg(A), Sciroc-Dmg/EndRdx(27), Sciroc-Dmg/Rchg(29), Sciroc-Acc/Dmg/EndRdx(29), Sciroc-Dam%(31), Armgdn-Dam%(31)
    Level 28: Lucky -- LkGmblr-Def(A), LkGmblr-Def/Rchg(31), LkGmblr-Rchg+(33)
    Level 30: Aid Self -- Numna-Heal(A), Numna-Heal/Rchg(43), Numna-Heal/EndRdx/Rchg(43)
    Level 32: Eagles Claw -- Mako-Acc/Dmg(A), Mako-Acc/Dmg/EndRdx/Rchg(34), Mako-Dmg/Rchg(34), Mako-Dam%(34), P'ngS'Fest-Acc/Dmg(37), P'ngS'Fest-Dmg/EndRdx(37)
    Level 35: Evasion -- LkGmblr-Def/EndRdx(A), LkGmblr-Def(36), LkGmblr-Def/EndRdx/Rchg(36), LkGmblr-Rchg+(36)
    Level 38: Boxing -- Acc-I(A)
    Level 41: Tough -- S'fstPrt-ResDam/EndRdx(A), GA-ResDam(42), S'fstPrt-ResDam/Def+(42), GA-3defTpProc(42)
    Level 44: Weave -- LkGmblr-Def(A), LkGmblr-Def/EndRdx(45), LkGmblr-Rchg+(48)
    Level 47: Focused Accuracy -- EndRdx-I(A)
    Level 49: Physical Perfection -- Numna-Heal(A), Numna-Heal/EndRdx(50), Numna-Heal/Rchg(50)
    ------------
    Level 1: Brawl -- Empty(A)
    Level 1: Sprint -- Empty(A)
    Level 2: Rest -- Empty(A)
    Level 1: Critical Hit
    Level 4: Ninja Run
    Level 1: Swift -- Run-I(A)
    Level 1: Hurdle -- Jump-I(A)
    Level 1: Health -- Numna-Heal(A), RgnTis-Regen+(43), Numna-Heal/Rchg(46), Mrcl-Rcvry+(46), Mrcl-Heal(48), Numna-Regen/Rcvry+(50)
    Level 1: Stamina -- P'Shift-EndMod(A), P'Shift-EndMod/Rchg(45), P'Shift-End%(46)[/QUOTE]
  4. Quote:
    Originally Posted by UberGuy View Post
    Is it even possible for it to be based off of 75%? I didn't think that number was an actual attribute. I thought our "base" hit chance was a lookup based on our foe's relative level, and the 75% display in the combat monitor (valid only for +0 foes) was just a simplified display value.
    Nope, we have an intrinsic base tohit. I believe its adjusted up or down based on combat modifier tables. However, since this intrinsic tohit is *always* 75% for players (even in PvP: its modified by a PvP combat modifier downward to 50%) I don't see what the point of basing a tohit buff off of player base tohit would be: it would always be 0.75x the numerical value of the buff. You might as well just set it to that value and call it a day.

    When we say players have base 75% chance to hit but critters have 50%, this is the intrinsic number that refers to (and now there are those 64% critters running around).
  5. Quote:
    Originally Posted by AzureSkyCiel View Post
    In response to Aracanaville, I still would like to propose that perhaps the passives maybe have reduced scaling resistance, but a higher base resistance.
    This CAN work out conceptually since one of the ideas of dodging is that even a connecting hit won't land solidly on you, instead a fatal hit becomes a glancing blow.
    But then I'm sure both you, and the devs have considered this and it wouldn't be nearly so easy.
    Its less a question of how, and more a question of why. If you really want to do something, most of the time you can conceptually justify it. The more you want it, the more hoops you'll be willing to jump through to make that conceptual justification work.

    I should point out that the scaling resistances are weaker than they initially were designed to be. In CoV beta, they were configured to be 0-25, not 0-20. They were reduced to their current strength practically the night before CoV and I6 go live.

    The biggest problem with the glancing blow concept is that once you decide "dodging" is correctly represented by some defense and some resistance, and you also decide that "damage resistance" is also correctly represented by some defense and some resistance, you've basically blended the two together. There's now basically no real distinction between the two. "Dodging" and "Resisting" become meaningless labels that have no fundamental gameplay distinction.

    Its easy to make a bunch of defense/resistance/+health/regen sets in which every set has some of everything and the only difference is small numerical differences and the occasional gimmick power (i.e. invincibility). But to me, that's a waste of time. You protect mechanical diversity, not labels. "Super Reflexes" is entitled to nothing. Its two words with no rights. The concept of a protection set based primarily around avoiding getting hit *is* something worth protecting. You can make compromises where they are absolutely necessary (i.e. the scaling resistances) but you should never abandon the concept just because players want to play a set called "Super Reflexes" but have a completely different idea of what that set should have. Which is often "a little of everything."

    If you want to play the "glancing blow guy" there's no reason you shouldn't take Invuln, slot the heck out of Invincibility, take tough hide and weave, and play it conceptually as that. In fact, its an even better analog than SR would be, because the glancing blow concept obviously makes more sense for physical damage such as smashing attacks and lethal edge and projectile attacks, and less sense with things like cold attacks and negative energy attacks, and makes virtually no sense with things like psionic attacks. It matches Invuln almost perfectly.
  6. Quote:
    Originally Posted by Bill Z Bubba View Post
    Should SR be altered? Yes, it should.

    Same power order as brutes? Yea, I think that would help.

    Given the same taunt aura as brute evasion? I want it for MY SR scrapper, but the answer is no. Brutes get higher HP than scrappers. Their inherent depends on being attacked. There's a lot of people that don't want their SR scrappers to suddenly be taking on a lot more aggro. I've been bugging Castle about it since it was added to brute evasion. It ain't happenin for scrappers even IF anything else gets changed.
    I would have preferred the devs turn Focused Senses into a Ranged/AoE toggle, left the order alone, and convert Evasion into something else. While that is technically a cottage rule violation, I would argue that the spirit of the cottage rule is only bruised here, since who the heck takes Evasion but not Focused Senses? Almost all legacy SR scrappers would basically have the same defenses after this change (the only ones that didn't would be SR scrappers that took Focused Fighting and Evasion but not Focused Senses, which is practically building your character with dice).

    The new thing would have some sort of something for SR scrappers and the same something plus taunt for Brutes.


    Quote:
    SR proliferation to tanks? Yes, it should happen. Straight port from brute SR. Problems with it be damned.
    Well, there's a couple of problems I wouldn't look the other way on. First, its difficult to have gapless mez protection with SR without SO recharge slotting, which is less of a problem for SR scrappers but more of a problem for SR tankers: I would reduce the recharge of PB for SR tankers to give them continuous protection as an archetypal requirement.

    Second, the lack of +Res and +health is a dev-acknowledged problem. When they re-balanced Ice tankers they all but acknowledged that having no resistances at all creates a burst damage problem for a tanker that is acceptable for scrappers but has to be addressed for tankers as an archetypal necessity. Ice addressed this with -recharge and -dmg from cold effects. I don't know if you can pull off the same thing conceptually with SR. So I would consider normalizing the SR scaling passive resistances, so that instead of going from zero to twenty percent resistance per passive, they would go from zero to about 25% resistance per passive (technically, it should be 26.67% but whatever), and start from 75% health. Those resistances aren't coded to scale with archetype modifiers, so basically I'm just doing so manually with a small tweak. That would probably help with alpha strike.

    Of course, the problem here is that any SR tanker with a brain would immediately take tough and weave and go basically perma-elude from that point on. Straight-ported to Tankers SR defenses go from slotted 30.4% to slotted 40.56%. That's probably slightly too high, but the problem is that tweaking it downward is mostly irrelevant: slotted Weave is going to be +7.8% defense for Tankers so even if tanker SR was reduced to just 37.2% Weave still gets you to the soft-cap immediately. And if you assume the tanker could get Combat Jumping trivially, then that means the tanker can soft cap even 33.3% defense from SR, which is trivially higher than what SR puts out now. So you'd basically have to accept soft-capped SR tankers with scaling resistances (but some burst vulnerability) running around by the 20s. Not completely game-breaking, but definitely rubbing up against the line.

    And its debatable what the Evasion replacement should be. Definitely nothing with regeneration or healing, because that would then make the powerset completely overpowered too early in the game.

    The problem is that tanking is best suited to resistive-like effects (incuding +health) to survive bursts of damage and alpha strikes. That's hard to work around with +DEF or +regen, which is why there are no SR tankers or Regen tankers honestly. The devs probably don't want the hassle of trying to balance them. It took them forever just to get them reasonably balanced for Scrappers.
  7. One thing I noticed about that I18 beta guide is that it implies all ten Incarnate slots will function the same way as the Alpha slot, which is to say provide enhancement-like (or alternatively invention set bonus-like) buffs. However, the I18 preview only showed the Alpha slot, and there's no evidence the other nine slots will work the same way (in fact, its a poorly kept secret that the other slots *won't* work that way, but provide other completely different kinds of benefits).
  8. Quote:
    Originally Posted by DrMike2000 View Post
    I think the Kismet gives you 6% of your base To Hit value, by the way, so it amounts to +4% To Hit (6% of 75%) rather than +6%.
    That's what it appeared to do when I slotted it. My "Base Chance to Hit" (?) in Combat Attributes went from 75% to 79% rather than to 81% like I expected.

    But, whatever, that doesn't change the way you use it.
    Screencap it if it happens again: that's a bug. Kismet +Acc is designed to provide exactly +0.06 tohit; i.e. +6%. Its supposed to ignore strength, resistance, combat modifiers, and isn't designed to obey archetype modifiers or tables of any kind.
  9. Quote:
    Originally Posted by Savos View Post
    Arcanaville, where did you determine the 30 frames per second value?
    I know for a fact that animations run on a 30 frame per second clock, and I've been explicitly told by the devs that for at least some things a 30/sec clock is the clock quantum. I believe the game servers support no clock faster than that (which doesn't mean they don't support events that take less time, just that it only processes such events at 30 per second maximum).

    Other measurements, including the ArcanaTime ones, strongly suggested a 30/sec clock and a 8/sec clock, and pohsyb confirmed that both kinds of clocks are used in event processing, although he didn't tell me specifically the entire details of the game processing loop.

    How fast the servers update the clients with network packets is probably less relevant to when things can happen, because within those updates appear to be timing information that tells the client when things *should* happen, which might be some time after the client receives the packet.
  10. Quote:
    Originally Posted by Biospark View Post
    Yeah my gut tells me that 20 dps sounds like a low figure. But we are talking even con minions here. LoL
    Most people wouldn't believe this, but in I5 (post GDN) three even Malta minions using nothing but that melee brawl attack could kill an SR scrapper with fully slotted defenses if you parked in front of them on a time scale of about a minute or two. You'd think a scrapper would face zero threat from three even minions at level 50, but in fact its the fact that offenses defeats them so fast that is as much, if not more responsible for scrapper survivability under those circumstances (that, and mez protection).

    They aren't a threat because we kill them fast, and because there's enough rest in between spawns even when you're rushing through a mission to make what little damage they deal irrelevant. But their damage level is not negligible. We're just used to scrappers facing off against so much higher odds, it seems counter-intuitive.
  11. Quote:
    Originally Posted by Biospark View Post
    EDIT: Ok I found it. Could have sworn you had more info explaining how you arrived at 4.47%/sec for three minions. Is it safe to assume this value is entirely related to scrapper hp values?
    Yeah, its based on an estimate of about 20 dps for a standard minion at level 50. That itself was based on a number of tests of various minions to try to come up with an average, and the average settled somewhere close to the damage output of a malta swinging punches in melee range, which ended up being very roughly 20dps before accuracy is counted (~100 damage attacks with 5 second cycle time) at level 50. Since then, however, critter groups have appeared that have higher damage output than that, in particular Cimerorans, Vanguard, and Praetorians, that likely shift the average upward. And some critters, like Carnies, are likely shooting slightly faster in melee range than they used to, because of a circa I17 change to default AI that makes them more likely to use all their attacks rather than sit on some for a few seconds at a time. At high levels, especially at level 50, the average might be as high as 25-30dps now. I would need to investigate further to come up with a new average, but that will have to wait a bit until I finish a different project I'm working on now.
  12. Quote:
    Originally Posted by Biospark View Post
    P.S. I take my statement back. It looks like there will definitely be a distinctive slope change (plataeu) when you graph each time-interval as its own point. The following are two representations of a hero on baseline regen 0.42hps shown. The first chart shows Y as DPS (%total health/sec) and X being the time to defeat in 10 sec intervals. As you approach 180 secs, you see that it is getting close to the immortality value for baseline regen, while at the front end it would approach 100% damage/sec for defeat (pretty obvious that if you sustain 100% of your hps before even the first regen tick, you will be defeated).

    http://img43.imageshack.us/img43/5013/rxclp5.png

    http://img829.imageshack.us/img829/3572/rxclp6.png

    The second chart is just a representation of the change in each interval relative to the previous point.
    The limiting case is to look at individual attacks. To survive a fight, at every moment in time you need to have two things:

    1. Enough health + damage mitigation to survive the next attack that lands.

    2. Enough recovery to get enough health back to make #1 true when the next attack lands.

    That's the ultimate interplay between mitigation (which is really just a way to amplify the value of your health bar, which is the true "burst damage" buffer) and recovery. All of our other calculations are ways to simplify that into approximations. We could look at a fight with one spawn as in effect being approximated by having all the damage of that fight happening at the very beginning, followed by a period of recovery that lasts as long as the fight lasts, to see if you would have enough health at the end of the fight to fight another one, or if you would need to rest (which would, in effect, make the fight effectively longer even though you aren't technically attacking during the last part). This saves us from looking at individual swings.

    Or we could look at a fight as all the damage being averaged out over its duration along with recovery. If we *know* we're looking at cases where the burst damage won't kill the target we're looking at, this is a safe assumption. If we're not sure because we're looking at high damage cases where that assumption is unsafe, then this may generate false results. Conversely, the assumption above is far harsher than reality.

    One method to attempt to split the difference is to assume the incoming damage is a triangle, high to start and drops to zero during the fight - presumably as you defeat things. It approximates reality a little better if you're looking at single-target dominated situations. Conversely, in heavy AoE situations, the average damage case might actually reflect reality better.

    Bottom line, though, is that combat is about taking damage without dying, and then recovering that damage so we can take another. The "perfect" mathematical solution is to look at individual attacks and healing pulses in something like a Monte Carlo Markov. Too much work for most people. I constructed one back when another poster suggested it, but it ended up being not worth it for the computational head ache. The alternative is to look for simpler proxies. Short time window + Long time window does a decent job of that, and absolute Monte Carlo simulations back them up, and thus its what I use.

    The curves you describe are, however, the true survivability "value" of the mitigation being discussed. High mitigation sets of comparable value will drop below a mitigation set to the right of your curve, but jump higher to the left of your curve. Its kind of a hard thing to communicate in text though, and its hard to come up with an intuitive way of judging two such curves superimposed to decide which one is the "better" one. That gets into the question of what player(s) think are important.

    From a balance perspective, those curves usually tell you less who is stronger than who, and more who is not unambiguously better than who. If one curve is always higher than another at all points its obviously better. If its lower always its obviously worse. If they cross somewhere in the middle, its more ambiguous, and suggests balancing them requires a more qualitative approach.
  13. Quote:
    Originally Posted by StratoNexus View Post
    OK, with fresh eyes, I still think the above is silly.
    Not only is it silly, its inexplicable. Everyone who plays regen, even people who think it sucks, knows time is on regen's side. Its the basis of the phrase "you look good until you're dead" that regen has been identified with since practically release.

    To put a more specific numerical spin on that statement, normalized recovery is the key here. If the mitigation set has 50% mitigation and 100% recovery and the recovery set has 300% recovery, its recovery will, point for point, be better. Conversely, if the recovery set has 180% recovery, the mitigation set's recovery will be, point for point, better.

    As regen's regeneration + healing recovery rate with just recon, FH, and Int hovers around 800%, it basically always wins that race against other melee defense sets at standard SO slotting levels. The only time it loses that fight is when you start to consider things with slotted health and above 78% mitigation, like soft-capped SR scrappers with slotted health or aid self.

    In order for the numbers to have meaning, so your analyses don't go flying off the rails, your analysis has to be foundationally solid and you have to be able to make contact with reality, which means it helps to actually know what happens in the game so you know what reality actually is. Its usually pretty obvious when an analysis lacks one or the other. Self-contradiction is usually a smoking gun for both.
  14. Just a short update. I've started a new batch of tests, and while they aren't complete yet one thing that seems to be suggested by the data is that, as you might expect but this isn't necessarily obvious, recharge may be bound to the animation clock. Meaning: its possible you may only be able to reduce the recharge of a power in 0.33s increments (approximately). Plus or minus about 5 milliseconds - and that plus or minus seems to be gaussian jitter, not random error - timing measurements cluster around those staircases. Also: the server seems to be capable of making one or two frame errors, and then "catching up" on the next attack. This ability to lag one power than make up the time on the next power is part of why ArcanaTime seems to work: individual powers don't always consistently clock exactly according to AT predictions, but sequences of powers tend to follow the predictions more closely than any one power does, because offsets in one power are evened out in the very next power very consistently.

    For the numerically inclined, this is what I mean:

    Code:
    1460    1117    -4    2    -2
    1456    1085    -4    1    -3
    1492    1118    -3    2    -1
    1526    1087    -2    1    -1
    1458    1120    -4    2    -2
    1526    1048    -2    0    -2
    1493    1084    -3    1    -2
    1492    1084    -3    1    -2
    1523    1048    -2    0    -2
    1496    1119    -3    2    -1
    1457    1082    -4    1    -3
    1524    1086    -2    1    -1
    1491    1087    -3    1    -2
    1493    1089    -3    1    -2
    1492    1089    -3    1    -2
    1491    1086    -3    1    -2
    1460    1121    -4    2    -2
    1457    1120    -4    2    -2
    1462    1255    -4    6    2
    1460    1113    -4    2    -2
    1455    1083    -4    1    -3
    1491    1090    -3    1    -2
    1494    1087    -3    1    -2
    1459    1115    -4    2    -2
    1524    1048    -2    0    -2
    1524    1056    -2    0    -2
    1460    1115    -4    2    -2
    1457    1086    -4    1    -3
    1492    1083    -3    1    -2
    1526    1053    -2    0    -2
    1492    1089    -3    1    -2
    1457    1118    -4    2    -2
    1523    1050    -2    0    -2
    That's 33 measurements of the timing duration of Slash followed by Swipe in milliseconds. Notice that when Swipe is low, Slash seems high, relative to their predicted times (1584ms and 1056ms respectively) In fact, the columns to the right are basically the approximate number of animation frames high or low of the predicted mark each measurement is, and the sum of the two. Notice the preponderance of "-2s" in the far right column. If the measurement errors were random, those numbers would be random. Instead, the majority of the time they just happen to sum out to -2 (24 out of 33 are -2, and one is an obvious server glitch being way out at +2). Clearly, something is happening here where the server is, deliberately or coincidentally by design, trying to keep the attack chain agreeing with ArcanaTime predictions.

    That's important to note for recharge testing, because it suggests that its *possible* that the amount of recharge you need may be dependent on *where* in the attack chain the power is, and that might force us to come up with safety estimates that will always work, rather than being able to be 100% certain what the absolute minimum will be situationally (at least, without doing more work than most people will want to do).


    Ok, so that wasn't all that short. For one of my testing posts, its relatively short.


    PS: Now you know why I generally tend to go off for a couple months to test something and come back with just one article that explains it all when I'm done. Posting as I go along and describing everything I see as I investigate is extremely longish, and probably extremely boring.
  15. Quote:
    Originally Posted by Spruce View Post
    But that's not consistent with what I was describing at all. In high-network-lag situations, there is a delay between pressing a power button and receiving a beep. What explanation is there for this other than that the client tells the server, "I want to activate power X", waits for a response, and then decides whether to play the beep? Meaning that beep vs. no beep is entirely decided by the server, and should be consistent with what the server believes. I don't think the client's timing plays into the issue at all, aside from the cosmetic decision of whether or not to dim the power button. Forgive me if I'm misunderstanding you.
    It isn't consistent with what you're describing, which is sort of my point. I queue attacks when I test, so the beep I hear can't be a response to my act of selecting the attack. It has to be the result of the queued action failing and the client either being informed of that fact or failing to be informed of the power activation quickly enough. However, I'll add it to my list of things to test more carefully with a wan emulator that can more precisely induce controlled latency into my link. Attempting to flood it with traffic to create that latency is a little too difficult to control for reliable testing. I can't do that this weekend because I'm working on other things that require I not tamper with my connectivity too much, but I will try to test that later next week. Although this testing is now heading into parts unknown: testing the precise mechanics of the beep is a bit odd even for me.
  16. Quote:
    Originally Posted by Nethergoat View Post
    I'm pretty sure it's more fun to rage about perceived injustice than actually address the facts of a situation, mmmk?

    =P
    I'll take it under advisement.
  17. Quote:
    Originally Posted by Savos View Post
    I'm still not convinced on the average is the most useful measure for these kinds of tests.

    The discrete nature of the events implies some clustering around specific frame or combat tick counts plus or minus a few ms either direction depending on where you initiate the event from the two clocks.

    Now, if the server sent 32 updates per second, this would be much easier...
    I'm not sure you understand what I'm saying. Primarily because you're repeating part of what I'm saying. Jitter is specifically the term I use to refer to offset desynchronization as opposed to random independent error, which I think you're suggesting I'm not taking into account. This is the fundamental basis of the Arcanatime theory, not averages. I'm only looking at averages to sift the data quicker and see alignment patterns. That's also why I do histograms such as the one I posted above. However, histograms only work for very large datasets, and so I don't use them all the time. Once I know the basic character of the data, I do shorter data runs to get a better handle on what is going on with multiple situations, which would take forever if I had to do multiday runs per power per situation. However, the fundamental characterization analysis always eventually gets refined with a histogram initial pattern analysis and then a frequency and discontinuity analysis.

    The basic theory hinges on this principle. If the server naturally aggregates event processing into server ticks, then events will preferentially align with clock triggers. But unless the server back-timestamps events (it doesn't) there will be two kinds of blurring of that. The first is internal anchored offset and the second is interclock jitter, both of which will make the data fuzzier than you would expect.

    Anchored offset first. Suppose the server is supposed to do something once per second, every second. You'd expect those events to happen thusly:

    1000ms 2000ms 3000ms 4000ms 5000ms...

    If you measured the interval between events, you'd get a consistent 1000ms.

    But because the server takes finite amount of time to process all the stuff it has to do, it can't always do everything it needs to do in one single instant of time. So it takes a few miliseconds. This means while the server tries to do the events on that schedule, events could happen a bit later than intended:

    1012ms 2031ms 3005ms 4009ms 5061ms...

    Notice that if you tried to measure the interval between events, you'd now get:

    1019ms 974ms 1004ms 1052ms...

    Over time this would average out to 1000ms. It would have to, because ultimately those little offsets themselves have to average out, because they are in effect anchored to the 1000ms interval.

    Now, this is *different* from an unaligned event. Suppose instead that this event occured every 1000ms plus or minus 50ms. In that case, at a glance you might expect to see similar data. But in this case, instead of jitter about a base frequency, we have random walk drift. Over time, the percentage variance from the base frequency would drop, but the absolute magnitude of the variance would actually increase over time - just like a random walk. Eventually, you'd see events occur 2 seconds sooner or three seconds later than predicted. Now, out of eight hours that would still be almost dead on. But in the first case, that would be impossible: the absolute magnitude variance would *always* be no more than 999ms from predicted (short of server hiccoughs which themselves can be detected in the data as abrupt single point events).

    That means the difference between random offset and synchronous offsetis detectable, and also says something about predictions. In particular, it says that aligned events are far more stable and will conform to predicts much more tightly than statistically random ones.


    Now, that's intraclock offset. Interclock jitter is the related phenomenon where multiple events occur in a way that their initiation is forced to be aligned with an event clock but their measured execution is not. In this case, we have powers executing in sequence on the server locked to the combat clock (actually, its a complex interplay between the combat clock and the animation clock, but not important here), but running animations that are themselves not bound by that clock and running just against the animation clock. Also, animations are typically shorter than the arcanatime of the powers.

    This means that in terms of the actual powers themselves, they execute on a clock:

    1000ms 2000ms 3000ms 4000ms 5000ms...

    But the animations "wiggle" within those windows. Lets say the animation itself is only 900ms long. The first one can start anywhere from 1000ms to 1100ms and not intrude on the execution of the next power. And animations are only frame-aligned: if they don't execute "now" the have to start 33ms from now. So they can tend to start sometimes a frame later than normal. If I measure with demorecords, I could see this:

    1033ms 2000ms 3033ms...
    From my point of view, the first power took only 967ms and the second one took 1033ms. But notice that just like with intraclock offset above, it *must* average out, because this is a bit of an illusion: the powers themselves are executing in perfect 1000ms pulses, but the animations themselves are "jittering" around those activation moments.


    Now, combine the two sources of measurement offset: intraclock delay and interclock jitter. You'll get the kinds of measurements I mention above. Its analyzing the harmonics within the data that first provided the Arcanatime beat frequency of 132ms. And by the way, you'd think it should be 133ms because if its a true multiple of a 1/30th second clock, 133 is closer to four such clock ticks than 132ms. Except 133 doesn't work. 132ms does, and both the harmonic analysis and explicit testing seems to show that 132 matches observations far closer than 133. In some cases 133 seems to predict entirely the wrong thing for certain powers that are right on the edge.


    So, yeah. Averages are currently being used as a data sifting tool. The analysis is not based on straight averages. At some point, I'll try to figure out how to post all the raw data, and people with different methodologies can take alternate swings at it. In fact, there's still minor unsolved glitches in ArcanaTime itself, but everyone who tried to resolve them with alternate theories back when I first published that ended up with something that did far worse at predicting optimal attack chain performance. At the moment, you could say ArcanaTime makes all the right mistakes to match reality - except for recharge which we're looking at now.
  18. Quote:
    Originally Posted by Spruce View Post
    This is not the case. To test, I fired up CoH while torrenting, causing my in-game ping to be 1500 on my crummy DSL. This caused a noticeable delay in the time between me pressing a power and receiving the "recharging..." text/beep, sometimes by several seconds. Shut the torrents off, 200ms ping, and the beep is nicely responsive again.

    I'm also pretty sure I've seen it happen in reverse on the ITF, when the server lags so much that my long-recharge powers show on the client to be recharged but still result in a beep when I try to activate them.
    When I test I queue powers specifically to eliminate the round trip network lag. I still get beeps, but in a different way than you describe.

    Edit: and the lag you see is the difference I'm describing between the client and the server. The client tries to predict when a power will be available by its recharge as sent to it numerically by the server. However, the client always presumes 10 seconds will take 10 seconds to elapse. The server believes 10 seconds will take 80 combat ticks and 300 animation frames to elapse. When it takes two whole seconds to execute a single combat tick because the server is overloaded at a particular spot, it takes over two minutes for the server to believe 10 seconds as elapsed and a 10 second recharge power is now recharged and ready. The client doesn't know this and shows the power recharged. But it beeps because while the little button shows ready it hasn't gotten the "you can use the power now" signal.

    However, my testing seems to confirm my suspicion that if you queue a power on the server, and the recharge is just fast enough for the power to become ready when its needed, the server *executes* the power and sends the "the power is ready" message to the client, but in the time it takes for the message to actually travel to the client (network one-way lag) the client *also* believes the power is recharged, believes the power is queued, *hasn't* received the ready flag yet, and beeps. In other words, the client can beep even when the power has actually already executed on the server, and the client just doesn't know this yet.
  19. So, swipe->slash-swipe.

    First, I tested with this chain: swipe->slash->swipe->strike. Why? Primarily for this reason: I can only tell when an attack starts in demorecords, not when one ends. So I like to bookend an attack chain with a dummy attack, because that is the attack that will tell me how long the final attack in the chain took, which can provide valuable information.

    Here's the summary information. I ran this chain fifteen times. I timed the attacks as SwipeA, Slash, SwipeB, Strike. The average execution time of each attack was:

    SwipeA: 1089ms
    Slash: 1629ms
    SwipeB: 1082.5ms

    That's at +9.6% recharge (a +3 TO). Here are the same numbers at +19.2% recharge (2 +3 TOs):

    SwipeA: 1087ms
    Slash: 1489ms
    SwipeB: 1087ms

    It might be interesting to note that Slash is now timing out actually significantly *less* than its calculated ArcanaTime (1584ms). But that's actually something I observed when testing ArcanaTime in the first place. Due to how attacks "line up" with the animation and server clocks, it can happen that an attack will *look* a little longer because it "slops" over a clock, but then when that happens usually the next attack in the chain "picks up" that time. In other words, its an aliasing issue: attack A edges a little into the next clock, which makes it seem longer but also the following attack seem shorter. And that's what we're seeing here. Note the total duration of the three attacks in the second run: 3663ms. That's *very* close to the calculated ArcanaTime of the chain of 3696ms. This clock aliasing tends to average out. You're not really seeing Swipe run slower than ArcanaTime predicts, you're really seeing SwipeA stealing some time from Slash, making it look longer and Slash look shorter.

    It also means my theory takes a bullet. 9.6% recharge is not the best you can do; at higher recharge the chain speeds up, which suggests something else is going on. But this also seems inconsistent with my cycle time measurements for single attacks.

    Sleepy again. Will think about it tomorrow. There's probably a simple explanation for the discrepancy, but I'm not going to find it tonight. If someone else figures it out, by all means post. In fact, I already have a hunch what it might be, but I'd rather figure it out tomorrow.
  20. Quote:
    Originally Posted by Savos View Post
    Going by your stated data:

    11944 ms = 358.16 frames. Since this is a discrete system, I'd expect that your data points don't really have Gaussian distribution, and that they more likely have several minimum values, each with an exponential, Poisson or some other decay function following it.
    Code:
    Bin    Frequency
    11896.00    1
    11913.00    1
    11917.00    2
    11919.00    2
    11920.00    1
    11921.00    5
    11922.00    1
    11923.00    2
    11924.00    2
    11925.00    1
    11926.00    5
    11927.00    9
    11928.00    10
    11929.00    4
    11930.00    9
    11931.00    9
    11932.00    9
    11933.00    7
    11934.00    12
    11935.00    20
    11936.00    16
    11937.00    28
    11938.00    27
    11939.00    29
    11940.00    31
    11941.00    36
    11942.00    43
    11943.00    48
    11944.00    60
    11945.00    52
    11946.00    41
    11947.00    41
    11948.00    31
    11949.00    31
    11950.00    11
    11951.00    17
    11952.00    10
    11953.00    9
    11954.00    3
    11955.00    6
    11956.00    5
    11957.00    4
    11958.00    5
    11959.00    13
    11960.00    19
    11961.00    14
    11962.00    21
    11963.00    29
    11964.00    42
    11965.00    37
    11966.00    55
    11967.00    79
    11968.00    58
    11969.00    57
    11970.00    72
    11971.00    90
    11972.00    75
    11973.00    72
    11974.00    63
    11975.00    72
    11976.00    75
    11977.00    44
    11978.00    43
    11979.00    35
    11980.00    41
    11981.00    36
    11982.00    17
    11983.00    14
    11984.00    12
    11985.00    10
    11986.00    7
    11987.00    6
    11988.00    3
    11989.00    3
    11990.00    1
    11991.00    7
    11992.00    2
    11993.00    5
    11994.00    7
    11995.00    6
    11996.00    6
    11997.00    6
    11998.00    7
    11999.00    10
    12000.00    3
    12001.00    11
    12002.00    8
    12003.00    15
    12004.00    25
    12005.00    29
    12006.00    32
    12007.00    33
    12008.00    29
    12009.00    44
    12010.00    56
    12011.00    50
    12012.00    54
    12013.00    49
    12014.00    45
    12015.00    38
    12016.00    25
    12017.00    17
    12018.00    21
    12019.00    6
    12020.00    6
    12021.00    7
    12022.00    1
    12052.00    1
    It can be sometimes a little more complex than you're thinking, because what I've noticed is that if an event occurs during a combat clock (0.125s) those events are not aligned by the game engine to occur at the start of the clock. They occur when the game engine performs them.** So in fact if two attacks are meant to go off simultaneously at t=0.125, its entirely possible and in fact probable that one of the will go off at t=1253ms and the other at t=1255ms, in the other they are processed. And that's why you'll see clock jitter around fencepost clock pulses when you time things like critter AI shotting decisions. Those are aligned to a 0.5 second clock, which means they will always occur at t = N * 500ms, plus some offset. But the offset is in effect "anchored" to the clock pulses, so when you run a long hours-long test of critter AI, you get this odd behavior where the clock pulses keep reverting to the mean rather than random walking. They *never* drift more than 499ms away from the 500ms "beacon" and always eventually return to it.

    That "anchored drift" as opposed to random walk behavior is a strong indicator of (server) quantum alignment. But in other timing tests, you see random walk behavior: the timing drifts randomly higher and lower without limit. That's a case where the offsets have a non-aligned component that can cause the timing to accumulate and drift away from the fenceposts.

    This is mostly academic, but it does determine if the drift error is independent or not, and that could mean a determinable difference in some kinds of attack chains (whether someone will take the time to determine if their specific attack chain is clock-aligned and can take advantage of that fact is a separate issue).


    ** It is this fact that causes server-side temporal lag during high density events like zone events and old school (pre-I9) Hamidon raids. During those events, recharge itself can slow down because time is slowing down, because the server has more work to do than it can complete in one server quantum. So less quantums happen per unit time. So time essentially slows down.
  21. There's something else I want to address, because apparently we're overdue and its been a while since this has been hashed out. Umbral (and others) have often made the claim that because fights rarely last longer than 30 seconds, only the 30 second calculations are relevant (to balance). The 180 second calculations are basically meaningless, because almost no fights last that long. 1800 second calculations are even more meaningless, because they have no connection with reality.

    This is false. But rather than talk about the math, I'll illustrate with an example first because I think it will make more sense. I'm going to use a farming example. I have no interest in discussing the merits or detriments of farming: I'm only using the example because I think it will make the most sense to the most people in an intuitive manner.

    Suppose I decide I want to figure out how fast I can earn XP (or Inf, or whatever). So I make a farm mission. It doesn't matter what kind for our purposes. And when I test myself in it, I discover that I can sustain up to 0x4 and still kill every spawn without risk to myself, with enough health so that by the time I move on to the next spawn I'm basically back to full health, which means this is sustainable all the way to the end of the mission. But if I set to 0x5, while I survive, I end up with sufficiently low health that if I don't rest before engaging the next spawn, I end up with even less health and eventually I have to rest or die. And when I factor in rest time, I actually earn less XP per hour than if I just stayed at 0x4. And when I increase to 0x6 for giggles, the first spawn just kills me.

    My character can *sustain* 4, and can *survive* up to 5. Now my friend comes along and wants to try my mission. He discovers that just like me, he can sustain 4. But when he tries to increase to 0x5, the first spawn kills him. While I am 4/5, he is just 4/4 - he can sustain 4, and he can only survive 4. He can't survive 5. You could say I am more powerful than he is: we both can sustain the same amount, but I have the edge in the highest I can go without dying. So we tie on sustainability and I win on maximum survival, so I win. That's simple enough.

    Now our friend wants to try *her* luck. She discovers that she can set this mission all the way up to 0x7 and not die. 0x8 kills her. She is much more survivable than either of us. But curiously, she can only sustain 0x3. Although 0x4 is no threat to her, at 0x4 she ends each fight with less and less health, and eventually has to rest. And she finds that she earns XP faster going continuously at 0x3 than stop and go at 0x4. So while I am a 4/5 and my other friend is 4/4, this friend is 3/7.

    Now who's more powerful, she or I? She's obviously tougher. But I'm faster. When fighting spawns set to 4, they whittle her down faster than me. But when fighting spawns set to 7, I'm just plain dead. She can survive. How do you reconcile that?

    Clearly, neither number tells the whole story. In terms of what individual threat can we survive she wins. In terms of what individual threat can we mow down continuously for rewards I win. The first number represents best case reward earning, and the second number represents toughest survivable threat. In terms of *game* balance, the first number is more important. But there are times the second number is more critical.

    If I am playing a scrapper, I will tend to think the first number is more important. What matters most is what maximum threat I can simply play through. But if I am playing a tanker, I will tend to think the second number is more important. What's the worst case scenario I can tank for, especially in case of sudden emergencies.


    Thinking that the 30 second number is "more important" than the 180 second number misses the point. Both numbers are important *always*. The first one tells you *what* you can kill. The second one tells you *how often* you can kill. The combination of the two represents a qualitative measure of the strength and sustainability of a character. Which one is more important, and to what degree, is somewhat situational. But usually, the shorter window number (30s in this case) represents more of a limit than a metric. In other words, you don't really want the character with the best 30s score. What you want is the character with the best 180s score of all the characters that meet a certain minimum 30s score. In other words, switching scales a bit, a 30/90 is better than a 10/50, but a 40/70 might be better than the both of them simply because you would rather sustain 40s and be able to take on the occasional 60 than be forced to sustain only 30s even though you can take on the rare 90. If anything higher than 60 is fine with you, then both 30/90 and 40/70 "qualify" but then 40 beats 30, and the fact that 90 beats 70 is less important to you.

    Personally, I think this is how *most* people look at survivability *except* for tankers and other characters that are played like tankers by their player (like some brutes, masterminds, crazy blasters, etc). For those people, the exact opposite is probably true. They have a qualifying *sustainable* number, such that any lower would be too mind-numbingly slow, but anything above a critical value is fine, and then they want all out maximum burst survivability. So maybe they want at least 25, but anything above that is fine. So 30/150 and 50/90 both qualify, but then they would rather have the 30/150, because even though the 50/90 sustains a far higher level of activity, they really want the 150 and are willing to pay for it.


    And that's why my mitigation spreadsheet *AND* my I7 calculations look at different time windows. Each looks at just one aspect of survivability, neither of which makes the other redundant.

    And that is the relevance of 1800 second calculations. It presumes an average 30 minute mission, and looks for the best sustainable activity within it. Because the unit of measurement for reward earning is not the critter or the spawn, but the mission. Once the mission is cleared, you can't sustain any more activity even if you want to, because it will be empty. So any health you have at the end of the mission becomes essentially worthless. A player that can finish that hypothetical farm with full health has no advantage over the player that finishes the farm with half health. And that is why that calculation is relevant, even though no fight lasts that long. Because its not a measure of the best fight you can take on anyway. Its a measure of how many fights you can take on over a long period of time, a completely different limiting factor on combat.
  22. Quote:
    Originally Posted by Umbral View Post
    I'm saying that the information that Arcana provided can't be used to model performance across an entire mission because it ignores the fact that there is downtime between fights. The only time those values are going to be valid is if you assume that absolutely everyone goes through a mission running from one enemy group directly to the next regardless of how much damage they have actually sustained.

    Missions are comprised of a series of separate combats. Arcana is using 1800 seconds of constant fighting to represent what is more accurately described as 36 instances of 40 seconds of combat and 10 seconds of non-combat. What she has chosen to do generates gross discrepancies in performance between the two basic survival methodologies, which is, comically enough, why you see Arcana's numbers painting */Regen as having insanely high comparative survivability while actual play experience places */Regen in roughly the middle, if not lower, explicitly because of the time frames she chose to operate in.
    Actually:

    1. The Part One calculations look at indefinite survival, 180 second survival, and 30 second survival - see the section titled "Mitigation Breakdown".

    Clearly, DA and Regen are emerging as the obvious leaders. A significant part of that comes from their powerful heals. However, because those heals are only usable at intervals, its possible for a critical amount of damage to outrace the heal and kill the scrapper before it can fire. Doing so can "break" the heal, by defeating the scrapper before it can be used: the scrapper will perform significantly lower than the "naive" averages would predict. We're going to look at two situations: first, the amount of damage necessary to kill the scrapper in 30 seconds with no click heals. Both dark regeneration and reconstruction (as slotted in our test builds) recharge in 30 seconds or more, so any level of damage that can kill in 30 seconds can always outrace those heals. However, of course no real scrapper would wait that long to use that heal, so we are also going to look at a second quantity: the damage level necessary to overcome *one* heal in the same 30 seconds. Basically, we're trying to see if burst damage can neutralize the advantage of the heals. SR and invuln do not have short term cyclical heals: obviously there's nothing to calculate for them for the second case.

    2. 1800 seconds was used as the statistical cut off for the simulator (see below).

    3. Part Two used a millisecond-accurate discrete calculator (aka a simulator) with both constant, pyramiding, and oscillating damage models. They tended to confirm the basics of the calculations, which was only intended to validate that the calculations themselves were reasonable approximations for reality. 1800 seconds was considered the cutoff to average monte carlo estimates for survival probability for a given simulation run. Within each run were actual moment by moment damage and regeneration calculations that are time-accurate (for example: regeneration is accounted for as actual 5% heals at the appropriate regeneration interval, not a continuous heal).

    4. The actual numbers in those analysis are obviously out of date. They were meant to demonstrate the methodology, and to prove the validity of the model under real conditions, so that it could be extrapolated to newer numbers without having to rehash the same argument that the approximation calculations "didn't match reality." The simulation numbers showed they did, to a high enough degree of accuracy to be balance-relevant.

    5. The analysis was done to provide a basis for methodology comparison. Its the basis for concluding that the spreadsheet calculations themselves are valid approximations for the situations they represent. They of course won't agree with the actual *numbers* in the spreadsheet because the analyses have I7 numbers and the spreadsheet (the latest version of it) has I13 numbers. They don't agree in that sense, nor have I ever implied that they did.

    6. They are *not* the sole source of my opinion on Scrapper sets. If there are scrappers who were around when I first wrote those may remember, the original draft had only SR and Invuln because those were the only two sets I had played to the level cap. I added Regen next (I3) and DA last (I4) as I gained sufficient experience with them at all levels of play to consider my judgment valid, separate from the numerical calculations.

    By the time I wrote the last (I7) version, I had about a thousand hours of scrapper secondary experience, plus brute, tanker, and stalker experience in over half the melee defense sets. If anyone wants to toss all the numbers out and just talk turkey, I'm game. At this point I've seen just about every version of every melee set under every in-game situation multiple times. This includes Regen. I have no problem debating my qualitative judgment of the sets strictly on the basis of experience with anyone that wants to have at it. If there is such a person that believes their experience with the sets trumps mine and they have a qualitative argument they think they can make which is backed up by actual expressible gameplay experience, I'm all ears.


    One last thing: anyone who actually read the analyses would know that the overall conclusion of the Regen set was that while it was definitely one of the better sets (at that time) it was no longer outside the boundary box of scrapper performance, and thus nerfs to regen were no longer justified. It was *not* that Regen's performance was far superior to all the other sets. I called it the benchmark set that SR and Invuln should be brought into rough parity with, in specific areas, and I also mentioned several times that Regen had the benefit of near invincibility below its balance point and brittleness above it, which was a qualitative balance feature of the set. The deficits of the regeneration mechanic (I called it mitigation breakdown among other things) were not glossed over.

    Anyone who read it would know this, and conversely anyone who claims to have read it and doesn't know any of these things is frankly not telling the truth.
  23. Quote:
    Originally Posted by Savos View Post
    Arcanaville, do you have all your tests on perhaps a Google docs spreadsheet that is readable by others?

    I'd like to see what data you generated via your tests if possible.

    EDIT: Or rather what is the variance of values for your measured cycle duration for each power? That would be far more useful and something you probably already have.
    I don't, but I do have it in spreadsheet form. Its all quite a quick and dirty hack, but I'll see what I can do. The way I do the measurements is very accurate, I use demorecord timing data which I've tested carefully to determine those timestamps come from the server, not the client (when I demorecord the same sequence from two different observers on two different computers in two different locations - don't ask - I get the same timestamps plus or minus infrequently one millisecond which is probably a roundoff thing - given the differences in lag and such, that seems conclusive). I do it very late at night on the test server in instances with not a lot of stuff happening. Timing variations are, for unaligned events (i.e. animation events) usually within less than 100ms.

    For example, I just did a sort of my timing for spin cycles (yeah, I picked that power just so I could say that). The absolute lowest measurement was 11896ms and the highest was 12052ms, giving a range of 156ms. But those two were actually weird outliers, possibly hiccoughs on the server. Throwing just those two measurements out, out of 2571 remaining measurements (see, wasn't kidding: 8 hours 33 minutes) all others fell between 11913ms and 12022ms, a range of 109ms. 2563 of the 2573 measurements fell between 11921 and 12021 (100ms). Calculated average: 11973.47ms, almost in the middle of the two extremes (minus the two outliers).

    What's interesting is that when you histogram the results, you don't end up with a single maxima. You end up with three gaussian-looking distributions centered around approximately 11944ms, 11972ms, and 12011ms. That suggests that there are reasons why the server is preferentially generating recharge cycles of approximately those beat intervals, which is on my list of things to investigate. Those gaussians are a bit rough though, even with 2500 measurements so I might need an even longer measurement run to refine the data. Maybe 48 hours if I can get it.

    I'll see if I can put the data together into a form that I can post to google docs, although that might have to wait until I complete my next round of tests. The actual raw data might get ... lengthy after a while though. I had about sixty thousand measurements when the dust settled on ArcanaTime (and I'm up above twelve million random rolls on my "prove the rand() is really random" project).
  24. Quote:
    Originally Posted by Bill Z Bubba View Post
    EDIT: Wait one... think I see where I'm screwing up. The .26 needs be be subtracted...
    2.904+.226-.26 = 2.87 seconds between followups
    (12-2.87)/2.87 = 3.18 or 318% recharge needed in followup.... ok, I could see that variance occurring but won't be able to test that specific chain until I-19.

    Let's go with what I tested eariler: swipe, slash, swipe
    1.584 atime seconds between swipes
    .226 between cast and atime
    -.26 addon
    (1.7-1.55)/1.55 = .097 or 9.7% recharge needed.... still not right as it was determined that 15% recharge got swipe to the point where half of the time the not ready sound went off.
    Maybe the problem is the beep. The beep is a client side thing, and it happens if at the instant you push the button the game client doesn't think the power is ready to execute. But if you queue the power, the power could execute at a moment in time when the server knows it can, but the client doesn't yet know you could.

    What I'll do is specifically clock that sequence above to see, without relying on the beep, if 9.7% recharge is enough for the sequence to execute in the best possible time, which I'll determine by saturating swipe with recharge so that the sequence is executing as fast as the game engine will allow and recharge is not a factor.

    Not exactly sure how to do that: I guess I could use a +3 TO (9.58%) and see if it comes close.
  25. Quote:
    Originally Posted by Dz131 View Post
    Yeah designated MA dev writing GR missions and not touching MA? Sounds like nothing's new there
    Dr. Aeon was hired as a mission author and was given the secondary task of assisting with support of the Mission Architect. He was not the only one given that additional responsibility. Black Scorpion was also publicly announced on the forums to be assisting with powers related work for the MA. Aeon did do some work on things like dev choices but Going Rogue probably diverted everyone's time.

    I cannot say who did what but the MA wasn't neglected since launch. The custom critter XP system was put into place, and the ally fix, and a bunch of new maps and critters were added to it, plus some additional enhancements. Perhaps it was not given the attention some think it deserves, but it wasn't forgotten either.