Diseñé un juego de rol que tiene múltiples hilos de historia, lo que significa que, dependiendo de la elección del usuario, algunas cosas pueden suceder o no, puede lograr lo mismo de varias maneras, el final puede ser diferente, etc.
Implementé un motor de decisión simple, que funciona bien pero tiene un gran defecto, en el momento en que tomas una decisión, la historia está influenciada inmediatamente por tu decisión, lo que significa que no puedes tomar una decisión que te afectará en el futuro lejano. . Esto se debe a que la historia se desarrolla como una rama en una estructura de árbol, y siempre necesita saber qué nodo es el siguiente. Bajo el capó, las decisiones se implementan utilizando una cola: cada nodo conoce el nodo anterior y el siguiente (o si es un nodo de decisión, espera la entrada del usuario para establecer el siguiente nodo)
Vi muchos juegos que tienen motores de decisión complejos, y me pregunto, ¿cómo se hacen? ¿Existe un diseño especial que haga las cosas realmente fáciles? ¿Alguien hizo algo similar y me puede dar una pista sobre cómo abordar esto?
ACTUALIZACIÓN 1:
Un aspecto importante es lograr mantener de alguna manera el código de la historia independiente, para que pueda ser manipulado desde un archivo externo. Planeo usar esto como un motor, por lo que incluso las posibles opciones tienen que venir de un archivo externo. El código tiene que ser totalmente abstracto.
Además, estoy interesado en una solución de diseño, una buena manera de hacerlo, cómo lo hacen o lo hacen otros.
if (isTree)
o mantener una isTree
var global porque la historia puede tener o no esa opción. ¿Ya tu sabes? Es más como un motor de elección que servirá múltiples historias.
isTree=true
, sin embargo, más tarde, hace algo más, como pelear contra un compañero de escuela, quien a cambio va y corta su árbol mientras el árbol aún es joven. porque le patearon el trasero. Ahora, tenemos 2 variables que influyen en la existencia del árbol isTree==true' and
didFightBrat == false`. ¿Ya tu sabes? Y la cadena puede continuar para siempre, la existencia del árbol puede verse influenciada por un número desconocido de factores. ¿Ya tu sabes?