Posts

Hearthstone: Randomness & Aggression

Hearthstone is a wonderful game and an incredible addition to the digital collectable card game  (CCG) genre.  Like so many others, I found a true sense of excitement and fun while playing and for the first few months, I would even say I loved Hearthstone!

Yet as the metagame has shifted — a term loosely defined in CCGs as “the defining, powerful, or most popular decks” at any given moment — a number of destructive trends have emerged in Hearthstone that have begun to severely detract from the game’s enjoyment for many players, myself included.  The be-all and end-all game design ambition of “always fun” is beginning to slip away and as I will demonstrate here, can in large part be attributed to a few key mechanics within the game design itself.

Deck Size, Card Draw, and Mana Generators

To examine the importance of concepts like deck size, card draw, and mana generation in Hearthstone, a logical first step is to explore other successful games in the genre.  One such game is Magic: The Gathering — a very popular trading card game first released in 1993 by Wizards of the Coast — which presently has a library of nearly 14,000 cards available or introduced at one time.  Like Hearthstone, Magic players craft a deck from the large assortment of cards, with a deck typically containing 60 cards with a maximum of 4 of any individual card.

While there are many sub-sets of cards and play formats that players can take part in, designed to limit the choice of cards available for deck creation, the sheer volume of card options for average players offers a staggering amount of choice and volatility.  Thus, while within an actual match, a large source of uncertainty for Magic players is caused by the huge variety of cards available.  Generally, a player will not know what cards the opponent has in his or her deck.

Hearthstone decks are constructed quite differently by comparison.  Each deck contains merely 30 cards with a maximum of 2 duplicates of any specific card.  Most importantly, the Hearthstone developers made an interesting (and arguably insightful) decision to remove the need for mana-producing cards by providing an auto-generating mana resource known as Mana Crystals.

At the beginning of a turn, the player gains one new Mana Crystal (up to a maximum of 10) and all existing Mana Crystals are refilled.  When a card is played that costs mana, that cost is subtracted from the current Mana Crystal pool, providing an automatic mana generation system and allowing the player to focus solely on the more interesting, action-oriented cards.

This decision to remove mana-generator cards from the game has a dramatic impact on the total deck size and creates relatively low variance while playing the game.  While the odds of drawing any specific card is the same 1 in 15 chance for both Hearthstone and Magic, the key difference is that nearly every card drawn in Hearthstone is “actionable” because dead mana-generator cards do not exist.  Magic decks, on the other hand, typically contain about 1/3rd land cards (mana-generators) while the remaining 2/3rds of the deck are actionable cards.

In both Magic and Hearthstone, it is standard play to draw one card at the start of your turn, meaning a Magic player will draw a mana-generator approximately 1 out of 3 turns, which only serves to potentially enable already existing cards in hand.  Yet a Hearthstone player will always draw an “actionable” card at the start of every turn, always increasing the potential plays that can be made over the equivalent Magic hand.

While it is true that mana-generators in Magic do enable potential plays by nature of having more mana available than you might otherwise, the benefit to that extra mana diminishes severely as the game progresses.  In the late game for a Magic match, it is not uncommon to have more mana available than you can utilize with playable cards.  While the same is true of Hearthstone in the late game, as mentioned above, the key difference is that in Hearthstone you are drawing 3.33% of your deck automatically every turn, and every card is actionable.  By comparison you are drawing just 1.66% of your deck at the start of a turn in Magic, and 1 out of 3 times that card will be a virtually-useless land card.

A side-by-side comparison of two unique games with completely different designs is not precisely fair or even informative, but these differences serve to highlight the issues that have begun to crop up lately in the Hearthstone metagame.  The lack of mana-generators as cards in Hearthstone has a significant impact on how the game plays out, and consequently, dramatically drains the potential for variance in-game or even from match-to-match.  With nearly every card in Hearthstone being “actionable” and not related to mana-generation, a player can safely assume every card has an impact on the game, either directly on the opponent or on the board.  Unlike land cards as the mana-generators for Magic — which often become dead cards if the game goes on long enough — all 30 Hearthstone cards can be relied upon to have a potential impact on the game, a design principle that has two significant consequences on gameplay:

