In response to Krones’ post of being sick of how classes are handled in MMOs, I began to describe some of the thoughts I’ve had about using statistical analysis to determine trends in how players play.
If you pick up a sword, don armor, and act like a tank, the game notices and unlocks tank abilities. When you drop the sword and put on robes, you’ve become a caster. When you put on leather armor and start sneaking around, you become a rogue. The more exclusively you behave like the class, the more class abilities unlock.
Likewise, if you’ve “discovered” new areas consistently and recently, you’ve become a better explorer. As you spend more time levelling or trying to increase status, get loot, etc., you get more achievement points. If you spend more time in town gabbing, you’ll get more socializer points.
Key to tracking your class in a fuzzy way is statistical analysis. Trends in your behavior as a player should be noted and your character’s balance should be set that way. If you simply set up eight experience bars (four classes, four Bartle types), and said that you’re the highest class and highest Bartle type, you’ll tend to view your character as if it is that class, and it’ll just be too tough to switch to another.
Of course, the risk is that you’ll look at switching classes through behavior the same way–at least until the trends are obvious to the algorithm that grants class and archetype abilities to you. Likewise, players may feel like they’re abandoning effort that was required to unlock those high-level, now unusable abilities.
Ignoring the statistical algorithm for the moment, tracking player activity is done by assigning weights to actions.
Example of actions, influence, and requirements
| Action | Class Influence/Modification Value | Requirements | |||
|---|---|---|---|---|---|
| Warrior | Rogue | Priest | Mage | ||
| Wield dagger | +1 | +1 | -1 | 0 | None |
| Wield sword | +2 | 0 | -2 | -2 | None |
| Wield Glaive | +5 | -2 | -5 | -5 | Warrior >= 10 |
| Equip leather armor | +1 | +2 | 0 | -2 | None |
| Equip chain armor | +2 | 0 | +1 | -4 | Warrior >= 1 or Priest >= 1 and Mage <= 0 |
| Equip plate armor | +4 | -2 | +1 | -8 | Warrior >= 5 or Priest >= 5 and Mage <= 0 |
| Cast Fireball | -2 | 0 | -1 | +2 | Mage >= 10, Armor lighter than Plate |
| Cast Cure Light Wounds | 0 | -1 | +1 | 0 | Priest >= 3, No Slash or Pierce weapons equipped |
| Ice Comet | -10 | -10 | -10 | +10 | Mage >= 60, Armor lighter than Leather |
| Block Melee Attack | +2 | -1 | +1 | -2 | Warrior >= 1, Shield equipped |
Equipping some items or using some abilites isn’t possible until the user has sufficient class trend points–at that point, the ability unlocks. If the user falls out of the requirements for some device, it may automatically be unequipped, won’t work as expected (armor stops providing protection or stat bonuses), or will prevent other abilities from functioning (can’t attack while equipping a pole arm that can’t be used). How this change and notification would be handled in the UI is worth further discussion. If devices are allowed to remain equipped, even though the requirements are no longer met, they may prevent the use of abilities that are contraindicated by the equipment(i.e., plate mail on a mage prevents spellcasting).
I see these modifier values–do they mean that I can min-max the system?
I believe any system can be gamed. There are a lot of people much smarter than me who play MMOs and will figure out weaknesses in what I propose. In defense of this proposed system is the use of abilities and equipment is tied to trends, rather than accumulating pools of points. In the pool model, players could seek to min/max abilities by changing gear and using certain abilities to affect pool totals. In an averaging model, over time, players have made their characters resistant to change: there are simply too many points in one or more pools to allow a character to change direction. In a trend model, the player’s actions impact the trend over time; it’s not exactly averaging, or point pools, or even skill decay, but looks similar.

