Friday, February 27, 2015

Rebuttal to and Discussion of Blizzard Watch's Enhancement Breakdown

I was super excited to see a Blizzard Watch class column for Enhancement Shaman. I don't think our spec had a class column on WoWInsider at all (it was pretty well only Resto with the occasional Elemental post tossed in). Said first column was all about, "What's Wrong With Enhancement?". And then I was sad.

Make no mistake, Enhancement has some issues. I just mostly disagree with the author on what said issues are. In short, his grievances:

  • Good at AoE (and therefore bad at Single Target)
  • Lack of meaningful cooldowns
  • Too many rotational buttons

Good at AoE (and therefore bad at Single Target)

Data suggests we're actually close to the middle of the pack for single target DPS. We're a teensy bit low, but we're not far enough below to make a difference unless you're a world-first Mythic guild:

Warcraft Logs, as of February 27th, 2015. Mythic, Gruul, 50th percentile

As you can see by the chart, even at the Mythic level for as close to a patchwerk fight as we can get this tier, Enhancement is in the middle of the pack. Nearly exactly in the middle if you toss out the outliers (Frost Mage and BM/MM Hunters). Heroic and Normal look even better for Enhancement. It's not until you start getting into the top 25% of Mythic players that Enhance truly starts falling behind.

That being said, our AoE is still a little out of control, due to how it scales up with more targets. Two targets, two Flame Shocks, two Fire Novas on one target each equals two Fire Nova hits. Six targets, six Flame Shocks, six Fire Novas on five targets each equals thirty Fire Nova hits. Exponential scaling due to number of hits. If they were to make it linear somehow instead, they could bring our AoE inline with other classes.

The question is, do we want that? According to a recent interview, specs can have niches, that's okay. It seems currently our niche is AoE. And it's not actually coming at the expense of our single target damage to any great degree if the current data is any implication.

Lack of Meaningful Cooldowns

In the article, the author seems to be using "meaningful" as a proxy for "directly influences my personal damage", and therefore having a higher skill cap. To be fair, he has a point that the Fire Elemental and Feral Spirit are effectively fire and forget. Other than lining them up with Hero/Lust, potentially Elemental Mastery, or making sure you use them when they'll have the best encounter uptime, there isn't much else to them. Not really any different from Mirror Images or Shadowfiend, either. Granted, we have two such cooldowns. But they do pack a wallop: Primal Fire Elemental makes up a good 10% of our total DPS, and Spirit Wolves another 10%.

As to other meaningful cooldowns, we have Ascendance, and potentially Elemental Mastery, which the author ignores both. Ascendence isn't a huge DPS boost, unless you're stuck at range in which case you're suddenly doing far more damage than you were previously. If you have a fight where you're going to be at range for a significant period, it might be useful to hold on to it. However, it's still probably better lining it up with Hero/Lust or Elemental Mastery.

Echo of the Elements versus Elemental Mastery is an interesting question. The haste gain from EM is amazing, especially if you want to get an extra cast or two of Windstrike with Ascendance, or can pair it with Liquid Magma. Echo, on the other hand, makes all your smaller cooldowns a lot more interesting.

So I disagree that our cooldowns aren't meaningful, or at least, I disagree with his definition of meaningful. If you ignore the cooldowns, your DPS will suffer greatly. However, I do agree that the fire and forget nature of the Elementals and Spirit Wolves doesn't really encourage much interplay with the rest of our toolkit, aside from cooldown stacking, and that means you may as well use them on cooldown. But this isn't unique to Enhancement; there aren't many cooldowns in WoW in general that are worth holding on to very long as a DPS.

A different issue I have with our cooldowns is how much of our damage is tied to the Fire Elemental as a totem. This is fine, mostly, for PvE, but in PvP? Totem stomp, and boom, all that DPS, gone. Annoying.

Too Many Rotational Buttons

This one is a bit more subjective. The author starts in this section by saying, "Instead of having meaningful cooldowns to use when we really need to burn something to the ground," which I've shown as incorrect in the previous section--our cooldowns do plenty of damage, Enhancement can still burst with the best of them.

However, his mention of making each individual ability worth more in our rotation is potentially bang on. Blizzard pruned the damage dealing aspects of Unleash Elements, but kept it in our rotation to give us self-buffs. It's still an important part of our rotation, though, because it interacts with Flame Shock and Fire Nova, and with Unleashed Fury makes Lightning Bolt hit a lot harder. Yeah, you're basically going to use Unleash Elements on cooldown, but it becomes interesting depending on if you're doing an AoE rotation versus a single target, or if you're spec'd into Unleashed Fury or Elemental Blast. The ability itself sets you up for interesting decisions down the road.

But we still have a lot of disparate sources of damage. I feel like we could lose Frost Shock from our rotation and not miss it much, and as we get higher values of haste, we're effectively pushing Frost Shock out of our rotation regardless.

We could probably be rid of Lightning Shield at this point, too. It makes up such a small amount of our DPS that missing it means you're not missing much. Windfury and Flametongue are extremely tiny portions of our DPS as well. We'd be missing a lot of flavour without those, though, but it would make each individual ability button we press more impactful, which is a valid complaint.

However, that being said, I enjoy the complexity of my rotation as Enhancement. If I wanted a simpler rotation, I'd play Retribution (which is effectively just Enhancement with fewer buttons in terms of core rotation play style). I've played games like Guild Wars where you only have 5 primary buttons, and it's boring. Boring, boring, boring. So please don't take away my buttons (except Frost Shock, feel free to run off with that). But perhaps they weren't aggressive enough with pruning passive sources of damage.

We're in a Pretty Solid Place

This is the part where we agree. We're actually in a pretty damn solid place overall as a spec. Sure, we're a bit weak in PvP (nerfing our self-healing by removing the mana benefits of Maelstrom Weapon what? Glad they reverted that...), and we're lagging every so slightly in single target DPS currently, but frankly not enough for 99% of the WoW population to be concerned about. If you're not in Paragon or Method, frankly, you should take a skilled Enhancement player over asking them to switch to a different spec that they're unfamiliar with.

