ID:156387
 
Hello!

In my game currently, I'm using what feels like, and is most likely, a very crude "Exp 'Till Next Level" formula, which reads as so:

src.EXPTNL = src.EXPTNL + round(10*(1.5**(src.Level-1)-1),10)/2


This is fairly decent, though it gets rather high towards the later twenties. I know that log() is often used by people in this situation, however its reference page and description baffles me.
I was wondering how most of you guys go about dealing with these sort of formulas without the end results getting far too out of hand.
log() is the inverse of exponentiation, so unless you want the exact opposite problem (huge initial ramp-up followed by very slow increase) it's not going to be useful to you. You would use log() if you instead just chose a reasonable function for maximum experience (like, say, src.EXTNL = 100) and then simply use log() to scale experience based on the relative level of what you kill.
The amount of experience required to level doesn't mean much by itself. I could make an RPG where you need 1,000,000 experience to get to level 2. That sounds like it'll take a long time but if you get 500,000 experience per kill it won't take long at all.

You need to consider how players gain experience, how much they gain, and how quickly they get it. Without knowing this there's really no way to answer your question.
In response to Forum_account
/agree

Level and experience scaling is very important. I see many games out there who have numbers that would make your jaw drop at how insanely high they get, when it would be exactly the same if they just scaled it down to smaller numbers (such as taking a few zeros off the end >_>). In my opinion, the smaller numbers make the game look cleaner.
Ya, instead of adjusting the exp tnl, i would just make it so stronger opponents give more exp, if that is possible, otherwise, a simple like exp_tnl = round(exp_tnl*1.5) or *2, or something, :/ idk, as i don't know how your combat system is set up, in terms of exp gain, nor if there is multiple strnegths of creatures, npc, etc.
In response to Forum_account
*Doh* You're right. I forgot to factor in the enemies and how much they give. My formula really wouldn't be that bad then, if I just made sure the exp given to the player is well balanced in accordance to it.
In response to Forum_account
Forum Account's statement is true, but also consider how you want the advancement through areas to take place, and how previous areas should relate to your current level.

If you have exp to next level squared at every level, that might be fine if every area you get to has enemies that give an exp reward that is in the magnitude of the previous enemies exp reward squared. Then you will continue getting levels at about the same rate through the game when you started the game needing 4 exp to get to level 2, even though, by level 6, you'll need more than 4 billion exp. It still scales properly.

However, this makes past areas useless for experience gain. Who would ever want to go back to area x that gives 100 exp per encounter when area y gives 10,000; area x is useless to you. If you want to force players to focus on one area at a time, massive experience ramping will help you with that.

If you want players to have an adventure where they travel around the world and might even need to revisit past areas then a slower progression will work for that. If area x supplies an average of 100 exp per encounter and area y supplies 125 exp per encounter, then players who are just grinding might prefer to spend more of their time in area y because they are getting exp 25% faster, but they still might go back to area x to hang out, do a quest, explore some more, or whatever, because they can still advance even if not quite as fast. But to make this work well, the enemy difficulty needs to scale with the experience gain. If enemies in y give 25% more experience but are 75% harder to fight, then players might still stay in area x because, even though a specific encounter doesn't have the +25% exp alure, the encounter itself might take half the time so that you really can grind faster in area x even though it gives lower exp.

So you need to think about how you want to direct the players. As a game developer, you have a lot of control over that with these things.