Fare una distribuzione casuale falsa?


8

A volte un evento casuale "reale" sembra ingiusto e rende i giocatori frustrati. Ad esempio, un nemico ha una probabilità del 20% di causare un doppio danno ("colpo critico"). Così potrebbe fare 4 colpi critici di fila con probabilità 1/725. Non è piccolo come sembra.

Spero che la probabilità possa essere regolata dopo ogni colpo. Se il giocatore ha appena ricevuto un colpo critico, la probabilità diminuisce per il colpo successivo. Altrimenti aumenta.

Esiste un modello matematico per questo comportamento?


Risposte:


9

Potresti voler ripensare completamente cosa fanno i "colpi critici" nel tuo sistema e perché li stai usando. "Beh, altri giochi di ruolo li usano!" non è un motivo valido. Un segnale di avvertimento di un design distorto è la necessità di applicare regole sempre più speciali.

Qualsiasi tipo di bonus casuale toglie all'abilità tattica diretta del giocatore e si aggiunge alla pianificazione strategica (caricamento degli oggetti RPG, priorità delle statistiche sull'equipaggiamento, ecc ...). A causa di questo spostamento di concentrazione devi decidere di cosa tratta il tuo gioco prima di applicare in modo sfrenato vecchi standard come critici e chiacchiere.

Il mio suggerimento è che se vuoi che la casualità prenda parte al tuo gioco, allora gloria in esso, lascia che sia casuale.

Ma se vuoi davvero aggiungere regole più arbitrarie, puoi semplicemente iniziare un conto alla rovescia quando si verifica la prima critica e durante quel conto alla rovescia qualsiasi altra critica viene ridotta al 50% e quindi al 25% e così via. Ogni critico, ovviamente, resetta il conto alla rovescia . Questo ti dà due punti per mettere a punto le tue regole arbitrarie: quanto dura il conto alla rovescia e quanta riduzione viene accumulata per ogni critico. Una combinazione di questi due controlli consente di evitare chiaramente il problema non detto di "cosa succede se il boss ottiene un critico, quindi normale, quindi secondo critico?" che un semplice controllo a catena non avrebbe risolto.


5

Dota 2 utilizza PRD (distribuzione pseudo casuale) che non influisce in modo significativo sull'aspettativa, ma riduce le possibilità di una striscia, ad esempio una striscia bash. Dai un'occhiata a questo, spiega tutto in dettaglio. http://www.youtube.com/watch?v=KdS-K_rosCI


In realtà no. Introduce semplicemente il concetto senza dettagli su questo algoritmo.
Lai Yu-Hsuan,

@ LaiYu-Hsuan Sì, il video della versione di base potrebbe renderlo un po 'più semplice da capire: youtu.be/yR7BcWfBCsc
aaaaaaaaaaaa

3

Penso che questo sia un caso in cui cercare di essere troppo intelligenti porterà a una spirale di modifiche e aggiustamenti al generatore di numeri casuali che lo renderà molto complesso.

La risposta potrebbe essere nella domanda: se un giocatore può essere frustrato da troppi colpi critici di seguito, beh, riduce direttamente le probabilità che ciò accada. Se l'RNG disegna un quarto critico consecutivo, ad esempio potresti voler ripetere il rollback. O addirittura far valere critical = false.


3

Un approccio abbastanza comune che puoi usare che dovrebbe dare i risultati che stai cercando: piuttosto che tirare un dado ogni volta, invece scegli una carta: supponiamo di avere una probabilità 1/10 di "fallimento critico", una probabilità 4/10 di fallimento, una probabilità 4/10 di successo e una probabilità 1/10 di "successo critico". Quindi, invece di lanciare un d10 (metaforico) e gestire il risultato, mischia invece una pila di dieci carte risultato (virtuali) e distribuiscile, una per una, ogni volta che devi generare un tale risultato. Quando esaurisci il tuo mazzo, rimescola e ricomincia da capo. Questo può ancora generare guasti critici back-to-back, ma garantisce che ci sarà successo (e successi critici) in un arco di tempo ragionevole. Se vuoi che le cose non siano così ovvie (e non ti dispiace introdurre una piccola possibilità di risultati estremi successivi), puoi sempre "raddoppiare" il tuo mazzo; costruisci una pila di venti carte che contiene due copie di ogni risultato e mescola invece quella.