For some reason, the image of Enhancement being terrible at single target DPS has persisted for much longer than we've actually been terrible--because we were in an awful place at the beginning of the expansion, make no mistake. But we're smack dab in the middle now, where the developers are aiming to have every class.

Yes, there are definitely improvements to be made. Fire totems, still too many passive sources of damage cluttering up our total DPS and making our buttons presses a little less effective. But overall, we're in a good place. #WorldOfWarcraft, #Enhancement

Thursday, February 26, 2015

Crowfall, Funding, Creative Control. How Much Do Video Games Cost?

Recently a new MMO has been making waves: Crowfall. I've seen their pitch video, it's a super cool concept, one I can easily get excited about as a designer and a programmer, even if I'm less than enthralled about the PvP aspect of it. They just launched their Kickstarter, asking for $800,000. But one of the big questions folks have been asking is, "Can you make an MMO on just $800k?"

Unsurprisingly, the answer is no. The developers even cop to that themselves in the FAQ portion:
The short answer is: you can’t. At least, not a game with the scope of Crowfall. Fortunately, that isn’t our plan. 
Lastly, we’ve already raised some money and -- as we said in the video -- we will raise more if we need to. We would prefer to be only answerable to you, our players – but one way or the other, we’re going to get this game made. 
ArtCraft took a minority investment round of $2.3 million last year. We will likely sell the rights to Crowfall in foreign territories (especially restricted markets, like China, where we can't ship the game, anyway) to add to our development budget. If that isn't enough, we can always take more minority investment if we need to. 
The Kickstarter deliverable (the core module) can be accomplished with our capital and the crowdfunding money -- providing we are successful in meeting our Kickstarter funding goal.
They've already gotten $2.3 million, some of which I suspect they've already used given they've mentioned that they effectively have a prototype. And as they mention in their pitch video, they have other potential avenues for funding, but if they fill the rest with crowdfunding, they're more likely to retain creative control of the product as a whole. Interestingly enough, that's a concept that resonates with me as a developer on Eon Altar.

Given a high-fidelity prototype you can shop around, there are plenty of publishers and investors out there who would likely be willing to fund your game, but as the Crowfall folks mention, this usually comes with creative control strings. The only way you can assure complete creative control of your vision is to fund the product yourself, or find funding from sources that believe in your vision. Crowdsourcing, private investors, and your own funds.

I don't know where all of Eon Altar's funding comes from personally, but we've managed to retain creative control, which is really important for us to deliver a game we would like to play. I know keeping this vision intact has required us to turn down potential avenues of funding, so I can completely empathize with the Crowfall developers for turning to Kickstarter to fill their coffers for the short term.

But will it be enough?

They have 17 employees listed. If they were getting paid $40k a year each (well below industry standard), you're talking $680,000 a year on salary alone. If they were getting paid closer to industry standard (~93k for Developers, ~73k for designers, and ~75k for artists/animators as of 2012), were looking at a ballpark figure of $1.3M per year. They have a development timeline of Winter of 2016, so about 2 years. That's $2.6M right there if they were paying industry standard. That includes no benefits: no health care, no life/injury insurance. 

Add to that requirements:
  • Equipment (2 monitors plus at least one machine capable of running the tools will likely run at least $2k each in bulk, if not much more); ~$34k minimum, probably significantly lowballing here
  • Licenses for primary tools (Unity Pro is $1.5k per seat perpetually, Maya will run about $1.5k per year per seat); ~$40k minimum
  • Licenses for programming addons (Voxel farm is unknown, Unity addons run anywhere from $20 to $3000+); Unknown, based on Eon Altar's usages compared to their much larger scope, I'd budget ~$10k minimum, probably significantly lowballing
  • Office space (generally running about $1 per sqft in places like San Francisco or Seattle where these companies generally live), so probably in the range of $2k per month, so ~$48k minimum, might be lowballing
  • Furniture (17 decent office chairs, crappy tables): ~$4k minimum
  • Cloud Computing Services for Code Repositories: ~$3k per year
So that's in the area of $142k, and I've probably forgotten a bunch of other costs and underestimated the costs given. I tried to be conservative. That's all just off the top of my head. If we assume they already have a bunch of that stuff (because they do have a prototype), we're talking about saving $60k.

However, toss in another $25k - $50k per year for retaining lawyer services, and we're already at nearly $2.8M total operating costs for a 2 year release cycle.

That also doesn't include publishing fees, or marketing costs. This is just the amount it takes to make the game. It also doesn't take into account a QA department (not listed on their Kickstarter), or hiring contractors for smaller pieces of work for temporary periods of time--a relatively common occurrence, both of which would be significant expenses.

Clearly the people are the biggest expense (and biggest asset) of any operation, and if you can convince folks to work for less (generally because they're passionate about either your vision or working for you), you can save a lot of that money. There are also other options, like deferred payments, where you pay the folks upfront less, and tell them if we make money, you'll get this amount extra at the end. Or in lieu of cash offering a percentage stake in the company proper.

Despite all that, they're likely going to have to raise more private capital. Even with the Kickstarter funds, they'll only have a listed $3.0M (remember, Kickstarter skims an amount, plus taxes). The producers mention they're dipping into their own bank accounts, which is big of them, but won't go very far in the grand scheme of things unless they're millionaires. They don't have enough money--unless the devs are making significantly less than industry average up front--and they won't with Kickstarter. But it'll give them a pretty damn big head start as they look for more.

I hope they can find further investors who'll let them retain their creative vision, because it's actually pretty damn awesome. #IndieDev, #Crowfall, #GameDevelopment

Thursday, February 12, 2015

[IndieDev/EonAltar] The Physics of RPGs

Physics isn't often the first thing to come to mind when one thinks Role-Playing Game, but even turn-based RPGs could successfully use a physics engine to overcome a number of issues. A physics engine gives you things like gravity, velocity, acceleration, forces, and collisions. And while a game like Skyrim might have something like a skill shot, where you fire your bow and you actually have an arrow with trajectory and therefore physics, many games do not. Most MMOs you press a button, and the ability will connect with the target or not, but you don't generally aim that ability in a way that physics matter.

In Eon Altar, the biggest boon that a physics engine gets us is collisions. By utilizing a physics engine to track geometric colliders and when they overlap, we can determine things such as when someone enters the hearing range of an NPC; when your movement marker is hovering near a target; when you're close enough to an item to pick it up from the ground; or when your party is near enough to an encounter that we should spawn the NPCs and populate statistics.

Note that there's little actual classic "physics" going on in the game. All of our actors (players and NPCs) are controlled by logic directly, as are our projectiles. Actor navigation uses something that Unity calls a NavMesh. Basically, a pre-calculated pathfinding mesh that Unity can run algorithms on to determine the fastest route to a location. We don't have bouncing balls, or rag-doll physics, and projectiles literally just take the quickest straight path to the target.

To give folks an idea of the examples I'm going to use, I present to you a screenshot from the current in-progress iteration of Eon Altar. Disclaimer: this isn't the final game, still under development, so on and so forth.

The screenshot above takes place in our test level--an infinite plane that designers and developers can throw whatever they like in to test all sorts of combat and exploration scenarios. In the left we have our mage, Muran, on on the right, we have an enemy--a bandit--who Muran is targeting (the green reticule). Between the pair we have a couple of walls, the closer one tall enough to block line of sight, the smaller one tall enough to block movement, but can be seen over.

The screenshot below has a bunch of debugging information showing. Specifically, green wireframe meshes are all of the different colliders we have in the scene at the moment. These colliders are known as trigger colliders. That is, they can overlap; they have no physical presence. They don't cause other things to bounce off them.

Each actor is dense with colliders. There's a small collider that encapsulates the actor them self, which we use for aiming projectiles and determining if they walked into something important (like a usable switch, an enemy's line of sight, etc.).

You'll also see a number of colliders around each actor: these are combat slots. Combat slots are used to align actors in melee. When an actor's collider enters another actor's combat slots, that slot is occupied. When they leave (or die), it's unoccupied and other actors may now occupy it. However, there's no requirement for actors to take up only a single slot. A large golem may end up taking two or three slots even (and said golem may have far more than six slots). If all the slots are occupied, no further actors can get in melee.

Just to the north of Muran you'll see the green targeting reticule, which has its own collider. When it overlaps with something that can be targeted, like other players, enemies, things on the ground, or so on, we can snap the reticule to that target.

You'll also notice two really large spherical colliders surrounding the NPC in the upper-right of the screenshot. These represent the sight and hearing of our bandit. When a player's collider enters one of those spheres, combat begins with the enemy having the first turn.

Finally, the walls also have colliders, which are used for line of sight for ranged attacks. If we draw a line from one actor to another, and it hits the target's collider rather than something else, we have line of sight and can shoot them.

The above screenshot shows our calculations for ranged attack, showing how the walls work. This time, for debug information we're showing Unity's NavMesh--basically the walkable areas--in light blue. You'll see that the walls carve out chunks of the NavMesh. Actors must walk around the walls.

The red/blue lines show the approximate calculations over the past 120 frames for whether we can shoot the end of the blue line. Red shows where we'd have to move (noting we have limited movement), and blue shows the actual line of sight calculation from there. We can see that there are valid calculations for Muran to move up and shoot over the wall by the bandit, despite not being able to walk over it, but we can't shoot through the taller wall.

While the NavMesh is strictly not the physics engine, for movement and line of sight we need to combine both pathfinding and physics calculations (ray casting) to create a path to move and shoot from. The player doesn't need to worry about the projectile missing physically (though perhaps their accuracy roll will fail), so when we actually shoot, we're not really using the physics engine at that point.

Despite our combat being turn-based, we lean heavily on the physics engine to perform calculations for colliders, rather than doing those calculations ourselves manually. We're not working on any sort of tile-based grid despite the floor being marked as such--that's just so we can quickly gauge distances in testing--so everything has to be calculated based on the geometry, and the physics engine comes with a number of optimizations that saves us run time and development time.

But that's not the whole story. Leaning on the physics engine comes with its share of problems. For instance, colliders generally only detect when they overlap. If one collider teleports from outside a collider to entirely inside in the span of a single physics frame, we'll never get notified that the colliders entered each other. If colliders are moving too quickly, it'll be just as if they were teleported. This is due to the physics engine using discrete calculations (sampling each frame), rather than continuous (interpolating the path between each frame). The latter is extremely expensive, however, and as long as we don't whip colliders around the level at high speeds or teleport them, it shouldn't be a problem.

Middle is Frame 1, left and right are Frame 2. If the colliders overlap, we're golden. If they never physically overlap, we've got problems.
Side bar: technically we can detect when a collider is contained completely inside another, but this ends up being quite expensive and we prefer to not do that if possible. Turns out, it generally isn't required.

Another issue is that eventually, between terrain, all of our interactable objects, and actors, we run the risk of having thousands of colliders in a level. While most graphics engines have optimizations to not render graphics that aren't visible on screen, physics engines generally rely on performing calculations on the entire solution. Which means we need to implement our own optimizations. Funnily enough, this includes leaning on the physics engine with a large collider (far bigger than the size of the screen) to turn on chunks of the level as we get closer so we're not running every physics object in the level all the time.

Overall, the physics engine has been extremely helpful in implementing a large number of systems. From exploration, to combat positioning, to ranged attacks, to NPC detection areas, and more. Even if you aren't using standard gravity or classical physics, the benefits a physics engine nets you can be immense. #IndieDev, #EonAltar, #GameDevelopment

Monday, February 2, 2015

Heroes of the Storm: My First MOBA Experience

I swore up and down that I wouldn't pay for a Beta experience, and luckily for me, I didn't have to. Just a week after the Founder's Pack was announced for Heroes of the Storm, I actually got into the opt-in Beta. So for most of this weekend I've been playing the game, learning about MOBAs, and actually having a pretty good time.

While I've seen League of Legend games played on occasion--it's close to impossible to avoid them given my BF played the game, and PAX always has huge screens showing them--I've never really played MOBAs before. So Heroes of the Storm was the perfect chance to get in on how the genre plays, and provide feedback for Blizzard for both bugs and experience.

Match Types

The tutorial was relatively thorough, and while it's absolutely clear the game is built on the StarCraft II engine, it still feels like its own game. You then can try solo games with AI bots as teammates against other AI bots, or Cooperative games with all five human players vs. a team of AI bots, or Quick Matches where it's full-on PvP.

Choosing Talents. How you differentiate your playstyle with a different character each game.
If you're looking for a satisfying PvE experience, this game is not it. The bots are dumb as bricks, though occasionally they get smart and start roving as a full band and roflstomping any solo players approaching them, but even as a group, human players with a modicum of coordination can take them down quite quickly. Cooperative mode is what I've been playing the most, with one of my guildies from WoW who's relatively experienced in League of Legends, and it is fun to crush the AI, I'm not sure this mode will hold my attention that long.

I've played a couple of PvP matches solo queuing, and both went extremely well. Mind you, both times I was on a team that basically roved around as a group taking down objectives and mercenary camps as a single discrete unit, while the other team rarely coordinated at all. It'll be interesting to see higher level play from both teams to see what that looks like.


So far I've played enough games to get three characters to level 5, which is to say about 10 - 12 games each or so. And I've tried at least one game with all 6 characters currently available to me. Uther is by far one of my favourite characters. Mind you, I can play him like a roving Holy Paladin, so that's not surprising given in WoW I've played Holy since Wrath. But he can dish out a fair chunk of damage if his cooldowns are up, not to mention he has quite the stunlock build between Divine Storm and Hammer of Justice.

Compared to say, Li Li, who's also a healer, but she doesn't seem capable of dishing out nearly as much damage (though she can heal for a lot more). Uther is moderately self-sufficient, Li Li seems to really shine when she has another player with her.

But really, who can say no to Lumberjack Uther?

Hellooooo Nurse Uther
Kerrigan is also another favourite of mine. Her skills seem to have a lot of synergy where she can just prevent someone from running away if you've got good aim and good timing. There was definitely a lot of maniacal cackling when playing as her, using my skills to net Double kills on a somewhat regular basis.

Some heroes are currently bugged to the point of being ridiculously underpowered (Diablo, for one), but for the most part they've felt fairly balanced, with a few exceptions (never get into a one-on-one match with Thrall). And even those exceptions can probably be dealt with if you have a hero capable of CC. It's doubtful that anything is balanced around one-on-one encounters, that would be silly in a team game.


As far as the genre itself, it feels a little...simple so far. Characters aren't terribly difficult to at least get somewhat good at, and the talents don't really feel differentiating enough to make a huge difference. Some choices are difficult, but most of the time it feels like there's a right answer. You can kind of focus on a given ability to build around, but a lot of the time these feel gimmicky. And some of the talents are just downright anemic to the point of never choosing it (*cough* Conjurer's Pursuit *cough*).