Trends have a total value, like a point pool (you’ve practiced Mage abilities so often that you have a relatively high 60 points, while Priest is only 15, Rogue is -10, and Warrior is -70). The total value, per line, changes gradually as the trend changes.
What about tank mages?
This system doesn’t prevent tank mages, as such, but higher level spell effects can be made unavailable when Warrior or Rogue skills are too high by adding additional restrictions. The key is to make certain actions exclusive to characters who exceed particular trend point values in each class.
How does this differ from WoW’s decaying Honor ranks?
WoW’s Honor decays over time, regardless of playtime or not. Using actions and tracking player character activity ignores time, and instead is impacted only by actions a player performs.
I’ve seen skill based systems before. That’s what this is, right?
Your character is how you play it: if you pick up a sword and melee, your character becomes a warrior. If you sneak around, your character becomes a rogue. Spend time healing others’ wounds and your character becomes a priest. Cast damaging spells from the back of the party and your character becomes a mage.
Other skill-based systems either had unused skills decay, or left unused skills as they were, allowing you to pick up from where you stopped using them at a later time. In this system, as you play your character in a particular role, your character trends to fit that role, eventually becoming it.
But I’ve just gimped my character!
Your character isn’t gimped. While trending down in one class, and up in another, your character has access to both realms to a greater or lesser degree. Using abilities from your old school (warrior) will delay your rise to power in your new school (mage), but with careful play, you can quickly move from school to school–this is faster when you don’t have a large deficit in the trend lines for your destination school, but it is correctable.
What about character and mob levels?
Levels aren’t necessary as they’re artificial and undesireable. Your class trend points will give an indication of your character’s relative power in that school. In combat, your trend points will help determine the success of your attacks and defensive abilities. Mobs you face will likewise have fixed trend point values, analagous to levels, that provide class abilities.
So, how does mob con work?
A mob’s total trend values will compared to your primary trend value. If you’re higher, the mob will con lower, and vice versa.
What are the actual mechanics?
I haven’t had a chance to test or simulate these. I believe I will start with something like:
- Define two levels of tracking trends:
- Most recent actions list (up to 100 actions?)
- Most recent trend influences (need at least one, or default to 0)
- As each Action is attempted:
- Is the target of the action legal?
- Is the action legal for the character’s current world region or location?
- Does the character have sufficient trend points in the required class?
- Is the character using any prohibited equipment?
- Is the character using any required equipment?
- If the Action is legal:
- Perform the action
- Add the action to the most recent actions list
- If the most recent actions list is full
- Sum each each use of class influences (all Warrior, Rogue, Priest, and Mage actions)
- Append the sums to the trend influences list
- Recompute character’s current trend points in each class line
To compute the trend for each class:- Average the sum the previous influence and the current influence.
- Set that average to the new current influence.
- Add the current influence to the current trend points, and set this as the current trend points.
- Clear the recent actions list
- If the trend influences list is larger than its limit, delete the head from the trend influences list
So, imagine that the current Warrior trend points are 15. The previous influence for Warrior is +3. The current influence for Warrior is +2.
- 3 + 2 => 5 Sum the previous and current influence.
- 5 / 2 => 2.5 Get the new current influence by taking the sum’s average.
- 15 + 2.5 => 17.5 Add the influence to the old trend points to get the new trend points.
If less work was put into Warrior, the trend set in the past will still allow trend points to accumulate in the skill, but not as quickly. The current influence for Warrior is +2.
- 2.5 + 2 => 4.5
- 4.5 / 2 => 2.25 The Warrior growth trend is beginning to slow.
- 17 + 2.25 => 19.75
Now, if work against the Warrior trend is made by the player, the influence goes down to -8.
- 2.25 + -8 => -5.75
- -5.75 / 2 => -2.875 The growth has inflected.
- 19.75 + -2.875 => 16.875 Warrior trend points were lost.
As more actions take place that hurt the Warrior trend, the points will go down faster.
Edit: corrected the forumla after some thought on my drive home from work.

July 5th, 2005 at 2:46 pm
On paper, I like this idea a lot. Vanguard is taking a similar approach when triggering from adventure to crafting and or harvester with items and inventory management. It still doesn’t quench my thirst for non combative and crafting playing roles, but the above system has definitely piqued my interest. When can I test it out?
February 24th, 2006 at 3:25 pm
[...] Skill use trends to determine when a skill advances (modified) Skill influences have to remain small (hundreths of a point) to avoid large jumps in skill points. [...]