Ho armeggiato da un po 'di tempo con un gioco e sto avendo un bel po' di problemi con qualcosa:
Ho due caratteri, ognuno dei quali ha attributi (circa dieci) in un intervallo (tra 1 e 20). Voglio usare questi attributi per generare un "tiro" in modo tale che il tiro più alto vince quel particolare incontro. Vale la pena notare che i due personaggi non si danneggiano / si difendono a vicenda. Stanno girando entrambi per vedere se superano quello che immagino che potremmo chiamare un controllo di abilità. Stanno entrambi rotolando per passare / fallire contro un valore comune. Non interagiscono tra loro.
Tuttavia, quando uno dei personaggi ha anche un piccolo vantaggio numerico, qualsiasi formula che ho escogitato dà risultati in quello sempre leggermente superiore vincendo una grande maggioranza delle volte. Questo è indesiderabile.
Ho provato a ponderare l'attributo "più pertinente" per il test all'80% e la somma degli altri attributi al 20%. Ho anche provato a confrontare le medie per produrre una differenza relativa e usarla per aumentare il carattere più debole. Entrambi gli approcci hanno portato ai vantaggi significativi che sto cercando di rimuovere (ad esempio, se incontro l'incontro 5.000 volte, produce abbastanza regolarmente una parte vincendo tutti i 5.000).
L'aggiunta di un componente "fortuna" è importante, a quanto pare, se è ponderata in qualche modo a favore del personaggio minore, e non ho raggiunto un buon equilibrio lì.
Quali approcci posso adottare per attenuare l'impatto di un piccolo vantaggio numerico, ma preservare e aumentare comunque tale vantaggio all'aumentare del divario relativo negli attributi?
Per la richiesta, ecco i dettagli che ho finora. Alcune cose che non ho ancora capito, quindi rimangono generalità:
Al momento, il rotolo viene generato come
0.8 * (mainAttribute) + 0.2 (1/3 * subAttA + 1/3 * subAttB * 1/3 subAttC)
Allo stato attuale, questo produce numeri nel quartiere di 4.0. Gli attributi vengono generati casualmente tra intervalli specificati. Il test corrente usa un personaggio con attributi da 2 a 4 e l'avversario tra 3 e 5. Com'era prevedibile, questo produce medie vicine rispettivamente a 3 e 4.
Con questo vantaggio di un punto, mi piacerebbe vedere il più forte dei due vincere nell'area dal 55% al 60% delle volte, con questo ridimensionamento fino a vincere circa l'80% delle volte con un vantaggio di attributo medio di 5 o 6, 90% a vantaggio di 7 o 8, lasciando un certo spazio per una vittoria improbabile quando il divario aumenta. Preferirei non avere mai vittorie garantite, ma forse le cose stanno diventando molto improbabili - al punto di vincere il 99,5% o il 99,6% delle volte in cui il divario diventa molto grande.
La formula corrente produce un numero non casuale. La casualità deriva dalla selezione di quali attributi sono rilevanti. Non tutti gli attributi sono usati per ogni lancio. È possibile che quello con gli attributi complessivamente più deboli sia più forte nelle aree rilevanti per quel tiro e rubi una vittoria. Ma, prevedibilmente, succede raramente.
Il mio prossimo tentativo è stato quello di valutare i loro punti di forza relativi, prendendo una media di tutte le statistiche di ciascuno, dividendole l'una contro l'altra e usando quel valore per dare una piccola spinta al personaggio minore. Ciò ha attenuato un po 'le cose, ma ha comunque avuto una forte tendenza a produrre cose come 5.000 vittorie per un ragazzo su 5.000 tentativi.