I'm currently wrapping up a fairly big balance revamp of Demon, and the XP curve was one of the things I tackled during that.
After some internal debate, I decided I had two primary goals:
* To be able to set a "target XP value" for encounters on a floor and know that challenge provided would be correct regardless of whether this value was reached by having a few normal-for-that-level monsters or a large number of weaker monsters.
* Players to gain levels at roughly the same rate throughout the game (1 per dungeon floor cleared.) Gaining levels and spending stat points is fun after all, why draw it out unnecessarily in the later game?
Relevant to the first goal: Players and monsters in Demon use the exact same stat systems (in fact they must, since the main mechanic of Demon is recruiting the same monsters you fight against to also fight alongside you), so characters (regardless of 'faction') of a similar experience level are usually also of a similar power/threat level. Gaining levels generally provides you with two benefits: you are more effective at doing whatever it is you do in combat (damage, support, healing, etc.), and you can take more damage. This has a sort of N^2 effect in terms of overall combat effectiveness: if a Level 20 character has 400 HP and deals 20 damage an attack, and a Level 40 character has double these values, the Level 40 character is actually *four* times more effective. Their 800 HP lasts twice as long, and their 40 damage per attack is twice as damaging for each attack during that doubled lifespan.
Based on this, I decided the XP value for a character should simply be its Level squared: once to account for its effective power per action, once to account for its ability to survive to do more actions, both of which are linearly influenced by Level. All characters "secretly" have +10 added to their Level for combat purposes (this is so that a Level 2 monster is not actually massively more threatening than a Level 1), so for 1st level monsters, this puts the XP value at 121 per kill, for example.
The second goal was fairly simple to solve at this point. I want the player to gain 1 experience level per floor. Every dungeon floor makes 7 checks on the encounter table for that level, that number being based on what has felt good in previous testing. For a good challenging encounter, I generally want the player to face enemies of (on paper, at least) equal power: the player has a party of 4, so the player's total level will be: Expected Level For Floor * 4. Therefore, encounters on that floor should also be that level, which means each floor will give experience equal to ((Expected Level For Floor * Expected Level For Floor) * 4) * 7), or ((Expected Level Floor * Expected Level For Floor) * 28). Therefore, that should be the amount of experience required to advance to the next level. That ends up looking something like this (remember the "invisible" +10 added to level behind the scenes:)
Level ; XP per Kill at Level ; XP required for Next Level (x28)
1 ; 121 ; 3388
2 ; 144 ; 4032
3 ; 169 ; 4732
4 ; 196 ; 5488
etc.
Based on my (still early I admit) testing, this seems to be working out for the most part. The player doesn't actually hit experience level 2 until just before the 3rd level of the dungeon, but that's because encounters on the first floor are very, very lightweight (the player only starts with a party of 2, as opposed to the party of 4 they will have for the vast majority of play.) So based on that I had to knock the "expected level" for floors 2+ down by 1 (basically treating Tower:1 and Tower:2 together as the first floor)
Encounters seem to be properly nasty whether they involve 4 "maximum" level enemies or a larger number of lower level enemies, so that part worked out.
Finally, I did have to make a small adjustment to the formula: it is now based off x26 instead of x28, to account for the 20% chance for checks on an encounter table to drop down to the next easier table (and the much smaller, but still important 3% chance of a check using the next harder table...)
I'm pretty happy with the results, overall.
How adaptable this would be to other games would depend on the goals, and how easy it is to gauge the relative strength of characters vs. each other, particularly across the player/NPC line, but hopefully someone will find something useful in all this babbling.