<!doctype metacosm system>

<article>
<title>RFC sur les quêtes et les missions
<author>&frAuthor;
<date>v0.7, 5 mars 2001
<abstract>
Ce document décrit les types de quêtes et de missions possibles dans Metacosm.
</abstract>

<toc>

&frLicense;

&frProject;

<sect>Notations
<p>
Les termes commençant par une majuscule sont ceux qui correspondent à un concept
important du jeu.
Pour des raisons de facilité de compréhension, de clarté et traduction, les
auteurs ont essayé d'éviter les phrases longues et tordues. Les traducteurs
sont invités à faire de même, en choisissant toujours la simplicité.
Certains des termes utilisés sont définis dans le Vocabulary-RFC~; reportez-vous
au site officiel.
Les Missions et les Quêtes ont des noms~; ceux-ci ne sont pas accessibles aux
joueurs et sont seulement utilisés pour faciliter les discussions sur les
spécifications.
 
<sect>Historique
<p>
<itemize>
<item>Version 0.7~: mars 2001 (version Anniversaire d'Elkine) Section
implantation réécrite
<item>Version 0.6~: corrections de typos ; ajout de la section Implantation
<item>Version 0.5~: passage en Metacosm-DTD
<item>Version 0.4~: ajouts dans la section Vraisemblance
<item>Version 0.3~: définitions de Quête et Mission, refonte des sections
Quêtes, Missions et Vraisemblance
<item>Version 0.2~: corrections et clarifications dans la Section Quêteurs Multiples
<item>Version 0.1~: premières ébauches (Ruffy)
</itemize>

<sect>Missions 
<p>
<mdef name="Mission">
La Mission est en fait un contrat moral~: celui qui accepte la Mission s'engage 
à accomplir l'objectif de la Mission, en respectant les conditions données.
Celui qui propose la Mission s'engage à rémunérer de la façon convenue celui
qui accomplira la Mission.

Une Mission est donnée par un bot ou un autre joueur.
</mdef>
Nous ne nous intéresserons dans ce document qu'aux Missions données par des
bots~; celles données par les joueurs sont du ressort du joueur qui les propose,
et le jeu n'a pas à intervenir dans ce cas-là, il s'agit de pur roleplay.

Celui qui propose la Mission est un donneur de Missions, qui en a donc fait son
métier et distribue des Missions, ou plus souvent un bot qui décide de proposer
une Mission à la suite d'un ou plusieurs événements qui se sont déroulés (mort
d'un proche, rumeur récente, etc).

Les Missions sont limitées ou non dans le temps~: au bout d'un certain temps
(durée ou arrivée d'un événement particulier (fin d'une autre Mission, etc)),
le bot ayant organisé la Mission peut décider qu'elle est annulée (en informant
ou non les quêteurs), engager d'autres quêteurs en plus ou en remplacement,
envoyer des quêteurs pour éliminer ou punir les mauvais quêteurs, etc.

Types de Missions~:
<itemize>
<item>Meurtre
  <itemize>
  <item>Tuer un être vivant donné ou un groupe ou une catégorie d'êtres vivants.
  <item>Dans un lieu donné ou non.
  <item>Faire ou non disparaître le ou les corps.
  <item>Revendiquer ou non.
  </itemize>
<item>Vol
  <itemize>
  <item>Voler un objet spécial ou non, un maximum d'objets d'un type donné
(argent par exemple), ou un maximum d'objets en général (toutes les possessions
d'un être vivant par exemple).
  <item>Voler un être vivant en particulier ou n'importe qui.
  <item>Voler dans un lieu donné ou non.
  <item>Avoir le droit de tuer ou pas.
  <item>Devoir être discret ou non.
  <item>Revendiquer ou non.
  <item>Voler seulement ce qui est requis ou pas.
  </itemize>
<item>Livraison
  <itemize>
  <item>Amener quelque chose à un être vivant.
  <item>Un objet spécial (un message notamment) ou une quantité d'un objet
donné ou un ensemble d'objets donnés.
  <item>Ne pas tuer le destinataire.
  <item>Le destinataire donne ou non quelque chose en paiement. Dans le premier
cas, il faut ou non ramener le paiement au donneur de Mission.
  <item>Avoir le droit de voler le destinataire ou non.
  </itemize>
<item>Récupération
  <itemize>
  <item>Aller chercher quelque chose quelque part.
  <item>Un objet spécial ou une quantité d'un objet donné ou un ensemble
d'objets donnés.
  <item>Sur ou chez un être vivant en particulier ou n'importe qui.
  <item>Dans un lieu donné ou non.
  <item>Ne pas tuer le propriétaire (il est consentant, sinon voir Vol).
  </itemize>
<item>Rumeur
  <itemize>
  <item>Propager auprès de certaines personnes une idée donnée.
  <item>Un groupe de personnes, un certain nombre de personnes, une personne en
particulier ou n'importe qui.
  </itemize>
<item>Achat (variante de Récupération)
  <itemize>
  <item>Obligation d'acheter ou de payer d'une façon ou d'une autre (troc,
service rendu, etc).
  <item>Ne pas voler.
  </itemize>
<item>Recrutement
  <itemize>
  <item>Trouver quelqu'un pour faire quelque chose.
  <item>Un être vivant en particulier, un être vivant répondant à certains
critères ou n'importe qui.
  <item>Pour faire un travail (une Quête ou une Mission) ou pour entrer dans un
groupe (clan, religion, etc)
  </itemize>
<item>Espionnage
  <itemize>
  <item>Obtenir des informations sur quelque chose ou quelqu'un.
  <item>Pour un lieu~: découvrir ce lieu dont on connaît certaines propriétés
(son nom, ses habitants, ses constructions, etc), ramener des données sur ce
lieu (population, construction, etc).
  <item>Pour une personne~: trouver son emplacement, apprendre les rumeurs
circulant sur son compte, connaître ses possessions, découvrir le groupe
auquel elle appartient, ses objectifs (Missions, Quêtes, etc), etc.
  <item>Pour un groupe de personnes (clan, ordre religieux, ville, pays, etc)~:
trouver le ou les lieux de réunion, les membres du groupe, les buts du groupe,
ses possessions, ses caractéristiques, etc.
  <item>Pour un objet~: trouver son emplacement, son prix, ses caractéristiques,
connaître le nombre d'exemplaires existants et leur emplacement, etc.
  </itemize>
<item>Construction
  <itemize>
  <item>Bâtir ou fabriquer, ou faire bâtir ou fabriquer quelque chose.
  <item>Cas d'un objet~: un objet spécial ou une quantité d'un objet donné ou un
ensemble d'objets donnés.
  <item>Cas d'un lieu~: construire un bâtiment spécial, modifier le lieu
(terrassement, irrigation, assèchement, mise en culture, plantation, etc). 
  <item>Dans un lieu donné ou non.
  </itemize>
<item>Destruction
  <itemize>
  <item>Contraire de la Mission Construction.
  <item>Tuer ou pas certaines personnes (habitants du lieu, fabricants d'un
objet, etc).
  </itemize>
<item>Enrichissement
  <itemize>
  <item>Version modifiée de la Mission Récupération~: il s'agit de ramener de
l'argent ou des objets de valeur.
  </itemize>
<item>Protection
  <itemize>
  <item>Protection de quelqu'un ou de quelque chose durant un certain temps.
  <item>Pour un être vivant~: éviter qu'il soit tué ou volé.
  <item>Pour un lieu~: éviter qu'il soit altéré.
  <item>Pour un objet~: éviter qu'il soit volé ou détruit.
  </itemize>
<item>Vente
  <itemize>
  <item>A ne pas confondre avec la Mission Livraison dans le cas où le
destinataire rémunère la livraison. La Mission Vente consiste à vendre au
meilleur prix quelque chose à quelqu'un.
  <item>Un objet spécial ou une quantité d'un objet donné ou un ensemble
d'objets donnés, un lieu (bâtiment, etc) ou une personne (esclave, serviteur,
etc).
  <item>L'acheteur doit ou non répondre à certains critères (appartenance ou non
à des groupes, discrimination sur la race, etc).
  <item>Ne pas tuer l'acheteur.
  <item>Il faut ou non ramener le paiement au donneur de Mission.
  </itemize>
<item>Enlèvement
  <itemize>
  <item>Emmener un être vivant donné dans un lieu donné, en utilisant la force
si nécessaire.
  <item>Ne pas tuer la victime.
  <item>Possibilité de la blesser ou non.
  </itemize>
