単純なテキストバトルゲームを開発していて、バトル後に獲得する必要のあるXPの計算にいくつか問題があります。考慮したいいくつかの要因があります。
1)同じレベルの誰かを倒した場合、プレイヤーはもちろん良いXPを獲得する必要があります
2)より高いレベルの誰かを倒した場合、プレイヤーは素晴らしいXPを獲得する必要があります
3)より低いレベルの誰かを倒した場合、プレイヤーは貧弱なXPを獲得する必要があります
4)上記は適切にスケーリングする必要があります。つまり、プレーヤーAがレベル10で、レベル9または11のプレーヤーBと戦う場合、その差は大きくありません(もちろん、レベル11のキャラクターを倒すとXPが増えますが、これは巨大であると期待します)、しかし、彼がレベル5または15で戦う場合、この違いは巨大なはずです。
すべてのシナリオでうまく機能する何かを計算するのに問題があるだけで、現在の私のXPテーブルは以下のようになります。
Current Level XP Needed Increase from Last Level
1 30 0
2 65 35
3 106 41
4 154 48
5 210 56
...
10 672 123
PHPでは、必要なXPを計算するためのコードは次のようになります。
$offset = 30;
$multiplier = 1.17;
$base = $prevXp * $multiplier;
$xp = $base + $offset;
私はいくつかの異なることを試しましたが、それらのどれにも感銘を受けていません。XPで差を計算してから、ある種の乗数を使用したいと思いますが、その結果には感銘を受けていません。
ヘルプ/入力をいただければ幸いです。