Monday, February 7, 2011

A Working Skill System ?

Back to MMORPGs ...
Over the last few days, when I wasn't watching Al Jazeera, I was cudgeling my brain to find a working skill based system. You can come up with some extremely complicated stuff here. Like logarithmically diminishing returns combined with skill decay and experience gain combined with sink-in time. But I think I found a system that looks like a skill-based system and works. There are probably a lot more out there, but let's stick to this one for now.

1) Skill levels 0 <= x <= 100
2) Everybody can have every single skill and max it
3) You can find/learn/buy/... perks
4) To activate a gained perk you require a specified amount of skill points in associated skills
5) A maximum of 3 perks can be active at any given time
6) You can unlearn any perk in two days real time.

-) Slow, linear character power progression! No zones for a specific power level. A virtual world.
-) Characters don't gain much power when progressing, but gain 'flavour' and 'style'.
-) For example: Sword skill 100 does 50% more damage with swords than sword skill 0.

The skills are really only a foundation for the game. You learn how to repair your stuff on a basic level, how to fight skillfully, how to craft basic tools etc. If you want to master any of this, you need perks. You find perks by adventuring and exploring. Mmh .. careful with information curse here !

Do anything, get better at it. You are encouraged to do everything in the game to get to know it better. Great incentive !! Eventually you max all your skills - have a well rounded character. Long time motivation for playing, but you are already useful if you have only some perks and some skills.

Now, about those perks. Examples:
- Your healing spells can heal other people
- You can learn spells from ancient books
- You can select spell X,Y, or Z to make AoE damage
- You can wear plate mail, but cannot cast anything while wearing it
- You can craft magic items
- You can enchant stuff permanantly (instead of only temporary)
- You pay 50% less fees when doing trade
- ...

In some way these are classes. Every possible combination of perks needs to be thought through by the designers. That's still a hell of a lot of work, but better than a pure skill system. What's great is how flexible the system is. The perks can be arbitrary from the designer's point of view. You think that perk X and Y shouldn't be combined? Don't allow it!

Most importantly, people can explore the game world free at first. They feel encouraged to play every single aspect of it before they decide on what to do later on. When they, finally, can select perks they already know the game rather well.

Now, this system is not perfect. Going through every possible combination of perks can become a hell of a lot of work for the designers. But it is managable. For example 40 perks with 3 possible active ones mean Binomial(40,3)=9880 possible combinations. Split this among 10 people. Means 1000 combinations to see through for each. Most of them will be absurd. Within a day's time you're finished.

You should be. In a typical skill based system you cannot even count the possible combinations! Sometimes you cannot even calculate their number anymore! What is the amount of work when you add an new perk later in this system? That is Binomial(40,3-1)=780 for the 41th perk. And don't ask me which combinations of 6 perks in a two player group would be unbalanced! ...

Of course, within a months' time there will perk databases on the internet and people will be told which perks to get to fulfill which role. I don't think any skill system can prevent this from happening, really. People want to fulfill roles. They don't want to just play and get better at what they do. They want to deal ranged damage with magic or they want to kite stuff to death or they want to be a trader .. or a crafter .. and they work towards it. The only thing you can do is to make that 'work towards it' fun.