Most abilities are gated by a combination of available mana and cooldown. Cooldowns are the short game, so you can't spam the same ability over and over again. Mana is the long game, forcing you to go back to your base to regenerate on occasion. I find Uther to be terribly mana inefficient, having to go back to base an awful lot, compared to Kerrigan who after the first 5 minutes I almost never have to go back for mana. The game definitely punishes you for spamming your abilities even if they're off cooldown, so depending on when objectives are up and when's a convenient time to recover, you may decide to hold off on using abilities.

It's interesting, as if I recall about League of Legends, they use getting gold and purchasing items as a way to force you to retreat back to base, versus Heroes where pretty much the only reason is to quickly regenerate mana. So a good way to keep that same ebb and flow but using a different method to do so.

The maps themselves are relatively varied, with different objectives that are all quite powerful and game changing if one team dominates them. In most of the Cooperative matches I had, the AI would beat us pretty handily in the first five minutes because newer folks ignored the objectives. However, by the second time the objectives came up, everyone would be on board and the AI wouldn't have a chance. Some maps are better than others. The Dragon Shire required you to pretty much hit all 3 lanes, whereas the Haunted Mine you could easily just focus your entire group on a single lane and be mostly fine.

User Interface

The game proper seems to be well-polished, but the interstitial UI definitely needs some work. I've logged a few bugs already, but one doozy is that sometimes the loading screen would crash my graphics driver, and I'd have to kill and reboot the client. Mind you, their rejoin logic works quite well if you have to bail and get back in early in the game. It seems to be using the StarCraft II replay feature to get the map set up correctly when you rejoin. However, if you come back like 8 minutes into the match, you're going to be in for a frustrating time waiting the 2 minutes it'll take for the replay logic to fast forward the game until you're caught up.

