Le Récit Interactif- Retour vers les actions

Conception, écriture et enjeux.

Les actions de base

Try

Il est possible de lancer une action automatiquement après que le lecteur ait décidé d'interagir grâce à la commande "Try".

Try agit en déclencheur d'action dans le récit, c'est comme si le lecteur écrivait lui-même une commande.

Exemple :

Soit une salle avec une table et une bague posée sur la table. L'énonciation se fait à la troisième personne du singulier.

"Préparation de la séance 9" by Gaétan

Include French by Eric Forgeot.
Use French 3PSPr Language.

When play begins:
	say "Jérémie fait les cent pas."

La salle is a room. la table is a supporter in la salle. une bague is an object on la table.
The initial appearance of la table is "Une table occcupe la plus grande partie de la salle.".

Je décide de créer une exception pour faire en sorte qu'en examinant la bague, le personnage la prenne automatiquement avec lui.

Instead of examining une bague:
	say "Il hésite un instant. Puis il s'approche.";
	try taking une bague;
	say "Il porte la bague à ses yeux, c'est un très beau bijou. Il la range dans sa poche.";

Que se passe-t-il ? Quand le lecteur essaye d'examiner la bague, au lieu de l'examiner, un premier message s'affiche, puis l'action "take la bague" est lancée (comme si le lecteur écrivait lui-même la commande), un message me rend compte du succès ou non du try, puis le dernier message "Vous portez..." s'inscrit à l'écran.

Voilà ce qui apparait sur l'écran du côté de la lecture :

try

Try silently

Dans notre exemple, le fait que le mot "d'accord apparaisse n'est pas très élégant. Il montre que l'action s'est bien déroulé. Nous pourrions ajouter une phrase de type "Est-ce que vous prenez la bague?" pour atténuer un peu l'effet mais l'idéal consisterait soit à changer le résultat "D'accord" soit à simplement supprimer ce message.

Il existe justement une façon très simple de ne pas faire apparaitre le résultat d'un try :"try silently". Ainsi il me suffit de rajouter un mot à mon code:

Instead of examining une bague:
	say "Il hésite un instant. Puis il s'approche.";
	try silently taking une bague;
	say "Il porte la bague à ses yeux, c'est un très beau bijou. Il la range dans sa poche.";

La phrase "D'accord" disparait.

Il est recommandé de rajouter un message qui explicite que la bague est bien prise et rangée dans l'inventaire : "Vous prenez la bague et la portez à vos yeux... vous la rangez dans votre poche, voilà qui ne fera pas de mal à votre inventaire."

Exercice

Le personnage est dans pièce avec une porte fermée à clé dont la "matching key" est posé sur la table.

Quand le lecteur essaye d'"ouvrir la porte", s'il porte la clé, il dévérouille la porte avec la clé automatiquement. Un message explique que le personnage se sert de la clé qu'il a déjà prise.

Sinon, il prend la clé : un message l'explique mais Inform ne rend pas compte de l'action. Une fois qu'il a pris la clé, la porte est automatiquement dévérouillée.'

Mieux maitriser ses actions

Des règles qui s'appliquent à plusieurs actions

Il est possible de déclarer des règles pour plusieurs actions en même temps, comme par exemple:

Instead of examining, searching or looking under la table:
	say "La table est en bois.";

Pour deux actions, il suffit d'ajouter "or", pour plus il faut les séparer par des virgules puis finir par "or"

Répéter des actions

Nous avons déjà pu voir avec les scènes qu'il était possible de faire en sorte qu'une action varie selon le nombre de fois où l'on a fait appel à une commande.

Plusieurs syntaxes sont possibles ou at least twice peuvent faire en sorte que la situation change à un certain moment ou après un certain nombre d'interaction.

A noter que si vous choisissez de faire référence à un moment qui se situe à plus de 12 actions, il faut écrire le nombre en chiffre suivi de "th".

