Inform 6 : les verbes de communication

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Inform 6 : les verbes de communication

Messagepar Stormi le Sam Sep 06, 2008 9:49 am

Voici un petit topo sur les verbes de communication en inform 6, version francophone, car ils sont gérés d'une manière qui ne coule pas toujours de source au départ, et en plus la version francophone ajoute des actions qui n'existent pas dans la version anglophone.

Je vous rassure tout de même : normalement une fois que vous m'aurez lu, vous en saurez assez pour vous débrouiller, si ce n'est pas déjà le cas !


1. Les actions de communication issues d'inform 6 en anglais
Ces actions sont gérées dans la propriété "life" des objets ayant pour attribut 'animate' ou 'talkable'.

Référence à ce sujet dans le DM4 (Inform Designer's Manuel, en anglais) : http://www.inform-fiction.org/manual/html/s17.html ainsi que le chapitre suivant.

- Tell : ça c'est quand on parle d'un sujet précis à un personnage : "Parler du loup des bois à toto". L'action Tell est envoyée à l'objet toto, avec comme "topic", sujet de conversation, les mots "loup des bois". A nous de traiter ces mots qu'envoie le joueur et de gérer les différents sujets qui peuvent être abordés et leurs diverses formulations.

- Ask : son fonctionnement est identique à Tell ! Sauf que c'est l'action envoyée par les verbes permettant d'interroger les personnages ("Interroger toto sur le loup des bois"). Cela permet de différencier le fait de parler d'un sujet avec celui de questionner sur un sujet.

- Answer : comme son nom ne l'indique pas, c'est l'action d'envoyer n'importe quel texte libre au personnage. C'est la plus difficile à gérer. Si je dis "dire comment ça va au personnage", le personnage va recevoir une action Answer avec le texte "comment ça va". Derrière, il faut que le personnage 'comprenne' ce texte et fasse une réponse appropriée.

Pour ces trois actions, le plus difficile si on veut réellement les exploiter est le traitement de la chaîne de caractères envoyée par le joueur comme 'topic'. Ce point est décrit ici dans le DM4 : http://www.inform-fiction.org/manual/html/s16.html (le chapitre parle de la consultation de quelque chose, une livre par exemple, au sujet de quelque chose, mais c'est exactement pareil que fonctionnent les actions Tell, Ask et Answer).

Attention : dans le chapitre 17 du DM4, un exemple est donné où au lieu d'analyser le sujet donné aux actions Ask et Tell, c'est simplement la variable 'second' qui est analysée. En anglais, ce fonctionnement est correct si on ne lui en demande pas trop. En français ce n'est pas efficace, car 'second' contient tout simplement le premier mot qui n'est pas 'the'. Mais si le joueur tape "parler de la lune à toto", second ne contiendra pas le mot lune, il contiendra le mot la ! Il est donc préférable d'analyser la chaîne "la lune", quitte à en retirer éventuellement les mots inutiles (c'est ce qui est fait dans Ascenseur avec la fonction ElimineMotInutile), afin de n'avoir pas à gérer à la fois 'la lune' et 'lune' dans l'exemple présent.


2. Ajouts dans la version francophone

- ParlerSansPrecision : dans la version anglaise, il n'existe pas d'équivalent au verbe parler dans le sens "parler avec quelqu'un", sans préciser le sujet de conversation. La bibliothèque francophone ajoute cette action, nommée ParlerSansPrecision. Cette action est appelée sur la propriété life des objets 'animate' ou 'talkable', tout comme les trois actions Ask, Tell et Answer, mais sans aucun sujet de conversation.

