I problemi che hai con il calcolo del DPS da quella formula sono perché quello che chiami BaseDamage
non sembra essere quello.
Supponendo che tutti i numeri siano positivi, BaseDamage / ( BaseDamage + Defense )
si risolveranno sempre in un numero in virgola mobile compreso tra 1 e 0. Non importa se ne hai 10 BaseDamage
, 1.000 BaseDamage
o 1.000.000 BaseDamage
, sarai sempre in quell'intervallo. La posizione in quel raggio dipende da come BaseDamage
l'arma si confronta con quella Defense
del bersaglio. Ciò significa che ciò che realmente influenza l'ordine di grandezza del realDamage di un attacco è principalmente il SkillDmg
moltiplicatore.
Osservando queste proprietà matematiche, non chiamerei davvero questa proprietà dell'arma, BaseDamage
ma piuttosto DefensePenetration
, perché descrive la capacità dell'arma di superare la difesa nemica e fare comunque la maggior parte del suo danno. Questo potrebbe effettivamente essere un meccanico interessante da avere (o no ... è qualcosa che devi testare), ma non dice molto sul livello di potenza di un'arma.
Quindi, come possiamo risolvere questo problema?
Bene, non esiste una soluzione giusta a questo problema. Ma un cambiamento che potrebbe fare quello che vuoi fare (un'arma doppia rispetto al doppio = circa il doppio del danno) è quello di aggiungere BaseDamage
un altro fattore moltiplicativo:
float realDamage = SkillDmg * BaseDamage * BaseDamage / (BaseDamage + Defense)
Se ti piace la meccanica di penetrazione della difesa che hai scoperto per caso, ecco come apparirebbe Penetration
come un'arma separata:
float realDamage = SkillDmg * BaseDamage * Penetration / (Penetration + Defense)
La cosa bella di questa formula è che si adatta abbastanza bene:
- Anche quando la difesa è patetica rispetto al valore di attacco, non c'è mai più danno dell'attacco. Questo ti dà un limite massimo alla quantità di danni che un personaggio può infliggere, il che rende il bilanciamento molto più semplice.
- Dall'altro estremo, non importa quanto in alto la difesa arriva, non può mai mitigare completamente il danno (tranne attraverso errori di arrotondamento), quindi c'è sempre spazio per migliorare il difensore e non c'è mai un attacco completamente inutile.
- Quando Difesa e BaseDamage (e Penetrazione quando lo si desidera) sono all'incirca uguali, c'è circa la metà del danno reale di BaseDamage. Questo è vero indipendentemente dalla grandezza dei valori. Questo è anche ciò su cui puoi basare la tua stima DPS. Supponi semplicemente che il nemico abbia la stessa difesa che l'arma ha in attacco / penetrazione, il che significa che la tua formula DPS diventa
AttackFrequency * BaseDamage / 2
Modifica: ecco alcune tabelle con valori di esempio:
Damage by Defense for single attack
Defense
| 0 | 35 | 50 | 100
---+-------+------+-------+-------
35 | 35 | 17.5 | 14.4 | 9.1
Attack 50 | 50 | 29.4 | 25.0 | 16.6
100 | 100 | 74.0 | 66.7 | 50.0
Dps assuming HitFrequency = 100 / Attack
Defense
| 0 | 35 | 50 | 100
---+-------+-------+------+-------
35 | 100 | 50.0 | 41.1 | 25.9
Attack 50 | 100 | 58.8 | 50.0 | 33.3
100 | 100 | 74.0 | 66.7 | 50.0
Come puoi vedere da questi numeri, le armi ad alta velocità a bassa velocità sono ancora nominalmente più potenti contro lo stesso nemico rispetto alle armi a bassa velocità ad alta velocità se hanno lo stesso DPS secondo AttackFrequency * BaseDamage / 2
. Ma l'effetto è più visibile sui nemici ad alta definizione che sui nemici a bassa definizione. Entrambi sono ugualmente buoni su nemici a 0 def. Ciò significa che le armi ad attacco rapido sono meno dannose per i nemici a bassa definizione che per i nemici ad alta definizione.
Ciò potrebbe essere bilanciato dal fatto che le armi ad alta velocità offrono al giocatore una maggiore flessibilità per quanto riguarda la distribuzione del danno e quindi consente loro di evitare di sprecare DPS in overkill. Quando il giocatore deve affrontare un numero molto elevato di nemici molto deboli che muoiono tutti con un colpo, un'arma da 5 attacchi al secondo può uccidere 5 nemici al secondo mentre un'arma da 1 attacco al secondo può uccidere solo 1 nemico al secondo. Un altro possibile vantaggio appare quando aggiungi casualità agli attacchi. A causa della legge di grandi numeri, molti attacchi deboli produrranno un danno più regolare e affidabile rispetto a pochi attacchi potenti. I giocatori di solito beneficiano dell'affidabilità. Ma quando tali considerazioni sono irrilevanti a causa della meccanica del tuo gioco e / o del design dell'incontro, dovrai rendere le tue armi più veloci un po 'più potenti di quanto dovrebbero essere per compensare.
Un modo per dare una spinta alle armi ad alta velocità potrebbe essere l'introduzione di effetti che si innescano con una probabilità x% per colpo e non dipendono dal danno. Questi sarebbero molto più potenti con un'arma ad attacco rapido perché si innescherebbero molto più frequentemente.
damage * damage / ( damage + defense)
), solo senza tenere conto del danno da abilità. Il motivo della differenza in DPS è perché stai usando la stessa difesa. Il motivo per cui ottieni risultati diversi è perché con quella formula, armi lente ma forti sono migliori contro i nemici ad alta definizione mentre armi veloci ma deboli sono migliori contro i nemici a bassa definizione (che sembra plausibile). Hai assunto un nemico ad alta definizione e bilanciato entrambe le armi contro di esso, il che significa che hai reso il pugnale sopraffatto. Il calcolo DPS mostra che sopraffare.