Faça uma distribuição aleatória falsa?

8

Às vezes, um evento aleatório "real" parece injusto e deixa os jogadores frustrados. Por exemplo, um inimigo tem probabilidade de 20% de causar dano duplo ("acerto crítico"). Assim, ele poderia fazer 4 acertos críticos consecutivos com probabilidade de 1/725. Não é tão pequeno quanto parece.

Espero que a probabilidade possa ser ajustada após cada ocorrência. Se o jogador acabou de receber um acerto crítico, a probabilidade diminui para o próximo acerto. Caso contrário, aumenta.

Existe um modelo matemático para esse comportamento?

Lai Yu-Hsuan
fonte

Respostas:

9

Você pode repensar completamente o que os "hits críticos" fazem no seu sistema e por que os está usando. "Bem, outros RPGs os usam!" não é um motivo válido. Um sinal de aviso de um design distorcido é a necessidade de aplicar cada vez mais regras especiais.

Qualquer tipo de bônus aleatório retira a habilidade tática direta do jogador e aumenta o planejamento estratégico (carregamento de itens de RPG, priorização de estatísticas nos equipamentos, etc.). Devido a essa mudança de foco, você precisa decidir sobre o que é o seu jogo antes de aplicar arbitrariamente velhos padrões, como críticas e dificuldades.

Minha sugestão é que, se você deseja que a aleatoriedade participe do seu jogo, se glorie nela, seja aleatória.

Mas se você realmente deseja adicionar mais regras arbitrárias, pode simplesmente iniciar uma contagem regressiva quando a primeira crítica acontecer e, durante essa contagem, mais críticas serão reduzidas para 50% e depois para 25% e assim por diante. Cada crítico, é claro, redefine a contagem regressiva . Isso oferece dois lugares para você ajustar suas regras arbitrárias: quanto tempo dura a contagem regressiva e quanta redução é acumulada em cada crítica. Uma combinação desses dois controles permite evitar claramente o problema tácito de "e se o chefe for crítico, depois normal e depois crítico"? que uma simples verificação da cadeia não consertaria.

Patrick Hughes
fonte
5

O Dota 2 usa PRD (distribuição pseudo-aleatória), o que não afeta significativamente a expectativa, mas diminui as chances de uma sequência, por exemplo, sequência do bash. Dê uma olhada nisso, explica tudo em detalhes. http://www.youtube.com/watch?v=KdS-K_rosCI

Andrey S
fonte
De fato não. Apenas introduz o conceito sem detalhes sobre esse algoritmo.
Lai Yu-Hsuan 23/09
@ LaiYu-Hsuan Ele faz, o vídeo versão básica pode torná-lo um pouco mais fácil de entender: youtu.be/yR7BcWfBCsc
aaaaaaaaaaaa
3

Acho que este é um caso em que tentar ser inteligente demais levará a uma espiral de ajustes e ajustes no gerador de números aleatórios que o tornarão muito complexo.

A resposta pode estar na pergunta: se um jogador pode ficar frustrado com muitos acertos críticos seguidos, reduza diretamente as chances de isso acontecer. Se o RNG desenha um quarto crítico consecutivo, você pode, por exemplo, relançá-lo. Ou mesmo impor critical = false.

sam hocevar
fonte
3

Uma abordagem bastante comum que você pode usar e fornecer os resultados que deseja: em vez de rolar um dado toda vez, escolha uma carta: suponha que você tenha 1/10 de chance de 'falha crítica', 4/10 de chance de falha, 4/10 de chance de sucesso e 1/10 de chance de 'sucesso crítico'. Em vez de lançar um d10 (metafórico) e manipular o resultado, embaralhe uma pilha de dez cartões de resultado (virtuais) e distribua-os, um por um, sempre que precisar gerar esse resultado. Quando você ficar sem o seu baralho, apenas embaralhe e comece a negociar novamente. Isso ainda pode gerar falhas críticas consecutivas, mas garante que haverá sucesso (e sucessos críticos) dentro de um período razoável. Se você deseja que as coisas não sejam tão óbvias (e não se importe em apresentar uma pequena chance de resultados extremos sucessivos), você sempre pode "dobrar" o seu baralho; monte uma pilha de vinte cartas que contém duas cópias de cada resultado e embaralhe-as.

