ID:152365
 
I'd like to include skills in my game for my game.

I have many skills in the game planned, but i need help with finding the formula for progression.

Each skill will start out at 1 when learned, there won't be a cap on the maximum skill, but i want a nearly exponiential curve to discourage all but the most commited from achieving levels beyond 25.

What I would like is that new skills are easy to learn, and grow harder to learn as the player gains skill. I want it to be harder to learn and gain levels in new skills the more skills a player chooses.

Each activity that requires a skill will have a set difficulty, and the player's current level in the skill will determine how much that skill increases. Also, the higher the player's skill, the less likely the player is to increase their skill with the lower difficulty activities.

I'm not good at writting formulas, and i would appriciate any help or advise anyone can spare.
I would suggest using some base increase per level coupled with a small exponential value that gets more and more significant at higher levels.

L*x*y**(L-1)
with numbers like
L*100*1.05**(L-1)

where L is level and x is the 'base' amount
If experience is a value you can expect to go up at a more or less constant rate during practice, then a simple exponential curve does sound right for you. A good progression might be that each skill level advance requires 2x the additional experience as the level before. Thus:

total_skill_required = base_skill * (2**level - 1)

I figured that formula based on the following table:

level   inc/base   total/base
1       1          1
2       2          3
3       4          7
4       8          15


There you see the ratio of incremental skill (the amount needed to get from the previous level to this one) to the base, and the ratio of the total to the base. The level column represents the level you want to reach, not the current level. So to get from level 0 to level 1, you need exactly the base skill experience points. You'll need twice as many more to get to level 2.

You can pick other ratios too, and just use a formula to solve. For instance if you wanted an exponent of 1.5 instead, just refigure your formulas:

incremental_skill_required = base_skill * 1.5**(level-1)
total_skill_required = base_skill * (1.5**level - 1) / (1.5 - 1) = base_skill * 2 * (1.5**level - 1)

Try out the formulas and you'll get this table:

level   inc/base   total/base
1       1          1
2       1.5        2.5
3       2.25       4.75
4       3.375      8.125


Now there is one problem, which is that the exponential formula doesn't stiffen around level 25 any more than it does around any other level. You could try using an exponent that also increases as level increases, which would make skills quite easy to learn in the beginning but much harder as you gain levels.

Lummox JR