C’est la rentrée ! Contents de vous retrouver, et soyez prêts pour une année de plus d’articles sur la fiction interactive !

Dans l’article d’aujourd’hui, je voudrais évoquer un effet intéressant, qui apparaît dans plusieurs fictions interactives à analyseur syntaxique. Cet effet n’a pas vraiment de nom officiel, en français comme en anglais, mais je l’aime beaucoup et je trouve qu’il peut être très intéressant s’il est judicieusement utilisé.

La première fois que j’ai rencontré cet effet, c’était dans Filaments — qui est un jeu excellent, avec beaucoup de bonnes idées et une atmosphère vraiment chouette — pas étonnant que son créateur soit maintenant une figure célèbre du jeu vidéo indépendant français. Posons la scène : nous sommes chez le disquaire « Le Cinquième Disque », rue Mouffetard, à Paris ; l’héroïne, Margot, est accompagnée de son ami un peu lourd, Jonas. On essaie de parler au vendeur :

Jonas tire sur la manche du vendeur : "Yo, Boris. C'est soirée disco ce soir?".
Boris le foudroie d'un regard injecté de sang : "Quelle plaisanterie amusante. Que puis-je faire pour vous?"
D'un air qui feint la profondeur d'esprit, Jonas poursuit : "Notre ami, qui répond au nom de...D-J-S-H-A-D-O-W, (hé oui), nous a dit qu'un certain "Boris" ici présent aurait un enregistrement unique de 1453 d'un certain Dan The LadyBird. Ah, et laissez moi vous présenter mon assistante. Assistante ! Viens par ici."
Oula. Cela va se payer dans le sang.

>

Alors moi, bien entendu, je veux « insulter Jonas », alors, i…
>e
n…
>et
s…
>etr
u…
>etra
l…
>etran
t…
>etrang
e…
>etrangl
Hein ?! Ça y est, j’ai compris ! Je finis par taper au hasard sur le clavier :

>etrangler jonas
Vous passez nerveusement vos mains autour du coup de Jonas et vous le secouez comme un prunier. Ca soulage !

Alors bien entendu, l’action n’est pas réellement faite ; Margot est en train de rêver, mais se reprend et traite Jonas d’imbécile. Cet effet très chouette est utilisé pour donner les pensées et les envies (de meurtre, ici) du personnage que l’on contrôle ; c’est un moment très drôle, et le jeu avec l’interface donne plus de poids à la blague.

On retrouve le même effet dans plusieurs autres jeux – en fait, j’ai fait une liste sur l’IFDB (la base de donnée des fictions interactives) avec les jeux qui utilisent cet effet. Apparemment, le premier à l’avoir utilisé est Adam Cadre, auteur majeur de l’époque 1995-2005, dans Shrapnel, un jeu assez particulier et expérimental, qui vous fait mourir un nombre conséquent de fois pour aller au bout : cet effet est utilisé sur l’écran final (« Vous êtes mort ! »), et quoi que le joueur tape, c’est « restart » (recommencer) qui s’affiche et on revient au début du jeu. Depuis, l’effet a été utilisé de plusieurs façons : dans des séquences de rêve, dans des sortes de « cinématiques », ou dans des séquences où le personnage n’a plus le contrôle de ses mouvements ; par exemple, il est utilisé dans Sourire de bois, de Nathanaël Marion (notre Natrium729 préféré), un jeu où l’on incarne une marionnette de bois !

Techniquement, la mise en place de ce genre d’effets est relativement simple, bien que fastidieuse. L’invite de commandes (« > ») qui est affiché n’en est en fait pas un : c’est simplement le caractère >, après lequel on a fait une pause dans le jeu, et le joueur a l’impression d’avoir la main car c’est la convention usuelle. Un petit bout de code vaut mieux qu’un long discours : voici ce qui se trouve dans le code (Inform 6) de Filaments :

print ">";
attend();
print "e";
attend();
print "t";
attend();
print "r";
attend();
print "a";
attend();
print "n";
attend();
print "g";
attend();
print "l";
attend();
print "e";
attend();
print "r";

etc. La fonction attend() est une fonction faite maison permettant d’attendre que l’on appuie sur une touche.

En fait, il y a plus simple : utilisez mon extension EffetsDeTexte.h, qui contient tout un tas de fonctions Inform 6 pour faire des effets chouettes sur votre texte ! Cet effet là peut-être utilisé avec la fonction « LettreParLettre ». Donc ici, vous auriez juste besoin d’écrire « LettreParLettre(« etrangler jonas ») ». Ne me remerciez pas !
Et avec Inform 7, l’exemple The High Note de l’extension Basic Screen Effects vous mettre sur la voie. (Vous pouvez également voir la source de Sourire de bois, qui montre une façon de faire avec un tableau contenant les commandes simulées).

Enfin, mentionnons un effet un peu similaire, qu’il est possible de faire sur Vorple, et que sur Vorple ! Vorple est un outil qui permet d’étendre les fonctionnalités de votre jeu, notamment avec du code JavaScript ; c’est le futur de la FI à parser, et il faudrait vraiment qu’on fasse un tuto. (Ça va venir très bientôt !) Parmi les fonctionnalités nouvelles apportées par Vorple, certaines permettent de contrôler l’invite de commande directement, et faire un effet encore plus étrange. Regardez dans l’exemple The Mandchurian Candidate :

Vous voyez la voiture du président s’approcher.
>

Là, le jeu laisse le joueur taper une commande, qui s’affiche comme d’habitude, mais quelle que soit la commande, une fois qu’on a appuyé sur Entrée, voici ce qui se passe ensuite :

>tirer
Sans aucune hésitation, vous visez et appuyez sur la gâchette…

Le joueur peut taper une commande, mais celle-ci est remplacée automatiquement par le jeu par une commande prédéfinie – et le jeu se comporte exactement comme si c’est cette commande qui avait été tapée ! Un effet pour le moins surprenant, et qui fait vraiment douter le joueur, qui ne s’aperçoit pas forcément tout de suite de ce qui vient de se passer !

Je n’ai pas encore vu cet effet dans un jeu, mais j’ai hâte de voir comment il peut être utilisé et l’effet que ça peut créer ! À vous, donc !