Friday, 12 January 2007

Skills vs Classes

I've been reading the debate on skills vs classes being revived again. Firstly, have a look at those blogs. They're an interesting read, and as a game developer myself, I've got a whole lot of sites to bookmark and go through.

I also feel qualified to comment on them. For the record, I have been developing a variant of Angband called Unangband since 1992. Its playable; feel free to download it from the links on angband.oook.cz or direct from the development website unangband.berlios.de.

My game falls firmly on the side of classes at the moment. However, I've learnt a lot from fellow Angband variant developers, and particularly feel in debt to the excellent coding and game-balancing of Leon Merrick who developed a skills-based Angband variant called Sangband, which I recommend you download and start playing immediately. Leon has stopped developing Sangband approximately a year ago. The last official version is that I can find hosted is here, however a more recent 'unofficial' version is available if you wish to track it down. So I'm not alien to skills, in fact, I suspect I may be implementing skills in a later version of my game.

I think the discussion around skills vs classes has been missing one very important point: if you implement a cool special ability, why should you be cutting out even 1 person in your player base from using it. Its an important point, particularly for developers who don't have large development budgets, which is what I presume the majority of people reading these articles represent. Valve, who are arguably have designed some of the best games ever, will put a huge amount of developer time to script in cool events that have happened accidentally during a playtest run through. If they put in that much attention to ensuring that everyone has the same cool experiences, surely I (and you) should be doing the same.

I'll use the concrete example of the backstab ability. This is an almost trite fantasy cliche: a thief character sneaks through the shadows up to an unsuspecting monster, pulls out a short blade and thrusts it between the enemies shoulder blades. With a gurgling shudder, the monster drops to the ground, its compatriots unaware of what has just happened.

Now most games will have some kind of routine for backstab that goes if class = thief and/or skill-check(backstab) is true and monster is asleep, apply massive damage multiplier (With no apologies to Sony). But in reality, this requires a whole lot more development work to support. In a recent discussion on rec.game.roguelike.development, for instance, I discovered that one of the competition to my roguelike implemented a line of sight dependent wake up routine, and a dungeon generation algorithm that designs the dungeon to have multiple routes to a monster, so its possible for the player to see a sleeping monster and find a path to the monster that has a minimal line of sight in order to maximise the chances of getting in the precious backstab that they have specialised in.

Now, to keep up with the Jonses, I potentially have to implement a CPU-intensive modification to my LOS algorithms, and completely rehash my dungeon design algorithms which I have just changed to ensure that I only have at most 1 connecting tunnel to each room. No way am I going to put in all that effort, just so one class specialist of the hundred or so class combinations I have in my game gets an infrequent damage multiplier.

So howabout I go through the following thought process instead. Screw classes and skills!

I want everyone who goes through the process of sneaking up on an unsuspecting monster and hits them in the back with a bladed weapon to get a massive damage multiplier. They've made the effort, they deserve the multiplier. Same with magic spells. If they've got some oil and a big red book of fire magic, and know that the monster they're fighting is vulnerable to fire, then they deserve an easy kill for covering the monster with oil and hitting it with a fire spell.

Instead, I should concentrate on things like how much of a bonus should back-stabbing give? What incentives should I be giving the player to switch to a small bladed weapon, when they have a perfectively good big brutal axe? How should I ensure that an critically injured monster can't call out to his friends, but a less critically injured one can alert them? How do I model the line of sight, AI and dungeon design/generation systems to allow a player to get to an unaware monster? What should the consequences be of the character getting caught red-handed? How far can a player throw oil and what's the splash range? If a monster catches fire, what does it do? If the player casts a fire spell, and has managed to get oil on himself, what are the consequences?

You'll probably have noticed something about the back-stabbing and fire spell examples. Each of the abilities requires a different equipment load out. Its a developer bias. Angband and their ilk are all about inventory management. But every MMORPG is also all about the loot you get from monster drops. And the good thing about a classless, skill-less system is that every drop is potentially useful to you. Not just the next-bright-shiny item for your class, which you have to spend forever looking for.

Note that I am not saying that every attack shouldn't require skill. But the skill and preferred attacks should be down to the human at the edge of the keyboard. And I'm not suggesting no levelling. Characters may still be able to level up - just a level 10 character should not be any better at backstabbing or casting spells or swinging a sword than any other level 10 character. Levelling up should be about better luck, or improved health, or something else accruable that gives the players a fighting chance against tougher monsters. Or if you have "skill-checks", make them a simple comparison against the characters level, rather than level * class progression or skill level.

Its something I've been moving towards in my variant but won't have the guts to do for some time, if ever. But I suspect it'll be incredibly liberating, and let me concentrate on the important stuff, which is implementing more cool features for the player, as opposed to any kind of min-maxing of different classes and races and nerfing of skill and class combinations.

So this is a clarion call against classes and skills, from a developer guilty of a little bit of both.

5 comments:

Andrew Doull said...

There is plenty of discussion here at http://angband.oook.cz/rgrd.php?showpost=89638.

Andrew Doull said...

I've editted this a tiny bit, to replace player with character in a couple of places, and fix the name of the group rec.games.roguelike.development (Thanks Nolithius).

I also stupidly said "races" rather than "skills" in the last paragraph which may have confused people. If so, I apologise.

Mikolaj said...

Heh. All this from the author of a game with several hundred classes. ;>

