Learning by doing systems (long post warning)

Content and general development discussion, including quest scripts and server code. TMW Classic is a project comprising the Legacy tmwAthena server & the designated improved engine server based on evolHercules.


Forum rules

This forum houses many years of development, tracing back to some of the earliest posts that exist on the board.

Its current use is for the continued development of the server and game it has always served: TMW Classic.

User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Learning by doing systems (long post warning)

Post by Crush »

The purpose of a stat system in an rpg is a) to be plausible to the player and b) to motivate players to play the game as it is supposed to be played. Most game designers who use a LBD (learning by doing) system in their game have either a very strange idea how their games should be played or they horribly fail at the latter. The reason is that they try to make the system as authentic as possible while forgetting the results for the gameplay. That way they accidently create a lot of design problems. Realism is generally a good thing but only when it adds to the playing value instead of lowering it. i would like to point out the most common problems of LBD systems so that we needn't make the same errors:


Getting a reward for getting beaten up
Some LBD Systems do something really stupid: they award characters for letting the enemies beat them up. they do this by awarding exp for the defensive stats when the character loses hit points. the more hits the character takes the higher his def stats will raise. this system means basically the game rewards the player for playing bad. of course it would be unfair when an archer or mage in the 2nd line gets as much def stats as the warrior who takes all the beating, but that players torture their chars for hours to make them more tough instead of protecting them can't be the right way to play a game.
Goal: The increasing of defensive stats may not be propotional to the amount of damage the character takes.

Too many stats that are raised by the same action making specialisation impossible
One problem of most LBD systems is that the player can't really influence the direction their combat stats evolve to. The character for example has a weapon profincy stat, a strength stat, a parry stat and a health stat. when he fights in the often fully automatic combats all of these stats increase depending on the outcome of the fight. when he receives a lot of damage his hp increase, when he hits a lot his stength increases and so on. but the player got not many posibilities to influence the development of his character.
Goal: Every aspect of the playing style of the player should affect one stat and not more

Making inefficient playstyles more exp rewarding
There is something else that is weird with many LBD systems. They raise offensive stats equal to the number of successful hits or the ammount of damage they deal. that means instead of encouraging the players to defeat enemies as quickly and efficient as possible they encourage them to make the fights as long as possible. it may even lead to the weird situation that players use weaker attacks or even heal their enemies to gain as many exp per enemy as possible.
Goal: Support a high kill count instead of weird playing styles.

Giving stats for useless behavior
This weakness of LBD system often applies to magic skills. instead of rewarding the player for using their offensive and defensive magic in combat they give exp whenever they use it. this might be a plausible approach from the realistic point of view but the result is indeed weird: people running around blasting their spells at everything that moves and senseless healing and buffing of strangers. of course mages would have more fun when they would use their spells only when necessary. but we are talking about MMORPG Gamers here. MMORPG Gamers are always powergamers. they want to advance as fast as possible and they expect it to be fun that way.
Goal: no reward for useless skill spamming

No awards for specialisation
In a level and statpoint based system you are forced to specialize because stat points are rare and when you aren't very good at something specific it will get more and more difficult to gain levels. When you put statpoints onto the wrong skills your character might become too weak for his level and eventually unplayable. But in a LBD system you can learn new skills whenever you want without limiting the posibility to raise your main skills later. This may sound good, but the problem is that it seduces the players to create "omni characters" who can do everything and have no weaknesses.
Goal: encourage players to specialize but do not limit their posibilities


THE SOLUTION

-killing monsters (and not just fighting them) is the only way to gain exp for combat related skills
-every monster is worth a fixed ammount of exp
-the exp are divided up evenly on all skills that helped defeating it
-exp for indirect combat skills (like healing and buffing) is only awarded when they influenced the outcome of a fight

