Cela dépend exactement de la façon dont votre système est assemblé. S'il s'agit d'une simple ramification, il suffit de la traiter comme une histoire linéaire avec des indicateurs pour indiquer exactement le chemin sur lequel vous vous trouvez (ou si vous préférez visualiser de cette façon, une arborescence binaire où chaque nœud est un point de choix d'histoire et le courant place dans l'histoire est un pointeur sur l'un des nœuds). Une histoire un peu plus complexe avec plusieurs chemins qui peuvent se croiser pourrait être modélisée sous forme de graphique acyclique dirigé en utilisant la même technique.
Que se passe-t-il si vous avez plusieurs arcs d'histoire en cours simultanément, comme un système de quêtes "monde ouvert" typique où le joueur peut avoir plusieurs quêtes à la fois? Si les quêtes n'interagissent pas entre elles, vous pouvez simplement traiter chacune d'elles comme son propre mini-arbre linéaire ou ramifié. Et s'ils se modifient mutuellement? Voici mon option préférée:
Un graphe orienté modifié, où chaque nœud représente une quête. Ici, vous avez deux types de flèches de base entre les nœuds: "activer" et "désactiver". De cette façon, terminer une quête peut ouvrir de nouvelles quêtes et invalider également les anciennes quêtes qui n'ont plus de sens (par exemple, si vous recevez un ensemble de quêtes, chacune étant destinée à aider un côté différent de certaines guerres). factions, terminer une quête peut masquer automatiquement les autres quêtes si vous voulez forcer le joueur à choisir un côté et à le respecter). Vous aurez également besoin de stocker dans chaque nœud son statut actuel: actif (actuellement visible par le joueur), inactif (n'a jamais été visible par le joueur), terminé (le joueur a terminé la quête), échoué (le joueur a vu la quête mais il a ensuite été désactivé, par exemple par l'achèvement d'une quête concurrente distincte).
Note amusante: chaque système qui fonctionne pour une quête / un scénario, fonctionne également pour un arbre de conversation individuel avec un PNJ, et vice versa. Donc, si vous trouvez un système de conversation adapté à votre jeu, demandez-vous s'il vaut la peine de le modifier également pour le système d'histoire.