My graphics driver would often bail about here. However, the map synopsis was really handy.
The loading screens also need some work, as the bar doesn't tell you what's going on. It'll mysteriously stop part way through and hang for an indeterminate amount of time (I assume because it's waiting on another machine?) before restarting. A few graphical glitches within the menus as well.

The main menu UI is really confusingly laid out. To get the XP of my hero, I need to go to my player profile (rather than the hero information?), or at some point I was locked out of being able to start a game, and I never noticed it spamming info in the text box--because in-game player communication shows up in the middle of the screen. Speaking of which, there was little to no information on how to communicate with other players. A friend of mine had to tell me how to reply to a whisper.

The results screen at the end also needs a lot of work. In-game they show you stats like siege damage, hero damage, healing, so on. At the end it only shows you deaths, something that I think means killing blows, and how many mechanics you did (objectives), but even that isn't accurate. A lot of things are unaccounted for, like dealing with mercenary camps, some parts of objectives, dealing with minions, and so on. There've been plenty of games where I've been one of the most effective players because I dealt with the mechanics of the map while my teammates were dying on the front lines, but the results screen didn't reflect that at all, so it looked like I contributed little to nothing.

So overall, the game proper is probably ready for prime time from what I've seen, but all the infrastructure surrounding it is most definitely not. Not up to Blizzard standards, at the very least. So Beta is a good moniker for where they're at in development.

