Angband Forums (http://angband.oook.cz/forum/index.php)
-   Development (http://angband.oook.cz/forum/forumdisplay.php?f=10)

 Therem Harth January 19, 2015 15:14

Simple formula instead of tables for leveling

Last I checked, Angband uses a table of base experience values for each level. For each of fifty levels, there is an entry.

There are also EXP adjustments for race, class, and current player level...

This is a kludge. Also, on the gameplay side of things, I've noticed it causes a sudden slowdown in leveling after about level 25. I think it would be a good idea to drop the table and use a simple formula. For instance, gain levels when experience exceeds player level + 1, multiplied by the sum of all experience penalties, i.e.

(p_ptr->lev + 1) * p_ptr->expfact

Testing this with a Kobold warrior, it results in slower leveling at the beginning, and faster later on. Perhaps too fast. Maybe linear isn't ideal, and instead there should be an asymptotic relationship between current level and experience required for the next one? What do you think?

 Rydel January 19, 2015 17:45

If you have a graphing calculator handy, if you plug in all the data points, it should be able to automatically find various lines of best fit, so you should be able to get a formula rather close to the current numbers.

 PowerWyrm January 20, 2015 11:45

This is impossible to do simply because the experience monsters provide changes drastically at a certain point, roughly around 2k.

Compare:

- Phantom: 400 xp
- Grey wraith: 700xp
- Lorgan, Chief of the Easterlings: 1200xp

at dlvl 36 with:

- Ancient gold dragon: 6000xp
- Master lich: 10000xp
- Gorlim, Betrayer of Barahir: 7000xp

at dlvl 41.

So it would require rebalancing the whole bestiary first.

 Carnivean January 20, 2015 13:09

Powerwyrm, if you come up with the same result with both formula and table, then nothing needs to be rebalanced.

On the other hand, if you simplify the experience levels to a straightforward formula, then you could rebalance the XP for each monster relatively easily. Each monster dlvl would be 2*clvl value, so multiply monster XP by new clvl XP/old clvl XP where clvl = mdlvl/2. Not strictly accurate, but insignificantly different.

 All times are GMT +1. The time now is 00:29.