- Answer : en plus de la formulation "dire {n'importe quoi} à {personnage}", la bibliothèque francophone envoie aussi l'action Answer si on écrit "demander {quelque chose qui n'est pas un objet du jeu} à {quelqu'un}". Cela permet de gérer lorsque le joueur veut "demander" une chose qui n'est pas modélisée dans le jeu ou qui est immatérielle (l'heure, de l'aide...).


3. Comment gérer correctement ces actions sur les personnages
Ces quatre actions sont la base de la conversation avec les personnages en Inform 6, version francophone. Cependant, il n'est pas rare qu'un auteur souhaite procéder autrement :
- en donnant la même signification aux actions Ask et Tell par exemple : que j'interroge toto au sujet du loup des bois ou que je parle du loup des bois à toto, je veux la même réponse, ce qui m'importe c'est le sujet loup des bois
- en supprimant totalement la gestion de Ask, Tell et Answer pour se contenter de réagir sur ParlerSansPrecision. Cela simplifie énormément les choses. Cela appauvrit la discussion avec les personnages (impossible ici de les interroger sur un sujet précis), mais limite aussi considérablement les possibilités d'incohérence. C'est une méthode à privilégier si on n'est pas prêt à s'investir dans des personnages à la conversation poussées. Mais il ne faut pas oublier de mettre tout de même un message standard en réaction aux autres actions Ask, Tell et Answer.
- en remplaçant toute conversation par un système de menus (chose que je ne détaillerai pas car je ne la maîtrise pas, mais si quelqu'un veut le faire...)
- etc...

L'important c'est de préciser dans l'aide du jeu quelles sont les formulations à utiliser pour s'adresser aux personnages, et d'avoir prévu une réponse cohérente pour chaque action:
- Ask (interroger sur un sujet)
- Tell (parler d'un sujet)
- Answer (dire tout ce qui nous passe par la tête)
- ParlerSansPrecision (comme son nom l'indique)

Voici une méthode très simple pour faire une classe de personnage qui ne réagit qu'à l'action ParlerSansPrecision. Les autres actions avertissent le joueur que la formulation à utiliser est "parler avec personnage".
Code: Tout sélectionner
Class PNJ
   with life [;
      Ask, Tell, Answer : "[Pour converser avec les personnages, utiliser la formulation 'parler avec (personnage)']";
   ],
has animate;

Pour les objets de la classe PNJ, il ne sera plus utile de se soucier de Ask, Tell et Answer puisque c'est géré au niveau de la classe avec un message standard.

Pour des PNJ plus complexes, il faut toujours gérer ParlerSansPrecision (pour mettre une réponse standard ou personnalisée), mais aussi gérer Ask, Tell et Answer (ou juste Ask et Tell et mettre une réponse bateau mais crédible pour Answer qui est le plus compliqué à gérer. Dans Ascenseur, j'ai en fait géré Answer exactement comme Ask et Tell mais c'est un choix personnel.). Pour cela je vous invite à lire les liens ci-dessus vers les chapitres 16 à 18 du DM4, et à consulter/compiler/bidouiller la source du jeu Ascenseur.

(Le jeu Ascenseur, dont le code et le binaire sont disponibles ici : http://ifiction.free.fr/telechargement/ ... ascenseur/ a été conçu comme un exemple d'utilisation des actions de communication avec les personnages.)


4. Autres actions liées aux personnages.
Les ordres : les formulations telles que "personnage, manger" (malheureusement l'impératif n'est pas reconnu dans ce contexte) ou "demander au personnage de pousser le bouton" envoient un ordre au personnage. Le chapitre 18 du DM4 traite de ce point. Si on ne le gère pas on obtient le message par défaut "(Le personnage) a mieux à faire."

Demander un objet : il existe une action AskFor, qui en fait envoie l'action Give à la propriété life d'un personnage. Cela permet de gérer lorsqu'on demande un objet présent dans le lieu (ou possédé par un personnage). Le message par défaut est "(Le personnage) a mieux à faire."


Si vous voyez des choses à reformuler, des erreurs, des choses à préciser, à ajouter, faites en part sur le fil et on mettra à jour ce texte !
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Inform 6 : les verbes de communication

Messagepar Otto Grimwald le Lun Sep 08, 2008 8:07 pm

En voilà un manuel détaillé... Je me sens un peu largué par rapport à Inform 7...

Je l'ai inclus sur notre site:
http://ifiction.free.fr/index.php?id=ar ... nform#toc6

désolé pour les retours à la ligne, j'ai directement repris la source de ton texte et ça l'a converti directement en html, mais cela reste lisible je pense. Lorsque cela sera plus figé, on pourra éventuellement le reprendre sur le site.

Par rapport à la mise en page de notre site, c'est aussi un peu tassé en largeur, si je peux je vais essayer d'améliorer le css pour qu'il soit moins limité à ce niveau.

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Inform 6 : les verbes de communication

Messagepar Stormi le Lun Sep 08, 2008 9:01 pm

Bonne idée de mettre ça dans le site. J'ai aussi fait du sujet un post-it dans le forum, jusqu'au jour où on aura trop de post-its et où il faudra faire du ménage.

Pour la page d'aide sur inform, je pense qu'elle est suffisamment longue pour que ça vaille le coup de séparer l'aide sur inform 6 et l'aide sur inform 7, étant donné aussi qu'on consulte rarement les deux en même temps.

Tu peux peut-être essayer aussi de diminuer la taille par défaut de la police pour les citations de code, ça me semble un peu gros (mais c'est peut-être uniquement le cas dans mon navigateur).

[Edit] Pour inform 7, les actions de base (Ask, Tell, Answer) restent selon le même principe d'après ce que j'ai compris. Je ne sais pas ce qu'il en est pour l'intégration de ParlerSansPrecision.

[Edit 2] Il y a un petit problème dans la copie du texte : dans le paragraphe sur Answer, il y a deux mots manquants, mais à la place des liens ont été créés.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Inform 6 : les verbes de communication

Messagepar Otto Grimwald le Lun Sep 08, 2008 10:17 pm

ok, bonne idée, j'ai fait 2 sections i6 et i7, ai corrigé un peu la taille pour le code, ai corrigé les crochets par des accolades (txt2tags interprète cela comme des liens, je me suis permis de faire de même dans ton texte).

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Inform 6 : les verbes de communication

Messagepar Seren le Mar Sep 09, 2008 7:25 am

Merci pour ces explications.

Je n'ai jamais joué à un jeu Inform6 en français où j'ai eu besoin de parler, il me semble.

Comment le joueur doit utiliser ParlerSansPrécision ?

> parler sans précision

OU

> parler à quelqu'un


ça m'intéresse en temps que "joueur" d'avoir la réponse au cas où je tomberais dessus.

Merci
Seren
Sorcier du culte
 
Messages: 10
Inscription: Mar Avr 15, 2008 8:18 pm

Re: Inform 6 : les verbes de communication

Messagepar Stormi le Mar Sep 09, 2008 8:14 am

Juste "parler à quelqu'un" ou "discuter avec quelqu'un" ou "parler avec quelqu'un"

Le "sans précision" est implicite :)

Pour un jeu en français où on doit parler, Ascenseur est justement un mini-jeu où on ne fait quasiment que parler, et toutes les actions sont traitées : Ask, Tell, Answer, ParlerSansPrecision et même des ordres.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron