# 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. Inform a été inventé en 1993, et a permis la création de milliers de jeux de fiction interactive dans plusieurs langues.
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. 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.
Cependant, même après sa vie commerciale, Inform perdure grâce à une communauté active. En 2006, un nouveau langage Inform est lancé, basé sur Inform 6: Inform 7. Ce dernier est un langage de programmation de plus haut niveau en comparaison de son aîné.

## Vue d’ensemble

Le 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. Les manuels disponibles pour l’apprentissage d’Inform, dont le DM4, sont en anglais ; il est cependant possible de réaliser des jeux dans d’autres langues, notamment en français, grâce à la traduction d’une partie des bibliothèques du système.

## Z-Machine et Glulx

Toutes les versions d'Inform génèrent des fichiers en Z-code, aussi appelés fichiers histoires, à partir d'un code source. Ces fichiers peuvent ensuite être exécutés par n’importe quel interpréteur qui implémente correctement les spécifications de la Z-machine — ordinateur imaginaire créé en 1979 par Joel Berez, Marc Blank et d’autres personnes travaillant pour la société Infocom — ou Glulx. Comme il existe au moins un interpréteur de ce type pour de nombreuses plates-formes, cela signifie que le même fichier Z-code peut être exécuté sur une multitude de systèmes sans modification. Néanmoins, la Z-machine ayant ses limites, une autre machine virtuelle, connue sous le nom de Glulx — crée par Andrew Plotkin —, a gagné en popularité. Capable de gérer des données et des adresses 32 bits, de supporter des jeux d’un poids supérieur à 512 Ko, elle permet aussi l’intégration de contenu multimédia dans les jeux.

## Inform 6
### Le compilateur

Le 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. Il est disponible sur les systèmes d'exploitations MS Windows, Mac OS et Linux ; la version actuelle est la 6.34. Il supporte l’encodage de caractères UTF-8 pour les fichiers sources des bibliothèques et des jeux.

### Le langage de programmation

Le 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é».
Voici l'exemple le plus simple d'un code source en langage Inform 6.

### Les bibliothèques

Les 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. Ce sont des fichiers de code, écrits en langage Inform, partageables en trois catégories distinctes : le moteur de jeu ; la grammaire ; les messages par défauts.

### Exemple de jeu

Une transcription du jeu est visible sur la page Fiction interactive.

## Inform 7

Le 30 avril 2006, Graham Nelson a annoncé la version beta d'Inform 7 sur la liste de diffusion rec.arts.int-fiction. 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, et sa source disponible sur GitHub.