Friday, August 15, 2014

[WoW] Scenarios Are Dead, Long Live Scenarios!

While everyone else is either oohing or poo-pooing the new WoW cinematic--which is quite excellent as a story and as an animation, regardless of my feelings about orcs, orcs, orcs--I noticed a curious little statement the MMO-Champion took from a Gamescon interview with Blizzard staff (warning: spoilers behind that link).
There aren't any scenarios for you to queue for at Level 100 in Warlords right now, but some could be added in future patches. Right now they are mostly used as a storytelling tool while leveling.
For those not in the know, scenarios in WoW are 3-player content with no Holy Trinity requirement. Basically three DPS wander in and follow the story, kill the baddies, and fulfill objectives. Heroic scenarios, the more difficult version of scenarios, could be made much easier with the addition of a tank and/or healer, but you could still do just fine with three DPS (and I often did).

Fights in scenarios would often be made up of a lot of avoidable mechanics. Get away from the boss before he explodes, stay out of the bad, interrupt this ability, don't step on the trap, and so on. Basically, anything that would punish you severely for goofing up, but otherwise incidental damage was easily handled by off-healing by DPS classes (or crowd control to reduce it in the first place). Since you weren't guaranteed a healer or a tank, the designers couldn't rely on those roles being there.

You still had to deal with target prioritization, interrupts, crowd control, not standing in things, plus whatever unique mechanics each scenario had in place, so especially for heroic scenarios if you were at the intended gear level they were decently difficult. But I admit they played a fair bit like Guild Wars 2, and required little group coordination, which I personally do not really enjoy as a play style.

And I guess not many other people did either? I can only assume that Blizzard not making scenarios for queuing means that the feature didn't take off as they had hoped with respect to other people. I mean, you never sit long in a scenario queue given any three players will do (though you can't queue for heroic scenarios; pre-made groups only there), so it's not like nobody is doing them.

If it means we need to make a choice between 5-man content and 3-man content, though, I'd pick 5-man. Something about that Holy Trinity that makes actually dealing with encounter logistics that much more fun. Perhaps the heightened group coordination requirement? Or maybe scenarios were just too bite-sized?

Blizzard really started using scenarios as a storytelling tool to great effect in the Throne of Thunder patch, and I agree that it really made an excellent storytelling tool (I'd bet it was easier for the developers to make elaborate stories in an instanced scenario rather than a phased part of the world, too).

But the one thing I really want them to take from scenarios and bring elsewhere were the bonus objectives. It was like the Amani War Bear run in Zul'aman, but you could see the timer on the screen and got a neat toast when you succeeded (and extra VP, woo!). It was really gratifying to get that bonus objective, and I'd like to see more bonus objectives in dungeons and the like--perhaps not just timed objectives, but throw in a really difficult optional boss that dropped a neat pet or slightly better loot or something.

All in all, I won't miss scenarios as a dungeon replacement. They can go. But with the tech I'm hoping to see more really cool story moments in the world. As Blizzard gets better at that, perhaps we'll see more in the game and have to rely less on outside sources to get the story of the World of Warcraft.

#WoW, #HolyTrinity, #WarlordsOfDraenor

Wednesday, August 13, 2014

10 Years in Azeroth Part 2--10 Questions

Today I address Alternative Chat's 10 Years 10 Questions in celebration of World of Warcraft's upcoming 10th anniversary as a game. Let's roll!


1. Why did you start playing Warcraft?

I started playing 3 months after release (February 2005 according to my account history). I wasn't in the pre-release at all, but I was watching the game with interest. I'd played The Realm in the mid 90s, one of the first graphical MMOs to exist (releasing just after Meridian 59), and while I hadn't played Ultima Online, and only played the original Everquest for a few hours before getting bored to tears, I was interested that World of Warcraft was doing things different with quests, rest experience, and the fact that it was in the Warcraft universe!

I had been playing the Warcraft series since the original RTS and was obsessed with Blizzard games in general. I had loved Diablo, Diablo II, StarCraft as well, so a Blizzard game MMO seemed like a no-brainer. Of course, the game released right around my 3rd year of University, and right before exams, so that wasn't happening. But once I had some time to play, I jumped into the game.

2. What was the first ever character you rolled?

A gnome mage. Arcane mage, no less. I look back and shake my head, what on earth was I thinking? Arcane Missile, Arcane Missile, Fire Blast if the monster still lived. Sit and drink. Frost Nova if they got too close. But hey, I was smart enough to avoid the Wand Specialization talent even back then! Sadly that character has been deleted since, so I have nothing left of him. I did have a severe case of alt-itis back in Vanilla, where I tried all the classes up to around anywhere from level 10 to level 30.

To be fair, I still roll up and abandon characters all the time.

3. Which factors determined your faction choice in game?

As per my previous post, my early days were largely Horde, but it wasn't super uneven. I grew up on Alliance being the good guys and Horde being the "bad guys", especially in the first RTS. However, my big draw were the Tauren. Minotaurs were one of my favourite mythological creatures, and I really enjoyed how the Tauren were portrayed in both Warcraft III and in WoW itself.

Later on in early Wrath I co-ran a small Alliance guild, and then I left that guild for personal reasons and joined a much, much bigger Alliance guild over on Proudmoore (where I've resided for three expansions and soon to be a fourth!). So my current allegiance is dictated by my social ties, rather than story ties.

4. What has been your most memorable moment in Warcraft and why?

My most memorable moment was back in Ulduar-10. I was co-raid-leading our "Introduction to Raiding" Sunday night raid (which ironically made a fair bit more progress than our "hardcore" raiding team at the time, though they were 25 man).


It was our first time reaching Kologarn, and everyone was oohing over his introduction as he rose from below. We were sitting in the entrance, and I was explaining the fight to the raiders when my itchy Holy Paladin trigger finger accidentally hit Judgement (note it was spelled differently back then :) ) and started the encounter.

Everyone ran in in a panic while I ran out, thinking we'd just wipe. But I ended up dying since he kills anyone outside the encounter area automatically a few seconds after the encounter started. However, I finished the explanation and directed the raiders during the fight from my dead vantage point and they ended up one-shotting the fight one healer/raid leader short. It was awesome and brings a smile to my face still when I think of it. My raiders rocked it.

5. What is your favourite aspect of the game and has this always been the case?

Today my favourite aspect is raiding, through and through. Coordinated group content, largely because of my guild and the friends that I've made in it. I also like the tactical portion of it, coming up with strategies, tailoring them to my raiders' strengths and weaknesses, analyzing logs and providing feedback.

I started raid-leading back in Ulduar, and have been leading raids in some capacity almost every single tier since. Today I usually just raid call and deal with boss strats, and others deal with attendance, which I'm perfectly okay with.

It hasn't always been the case though. Vanilla every raider I encountered was a complete dick (though given I never hit max level in Vanilla, I didn't run into too many of them), and the rest of them I knew by reputation only--which meant funny yet terrible videos like the Onyxia more DoTs video.


