Brian “Psychochild” Green has a good new article and related blog posts up about rethinking the trinity of MMO design.
The point he never really addressed was what I think is the biggest issue and significant hurdle to “rethinking” MMO design– aggro.
The TL;DR version of this post: MMOs will not fundamentally change until they lose aggro as we know it as the fundamental combat mechanic.
Through the looking glass
“Aggro” or “threat” or call it what you will is the fundamental fulcrum upon which all DIKU-based combast systems are based. To state the obvious, threat is a mechanic which allows an NPC (or rather its “AI” code) to select who it should be attacking at any given time. Different player abilities contribute a different amount of threat toward a target. Simplified, the player with the most threat “wins” and gets targeted by the mob. As long as you aren’t #1 on his list, you might as well not exist to the mob.
As a concept, this is… “acceptable”. At least marginally. I can imagine a situation where a reasonably sentient NPC “decides” somewhat rationaly that the burly dude in his face banging on him with a large hammer presents more of an immediate threat to his survival than some frail Mr. Burns-esque creature with a conical hat standing WAAAAY over there making pretty colored lights and waving his hands.
Of course, you only need take small steps away from this scenario to end up through the looking glass into a bizzaro world. How absurd “ordinary” PVE combat must look to the uninitiated– despite the presence of 4 other party members (at least 3 of which are doing hellacious damage to their NPC comrades), all the NPCs continue attacking the tank.
“Why doesn’t that big baddie just go one-shot the clothie? What a stoop!”
“STFU, noob. You’re breaking my immersion. More dots.”
All this despite the fact that the tank is likely doing the least damage to the target, has the highest damage mitigation and is actively receiving healing. Make it even more absurd when a mob does change targets and the tank is able to regain aggro by merely making insinuations about the monster’s heritage, physiology or upbringing.
Now consider how the player party slices and dices a multi NPC encounter: Kill the weak first– fragile DPS, healers that prolong the fight, etc. It doesn’t matter what the monster calls your mother, you stick to the assigned target and follow your order of battle. Lather, rinse, repeat. If you do it right, the mobs will never know the warrior was accompanied by a party. I wonder what goes through a mob’s mind…
“Say Grog, why is that no matter how much we beat on this guy, he just keeps taking it? Do you hear something? Where are all those fireballs that are hitting Stan coming from anyway?”
“STFU, mob, you’re break..” gurgle dead.
Now consider now how PvP combat works: Kill the weak. There is no aggro, there is no taunt. I’ve yet to see hordes (no pun) of enemy combatants immediately flock to and stick to the warrior while mages nuke them from a safe distance…
The “traditional” Trinity– tank, DPS, healing– doesn’t need to be represented in the game as class archetypes or specialized roles, but rather are really just the fundamental aspects of combat: damage mitigation (tanking), damage dealing (dps), and damage remediation(healing). Each of these functions could be present in combination in any class to varying degrees.
Balancing these fundamental aspects of combat typically requires imposition of some kind of “budget” which makes sense i.e., no player gets to be the best at all three. At best, they can be the best at one at the expense of the other two, or some middling combination of all three.
What permits the Trinity as we know it (the ROLES of mitigation specialist, dps specialist and healing specialist) to persist is the convenience of the threat mechanism. It is only because the system permits a tank to “hold aggro” that role specialization as we know it can exist.
It’s just much easier logic wise and computing resource wise to stack the deck with a combat system so that the “tank” will always get the aggro. It makes coding the combat so much more efficient.
Why should sundering armor while doing relatively little dps allow a tank to be perceived as the biggest threat to a mob when 3 others are raining white hot death on them and a fourth is actively frustrating the NPCs attempts to kill the target? Well, the mechanical answer is because each player action has a specified threat generation value associated with it and the deck is stacked so that it will work that way. Five sunders and 1000 dps will prevent 3 other players doing 2000 dps each from “pulling aggro”. [Made up numbers]
Why the hell doesn’t Onyxia just ignore the shiny tank and stomp the DPS in the first minute of the fight and then come back with her Nutcracker of the Black Dragonflight and open up that brazil nut of a warrior for a tasty snack? Seems like something a super intelligent dragon queen broodmother might think of.
Its always been an absurd but convenient and resource friendly way to resolve combat. To some extent, ten or 15 years ago, it was all that was possible.
So what’s missing?
Decent mob AI. Mobs just aren’t very smart. They don’t tend to target the weakest first or take cover or get help when they realize that its 5 v. 1 and they’re the 1. They make a list and whoever is on top of their list they stick to. AI is hard. AI is resource intensive. AI is very situational.
Imagine if player combat skills were designed around much better mob AI. Tactics would trump pure specialization. Crowd control and debuffing would be as important as DPS is today. The basic combat logic:
Player health – mob damage + player healing > 0 and
Mob health – player damage + mob healing <=0;
then WIN=true else NOOB
would remain the same, but there would be many more ways to get there than in current MMOs.
If aggro as we currently know it ceased to exist, specialists would likely be at a disadvantage because the dynamics of battle would require more than merely standing in one place spamming frostbolt or taunt or greater heal. At any given moment players might need to snare and kite a target, mesmerize them, debuff their attacks in some way, block them from reaching vulnerable party members, knock them down, trip them, yank them off of someone etc.
Secondlly, and until relatively recently, collision detection. Ironically, the archetypal warrior in plate and shield (or anyone else for that matter) couldn’t physically block any attacks. No one could take a bullet for someone else. No one could pull an attacker off of someone. No one could push someone over a cliff or block a doorway. No body checking please.
Granted, collision detection has got to be a huge resource hog. Constantly figuring out where everyone is, whether they are running into each other dynamically can’t be spectacularly easy. Especially when moving from a tab targeting player=fixed point in space model. If a character has volume, hits and misses just got a lot more complicated. How much damage do I take if I’m only 1/2 way in the AE zone?
Likewise, given a certain amount of client sych slop doesn’t make that job easier. Finally, once you have collision detection, you need an entire scheme to decide how to decide whether/if a player can be moved by another player(s). Someone go code up a rubgy scrum routine and get back to me. Oh and figure out a way that plate wearers can immobilize a dragon’s tail swipe by grappling.
But think about it for a second– how cool would it be to see a pile of warriors physically holding back a raid boss or struggling to push them and hold them into a corner while the rest of the raid pummels away? Somehow that seems cooler to me than having a single warrior taunt tow a boss into a corner and basically stand there for the entire fight spamming some aggro generation skill.
Aggro permits these narrow role specialists to exist. Until we lose aggro-as-we-know-it from these games, nothing is really going to change.