Examples:
Monster X is 30 exp points worth and is defeated
-Player one received a significant amount of damage* from the monster
-Player one inflicted a significant amount of damage* with his sword
-Player one inflicted a significant amount of damage* with fire magic
-Player two inflicted a significant amount of damage* with his bow
-Player two healed a significant amount of damage* with his healing magic that has been inflicted upon a player that received a significant amount of damage* from the monster (Player one)
-Player one had an ice magic based buff from Player two most of the time**

)*a significant amount of damage should be about 10% of the max. hp
)** most of the time should be about 75% of the time between the first and the last hit

That would mean that player one receives 5 points for his health, sword and fire skills while player 2 receives 5 points for his bow, healing and ice skills.



this reaches most of the goals above but one: the specialisation problem. i thought about some ways to do this but i am still not sure which one is the best:

Explicitly reward specialisation
A mage for example who has low combat skills might even become more powerful at spellcasting.

Making many different high skills difficult to archive
This could be done by either increasing the exp needed to raise lower skills when the char already got some much higher skills or making the character "forget" skills he doesn't use while concentrating on raising others. this wouldn't make omni chars impossible but it would require much more work to raise them.

Role Switching
Another way would be to allow players to become a warrior archer spellcaster cleric thief when they want to, but not everything at the same time. one way to reach this might be to limit the number of skills that are available at the same time like guildwars does. another way would be to specialize equipment (swords and plate armors might have a horrible penalty for spellcasting while robes and wands are useless in melee combat) and make it impossible to swap equipment outside of citys. that would give characters the chance to play every role they want but not the chance to switch roles spontanously. that would also add a lot of strategical depth to dungeon raids when fighting the boss requires a different equipment than fighting the small mobs on the way to him. The mob killers got to protect the boss killers until they reach the boss and then the tasks switch and the boss killers got to protect the mob killers.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Modanung
Grand Knight
Grand Knight
Posts: 1719
Joined: 20 May 2005, 15:51
Location: Groningen, The Netherlands
Contact:

Re: Learning by doing systems (long post warning)

Post by Modanung »

Crush wrote:Role Switching
...another way would be to specialize equipment (swords and plate armors might have a horrible penalty for spellcasting while robes and wands are useless in melee combat) and make it impossible to swap equipment outside of citys. that would give characters the chance to play every role they want but not the chance to switch roles spontanously. that would also add a lot of strategical depth to dungeon raids when fighting the boss requires a different equipment than fighting the small mobs on the way to him. The mob killers got to protect the boss killers until they reach the boss and then the tasks switch and the boss killers got to protect the mob killers.
I disagree. If you find a sword during your venturing that's better then the one you have equipped you should be able to use the one you just found. It would be rediculous if you had to travel all the way to a town for that.
I think equiping items should just take a short amount of time so you can't do it in the middle of a fight. What good is it anyway to wear a wizard's outfit as a fighter? And you probably couldn't handle it as your skills are not compatible with the equipment.
If you're looking for 3D FOSS games be sure to check out LucKey Productions on itch.io
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

I just noticed a design flaw.

When the exp points are shared between the skills evenly the system favors partymembers that use a wide array of skills over those that only use few but efficient skills.

Counter proposal: FIRST divide up the skill points between those who helped and THEN divide up the points between the used skills. So that everyone receives the same amount of total exp for his skills.

Example:
A warrior and a wizzard defeat a physical immune enemy worth 120 exp. Each of them gets 60 exp. The warrior took all the damage without dealing any damage. So all 60 exp go to his def stat. The wizard killed the enemy with various spells from 6 different disciplines. So his 60 points are divided up between them all and he gains 10 exp for each used discipline.


So what about partymembers who didn't participate in battle? Partymates that didn't use any skills efficient enough to award a share of the exp should simply be ignored. the characters share of the total exp of the enemy would be wasted otherwise. when some useless partymembers don't help the party in battle they shouldn't suck away precious exp.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

Peacemaker had another proposal how exp for healing and status aligment recovery should be awarded.

He suggested not to reward healers and supporters when the character he healed or supported kills a monster but to give a fixed amount of exp for healed hit points or cured status aligments independent from the actions of the healed character.