1. A Hearthstone player is very likely to know what cards the opponent has in hand or is likely to draw into.

This issue comes from the combination of small deck size, always actionable draws, and a significant lack of options for deck building primarily tied to the segregation of cards by class and relatively small card pool.

Hearthstone is designed around famous characters from the Warcraft universe, each of whom personify a specific hero or “class,” flavoring everything from the hero portrait and voiceovers to class-specific cards.  Upon the game’s release, each Hearthstone class had access to 25 class-specific cards, which can only be used in a deck for that particular hero.

While there are also a large assortment of “neutral” cards — cards that have no class-specific allegiance — in most cases a newly created deck will contain only the most powerful and reliable cards that match the style for that deck.  Since deck size is limited to such a relatively small number, the room for variation or experimentation in the deck-building process is almost completely eliminated in favor of the strongest cards that fit the required role.

This lack of choice in deck-creation and relative strength of particular deck builds causes players to near-instantly recognize the deck of the opponent at the outset of the game.  The significant lack of diversity is most apparent when even an average player can see only the class of the opponent and within the first 1 or 2 turns, be capable of listing off 90% or more of the cards in that opponent’s deck.  This issue can be seen to some degree for every hero in the game, but is most prevalent in the strongest decks that exist in the current meta, such as Miracle Rogue, Handlock, or Zoo Lock at the time of writing.

The recently released Curse of Naxxramas “adventure” for Hearthstone promises to deliver 30 additional cards all told (9 of which are class cards — 1 for each class).  While this is exciting news for many Hearthstone players to finally see new cards in action, this relatively small number of additional cards will only serve to shift the metagame into slightly different decks than exist now.  Once the dust settles, the same issue of instant recognition for the majority of the most powerful decks will still dominate the ladder and even tournament scene.

2. A Hearthstone player is very likely to draw into an “actionable” card that he or she needs to immediately win the game.

During Hearthstone’s beta testing phase and even for some time after release, Hearthstone was fresh and still somewhat unknown to the playerbase as a whole.  During this period, a wide variety of strategies and therefore decks were available and viable — from aggression or control to mid-range or late-game.

Burst Damage & Combo Finishers

As the game matured, the community began to recognize that the most reliable avenue to victory in Hearthstone was through aggression and most importantly, extreme card combinations.  The fairly small health pools of 30 hit points compared to the burst damage potential means that in most cases, decks with a “finisher combo” will ultimately be superior.  The most infamous source for this burst damage potential at present is Leeroy Jenkins, a card that can deal 6 attack damage the same turn it is played due to the Charge attribute.  Combined with cards like Shadow Step for Rogues or Faceless Manipulator for other classes (most commonly Warlock), it is not uncommon for a player to be capable of dealing 15+ surprise damage in a single turn, well over half the opponent’s total health!

In fact, the Charge mechanic (or equivalent) — which effectively allows damage to be dealt without any warning to or reaction from the opponent — is the primary factor in nearly all burst damage finishers used in the current metagame.  Leeroy Jenkins is the most well known, but Druids will also use the very popular Force of Nature + Savage Roar combo for 14 burst damage, Zoo Locks might use Doomguard, Shamans with Al’Akir the Windlord or Doomhammer plus Rockbiter Weapon, or even Mages with combined spell damage from Fireball, Frostbolt, and Ice Lance; the list goes on.

Invariably, due to the strength of these card combinations, the metagame has almost entirely shifted towards decks that take advantage of these extreme combinations in the most powerful and consistent way possible.  Since a player will automatically draw 3.33% of his or her deck at the start of every turn, and because all cards are “actionable” and have the potential to impact the game, many decks simply focus on creating card draw opportunities throughout the early game until the finisher combo is assembled in hand.  Once assembled, the player must merely remove any barriers that exist to executing that combo (usually in the form of a Taunt minion for the opponent), and with enough mana the combo is unleashed and the game is won!