Free to Play, or Pay to Play?

I haven't spent a cent so far, but I think you're pretty much forced to eventually if you want to play in the Hero League (their competitive ladder). While leveling up my player profile, I've managed to net about 8,000 gold, which is enough to purchase a hero from the bottom 75% heroes expense-wise. But about 6,000 of that gold was a one-time bonus that I can never get again. It'll take about 20 - 30 days worth of Daily Quests to earn enough gold to purchase a hero (excepting the super cheap ones), and you need to own 10 heroes to play in the competitive ladder.

There are plenty of things you have to pay for, like skins (the Lumberjack Uther skin is $5), or mounts--there's a Rainbow Unicorn mount that's gorgeous. It's also $20, so screw that. Buying heroes outright is generally in the range of $8 - $12 each, though there are weekly sales that if you're patient, you can get half off.

Basically, Blizzard is currently charging a huge premium on pay-for purchases, and I'm not sure it's worth it at all. I mean, yes, the game is "Free to Play" which means somebody's subsidizing that cost, but it's so high that I can't imagine there are that many people buying into these things. On the other hand, it makes those $40 bundles look like they're 60%+ off, and I imagine that's where Blizzard is likely going to make most of their sales.

And unlike Hearthstone, where I can do enough dailies to get a pack or two of cards every day or two, Heroes doesn't have those smaller purchases to keep you going. It's pretty-all-or-nothing with the heroes themselves.

Is It Fun?

Yes. I've been enjoying myself so far. Enough that, playing with my friend, I often lose track of time and find myself four hours later realizing I should be doing something more productive (like writing a blog post). The community so far hasn't been toxic whatsoever, but I've only been in winning PvP matches, so I reserve judgement there.

I'm looking forward to purchasing my first hero soon with gold (probably Uther), and whenever the next set of free-to-play heroes rotates in, I'm hoping I'll find more fun heroes there as well. I'll have to start digging into proper PvP play soon, because unless the bots get smarter, I don't think I'm going to enjoy the Cooperative mode for much longer.
#HeroesOfTheStorm, #FirstImpression

Wednesday, January 28, 2015

Theorycrafting 101

So I saw a Twitter conversation where someone was basically asking, "How do I Theorycraft?" While Twitter is amazing for jumping in on these conversations, it's terrible for any sort of protracted discussion. I'm relatively new to the Theorycrafting space for WoW itself, but I've managed to make a couple waves (like with my secondary stats posts). I'm no Theck, or Bouchebaguette, or Vixsin, but I do okay I think.

So here's how I got into Theorycrafting, and a slightly formalized measure of how to do it. Warning, my example will be WoW-heavy.

There are definitely days where I feel this.

Theorycrafting 101

Theorycrafting is science. You're basically applying the scientific method to something in the game you're playing. As a refresher for those who don't remember 6th grade science class, the scientific method is as follows:

Totally stolen from

Step 1: Ask a Question, Do Some Research

The process of forming your question starts with being curious about something, then performing research, simplifying variables, and adding constraints and base assumptions to come up with a more specific question, repeating until you think you have something you can try to answer.

Okay, so what do you want to figure out? For my secondary stats posts, one of the questions I wanted to get the answer to was, "When should I take an upgrade?". I started scouring the Internet using sources like other theorycrafters, blue posts, data in,,, and using my own logic and knowledge of the game to figure out what is involved in a gear upgrade: ilvl, primary stats versus secondary stats, sockets, warforged, tertiary stats, DPS versus survivability, different classes determining how much a stat is worth via different stat weights. That's clearly way too much to handle, so it was time to start whittling that down to more specific questions and clear away irrelevant data.

I decided personally to focus on DPS. "When was it useful for DPS to take an upgrade?" Tanks and healers muddy the water because they're not concerned with raw throughput, but for my first attempt, raw throughput is a relatively easy concept to measure.

Once I had a more specific question, I could clear away largely irrelevant data. DPS versus survivability, well, we're trying to optimize our DPS throughput, so Stamina and the defensive benefits of Versatility could be ignored. Tertiary stats are not DPS boosting stats. Well, wait, what about movement speed? The faster you can move, the less moving you need to do, which means more uptime on your rotation. Ehh, like physicists, let's pretend the cow is a perfect sphere, or the fight is Patchwerk, so we're creating more constraints to simplify the problem.

This is how theoretical physicists do it.
So now we're down to ilvl, primary stats versus secondary stats, sockets, warforged, and stat weights. More research indicates that ilvl is tied to something called a stat budget. Basically, the amount of primary and secondary stats on a piece of gear is related to a formula based on ilvl. Ideally, two bracers, for example, with the same ilvl, will have the same budget, or raw values of primary and secondary stats. Basically, ilvl is equivalent to your primary stats (because your gear will always have Stamina plus your primary attribute), so we can collapse a couple more of our inputs.

So, ilvl, secondary stats, sockets, warforged, and stat weights. Warforged is just ilvl, so we can collapse that down to ilvl as well. Sockets throw a wrench in the works, so I decided to ignore that for the time being.

We know that higher ilvl should generally be better, but because of how secondary stats and stat weights interact, not every piece is created equally for every class. Stat weights inform how good a specific secondary is for a class, so we know that this is going to vary per class. but maybe there's a good rule of thumb? I mean, eventually we'll get enough stat budget that it won't matter what secondaries are on the item, we'll just want to take it regardless.

Stat weights themselves are generated through simulation. Someone else did all the work, and for my piece, while I did a lot of research into how those are generated, that research strictly wasn't necessary--unless I felt like challenging how stat weights are generated, but I didn't. So a basic assumption I went in was that stat weights are generally accurate for our purposes.

