Page suivante Page précédente Table des matières

10. Les descriptions

Une entité reçoit toutes les informations sur son environnement grâce aux stimuli. Par exemple, elle pourra obtenir en recevant un stimulus visuel provenant d'une créature, son identité, sa taille, sa race, son âge approximatif, son poids approximatif... Un stimulus sonore pourra aussi la renseigner sur d'autres informations. Ces données brutes suffiront à un bot mais pour un joueur humain, il faut mettre en forme ces données de manière textuelle, graphique, sonore ou autre... Ceci est l'objectif du mécanisme de description dynamique. La suite traite uniquement des descriptions textuelles mais cela s'adapte dans la plupart des cas aux autres types de descriptions. Voici un exemple d'une entité avec quelques attributs et les descriptions qui pourraient être générées~:

identité : EntityID
race : loup
taille : 2 m
couleur : gris
position : x y z (coordonnées 3D)
La description générée au vol est~: "Un énorme loup gris se trouve à quelques mètres devant vous.". Si le loup était déjà connu sous le nom de "Médor" par le personnage (c'est-à-dire si l'entité EntityID était dans la mémoire du personnage), elle pourrait devenir~: "Médor se trouve à quelques mètres devant vous.".

Un stimulus transporte donc un certain nombre d'informations qui peuvent ensuite être utilisées par les entités qui les reçoivent. Cependant, on a vu dans les sections précédentes qu'un stimulus pouvait être plus ou moins bien perçu. Ces informations ne seront donc pas toujours accessibles et pourront aussi être déformées. Certaines informations peuvent aussi nécessiter une perception excellente tandis que d'autres seront facilement obtenues. Voici un autre exemple concernant cette fois-ci une action~:

Entité sujet~: EntityID (Raoul)
Action~: ActionID (manger)
Entité objet~: EntityID (du pain)
...
La description sera~:
"Raoul mange du pain"
Si le stimulus est mal reçu, cette description pourrait être remplacée par l'une des suivantes~:
"Quelqu'un mange du pain"
"Raoul fait quelque chose avec du pain"
"Raoul mange quelque chose"
"Quelqu'un fait quelque chose avec quelque chose"
...
Ou bien la description pourrait même être tout à fait fausse~:
"Raoul vous menace avec du pain"
"Raoul mange du bois"

Le problème qui se pose alors est de savoir quelle partie des descriptions sera altérée. Le problème se pose non seulement pour les joueurs mais aussi pour les bots puisque cela concerne les attributs à la source. Nous associons pour cela un indice de réception minimal à chaque attribut. Le niveau de réception du stimulus doit être supérieur à la valeur de cet indice pour une lecture optimale de l'attribut. Pour mieux comprendre, reprenons l'exemple précédent~:

Entité sujet~: EntityID (Raoul) : 0.01
Action~: ActionID (manger) : 7
Entité objet~: EntityID (du pain) : 1

réception 10 : "Raoul mange du pain"
           1 : "Raoul mange quelque chose"
         0.1 : "Raoul vous menace avec du pain"
        0.01 : "Raoul mange du bois"
Cependant, contrairement à l'exemple, il ne sera pas aussi simple en pratique de donner une valeur fausse aux attributs sauf pour le cas où ils sont numériques (taille, longueur, poids...). On pourra alors déterminer aléatoirement la valeur fictive dans un intervalle centré sur la valeur réelle et de diamètre croissant lorsque le niveau de réception diminue.

Changeons de sujet pour la fin de cette section. Dans les exemples précédents, les informations sont réduites et les descriptions sont donc courtes. Cependant, pour des stimuli d'état les descriptions (au moins textuelles) risquent d'être trop longues. Par conséquent, il faudra pouvoir générer une description détaillée (longue) et une description plus courte. La description courte est celle proposée par défaut mais l'utilisateur peut à loisir consulter la description longue. Ceci peut s'appliquer aussi bien à des textes ou d'autres types de descriptions. Par exemple, on peut imaginer un interface graphique dans laquelle les entités apparaissent sous forme d'images (la description courte) et le fait de cliquer dessus fait apparaître une fenêtre comportant des informations supplémentaires sur l'entité. Ex.~:

description courte: "Raoul est derrière son comptoir"

description longue: "Raoul est derrière son comptoir.

C'est un homme corpulent de taille moyenne. Il porte un marcel et un pantalon blanc tenu par des bretelles."


Page suivante Page précédente Table des matières