Sto sviluppando un semplice gioco di battaglia testuale e ho dei problemi nel calcolare la quantità di XP da guadagnare dopo una battaglia, ci sono alcuni fattori che voglio considerare:
1) I giocatori dovrebbero ovviamente guadagnare buoni PE se battono qualcuno dello stesso livello
2) I giocatori dovrebbero guadagnare grandi PE se battono qualcuno di livello superiore
3) I giocatori dovrebbero guadagnare XP scadenti se sconfiggono qualcuno di livello inferiore
4) Quanto sopra dovrebbe scalare bene, cioè se il giocatore A è di livello 10 e combatte il giocatore B che è di livello 9 o 11 la differenza non dovrebbe essere enorme (ovviamente guadagnerebbero più XP per sconfiggere il personaggio di livello 11 ma non lo faremmo aspettarsi che questo sia enorme), ma se dovesse combattere un livello 5 o 15 questa differenza dovrebbe essere enorme.
Ho solo problemi a calcolare qualcosa che funziona bene in tutti gli scenari, attualmente la mia tabella XP è simile alla seguente:
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 il mio codice è simile al seguente per calcolare gli XP necessari:
$offset = 30;
$multiplier = 1.17;
$base = $prevXp * $multiplier;
$xp = $base + $offset;
Ho provato alcune cose diverse, ma non sono rimasto impressionato da nessuno di essi, mi piacerebbe lavorare con il calcolo della differenza in XP e quindi utilizzare un qualche tipo di moltiplicatore, ma non sono rimasto colpito dai risultati.
Qualsiasi aiuto / input sarebbe apprezzato.