So the question has become, "For maximum standing DPS throughput for most classes, how many more ilvls does an upgrade need to have before you should probably take it no matter what, ignoring sockets and tertiaries?"

Step 2: Form a Hypothesis

Hypothesis: Poop Theft
For our question, we should take an educated guess at what the result might be. For my post, I figured, well, 15 ilvls is probably a pretty good bet given that's how much space there is between a raid tier.

If you're having difficulty forming a hypothesis, or you have so many caveats your hypothesis might be mistaken for a cell phone contract, you'll want to go back to Step 1. Your question is likely too broad.

The process of coming up with an educated guess will inform how you design your experiment. If your question is good enough, this step should be relatively simple.

Step 3: Construct and Execute an Experiment

Constructing an experiment requires you to take your question with your research, and use logic and/or math to determine a way to test your hypothesis.

Time to get into the nitty gritty! So to test that a 15 ilvl jump is sufficient to take an upgrade, we need a way to measure that jump. Thankfully, we can use aforementioned stat weights to measure how much value a piece of equipment offers. To determine if an item is an upgrade, we need only evaluate its value and compare it to the piece we're currently trying to upgrade.

But that's not sufficient. Remember that we're trying to find a more general answer, so perhaps we should consider the worst-case scenario: the item we're starting with has nothing but the best secondary we like, and the item we're upgrading to has nothing but the worst secondary, like an Enhancement Shaman with 630 Haste bracers, upgrading to 645 Versatility bracers. If we can show what ilvl bump is needed for the worst possible scenario, then anything better will clearly fit our model and hooray, success!

Step 4: Analyze Data and Draw Conclusions

What conclusion can you draw from this data?
Once you have your data, you need to compare it to your hypothesis. Do the results hold up your hypothesis? Partially or fully? Can you break or find holes in your results? Can you refine your experiment to test boundaries? Can you draw other inferences from your data? You may need to repeat the loop between Step 3 and Step 4 many times before coming to a satisfactory answer.

When I executed the experiment, I ended up showing that actually, 10 ilvls was more sufficient for Enhancement Shaman in the worst possible case. But again, that's not enough. We can't generalize with that. While Enhancement Shaman have some of the more divergent secondary stat weightings, they're not the worst.

So instead I found even more divergent stat weightings and repeated the experiment for a stat weight spread where the best is nearly twice as good as the worst (something that pretty well never actually occurs in simulated stat weights), and we found that, hm, actually, we'd need about 18 ilvls. More data and more calculations proved that to be an outlier, however, so we could caveat our results to the point where in most but the most egregious stat weighting cases, 10 ilvls was sufficient, and 15 ilvls was a sure bet.

Since the results held at lower ilvls, and stat budget is exponential in nature, ilvl gaps at higher ilvls would only exhibit this behaviour more strongly. That is, it would require smaller ilvl gaps to make an upgrade worthwhile at higher ilvls. Empirical analysis (basically, just trying the experiment at higher ilvls) bore this out.

Interestingly, my results didn't take into account procs on Trinkets, or the stat weightings for weaponry, so I had to caveat my results there as well. They don't match the constraints I put together in my question and research phase, so they'd also require their own experiments and refinement. Sockets, as mentioned before, also did not fit.

Step 5: Communicate Results

This is a very important step, not only because you're trying to answer people's questions, but because you're opening yourself up to peer review. Folks who read your work will naturally find holes in it. Every theorycrafter makes mistakes, but mistakes are completely okay. By correcting those mistakes, you either find your conclusions were bunk, or you can alter the experiment to make your conclusions even more airtight.

In my case, I published my results for secondary stats on my blog, and a totally valid criticism came along that I had used bracers, an item with very low, if not the lowest, stat budgets. So I repeated my experiments with an item that had one of the highest stat budgets: the chest piece. My results came back even stronger.

Expect challenges to your work. In fact, relish in those challenges. If someone pokes a hole in your logic or math, don't despair. Fix it! And if you can't fix it, and your experiment was a failure, you've still contributed knowledge to the greater community as well as your own experiences. In science, and in theorycrafting, failing and being wrong aren't bad things. It's still useful information other folks can build upon.


So that's it, that's theorycrafting in a nutshell. Having a math/science background helps significantly, as does knowledge in computer science. I can't offer how to analyze your data precisely, or how to generate exact experiments, because it differs greatly depending on the question, and some of that does require mathematics, statistical models, and so on.

But people didn't know off-hand how to build an experiment to test if molecules were made up of atoms: that only came after numerous other experiments that expanded scientific knowledge and consensus, and the same holds with theorycrafting. It takes practice, doing, and sound logical thought.

So start with something relatively small, what you think might be easy--you'll be quickly surprised at how not easy even the simplest questions tend to be with all of their caveats--but that's okay. Simplify and answer a very specific question, add in the caveats afterwards to generalize or explore your results further. And most importantly, have fun doing it! #Theorycrafting

Monday, January 26, 2015

[WoW] Is Raiding With 10 Harder Than 30?

So one of the things I've been mulling about in the back of my mind is in World of Warcraft, are current raids more difficult with fewer people? When you look at Highmaul, most mechanics require a static number of players to handle them, regardless of raid size:
  • Kargath - 5 players go to the stands
  • Butcher - Most strategies require the movement of 2 players
  • Tectus - Each shard requires a ranged player to deal with Crystalline Barrage
  • Brackenspore - Two players are utilizing Flamethrowers to keep moss at bay
  • Twin Ogron - Enfeebling Roar is distributed among 10 targets maximum (20 for Mythic) - WoWhead data is wrong on this.
  • Ko'ragh - Every time Ko'ragh goes into recharge mode, you need to use a (preferably) ranged player to use Nullification Barrier to soak Overflowing Energy
  • Imperator Mar'gok - Usually need 2 players to handle Branded