Instead of examining le verre for the third time: 
	say "Bon ça suffit maintenant, ça serait bien que vous alliez dehors".

Instead of doing something to...

Parfois, il est pratique de pouvoir limiter une interaction avec un objet à seulement certains verbes. C'est ce que permet instead of doing something to:

instead of doing something to le verre:
	say "Vous ne pouvez pas vraiment faire quelque chose avec le verre."

Il est ensuite très facile de liste les actions qu'on permet avec other than:

instead of doing something other than examining le verre:
	say "Vous ne pouvez pas vraiment faire quelque chose avec le verre à part l'examiner."

Il est possible de permettre plusieurs actions en rajoutant "or" ou "," [...] + "or" :

instead of doing something other than examining or taking le verre:
	say "Vous ne pouvez pas vraiment faire quelque chose avec le verre à part l'examiner ou le prendre."
		

Liste des actions

Première partie de la liste :

liste des actions

Suite des actions :

liste des actions

Cette liste est tirée du livre Creating Interactive Fiction with Inform 7 écrit par Aaron Reed.

Et en français

liste des actions en français

Ce document est extrait de l'introduction aux IF écrit en anglais par Emily Short et traduit par Eric Forgeot : lire le document .

Créer une action - suite

Récapitulatif des actions

Pour l'instant nous avons vu que before permet d'établir un ordre qui précède l'accomplissement d'une action, instead qui vient juste après l'empêche et after qui survient après la réalisation de l'action.

Before, instead et after correspondent à des exceptions qui peuvent agrémenter les commandes en les faisant varier selon des situations particulières. Mais ces dernières ont leur propre logique et règles de fonctionnement dans des contextes standarts. Une action se déroule normalement en trois étapes successives :

  • check : la vérification
  • carry out : l'accomplissement'
  • report : le compte rendu

Nous allons expliquer ces étapes en nous appuyant sur un exemple à partir de la création d'une nouvelle action.

Déclarer une nouvelle action

Pour rappel, pour créer une nouvelle action, il faut commencer par la déclarer (voir semaine 8).

Smoking is an action applying to one thing.

Il ne faut pas oublier d'ensuite ajouter un ou plusieurs synonymes, notamment pour le français.

Understand "light up [something]" as smoking.Understand "fumer [something]" as smoking.

Check

Mais comment faire en sorte que cette action n'opère que quand certains paramètres sont remplis?

Dans notre exemple, nous imaginons que le personnage ne peut fumer que des cigarettes. Comment nous y prendre pour vérifier qu'il fume des cigarettes et empêcher l'action d'avoir lieu s'il essaye de fumer la table?

"Check" (vérifier) permet justement de voir l'action peut s'accomplir. Par exemple :

A check smoking rule:
	if les cigarettes are not carried:
		say "Il faudrait une cigarette." instead.

Ainsi, pour l'instant le personnage ne peut fumer que s'il porte des cigarettes.

