Session end : 11h59m52s | Hide picture Sexe : OFF | ![]() | ![]() | ![]() | ![]() | Donations 2024 : 679.48 € |
Quelques remarques sur ce jeu :
Il s'agit d'un jeu d'aventure classique. Pour jouer, sachez que :
- ? affiche le vocabulaire connu par le CPC
- Inventaire ou I affiche les objets que vous possédez
- Les articles sont facultatifs (je prends la cle <=> prend cle <=> prendre cle)
- Vous pouvez taper je vais au nord ou aller nord mais N suffit
- Si plusieurs objets sont du même type, il faut parfois les différencier par un adjectif. Par exemple si vous avez une grande et une petite clé, vous pouvez préciser : j'ouvre le coffre avec la petite cle - Le CPC comprend les phrases du genre verbe (mot) (adjectif) (avec) (mot) (adjectif). (ex : je casse la porte en bois avec le gros marteau) - Le verbe regarde tout seul permet de ré-afficher la description du lieu où l'on se trouve.
Sur le programme lui-même, sachez que le moteur du jeu est entièrement séparé du scénario. Ce moteur est assez subtil même si ce n'est pas vraiment exploité dans ce scénario. Tous les persos ont par ex des points de vie, de forces, un niveau d'agressivité. Les combats sont gérés. Les objets ont un volume, une masse, sont mangeable ou non. Chaque objet, salle ou perso à potentiellement un comportement spécifique en fonction de l'action que l'on fait sur lui. Tout cela est géré dans un mini langage en RPN (!!) avec variables, flags, compteurs, événements aléatoires, etc...
Le comportement spécifique de chaque objet (ou perso, ou lieu) est codé deux fois :
1/ Son comportement immédiat dès qu'il est en 'contact' avec le joueur
2/ Ses réactions en fonction des actions du joueur
Tout est codé sous la forme condition = action si vrai # action si faux :
Les conditions sont codé dans le genre :
- snn : Etre dans la salle nn
- onn : Objet posséder ou dans la salle
- qnnmm : Objet nn se trouve dans la salle mm
- ann : flag nn active
- etc ... (nombre aléatoire, dire telle phrase ...)
Idem pour les actions :
-- >nn : pose l'objet nn
- rnn : Rdv en salle nn
- /Bravo .../ : Affiche le message entre les //
- cnnmm : fixe le compteur nn à la valeur mm
- inn : Affiche l'image nn
- etc... (inverse la position de deux objets, change l'état d'un objet ...)
Les conditions peuvent se combiner entre elles en respectant une logique de type polonaise inverse avec les opérateurs suivants :
- * : Et
- + : Ou
- ! : Non
Imaginons un objet de type animal (un oiseau, objet 25).
Les comportements associés cet oiseau ressemblerait donc à des 'phrases' comme çà :
s03o05+pAPOipSI+pSOAp+*q1233!*=/Un oiseau se pose sur ta main/a12#/L'oiseau s'en va/p2532:
En clair :
Si (on est dans la salle 03 ou qu'on possède l'objet 05 (un appeau) et qu'on dit la phrase "J'appelle l'oiseau" ou la phrase "Siffle" ou la phrase "Souffle appeau" et que l'objet 12 n'est pas en salle 33
alors
affiche le message "Un oiseau se pose sur ta main" et active le flag 12
Sinon
affiche le message "L'oiseau s'en va" et positionne l'oiseau en salle 32
Finsi
Ce comportement est associé à l'oiseau et n'est activé que si l'oiseau se trouve dans la même salle que le joueur. Suivant leur type (objet inanimé, mangeable, vivants), les objets ont aussi des comportements par défauts.
De fait, tout fonctionne avec un système de genre programmation objet (en 198x !).
Si je me souviens bien le scénario a été écrit avec Amsword (? traitement de texte CPC) avec des commentaires. Pour qu'il soit plus compact, j'avais écrit un petit utilitaire qui "compilait" le scénario. Dans ce fichier est aussi décrit le vocabulaire (avec possibilité de synonymes), les mots insignifiants (je, le la un ...) etc.