This trend in gameplay leads to very disheartening experiences for a large portion of players.  Facing a highly aggressive or combo-heavy deck often means the opponent is largely playing the game in a vacuum, with far less regard for their opponent than would normally be required.  By and large, a Miracle Rogue player is often able to focus attention on efficiently drawing cards and cycling through his or her own deck to build up combo pieces for the finishing blow.  The Rogue’s opponent is only a means to distract from that goal.  Rather than playing a back-and-forth match each turn, the Miracle player can essentially play a solo game, only considering the opponent’s play for how it most efficiently enables the card draw and build up toward combo pieces.

With the release of Curse of Naxxramas introducing a few new cards, the aggressive styles still remain just as popular, if not more so, with decks like the Warlock “Naxx Zoo”.  Naxx Zoo is a spinoff of standard Warlock Zoo that incorporates a few of the stronger Naxx cards such as Nerubian Egg and Haunted Creeper to get even more early minion strength on the board for an even stronger presence out of the gate.

Hearthstone Randomness

We’ve thus far identified a few key design components that have shaped the metagame within Hearthstone to date: faster decks through always-actionable cards, relatively low health pools, instant-combo finishers or heavily aggressive rapid damage, and massive card draw capabilities.  With these concepts in mind, we can now dive into the core abstraction that underpins all these factors, invariably leading to the strength of the aggressive or combo-heavy styles that dominate the game today: Randomness.

When talking about randomness in games, especially a card game like Hearthstone, it is vital to first differentiate the types of randomness that exist and compare the fundamental differences.

Passive randomness refers to random events that are out the player’s control.  For a game like Hearthstone, passive randomness is most frequently experienced through card draw and the overall order of cards within a 30-card deck.  A good Hearthstone player will know his or her deck and can estimate the odds of drawing any particular card as the game progresses, but the randomness of drawing those cards in any particular order always exists and is the fundamental aspect of luck within CCGs as a whole.

Of course, passive randomness can be found in many other games as well, and is most often manifested through the actions of the opponent or enemy.  When Deep Blue made a move against Garry Kasparov playing chess, for example, that represents a passive random element for Kasparov that he must react to in future moves.  During a League of Legends match, whether the opposing team decides to stay spread in their respective lanes or team up to take down Baron Nashor instead is another form of passive randomness that the opponents must react to.

Active randomness is how I refer to random elements in a game that occur due to the player’s direct actions.  In Hearthstone, active randomness is most commonly seen when playing cards with “random” mechanics.  Animal Companion, Arcane Missiles, Mad Bomber, and Ragnaros are just a few examples, but across the current catalog of ~400 Hearthstone cards there are well over 40 cards with active random elements, even ignoring the cards which produce randomness purely through draw mechanics.

Perhaps not surprisingly, active randomness is far less common in competitive games and for good reason: Randomness and skill are largely at odds with one another within competitive environments.  Would Kasparov have been nearly as strong a chess player if every tenth move he made was randomly altered to a different move?  Certainly not, and it’s for this reason that most highly competitive games seek to avoid active randomness as much as possible. Real-time strategy games like Starcraft, first-person shooters like Counter-Strike, fighters like Super Smash Bros. or Street Fighter, and of course classic board games such as chess or Go — all of these almost entirely avoid active random elements to promote true tests of skill between players.

If active randomness is so harmful to truly competitive gameplay, then why does it exist in games like Hearthstone?  Skaff Elias, a Game Designer at Wizards of the Coast for the majority of early Magic: The Gathering expansions, offered his own insights into this question during his 2011 Game Developer Conference (GDC) talk, What Can Video Games Learn From CCGs?  As a very brilliant creative force behind one of the world’s most successful CCGs ever, and addressing an audience comprised of almost entirely fellow creatives in the gaming industry, Elias focuses his talk on key business lessons that CCGs have taught him.  CCGs provide a “repeat purchase revenue model” Elias contends, so a long-term plan for success focuses on “a wide range of customers with different amounts of skill, free time, […] and especially money to spend.”