Warning: Extremely Foul Language, and many lols.

Seriously, who wanted to play a game with that sort of person? Through TBC as well, all I ever heard was the bad. And the abuse. Mages in Molten Core who'd get dumped after conjuring food. Paladins who existed only to buff. Priests who had a healing rotation and sat on their thumbs when not healing. Warlocks getting yelled at for using their DoTs and knocking other debuffs off the boss. Shaman being nothing but Bloodlust/Heroism and Chain Heal bots. I was quite well versed on raiding via reading and hearsay.
 
Oh, and don't forget the egos. Those world first folks? Hearing about them through the grapevine, or listening to "elite raiders" in general chat in Shattrath as the shat all over the general populace?
 
In Wrath I finally got into raiding thanks to my then boyfriend, who showed me that most of what I experienced wasn't representative. Well, the class issues were completely true, and fairly fixed in Wrath. But the egos of raiders? Just a subset of really vocal people. The jerks in general chat? Most of them could barely function in a raid, they were just lying jerks full of hot air.
 
Today I find myself loving raiding, and loving the people I raid with. Oh, occasionally I do run into an ego, especially those folks who help us out when someone can't make it, and then turn their noses down on us because we took so long to finish the normal version of the raid (at a whole 3 hours a week, thanks), or that we're not bothering with Heroic modes, at which point I promptly ignore everything they say. Especially when they start trying to analyze wipes and get the analysis completely wrong because they're comparing it to the strats their guild uses and assume anything different is the source of the wipe. That always made me giggle.
 
But there are also plenty of nice heroic raiders out there, who are fun to play with and are absolutely great people and players, who are helpful and funny. And of course there's my own raid team, who're some of the funniest, most fun people I like to hang out with on a weekly basis. These are the kinds of people that make raiding totally worth it.

6. Do you have an area in game that you always return to?
 
Not really. I'd say Stormwind, but that's just a function of what's the current Alliance hub. Especially given waaaay back in the day Alliance generally sat in Lagforge. Er, Ironforge.

7. How long have you /played and has that been continuous?
 
As per my previous post, 180 days, 11 hours. And that's not including a number of "main" characters I've deleted (including two mages), so I'd bump that up to an estimated 200 days at least. It hasn't been continuous, though.

