Friday, January 15, 2021

On Attributes

So how many attributes should characters in your Mud have?

You're probably totally stoked and thinking you'll have Strength and Agility and, you know what? Screwit! You'll even have Charisma and Personality and Perception! Let's look at some fundamental play here.

In everyone's favourite, Pac-Man, the Hero of our story, Pac, is either alive or dead. This means we have but a single attribute. Now the blokes at Namco could've been dicks and used a simple boolean, but instead gave us 3 guys. When all your guys were gone then play ceases, so isAlive isn't a yes/no Boolean, but instead a lifeCount integer. Naturally lots of people of different skill levels could play for different durations, so a need to identify ``how do I compare to others?'' was identified. This was resolved with an additional attribute, score. Finally it was decided that at certain times Pac-Man should be able to turn the tables on the monsters and chase them instead, giving the canAttack attribute which is a yes/no Boolean after eating certain dots. That's it. Pac-Man has just three attributes and game-play has held up just fine for 40 years. Notice in Pac-Man the attributes were defined by the game-play and not by checking items off of a list. If the designers of Pac-Man also thought floating over the walls in the maze was a good idea, but wanted to meter or ration that ability, then they would have added a fourth attribute. Take note they did not add a stupidAssJustBecause attribute, nor did they add a becauseEveryoneThoughtItWasCool attribute. Each attribute is present for one and only one reason: it supports the game-play.

The lesson we should be learning here is we should not first ask ``How many attributes should we have?'' but instead ask ``Should we even have attributes in the first place?''. An attribute of the character, any character, exists to support some mechanic within your virtual world. The first question shouldn't be ``Should we have Dexterity?'' but ``Will there be challenges of dexterity or agility?'', followed by ``Will those be of the player or the character?''. Naturally this answer will vary depending on genre. Twitch is a very bad thing in a Mud, for example, but is par for the course for any respectable First-Person Shooter. Could you seriously imagine playing Call of Duty, holding the crosshairs perfectly against someone's head at point-blank range, and being told ``You're character is so clumsy he missed'' ?

So let's consider some functional points and see how they play into things. So let's say you want to make a Mud along traditional lines, like World of Warcraft or some such. OK, so we know that whacking baddies until they go away is part of the game. That paradigm also includes baddies whacking you until you go away. Nevermind what ``go away'' means for the moment (spoiler: you're character isn't ``killed'' unless you are forced to re-roll a new 'toon; it's just a wuss-slap otherwise). So this notion implies, via the standard metaphors, some sort of ``health'' or ``stamina''. A character can take only so many ``hits'' before they are removed from play (even if but only temporarily). In The Lord of the Rings Online this was called ``morale'' (which was confusing, because did that mean when I fell from Weathertop, just before hitting the ground my character was so scared that he fled from it?) or ``hit points'' in traditional table-top D&D. By whatever name it is known, you'll need some sort of ``health'' score. OK, check. Now at this point you might be thinking something very stupid. You might say ``Yes, we will have an Endurance attribute which implies Health and then we will ...'', and that is probably the stupidest thing you can say. Attributes are fundamental. You already have one, Health. Why are you adding a second? The following mechanism is just plain wrong:
A ⇒ B
If A does imply B, and A is alone in that venture, and A does not imply anything else, THEN FORGET A AND JUST FUCKING WORK WITH B YOU SHITHEEL! I seriously cannot understand why people, who insist they are adults, need to be told this. So in this model we have a single attribute for characters: Health. We don't have an Endurance which gives rise to Health. We just have Health.

Now let's expand the functional requirements of this a bit. We're making not just any old slasher, but a swashbuckling game! You know, like the like the black & white Zoro shorts or the b&w Ereol Flynn pirate movies, or the Three Muskateers flick from 1993. Wow did those first two date me. In these we see a lot of back-and-forth sword play. You thrust and I parry, I swipe and you dodge. Each of us is attempting to overcome the other's defenses to strike some blow. Can I slip past your guard and pin your shoulder? Will your feint to my thigh distract me enough for you to scalp me? This is an exciting and dynamic form of combat! This isn't the usual bullshit of ``well I click attack and then I wait for him to run out of HP''. So how would we do this? Well we'll need to start with some sort of ``defense capacity''. This is how much defense I got before you start hitting my HP. If we watch the old films, this sort of thing is somewhat elastic and springy. The moment I catch my breath, my defenses return to me. There is some sort of regeneration at play. So now we also have a ``defense regeneration''. So one good trick might be to overwhelm me with multiple opponents! Sure, you and I might be an even match but when you bring three friendly mobs, even if they are peons, I might not be able to keep up with the constant attacks. There is just one other thing I think important to balance all this out. There needs to be some sort of limit on how much of my ``defense'' which can be spent at any time. A sort of ``attacks above this value completely bypass defense''. Do consider not everyone is so perfectly agile that they can avoid being struck indefinitely. Most of us w/o training would be hard-pressed to dodge a paper airplane. Seriously. So we have a another attribute, ``defense expenditure ceiling''. Now you can call those things whatever you like. Agility, Reflex, Guard, Dexterity, etc. It doesn't matter what you call them. What matters is the mechanic; the functional purpose. So now we have Four attributes, Health, Vitality, Reflex, and Agility, and at no point did I ever ask ``So... just how many attributes should we have in our Mud?''

That itself is something worth considering.

No comments:

Post a Comment