Ich entwickle ein einfaches Textkampfspiel und habe einige Probleme bei der Berechnung, wie viel XP nach einem Kampf verdient werden soll. Es gibt einige Faktoren, die ich berücksichtigen möchte:
1) Spieler sollten natürlich gute EP verdienen, wenn sie jemanden des gleichen Levels schlagen
2) Spieler sollten großartige EP verdienen, wenn sie jemanden mit einem höheren Level schlagen
3) Spieler sollten schlechte EP verdienen, wenn sie jemanden mit einem niedrigeren Level besiegen
4) Das Obige sollte sich gut skalieren lassen, dh wenn Spieler A Level 10 ist und gegen Spieler B mit Level 9 oder 11 kämpft, sollte der Unterschied nicht groß sein (sie würden natürlich mehr EP erhalten, wenn sie den Level 11-Charakter besiegen, aber wir würden nicht Erwarten Sie, dass dies riesig ist), aber wenn er gegen Level 5 oder 15 kämpfen sollte, sollte dieser Unterschied riesig sein.
Da ich nur Probleme habe, etwas zu berechnen, das in allen Szenarien gut funktioniert, sieht meine XP-Tabelle derzeit wie folgt aus:
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
In PHP sieht mein Code wie folgt aus, um die benötigten XP zu berechnen:
$offset = 30;
$multiplier = 1.17;
$base = $prevXp * $multiplier;
$xp = $base + $offset;
Ich habe ein paar verschiedene Dinge ausprobiert, aber ich war von keinem beeindruckt. Ich würde gerne mit der Berechnung des XP-Unterschieds und der Verwendung eines Multiplikators arbeiten, aber ich war von den Ergebnissen nicht beeindruckt.
Jede Hilfe / Eingabe wäre dankbar.