Elias goes on to discuss the core concept that “every game is a sales pitch,” whereby the developer must ensure when a player is playing even a single match within the game, by the end of that match, the player should be inclined to potentially make a purchase.  “For objects to have a clear benefit across different entry times and purchase levels, the value of each purchase (in winning %) should have only logarithmically increasing value,” claims Elias.  In other words, in a CCG setting like Magic: The Gathering or Hearthstone, the first 10 packs of cards should provide a huge boost to the player’s winning %, while the 10 packs purchased when a player already has, say, 500 packs should present a fairly small marginal gain in winning %.

While not directly tied to the concept of designing active randomness into the game, it’s important to first understand Elias’ viewpoints on these business model practices in terms of CCGs and how those practices might impact design elements such as randomness.  “If every game is a sales pitch,” Elias continues, “for small audience sizes, a high degree of randomness in gameplay is critical.  For astute audiences, it is very helpful to maintain discussion about strategy [and] value.”

A subtle choice of wording in that last phrase from Elias is critical: “…to maintain discussion about strategy [and] value.”  While not directly stated outright, the implication from Elias here is that an “astute audience” must simply be allowed to discuss strategy within the game itself, but not necessarily be able to consistently act upon those strategic elements.  Again, Elias goes on to directly refer to the importance of randomness from a perspective of revenue, “Your customers are your salesmen.  Intermixing of large populations is nice, making randomness even more critical.”

While these points made by Skaff Elias in early 2011 — a nearly 20-year veteran in the CCG marketplace — are certainly not attributable to Blizzard and therefore Hearthstone by association, it is undeniable that much of these core concepts that Elias discusses were principally built into the basic mechanics of Hearthstone from the ground up.  With such a heavy focus on active randomness at the heart of Hearthstone — in addition to the relative strength of agro/combo-heavy decks to quickly burn down an opponent — it seems clear that Hearthstone was designed with far less regard for the skill of two opponents deciding the outcome than the majority of other competitive games.  While individual skill is a moderate factor in how successful a player is at Hearthstone, by the very nature of its design, Hearthstone does not shy away from allowing randomness to dictate the outcome of a game.

There is nothing inherently wrong with allowing a bit of randomness into a game, so long as those elements are appropriately accounted for.  In his wonderful book Uncertainty in Games, award-winning game designer Greg Costikyan discusses both the positive (and negative) outcomes of introducing random elements or luck into the design of a game.  “If a game contains even a small element of strategy,” Costikyan writes, “then as the number of random tests approaches infinity, the outcome of the game is more and more likely to be dictated by strategy than by chance.”

Not only does this claim work mathematically, but it makes basic logical sense.  Imagine two players sit down to play a game called “101 Flips,” where one player is assigned “heads” and the other “tails.”  If the players then flip a coin 101 times, and the winner is determined by which sees their side of the coin come up most often at the end of the 101 flips, then the randomness is distributed fairly evenly across the entirety of the game.  That is, a 50/50 chance on a single flip presents a very volatile random element for that individual flip of the coin, but since a “full game” consists of 101 total flips, as Costikyan points out, the randomness matters less and less in the grand scheme as the number of flips within a game increases.

On the other hand, Costikyan also discusses the flip side of the coin, so to speak, by acknowledging the massive discrepancies that individual random elements can have on the outcome of a game if each random event is not of equal import.  “[…] This analysis presupposes that each random test has roughly the same impact on the game as every other such test; there are cases when this is very much untrue,” he says.  “It might be that a handful of random tests are critical.”

