ID:740191   May 12 2012, 9:30 am Hi there, Lately I've been messing around with the designing of a player's stats. Let's take some generic attributes such as Health(hp) Mana(ma) Strength(str) Inttelligence(iq) Agility(agi) and Experience(exp). Now obviously the way to calculate experience or the exp curve should be in such a away that the higher the players level the more exp he needs to progress, but how do I express that mathematically? Now as to the other attributes... should there be a fixed relation between the players level and his hp? or the higher his level the higher his iq ? or the third option of the further along the player is the harder it is to gain str. thanks ahead :)
Gi Money wrote:
Hi there,
Lately I've been messing around with the designing of a player's stats.
Let's take some generic attributes such as Health(hp) Mana(ma) Strength(str) Inttelligence(iq) Agility(agi) and Experience(exp).

Now obviously the way to calculate experience or the exp curve should be in such a away that the higher the players level the more exp he needs to progress, but how do I express that mathematically?

You can choose any mathematical equation that suits the experience rate you need.
Examples:
 ```exp = level * 100 // linearexp = level * level * 10 // quadraticexp = level * level * level * 1.234 // cubicexp = 2 ** level // exponential ```

In this way, you can calculate the exact experience given at a specific level and you need not store the experience from the previous levels.

Now as to the other attributes... should there be a fixed relation between the players level and his hp? or the higher his level the higher his iq ? or the third option of the further along the player is the harder it is to gain str.

:)

You can also model these mathematically, depending on what you want. Usually, different classes have 'base' stats that make that class good at certain things and bad at certain things. (For example, a mage being good at magic, or a fighter being good at melee, etc.)

Examples:
 ```iq = level * BASE_IQ + MIN_IQhp = MIN_HP + level * BASE_HPmana = MIN_MANA + level * level * BASE_MANA//etc. ```

I don't know if that helps at all.
 #2 May 13 2012, 6:51 pm You could try basing the system off of the Fibonacci sequence, meaning the next progression is the current + the previous. An example would be 100 exp for the first level, then 200 - 300 - 500 - 800 - 1,300 -ect. It can help make an easier to follow mathematical formula.
Gi Money wrote:
Now obviously the way to calculate experience or the exp curve should be in such a away that the higher the players level the more exp he needs to progress, [...]

Just thought I'd chime in and say this is technically not true. If you go back to old school MUDs like Diku and ROM, TNL ([experience] to next level) is a static value assigned based on your race, with humans starting at 1000 or so, and the more complex races having more.

There was also a concept in a few MUDs of complete customization of which skills you would learn, where certain skill groups cost X creation points to learn during your character's life time. And then once you were done with customization, you'd get penalized something like 150 experience per creation point expended above 50.

Anyway, TNL does not have to go up constantly. Instead, you can make experience gained go down. If you have 100 TNL and 200 levels in the game, if you make it so at level 1 you gain 33.3 experience PELK (per equal level kill, fancy names!) and decrease that number by .25% per level, you'll have experience scaling to the effect of:

 ```Experience per level: 100Base experience PELK: 33.333333333333Experience loss rate, per level: -0.25%At level 1: 34 experience PELK (3 equal level kills to level)At level 10: 33 experience PELK (4 equal level kills to level)At level 25: 32 experience PELK (4 equal level kills to level)At level 50: 30 experience PELK (4 equal level kills to level)At level 75: 28 experience PELK (4 equal level kills to level)At level 100: 26 experience PELK (4 equal level kills to level)At level 150: 21 experience PELK (5 equal level kills to level)At level 200: 17 experience PELK (6 equal level kills to level)Total equal level kills at level 200: 911 ```

It's quite a nice formula you can play with to change how the experience scales when leveling. Play with the experience loss rate per level to change the total loss of experience as you level, or play with the base experience (the amount you get at level 1 for an equal level kill) to change the total amount of kills needed per level. You can also play with the experience needed to increase/decrease the scaling. Some people like big numbers.

 ```Experience per level: 1000Base expereince PELK: 250Experience loss rate, per level: -0.4%At level 1: 250 experience PELK (4 equal level kills to level)At level 10: 241 experience PELK (5 equal level kills to level)At level 25: 226 experience PELK (5 equal level kills to level)At level 50: 201 experience PELK (5 equal level kills to level)At level 75: 176 experience PELK (6 equal level kills to level)At level 100: 151 experience PELK (7 equal level kills to level)At level 150: 101 experience PELK (10 equal level kills to level)At level 200: 51 experience PELK (20 equal level kills to level)Total equal level kills at level 200: 1701 ```

But anyway, yeah. That's another option.

As for how your attributes scale, that's another question that you're gonna need to describe how you'd prefer. I'm writing a little MUD where pretty much all your attributes are determined by your race, class, and your level. As such, I don't even have attributes on the character itself, and just effectively use a "getter" (getStrength) to grab the "base" strength (from race, class, and level), and then apply modifications from spells and equipment.

Depends on how you want to do it.
 #4 May 14 2012, 7:12 am In response to Argonus (#2) Argonus wrote: You could try basing the system off of the Fibonacci sequence, meaning the next progression is the current + the previous. An example would be 100 exp for the first level, then 200 - 300 - 500 - 800 - 1,300 -ect. It can help make an easier to follow mathematical formula. The numbers you're grabbing from that sequence will be pretty much out of the ball part at level 20, with something like 3 million experience to level. You're probably better off just deciding how fast you want people to level, and then picking values based on that: If you want people to level in 4 kills, give them 1000 experience and make them gain 250 experience per kill. If you want it to take X amount of time, decide how long it should take an average-strengthed player to kill an enemy. This can be done by determining what kind of damage they should be doing towards the enemies you are putting them up against, and how long it takes for those enemies to die when facing said damage.
 #5 May 14 2012, 3:36 pm Gi Money wrote: Hi there, Lately I've been messing around with the designing of a player's stats. Let's take some generic attributes such as Health(hp) Mana(ma) Strength(str) Inttelligence(iq) Agility(agi) and Experience(exp). Now obviously the way to calculate experience or the exp curve should be in such a away that the higher the players level the more exp he needs to progress, but how do I express that mathematically? Now as to the other attributes... should there be a fixed relation between the players level and his hp? or the higher his level the higher his iq ? or the third option of the further along the player is the harder it is to gain str. thanks ahead :) This had some pretty interesting formulas in it: http://www.byond.com/forum/?post=40085