Ho progettato un gioco di ruolo con più thread della trama, il che significa che, a seconda della scelta dell'utente, alcune cose possono o meno accadere, puoi ottenere la stessa cosa in diversi modi, il finale può essere diverso e così via.
Ho implementato un semplice motore decisionale, che funziona bene ma ha un enorme difetto, nel momento in cui prendi una decisione la storia viene immediatamente influenzata dalla tua decisione, il che significa che non puoi prendere una decisione che ti influenzerà nel lontano futuro . Questo perché la storia si svolge come un ramo in una struttura ad albero e deve sempre sapere quale nodo è il prossimo. Sotto il cofano, le decisioni vengono implementate usando una coda: ogni nodo conosce il nodo precedente e il nodo successivo (o se è un nodo decisionale attende che l'input dell'utente imposti il nodo successivo)
Ho visto molti giochi con complessi motori decisionali e mi chiedo come sono fatti? Esiste un design speciale che rende le cose davvero facili? Qualcuno ha fatto qualcosa di simile e può darmi un suggerimento su come affrontare questo?
AGGIORNAMENTO 1:
Un aspetto importante è riuscire a mantenere in qualche modo il codice della storia indipendente, in modo che possa essere manipolato da un file esterno. Ho intenzione di utilizzare questo come motore, quindi anche le possibili scelte devono provenire da un file esterno. Il codice deve essere totalmente astratto.
Inoltre, sono interessato a una soluzione di design, un bel modo di farlo, come gli altri lo fanno o lo hanno fatto.
if (isTree)
o mantenere un isTree
var globale perché la storia potrebbe o meno avere quella scelta. Sai cosa intendo? È più come un motore di scelta che servirà più storie.
isTree=true
, in seguito, fa qualcos'altro, come, combattendo un compagno di scuola, che in cambio va e taglia il suo albero mentre l'albero è ancora giovane perché si è preso a calci nel culo. Ora, abbiamo 2 variabili che influenzano l'esistenza dell'albero isTree==true' and
didFightBrat == false`. Sai cosa intendo? E la catena può continuare all'infinito, l'esistenza dell'albero può essere influenzata da un numero sconosciuto di fattori. Sai cosa intendo?