Voici un deuxième opus dans la série des notes de lecture ! Aujourd’hui, on parle d’un article un peu particulier, qui raconte la genèse de jeux, mais surtout donne des techniques intéressantes de création.

En 2000, J. Robinson Wheeler a écrit « Make IF Fast », un texte sur son site dont nous allons parler aujourd’hui. Wheeler est l’auteur de quelques jeux qui ont eu un certain succès, comme First Things First ou Being Andrew Plotkin (comme Dans la peau de John Malkovitch, mais pour la fiction interactive anglophone, avec les blagues et private jokes qui vont avec) : ces deux jeux ont remportés des XYZZY Awards, les Oscars de la fiction interactive anglophone. Dans ce texte, Wheeler explique comment il est parvenu à créer des jeux en Inform en un temps relativement court : 20 jours pour Being Andrew Plotkin, 10 jours pour Centipede, 5 jours pour The Tale of the Kissing Bandit. Je vais tenter de désosser ce texte et de faire ressortir les principes que j’ai trouvé intéressants, et que j’applique moi-même pour l’écriture de mes jeux.

Écrivez rapidement

Le premier conseil est d’être capable d’écrire rapidement. Il prend l’exemple d’une éponge qui peut être mouillée ou sèche dans un jeu à parser, et dit que des objets basiques comme ça doivent vous prendre une minute, pas plus. Et pour cela, il recommande de faire des Speed-IF pour s’entraîner. Les Speed-IF, appelées il fut un temps en français « Rapid’Fictions », sont des sortes de jams (pour reprendre le vocabulaire contemporain, comme sur itch.io) où le temps est limité. TRÈS limité : en général, vous avez 2 heures ! En 2 heures, vous n’avez pas le temps d’hésiter, et vous apprenez à coder des objets basiques très rapidement ; c’est un très bon entraînement si vous commencez à savoir pas mal programmer, ça vous permet de consolider ce que vous savez et de pouvoir laisser de la place et du cerveau pour des parties plus compliquées. (Je ne recommande pas faire une Speed-IF en Inform si vous commencez, ça risque d’être frustrant !)

Si vous ne faites pas d’Inform, je pense qu’une généralisation de ce concept est de vous entraîner à écrire vite, sans hésiter, et en tapant rapidement, sans trop vous laisser ralentir par la relecture ou des hésitations. C’est une des raisons notamment pour laquelle le NaNoWriMo a autant de succès : forcez-vous à écrire un roman en un mois, il n’y a pas mieux pour vous apprendre à foncer et à écrire vos idées sans trop réfléchir ou vous critiquer !

Personnellement c’est un peu ce que j’ai essayé de faire avec « Les Aventures d’Un Soir », mon concept où je crée avec les spectateurs un jeu d’aventure sur Twitch en une soirée. Vu la quantité de choses à faire et à écrire, il faut aller très vite, tant au niveau du code que du texte ; pas de place pour l’hésitation ! Les jeux finaux sont relativement bien, en tout cas j’en suis plutôt content ; ça n’est pas de la grande littérature, mais ça montre qu’on peut créer un jeu vidéo en quelques heures, et c’est excellent pour rester affûté et continuer à se poser des défis !

On a déjà organisé des Speed-IF en français, et c’était très cool ! On a même une page spéciale sur le site à ce sujet. Cependant, on a perdu l’habitude d’en organiser… malgré l’enthousiasme des gens pour le format, d’ailleurs ! Manifestez-vous, parlez-en sur le forum ou sur le Discord, et on ne sait jamais, ça pourrait revenir…

Recyclez

Un deuxième conseil, qui apparaît au détour d’une phrase, est de vous servir dans le code de vos jeux précédents pour aller plus vite. Vous avez sans doute implanté des verbes chouettes, ou un objet avec un comportement intéressant, ou un script avec une fonctionnalité nouvelle, ou un effet que vous voulez réutiliser : allez vous servir ! Avec un peu d’habitude, vous identifierez les parties intéressantes de votre code rapidement, et elles deviendront plus automatiques : ça peut vous permettre de progresser, tout en vous construisant un petit répertoire, des petites habitudes, une petite « patte personnelle » qui sera partagée par tous vos jeux. Et vous pouvez aussi vous servir dans le code des autres ! Je sais que j’ai personnellement eu des idées intéressantes en regardant les jeux de JB (dont le code source est tout le temps disponible) ; mes codes sources sont également disponibles en ligne, pour la même raison : si ça peut servir à quelqu’un ou donner des idées… Les forums (comme le nôtre !) et autres sites de questions sont aussi des mines à scripts et codes intéressants, alors n’hésitez pas à aller vous y promener !

Une fois que vous avez identifié un bout de code utile, que vous avez tendance à réutiliser souvent, et sur lequel vous avez travaillé pour qu’il soit plus puissant ou plus flexible et s’applique à plus de jeux… C’est peut-être l’heure d’en faire profiter la communauté ! La communauté des fictions interactives est historiquement basée sur le partage ; beaucoup de gens partagent leur travail gratuitement avec le reste de la communauté, et tout le monde est content de profiter de ce travail. Alors, si vous pensez avoir un truc cool, faites-en une extension, un script, un tutoriel, une vidéo, n’importe — vous aiderez sans doute quelqu’un !

