Thursday, March 14, 2013

Postmortem 2: The Orc and His Dragon

A few days after finishing Attumen the Huntsmen, level design wrapped up the first dungeon of the Burning Crusade. Called Hellfire Ramparts, it was our first attempt in a dungeon that was closely integrated with the shape of the dungeon outside of the raid.

Scott went ahead and spawned the dungeon, deciding on the density of the packs, the pathing speed of the patrollers and then came into my office.

Scott: Alright, Mr. Brazie (he always called me Mr. and I still have no idea why), I've got a big task for you.
Me: Oh sweet, do you need me to test pull all of the bats in Karazhan again?
Scott: Ha. No. I want you to sit with Joe Shely and design all of the abilities in Ramparts.
Me: Whoa, really?
Scott: Yeah, just work together. Then when you finish, I've got a boss for each of you.

Joe and I worked together pretty quickly to knock out the ability design for the dungeon, including my favorite part, a little wolf ambush that triggered halfway down the halls. Then we spoke with Scott the next day.

Scott: Alrighty, this next dungeon is a double-header. There's two bosses at the end and there's two of you. Joe, you've been here longer. There's a demon boss and an orc with a pet dragon. Which one would you rather do?
Joe: I'll do the demon.
Scott: Sweet. Then, Mr. Brazie, you have the orc and his dragon. Basically just make fight "Reverse Rend and Gyth" and you're good. Maybe have the boss flying around before the fight begins. Let me know when you're ready to review.

Now, I don't know what your impression of me is, readers, but I love doing the exotic and difficult to implement.

"Why do Rend and Gyth... when I can do *flying* Rend and Gyth!"

... and thus triggered the most painful boss development I had ever done. (ok, ok, it was only my second boss, take it easy on me!)

Development Dollars are Expensive

Choosing where you decide to spend your time as a developer is a very difficult skill to develop. Do you invest a lot in a risky, potentially game-changing design or do you invest in a highly polished, basic experience?  Early on, eager to prove myself, I pushed myself too frequently into the high risk category. 

Some of that's okay - you're new, nobody expects anything and readily forgives you if you fail. This is an extremely important aspect of any game design culture. If it's not safe to fail, you will never push yourself to grow.  However, I recklessly pushed forward in every aspect of my designs. 

So what was the risky, low-payoff decision I made with this fight?  

If your thought was either "oh, it's because the dragon flies" or "oh, it's because the dragon lands", you are close, but not quite. Let's review his design!

Sometimes You Do OK on the First Try

Rend Vazruden: 

Revenge - Deals cleave damage to the target and two nearby enemies when the target dodges.


When Vazruden reaches 50% health, he calls Nazan down from the sky to assist him.

Gyth Nazan:

Flies around in the air, bombarding enemies, until Nazan calls him to the ground.



Fireball - Deals Fire damage to a random enemy. Only used while flying.



Liquid Flame - Leaves a burning spot on the ground that causes damage to enemies within it for 10 sec.


Flame Breath - Deals Fire damage in a cone in front of Nazan. Only used when he lands.



Dragon Roar - Fears all enemies nearby for 3 seconds, except the tank. [Heroic Only]



Analysis: 

What's the state of this design? 

Let's consider the goals:

  • Gameplay: Pick abilities that players understand and enjoy handling.
  • Simple: There were 34 dungeon bosses in Burning Crusade. Dungeon bosses need to be simple, understandible and quick to build.
  • Nostalgia: Remind players of a familar, but underplayed encounter from classic wow.
  • Aesthetics: Make use of the open vertical space. 
  • Training: Give a new designer experience recreating a familiar experience.
Do your own analysis and reply in the comments. I will respond, then update this post afterwards... and tell you about the horrible mistake I made.


Initial Analysis:

Gameplay: 
  • Vazruden is boring. For a heroic, scary orc, he does almost nothing. Furthermore, aside from the random damage from Nazan's fireballs, nothing is really going on here.
  • Vazruden's dodge proccing revenge is not a fun mechanic. Furthermore, the cleave plus AoE fire stacking punishes melee groups heavier than ranged groups.
  • Flame Breath is fine on its own, from a pure concept. However, as mentioned by several commenters, the execution was lacking. 
    • Specifically, the fact that he didn't have a cooldown when he landed meant players randomly died. 
