2
$\begingroup$

Background: The Fracture in Reality feeds off of chaos, destabilizing worlds until they break apart, then absorbing them to grow. The raw creative energy, the sheer potential of chaos inside the Fracture combines with the "code" of each world, reforming them into one world: Alendyias.

These potent energies are the driving force behind magic (an extension of natural laws) and therefore magical creatures, Classes, animal Companions, and of course Levels. This is where my question comes in. You see, I have a general idea of how I want my Levels to work, but I'm having a little trouble deciding how much one's traits (AKA stats, like Strength and Speed) should increase upon leveling up.

The max level cap is 500, (except for that 00.001%, you know, that one guy that's born a peasant and somehow obtains godlike power) so there's no room for error here. If the percentage increase is too high, adventurers (AKA heroes and villains) will be tempted to take over and rule, but if the percentage increase is too low, then why level up at all?

The Math: Let's use the Speed stat (and the Rogue Class) as an example here.

The average human running speed is 15 mph, 3-4 mph is the average human walking speed. 1/16th of that would be (rounded from the thousandth up) a 1.0%, or if I do less rounding, 0.94% increase in running speed and either a 0.2% or a 0.19% increase in walking speed.

For running speed, the maximum limit is supposed to be 27 or 28 mph, while for walking speed the highest recorded speed is 4.42 meters per second (m/s), which translates to 9.8 or 10.0 mph. (Please note: the best answer will take maximum human limits into account!)

Not too shabby I suppose, but how would that play out in my Level system? Well, a Rogue would be faster than average, so let’s consider their walking speed to be 2 m/s, or 4.5 mph and their running speed at 15 mph (the average sprinting speed for many athletes). I'll be using a 10%, or 0.1%, increase below.

Level 2 Rogue: 4.5 x 0.1%=0.0045 (increase of 10%) 4.5 + 0.0045=4.5045 Increase: 4.5045

Level 3 Rogue: 4.5045 x 0.1%=0.0045045 4.5045 + 0.0045045=4.5090045 Increase: 4.51

See my problem? If my calculations are correct, somehow we get from a Speed stat of 4.51 to THIS:

Level Number (100) x (Level-up increase) 0.1%=0.1 4.5+0.1%=4.6

This is driving me crazy, because I have no idea what I did wrong but I'm smart enough to tell I've somehow got my proportions wrong. So, I turn to the talented minds of this StackExchange to ask: How Much Should An Adventurer's Stats Increase Upon Level-Up?

Please Note:

  1. This is a worldbuilding question, it is definitely not too story-based since it is an aspect of the world (not so much characters, though they will of course be impacted). I would have posted this on a math StackExchange, but I'm pretty sure this question isn't the right fit for such a site despite its mathematic context.
  2. While I put the max level cap at 500, not everyone can reach it; only 5% of the population. Assuming a population of 81 million, that's 4,050,000 people who can reach this. My idea is that I want this 5% to be powerful, but not overwhelmingly so; an army should pose a legitimate threat to them, but not just one guy (unless that one guy is Level 500) because otherwise everyone else will be at the mercy of that 5%. Granted, I plan for this 5% to be royalty, but I still don't want the royalty nigh-invincible. In other words, I'm looking for the ideal proportion of stat increase upon leveling up, ideal meaning that the max-level people are not nigh-invincible and cannot easily rule the lower-level people with an iron first without being opposed.

Thank you for your input and feedback, I especially appreciate it as this is a very perplexing problem for me. If you decide to VTC or close-vote, please give me an explanation so I can improve (or in the worst case, reopen) this question; I really need to figure this out. (My tags may be wrong, please let me know if they need fixing).

$\endgroup$
17
  • 1
    $\begingroup$ Not an answer, but a suggestion: Definitely not. See compound interest. Or if you want to change the basis of calculations to something more funky try calculus to base it on. $\endgroup$ Feb 24, 2021 at 2:54
  • $\begingroup$ @Rottweileronmarket-day.: so basically you're telling me I haven't got my math wrong, and that the 5% of society who can reach Level 500 won't be overpowered if they get a 10% increase to all stats with each level they gain? That's mindblowing, how did you come to that conclusion? $\endgroup$
    – Alendyias
    Feb 24, 2021 at 2:59
  • $\begingroup$ Genuinely, I can't tell how you got to your conclusions. My Math teachers at school always had that issue with me too. For all I know you may be correct. You and I both need to learn Mathjax that being said, it may not work on this site in a few months, so where's the motivation. It's helpful in a question to clarify process however. I'm pretty sure that I don't have an answer to this question, but I'm interested, oh yes. $\endgroup$ Feb 24, 2021 at 3:14
  • $\begingroup$ @Rottweileronmarket-day.: I literally just put my equations in Google Calculator, so I'm not sure I can clarify the process. $\endgroup$
    – Alendyias
    Feb 24, 2021 at 3:14
  • 1
    $\begingroup$ Just looking at this very simply - why does the scaling factor itself have to increase with level? Why not just say it's, like, a 1% increase per level - which gives you a nice (1.01^500 = ~145) multiplier at the cap from the 'base', definitely "high-tier superhero" but less than "absurd demigod" - and simplify things a lot? All you have to do is change that one number to get a different exponential scaling. $\endgroup$
    – parasoup
    Feb 24, 2021 at 3:25

4 Answers 4

4
$\begingroup$

If you want exponential scaling, you don't need to overthink it — you just need to multiply by the same number every time. For example, if you want a multiplicative 1% increase per level, then every level, you multiply whatever number you currently have by 1.01. This allows you to skip levels nicely too, by taking higher powers.

$\text{Stat} = \text{Base Stat} \times (1.01)^{(level-1)}$

And that'd give you a nice, smooth progression, multiplying your stats by 1.01 every level, until you have a pretty reasonable multiple of ~145 times the base stat at the level cap. If you think 145 times a normal human's capability is too much, then just change that 1.01 to 1.005 or whatever you want.

I slapped together a little Google Sheet to show you what this does, right here. Click the numbers on the right side to see the formulas for them.

$\endgroup$
1
  • $\begingroup$ Actually, I think 145 x human capacity might be perfectly reasonable, the problem would be translating that in my head, but I should be able to do that on my own. Thank you for your perspective, I'll definitely be using your constant progression formula! $\endgroup$
    – Alendyias
    Feb 24, 2021 at 3:45
7
$\begingroup$

My suggestion: more varied, more notable improvements.

Replace:
"You've levelled up - you are now 0.2% better in all stats!"
With:
"You've levelled up - you are now 10% better in this one stat!"

Now the improvement is more noticable, the player feels more rewarded, and for new players the reward feels more random - and random rewards are more addictive to the player and motivating. "I need to get my run speed up to complete that challenge... oooh level up... oh I got dexterity. Damn. Oh well try again!". It will take them a while to spot the pattern.

Make a list of all your stats, like so:

Name Start Max Range Increment
0. Walk 2m/s 4m/s 2m/s 0.1m/s
1. Jump height 10cm 90cm 80cm 4cm
etc. (25 total) .... .... .... (range / 20)

There are 20 steps up for each stat, and 25 stats. 500 improvements. Every time they level up, go to the next row in the table and increment that stat by that amount.


I'm guessing you're trying to calculate the stats from the level rather than store them, right?

If you don't want to store each stat, you can calculate each on from the level. Eg:

$$ Stat = start + increment * roundDown({{level - rowNumber + 24} \over {25}}) $$

So walk speed for level 0 is 2 + 0.1 * roundDown(0 - 0 + 24 / 25) = 2m/s.

For level 10 is 2 + 0.1 * roundDown((10 - 0 + 24) / 25) = 2.1m/s

For level 400 is 2 + 0.1 * roundDown((400 - 0 + 24) / 25) = 3.6m/s

For level 500 is 2 + 0.1 * roundDown((500 - 0 + 24) / 25) = 4m/s

Jump height for level 0 is 10 + 4 * roundDown((0- 1 + 24)/25) = 10cm

Jump height for level 20 is 10 + 4 * roundDown((20 - 1 + 24)/25) = 14cm

etc.

$\endgroup$
3
  • $\begingroup$ Interesting idea, but I want people to improve in general as they gain experience, which is manifested by Levels and the stats increases that come with them. That being said, your answer got me thinking of ways I can vary stat increases, which should make my story much better! $\endgroup$
    – Alendyias
    Feb 24, 2021 at 3:43
  • 1
    $\begingroup$ @Alendyias: People do increase in general. Note that if you have 25 stats, then after 25 levels the stats gained from increasing all stats a tiny bit each level are identical to the stats gained from increasing a single stat massively each level. Another possibility, though, is to simply let people choose which stat to level up. So you could have a level 20 Rogue would used all 20 levels on increasing their speed. They're weak at everything else, but they're the fastest they can get. For their next level, they'll need to pcik something else... $\endgroup$ Feb 24, 2021 at 11:14
  • $\begingroup$ @MatthieuM.: good idea, thank you! Definitely worth considering both possibilities, it should be good either way. $\endgroup$
    – Alendyias
    Feb 24, 2021 at 13:45
2
$\begingroup$

There are two mistakes

The first is you are using the wrong increase per level. It looks like you want your lvl 100 character to be twice as strong as the average person. That means 100% stronger and so you should increase by 1% every level. Not 0.1% or 0.001 (which you confusingly also write as 10%) per level. That would take 1000 levels to double the strength.

Then the question is what does a 1% increase mean. There are two candidates:

Linear Growth (simple) : The starting Speed value is $4.5$ and each turn we add an extra $1\% = 0.045$ of the starting value. So on level $30$ you have Speed $= 4.5 + 30 \cdot 0.045 = 5.85$.

Exponential Growth (complicated): This is what you have now. Your level-up rule is to take the current value and add an extra $1\%$ or $0.01$ of that value. Let's write $x_1,x_2,\ldots$ for the values at levels $1,2,\ldots$. The rule says $x_{n+1} = x_n+0.01 x_n = 1.01 x_n$.

The mistake on the last line is this does not give $$x_{100} = x_1 +(0.01 + \ldots + 0.01)x_1$$

where we add up the $100$ terms. What it gives is

$$x_{100} = 1.01 x_{99} = 1.01^2 x_{98} = 1.01^{100} x_1 \simeq 2.7 x_1$$

where we multiply the $100$ terms.

If you want $x_{100} = 2* x_1$ you should increase by $1.006956$ instead of $1.01$ each turn. You can find this number experimentally by plugging a bunch of numbers into a calculator or by solving an equation involving $100$th roots.

Note: The above gives $1.006956^{500} \simeq 34$ times stronger at level 500. If this is too much/little you should decide the growth rate based on how strong you want the level 500 characters to be. Say you want them $10$ times stronger than average. The formula is $p = \sqrt[500]{10} \simeq 1.0046$ increase per level. For example this gives $\simeq 1.58$ times stronger at level $100$.

$\endgroup$
1
  • $\begingroup$ Oh, that's what I did wrong! I assumed I want to find a percentage increase, and not remembering how to find that, I looked it up and tried to calculate the exponential growth. Thank you, this is very helpful! $\endgroup$
    – Alendyias
    Feb 24, 2021 at 14:05
1
$\begingroup$

Human proficiency tends to follow a bell curve where most people are average, and the farther away from average you get in either direction, the more dramatically atypical you are.

enter image description here

So before we begin, we need to define where on this curve a lvl.0 person is. Based on your description a person starts off as statistically average at 0σ (this means your world should also theoretically have -1 to -500 level people too). The problem with your system is that you are capping at the top 5% which is only ~2σ but when you look at world class individuals for things like "maximum running speed" or "maximum lifting wieght" you are looking at very rare people who are many standard deviations above normal.

To frame this differently, an average man can deadlift about 155lb, a top 5% person can lift maybe closer to 200-250lb, but the world record is > 1000lb; so, if you stop at a top 5% you will have a very disproportionate number of people able to lift obscene amounts of weight, or you cap it at 2σ so that nobody at all can lift anywhere near the human limit.

There are two ways to solve for this: incremental level cost or incremental level gain.

Incremental level cost

An incremental level cost system means that each level costs more experience than the last. So you can get from level 1-50 way faster than you can get from 50-100. This way, most players will be in the lower levels being closer to their starting capabilities, and the closer to top tier you get, the more spread out your population gets because of the ever increasing challenge to advance. So here you make a linear stat growth, but exponential cost growth.

So let's take running speed as your example: a person who is lvl.0 has a speed of 15 and a person who is lvl 500 has a speed of 28. (28-15)/500 = 0.026 so, you increase speed by .026mph per level. But to keep a curve you make each level more expensive with an equation like

expToLevel = 10^(1+currentLevel/growthFactor).

So your cost to level up with a growth factor of 10 would be {10, 13, 16, 20, 25, 32, 40, 50, 63, 80 ... 100000}.

For a 500 level system, I would suggest either a growthFactor much larger than 10, or challenges that also increment up in how much exp they give, but by a higher growthFactor value so that they grow a bit slower.

Incremental level gain

Here you keep the cost of levels the same such that a lvl 0 is starting, lvl 250 is half way through, and lvl 500 is maxed out, but you you make each level up pay off more. So instead of every level yielding a .026mph gain, lower levels might yield a .06mph and higher levels a .046mph gain.

Incremental level gain is normally more manageable on single player games where you need to you have a clear beginning, middle, end whereas Incremental level cost is normally best for sandbox or MMO games where you expect players to be playing for long hours, and you want to incentivise your top tier players to keep playing, but without giving them to much advantage over less experienced players. Many systems also combine the two so that level cost and gain increase together.

$\endgroup$
4
  • $\begingroup$ Great answer! I believe I'll go with the incremental level cost because I want something more like a MMO, but I may combine that with incremental level gain. The problem is, while an incremental level cost is extremely plausible, incremental level gain kind of isn't.... $\endgroup$
    – Alendyias
    Feb 24, 2021 at 23:08
  • $\begingroup$ @Alendyias Incremental level gain is normally done more for balancing reasons than a realistic learning curve. It's used because leveling a skill from 10+1 is more significant than 20+1; so, they do it to make sure that going from lvl 29 -> 30 is just a rewarding as lvl 2->3 was. When overdone, this is why you see power creep in so many games where low levels do single digit damage and high levels do thousands of damage. $\endgroup$
    – Nosajimiki
    Feb 25, 2021 at 14:26
  • $\begingroup$ It also keeps threat levels at a consistent spread. If you gain at a linear rate, then the difference between a level 50 and a level 100 is much greater than a 450 and a 500. $\endgroup$
    – Nosajimiki
    Feb 25, 2021 at 14:28
  • $\begingroup$ Ah, I see, I need to consider both then. $\endgroup$
    – Alendyias
    Feb 27, 2021 at 5:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .