Scaling bonuses with level

Started by interchange, September 06, 2007, 09:31:36 AM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

September 06, 2007, 09:31:36 AM Last Edit: September 06, 2007, 09:35:50 AM by interchange
OK.  So that title might be a little scary (sounds that way to me at least), but I promise you the idea is not what it sounds at first and is actually pretty neat.

So I've identified 2 goals that I've promised to address with this post.  To review:
1. Make stat bonuses straightforward - by scaling the bonuses in this fashion, we can remove any direct stat caps, thresholds, or otherwise non-linear behaviors that make the player unsure of what path to take his character development.
2. Keep upper level characters from breaking down - this method ensures that characters are always improving at higher levels and that they never become so powerful that you have to nerf them.

OK.  So what am I talking about here?

First, we have to introduce a new concept.  In this system, not only would characters have levels but so would monsters.  Now, this would, of course, require some revision to the definitions of each game monster, but the process would be fairly intuitive.  You would know approximately how difficult to make an area, so set your monster levels accordingly and use it as a guide for about how much HP, dmg, and exp the monsters should have.

So, what we do is this: we take (monster level - character level), call it level differential, and scale the "effectiveness" of a character accordingly.  If the number is negative, meaning you are at a higher level, then you will receive bonuses in combat and defense.  If the number is positive, meaning you are at a lower level, then you will be reduced in combat and defense.

The key thing here is that, regardless of your level differential, your bonuses still scale linearly.  That is, jumping from 35 bonus crits to 40 bonus crits always has the same effect as jumping from 15 bonus crits to 20 bonus crits.  The difference here is that your total bonuses will be reduced depending on your level differential.  For example, a level 50 character taking on a level 50 monster may crit 30% of the time.  Fighting a level 55 monster, he may crit only 20% of the time.  Fighting a level 45 monster, he may crit 40% of the time.

I think an appropriate scaling for the bonuses would be a sigmoidal curve:

That's where I would start.  I have a suspicion that a double sigmoid would work better (giving a broader range in the middle), but that gives you an idea of how this would work.

I hope that the idea makes sense.  You can experiment with just how "hard" you want the scaling and how "broad" the scaling should be.  In other words, you could harden/soften it so that effectiveness is very strongly tied to the curve or weakly affected by it.  Or you could scale it broad/narrow so that character differential has less or more effect.  You would need to experiment with the scaling to get it just right, but that should be fairly easy and even fun.

Let's see how we did with our goals:
1. If you apply the same curve to accuracy, crits on offense and the same (but potentially different from the offense curve) to AC, dodge then there is a very beautiful property exhibited here.  The property is that the optimum balance of crit/accuracy and dodge/ac is unchanged no matter what level differential you have with the monsters you're fighting.  If you apply different curves, it gets more complex.  Either way, though, we are making it unnecessary to have caps/thresholds/whatever.  It is always to your benifit to add more crits or more accuracy, and incrementing by 5 always has the same effect.  This is good!
2. The scaling acts as a buffer.  If you've ever taken chemistry, you'll know that there are certain "buffer" solutions that are prepared at a certain pH.  Adding acid or base to a buffer solution has an effect, but the solution is resistant to changes in pH.  In other words, by having this scaling, you can pretty badly FUBAR the combat formulas and still have your chars be pretty representative of their level.  They'll always be getting better even if they've maxed out their stats and eq, because they're gaining levels.  This makes the formulas resistant to breakdowns at higher (and lower) levels.

I think you mean scale bonuses against the opponents? level. Since all bonuses already scale with a players own level.

One major problem with the solution you suggest is this: Monsters have no defined level. The way monsters are coded are with multiple abstract and independent variables that refer only to: how hard they hit, how they hit, and how accurate they hit?. Even if we were to just attribute a level ability to a monster right now it wouldn?t reflect a player equivalent level since there are no player equivalent linked stats to control those variables which effects how difficult the monster becomes.

Now I know both vitoc and myself want monsters that are treated the same as players. And I could even go and say I want a race equivalent value for them which would include stats. However even with that there would need to be a CP system for them that distributes each levels CP to their stats and all of that would have to be linked to the other variables prior to this becoming a potentially applicable solution to the problem.

QuoteSo, what we do is this: we take (monster level - character level), call it level differential, and scale the "effectiveness" of a character accordingly.  If the number is negative, meaning you are at a higher level, then you will receive bonuses in combat and defense.  If the number is positive, meaning you are at a lower level, then you will be reduced in combat and defense.

This won?t work because players are not always fighting things that have a level advantage over them.

Think about the effects of the 10 level pvp range rule that is common in the games. "Greatermud doesn't even have a set range yet" If the lower level player gets a disadvantage and the higher level player gets and advantage then you end up exacerbating the existing imbalance that comes naturally from the pre-existing level difference. 

Secondly when a player is fighting monsters of a lower level a player would hit their 100% naturally occurring crit cap sooner which is bad. And the effects on players fighting a higher assumed level monster would compound the existing negative aspects that would further reduce their chance of survival which is also bad. I see the logic here but players should be encouraged to fight in the upper limits of their capabilities rather then rewarded when fighting in lower brackets. The last thing the realm really needs is people scripting lower area places do to increases in combat abilities and holding up lower level players? ability to play in their own level attributed areas.

Even when looking at it from two equally high level players in pvp each one would be unaffected at this system and the broken high level combat would still be apparently visible. Which would mean this solution doesn?t fix the problem that it seeks to alleviate.

I?m not opposed to removing hard set caps but without some type of limiter or reduction system players could reach 100% rates which would halt character development for each aspect at that point completely. The limiter or reduction system however must work in when taking account of players of all levels that could PVP with each other as well as monsters.  Whatever the solution is it needs to work with the whole of the system rather then from a singular linear growth based perspective.

------

The one place however I could really see this concept of level differential working well is with exp rewards. In which players with a level advantage would get less exp then those with a level disadvantage who would get more exp. Something like this would push players to fight in harder areas of the game or seek out groups of players to fight in harder areas.


I really don't want to rebuild 1100 monsters.

Quote from: DeathCow on September 07, 2007, 10:56:30 PM
I really don't want to rebuild 1100 monsters.

If it ever came to that it would have to be after the multi-user editor is functioning so I could help at least. However I still don't think this would work. Its a good try though.