Questa è un'ottima risposta È l'equivalente di: se vuoi 10 numeri casuali da 0 a 100, anziché ottenere un numero casuale 10 volte, devi solo generare un array con tutte le opzioni possibili (0, 1, 2, ..100) e mescolarlo, quindi usa i primi 10. Questo evita le ripetizioni, quindi non è del tutto equivalente, ma in molti casi è una soluzione molto migliore.
zeh,

1

La Bayesian Inference affronta un po 'la situazione. Inizi con una distribuzione di probabilità per un evento che si verifica, quindi una volta che lo fai, aggiorni questa probabilità a una nuova. Queste sono rispettivamente le probabilità anteriore e posteriore. È spesso molto utile visualizzarlo in forma di albero (preso da Internet).

inserisci qui la descrizione dell'immagine

Nell'albero, i rami rappresentano la probabilità di prendere quel ramo e i nodi sono l'evento. Quindi, nel tuo caso, facciamo degli eventi A, B, C per ottenere un colpo critico con resp respinti dagli attacchi A, B e C. Quindi P e NP saranno gli eventi di ottenerne un altro o no. Notiamo che al punto (B -> P) c'è una probabilità del 25% di ottenere un altro colpo critico dato che ne hai ottenuto uno nell'ultimo turno. Ovviamente il tuo albero non sarebbe proprio così, ma è il massimo che potrei fare in 5 minuti.


1
L' inferenza baysiana non ha nulla a che fare con questo!
inamidato il

@starwed quindi ti piacerebbe offrire un termine diverso piuttosto che semplicemente urlarmi?
Jemmy,

@Jeremy, devi rispondere a come risolvere il problema del PO. Finora, hai appena riformulato la sua domanda con un'illustrazione matematica. Ma ciò non dice all'OP come rendere più divertente l'RNG.
Kurtzbot,

1

Penso che ci siano già alcune belle risposte fornite sopra, ma suggerirei un approccio diverso.

Quando il giocatore effettua un colpo critico, gli stai dando una piccola ricompensa per attirare ulteriormente il gioco. Un po 'come il fatto che un tossicodipendente rimarrà al tavolo da poker per "solo un po' più a lungo" dopo aver vinto una mano. Quando il nemico viene colpito da un critico, potrebbe non aumentare affatto l'esperienza di gioco, ma piuttosto sentirsi ingiusto, soprattutto se questo è ciò che gli ha fatto perdere la battaglia.

Quindi il mio suggerimento sarebbe quello di mantenere i crits per il giocatore e non usarli affatto per i nemici. Dopo tutto il giocatore è un eroe e dovrebbe essere favorito dagli dei stessi per raggiungere la grandezza :)


0

Qui ci sono tecniche casuali ma non del tutto casuali che uso.

1) Shuffle bag. Metti tutti i risultati validi in un sacchetto, scegline uno a caso e rimuovilo dal sacchetto. Ripetere fino a quando il sacchetto è vuoto, quindi riempire il sacchetto. Per aggiungere di nuovo in modo casuale, riempire il sacchetto quando sono rimasti solo X oggetti.

2) percentuali progressive. Probabilità del primo tiro X%, se il secondo tiro fallisce è X + Y%, quindi X + 2Y% ecc. Ripristinare su X% in caso di successo. È possibile regolare sia il valore iniziale che la progressione (anche non lineare).

3) Recuperi interni. Tira X e il caso, in caso di successo, non tirare per i successivi N secondi o M tentativi o altro. Può essere combinato con altri metodi. Per aggiungere più casualità, fai più controlli degli eventi con diversi coodlown, ovvero effettua 2 tiri al 25% con cooldown interni di 3 e 7 secondi anziché 1 tiro con il 50% con un icd 5s (non esattamente la stessa probabilità, ma puoi calcolare e abbinare se importante).

4) Spaziatura pre-laminata. Invece di controllare contro una percentuale ogni evento, scegli semplicemente quando si verificano gli eventi. Ad esempio, "questo boss attacca ogni 1d4 + 4 attacchi". Funziona bene quando si desidera che qualcosa accada in modo relativamente coerente e in qualche modo casuale, ma non si desidera eventi back to back. In qualche modo un caso speciale di metodi (2) più (3). Ancora una volta per maggiore casualità puoi avere 2 o più sequenze sovrapposte.

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.