Je développe un jeu de bataille de texte simple et j'ai des problèmes pour calculer combien d'XP devraient être gagnés après une bataille, il y a quelques facteurs que je veux considérer:
1) Les joueurs devraient bien sûr gagner de bons XP s'ils battent quelqu'un du même niveau
2) Les joueurs devraient gagner de grands XP s'ils battent quelqu'un d'un niveau supérieur
3) Les joueurs devraient gagner de faibles XP s'ils battent quelqu'un d'un niveau inférieur
4) Ce qui précède devrait bien évoluer, c'est-à-dire que si le joueur A est de niveau 10 et combat le joueur B de niveau 9 ou 11, la différence ne devrait pas être énorme (ils gagneraient bien sûr plus d'XP pour vaincre le personnage de niveau 11 mais nous ne le ferions pas attendez-vous à ce que ce soit énorme), mais s'il devait combattre un niveau 5 ou 15, cette différence devrait être énorme.
Ayant du mal à calculer quelque chose qui fonctionne bien dans tous les scénarios, actuellement mon tableau XP ressemble à ce qui suit:
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
En PHP, mon code ressemble à celui ci-dessous pour calculer l'XP nécessaire:
$offset = 30;
$multiplier = 1.17;
$base = $prevXp * $multiplier;
$xp = $base + $offset;
J'ai essayé quelques choses différentes mais je n'ai été impressionné par aucune d'entre elles, j'aimerais travailler avec le calcul de la différence dans XP et ensuite utiliser une sorte de multiplicateur mais je n'ai pas été impressionné par les résultats.
Toute aide / contribution serait appréciée.