I played on and off throughout Vanilla, partly due to a lack of funds, and partly due to working 40 hours a week while going to school full time. I barely had time to sleep, let alone play a video game, especially one as time-intensive as Vanilla WoW. Taking a look at my subscription history, there's a clear pattern of, "play at the beginning of a semester, drop the game for the last half and exams, pick it up again next semester." Interestingly enough, this would imply that the summers where there wasn't a semester I didn't actually play, which is correct.

Strangely enough I don't remember playing much of TBC, but apparently I was subscribed for most of it? I graduated in the summer of 2006, and played on and off, and checked out the expansion, but took 6 months off after getting bored with doing everything by myself. Then like 3 months before Wrath dropped I started playing again and have been playing since.

8. Admit it: do you read quest text or not?

Depends on the day, and what my aims are. If I'm trying to hit server first for leveling, I clearly have no time to do it. But when I'm leveling characters leisurely, I love reading quest text. Especially post-Cataclysm quest text. A lot of it is funny and really clever.

Seriously, if you've never done the quest Welcome to the Machine and the line that follows? Go, do it. Right now. It's hilarious.

9. Are there any regrets from your time in game?

Not really. I doubt I'd change anything I've done. It's been a lot of fun. I don't think it's a fair comparison to say something like, "I could've cured cancer if I spent all that time on science!"

First of all, gaming is leisure time. Everybody needs some leisure time. If there's something I learned from both working and university full-time simultaneously is that if I don't have some leisure time, I go completely nuts.

Secondly, I don't watch much television or even movies. Right now my watching patterns are when new episodes of Sailor Moon Crystal come out, so that's about 40 minutes including commercials every two weeks. Tack on an extra two hours a month for the rare movie. Those 5 hours a day other people are watching television? I'm gaming. I'm doing something interactive, rather than passive. I'm chatting with friends online; I'm doing mathematics to figure out how to play better; I'm reading quest text. The list is endless.

So no, no regrets, at all. It's been a lot of fun. It still is!

10. What effect has Warcraft had on your life outside gaming?

Pretty much everyone I've dated over the past decade has also played WoW (though in all cases we initially met via avenues outside the game), so it's made for an easy jumping off point to get to know one another. Raid leading has taught me some extremely valuable managerial and social skills. I've made some fantastic friends in my guild, and have met some of them in real life.

Basically, it's been a great decade, and looking forward to more in Azeroth!

#10Years10Questions, #WoW, #Personal

Monday, August 11, 2014

10 Years in Azeroth Part 1--Characters Over the Years

Alternative Chat has a documentary she's putting together about players over the past 10 years of World of Warcraft. While I intend on answering her 10 questions eventually, I thought it would be an interesting exercise to dive into my own past and dig for clues to my playing habits, and perhaps some historical information on WoW itself.

A small caveat, I have deleted characters in the past. I know of at least three mages and a rogue I have deleted off-hand--my very first character, a mage I ran in TBC until I quit for a while, my primary character from the end of TBC to Ulduar, and I tried leveling a rogue to no avail, respectively--so my stats won't be completely accurate, especially concerning my love affair with magi in my earlier days, but it's still pretty interesting.


41 Characters, at least 4 deleted, I'm pretty sure there are more missing, too.
So I ran through ALL of my characters and noted their levels, classes, races, time played, and other interesting notes that I could remember. Below is a spreadsheet of the information that I put together (you should be able to click the sort arrows to futz with the sorting order).



I've learned a few interesting things from all of that data.

First of all, I have a slight bias towards Alliance, however, the Alliance skew occurred in Wrath onwards. Most of my characters pre-Wrath were Horde. Wrath was when I was co-running my own small guild, then switched to a big guild (to which I am still in today), so I'm going to guess the stability of guilds helped that pattern.

You'll notice there are no rogues on that list. I tried leveling a rogue once, it was awful. That was with heirlooms, too, so leveling speed wasn't the issue. It was just the class was dull to me.

But barring all the mages I've deleted, the most popular classes based on number of characters in descending order are shaman, paladin (not surprising), warlock (!?), hunter, mage, warrior, priest, druid, death knight, and monk. But if you add up total levels of all characters of a given class, it tells a different story:
 

Not only do I have a lot of shaman, I play them a lot, too. And they're almost all Enhancement. For having so few druids, though, I have a LOT of levels. I apparently tend to stick with druids a lot longer than other character classes. And where I have a LOT of warlocks and hunters, and a number of warriors, I tend to abandon them all quite early. Priest is artificially inflated by 27 levels because one was level 63 before I boosted him to 90 for professions, so it should be lower than the hunters.

I really, really wanted to love hunters early on, since I had so many, but I don't particularly enjoy pet classes in general so I tend to abandon them, Frost mages excepted.