although this system seems much more transparent and simpler from the players point of view i am afraid that it may be very difficult to balance the amount of exp so that a healer levels with the same speed as the fighters he is supporting.

What do you think?
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Rotonen
TMW Adviser
TMW Adviser
Posts: 3154
Joined: 08 Sep 2004, 19:48
Location: Bern, Switzerland

Post by Rotonen »

When someone from outside of the party influences the fight between a party and a monster, his/her share should be a lot smaller than that of the party members (unless he deals over 50% of the damage or so). Also bonuses for the damage/time ratio (where damage wouldn't exceed the hp of the monster for calculatory purposes) would be a very simple idea to encourage developing actual killing intent.

That healer/buffer issue is quite tricky and I unfortunately don't have any useful input on it.

But how about we gradually start to build and lock the system from the bits that we can agree upon at this point? It'd be nice to have the system on the actual server at some point early on so we could have player input on it in order to tweak it into perfection relatively fast.
This message used to be meaningful.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

about the kill stealing problem: i would suggest to use the system from world of warcraft. when someone attacks a monster it is "tagged" by him and only he or his party can gain exp from it. others can help when they want to but it has no use for them. when the "owner" of a monster dies or runs away the monster becomes free for all again.

the system is simple, does its job and has almost no side effects.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Rotonen
TMW Adviser
TMW Adviser
Posts: 3154
Joined: 08 Sep 2004, 19:48
Location: Bern, Switzerland

Post by Rotonen »

There's an exploit: One can tag a monster and then have a high level friend kill it. Repeat time after time and gain exp fast. (Don't remember how WoW got around that one, but in the system you described, that problem exists.)
This message used to be meaningful.
frazzled
Peon
Peon
Posts: 27
Joined: 20 Feb 2006, 15:56

Post by frazzled »

So to combat power tagging combine tagging and percentage base experience.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

frazzled wrote:So to combat power tagging combine tagging and percentage base experience.
could you elaborate on this a little bit?
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
Gonzalo
Peon
Peon
Posts: 41
Joined: 12 Oct 2005, 13:54
Contact:

Post by Gonzalo »

Rotonen wrote:There's an exploit: One can tag a monster and then have a high level friend kill it. Repeat time after time and gain exp fast. (Don't remember how WoW got around that one, but in the system you described, that problem exists.)
Maybe something like, if one from outside the party does some high % of the damage, the experience goes to waste instead of being distributed amongst players.
This will pop up yet another problem, annoying high level players which do not allow newbies to train peacefully, but it's an alternative. To avoid this, some sort of "annoying player" counter can be increased each time this is done, and some penalty applied related to it... but this should be topic for another discussion, if this idea is accepted.

Code: Select all

System.out.println("Java Developer");
echo 'Powered by Debian GNU/Linux'
frazzled
Peon
Peon
Posts: 27
Joined: 20 Feb 2006, 15:56

Post by frazzled »

Crush wrote:
frazzled wrote:So to combat power tagging combine tagging and percentage base experience.
could you elaborate on this a little bit?
Rather than dumping all experience equally among all party members, divide it up into "participating" and "training" exp.
For example:
You have three party members:
A healer - Does 0 damage takes 50 damage heals the low level 3 times and self once using 50 mp. Hp is 100.
A high level - Does 75 damage but only takes only 20 damage. Hp is 250.
A low level - Does 25 damage but receives 120 damage total. Hp is 60.
monster - 100 hp worth 150 exp

If you made experience based on percentage of damage done then the high level would get the lions share every time. However if you divide the exp into participating and training every one will get some proportionate to how they behave.

Let's say 1/3 of the experience is participatory based, so 50 exp is immediately divided between the three and then divided for the skills. The remaining two thirds is distributed based on the total damage done, mp used, damage received and danger level.

The healer used 50 mp and received 50 damage so her score is 100.
The high level did 75 damage and received 20 damage so his score is 95.
The low level did 25 damage and received 120 damage so his score is 145.