The more players you have, the less you notice the absence of players handling special mechanics. For example, in a 30-player raid, losing two DPS to handle Flamethrowers is trivial, because you're probably running 22 - 23 DPS, meaning at worst you're only losing 10%. In a 10-player raid, you're only running 5 - 6 DPS, so you've now lost 33% - 40% of your total DPS.

Now, granted, in the Brackenspore case they get a buff to offset DPS lost, but that's not always the case. Tectus at some point you're dealing with losing 5 ranged players to running around dodging Crystalline Barrage. In a 10-man raid, that means you may end up with all of your ranged DPS and healers running around only able to toss out instant-casts!

Similarly with Kargath, losing half your raid (more than half your DPS if you're currently running 3 healers) every time you get tossed into the stands is a significant loss of DPS on the boss. Twin Ogron's Enfeebling Roar becomes trivial to soak if you have a big enough raid, as your melee/tanks will basically auto-soak it by virtue of 10 players near the boss, with nothing extra required to handle it.

I understand why the developers/designers wanted to avoid numerically scaling mechanics: it creates optimal inflection points (like the ye olde 14 players of SoO Flex) that correctly or incorrectly, raids will balance themselves around. But arguably health on some of these bosses should not scale linearly. The difference between adding an extra DPS player on Kargath means you've added 50% extra damage during the stands phases with 11 players (having 3 DPS on the ground), versus adding an extra DPS player from 29 to 30 players, which would be an extra 6% or so damage during the stands phases (with 19 DPS on the ground).

Given each Chain Hurl you're expected to be in the stands for the 45 seconds, and starting at 1:30 into the fight you see a Chain Hurl about every 2 minutes, a 5-minute fight you're short DPS for 30% of the fight. Meaning for 10-player, you're short a total of ~15% DPS or so, compared to 30-player where that would work out to a ~1.8% DPS deficit. Adding an extra DPS to make an 11-player raid would reduce that to ~7.5%, and from there the number begins to decline.

Not quite sure what happened at Players = 20. I checked a couple logs and they both had that dip.
However, digging through WarcraftLogs, I found the health values for Normal Kargath across all raid sizes. It's clearly a linear progression (approximately 3.3 million health per player added). This suggests that fewer DPS players need to do a fair bit more DPS to make up for the lack of players. Thus, Kargath is quantifiably more difficult for 10 players than he is for 30. The more players you have, the less DPS each player needs to do in aggregate.

Granted, especially on lower difficulties, many raids just ignore the stands completely (healing through the extra damage), but the fight as designed expects you to send folks to the stands, and for initial kills that's likely the case.

The same pattern can easily hold for pretty well every mechanic I've listed in the preamble. I just wish I could filter WarcraftLogs' data for average ilvl for kills over a time period per raid size so I could either support or debunk this argument. In theory, if the average ilvl for a given raid size is smaller than a different raid size, if we have enough samples we could say that it is likely easier--caveat certain raid sizes for Mythic guilds, as they tend to be above 20 players on Heroic mode so they can gear their bench, so data may be slightly skewed.

How's Healing Affected?

Healing is a lot harder to quantify, as lots of damage tends to be optional. However, more healers means more overlap. When you're running two healers, that leaves with little to no room for error. When you're running with 5 or 6 healers, yes, there's more damage going out, but you can only amp up tank damage so much before we're back in two-shot territory circa MoP, and even if you say, double the damage taken between 10 players and 30 players, the fact that you have twice as many healers staring at your tanks' health bars means if one healer gets distracted for a moment (like having to run away from Tectus' mechanics), you're less likely to lose that tank.

Then there's also the age-old issue of losing players. Thankfully the battle-rez charging mechanic they added helps this issue quite nicely, but you still have the issue where at the end of the day, if you're down two players in 10-player raids, that's 20% of your raid, versus two players in 30-player raids, that's only 6.67% of your raid.