Total time played for characters that still exist: 180 Days, 11 Hours. So half of a year or my life in the past 10, and the majority of that on my three current main characters who've existed since Wrath.

It's interesting to note how much time it took to level older characters versus characters today. Looking at the Level 27 - 29 characters, the 27 Tauren Warrior and 27 Worgen Druid were leveled in MoP with Heirlooms, taking about 6 - 8 hours to get there. Compare that to the level 28 characters and the 27 Blood Elf Warlock who were TBC characters, taking 36 to 44 hours to get to the same level. However, the 27 Tauren Warrior was a Wrath character, and took about 24 hours to do the same (I honestly don't remember if he had Heirlooms or not, but they were introduced around Wrath if memory serves).

Then if you look at the level 42 Troll Hunter at 3 and a half days (TBC) versus the Level 48 Tauren Paladin at 1 and a half days (Cata), and the level 38 Pandaren Monk at half a day (MoP).

I'm not saying we should have longer leveling times. Given the end game is where my interest lies, I'm quite fine with the acceleration of the leveling process. Also, the times are skewed because I've gotten more knowledgeable and better at the game over time, so the shrinkage is compounded. But it was fun data.

If we take the time played data by class rather than total levels, the order switches around a little bit:

I may have more shaman at higher levels, but I clearly prefer playing on my paladin(s), and the two classes have the lion's share of my time in comparison to the other classes.

Races aren't terribly interesting in my case with the exception that I clearly prefer Humans and Tauren. The rash of Worgen are misleading. That was just me attempting to like the race because werewolves. But alas, not to be.

So that was my trip back statistically. Next post I'll actually address Alternative Chat's 10 Years 10 Questions.

#10Years10Questions, #WoW, #Personal

Thursday, August 7, 2014

[Indie Dev] And Now For Something Completely Different: Camera Math

One of the things I was hired for at Flying Helmet Games is to handle some of the more complex mathematical items. Cameras in particular. Everybody can talk about the cameras they hate in games. Mario 64 had one of the better cameras for the time, but it was still vexing. As the player, you should either not notice the camera, or if you do notice, it’s in a good way. Turns out making a good camera is part art, but there’s definitely a lot of math.


Think about a somewhat pseudo-isometric camera, like Diablo III--note that it’s not technically isometric in Diablo III, it’s just emulating an isometric projection; it’s just a plain old perspective camera locked in position at an angle above with respect to the scene. One of the weaknesses of such a camera is not being able to see ahead to understand where your enemies are. In a trigger-happy hack and slash game like Diablo III, this is fine. You’re not usually attempting to make fine-tuned tactical decisions. But in a game where you want to be able to plan ahead, seeing where enemies are situated before you run into them is key.

I apologize ahead of time for subjecting you all to my MSPaint “skills”.

The eye in the upper left is the camera, and the square is the view: what you see on your monitor. The folks on the outside are the enemies.
So you have your party, the camera is centered on them, and you as the programmer know there are enemies coming up (perhaps your players have a “sight” radius where they can detect characters beyond the camera view). The na├»ve approach would be to pan the camera over to the enemies to include them in the view. That’s not really too bad of an approach, except depending on how far away the enemies are, you may end up having players fall off the screen, which is terrible.

If we just move the camera over (due to a fixed angle), we end up leaving some players out of the screen!
You could do so temporarily and then pan back, but that involves loss of character control, as well as having to rely on player memory. Not to mention, what happens if they want to engage from range? No, we need to fit everyone on the screen, so instead, we need to programmatically be able to pull the camera back. We’ll also need to push the camera back in when all of that extra distance is not needed.

Note I was told by our cinematics guy that this is in no uncertain terms called "zoom". Apparently zoom involves changing the field of view, and since we need that to be static, it's not zoom. He was quite insistent, and admittedly, he knows the terminology better than I.

Rather, you want to pan to the center of them all, then pull back to ensure all actors you want are on screen.
Once we’ve centered the camera on all of the actors we want to include, how do we calculate how much we need to pull the camera back to ensure they’re all in the view? Some vector math, a little trig, and some ray-plane intersection calculations will do the trick.

So what do we know? We know where the center of the camera is pointed at (our LookAt), we know where the camera itself is situated (our Camera), and we know/can calculate where the furthest actor we need to include in the view is (PointX).


Starting with these 3 points, we can actually calculate a pair of triangles to eventually be able to get to where we want our camera. Below depicts a pretty complex diagram of where we want to be, and all the pieces in-between we need to calculate. I'll break it down.

Don't be fooled. I drew this as a right-triangle, but it's not guaranteed to be one.
So Camera, LookAt, and PointX are known quantities, as per our full diagram above. Camera' is where we want our camera such that it includes PointX. Ultimately, that's what we're trying to calculate.