Simple:
  • This encounter is quite simple, right?
  • Actually, no. "Flying" creatures at this point during WoW's development had to be hand pathed. 
    • This was not only a difficult process, but also hard to modify, due to poor tooling.
  • Furthermore, the presence of two creatures, who can be killed in any order, creates a number of difficulties. For example, which one drops loot? What happens if one creature leaves combat, while another is still alive?
  • These kinds of contingencies make a simple surface encounter hard to implement.
Nostalgia:
  • Success. Subtle, but effective
Aesthetics:
  • This was a huge win... until the fight started. Seeing the dragon fly around was awesome pre-fight.
  • Within the fight, it was a huge dragon... who you never saw because he was above you all of the time.
  • Furthermore, the aesthetics of a flying dragon played against the mechanic of having an attackable add flying around in the air. 
Training:
  • This worked out. However, I ended up going further down the deep end than I expected... because of...

The Huge Mistake

So what was the huge mistake that I made...?

Well, I decided that if the master died and the dragon lived, the dragon would wake up the orc and go back to flying around. 

"What?" you may have said. 

Yes. That single decision ended up taking over a week of my time to implement, fix, refix, fix, find another bug, fix that bug. Patch over the patch. It was a ton of time wasted on a very minor polish point. 

Eventually, Scott came into my office and said, "You know, usually I just despawn and respawn everything." ... and in 20 minutes, the encounter reset and respawned just fine.  


There are times where you'll just try too hard to make something work that just doesn't add any value. 

Can we make it Better?

I think the easy answer to this is yes. So let's take the framework and think through it:

How can we:

1) Make it clearer what Vazruden and Nazan do?
2) Make players care about the mechanics in an appropriate way?
3) Create opportunities for responses that make players feel good?
4) Make the experience more satisfying?
5) Make the boss abilities and theme fit better into his role of a Herald of Illidan?