About the only thing that is harder in bigger raids--aside from having to organize that many people and analyzing what went wrong is probably nightmarish--is space. Fewer players means fewer people overlapping for any mechanics that require spreading (i.e: Expel: Fire on Ko'ragh, or Pulverize on Twin Ogron), but that goes back to the fact that when you have 2 - 3 times as many healers, you need to amp up damage somewhere, and if you aren't increasing it on the tank, you're increasing it on the raid, and a lot of these overlap mechanics are where you'll see the increased damage taken to keep those extra healers busy.


So even ignoring the touchyfeelycraft around tank damage and healers, DPS at least shows a quantifiable increase in difficulty for smaller raid sizes that is currently not being taken into account by Blizzard's raid encounter designers if Kargath himself is any indication. Note that the more stringent DPS requirements means that if they're not being met, the strain will be passed on to the healers and their mana pools, as they'll have to heal for a longer amount of time.#WorldOfWarcraft, #Theorycrafting

UPDATE: It's clear between the discussions on Twitter and Bakoth's comment below, my point was lost in the minutia of my post. It's not just that raiding with 10 is harder than 30, it's that it's excessively more difficult.

The above graph is the DPS loss charted over the number of players, (and you can clearly see in the graph when I add an extra healer). For a 10-man, the players need to play disproportionately better than the players in a 11-man, and then again for a 12-man. The DPS loss is a curve. If it was linear, then yes, I would agree that all is fine and dandy.

This graph is the DPS deficit each remaining DPS would have to make up (this is mildly faulty given that the 3 players in the stands can increase their own DPS in the ~70% of the fight they aren't in the stands, but I don't really care to do the algebra when this will still illustrate my point accurately enough). This graph is clearly an inverse exponential curve.

The remaining DPS must make up a 9% deficit each for 10-player. But 11-player needs only to make up 5% each. 12-player, 3.21%. 13-player 2.25%. Once we hit 14 or 15 players, we're close enough to linear that I would say it would meet the goal of making things a little bit easier as your raid gets bigger.

Kargath, due to the nature of 3 DPS rather than 2 in most other cases, is a more extreme example. Luckily, he's the first boss of the tier, so this difference is largely steamrollered by the fact that, well, he's quite an easy boss on both Normal and Heroic. However, my point stands: static assignments disproportionately punish the smallest raids.

Is it a huge differential? To a Mythic guild bumming around in heroic, no. It's not. To a guild that's struggling to hit their DPS targets to begin with (take a hypothetical Kargath-like fight later in pretend Tier-18), you have fewer players, and all of them must improve a significant margin.

Is it even worth changing the mechanics? Honestly, probably not. But a simple tweak in health scaling at the lowest end would smooth that curve out a little. Leave it such that more players means an easier raid, if that's Blizzard's goal, by all means, have at it. However, the current style of mechanics aren't really solving the "inflection point" issue they had in SoO Flex. Instead, it's just pushed the inflection point such that optimal raid size is greater than 13 or 14 players.

Monday, January 19, 2015

[WoW] My First WoW Arena Foray

Over the past couple weeks I've started getting into WoW's PvP, and I've actually had a pretty good time.

Now, let me make something clear: I still hate World PvP, where the modus operandi is wander around with a gang of players and find smaller gangs to annihilate. And after playing through enough Ashran to make my eyes bleed to get my honor set, I still hold that to be true. That is emphatically Not Fun. Oh the occasional one-on-one or two-on-two skirmish that I got into was a blast, even when I lost. But if I wasn't getting whacked by roving bands of the opposing team, it was watching the complete cluster that was the mobs of players on the main road.

Granted, a single Flame Shock and a judicious Lava Lash, run away and spam Fire Nova? Numbers everywhere the eye could see. But even that lost its luster incredibly quickly.

What I DID find fun was Arena. But let's back up a second.

My main character is an Enhancement Shaman this expansion, and since my BF convinced me to give Arena a try, and he always mains a healer, I figured, all right, let's take the DPS I'm most familiar with even if everyone says it sucks.

In Ashran, at least, I managed to make about 3k honor an hour thanks to Tablet of Ghost Wolf and just wandering around looking for treasures (which would net me anywhere from 30 - 150 artifact fragments). When you turn in 500 of those suckers, you're looking at 2k honor plus 2.5k rep. Getting my honor set went extremely quickly. I just basically ignored all the PvP aspects of Ashran to do it.

With a full set of honor gear, a little research into glpyhs/talents and PvP tactics away we went. We weren't expecting to win very many matches. He hadn't Arena'd since Cataclysm, and I never Arena'd at all. Add that to our very odd combination of Enhancement Shaman/Discipline Priest, and, well, we expected the worst.

Turns out we're better than we thought.

Enter the Arena

Sixty-one 2v2 arena matches, with a 54% win rate at a 1400ish MMR. Which isn't great, I realize. It's kinda terrible if you compare it to folks who do PvP with any sort of regularity. But given that's a grand total of 61 PvP battles I've **ever** had, and well, I'd say it's okay. Anyways, we were expecting closer to a 25% win rate to start.

However, boy am I really starting to feel how poorly Enhancement Shaman is set up for PvP. Our one major CC, Hex, 45 second cooldown. Our only stun, Capacitor Totem, easy to stomp, 5 second windup, basically requires Totemic Projection to be usable (which I'm still only so-so at). Compare that to spammable Cyclone, or a single Rogue putting me out for a full 12 - 16 seconds, even with a trinket, and it's just strange. I cannot begin to imagine how frustrating PvP was before they did a pass on hard CC.

Granted, I do have lots of snares, and lots of movement boosts, so unless I'm facing a DK, I'm pretty hard if not close to impossible to shake. DKs, on the other hand, are close to impossible for me to escape, even with Windwalk Totem/Spiritwalk.

And having 20%+ of our DPS tied to a totem that can be taken out in 2 GCDs? Thanks Fire Elemental, for absolutely nothing. I've gotten decent at hiding the totem behind pillars, or using Totemic Projection to move it if enemies are getting close, but anybody who's even remotely useful stomps it flat in no time. Actually, totems in general are a problem for that.

But spammable Purge? Yay! At least we're good for something.

However, Enhancement single target DPS is definitely lacking. Nine times out of ten the other team has more damage done than I did, even with all of my cooldowns in use. I simply cannot compete with Warriors, Rogues, DKs, or Ret Paladins for DPS even remotely. They usually have a good 30% on top of me. And don't get me started on Hybrid Heals. I've seen Frost DKs pull off as much healing as a healer does in an Arena match. I mean, what's the point of bringing a healer?

Comp Time

Anyways, those frustrations aside, I have been having fun. There are some comps that we generally just throw up our hands because unless they're totally incompetent, we can't do squat about them (Rogue/Warrior or Ret/DK are generally the case, though we've actually gotten better at surviving Ret/DKs and have actually won a couple, but there are a LOT of Ret/DK comps). Other comps are annoying, but we generally win unless we goof up.

I've seen a total of 2 other Shaman: a Resto and an Enhancement. The Enhancement Shaman was part of a comp with a Beast Mastery Hunter, and they summoned all the pets. I was like, okay, you're going to give me 6+ targets? You're going to get Fire Nova'd into oblivion. And they did, and we won in short order. It was like Enhancement was the perfect counter to Enhancement. The Resto Shaman I trounced quickly as well, burst them into the ground. They definitely did not pose a threat to us whatsoever.

Interestingly, the grand majority of players we've run into have been Ret Paladins, Frost DKs, Arms Warriors, Hunters, and Rogues, with a few Feral Druids for good measure. Pretty much every other spec we've only run into 1 or 2 (although that Brewmaster was lethal as heck. Another class where I just could not out-DPS their healing throughput). Not a lot of ranged classes, now that I think of it.

My BF is starting to note comps we lose or win to, and why we won/lost so we can start being more strategic about things, but it's been a good time so far. Should be interesting to see how things go. In any case, my PvP instincts are starting to get better, and hopefully we'll see if my skills improve. On the bright side, some of the Conquest 660s I've bought are good PvE upgrades since we're only starting to get into Heroic mode.
#WorldOfWarcraft, #PvP