Note that we know the camera is fixed in field of view and frustum, and as such we know the top-most angle on both triangles will be identical (though we don't know the actual angle A). We also know that the bottom-left angle will be the same, and via the properties of a triangle, we know that all three angles must add to 180 degrees. The result? We're just trying to figure out how much to scale our triangle to fit the triangle to PointX.

If we can calculate the sides a, b, and d, we can figure out what e should be via simple ratios:
Since we're just scaling, these ratios must be equal.
We have the exact locations of three points, so we can calculate the side-lengths b and d trivially. a, on the other hand, may be a bit more difficult. We're missing what I've labelled PointP.

The thing about triangles is that if you have some combination of angles and sides, where you know at least one side, but a total of three things, you can calculate anything else you want about the triangle. However, all we have at the moment is side b. To get side a, we need more information.

We can calculate angle C. We can do so because we have two vectors: (Camera, LookAt), and (PointX, LookAt). How do you find the angle between two vectors? If your math library doesn't offer it, just make sure your vectors are at the origin, normalized, and the take the inverse cosine of the dot product. Unity thankfully does this for you via Vector3.Angle, though you'll still want to ensure they're at the origin.

But now we're at an impasse. We have one angle, and one side, but we can't calculate any more until we figure out what I've labeled PointP. Once we have PointP, getting side a is trivial, as it's just the distance between PointP and LookAt. We cannot calculate PointP with the information we have in the above diagram, however. We need another way to do it.


Let's go back to our full camera diagram. Note that PointP is on a straight line that passes through LookAt and PointX. Also note it passes through our camera frustum! If we can figure out the intersection of that line with the correct frustum plane, we can calculate the precise location of PointP in world space.

Frustum plane calculations are a bit intense, but thankfully Unity again comes to the rescue with GeometryUtility.CalculateFrustumPlanes. It returns all of the planes for our camera frustum. All six of them (near clipping, far clipping, and the four sides). Too many planes! How do we know which one is the correct one?
Creating perspective camera diagrams in MSPaint is more time consuming than expected.
In the above diagram, we see the camera point, and two boxes: one close to "us" and one "further back" towards the camera point. These are the near and far clipping planes. By comparing their normal to the camera normal, we can remove these from the planes that we need to check, since PointP should never be anywhere near the clipping planes.

That leaves us with four planes, and a vector (PointX, LookAt). To figure out which plane we're behind, we can do a quick angle check between each plane normal and our vector using the same technique we did earlier. Whichever angle is the smallest (we don't care about the sign) is the one we're behind.

If you were to ask me to build a rigorous proof of this, I wouldn't be able to off-hand. But I'm fairly certain it works as long as LookAt is precisely in the middle of the frustum walls.
Now that we know which plane to test our intersection against, we can perform a single Ray-Plane intersection and get PointP. Once we have PointP, we can use it combined with LookAt to derive side a, and then apply our ratio calculation to get side e.

As a reminder of what we're deriving and what we have.
Subtract side b from side e, and bam, you now know the distance you need to move your camera back along the camera's normal to fit PointX in the frustum. And, as it turns out, we didn't even need to calculate angle C.

Interestingly enough, this algorithm largely works in reverse, too, if all of your actors are inside the frustum and you need to push the camera back in. One of the vectors you use in a calculation above has to be reversed once you realize you're inside the frustum instead of outside, but you can re-use 95% of the same code. But I leave that as an exercise to the reader so I'm not giving ALL of our mathematical secrets away.

Note that this technique relies on the camera being static as far as field of view and rotation in the world goes. It should be fine to have different starting rotations, but once you've got the camera running, you're stuck (if you need to use fancy zoom in cameras for animation, etc. just duplicate the camera and move the duplicate instead). It also doesn't work if your near or far clipping planes are too close to the characters, but that generally isn't a problem in a Diablo III-style camera environment.

So there you have it. All of the math required to figure out how to fit all of your actors you need to on the screen at once, just to give folks a taste of what I do on a daily/weekly basis! I'm pretty lucky that I get to talk about things at this level of detail, and hopefully we'll have more meaty design-type stuff for folks eventually, too!

#Math, #IndieDev

Monday, August 4, 2014

In Support of Support Classes

While I don't necessarily agree with Keen in my previous post about class consolidation necessarily decreasing combat depth, I do agree with him insofar as having support classes can be fun.

When folks talk about the Holy Trinity, it's basically a way of dealing with threat mechanics in a way that makes some sense to the players. Tanks deal with taking damage, Healers fix damage taken, and Damagers (or DPS in more common parlance) take out the baddies.

