Come implementare un sistema di esperienza?


14

Attualmente sto scrivendo un piccolo gioco basato sull'esperienza di guadagno nell'uccidere i nemici. Come al solito, ogni livello richiede una maggiore esperienza acquisita rispetto al livello precedente e, ai livelli più alti, uccidere i nemici conferisce più esperienza.

Ma ho un problema nel bilanciare questo sistema. Esistono algoritmi predefiniti che aiutano a calcolare l'aspetto della curva di esperienza richiesta per ciascun livello? E quanta esperienza dovrebbe fornire un nemico medio a un livello specifico?


Risposte:


14

Vorresti una sorta di curva esponenziale, probabilmente qualcosa del tipo:

base_xp * (level_to_get ^ factor)

base_xp è una costante che decide di quanto xp è necessario per salire di livello.
level_to_get è il livello a cui stai puntando; al livello 1, questo sarà il livello 2. Il
fattore è un'altra costante che decide di quanto aumento di xp è necessario per ciascun livello.

Avere una base_xp di 200 e un fattore, diciamo, 2 dà qualcosa del genere:

inserisci qui la descrizione dell'immagine

Considerando che una base_xp di 50 e un fattore di 2,6 danno:

inserisci qui la descrizione dell'immagine

Il secondo ha una velocità xp iniziale molto più bassa, ma hai bisogno di più xp molto rapidamente.

Per quanto riguarda monster xp, questo è qualcosa che vuoi testare. Prova vari valori. Vuoi qualcosa che non sia troppo alto (diventerai rapidamente sopraffatto) ma non troppo basso (i giocatori non vogliono macinare). Pensa a quanti nemici 'standard' vorresti che il giocatore uccidesse per il livello 10-> 11, per esempio.


3
Potresti desiderare una curva più acuta di quelle qui. RuneScape , ad esempio, ha una curva molto ripida, che ricorda quasi una curva logaritmica (capovolta / ruotata ovviamente); vederlo qui . Almeno nella mia esperienza personale, sembra funzionare MOLTO bene per darti un sacco di ricompense veloci all'inizio, e quando arrivi a livelli più alti sei adattato a tempi di gioco più lunghi fino a quando gli ultimi livelli prendono PER SEMPRE ma il giocatore in qualche modo lo tollera. Gli anni '90 sono abbastanza frequenti, nonostante il STEEP !! curva per arrivarci.
Ricket,

Direi sicuramente che le curve qui sarebbero poco profonde.
Il comunista Duck il

per favore no exp. curve =, (- il livellamento richiede davvero tanto tempo e anche più ci si avvicina al tuo obiettivo, per favore no =. (
Dave O.

Una linea lineare non funzionerebbe. Se hai bisogno di 1000xp in più per livello, man mano che diventi più forte scoprirai che ci vuole sempre meno tempo per livellare.
Il comunista Duck il

1
La funzione mostrata ( base_xp * (level_to_get ^ factor)) è in realtà una funzione quadratica poiché level_to_getè il valore x e non il fattore, e se non sbaglio, base_xpdovrebbe essere aggiunto e non moltiplicato, al fine di tradurre la funzione in alto? Scusate se sono solo io a essere pignolo riguardo alla semantica, voglio solo assicurarmene perché la creazione di grafici per questa funzione sicuramente non vi dà alcun esponenziale.
Chockie,

6

Non esiste una risposta corretta alla domanda su quanta esperienza dovrebbe dare un nemico o su quanto dovrebbe essere ripida la curva dell'esperienza. Può aiutare a pensare al tempo di gioco richiesto per salire di livello per ogni livello e quindi basare l'esperienza richiesta per livello e l'esperienza media premiata per nemico su questo.

Questo articolo è un'analisi dettagliata della matematica di livellamento in Lineage II. http://web.archive.org/web/20100303164314/http://www.tstonramp.com/~mykel/lineage/


1
Non posso votare abbastanza questa risposta. Ad esempio, non vi è alcun motivo per cui debba esserci una curva effettiva per le diverse quantità di exp per livello perché puoi ridurre la quantità di esperienza che un nemico ti offre in relazione al tuo livello per lo stesso effetto ma numeri più gestibili . Non c'è un vero sostituto per comprendere il tuo sistema di combattimento e come vuoi che il gioco giochi, e quindi adattare il sistema di esperienza a quello.
Kylotan,

4
Questo link non esiste. Ecco un vecchio link che funziona: web.archive.org/web/20100303164314/http://www.tstonramp.com/…
Daniel Kaplan,

Questo è esattamente il motivo per cui non colleghiamo alle pagine; non puoi garantire che esistano sempre. Ho annullato il voto e contrassegnato la tua risposta.
Krythic,

@Krythic Ho aggiornato il link.
CiscoIPPhone
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.