Écrivez la solution avant le jeu

Un troisième conseil, un des plus importants et que j’utilise systématiquement : faites une fausse transcription ! Une transcription est un fichier texte avec tout le texte qui s’est affiché à l’écran pendant votre partie ; une fausse transcription, ça veut simplement dire écrire ce à quoi une partie pourrait ressembler : vous écrivez la transcription avant le jeu ! J. Robinson Wheeler recommande de se focaliser sur une transcription minimale, c’est-à-dire de se concentrer sur une ligne droite du début à la fin de son jeu, sans passer par les solutions intermédiaires ou autres. L’idée derrière est celle du minimum viable product, c’est-à-dire : « mieux vaut avoir une version préliminaire, un premier jet, que l’on peut améliorer et polir, plutôt que démarrer en passant énormément de temps à faire les premières scènes parfaitement puis baisser les bras devant l’ampleur de la tâche à accomplir. »

Plutôt que de passer plein de temps à faire une belle carrosserie et se rendre compte qu’on ne sait pas fabriquer un moteur, commencez par faire un truc qui roule, et voyez après.

Personnellement j’ai tendance à écrire aussi toutes les descriptions d’objet et les réponses particulières (c’est-à-dire celles qui ne sont pas juste celles de la bibliothèque Inform), et à faire une liste de noms se rapportant à l’objet dont je suis en train de parler, pour ne pas oublier de rajouter des synonymes. Voici par exemple le genre de trucs que j’ai écrit pour Le Kébab hanté :

>x bayram / x gérant / x patron / x gérant/patron du kebab / x gérant/patron du grec / x gérant/patron du restaurant / x gérant/patron de l'egee / x victime / x turc / x grec
Bayram est le patron de "L'Égée", le restaurant grec / kebab devant lequel vous vous trouvez. Il porte un blouson, visiblement de marque, et peut-être pas assez chaud, car il s'agite et tremble de temps à autre, malgré son écharpe. Il semble avoir une trentaine d'années, mais sa moustache semble déjà avoir les premiers cheveux blancs - peut-être à cause de [ce qui se passe] dans son restaurant... En tout cas, vous a-t-il dit au téléphone, il veut que le problème soit réglé au plus vite, pour qu'il puisse ouvrir ce soir de [réveillon].

>x restaurant / x devanture / x panneau / x vitre / x kebab / x restau / x restau grec
"L'Égée", proclame le grand panneau aux couleurs vives au-dessus de l'entrée du restaurant. Le nom est flanqué de deux photos de kebabs, des gros pains pita remplis de viande, de salade et de tomate, vision sans doute idéalisée du produit fini que l'on vend ici. Mais n'allez pas faire comme si vous n'en mangiez jamais ; au contraire, comme tant d'autres de votre promo, la tentation d'un gros sandwich avec des frites, qui cale bien pour pas cher, vous tire de votre appartement à peu près une fois par semaine. Cela étant, "L'Égée" est un peu excentrée, et vous ne saviez même pas qu'il y avait un kebab dans cette partie de la ville. Les commentaires que vous avez vues sur votre minitel de poche [pub http://kebab-frites.com/ ici ?] disent que les sauces sont industrielles mais les quantités généreuses.

La fausse transcription a plusieurs avantages :

  • Elle vous permet d’avoir une bonne idée de ce à quoi va ressembler votre jeu (et vous fait vous poser des questions de game design relativement tôt).
  • Elle vous permet de gagner du temps pendant la phase de code (vu qu’il suffit de faire un copier-coller pour les textes).
  • Et surtout, elle sépare la phase de code et la phase d’écriture. Comme le dit Wheeler dans son texte (dans la section sur Being Andrew Plotkin), pendant que vous écrivez la fausse transcription, vous êtes en mode « écriture » et vous pensez comme un écrivain, et votre prose est ainsi plus fluide, plus cohérente, et vous pouvez y consacrer plus d’efforts ; pendant la phase de code, vous pensez comme un programmeur, et vous vous attardez sur les mécanismes du jeu. L’alternative (que l’on fait très souvent quand même) est de faire les deux en même temps, d’alterner en permanence entre le code et l’écriture, ce qui casse le flow pour les deux tâches.

Make IF Fast!

Le reste de l’article de Wheeler est relativement intéressant, mais quelque peu technique. Il alterne entre des phases où il raconte dans quel ordre il a implanté les différentes idées, et comment il a eu ses idées, et des passages un peu techniques sur la façon dont ses jeux fonctionnent. Le texte se lit globalement bien, et je l’ai déjà lu des dizaines de fois ; mais pour moi, ce sont ces trois grandes idées qui ont été les plus utiles dans mon parcours d’auteur de fictions interactives. J’espère qu’elles vous feront réfléchir et vous stimuleront ! N’hésitez pas à en discuter dans les commentaires, ou parler de vos propres méthodes pour créer un jeu rapidement !