It wasn't always like this, though. In older MMOs like Everquest, you also had Buffers and Debuffers. While WoW has rolled those two class archetypes into tanks, healers, and DPS, I find I miss having that very specific role where your job couldn't necessarily be numerically evaluated quite so easily.

When you look at D&D 4th Edition, they don't have a trinity, they have a quartet: Leaders (healers/buffers), Defenders (tanks), Strikers (DPS), and Controllers (debuffers). I often find playing a controller or leader is actually a lot of fun. The ability to move people around combat, change the face of the battlefield, or give folks bonuses to their damage or to hit, is harder to measure than damage taken/healed/done, but is still an immense help to the party. To be honest, I prefer one of those roles over Strikers, because while big numbers can be fun, I find my combat options tend to be more limited as a Striker.

In Vanilla, WoW did effectively have buff classes in the form of early Paladin and Shaman. Though, I'll grant you that having to spend all your time buffing 40 players one-by-one with Kings, then starting over and buffing them again one-by-one because it would expire soon wasn't a good implementation of a buff class. However, with EQ-style Bards you could "twist" songs to provide up to two buffs at once to your party, and you had a number of different buffs to hand out based on the context of the situation.

Now, Blizzard did basically decide that buff classes as they were in Vanilla were not the way to go. Over time, every class was relegated to DPS, Heals, or Tank, and buffs and debuffs got distributed across all classes. Bring the player, not the class, right? Though you still need to bring a specific role.

It makes me wonder if rolling up buffs and debuffs into the Holy Trinity was required, or if there's room for classes specifically devoted to helping other people? Or was it perhaps a side-effect of a very numbers-driven sub-culture, where Recount was king, and if you weren't pulling numbers, you weren't effective? In WoW, damage meters of some sort existed as far back as late Vanilla at least.

The ability to measure your output is interesting and mildly contentious. It's very difficult to improve if you don't know how much damage or healing you're outputting or taking. On the other hand, if there was no ability to measure that number, people wouldn't focus on it either. RIFT tried this for a while, but the developers eventually reneged based on player feedback, so I'm not sure that particular genie can be stuffed back in the bottle.

But as per my point earlier about D&D 4th Edition Strikers, perhaps that's the more important point. Strikers I find dull because they exist to do damage and nothing else. Perhaps rolling up buffing and debuffing into DPS doesn't have to be about buffs and debuffs being dull. Perhaps it could be that just plain old DPS is dull, and giving them buffs and debuffs to handle as well as DPS makes the role more interesting?

While I don't think we'll ever be able to see a buff/debuff class in WoW--it just doesn't fit in the playstyle anymore with the distribution across classes and rolls having already occurred--I think perhaps we might be able to see something like that in other games that don't quite have the Trinity so entrenched.

#GameDesign, #HolyTrinity

Friday, August 1, 2014

Life As An Indie Game Dev - Month 1

A while back I mentioned that I was becoming a developer for a small independent game company called Flying Helmet Games. Now that's it's been one month since I started, I figured I'd report in here with some interesting info.

As a developer, I'm not actually much involved in design decisions proper at the moment. My job has largely been handling the mathematics required for features. Things like camera work, line of sight, area of effects, and so on have been my domain so far. Thankfully I have a whiteboard in my apartment, which constantly gets filled with diagrams, equations, etc. before I discover I am wrong yet again and erase it all.


Don't look too closely, one of my substitutions accidentally made everything work out to 0. The theory was mostly sound, though.
On the bright side, I can now completely justify the math minor I got nearly a decade ago, so that's good news.

We're a small studio, with only two developers total (soon three) among artists, designers, writers, etc., many of whom wear multiple hats, so I'm kept pretty busy in the code mines. Frankly, I'm okay with this since I love coding, and I didn't realize I had missed all the math until I started doing it again.

I've been working remotely from home, compared to most of the rest of the team who're in an office in Vancouver, BC. I've never really worked from home permanently before. In my previous job, sometimes I would work from home to enforce an uninterruptable day; the more senior I got, the more folks needed to interact with me, and so interruptions would be constant. So I thought it would be great.

My home office. Not fancy, but it works quite well.
Focusing hasn't been an issue. I have an area in my apartment divvied off for working away from all of my distractions like games, and such. But the lack of human contact through the day is driving me slightly mad. I'll admit, I miss having people around. I'm a pretty chatty person, so not having anyone to talk with has almost been a distraction unto itself. It's been great for driving me out of the house in the evening though. More than ever, I've started reaching out to friends to do things in the evening rather than my modus operandi of being a passive nitwit and waiting for people to invite me to things. Still working on that, but hey, nobody's perfect.

The other bonus is having a laptop and working from home is tethering my laptop to my phone and going elsewhere to work. Apparently my apartment building has a gorgeous courtyard in which I can hang out and get stuff done. Clearly that'll be more of an issue come fall, but for now it's great.

