Eu projetei um jogo de RPG com vários tópicos de história, o que significa que, dependendo da escolha do usuário, algumas coisas podem ou não acontecer, você pode conseguir a mesma coisa de várias maneiras, o final pode ser diferente e assim por diante.
Eu implementei um mecanismo de decisão simples, que funciona bem, mas tem uma falha enorme, no momento em que você toma uma decisão, a história é influenciada imediatamente por sua decisão, o que significa que você não pode tomar uma decisão que o afetará no futuro distante . Isso ocorre porque a história se desenrola como um galho em uma estrutura em árvore e sempre precisa saber qual nó é o próximo. Sob o capô, as decisões são implementadas usando uma fila: cada nó conhece o nó anterior e o próximo (ou, se for um nó de decisão, aguarda a entrada do usuário para definir o próximo nó)
Vi muitos jogos com mecanismos de decisão complexos e me pergunto como eles são feitos. Existe um design especial que facilita as coisas? Alguém fez algo semelhante e pode me dar uma dica sobre como lidar com isso?
ATUALIZAÇÃO 1:
Um aspecto importante é conseguir, de alguma forma, manter o código da história independente, para que possa ser manipulado a partir de um arquivo externo. Eu pretendo usar isso como um mecanismo, portanto, mesmo as opções possíveis devem vir de um arquivo externo. O código deve ser totalmente abstrato.
Além disso, estou interessado em uma solução de design, uma boa maneira de fazê-lo, como os outros fazem ou fazem.
if (isTree)
ou manter uma isTree
var global, porque a história pode ou não ter essa escolha. Sabe o que eu quero dizer? É mais como um mecanismo de escolha que servirá várias histórias.
isTree=true
, mais tarde ele fará outra coisa, como combater um colega de escola, que em troca vai e corta sua árvore enquanto a árvore ainda é jovem porque ele levou um chute no traseiro. Agora, temos 2 variáveis que influenciam a existência da árvore isTree==true' and
didFightBrat == false`. Sabe o que eu quero dizer? E a cadeia pode continuar para sempre, a existência da árvore pode ser influenciada por um número desconhecido de fatores. Sabe o que eu quero dizer?