Come bilanciare l'esperienza acquisita in un gioco di ruolo


10

Attualmente sto sviluppando un gioco di ruolo con una classica esperienza-punti e meccanica di livello. Il giocatore uccide i mostri, guadagna punti esperienza, passa di livello quando si accumulano abbastanza e diventano più forti.

Come bilanciare la quantità di punti Exp necessari per raggiungere ogni livello e la quantità di Exp assegnata da ciascun mostro su ogni livello?



Grazie per la pubblicazione. Penso che le risposte a se stesse per condividere informazioni siano grandiose. Tuttavia, penso che la domanda dovrebbe essere in grado di resistere da sola. Se questa domanda fosse pubblicata senza la risposta, sarebbe probabilmente chiusa come troppo ampia. Forse puoi modificare un po 'la domanda per includere più requisiti e specificare il problema esatto che hai riscontrato? La domanda al momento è molto ampia e la risposta è essenzialmente "dipende da cosa vuoi".
MichaelHouse

Risposte:


18

Il modo migliore per giungere ad una conclusione in questo senso è - come la maggior parte delle cose in sviluppo del gioco - a cui pensare prima a come si desidera il gioco per il gioco , e poi fare la matematica che si tradurrà nel gioco di genere.

Per quanto tempo vuoi che il giocatore giochi ad ogni livello?

In un gioco di ruolo per giocatore singolo incentrato sulla storia, probabilmente vorrai mantenere i livelli di livello come un flusso di ricompensa costante e far salire di livello il giocatore ogni pochi minuti durante l'intero gioco. Il tasso di avanzamenti di livello rimane costante, quindi la funzione minuti per livello è una costante ( time = c).

In un gioco più incentrato sui risultati, come un MMORPG, di solito si desidera che i livelli aumentino per i principianti ma che diventino sempre meno frequenti man mano che il giocatore avanza. In tal caso la funzione minuti per livello sarebbe polinomiale ( time = Level ^ c) o addirittura esponenziale ( time = c ^ Level). Tuttavia, prendere il numero di livello così com'è in una formula esponenziale è di solito troppo estremo. Può essere una buona idea dividerlo per una costante per rendere l'aumento molto più lento pur mantenendolo esponenziale ( time = c1 ^ (1 + Level / c2)).

Ti consiglierei di usare un foglio di calcolo per sgretolare i numeri. Crea una tabella con una colonna con i numeri da 1 al livello massimo previsto e una seconda colonna con la formula del livello. Ciò ti consente facilmente di sperimentare diverse formule per trovare numeri di tuo gradimento. Forse ottieni risultati migliori combinando un polinomio con un componente esponenziale?

Ricorda che stai vedendo tempo di combattimento netto qui. Il tempo di gioco in cui il giocatore sta attivamente raccogliendo punti esperienza. Non conta il tempo che il giocatore trascorre a parlare con gli NPC, confrontando le loro attrezzature e svolge altre attività che non causano direttamente progressi.

Nel mio gioco attuale (un MMORPG) mi è venuta in mente la formula seconds(level) = 10 ^ (1 + Level / 20). I primi livelli richiedono solo pochi secondi di combattimento reale (gratificazione molto istantanea durante la fase di esercitazione), i livelli 20 - 40 richiedono minuti, negli anni '50 diventano ore per livello e quando vicino al livello massimo di 100 ci vogliono settimane intere per vedere progresso.

Quanto dovrebbe essere diversa l'esperienza per ogni nemico?

Anche quando i tuoi nemici non hanno una statistica di livello esplicita (o significativa), vorrai progettarli come una sfida bilanciata per un certo livello di personaggio. Ma quanta più esperienza dovrebbe raccomandare un nemico per la ricompensa di livello 40 rispetto a una raccomandata per il livello 30?

La risposta a questa domanda è strettamente correlata a quanto più potente il personaggio ottiene per livello e fino a che punto vuoi consentire loro di essere in vantaggio o dietro gli attuali nemici con il loro livello di personaggio.

Alcuni sistemi di gioco, come quello di World of Warcraft, ad esempio, rendono abbastanza inutile proseguire qualsiasi combattimento con un nemico leggermente al di sotto o al di sopra del livello del personaggio del giocatore. Qualunque cosa a pochi livelli sopra annichilirà il giocatore, qualsiasi cosa a pochi livelli sotto non sarà affatto una sfida (e nessuna ricompensa).

Un contro-esempio sarebbe la serie Disgaea. In quel gioco puoi sconfiggere facilmente i nemici con il livello dei tuoi personaggi più volte quando lo giochi in modo intelligente.

Quanto più restrittivo vuoi essere nella fascia di livello che è una lotta leale per il giocatore, tanto più devi assicurarti che il giocatore non sia in ritardo o superi il livello dei nemici che sta combattendo. Quando il giocatore cade dietro i nemici, il gioco diventerà frustrantemente difficile senza macinare. Quando il giocatore supera i mostri, il gioco diventerà troppo facile e noioso.

Un buon modo per mantenere il giocatore all'interno della fascia di livello è quello di aumentare il premio exp per livello. Da un lato, consentirà facilmente al giocatore di recuperare quando sono leggermente al di sotto del livello raccomandato. Dall'altro, non permetterà loro di salire di livello efficacemente su nemici deboli senza avanzare verso un'area più difficile.

Una curva exp polinomiale ( exp = Level ^ c) di solito funziona bene. Maggiore è il valore di c, più forza il giocatore nella fascia di livello attuale dei mostri che combattono.

Tieni presente che anche i nemici che impiegano più tempo a sconfiggere dovrebbero offrire proporzionalmente più esperienza. Una battaglia che dura 20 secondi dovrebbe dare il doppio di exp di uno che richiede solo 10 secondi. Questo estende la tua formula a exp = (Level ^ c) * minutes_per_combat.

La formula finale per livello di exp

La formula finale ora può essere derivata dai due. Il experience per levelè il time per level in minutesmoltiplicato con il experience gained per minute. Quindi prendi solo le due formule che hai trovato nelle ultime due sezioni e moltiplicale. Eccola: la tua formula esperienza per livello.

Con un aumento del tempo polinomiale per livello, la formula sarebbe

exp(level) = (level ^ c1) * (level ^ c2)

dove

  • c1 dipende da quanto tempo vuoi impiegare ogni livello
  • c2 dipende da quanto vuoi mantenere il giocatore al livello dei nemici che combattono

Cosa potrebbe andare storto?

Persino il miglior concetto elaborato non può sostituire il test di gioco corretto. Se il tuo playtesting rivela che i giocatori medi progrediscono molto più velocemente o più lentamente di quanto desideri, di solito è un segno che hai sovrastimato o sottovalutato i livelli raccomandati dei tuoi nemici e quanto tempo impiega il giocatore medio a ucciderli. Prova ad analizzare insieme ai tuoi playtester quali nemici sono difficili da uccidere a livello di personaggio e regola di conseguenza il loro valore di exp o le statistiche.

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.