Warm yet shaded. Also, secluded from the rest of the city. I don't even really hear much traffic.
So yeah, I don't really have much to report otherwise. It's been great so far, I'm working on interesting problems, but we don't really have much to talk about quite yet. At least, not that I'm aware I can really talk about. I'll get back to folks on that!

#Personal, #IndieDev

Monday, July 28, 2014

Complexity and Depth Part 2: Conflation Station

A few months back I wrote up a blog post about the ideas of complexity versus depth. Complexity at its core is how many rules do you have, and depth is what is the meaningful possibility space enabled by the rules.
 
Keen over at Keen and Graev's Gaming Blog postulated recently that slower combat had more depth. While I agree with the premise that slower combat can have more depth, it doesn't necessarily make it true, and Keen's sub-arguments rapidly show that it's too easy to conflate complexity and depth. More complexity does not automatically ensure more depth.
 
Complexity of Decisions 
"Today there are very few decisions to be made. One simply walks up to a mob and executes abilities in any order. The real decision is which order to use the abilities to kill the monster fastest–everything is about actively attacking."
First of all, I agree with Balkoth that Keen is conflating lack of difficulty with lack of depth. Leveling in WoW, Guild Wars 2, Final Fantasy XIV, and Wildstar all has to be sufficiently easy that the grand majority of the populace can perform it, or you lose your subscribers. In all of those games there are more difficult content where you do need to perform more difficult maneuvers to defeat the enemy.
 
Frost mages in WoW facing something higher level than they are will root, slow, stun, blink, and so on, using the tools at their disposal. Kiting is still used for difficult mobs all the time. Heck, just the other day I kited a bunch of mobs with my Enhancement Shaman while my friend DPS'd them down slowly, all the while avoiding damage.
 

 
I wish I had a video of me soloing Chimaeron on my Enhancement Shaman, because that was one hell of a puzzle trying to figure out what combinations of talents, abilities, timings, etc. I needed to win, but above is a video of the next fight, soloing Nefarian. While not as difficult, it still required the use of extant abilities such as Earth Elemental, Rockbiter Weapon, as well as all of my self-healing and defensive cooldowns to win.
 
Things like Root Rot, where you literally just root them and DoT them, still works to an effect. It's just that in most games you can't root them indefinitely. Being able to lock down a monster forever would be bad design, as there's no depth or thought there. Mind you, the depth comes from the players discovering this technique from chaining together different abilities, and that is a good thing.
 
But to say that using player-created techniques via a combination of abilities is dead just tells me that you're not attempting difficult content to begin with. The content is there, it's just not in your face for subscriber-maintaining reasons. You have to seek it.
 
One final note here: rotational complexity is an interesting beast. At higher levels of difficulty, it's basically muscle memory. The more complex classes, the better your ability to memorize chains of abilities needs to be to manage it. Once you've "solved" the intellectual challenge of "What is my rotation?", which for most games you can look up online these days, it becomes the mental/physical endurance challenge of maintaining it for the duration of a fight. A good blog post I think later will be delving into physical versus intellectual difficulties.
 
Aggro
 
First of all, most games still have aggro. Final Fantasy XIV and Wildstar it plays an extremely important part of multiplayer content. Guild Wars 2 doesn't even have the Holy Trinity or anything like it, so aggro as a concept is less about one person tanking and more about, "I'm dying, I need to drop aggro." It's really only WoW that's vastly simplified the concept.
 
The concept of aggro also has very little to do with the speed of combat. Wildstar combat is quite frantic, and yet aggro as a concept persists and works. Final Fantasy XIV combat is very slow in comparison to WoW, GW2, Wildstar, etc. aggro as a concept works identically to Wildstar's.
"Tanking took time, monsters took time to taunt and build up a safe aggro, and players respected that or died."
Tweaking aggro to Everquest levels such as Keen mentions above is just a knob on aggro as a whole. But the question here is does aggro add depth? Aggro is certainly another set of rules; taunts, waiting to DPS/heal, not ripping threat off the tanks, threat reducing abilities all add a layer of complexity for sure.
 
But I argue that in the Holy Trinity model, aggro does nothing to add depth. Your choices are let the tank get aggro, or you die. That's the possibility space added from the concept of aggro. I think a better way to look at this is to look at a system that uses aggro, but doesn't have tanks, per se, like Guild Wars 2. I'd argue it has a bigger possibility space granted because anyone can "tank". So if you're running low on health, you shouldn't be tanking, someone else can tank. Or if you can pin-pong an enemy between 3 or 4 different "tanks" to keep it running rather than attacking. Kiting, if you will.
 