Once again, this principle can easily be understood mathematically as well as logically by examining the “101 Flips” game.  If one player is late for work perhaps and only has a short time to play, and the game is instead changed to “3 Flips,” now the random events are so few yet so vital to the outcome that one player will invariably be “luckier” than the other to dictate the entire game.

Obviously, using a game such as “101 Flips,” where the outcome is completely dictated by randomness and in no way skill, is not directly comparable to discussion of video games like Hearthstone, but it sets a groundwork by which to examine these issues within those games.  As previously discussed, Hearthstone already has a huge volume of potential sources of both active and passive randomness, and the problems crop up because those random elements are not evenly distributed nor remotely close to being equally impactful upon the outcome of the game.

The most well-known of these random elements to impact the outcome of a game is Ragnaros, often seen deciding even high-profile matches in tournaments.  In professional situations these Ragnaros-decided matches were first seen during ESGN TV’s Fight Night tournaments and Ragnaros has often been the ultimate randomness for deciding matches ever since, even showing himself multiple times in the recent Intel Extreme Masters XI Shenzhen and Ongamenet’s KR-CN Masters, both taking place during July of this year.

It is vital to stress that Ragnaros is just one extreme example because the outcome of his results are most immediate and apparent on the state of the game, especially because he is typically played at such a late point in the match.  Yet as previously mentioned, there are many such cards and situations within a game of Hearthstone that are random determinations to the ultimate outcome of the match.

The issue, as outlined by Greg Costikyan, is that in Hearthstone, these random events are not common enough within a single game to equalize the overall outcome, nor are the effects of these events distributed fairly equally between both players.  Instead, far too often, one or two random events will dramatically (and negatively) impact the state of the game for a player, to such a degree that victory within the game is almost hopelessly out of reach.

These random elements are fundamentally tied to the concepts of active vs. passive randomness as well.  Some might argue (and rightfully so) that when a player chooses to play Ragnaros or any other random-element card in Hearthstone, that is in part a choice; a measured calculation of potential outcomes, and the skill inherent in that decision is what distinguishes a good player from a bad one.  While this is true for the player making that play, as a form of active randomness on his or her part, the key factor is the opponent’s perspective.

If an opponent plays Ragnaros and the random event ends in that opponent’s favor, the only conclusion is that a random event dictated that outcome and the opponent was lucky, potentially to such a degree that the game is virtually unwinnable now for the non-Ragnaros player.  In this situation, for the player facing down the Ragnaros, the play is a form of passive randomness — a random event that is outside of the control of the player.  While the opponent was able to choose whether to risk the randomness of that play as an active decision, the player on the receiving end has no say in the matter and thus no way to react before the randomness potentially dictates a massive swing in the game if not an outright decision on the outcome as a whole.

Inherent Randomness

We’ve established that Hearthstone has core design elements focused on randomness, thereby enabling relatively unskilled players to be successful through the use of always-actionable cards, aggressive/combo decks, and random outcomes.  Even still, a few fundamental questions remain:

Does built-in randomness have a place in Hearthstone and games like it?  To what degree should a lesser-skilled player be capable of defeating a greater-skilled player?

To begin answering these questions, it’s first a good idea to examine what sort of intrinsic or inherent randomness already exists within the game itself, prior to adding purposefully random elements on top of it.  Card games like Hearthstone, by their very nature, already contain an overwhelming volume of passive random elements through deck shuffling and therefore basic card draw.

To illustrate, if we built a standard Hearthstone deck of 30 cards and it was made up of duplicate pairs of 15 unique cards, after shuffling at the start of each game, the odds that we would ever get the same order for our 30 shuffled cards is 1 in 8 billion billion billion, or ~8.09×1027!  By the most generous estimates, that’s a number around 8000 times greater than the number of grains of sand on the entire planet.  To put that number in Hearthstone terms, if the entire population of the world at present were all forced to sit down and play Hearthstone against one another non-stop all day, every day, with an average game time of about 10 minutes, it would take an average of ~43.2 trillion years for someone to see an identical shuffle in their 30-card deck!

