Inform (programmation)Inform est un compilateur et un langage de programmation, créé par Graham Nelson, dédié à la création de fictions interactives — ou jeux d'aventure en mode texte. Il permet de transformer des descriptions textuelles en un monde simulé pouvant être exploré par les joueurs depuis un ordinateur, grâce à un interprétateur[1]. Inform a été inventé en 1993, et a permis la création de milliers de jeux de fiction interactive dans plusieurs langues[1]. Inform n’était pas, lors de son lancement, le premier du genre. C’est en 1975 que la fiction interactive naquit, avec le jeu Adventure[2]. Si les aventures textuelles ont été populaires durant les années 80, elles ont cependant été supplantées par les jeux dotés d’une interface graphique durant la décennie suivante[3]. Cependant, même après sa vie commerciale, Inform perdure grâce à une communauté active[3]. En 2006, un nouveau langage Inform est lancé, basé sur Inform 6: Inform 7[4]. Ce dernier est un langage de programmation de plus haut niveau en comparaison de son aîné. Vue d’ensembleLe système Inform est composé d’un compilateur et de bibliothèques qui aident à la modélisation de jeux d’aventure textuels. Il existe deux versions majeures et populaires du système : Inform 6 et 7. Z-Machine et GlulxToutes les versions d'Inform génèrent des fichiers en Z-code, aussi appelés fichiers histoires, à partir d'un code source. Inform 6Le compilateurLe compilateur, nommé Inform, transforme le code source d'un jeu et des bibliothèques — écrits en langage Inform 6 ou 7 —, en un fichier Z-code lisible par les machines virtuelles Z-machine ou Glulx. Le langage de programmationLe langage Inform, dont la syntaxe générale est proche du C, est orienté objet et procédural ; les objets sont un élément clé du langage. Étant donné que ce langage sert à construire des histoires, les objets d'Inform ne sont pas nécessairement des entités réelles reproduites (par exemple une voiture, un bâtiment historique, etc.), mais sont plus précisément des objets fictionnels qui s’inscrivent par conséquent dans un monde fictionnel cohérent suivant une logique fictionnelle. Dans The Informer Beginner’s Guide, un objet est décrit comme étant «une collection de variables qui ensemble représentent les capacités et le statut actuel d’une composante spécifique du monde modélisé[3]». Voici l'exemple le plus simple d'un code source en langage Inform 6. !% -Cu
[ Main;
"Bonjour, le monde !";
];
Les bibliothèquesLes bibliothèques, associées au compilateur, constituent le moteur de jeu. Elles assurent la cohérence et la prise en charge de la complexité des interactions entre les commandes du joueur – saisies au clavier –, et le monde textuel imaginaire, modélisé sous la forme d’objets, dans lequel il évolue. Exemple de jeu!% -Cu
!% +Language_name=french
Constant Story "Exemple de jeu";
Constant Headline "^Écrit pour Wikipédia.^";
Constant NO_SCORE;
Include "parser";
Include "verblib";
Object Lieu_Ici "Ici"
with
description "Vous êtes dans une grande pièce avec de hauts piliers.^
Au nord, une porte imposante mène à Wikipédia.",
in_to [; << Go n_obj >>; ],
n_to [;
if (porte has locked)
"La porte est verrouillée.";
return Lieu_Wiki;
],
has light;
Object Lieu_Wiki "Ailleurs"
with
initial "La porte s'ouvre et vous entrez dans la bibliothèque Wikipédia.",
description "Wikipédia, l'encyclopédie libre !"
has light;
Object porte "porte" Lieu_Ici
with
name 'porte',
door_to Lieu_Wiki,
door_dir n_to,
with_key clef
has static female concealed door openable lockable locked;
Object chapeau "chapeau"
with
name 'chapeau',
description "C'est un chapeau en feutre noir, à bord court et relevé sur l'arrière."
has male clothing worn;
Object clef "clé"
with
name 'clé' 'clef',
description "C'est une clé pour devenir puissant, riche et célèbre !"
has female;
[ NewRoom;
if (location == Lieu_Wiki) deadflag = 2;
];
[ Initialise;
move chapeau to player;
move clef to player;
location = Lieu_Ici;
];
Include "frenchg";
Une transcription du jeu est visible sur la page Fiction interactive. Inform 7Le , Graham Nelson a annoncé la version beta d'Inform 7 sur la liste de diffusion rec.arts.int-fiction[5]. Cette nouvelle version qui lui a pris, à lui et son équipe, trois ans de développement dans le plus grand secret, est décrite comme une « réinvention radicale ». Inform 7 est en effet un programme complet fonctionnant sur MacOSX, Windows et Linux, avec une nouvelle syntaxe utilisant dorénavant du code source en langage naturel, sous forme de règles déclaratives, permettant à un auteur d’écrire avec plus de liberté. Inform 6 est toujours utilisé en traitement sous-jacent du code transcrit par l'interface d'Inform 7. Depuis avril 2022, Inform 7 est open source[6], et sa source disponible sur GitHub[7]. Notes et références
Liens externes |