La semaine dernière, nous avons vu comment créer une histoire simple avec ink. Cependant, les fictions interactives étant en général non linéaires, il est possible qu’elles présentent plusieurs fois le même passage au cours d’une partie.

Aujourd’hui, nous allons voir comment faire varier le texte montré au joueur, afin de rendre les passages plus dynamiques.

Les listes de texte

Si le joueur est amené à visiter un passage plusieurs fois, il peut être intéressant de faire varier le texte pour moins l’ennuyer.

Il est possible de proposer plusieurs choix dans une liste, et ink fera le choix approprié en fonction du type de la liste. Une liste est écrite entre des accolades ({ et }) et chacun de ses éléments est séparé par une barre vertical (| — attention, ce n’est pas la lettre « L » !)

Voyons sans plus tarder les différents types de liste.

Les séquences

Quand ink rencontre une liste de base pour la première fois, il va afficher son premier élément ; lors de la deuxième fois, son deuxième élément et ainsi de suite jusqu’au dernier. Ensuite, ce sera toujours le dernier élément qui sera affiché. Par exemple :

Vous vous réveillez en sursaut.
-> attente

=== attente ===

{Le maudit téléphone sonne|Le téléphone sonne une deuxième fois|Le téléphone sonne encore|L'autre a raccroché. Vous pouvez enfin vous rendormir. -> END}.

+   [Attendre]
    Vous attendez dans le noir.
    -> attente
*   [Vous lever et jeter l'appareil par la fenêtre]
    Vous vous levez et vous emparez de l'appareil démoniaque. Enfin le calme.
    -> END

Ici, à chaque fois qu’on est dévié vers attente, le texte sera différent. La première fois, ce sera « Le maudit téléphone sonne », puis ce sera « Le téléphone sonne une deuxième fois » et ainsi de suite. Le dernier élément de la liste contient une déviation, donc si le joueur attend suffisamment longtemps, le jeu va arriver à une fin. Cela est une fonctionnalité intéressante des listes : elles peuvent faire varier du texte, mais aussi influer sur le cours de l’histoire.

(Et n’oubliez pas, le « plus » est là pour indiquer que l’on peut choisir l’option plusieurs fois. Si on avait mis une astérisque, il n’aurait pas été possible d’attendre plus d’une fois.)

Les cycles

Un cycle est une liste qui va afficher ses élément les uns à la suite des autres, mais ne s’arrêtera pas au dernier et recommencera au début. Pour signaler qu’une liste est un cycle, il faut utiliser le symbole &. Exemple :

Aujourd'hui, nous sommes le {&lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche}.

Notez bien l’esperluette après l’accolade ouvrante !

À usage unique

Les listes marquées d’un point d’exclamation ne seront parcourues qu’une seule fois. Ensuite, rien ne sera affiché. Cela revient donc au même qu’une séquence dont le dernier élément est vide.

Il y a un flash. {!Vous ne vous y attendiez pas et vous sursautez.|Vous vous y attendiez et vous ne réagissez donc pas.|Vous ne réagirez plus désormais.}

Les listes aléatoires

Les listes marquées par un tilde afficheront choisiront l’élément à afficher de manière totalement aléatoire.

Vous lancez la pièce. {~Pile|Face} !

Quelques caractéristiques des listes

Les listes peuvent contenir des éléments vides. Cela peut permettre de « compter » le nombre de fois qu’un passage est visité.

Vous continuez d'avancer à l'aveuglette.{|||| Vous tombez dans un précipice ! -> END}

Ici, il ne se passera rien les quatre premières fois, mais la cinquième fois sera fatale.

Il est également possible d’imbriquer des listes. Les règles suivies sont exactement les même, mais cela devient un peu plus difficile à lire.

Vous lancez {&le dé et obtenez {~1|2|3|4|5|6}|la pièce et tombez sur {~pile|face}} !

On lancera alternativement le dé et la pièce, et le résultat de chacun sera aléatoire.

Les conditions

Enfin, il est possible de n’afficher du texte que sous certaines conditions. La condition la plus simple à tester est si le joueur a visité ou non un nœud.

La syntaxe est très similaire à celle des listes. Un exemple sera peut-être plus parlant.

Vous essayez de vous remémorer le code secret. {lecture_memo: Ah oui, c'était 222-830.|Malheureusement, il vous échappe. Où aviez-vous mis votre mémo ?}

Ce qui suit l’accolade ouvrante est le nom d’un nœud suivi d’un deux-points. Ce qui est écrit après ne sera affiché que si le joueur a visité le nœud correspondant au cours de la partie (ici, s’il a lu sa note). Nous pouvons, si nous le souhaitons, ajouter une barre verticale suivi d’un autre texte, qui sera lui affiché si le nœud n’a pas été visité.

Il est bien sûr possible de faire varier selon d’autres conditions (argent du joueur, points de vie, inventaire…) mais il faudra pour cela voir la notion de variable, alors ce sera pour une prochaine fois.

Et comme pour les listes, il est possible d’imbriquer les conditions.

La prochaine fois

La prochaine fois, nous verrons comment faire varier les choix qui sont proposés au joueur. C’est très similaire à ce que nous avons vu dans cet article, alors ce ne sera pas bien compliqué !