<item>Enquête
  <itemize>
  <item>Retrouver le ou les coupables d'une action donnée.
  <item>En suivant certaines règles (ne pas tuer, ne pas voler, etc) ou non.
  </itemize>
<item>Contre-mission
  <itemize>
  <item>Faire échouer une Mission donnée (donc tous les quêteurs travaillant
sur cette mission) ou un quêteur donné sur une Mission donnée.
  <item>Tuer ou non le ou les quêteurs.
  <item>L'aspect temporel est important pour cette Mission~: il s'agit de
réussir avant les autres.
  </itemize>
</itemize>
 
La forme générale est du genre faire/réussier une Action donnée (ou plusieurs)
avec plus ou moins de contraintes.

<sect>Quêtes
<p>
<mdef name="Quest">
Comme la Mission, la Quête est un contrat moral, mais elle vise
l'accomplissement d'un objectif plus complexe. Une Quête est donc plus longue
qu'une Mission, comporte un objectif global et des objectifs intermédiaires.

La réussite de la Quête nécessite d'accomplir tous les objectifs intermédiaires.
</mdef>

Comme la Mission, la Quête peut être limitée dans le temps.

Au niveau de l'implantation, les Quêtes seront une succession logique de 4 à 5
Missions. Celles-ci doivent avoir un lien entre elles, même si celui-ci n'est
pas évident~: elles doivent toutes concourir à un même objectif. Il faut éviter
que la Quête ne soit que des Missions disparates mises bout à bout. 