In other words, the draw order that dictates much of the randomness ingrained in a CCG like Hearthstone is so inherently random, it is statistically impossible to ever have the same draw order across two games.

It is my own opinion that the randomness of card draw is plenty sufficient to provide “luck” factors to players within a Hearthstone match, allowing a weaker player to sometimes defeat a stronger player, but as is evident by the design of much of Hearthstone, it is clear that the Hearthstone design team did not feel those factors alone were enough.  Since Blizzard is fairly tight-lipped about such topics, we can only guess at the true intentions of these design decisions, but as illustrated by industry veterans such as Skaff Elias and Greg Costikyan, it seems evident that Hearthstone was absolutely designed to allow a more casual, less-skilled player to be victorious, and often on a very regular basis.

Diluting Randomness

If such a goal was even worth considering, how could Hearthstone be altered, in a subtle yet fundamental way, to reduce the negative effects of randomness upon the current metagame without completely dismissing the wide range of skill within the playerbase?

The first step is to take a page out of Greg Costikyan’s book, quite literally, and reduce the strength of existing passive random elements in Hearthstone to have far less impact on the outcome of the game.  “Designers can adopt strategies to minimize the impact that luck has on outcomes, such as balance among random elements, exposing all players equally to random elements, and/or regression to the mean,” writes Costikyan.

Going back to the prime example of Ragnaros, it is clear that the randomness of Ragnaros is not even remotely exposed to all players equally, since there is no potential downside for the player playing Ragnaros.  A random-element card like Mad Bomber, on the other hand, is a much better design for two fundamental reasons in the realm of Hearthstone mechanics.

First, playing Mad Bomber exposes all players equally to both the positive or negative outcomes.  This means that while the player placing the card has the advantage to consider the potential results and therefore choose whether to trigger the active randomness caused by the card, within statistical reason, it is just as likely to go poorly for the player as for their opponent.

Second, as discussed by Costikyan, Mad Bomber’s random effect is split into many “lesser” events to make up the total of his output.  Each bomb he throws is a single point of damage on a single random target, and (ignoring now-dead targets) each bomb has no impact on future bombs in the series.  This wider distribution of random elements serves to lessen the severity of any individual event from overshadowing the entirety of the play as a whole.

By contrast, of course, it is all too common for a card like Ragnaros to have a 50/50 chance of winning the game outright or even indirectly winning by killing a vital minion that exists on the opponent’s board.

Reactivity is Key

Aside from built-in randomness within card design, as discussed previously, the other huge factor in the current metagame that leads to such overwhelming strength in draw-heavy, aggressive, or combo-oriented decks, is the lack of potential reactivity from an opposing player.

One potential solution, albeit a very fundamental addition to the game as it currently exists, is a basic concept I call the Reaction Phase.  The Reaction Phase is, in essence, when a player has an opportunity to react to what their opponent played during a given turn.  The concept ties into a similar notion of “Instant” cards from Magic: The Gathering, but is fundamentally different in a key way to maintain the speed and fast-pace of Hearthstone games to date.

Once your opponent completes his or her turn, but before your turn begins, you enter into your Reaction Phase.  The Reaction Phase would be very short in duration, perhaps 10 seconds, during which time you are allowed to play cards with the “Reaction” trait.  Each successful Reaction card played would cause the 10 second timer to reset, allowing time for a second Reaction card to be played if needed.  This ensures that a player would not be able to keep the Reaction phase going overtime by “faking” a cast then cancelling over and over, and instead the 10 second timer would run out and the Reaction Phase would end.  Moreover, to prevent Hearthstone games from becoming much longer, the simple solution is to cut out 10 seconds of “standard turn” time and use that saved time for the Reaction phase instead.

Other than the timing, playing a Reaction card behaves just like any other played card, except because the Reaction phase is prior to your turn, Reaction card mana cost is subtracted from your starting mana pool when your normal turn begins.

