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