Of course this method is restricting as it gives more exp to the low level when the highest should get it. Therefore we factor in a danger level, the higher the damage the less exp you will get overall.

The healer has 100 hp and received 50 damage so her danger level is 20% multiplying the base score by 20% gives us 20.
The high has 200 hp and received 20 damage so his danger level is 10% multiplying the base score by 10% gives us 9.5.
The low has 60 hp and received 120 damage so his danger level is 200% multiplying the base score by 200% gives us 260.


We then take the first scores and divide them by the ajusted scores and the person with the largest score gets the most and the person with the least gets the least.

We then take the base scores and divide them by the danger score.

The healer is 100/20 = 5
The high is 95/9.5 = 10
The low is 145/260 = .56


We then combine all the scores and the ratio out of 100 to find their percentage of the total exp. The we add in the participation exp to get the total exp received.

Total Score:15.56
Healer's % = 32.1% = 32 exp = 48 total exp (rounded)
High's % = 64.3% = 64.3 exp = 71 total exp (rounded)
Low's % = 3.6% = 3.6 exp = 20 total exp (rounded)

This way it encourages people to group with similarly leveled people.

Keep in mind I rounded most of the numbers so 11 exp total disappears through the many roundings.

So basically the formulas would be:

Base = mp + dmg done + dmg received
Danger = dmg received / total hp

Total score = player1(base/danger) + player2(base/damage) ... playerN(base/damage)

Exp for each person = 2/3 * (total exp) * (playerX(base/danger)/ total score)+ (1/N)^2 *(total exp)

Where is the player number and N is the number of players.


Edit: whoops didn't mean to write this much...

EDIT2: This method would require that the monster attacks everyone in the party or else you will get division by 0 in quite a few areas.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

frazzled, i think your suggestion is too complex. it also encourages people to get hurt on purpose to gain a higher danger rating. i think there has to be a simpler and more transparent way to find a balance between making killstealing useless, making griefplay impossible and making the pushing of low chars difficult.


The easiest way would maybe be to deny attacking of other peoples enemies at all, but that would be implausible.

sharing exp between all contributors would encourage killstealing.

giving all exp to the legal owner of the monster would make pushing too easy.

sharing exp but throwing away the exp of killstealers would solve both problems but there would still be the posibility for griefplay.


i think that the last option would be the lesser of four evils because this way of annoying players would be a total waste of time for the offender and it would be difficult to keep the victim from leveling at all. when using the "significant ammount of damage" system described in the 1st post the offender would have to be very strong to kill the monster before the first attacker deals at least 10% damage with one skill what would give him half of the exp for this skill.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
maniaxx
Peon
Peon
Posts: 3
Joined: 05 Mar 2006, 12:36
Location: Germany

Post by maniaxx »

Crush wrote: giving all exp to the legal owner of the monster would make pushing too easy.
maybe the owner could get less xp if the monster is far superior to him?
User avatar
Rotonen
TMW Adviser
TMW Adviser
Posts: 3154
Joined: 08 Sep 2004, 19:48
Location: Bern, Switzerland

Post by Rotonen »

maniaxx wrote: maybe the owner could get less xp if the monster is far superior to him?
I think most of the outsiders are thinking of a traditional "you gain exp from monsters" instead of "your ability increases by doing", which is what we're thinking about here.
But indeed, getting no (or very little) practical experience from too hard tasks would make sense. Also one should lose all battle related gains if he/she dies only shortly after the battle.
This message used to be meaningful.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

We could apply the challenge modificator to all skills separately.

That would also solve the (not yet mentioned) problem that it would be very easy to build up new skills when the character already got another very advanced skill.

(imaginary example: a character got sword skill level 20 and axe skill level 1. he deals 90% damage with his sword to a monster appropiate for a character with level 20 skills, finishes it off with the axe and *bang* axe is level 5 with one kill)
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
Post Reply