Dans cet article, nous allons voir comment rendre un long projet écrit en ink plus clair.

Rien de bien excitant, donc, mais très pratique à savoir !

La colle

Quand nous écrivons du texte avec ink, les passages à la ligne se traduiront par de nouveaux paragraphes en jeu.

Ceci est le premier paragraphe.

Voici le second.
Et le troisième, même s'il n'y a pas de ligne vide avant.

Il est également possible de dévier depuis n’importe où. Il est donc possible de passer à un autre nœud au beau milieu d’une phrase.

Par exemple :

Bonjour, je -> deux

=== deux ===

tiens sur une -> trois

=== trois ===

seule ligne !
-> END

s’affichera comme ceci en jeu :

Bonjour, je tiens sur une seule ligne !

Toutes les déviations sont transparentes, ce qui fait que tout tient sur une seule ligne, comme si nous avions véritablement tout écrit sur la même ligne. Nous aurions obtenu plusieurs paragraphes si nous étions passés à la ligne avant l’une des flèches de déviation.

Il est cependant possible de forcer cet affichage en un seul paragraphe : la colle (« glue » en anglais). Pour mettre un peu de colle, rien de plus simple :

Bonjour, je <>
-> deux

=== deux ===

tiens sur une
-> trois

=== trois ===

<> seule ligne !
-> END

Notez que les flèches de déviations tiennent bien sur leur propres lignes ; pourtant, nous obtenons le même résultat qu’il y a un instant. En effet, le texte <> indique à ink de rassembler les textes de part et d’autre en un seul paragraphe. On peut aussi bien mettre de la colle à la fin de la première partie, ou au début de la seconde. Il est possible d’en mettre n’importe où, pas forcément avant une déviation. Et une fois que la colle est appliquée, impossible de l’enlever : s’il y a un <> à la fin d’une ligne, alors la ligne suivante n’aura aucun moyen de l’annuler.

Mais à quoi cela peut-il bien servir ?

Quand le texte devient compliqué, avec beaucoup de conditions à tester ou de listes dans une phrase par exemple, on peut rendre son texte plus clair en mettant chaque condition ou liste sur sa propre ligne et utiliser de la colle pour qu’elles soient remises ensemble à la lecture.

Une autre utilité peut être si une phrase ne commence pas de la même façon en fonction du chemin pour y parvenir.

Un appel au secours à l'extérieur. Pas de temps à perdre !

*   [Sortir.]
    J
    -> sortie
*   [D'abord chercher mon téléphone.]
    J'ai rapidement cherché mon téléphone.
    Je ne l'ai pas trouvé, alors j
    -> sortie

=== sortie ===

// On aura ou pas une majuscule en fonction de l'option choisie plus haut.
<>e me suis précipitée dehors.
-> END

De manière générale, il est possible d’obtenir le même effet en ne sautant pas de ligne avant les flèches ou en utilisant des conditions sur les nœuds visités, mais je trouve la colle plus lisible. À vous d’utiliser ce que vous préférez.

Écrire son histoire dans plusieurs fichiers

Si l’histoire devient imposante, il est possible de la séparer en plusieurs morceaux. Il nous faudra donc créer un fichier .ink par partie, avec un des fichiers considéré comme le principal (on peut choisir celui qu’on veut, mais il ne doit y en avoir qu’un seul).

Imaginons que nous ayons l’arborescence de fichiers suivante :

mon-projet
	chapitre1
		section1.ink
		section2.ink
	histoire.ink
	prologue.ink

Le fichier principal sera histoire.ink. Ce fichier peut contenir des nœuds et du texte, mais le mieux est de l’utiliser seulement pour toutes les initialisations requises par l’histoire : inclusions des fichiers, variables, fonctions…

Pour inclure des fichiers, il faut utiliser le mot INCLUDE suivi du chemin du fichier à inclure (ce qui est simplement son nom s’il se trouve au même endroit que le fichier principal).

Il n’est pas possible d’utiliser INCLUDE dans des fichiers eux-mêmes inclus ! C’est pour cela que le fichier faisant les inclusions est considéré comme le principal ; c’est lui qui rassemble les autres, et c’est lui que vous ouvrirez.

Pour notre structure, notre fichier histoire.ink pourrait ressembler à cela :

INCLUDE prologue.ink
INCLUDE chapitre1/section1.ink
INCLUDE chapitre1/section2.ink

// On commence l'histoire.
-> il_etait_une fois

Il ne faut pas oublier de dévier vers le début de l’histoire. Ici, nous aurons un nœud appelé il_etait_une_fois quelque part dans l’une des inclusions, n’importe laquelle. En effet, ink ne sépare pas les nœuds des différentes parties : tous les nœuds de tous les fichiers sont accessibles depuis n’importe quel endroit. À vous de vous débrouiller pour qu’ils aient chacun un nom unique et ce, dans l’histoire au complet.

Les mailles

Comme nous le savons bien, un projet ink est structuré en nœuds. Il se trouve que le langage permet d’avoir une organisation plus fine.

Considérons ceci :

=== jour_1 ===

= atterrissage

// …

= sortie

// …

=== nuit_1

= coucher

// …

= cauchemar

// …

Les nœuds sont indiqués par les lignes commençant par trois signes « égal ». La nouveauté est les lignes commençant par un seul signe « égal ». On appelle cela des stitches, littéralement des « points » (en couture) ou des « mailles » (en tricot).

Comme tous les autres termes ink, il n’y a pas de terme officiel en français. Vous pouvez choisir « stitch », « point » ou « maille », ou les utiliser indifféremment !

On peut considérer les mailles comme des subdivisions de nœuds. Si l’on dévie vers un nœud avec -> jour_1 (comme on l’a déjà fait), ink affichera le texte sous le nœud si celui-ci n’est pas suivi directement par une maille, sinon il déviera automatiquement vers la première maille du nœud (auquel cas c’est le texte sous la maille qui sera montré).

Pour dévier vers une maille, la syntaxe est la même, mais il faut indiquer l’« adresse » de la maille, de la forme -> nœud.maille ; plus concrètement, cela donnerait -> nuit_1.cauchemar par exemple. Le nœud peut-être omis si l’on dévie vers une maille contenue dans le nœud courant : -> cauchemar suffit si on écrit cela dans le nœud nuit_1 (ou dans l’une de ses mailles).

Ce système d’adresse permet d’avoir des mailles ayant le même nom, mais contenues dans des nœuds différents. On pourrait donc avoir une maille cauchemar dans le nœud nuit_1 et une autre maille cauchemar dans un autre nœud appelé nuit_2. N’oubliez pas de spécifier l’adresse d’une maille au complet lorsque vous voulez y accéder depuis un autre nœud. Enfin, une maille et un nœud ne peuvent pas partager le même nom.

Conclusion

Nous voilà arrivé à la fin. Vous possédez maintenant toutes les ressources nécessaires pour avoir un projet bien rangé.

La prochaine fois, nous verrons une fonctionnalité très puissante et très pratique d’ink. Ce sera plus intéressant !