Mmh. Actually I am not convinced that this system would be any good. It is just too vulnerable .. Perhaps the easiest way would be to allow classes when you fulfill some skill requirements. Would still be a skill-based system, wouldn't it ? :)


  1. That system would encourage Star Wars Galaxies style of playing, where you might capping your skills even while you don't want to do that.

    It would be very difficult for developers to know whether people are doing, let's say, cooking, for example, because it's fun to do that or because they want to get a perk that requires that skill.

  2. Mr. Chaotic Numbers ..

    I agree that this is a problem. But then .. isn't that a problem no matter what you do. I can hardly list all the things in MMOs I did that weren't inherently fun. In fact, I doubt many activities can even be inherently fun.

    Even in the most basic skill system you have people who cut down trees not because they need the lumber, but to get better at cutting down trees... I really don't see how this deamon can be exterminated within any skill-based system.

  3. I'm not sure if a system where you can (realistically) cap all skills and there's no decay would not effectively equate to WoW's now deprecated weapon skills, i.e. something you simply have to grind up to "perform normally", e.g. there's nothing special in having maxed your two-handed maces skill, because everyone else has it maxed as well and it in no way influences/inhibits your ability to max your one-handed swords skill.

    I realise it's really the perks you are centring your model around, but then it's more a perk system than a skill system.

  4. That's a valid complaint, Rem.

    Hostestly: One of the reasos you want a skill system is to shut those people up who want one *grins*.

    But is skill decay the answer? A system were you have to go back and cut 50 trees after vacation, before you can cut those extra valueable trees again? Or a system where your tree-cutting skill is simply a measure of how fast you can cut trees? That would make the skill rather meaningless, wouldn't it? Or a system were your skills decay only while you are online, so you are incentivised to never do something useless while online (like chatting) ?

    I'd love to read another suggestion of a skill based system. You sound as if you have one in mind. ;)

  5. (For some reason it won't let me use OpenID for this comment, so posting with my old Blogger account. It's still me ;))

    I'm sorry to disappoint Nils, but I'm actually pretty much in agreement with you ;)

    However, if hard pressed to design a decay/skill system, I might try something like the following:

    - A “time unit of decay” is the act of getting a skill-up in another area. That protects both vacations and in-game downtime (chat etc.), which I agree is very, very important. Technically, this bit is a result of the following, but it was the starting point of my considerations.

    - Skill levels are 0 <= x <= SKILL_MAX.

    - There is a maximum amount of total skill points acquirable by a character TOTAL_SKILL_MAX.

    - SKILL_MAX << TOTAL_SKILL_MAX << n * SKILL_MAX, where n is the number of skills in the game.

    - Every skill has a “distance” 1 <= d <= DIST_MAX to every other skill. The distance represents the similarities between the activities expressed by the skill. The smaller the distance, the more alike are the skills; the larger the distance, the more different.

    - Gaining an increase in a skill has a functionally determined effect on all other skills possessed by the character.

    - The effect is positive for skills with a small distance, diminishing with increasing distance and negative for skills with a large distance. The breaking point between positive and negative effect should be the average distance, or the median distance. An appropriate mathematical function needs to be chosen, something trigonometrical could work.

    - The system could be approximately visualised by plotting skills according to their distances along the x-axis, skill values along the y-axis, connecting all points with a (continuous) graph and imagining the integral under that graph as the total skill point limit – you pull up at a point, some other point(s) may need to go down. The visualisation is only approximate, because other than for trivial or specifically constrained systems, the skill distances cannot be plotted on a one-dimensional axis, indeed we'd need as many dimensions as the number of times the most popular distance is used.

    - Once a skill reaches the maximum value SKLL_MAX, it can be fixed to prevent future drop-offs, i.e. “you acquire mastery in the field”. Of course that does not exempt it from being part of the TOTAL_SKILL_MAX limitation, which has an influence on the future learning process, e.g. skills in its proximity are reacting stronger to changes, because they have to compensate for the immovable nature of the skill in question. This is an example of tweaks and tools that can be added to the system.

    - As a practical example, the process of cutting trees has a direct positive effect on your ability to cut trees, a collateral positive effect on your ability to handle axes, a smaller positive effect on your ability to handle maces, a neutral effect on your ability to handle swords and a negative effect on your jeweller skills.

    What I like about this approach is that it makes specialisation matter – a sword fighter is functionally different from an axe fighter, who is functionally different from a tree cutter, who is functionally different from a gem cutter. Furthermore, you can at least partially avoid the necessity to grind up an ability by performing it 1000 times, but can instead rely on collateral effects to a certain extent. Also, you can still make a Scholar-Berserker, and he doesn't even have to be gimp, but will cost you more effort than a more “coherent” character (which makes sense). The average skill level can serve as an expression of character level, also implying a “level cap” and affording the possibility of “ding” moments.

    I don't know if this or something similar has been done/attempted before, but I think it's something I would try if I had to … or could :)

  6. Thanks for the lengthy comment, Rem.
    That distance thing is certainly a neat idea. But I fail at seeing how it would dissolve all those other issues connected with skill-based systems. See that other thread.

    Losing skills when you train other skills has also this strange effect that you sometimes lose very valueable skills, just because you trained them first or didn't use them for some time. So to learn skill X you first need to retrain skill Y a lot. And naturally it follows skill-locking. I find that to be much more unimmersive than classes.

    I guess there is little benefit in discussing something with somebody who agrees :).

  7. One reason why I am against purely skill based systems is that they all lead to basically same predefined roles , just with much more work. Or (if there was no serious work done) they degenerate into 3-4 FOTM (less than what wow has - around 10-15 viable specs ,depending how you count).

    Balancing act is designing the roles for players with most diversity and options. If you dont players will do that for you and they will take most efficient shortcuts to power- and be assured it will have least diversity and least options. One of the shining examples of this was AC. Which had only 2 optimal roles: mage doing damage with magic and mage doing damage with weapons. both roles maxed exact same skills save for one damaging skill.

    2nd reason is that they are typically grindy and are macroed. (UO,AC,SWG, Darkfall) and/or require massive time investment into time "played" (EVE). Which is the most boring activity and one of the main reasons I dont play either eve or DF

    I doubt many activities can even be inherently fun

    Well I think well made combat is inherently fun. Fun combat is sole reason FPS/RTS/fighting games... -heck any non MMO progression MP game exist.

    Add moderately fun combat to addictive diku treadmills and you have main reason why people play MMO today (starting with EQ which had boring combat and slow treadmills and epitomizing in WoW which has much better combat and more addictive treadmills)

    Think about it - players dont want "learn to do x" .They want [b]DO X[/b]. They don't want spend x hours played for their character "learning" how to swing sword . Reason MMO get away with their progression is because leveling is reward based treadmill , -players get rewarded every ding. Not because players like "learning"

  8. When I want to chop trees, I just go swing an axe. Sometimes I will even pick up bad habits during the process - when wielding a longsword, tis better that you kill the Orc (before he you), than to pay too much mind to perfecting your stance and swing.

    If I want to be better at any activity I usually approach the task with more mindful attention. Also, if the task is one of creating something I tend to use more materials than if I were to just bang it out. This goes for even something as simple as making a sandwich.

    Could these aspects be incorporated into a skill system? Thus, the occasional skill gains from every day execution, but greater skill gains from dedicated and mindful study?

    There could even be a random decrement to a related skill along with a non-mindful skill up, which is the "bad habit" effect. These "bad habit" decrements wouldn't occur during mindful practice.

  9. oh, bonus thought...

    have skill proficiency go 0-100% through usual use and practice, but then allow an additional 1-5% for extraordinary practice (big diminishing returns etc). Thus those that see themselves as a master swordsman will go the extra effort, but most damage dealing adventurers would be content with 100% skill. Scale the content for the 100% skill of course.

    Although the math may be the same, don't present it as 0-95% plus 5% excellence. It's the same framing trick as "rested XP".

  10. The game Dungeon Crawl: Stone Soup allows players to set whether a skill trains or not. In a skill system where some skills degrade when others are trained, perhaps the player could select which skills to maintain and which skills can degrade.