The goal of Reaction cards is to allow a player to react to the opponent’s turn prior to final resolution of the turn’s outcome.  Since Reaction cards are technically played on the opponent’s turn, they can have unique flavor and interactions that aren’t necessarily logical as a standard card played on your turn.  Often this would be interactions based on the actions or plays of the opponent during that turn, such as damage dealt, cards played, types of attacks, types of minions, and so on.

Below are a few quick examples of potential Reaction cards.

  • Reverse Damage: Heal your hero for the 50% of the damage dealt to you this turn, rounded down.
  • Cancel Magic: Choose a single spell cast by your opponent this turn.  Revert all direct effects of that spell.
  • Flip: Swap the attack and health of an enemy minion.  Damage dealt this turn from this minion is adjusted accordingly.
  • Bubble: All damage dealt to target minion this turn is reverted.
  • Shield Break: Return all enemy minions played this turn with Taunt to opponent’s hand.
  • Drawdown: Return all enemy minions that dealt damage this turn to opponent’s hand.

The Reaction phase would need to provide a simple UI element when appropriate for selecting cards that are not on board but were relevant in the previous turn (such as when using Cancel Magic, to select among the spells the opponent played the previous turn).

Reaction cards which have revert effects should also only alter actions for which that target card was directly responsible.  For example:

  1. You have a 4/4 Dark Iron Dwarf and a ⅘ Chillwind Yeti on the board.
  2. The opponent casts Flamestrike, dealing 4 damage to and killing the Dark Iron Dwarf outright, while the 4 damage to the Yeti leaves it at 1 HP.
  3. The opponent uses his or her 1/1 Novice Engineer to deal the final 1 damage to finish off the Chillwind Yeti, killing both the Yeti and the Engineer in the exchange.
  4. During your Reaction phase at the end of the turn, you use Cancel Magic and select the Flamestrike spell to cancel.
  5. The Flamestrike’s direct effects are cancelled.  This means the 4 damage it dealt to both the Dark Iron Dwarf and the Chillwind Yeti are reversed.
  6. Therefore, your Dark Iron Dwarf returns to the board as a 4/4 minion.
  7. Your Chillwind Yeti also returns as a 4/4 minion, down 1 health because of the attack from the Novice Engineer.
  8. Since the action of the Engineer was not a direct effect of the Flamestrike spell that was cancelled, it is not impacted, and therefore the Engineer is still dead and the Yeti has lost the 1 HP of damage it suffered.

Another simple example:

  1. You have a ⅗ Sen’jin Shieldmasta on the field (which has the Taunt attribute).
  2. The opponent has two 3/2 minions on the field.
  3. The opponent casts Fireball and kills your Sen’jin, then attacks your Hero with both 3/2 minions, dealing 6 damage to you.
  4. You cast Cancel Magic in your Reaction phase and choose the Fireball to revert.
  5. Your Sen’jin no longer takes 6 damage, and thus is returned to the field as a ⅗ Taunt minion.
  6. However, because the Fireball only directly affected the Sen’jin, the Cancel Magic has no impact on the two 3/2 minions nor the damage they dealt to your hero.  They do not get “stopped” because while the Sen’jin remaining alive during the attack would’ve caused the Taunt to get in the way, the Cancel Magic only alters the direct effect of the canceled Fireball spell.

Conclusion

Hearthstone is a fantastic game and has the potential to stand the test of time, but it needs to have some serious changes considered to reduce the reliance on the built-in random elements when inherent randomness already exists by nature of its CCG roots.  Moreover, as long as burst damage potential or even highly aggressive decks exist without the ability to react, Hearthstone is destined to be ruled by these play styles where draw and luck are just as important if not more so than ability or skill.

A fundamental shift in design would keep enough fair and balanced randomness within the game to cater to more casual players, yet would also provide capable players, with the ability to take advantage of it, the tools to react to and even somewhat counter the aggro/burst style that has become dominant in the current metagame.