My thoughts:
* about Sangband: it's cool, but it shows that balancing so many skills/oaths/etc. is very hard (even if Sangband is mostly quite well balanced) and rebalancing is needed again after any serious change not only to skills, but to monsters/items/dungeons/etc.
* I'm quite afraid of skills because they are either learned "by doing" which encourages all kinds of abuse and grind, or they induce very complex min-maxing at each character level-up. Sang has a bit of both problems, but mixed so that they do not appear so harsh. Perhaps story-related (which dungeon/quest you finished first, NPC interaction and so on) skill gain would be better. Or some predesigned skill-sets that offer some bonuses (but perhaps not as harsh as Sangband Oaths).
* I agree that allowing everybody to do everything is fun. But unskilled people should be penalized by some painful side-effects. E.g. in UnAngband a very-unskilled character doing a trick-shot is quite likely to miss the opponents, but even if he hits them all, he is then very likely to get hit by the returning weapon, instead of catching it.
* a different approach to the problem of items that only people of a certain class can use is that of Multiband (a forgotten multi-class Angband variant with a heap of great ideas and not as horrible balancing as you would expect from multi-classing). E.g. spell books found in the dungeon can be torn producing a number of loose pages that can be used as spell scrolls. Of course this needs balancing, but with this system there is really no need to let everybody cast spells from all books --- they are nearly always better off tearing them (sometimes even the classes specialized in that book realm).
* I'm all for allowing everybody to backstab, etc. Just make sure thieves have better stealth approaching, backstabbing is easier in darkness and thieves see better in darkness, thieves make less noise killing, etc. In this way backstabbing will be a special highlight of thief's game-play, but if your Dunedan Paladin (whose quiver accidentally contains a really nice high-dice throwing dagger) happens to find a Scroll of Superstealth, and Potion of Infravision in the same chest close to a hidden back-door to a dark room with a high-damage, low-HP and low-perception lone unique, he will have a nice story to tell on his character blog...

Andrew Doull said...

Hi Mikolaj,

What I didn't say in the article was that having a enthusiastic co-developer with care and attention about class balancing was another way to go. ;)

Andrew said...

Well, having read your later post categorizing most of the responses you got on r.g.r.d, I'll offer my take:

Basically, skills force specialization of a character, to some degree. Classes, of course, do the same thing, but are usually much more of a straitjacket. I have two "takes" to offer on why this is a good thing:

* If you've read much of Leon's philosophy behind Sangband, his vision of people playing the game is that they will pick somewhere between six and ten skills and focus on them, leaving the rest at nominal values. People who want to do everything with one character drive him up the wall (I regret that I'm probably slightly misrepresenting his position, but I'm not having much luck coming up with any of his posts on the topic) because he views part of the joy of the game as the process of discovery, and if your first character can do everything, that leaves nothing left for later characters to discover. Sure, having randomly-generated dungeons means that "every game is different", but discovery of pre-generated content (i.e. the spell lists for the four different magic schools) is somehow different.

* In Crawl, with one major exception (Spellcasting) and a couple of more minor ones, skills only ease the difficulty of tasks, rather than being a binary enabler for them. Any character managing to get next to an unaware opponent and wielding a short blade can indeed get a pretty good damage multiplier on their first attack (actually, any melee attack qualifies; short blades just have the best multiplier). Now, the *size* of the multiplier does increase with increasing levels of the Stabbing skill, but it doesn't sound as though that's precisely where your objection lies. Also in theory, every character in Crawl can learn every skill, and given enough patience can become expert in all of them. However, a "typical" game will only afford a character enough experience to max out one or two skills and have perhaps three or four at a reasonable middle level (with perhaps a dozen more ranging from very low up to the middle area). So while you certainly *can* say "Oh, I want to be a stealthy shield-using character with a wide selection of utility spells and good support from my deity of choice", the interesting part of gameplay comes down to whether or not you can affirmatively answer the question of "but are my skills good enough to cope with the monsters that I need to cope with in order to get the Orb and escape?" If you undertake to become a jack of all trades, you must then resign yourself to an arduously long session of play indeed if you do not want to remain a master of none.

* Crawl *already* has issues with many winning characters looking alike. For example, it is a rare conjurer-type character these days who does not know and rely on Lehudib's Crystal Spear, because while it isn't cheap, it is effective and unresistable damage. Arguably the only thing preventing *all* characters from using it is the barrier to effective use: one must already have competent conjuration skills before casting it is practical.

None of this is to say that your idea of a classless, skilless (that doesn't sound quite right when I type it that way :-) game is a bad one. However, in a typical Angband variant (and I regret to say that it has been many years indeed since I have taken a look at yours, although it has been on my list for a while now), for example, most characters are going to run across most of the high-end equipment and inventory filler over the course of a full game. If skills and/or classes do not prevent every character from using the optimal set of equipment, then either everyone winds up with a winning character that looks substantially similar (which you may not see as a problem), or something else must prevent this, either a) because there is a very wide variety of high-end equipment, most of which does not show up in any given game, or b) because the winning conditions are sufficiently random or inconsistent that the optimal set of equipment differs from game to game, or possibly because c) "optimal" is somewhat hazily defined and different configurations in the same region, power-level-wise, suit different play styles better.

I think I've gone on for far longer than I intended :-) Regardless of where the preceding fell on a scale from "most eloquent essay you've ever read" to "impenetrable block of text that nonetheless hints at having been writen by a woefully misguided nutjob", I wish you luck with developing Un :-)

P.S. I think you may have misinterpreted that post about Crawl's dungeon generator to ascribe way too much intentionality to it. That there may be multiple paths to any given monster, some of which spend more time in "view" of the monster than others, might best be described as emergent behavior :-)