Sans le savoir, vous y êtes entré...

Page Officielle du Massacre dans la 520eme Dimension
Un jeu édité par loriciels en 1987.

Techniques de programmation de Massacre

Le "moteur" du jeu

On parle de moteur parce que c'est la partie du programme qui va entraîner toute l'application. C'est lui qui "fait tourner" le jeu. En fait, ce moteur lit un fichier scénario, l'interprète et détermine quelles actions doivent être possibles en fonction de l'état du jeu. D'autres parties du programme se chargent de l'affichage des graphiques. Seul le moteur est disponible en licence GPL, la partie graphique reste à faire, si vous avez des idées, écrivez ici.

Le fichier scénario

Le scénario n'est pas codé dans le source du programme. Cela permet, par exemple d'ajouter une salle tout simplement en ajoutant la description de la salle dans le fichier scénario et sans avoir à recompiler l'application.

Un autre avantage de cette architecture est que le scénario peut être généré par un autre programme indépendant de Massacre, ou encore par un scénariste qui ne connaît rien à la programmation. Il aura alors juste à manipuler un fichier texte et il lui suffira d'apprendre un jeu d'instruction très simplifié.

Le "langage" Massacre

Le moteur du jeu est donc capable d'interpréter un fichier scénario tout comme un langage informatique. Le "langage" massacre est extrêmement simplifié par rapport à du C ou du basic, mais il est aussi extrêmement spécialisé et permet de décrire d'une manière simple un certain nombre de comportement de jeu. Ce langage possède des variables, des tests conditionnels, des opérateurs arithmétiques, et des commentaires (!).

Contenu du fichier scénario

Le fichier scénario contient l'intégralité de tous les messages qui s'affichent à l'écran, la liste des salles et leurs emplacements relatifs, la liste des objets et le comportement du jeu.

Les Salles:

Toutes les salles ou plus exactement les étapes du jeu sont décrites dans le fichier scénario, une ligne contient le mon de la salle (qui est son identificateur) et une autre ligne contient sa description (le message qui est affiché lorsque l'on se trouve dans la salle)

Les Actions:

Un certain nombre d'actions peuvent être effectués par le joueur, pour chaque salle la liste des actions possibles est décrite à l'aide du tag "invite".

Trois types d'action sont implémentés dans cette version du moteur, il s'agit de l'action PASSAGE, qui permet de passer d'une salle à une autre. L'action MESSAGE, qui affiche un message à l'utilisateur, et l'action OBJET losque le joueur possède un objet.

Les actions ne sont disponibles que lorsque certaines conditions sont remplies, et lorsque le joueur effectue cette action, un certain nombre de conséquences en découlent, tout ceci est aussi décrit sous forme de tags dans ce fichier scénario.

Les Conditions:

Les conditions et conséquences ne sont pas autre chose que des valeurs de variables. Par exemple je peux ouvrir un porte que si j'ai accionné la serrure. La condtion pour que le message "La porte est ouverte" corresponde à l'action pousser la porte ser (par exemple) : La valeur de la variable JAI_DEJA_TOURNE_LA_CLEF est à 1. La conséquence de l'action "Tourner la clef dans la serrure" est que la variable JAI_DEJA_TOURNE_LA_CLEF prends la valeur 1.

Un Automate

Ainsi le moteur de jeu est capable de connaître l'état dans lequel se trouve le jeu (ou est le joueur, quelles porte à -t-il ouvertes,où est il déjà allé, etc...). En quelque sorte, il s'agit d'un automate.

Les extensions du langage

On peut créer des extensions dans plusieurs directions différentes. Une première voie concerne les graphismes, par exemple un mot clef pourrait être le nom du fichier image (gif ou jpg ou png) qui correspond à la salle de façon à pouvoir l'afficher. Un autre mot-clef pourrait définir les coordonnées des zones rectangulaires où l'on peut cliquer avec la souris et correspondant à une action précise. De la même manière un nouveau mot clef peut être ajouter pour définir un fichier son, une musique d'ambiance correspondant à l'entrée dans une salle ou à l'exécution d'une action précise.

Une autre possibilité d'extension consiste à fabriquer automatiquement des actions génériques, par exemple dans toutes les salles, on peut avoir l'action "regarder par terre" qui ammenera automatiquement le message "Il n'y a rien de particulier à voir" sauf bien sur dans les salles où le scénario prevoit autre chose que la réponse par défaut.

La syntaxe du langage

Nous entrons ici dans la documentation de référence qui se trouve ici.

Un exemple concret

Voici ici un exemple concret, c'est un petit scénario intitulé: "Du crabuge dans la cité de Larym" le source se trouve sur le lien suivant: Lahrym.sce .

Vous y découvrirez l'univers de la citée de Lahrym; L'auteur du scénario veux garder l'annonymat, mais il s'agit d'un auteur/concepteur célèbre travallant actuellement pour plusieurs grand éditeurs de jeu français. Il se s'agit évidement pas d'un scénario complet, mais il vous permet de vous familiariser avec la syntaxe du langage et en plus vous pourrez y jouer en téléchargant la version executable sous windows en mode console de massacre: ici Massacre.exe (attention cela fait 116 Ko).

Pour l'utiliser, copier les 2 fichiers "massacre.exe" et "Lahrym.sce" dans le même répertoire puis lancez en mode "dos" la commande suivante
Massacre Lahrym.sce


Logo Atari Logo Atari Logo Atari Logo Atari
Logo Loriciel Logo Loriciel Logo Loriciel Logo Loriciel
Zombi naze Zombi naze Zombi naze Zombi naze