As long as the Holy Trinity model only allows for one or two tanks, and anybody else gets dead if the boss so much as looks at them, there's no decision to be made. It's a trap. It definitely requires skill and knowledge of the system to handle, so is complex, but it doesn't add depth.
 
Class Specialization
"This could also be called the 'characters do one thing well' category. Having certain classes in your group would actually slow down the rate at which you could kill a single mob, thus slowing combat, but might improve your abilities to survive, pull multiple mobs at once and take a tougher spawn, or recover from battle quicker and move on to the next kill...These days everyone is a DPS."
Keen's complaint here stems from a lack of coordination required. Rather than having the requirements for a fight to be distributed across multiple players and each player having a single job, each player has more tools at their disposal to perform at fights and may have multiple tasks to perform in a single fight.

Instead of having debuffers, buffers, damagers, tanks, and healers, buffing and debuffing got rolled into everyone's classes in most modern MMOs, leaving you with damagers, tanks, and healers all capable of also buffing/debuffing. The tasks all still mostly exist (just ask any Warlock who has to put up Curse of Elements in WoW, or any healer who's tossing external cooldowns on tanks), it's just that each player can do more. That's not a reduction of depth, that's just a redistribution of complexity.

Combat speed once again has nothing to do with this point; it clearly does not support Keen's hypothesis whatsoever.

Managing Resources
"Managing mana consumption was often the difference between a great player and a good one. Healers who knew which heals to use and when, Wizards who knew how many times they should nuke to add the most efficient DPS to a group (the key being “efficient”), etc. Consume your resources and combat was slower. Have to worry about them at all and combat naturally becomes much, much slower."
Consume your resources, and combat would last longer, but not necessarily be slower. Run out of mana, and you'd need to wait for it to regenerate, but the cadence at which enemies use abilities doesn't change. Mind you, where his idea is correct is if resources are designed to run out quickly, it would necessitate not using your abilities at their maximum cadence.

Basically, if you go full throttle all the time, you run out of mana/focus/etc. That idea is quite sound, and you'll note it's in effect in FFXIV, where everyone has to watch their resources carefully. The difference is that you have abilities you can use that are effectively resource-neutral, or resource-gaining, and higher damage/healing abilities that eat away at your resources, so the game becomes a choice between when to go all-out, and when to conserve (also see: Arcane Mages in WoW).

Combat speed is independent of this variable, unless the game has no resource-neutral or better abilities. Then you're forced to hit fewer buttons: the downtime between each ability becomes greater than the GCD. If the designers have made combat a frantic, fast-paced affair, clearly waiting between abilities won't really work. Human nature would be to hit buttons as fast as possible in a panic-response to fast combat.

Leisurely combat, where enemy abilities are far and few between, you have lots of time to choose actions, or interrupt other abilities, to get out of the bad, and so on, would naturally allow for the player to pick and choose their abilities more carefully, and having that extra time means you can allow for more thought for each individual action, meaning you can allow for more depth. But that being said, individual abilities would naturally need to have more impact to make those choices meaningful. The fewer choices you're making, the more impact each choice needs to have to make it worthwhile.

I think this is the closest Keen gets to actually supporting his hypothesis, but again, having to manage resources can be independent of combat speed with the one exception I laid out. Then you may as well have a turn-based game--which is okay! I love turn-based games--but in the current "real-time" model of MMOs I'd argue doesn't really work. It's another trap for the players. An unnecessary, unfun skill cap.

Auto Attack
"Remember our old friend “white damage?” I love auto attack. I remember the days when it comprised of a massive portion of overall damage done by melee characters.  The entire concept is all but completely done away with in favor of rotations and constant ability usage. Older MMOs had fewer abilities (most of the time)."
Okay, I'll be brutally honest here. When I got to this part of the blog post, my first thought was, "Wait, is he trolling us?" Because auto-attack is the opposite of complexity and depth. Having your character do damage automatically means even if you as a player do nothing isn't a decision, isn't a rule, isn't... anything.

Oh, don't get me wrong, with a game that can have latency spikes, I think auto-attack is a useful tool to allow players to continue being mildly effective while they're having a lag attack (see the Nefarian solo kill video, near the end where I spike for a good 3 seconds), but if you were to take auto-attack away entirely, the complexity of the game and the depth of the game wouldn't change, meaning it adds literally nothing to either. And it's also independent of combat speed.

La Jeu en Rose

While Keen was clearly conflating complexity and depth in a couple cases, I think what he's really arguing for games as they were in Everquest. He views that as his ideal game, and that's totally fine. I don't care for it myself, but enjoyment is subjective. However, none of the arguments he posited support his initial hypothesis that slower combat means more depth. In fact, almost none of them have anything to do with slower combat at all.

#GameDesign