15 comments:

  1. My personal analysis on meeting the goals.

    Gameplay: Personally, I knew Vazruden had some sort of special attack, but I had no idea it was a Revenge mechanic. It didn't have a very big tell and, as far as I knew, was just a random attack. But, even as an attack without a tell, it wasn't a huge deal, minor damage. A bit counter intuitive as tanks WANT to dodge, but are punished for doing so at the same time.

    As for the dragon, I feel that the abilities made sense and felt manageable. Don't stand in the fire, etc. If I recall, it was tough to tell if a fireball was an unavoidable one or one that was going to spawn a fire pit. Could have been made a bit more obvious. On heroic, fear gave more reason to stay much further away from fire pools.

    Simplicity: A pretty understandable fight, especially when compared to Rend/Gyth. Does something cool and different when compared to most fights, too. Doesn't have too many abilities or weird fight mechanics (Magtheridon, etc).

    Nostalgia: Definitely reminiscent of Rend/Gyth from UBRS. The fight is different enough, too, to stop it from being a copy paste. I know when I first did the boss, I compared it to Rend.

    Aesthetics: When I first did the dungeon on normal, I never appreciated the vertical aspects. However, when doing it on heroic, our group decided to try to DPS the dragon before he landed. This added quite a bit to the vertical aspects. However, I think many players just kind of ignored the dragon being there until he landed, possibly not knowing he could be attacked.

    Training: Having the theme and base mechanics set out for you let you build up and see how the fight compares the similar fight. Is yours 'strictly better'? 'Strictly worse'? Or just different? In this case, you are comparing a 5 man to a 10 man and, obviously, they are tough to compare. But it does give you a nice starting point to avoid doing the work of creating an idea and building it and let you just build it. And you had a comparison, which was probably nice.

    ReplyDelete
    Replies
    1. Part 2 continuation:

      1) Vazruden needed an ability that required player reaction or interaction. A smash, a whirlwind with a charge up, a pull, anything really. Something to make him less tank and spank while still simple. Casting interrupts were more iffy back then, and it probably wouldn't have fit thematically, but would have been nice.

      Nazan could have used differences in fire effects. Hell, I'd change from double fireball. It would have been WAY too difficult at the time, but the liquid fire just being a flying version of the flame breath where the dragon swoops down noticeably. Instead, having one fireball be dark green and the other more traditional or perhaps marking the ground just before an AoE fireball (to keep the theme) would have been nice. Give players an opportunity to prepare instead of just react.

      2)Pretty much same as above. Players only being able to react to things after they've happened is just not ideal. If games like Dark Souls and Tera have proved anything, it's that being able to react before the damage is dealt just feels more satisfying. In this case, it was just heal the damage, equip fire resist. Dragon breath cones don't do too much either but punish a group who is likely already failing. At the same time, with fears and AoE, another DPS pain mechanic would have been over the top.

      3) Again, above. Players couldn't prepare or counter. A rogue couldn't feel good about CCing a random add with a Gouge or blind nor could he interrupt. It was just damage and don't stand in fire. It would have stepped on the demon bosses territory, but if there were demon mobs that were summoned and would harass the healer and DPS had to peel them off, that could have made the player who used their defensive cooldowns and CC well feel great about multitasking. Allowing the tanks to see incoming damage from the dragon charging his breath to avoid or pop cooldowns could have made them feel better, as well as healers who noticed.

      4) Again, I feel like all of the above mix into here.

      5) For one, the letter Vazruden dropped was underplayed. This was more of a questing problem from the era. No one read that and if, instead, Illidan made an appearance, that would have been great. It would have been goofy of course, if he let the players live, so perhaps an image would have been more suited. Ability wise, nothing said felfire or demon, a big thing with Illidan. I'm not sure if this would be lore murder or not, but the Netherdrake being a fel netherdrake or something along those lines (just having green fire) would have added green fire flavor. Netherdrakes were being enslaved by Illidan, but the players had no knowledge of that at the time. Pretty much more fel, in both the orc (fel blooded enrage buff when low?) and the dragon.

      Delete
  2. Nobody knew that the orc's attack was triggered by a dodge/parry. But it didn't really matter, because it had a cooldown anyway.

    As far as I can remember, Revenge didn't cleave on live. If it did, it would be yet another infamous TBC "screw you melee" 360 degree cleave, and I don't remember being pissed off at this encounter.

    The dragon definitely didn't land at 50% in live. I think it was more like 35%.

    As I recall, the dragon's fire pool and flame breath were on separate timers, so the tank could get hit with both simultaneously the millisecond the dragon landed. That sucked, and forced people to use fire resist pots, grounding totems, and precast heals just to kill a dungeon boss.

    And finally, this fight was notoriously buggy. You could kill the orc then reset the encounter, getting full loot and rep. That's why they moved the loot to the chest. It also randomly reset improperly, so that there was no way to start the fight after wiping. Oh, and killing the dragon before the orc bugged it too, as I recall.

    On a side note, I never got the Rend callback, but now that you mention it I see it.

    Think that just about covers it.

    ReplyDelete
    Replies
    1. Oh yes, how could I forget the infinite loot glitch.

      And I think he uses a cleave animation, but I don't think it did cleave. I don't remember my rogue insta-dying, either, so it's likely it was removed.

      Delete
  3. Yeah, the fact that if the tank dodges, the boss hits the people the tank is trying to protect? Obviously not cool, since you have no control over when you dodge.

    Well, that's not COMPLETELY true. In TBC it wasn't uncommon for players to have multiple sets of gear - as a healer I had a healpower set and a mana regen set, so I suspect some tanks, likewise, had a mitigation set and an avoidance set. If you knew Vazruden worked that way, you could potentially swich to your mitigation gear. But certainly not everyone had multiple sets of gear like that. They DEFINITELY didn't in the non-heroic mode, because they were entirely clothed in level 61 green-quality quest rewards. And in a non-raid dungeon, a mechanic that you have to prepare for before the fight starts is pretty brutal, even for a TBC heroic.

    One obvious fix for Revenge would be to make it weaker than a normal hit. The tank would still be rewarded for dodging, just not as much as in other fights. This is boring but balanced. An alternate, probably slightly more enjoyable fix might be to make it work in reverse: when Vazruden dodges or is missed by a player, he gets a free cleave. Hit chance is something that players naturally care about anyway, so once again this would simply alter how important different stats are in relation to each-other, instead of making one of them totally counterproductive.

    Vazruden's primary thematic characteristic, though, isn't that he's a big badass fel orc warrior. It's that he has a freaking dragon! Ideally, I feel like the skills he has should revolve around this. Call the dragon down much earlier, like at 90%. Give the players some reason to actually target it - doing four times as much damage as Vazruden but having half as much health is probably enough of a motivation. Have Vazruden use Revenge when NAZAN dodges an attack, instead of (or in addition to?) when Vazruden himself dodges, so that targetting becomes the key to the fight, and so that melee dps can control whether they're hit by that cleave by choosing the right target. Give Vazruden some kind of buff that greatly improves the dragon's dodge chance for 30 seconds, so players must switch targets back to Vazruden or else face lots of Revenge damage no matter how well they're geared. Make him enrage when the dragon dies, since that was his freaking dragon (and since he's unthreatening without it otherwise).

    ReplyDelete
  4. You misinterpreted "reverse Rend and Gyth." Rend and Gyth is known for its three main phases - the waves, then Rend comes out mounted on Gyth and you only fight Gyth, then Rend jumps off Gyth and you fight both. The reverse of this would be - Vazruden and Nazan are separated, then Vazruden mounts Nazan, then they spawn adds. I imagine this add spawning phase as a kind of final "oh shit" moment of the fight when Nazan hits 10%, where your party needs to play more aggressively and burn down Nazan before adds overwhelm them. This is an awesome climax for the dungeon.

    Second, given that he's probably familiar with the technical limitations of the engine (or maybe it's more related to my comments at the end of this post), you should have caught on that Scott had a reason for being explicit about the boss flying around BEFORE the fight begins.

    Obviously we didn't get a reverse Rend and Gyth. I suspect Scott wanted you to try out your design and learn the hard way. Instead of saying "this is bad and you should feel bad", he probably critiqued obvious mistakes in your current design, but ultimately wanted to let you discover the higher-level mistakes for yourself, with some appropriate nudging to push you in the right direction. After all, he is a game designer.

    So going over the mechanics...
    Revenge: Unless people are studying their combat logs, no one is going to notice that dodging causes cleave. That said, as long as it's visually clear that being in front of this guy is sometimes dangerous (a cleave animation), melee will quickly learn to stay behind Vazruden. Which melee does all the time anyway, so there's no point to this ability unless you add some other mechanic that interacts with it (like an incentive to be in front of Vazruden as well as a cast time on the cleave).
    Fireball/Liquid Flame: I'm assuming that you intended these to be combined. E.g., a fireball leaves a liquid flame. Obviously do not let fireball be a one hit kill, or at least make it a dot with a reasonable window of response time so healers can deal with it. Other than that, this is a cool mechanic.
    Flame Breath: Skill check for the tank to get Nazan out of the way, and derp check for melee. Like it. Too bad it only occurs once during the fight.
    Dragon Roar: Assuming ranged players aren't derping (we really shouldn't assume, but for the sake of simplicity...) melee dps are the only ones affected by this. When Vazruden is up, this is a pretty big deal since your dps is trying to burn one of the guys down as fast as possible due to the pressure on your tank and healers. That means this should be avoidable. A cast time is one option, but I think a better idea is for the dragon to roar at intervals of Vazruden's health (40%, 30%, 20%, 10%, dead). It's more thematic and will be fun for players who figure it out and learn to avoid it. For those who don't, it certainly won't make things any easier but it probably won't be a barrier to victory either.

    I actually like to look at encounters from a different perspective. Given the mechanics you gave, what are the responsibilities of each player type, outside of their obvious class roles. This makes the fun aspect more clear.

    ReplyDelete
    Replies
    1. Phase 1:
      Healer - Run out of fire, quickly respond to people who got hit by fire
      Ranged Dps - Run out of fire
      Melee dps - Run out of fire, stay behind Vazruden
      Tank - Run out of fire

      Landing:
      Healer - Get away from front of Nazan, deal with the flame breath damage
      Ranged dps - Get away from front of Nazan
      Melee dps - Get away from front of Nazan
      Tank - Get Nazan away from others, while keeping threat up on Vazruden

      Second phase:
      Healers - more stress because more dps on tank
      ranged dps - pop cds to burn one of the guys down fast
      melee dps - pop cds to burn one of the guys down fast, avoid roar (if available)
      Tank - Handle both Nazan and Vazruden

      I like the landing and second phase, with the climax being dealing with all of the pressure on the tank, healers, and dps to get one of the guys down quickly, and the following resolution being a nice "we got this" moment as you finish off the remaining enemy. The first phase is just a tank 'n spank with some fire on the ground, which is a nice throwback to players who are easing back into dungeoneering with the expansion release. While with a few tweaks I actually think this is a really fun fight, it isn't appropriate for the situation, which I'll cover at the end. That said, the "large amount of instant damage to a random player" mechanic is something to be very wary of. It basically forces players to pretend they are playing with MAX_HEALTH - DAMAGE amount of health rather than MAX_HEALTH. Just something to consider.

      In my opinion your bad decision was in not doing the "reverse Rend and Gyth" that Scott recommended. But I think the risky, low payoff decision you are referring to is in trying to create an innovative fight where innovation was not a goal. The goal was to ease players back into dungeoneering, not blow their minds with a mishmash of new and existing mechanics.

      Delete
    2. Well, Innovation was not a goal and I was trying to keep it basic.

      The mistake was wasting time and energy on something pointless, instead of investing more time and energy into game mechanics the players might have enjoyed. :)


      That said, you're correct that small tweaks would have done alot.

      One of the challenges of a fight like this is that if both members are on the ground and being tanked by 1 entity, the charge-based block system that exists at this time became utterly wrecked.

      This meant that once one add was dead, the fight got less intense, not more.

      Delete
    3. I agree with your first point. The mechanics of the fight weren't pushing any boundaries. Reading back over my post, not sure how I came to that conclusion.

      Regarding your second point, this brings up a interesting question. I was actually saying that the fight ending on a less intense note was a GOOD thing (climax->resolution). A couple examples of other fights that did this include High King Maulgar and Kael'thas. What is so special about the difficulty of the fight being a strictly increasing function?

      Put another away, given Phase A (difficulty 2), Phase B (difficulty 5), and Phase C (difficulty 8), what is so special about the phases being in order A, B, C rather than any of the other myriad alternatives. In bouldering, lots of routes don't follow this pattern, but I don't find the ones with increasing difficulty more satisfying than the ones that aren't. It might even be desirable, since players can get straight to the harder parts.

      Since it doesn't seem to really matter, I guess it's more important that phases be ordered by theme rather than difficulty. E.g. you probably wouldn't start Illidan off in demon form.

      Delete
    4. It creates more anticipation and excitement for the action to build up to a climax than to hit it immediately and then trail off slowly, as any story writer could tell you. It also lets people see some of how the boss works before it becomes critical that they react perfectly to it, instead of expecting them to immediately catch on. However, having a few fights that work the other way around can change things up and give the players a chance to use their skills in a slightly different way.

      High King Maulgar was a really obnoxious fight! I'd like to see it examined in this blog at some point. My guild wiped something like 150 times before we lasted past the first ten seconds. It's really hard to figure out what you did wrong (and also extra discouraging) when you lose in the first ten seconds. Everything is happening at once, there's no subset of encounter mechanics that just kicked in. All of them just kicked in. This ties into the first of Mr. Brazie's five points of gauging an encounter: clarity. The information overload at the beginning of Maulgar made it really unclear what we were failing at.

      Delete
    5. This comment has been removed by the author.

      Delete
    6. [fixed some typos]
      I think your base assumption that the pacing of a story is analogous to the pacing of a boss fight is wrong. Most stories take a lot more time to get through than a boss fight, and you never have to start the story over. Imagine having to memorize the first 3/4 of your favorite book before you were allowed to read the climax.

      If the mechanics of the phases are disjoint, seeing how the boss works doesn't matter because once you've mastered those mechanics the next phase's mechanics will be completely new. A lot of the time mechanics are shared between phases though, so you're right in that slowly accumulating new mechanics makes sense.

      Changing ordering of phases shouldn't make players use their skills in a different way. Just at different times in the fight. Though you may have to take into consideration player fatigue and resource drain for later phases.

      As a fight progresses you can either add new mechanics or remove existing mechanics. Sometimes in bulk. As you can imagine there are lots of combinations of starting points followed by additions and removals at various times. Infinitely many if we're anal about the word 'time'. This is what allows you to create a huge variety of fights from just a few mechanics. If we followed the story analogy, all fights would start with one mechanic, followed by a serious of add operations, climax, followed by a series of remove operations. Really this is doing a disservice to stories, because many have multiple rising action->climax->falling action cycles. But even if we add those possible combinations to our set of possible fights we are limited in our selection. The question is why do we still find fights that don't follow this pattern fun, but are irked by stories that break it? This comment is already way too long, but short answer is that a fight is a problem not a narrative, and problems have more flexibility in their form.

      Fights like Maulgar are an interesting challenge. I also don't mind losing in the first 10 seconds, because as long as we were paying attention during those seconds, we can try again with a better strategy right away.

      Delete
  5. It's been fairly interesting reading through and seeing what I can pick up, but I really wish I had the context of having played WoW before ("Oh, Flame Breath didn't have a cooldown when landed? Yeah, I guess that might be problematic."). I'm looking forward to when you get around to using some examples from League, since I'm more familiar with that.

    ReplyDelete
  6. I'm a little late to the party, but I only recently discovered this blog. This is a pretty interesting read.

    I think very few players would make the connection of this fight to Rend and Gyth, so I can't really give you the nostalgia points. Mostly because trying to draw inspiration from Rend and Gyth themselves was maybe the wrong route to take in the first place. The only interesting part of R&G specifically was that it was a dragon and its rider, which was unique back then, sure. Despite that, both mobs have pretty forgettable moves - I think Gyth had the generic "I'm a dragon" ability list (front breath, maybe a small knockback or something) while Rend was little more than a tank and spank. Granted, Vanilla WoW wasn't really known for deep encounter mechanics.

    What was truly memorable about R&G was the theming. The fight really went outside the box and had some clever storytelling. This was one of the first times the player was introduced to a badass villian, Nefarian. Instead of being a boss sitting in a room waiting for you to pull, you actually had to jump down into this mosh pit. This jump had to be coordinated too, since Blackrock Mobs would quickly fill in the space behind you and really help sell that gladiator feeling. Then you had waves and waves of Blackrock and Dragonkin, while Nefarion and Rend are standing up there taunting you.

    These were the strengths of that encounter, and not really Rend and Gyth themselves as a boss. I think there was more tension over the drama of Chromatic Carapace dropping than there was of actually fighting Gyth anyway. If the goal of Vazruden and Nazan was to replicate this, those are the things I would have tried to highlight, and not so much "a boy and his dragon" feel you were going for.

    Rodalpho already won for why the execution on this fight fell through. Vazruden wasn't interesting at all - people probably didn't even know that he had a Revenge-type mechanic. Nazan was memorable, but only because of how punishing his attacks were. I recall having to don Dark Iron Plate gear with all its Fire Resist just to survive when we first killed it on heroic. The encounter had some significant bugs, most of all being that you didn't even get rewarded with a Badge of Justice for completing it. The BoJ part alone was unfortunate, because it meant this was among the least frequently run Heroic Dungeon.

    Of course, the expections for a 5-man boss to be crazy complex and interesting aren't high, so the fight was passable. If you had asked me before I read this, I would have said the encounter didn't get its fair share of attention or polish. I know differently now, it's just unfortunate that it didn't turn out like you wanted.

    ReplyDelete