Steven Stadnicki
fonte
Esta é uma ótima resposta. É o equivalente a: se você quiser 10 números aleatórios de 0 a 100, em vez de obter um número aleatório 10 vezes, basta gerar uma matriz com todas as opções possíveis (0, 1, 2, .100) e embaralhá-la. use o primeiro 10. Isso evita repetições, portanto não é um equivalente, mas em muitos casos é uma solução muito melhor.
zeh
1

A inferência bayesiana lida bastante com a situação. Você começa com uma distribuição de probabilidade para um evento que ocorrer e, depois disso, atualiza essa probabilidade para uma nova. Estas são as probabilidades anteriores e posteriores, respectivamente. Muitas vezes, é mais útil visualizar isso em forma de árvore (peguei isso na Internet).

insira a descrição da imagem aqui

Na árvore, os ramos representam a probabilidade de obter esse ramo, e os nós são o evento. Portanto, no seu caso, vamos fazer A, B, C os eventos de obter um acerto crítico com os ataques A, B e C, respectivamente. Então P e NP serão os eventos de conseguir outro ou não. Percebemos que no ponto (B -> P) há 25% de chance de receber outro acerto crítico, uma vez que você recebeu um no último turno. É claro que sua árvore não ficaria assim, mas é o melhor que eu poderia fazer em 5 minutos.

Jemmy
fonte
11
A inferência baysiana não tem nada a ver com isso!
starwed 23/09/13
@starwed, você gostaria de oferecer um termo diferente, em vez de simplesmente gritar comigo?
Jemmy # 23/13
@ Jeremy, você precisa responder como resolver o problema do OP. Até agora, você acabou de reformular sua pergunta com uma ilustração matemática. Mas isso não diz ao OP como tornar o RNG mais divertido.
precisa saber é o seguinte
1

Eu acho que já existem algumas respostas legais dadas acima, mas sugeriria uma abordagem diferente.

Quando o jogador faz um acerto crítico, você está dando a ele uma pequena recompensa para atrair mais jogadas. Mais ou menos como um viciado em jogo permanecerá na mesa de pôquer por "apenas um pouco mais" depois de ganhar uma mão. Quando o inimigo é atingido por um crítico, pode não estar aumentando a experiência do jogo, mas apenas se sentir injusto, especialmente se foi isso que os fez perder a luta.

Assim, minha sugestão seria apenas manter os critérios para o jogador e não usá-los para os inimigos. Afinal, o jogador é um herói e deve ser favorecido pelos próprios deuses para alcançar a grandeza :)

Mikael Högström
fonte
0

Aqui estão técnicas aleatórias, mas não completamente aleatórias que eu uso.

1) Shuffle bag. Coloque todos os resultados válidos em uma bolsa, escolha um aleatoriamente e remova-o da bolsa. Repita até que a bolsa esteja vazia e encha novamente. Para adicionar aleatoriamente, reabasteça a bolsa quando houver apenas X itens restantes.

2) porcentagens progressivas. Primeira jogada X% de chance, se falhar, a segunda jogada é X + Y%, X + 2Y% etc. Redefina para X% com sucesso. Tanto o valor inicial quanto a progressão podem ser ajustados (mesmo não lineares).

3) recargas internas. Role X e chance, se for bem-sucedido, não role pelos próximos N segundos ou M tentativas ou o que for. Pode ser combinado com outros métodos. Para adicionar mais aleatoriedade, faça várias verificações de eventos com diferentes sugestões, ou seja, faça 2 jogadas a 25% com recargas internas de 3 e 7 segundos, em oposição a 1 rolagem com 50% com um 5s icd (não exatamente a mesma probabilidade, mas você pode calcular e combine se for importante).

4) Espaçamento pré-laminado. Em vez de verificar vs um por cento de cada evento, basta escolher quando os eventos acontecem. Por exemplo, "esse chefe critica todos os ataques 1d4 + 4". Funciona bem quando você quer que algo aconteça de forma relativamente consistente e um tanto aleatória, mas você não deseja que os eventos retornem. De alguma maneira, um caso especial dos métodos (2) mais (3). Novamente, para mais aleatoriedade, você pode ter 2 ou mais seqüências sobrepostas.

Jeff Gates
fonte