Nous utilisons ainsi A check smoking rule: comme première phrase puis nous rajoutons (attention de ne pas l'oublier) instead tout à la fin de notre condition. Un message apparait s'il n'a pas de cigarette au lieu de lancer l'action.

Dans notre exemple, nous avons tout de même un problème, le personnage peut fumer n'importe quel objet à partir du moment où il porte des cigarettes.

Carry out

A ce stade l'action a été réalisée avec succès. Si nous avions crée l'action de "photographier" par exemple nous pourrions enlever un film de l'inventaire, voire une photo de la bobine de l'appareil... Ici, nous pouvons décider qu'une cigarette est consummée.

Bien sûr, il n'est pas obligatoire de créer un "carry out". Les "report" et "check" ne le sont pas non plus, mais sans "report", aucun message ne s'affichera au final et sans "check" il est difficile de ne pas limiter l'action.

Smoking is an action applying to visible thing.
Understand "light up [something]" as smoking.
Understand "fumer [something]" as smoking.
A check smoking rule:
	if cigarette is not carried:
		say "Il faudrait une cigarette." instead.

A carry out smoking rule:
	remove cigarette from play;	

Report

Enfin, le check permet de "faire un rapport" (//report) sur le déroulement de l'action. Nous pouvons ainsi ajouter:

A report smoking rule:
	say "Il fume tranquillement une cigarette. Elle se consumme lentement puis disparait.";

Nous pourrions imaginer un kind de dépendance à la cigarette "narcophile/unnarcophile" et faire en sorte que le personnage ait une chance de devenir "narcophile" après avoir fumé.

Exercice

Créer le verbe photographier, traduisez le en français. Faites en sorte qu'il ne soit possible de prendre des photos que quand le personnage porte un objet d'un nouveau kind que vous viendrez de créer ; "appareil photo". Si le personnage n'a pas d'appareil, l'action est stoppée. Sinon, on entend un clic.'

Ecriture du récit intéractif

Projet final : l'incipit

Il s'agit désormais de continuer à écrire le début du récit, un début qui a déjà été entamé lors de la séance précédente. Ce travail permet de préparer le travail pour la séance suivante

Travail pour la séance suivante

Pour la séance suivante, les étudiants doivent rendre sur feuille la transcription d'une session type qui jouerait de la manière la plus "optimale" possible le début du récit.

Par transcription de session nous entendons : un déroulé commenté des commandes que le lecteur exécute suivi des retours (outputs) qu'Inform génère.Par exemple:

Quand le texte commence, un court message apparait "Le matin ne s'était pas encore levé, mais le feu qui brûlait dans ses yeux laissait présager le pire". L'histoire commence dans la chambre. "Il se tient debout devant la fenêtre. Il y a une table et une chaise." Si le lecteur examine la table : "Sur la table se trouve une carte"....

Vous pouvez être plus synthétique que dans l'exemple pour les commandes qu'écrit le lecteur, l'essentiel étant que l'on soit capable de lire l'histoire à partir de commandes qu'une autre personne a faite.

D'ailleurs, puisque l'histoire est interactive, il est évident que les choses pourraient se passer différemment, vous choisirez de raconter l'histoire en réalisant les actions les plus logiques et plus riches afin de donner un aperçu de ce que votre texte réserve, c'est ce que nous entendons par jouer de manière "optimale" votre récit. N'hésitez pas à signaler quand des choix sont cruciaux et qu'une autre voix complètement possible serait différente si le lecteur faisait un autre choix ou encore au contraire d'expliquer comment vous empêcher l'histoire de partir dans tous les sens en faisant converger différentes actions.

Vous ne rendrez compte que du début de votre histoire. A vous de voir à quel moment vous coupez votre session.

A noter qu'il est important que l'on puisse lire votre histoire, c'est à dire que vous restituiez dans votre session les textes des descriptions et différents outputs directement.

Pourquoi?

Je pourrai ainsi, à partir de cette session, avoir un avis plus précis sur votre texte et vous guider pour la suite. Grâce à ce travail, il sera possible d'évaluer le rythme de l'histoire, de voir à quel point ce n'est pas seulement la fiction mais aussi la narration qui est interactive, de mesurer la taille du récit et de voir s'il correspond avec ce qui est attendu pour le livrable final...'

Je pourrai également lire et apporter de première corrections à la mise en texte, c'est pourquoi j'insiste bien sur le fait de rendre les outputs visibles.

Je vous demande ce travail plutôt que le code source pour que vous fassiez un effort particulier sur la scénarisation des interactions (le 4ème niveau d'écriture propre aux IFA): comment devrait se jouer la lecture? Nous imaginons des interactions modèles après nous pourrons travailler le code pour arriver à faire s'approcher le plus possible de la lecture finale de ce modèle (en d'autres mots, nous ne sommes pas obligés de résoudre tous les problèmes techniques tout de suite).

Gaétan Darquié- IUT de Montreuil © 2013 | Dernière mise à jour le 15 septembre 2013