Una delle parti più difficili nello sviluppo di un gioco di ruolo è il bilanciamento dei nemici.
Creare un mob è semplice. Gli assegno dei PV, un attacco, una difesa e qualche abilità e tecnicamente funziona. Il problema arriva quando devo capire quanto devono essere alti quei numeri.
Quanto deve colpire forte un nemico di livello 10? Quanti PV deve avere? Quanto deve essere resistente? E soprattutto, come faccio a evitare che un nemico creato oggi sia completamente fuori scala rispetto a uno che creerò tra sei mesi?
A un certo punto ho trovato un post su Reddit che parlava proprio del bilanciamento dei nemici nei giochi di ruolo. Non ho seguito tutto alla lettera, ma mi ha dato l'idea di smettere di ragionare sui singoli nemici e costruire prima una base comune da cui partire.
Da lì ho sviluppato un piccolo tool che ormai uso come riferimento ogni volta che devo creare un nuovo mob o un boss.
Prima ancora dei nemici ci sono i personaggi
Ovviamente il bilanciamento non riguarda soltanto quello che devo combattere. Prima di decidere quanto deve essere forte un nemico devo avere almeno un'idea abbastanza precisa di quanto siano forti i personaggi.
Questa parte è stata un po' più semplice, perché avevo già abbastanza chiaro il ruolo che volevo dare a Mago, Lee, Utchi e Dark.
Ho quindi preparato uno schema in cui ogni statistica riceve un valore da S a E, in base a quanto deve essere importante per quel personaggio.
Mago Lee Utchi Dark
HP D A B C
MP A - - C
Attacco E A C B
Difesa D S D B
Attacco M S - - B
Difesa M A E B C
Agilità C D S B
Fortuna B C D SA ogni lettera corrisponde poi un valore massimo teorico:
Grado | HP | MP | Statistiche
S | 9900 | 990 | 350
A | 8800 | 880 | 300
B | 7700 | 770 | 250
C | 6600 | 660 | 200
D | 5500 | 550 | 150
E | 4400 | 440 | 100Da questi valori ho poi usato le curve di crescita delle statistiche di RPG Maker per costruire la progressione dei quattro personaggi.
In pratica non volevo semplicemente che uno avesse qualche punto in più o in meno degli altri. Le statistiche dovevano già raccontare il modo in cui combattono.
Mago arriva molto in alto con la magia ma è molto scarso nell'attacco fisico. Lee è quello con più PV e soprattutto con la difesa più alta. Utchi punta tantissimo sull'agilità, mentre Dark è più equilibrato ma spicca soprattutto nella fortuna, che determina i critici.
La cosa che mi interessava era che queste differenze rispecchiassero anche un po' la loro personalità e il ruolo che hanno nel gruppo. Prima ancora di abilità, passive e meccaniche specifiche, guardando le statistiche si dovrebbe già capire che non sono quattro personaggi costruiti allo stesso modo.
Prima devo sapere quanto sono forti i personaggi
Una volta stabilita questa divisione, nel file ho inserito le statistiche effettive dei quattro personaggi.
Per ogni livello, dall'1 al 25, che è il livello massimo stimato attualmente, il tool contiene PV, attacco, difesa, magia, resistenza magica, agilità e fortuna di Mago, Lee, Utchi e Dark.
Questo è importante proprio perché i quattro personaggi crescono in maniera diversa.
Quindi non avrebbe molto senso creare un nemico pensando semplicemente che al livello 10 un personaggio abbia, per esempio, 40 di attacco. Dipende completamente da quale personaggio sto considerando e da quale statistica utilizza.
Nel file posso selezionare un livello e vedere immediatamente i valori di tutti e quattro.
Ho aggiunto anche gli equipaggiamenti, divisi in diversi livelli che corrispondono più o meno ai vari momenti della progressione del gioco.
Anche questo era necessario, perché bilanciare un nemico usando soltanto le statistiche base dei personaggi avrebbe dato risultati abbastanza falsati. Un personaggio di livello 15 non combatte con l'equipaggiamento iniziale, quindi anche quello deve entrare nei calcoli.
Il nemico di riferimento
Dopo i personaggi ho creato una seconda progressione, questa volta dedicata ai nemici.
Anche qui ci sono valori dal livello 1 al 25 per tutte le statistiche principali.
Questi valori però non rappresentano un nemico vero e proprio. Sono una specie di nemico neutro, una base da cui posso partire per costruire tutto il resto.
Se devo creare un nemico pensato per una zona in cui il gruppo dovrebbe essere intorno al livello 10, scelgo il livello 10 e ho immediatamente un insieme di statistiche di riferimento.
A quel punto non devo più inventare ogni numero da zero.
La cosa che mi interessava era soprattutto avere una progressione coerente. Posso sempre modificare un singolo nemico se durante i test mi sembra troppo forte o troppo debole, ma almeno parto da qualcosa che segue la stessa crescita del resto del gioco.
Sui PV, in realtà, finisco quasi sempre per discostarmi dalla tabella. I valori che ho messo nel file sono utili come riferimento iniziale, ma poi durante le prove capita spesso che un nemico duri troppo rispetto a quanto avevo immaginato.
Quindi i PV finali assegnati ai mob e soprattutto ai boss sono quasi sempre ritoccati a mano. La teoria mi serve per partire da un numero sensato, ma la pratica, ahimè, tende abbastanza spesso a non essere d'accordo.
Non tutti i mob devono essere uguali
Ovviamente utilizzare sempre quelle statistiche avrebbe creato il problema opposto: tutti i nemici dello stesso livello sarebbero stati praticamente identici.
Per questo sopra alla classe base del nemico ho aggiunto una serie di archetipi.
Ci sono Attaccante, Mago, Difensore e Velocista, ognuno nelle versioni debole e forte.
Ogni archetipo applica dei moltiplicatori alle statistiche del nemico base.
Un Attaccante forte, per esempio, ha un attacco superiore alla norma ma difesa e resistenza molto più basse. Un Difensore forte fa esattamente il contrario: aumenta parecchio le difese, ma perde velocità.
Lo stesso vale per i maghi e per i velocisti.
In questo modo posso creare nemici diversi senza dover ogni volta rifare tutto il bilanciamento da capo.
Scelgo il livello, scelgo il tipo di nemico e il file calcola le statistiche finali.
Un nemico di livello 12 può quindi essere un attaccante molto pericoloso ma fragile, oppure un difensore che fa pochi danni ma richiede più tempo per essere eliminato. La base è la stessa, quello che cambia è il modo in cui vengono distribuiti i valori.
Mi piace soprattutto perché così le statistiche iniziano anche a descrivere il nemico prima ancora delle sue abilità.
E poi ci sono i boss
Per i boss ho seguito lo stesso principio, semplicemente portandolo molto più all'estremo.
Non esiste quindi una tabella completamente separata con statistiche inventate apposta per ogni boss. Anche loro partono dalla stessa curva dei nemici normali e utilizzano dei modificatori.
Un boss standard ha molti più PV e valori superiori praticamente in tutto. Poi ci sono anche qui delle varianti.
Il Boss Attaccante arriva a più del doppio dell'attacco normale, ma è meno resistente rispetto ad altri boss. Il Boss Mago fa la stessa cosa con la magia, mentre il Boss Difensore ha una quantità enorme di PV e difese molto più alte.
C'è anche il Boss Velocista, che punta soprattutto su agilità e fortuna, e un Boss speciale con valori generalmente molto alti: sono i boss meme o quelli di vero endgame.
La differenza più evidente rispetto ai mob normali rimane comunque quella dei PV. Un boss può avere sette, nove, dieci o anche più volte i punti vita del nemico base dello stesso livello.
Era praticamente obbligatorio: un normale nemico deve durare relativamente poco, mentre un boss deve avere il tempo di utilizzare le sue meccaniche e sviluppare realmente lo scontro.
La cosa utile è che, anche aumentando parecchio i numeri, continuo comunque a mantenere un collegamento con il livello a cui quel boss dovrebbe essere affrontato.
Capire quanto danno fanno davvero quei numeri
Avere le statistiche però non basta.
Sapere che un nemico ha 50 di attacco e un personaggio 60 di difesa non mi dice immediatamente quanto farà male un colpo.
Per questo nello stesso file ho aggiunto anche un calcolatore del danno.
La formula che sto utilizzando parte dall'attacco, applica un coefficiente base e poi l'intensità dell'attacco, prima di ridurre il risultato in base alla difesa del bersaglio.
L'intensità mi serve soprattutto per differenziare la potenza delle varie skill senza dover inventare ogni volta una formula diversa. Ho quindi creato alcune fasce: gli attacchi lievi fanno il 110%, quelli bassi il 120%, i medi il 130%, i moderati il 140% e quelli alti il 150%.
In questo modo posso usare la stessa struttura per tutte le abilità e aumentare progressivamente la loro efficacia. Le skill che si ottengono verso la fine del gioco possono quindi avere un'intensità maggiore e rimanere effettivamente più forti di quelle iniziali anche quando le statistiche dei nemici sono cresciute parecchio.
La parte che mi interessava di più era però il funzionamento della difesa.
Non volevo usare una formula in cui la difesa venisse semplicemente sottratta al danno. Con numeri abbastanza alti si rischia facilmente di arrivare a situazioni in cui un nemico prende pochissimi danni o addirittura praticamente zero.
La formula usa invece un fattore del tipo:
100 / (100 + DIF / 2)Questo significa che la progressione non è lineare.
Aumentando il livello dei mob aumenta anche la loro difesa, ma ogni nuovo punto non sottrae sempre la stessa quantità di danno. La riduzione cresce progressivamente, mentre l'effetto dei punti di difesa aggiuntivi diventa via via meno pesante.
Per esempio, il nemico base parte con circa 16 di difesa al livello 1, arriva a 33 intorno al livello 10 e a 62 al livello 25. Con la formula, un attacco che prima della difesa farebbe 100 danni ne infliggerebbe circa 93 al primo caso, 86 al secondo e 76 all'ultimo.
Quindi la difesa è più alta e il danno diminuisce, ma non succede in proporzione diretta. Raddoppiare la difesa non significa dimezzare il danno.
Questo mi permette di far crescere i nemici durante il gioco senza creare dei muri improvvisi. Un mob di livello alto è naturalmente più resistente, ma la curva rimane più morbida e lascia ancora spazio alla crescita dell'attacco dei personaggi, agli equipaggiamenti migliori e soprattutto alle skill con intensità più alta.
Sopra questa curva entrano poi in gioco anche gli archetipi. Un Difensore moltiplica ulteriormente la propria difesa, mentre un Attaccante ne sacrifica una parte per fare più danni. La formula rimane però sempre la stessa, quindi anche queste differenze continuano a seguire la stessa logica.
A questo si aggiunge una variazione finale del danno, che normalmente tengo al 20%, così due attacchi identici non producono sempre esattamente lo stesso numero, dando l'idea che i calcoli siano più complessi. ;)
Nel calcolatore posso prendere direttamente le statistiche di un personaggio, aggiungere quelle del suo equipaggiamento e confrontarle con quelle di qualsiasi archetipo di nemico.
Posso anche fare il contrario e vedere quanto danno farebbe quel nemico a uno dei personaggi.
Questa è probabilmente la parte che uso di più, perché mi permette di vedere immediatamente se i numeri che ho scelto hanno almeno un minimo di senso prima ancora di aprire RPG Maker e iniziare una battaglia di prova.
Una base, non una formula magica
Il file non decide realmente se uno scontro è bilanciato.
Ci sono troppe altre cose che entrano in gioco: critici, abilità, stati alterati, cure, passive, equipaggiamenti, numero dei nemici e soprattutto le meccaniche specifiche dei boss.
Quello che mi serviva era eliminare almeno una parte del caos.
Se creo un nuovo mob non devo più chiedermi da zero quanti PV dovrebbe avere o quale potrebbe essere un valore sensato di difesa. Scelgo il livello, scelgo l'archetipo e ho già una base abbastanza coerente con tutto il resto.
Poi arriva inevitabilmente la parte dei test e dei numeri cambiati a mano.
Ma almeno adesso parto da numeri ragionati invece che da numeri messi lì sperando che funzionino.