Types de Quêtes~:
<itemize>
<item>Succession de Missions du même type (Missions Meurtre sur toute une
catégorie d'êtres vivants, plusieurs Missions Livraison, ...).
<item>Mauvais Coup~: Mission(s) Vol + Mission(s) Livraison, avec ou sans
revendication.
<item>Transaction~: Mission(s) Récupération + Mission(s) Livraison.
<item>Complot~: Mission(s) variées + Mission(s) Rumeur, pour accomplir des
actions que l'on attribuera à quelqu'un d'autre, envoyer quelqu'un en prison,
etc.
<item>Revente~: Mission(s) Achat + Mission(s) Livraison.
<item>Harcèlement~: Mission(s) Vol et/ou Mission(s) Meurtre et/ou Mission(s)
Destruction contre les intérêts d'un être vivant ou d'un groupe.
<item>Destitution~: Quête Complot destinée à faire remplacer un être vivant
occupant une certaine position.
<item>Justice~: Mission(s) Enquête + chatîment pour le ou les criminels
(suivant les cas, Mission(s) Meurtres ou Mission(s) Enlèvement pour les ramener
devant un tribunal)
<item>Rivalité~: Mission(s) Espionnage pour connaître les Quêtes d'un groupe
ennemi, suivi de Mission(s) Contre-mission
</itemize>

<sect>Vraisemblance
<p>
Les Quêtes et les Missions doivent être variées et éviter la répétition.
Attention toutefois à la vraisemblance~: pourquoi tel être vivant demande la
réalisation d'une telle Quête ou d'une telle Mission~?

Les Quêtes et les Missions sont présentées sous une forme plausible au joueur~:
ainsi une Mission du type Meurtre ne sera pas demandé ainsi
<tscreen><verb>
   Robert: "Mission meurtre sur Raoul le boulanger"
</verb></tscreen>
mais plutôt ainsi
<tscreen><verb>
   Robert: "Raoul le boulanger a couché avec ma femme.
            Je veux le voir mort."
</verb></tscreen>
ou ainsi
<tscreen><verb>
   Robert: "Je veux que Raoul le boulanger soit mort avant le coucher
            du soleil. Mes raisons ne vous regardent pas."
</verb></tscreen>

De même une Quête composé d'une Mission Meurtre, d'une Mission Enlèvement,
d'une Mission Récupération et d'une autre Mission Meurtre ne sera pas présentée
ainsi
<tscreen><verb>
   Sédécias: "Tue Raymonde. Enlève Gertrude. Va demander 10.000 pièces
              d'or à Raoul. Tue Gertrude."
</verb></tscreen>
mais plutôt ainsi
<tscreen><verb>
   Sédécias: "Je hais la réussite de Raoul le boulanger. Je vais le faire
              souffrir. *Niark* *Niark*. Tu vas tuer sa femme Raymonde,
              enlever sa fille Gertrude, demander 10.000 pièces d'or de
              rançon et ensuite tuer Gertrude. *Niark* *Niark*"
</verb></tscreen>

Dans l'exemple précédent, le quêteur connaît à l'avance l'intégralité de la
quête. Il est aussi possible de ne donner les informations au quêteur qu'au fur 
et mesure. Les informations sont fournies soit par le donneur de quête soit par 
une autre personne.

<tscreen><verb>
   Raoul: "Ma femme Raymonde a disparu, aidez moi à la retrouver.
           Je vous suggère de commencer votre recherche par Sédécias.
           Il me hait depuis toujours."
   [Le joueur va trouver Sédécias...]
   Sédécias: "Je sais où se trouve Raymonde mais je ne vous le dirais
              que si vous me ramenez une dent de requin."
   [Le joueur revient avec une dent de requin]
   Sédécias: "Argh, vous avez réussi..."
   [Sédécias jette négligemment la dent de requin.]
   Sédécias: "Je tiens malgré tout parole : prenez cette lettre.
              Je l'ai volée dans la boîte aux lettres à Raoul."
   [Sédécias donne la lettre au joueur qui la lit.]
   "Cher Raoul,
        Je me sentais fatiguée, alors j'ai décidé d'aller une semaine en
   thalasso. Je suis désolé de ne pas te l'avoir dit, mais tu travaillais
   et mon amie Denise venait juste de me donner sa place, car elle ne
   pouvait l'utiliser(...)."
   [Le joueur va au centre de thalasso]
   Réceptionniste: "Désolé je ne peux vous donner le nom de nos clients.
                   Mais si vous travaillez ici aujourd'hui, vous pourrez
                   les rencontrer. La paie est de 3 pièces d'argent par
                   jour."
   [Le joueur travaille mais ne trouve pas Raymonde.]
   [Il décide de rencontrer Denise.]
   Joueur: "Où est Raymonde ?"
   Denise: "Ha, ha. Trop tard ! J'ai toujours haï Raymonde depuis qu'elle
   a gagne le concours de tartes aux pommes. Maintenant, je vais avoir ma
   revanche. Je l'ai enfermée dans un colis et envoyée à Klouguirec et
   personne ne pourra m'empêcher de gagner le concours de tartes aux pommes
   la semaine prochaine.  Comprenez que je ne peux vous laisser partir
   maintenant que vous connaissez la vérité, vous allez mourir !"
   [Denise attaque le joueur.]
   [Le joueur tue Denise et retourne voir Raoul.]
   Raoul: "Merci beaucoup. Maintenant que je sais que Raymonde est à
           Klouguirec, je me sens mieux. Je vais aller immédiatement la
           récupérer. Comme récompense, mon pain est gratuit pour vous
           pendant un an."
</verb></tscreen>

<!-- Plus de référence aux événements pour le moment
Avec le système des événements, il est possible de créer des Quêtes originales,
variées et complexes.
</!-->

Cela apporte de plus un aspect dynamique et non linéaire à la Quête~: si le
joueur avait été tué par Denise, Raoul aurait envoyé un autre quêteur~; le
joueur aurait pu tué Sédécias parce que celui-ci s'est joué de lui~; le joueur
aurait pu mentir à Raoul en ne faisant aucune recherche et en lui disant que
sa femme se trouve au Schmuziskthan~; la récompense offerte par Raoul n'était
pas donnée à l'avance, elle est peut être fonction du temps mis pour arriver à
finir la quête ou d'autres facteurs~; etc.

Les événements antérieurs à la Quête peuvent ne jamais avoir existé, comme le
vol de la lettre (même s'il est toujours possible que ces événements aient eu
lieu sans témoins). Mais la Quête peut aussi être basée sur de vrais événements
ou faits (par exemple la haine entre Raoul et Sédécias).

Les événements futurs découverts dans la Quête peuvent aussi avoir lieu
"réellement". Par exemple, le concours de tartes aux pommes pourra vraiment
avoir lieu (une Quête 'faites la meilleure tarte' peut être envisagée, avec une
recherche des ingrédients, d'un livre de cuisine, etc), ou le joueur verra Raoul
fermer boutique et partir.

<!-- Plus de référence aux événements pour le moment
Nb. pour l'implantation~: le moteur du jeu peut soit créer les événements et
bâtir ensuite des Quêtes dessus, soit prévoir des Quêtes et en déduire des
événements.
</!-->

<sect>Quêteurs multiples
<p>
Les Quêtes et les Missions peuvent être réalisées par des groupes de joueurs
(et à terme par des groupes de non-joueurs). Il est d'ailleurs recommandé
d'utiliser au maximum cette possibilité pour créer une vraie interaction sociale
entre les joueurs.

Un groupe de joueurs peut travailler sur une Quête ou une Mission ensemble (tous
les joueurs travaillent sur la même Mission, éventuellement chacun sur un
objectif donné en cas d'objectifs multiples) ou en coopération (si plusieurs
Missions doivent être réalisées, les joueurs peuvent agir en parallèle pour
accélérer une Quête).

D'autre part, il est aussi recommandé d'utiliser au maximum les oppositions
entre joueurs ou entre groupes (Mission 'garde du corps' contre Mission
"assassinat" (attaque/défense) ou Missions 'course au trésor' en parallèle
(compétition), par exemple).

<sect>Implantation
<p>
Pour implanter les Quêtes et les Missions, nous pouvons utiliser massivement
les fonctionnalités fournies par les systèmes d'Interactions, de
dialogues et de perceptions.
<!-- Plus de référence aux événements pour le moment
les fonctionnalités fournies par les systèmes d'Événements, d'interactions, de
</!-->
Cf les RFC appropriées pour avoir plus de détails sur ces systèmes.

Le système des Quêtes est très flexible et générique.

<sect1>Quests creation
<p>
Les Quêtes peuvent être crées avec l'éditeur de Quêtes (création manuelle) ou
automagiquement par le jeu lui-même (en réaction à certains événements).
i<!--> des détails sont nécessaire -->

<sect1>L'objet Quête
<p>
Le jeu gère une liste d'objets Quêtes.

Un objet Quête contient~:
<itemize>
<item>QuestID
<item>le donneur de quête (EntityID)
<item>une limite temporelle (date ou événement)
<item>une liste de quêteurs (EntityID, date de début, état de progression dans
la Quête)
<item>automate de la Quête
<item>critères nécessaires
<item>critères de rejet
</itemize>

Les critères nécessaires et de rejet déterminent qui peut ou non participer à
une Quête donnée (par exemple, les meurtres sont pour les gens mauvais).
Note~: il est possible que le quêteur ne respecte plus les critères pendant
ou à la fin de la Quête.

Les états de l'automate sont utilisés pour garder l'avancement des quêteurs.
La Quête peut ne pas être linéaire (plusieurs voies vers une ou plusieurs fins).
Pour les Quêtes de groupes, il est possible de diviser le groupe (différents
états doivent être atteints au même moment) ou non (action difficile à réaliser
pour une seule personne).
Une Quête peut être unique (un seul quêteur peut réussir). Elle est supprimée
après le premier succès.
Une Quête peut n'être réalisable qu'une seule fois (un quêteur donné ne peut
y l'accomplir qu'une seule fois). Un marqueur est stocké dans l'objet quêteur
pour mémoire.

Ex. d'automate~: une Mission Meurtre
<tscreen><verb>
(0) --> -1) --|--> (2)
              |--> (3)
</verb>
État 0 : la Quête est décrite par le donneur.
État 1 : le quêteur tue la victime.
État 2 : le quêteur ramène le corps au donneur. Récompense 1000~or
État 3 : le quêteur ramène la carte d'identité de la victime. Récompense
100~gold (et s'il a menti, le donneur peut envoyer de nouveaux quêteurs pour
le tuer).
</tscreen>

Pour détecter un changement d'état, nous pouvons envelopper certaines Actions.
Par exemple, si le quêteur doit livrer un objet à quelqu'un, l'Action 'donner'
est enveloppée~: si le quêteur utilise la nouvelle Action avec le bon objet et
le bon destinataire, l'état de la Quête est modifié et l'Action originale est
appelée. Sinon, l'action originale est directement appelée.
Le quêteur peut aussi progresser dans la Quête simplement en disant un mot à
quelqu'un (cf Dialog-RFC).

Chaque Personnage garde une liste de QuestID (pour les missions/quêtes auquelles
il participe).
</article>