Inform - Le Bottin des Jeux Linux

Inform

🗃️ Specifications

📰 Title: Inform 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Adventure & Action 🚦 Status: 05. Tested & Working (status)
🏷️ Category: Adventure & Action ➤ IF ➤ Text & Graphic ➤ Development 🌍️ Browser version:
🔖 Tags: Development; Interactive Fiction; Programming Language; Multimedia engine; Z-code format; Glulx format; Flagship; Choose Your Own Adventure; Multi-platform 📦️ Package Name: inform | inform7, inform7-ide
🐣️ Approx. start: 1993-01-01 📦️ Arch package:
🐓️ Latest: 2010-12-23 📦️ RPM package: ✓
📍️ Version: Latest: 10.1.2 / Dev: 6913557 📦️ Deb package: ✓
🏛️ License type: 🕊️ Libre 📦️ Flatpak package: ✓
🏛️ License: Artistic-2 📦️ AppImage package:
🏝️ Perspective: First person (interface) 📦️ Snap package:
👁️ Visual: 2D ⚙️ Generic binary:
⏱️ Pacing: Turn-Based 📄️ Source: ✓
👫️ Played: Single 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 👫️ Contrib.: goupildb & Louis
🎰️ ID: 11479 🐛️ Created: 2010-08-20
🐜️ Updated: 2023-10-29

📖️ Summary

[en]: A set of libre, multi-platform and mature tools for designing interactive fictions in Z-machine (files with extension z3, z5, z6, z8) or Glulx (more recent, more advanced, with multimedia content; files with extension .zblorb, .gblorb, z3, z5, z6, z8) formats. It includes an editor, a programming language (Inform 6 or 7), and a compiler, the latter translating textual commands into Z-code files readable by Z-machine or Glulx virtual machines. Interactive fictions are stories/games that can include different alternative scenarios that accept user interaction. This is done by entering keyboard commands (e.g., turn on the lamp) via an interface/player that supports the appropriate file format. [fr]: Un ensemble d'outils libres, multi-plateformes et matures de conception de fictions interactives aux formats Z-machine (fichiers avec extension z3, z5, z6, z8) ou Glulx (plus récent, plus évolué, avec du contenu multimédia ; fichiers avec extension .zblorb, .gblorb, z3, z5, z6, z8). Il comprend un éditeur, un langage de programmation (Inform 6 ou 7) et un compilateur, ce dernier traduisant les commandes textuelles en fichier Z-code lisible par les machines virtuelles Z-machine ou Glulx. Les fictions interactives sont des histoires/jeux pouvant comporter différentes alternatives de scénarios acceptant une interaction de l'utilisateur. Celle-ci s'effectue par saisie de commandes au clavier (ex.: allumer la lampe) via une interface/lecteur supportant le format de fichier adéquat.

🎥️ Videos


🦉️From Devs: (202006),


🕯️ How To: (202208), (201708), (201401),


🎮️ Showcase: (201011), (201812), (201310),

🕸️ Links

🏡️ Website & videos
[Homepage 1 2] [Dev site 1 2] [Features/About] [Screenshots] [Videos t(202xxx) gd(202006) gu(202xxx) r(202xxx) lp(202xxx) d(201011) d(201812) d(201310) d(200812) d(201811) d(202xxx) d(202xxx) ht(202208) ht(201708) ht(201401) ht(201705) ht(201510) ht(201805) ht(201301) ht(201302) ht(202204) ht[fr](202xxx) ht[de](202xxx) ht[ru](202xxx) ht[pl](202xxx) ht[cz](202xxx) ht[sp](202xxx) ht[pt](202xxx) ht[it](202xxx) ht[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3 4]

💰 Commercial: [Support their work (Donate)]

🍩️ Resources
• Interactive Fiction Community Forum (forums): [intfiction.org (Interactive Fiction Community Forum) (Inform 7 documentation and resources)]
• the Interactive Fiction Database (Interactive fiction in Inform7 format): [IFDB (system:Inform 7)]
• Fiction-interactive.fr (French-speaking community around interractive fiction): [Fiction-interactive.fr [fr]]
• Informfr et les jeux d'aventures textuels (Inform Games website in French language): [Informfr et les jeux d'aventures textuels [fr]]
• Interactive Fiction Pictures on mastodon (Screenshots from interactive fiction and text adventures): [Interactive Fiction Pictures on mastodon]

🛠️ Technical informations
[PCGamingWiki] [MobyGames] [ifwiki] [intfiction.org (Inform 7 v10.1.0 is now open-source)(20220428)]

🦣️ Social
Devs (Graham Nelson (ganelson) [fr] [en]): [Site 1 2 3] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202006) 2(202xxx)]
The Project: [Blog] [Chat] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikipedia (Inform) [fr] [en] [de]]
[Wikipedia (Interactive fiction) [fr] [en] [de]]
[Wikipedia (Z-machine) [fr] [en] [de]]
[Wikipedia (Glulx) [fr] [en] [de]]
[The Gaming Philosopher (200903)] [Linux Journal (200806)]

📦️ Misc. repositories
[Repology 1 2] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE(author's repo)] [Debian/Ubuntu] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🛠️ Title: Inform7
🦊️ What's: A set of libre & mature tools for designing interactive fiction
🏡️ https://ganelson.github.io/inform-website
🐣️ https://ganelson.github.io/inform
🔖 #LinuxGameDev #Flagship #Programming #InteractiveFiction
📦️ #Libre #Arch #RPM #Deb #Flatpak
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: 10.1.0 & 10.1.2
⚗️ Loads of new features ⭐️
📌️ Changes: https://github.com/ganelson/inform/releases
🦣️ From: https://intfiction.org/t/inform-7-v10-1-0-is-now-open-source/55674

🦉️ https://www.youtube.com/embed/ZL7HjuFyKeE
🕯️ https://www.youtube.com/embed/SXj1x5cF3K8
🕯️ https://www.youtube.com/embed/SqyV9Jmbex0
🎮️ https://www.youtube.com/embed/scMtjBOAeMU

📕 Description [en]

📕🐧"A set of libre, multi-platform and mature tools for designing interactive fiction"🐧📕

Inform is a natural-language-based programming language for writers of interactive fiction.

Inform is a programming language for creating interactive fiction, using natural language syntax. Using natural language and drawing on ideas from linguistics and from literate programming, Inform is widely used as a medium for literary writing, as a prototyping tool in the games industry, and in education, both at school and university level (where Inform is often assigned material for courses on digital narrative). It has several times ranked in the top 100 most influential programming languages according to the TIOBE index. Created in April 2006, it was open-sourced in April 2022.

Most users engage with Inform as an app on their devices: there are apps for MacOS, Windows, Linux and Android, but in the centre of each is the same core compiler and software. This website is part of the Github repository for that core, which is written as a "literate program", meaning that it is compiled both to a "woven", human-readable version as well as a "tangled", computer-executable version. You are now reading the woven version. For more on literate programming, go to the tool used by the Inform project: inweb

Like all complex software systems, Inform is an assemblage of many individual programs, images, PDF files, sets of test cases, documentation, and so on. This page is intended as a jumping-off point for browsing the source code and technical documentation: it doesn't list every last thing.


🌍️ Wikipedia:

Inform is a programming language and design system for interactive fiction originally created in 1993 by Graham Nelson. Inform can generate programs designed for the Z-code or Glulx virtual machines. Versions 1 through 5 were released between 1993 and 1996. Around 1996, Nelson rewrote Inform from first principles to create version 6 (or Inform 6).[3] Over the following decade, version 6 became reasonably stable and a popular language for writing interactive fiction. In 2006, Nelson released Inform 7 (briefly known as Natural Inform), a completely new language based on principles of natural language and a new set of tools based around a book-publishing metaphor.

Z-Machine and Glulx

The Inform compilers translate Inform code to story files for Glulx or Z-code, two virtual machines designed specifically for interactive fiction. Glulx, which can support larger games, is the default.

The Z-machine was originally developed by Infocom in 1979 for their interactive fiction titles. Because there is at least one such interpreter for nearly every major and minor platform, this means that the same Z-code file can be run on a multitude of platforms with no alterations. Originally Inform targeted the Z-machine only.

Andrew Plotkin created an unofficial version of Inform 6 that was also capable of generating files for Glulx, a virtual machine he had designed to overcome many of the limitations of the several-decades-old Z-machine. Starting with Inform 6.3, released February 29, 2004, Inform 6 has included official support for both virtual machines, based on Andrew Plotkin's work. Early release of Inform 7 did not support Glulx, but in August 2006 Glulx support was released.

Inform 6

Inform was originally created by Graham Nelson in 1993. In 1996 Nelson rewrote Inform from first principles to create version 6 (or Inform 6). Over the following decade, version 6 became reasonably stable and a popular language for writing interactive fiction.

The Inform 6 system consists of two major components: the Inform compiler, which generates story files from Inform source code, and the Inform library, a suite of software which handles most of the difficult work of parsing the player's text input and keeping track of the world model. The name Inform also refers to the Inform programming language that the compiler understands.

Although Inform 6 and the Z-Machine were originally designed with interactive fiction in mind, many other programs have been developed, including a BASIC interpreter, a LISP tutorial (complete with interpreter), a Tetris game, and a version of the game Snake.

The Inform 6 compiler

The Inform compiler generates files for the Z-machine or Glulx (also called story files) from Inform 6 source code.

The Inform 6 compiler

The Inform compiler generates files for the Z-machine or Glulx (also called story files) from Inform 6 source code.

The Inform 6 programming language

The Inform programming language is object-oriented and procedural. A key element of the language is objects. Objects are maintained in an object tree which lists the parent–child relationships between objects. Since the parent–child relationship is often used to represent location, an object which is the parent of another object is often said to "hold" it. Objects can be moved throughout the tree. Typically, top level objects represent rooms and other locations within the game, which may hold objects representing the room's contents, be they physical items, non-player characters, the player's character, or background effects. All objects can hold other objects, so a livingroom object might hold an insurancesaleman object which is holding a briefcase object which contains the insurancepaperwork object.

In early versions of Inform, objects were different from the notion of objects from object-oriented programming, in that there was no such thing as a class. Later versions added support for class definitions and allowed objects to be members of classes. Objects and classes can inherit from multiple classes. Interactive fiction games typically contain many unique objects. Because of this, many objects in Inform do not inherit from any class, other than the "metaclass" Object. However, objects very frequently have attributes (boolean properties, such as scenery or edible) that are recognized by the Inform library. In other languages this would normally be implemented via inheritance.

Here is a simple example of Inform 6 source code.

(...)

Inform 7

On April 30, 2006, Graham Nelson announced the beta release of Inform 7 to the rec.arts.int-fiction newsgroup. Inform 7 consists of three primary parts: The Inform 7 IDE with development tools specialized for testing interactive fiction, the Inform 7 compiler for the new language, and "The Standard Rules" which form the core library for Inform 7. Inform 7 also relies on the Inform library and Inform compiler from Inform 6. The compiler compiles the Inform 7 source code into Inform 6 source code, which is then compiled separately by Inform 6 to generate a Glulx or Z-code story file. Inform 7 also defaults to writing Blorb files, archives which include the Z-code together with optional "cover art" and metadata intended for indexing purposes. The full set of Inform 7 tools are currently available for Mac OS X, Microsoft Windows and Linux. The March 25, 2007 release added command line support for Linux, and new releases now include an IDE using the GNOME desktop environment under the GNOME Inform 7 SourceForge project. The language and tools remain under development; the March 25, 2007 release included a number of changes to the language. In April 2022 the source code was made available on Github under an Open source license. As of September 2022 the most up-to-date version of Inform 7 is available at https://github.com/ganelson/inform/releases

Inform 7 was named Natural Inform for a brief period of time, but was later renamed Inform 7. This old name is why the Inform 7 compiler is named "NI."

Inform 7 IDE


Inform 7 comes with an integrated development environment (IDE) for Mac OS X, Microsoft Windows and Linux. The Mac OS X IDE was developed by Andrew Hunter. The Microsoft Windows IDE was developed by David Kinder. The Linux IDE (known as GNOME Inform) was developed by Philip Chimento.

The Inform 7 IDE includes a text editor for editing Inform 7 source code. Like many other programming editors it features syntax highlighting. It marks quoted strings in one color. Headings of organizational sections (Volumes, Books, Chapters, Parts, and Sections) are bolded and made larger. Comments are set in a different color and made slightly smaller.

The IDE includes a built-in Z-code interpreter. The Mac OS X IDE's interpreter is based on the Zoom interpreter by Andrew Hunter, with contributions from Jesse McGrew[citation needed]. The Microsoft Windows IDE's interpreter is based on WinFrotz.

As a developer tests the game in the built-in interpreter, progress is tracked in the "skein" and "transcript" views of the IDE. The skein tracks player commands as a tree of branching possibilities. Any branch of the tree can be quickly re-followed, making it possible to retry different paths in a game under development without replaying the same portions of the game. Paths can also be annotated with notes and marked as solutions, which can be exported as text walkthroughs. The transcript, on the other hand, tracks both player commands and the game's responses. Correct responses from the game can be marked as "blessed." On replaying a transcript or a branch of the skein, variations from the blessed version will be highlighted, which can help the developer find errors.

The IDE also provides various indices into the program under development. The code is shown as a class hierarchy, a traditional IF map, a book-like table of contents, and in other forms. Clicking items in the index jumps to the relevant source code.

The IDE presents two side-by-side panes for working in. Each pane can contain the source code being worked on, the current status of compilation, the skein, the transcript, the indices of the source code, a running version of the game, documentation for Inform 7 or any installed extensions to it, or settings. The concept is to imitate an author's manuscript book by presenting two "facing pages" instead of a multitude of separate windows.

Inform 7 programming language

Notable features include strong bias towards declarative rule-based style of programming and ability to infer types and properties of objects from the way they are used. For example, the statement "John wears a hat." creates a "person" called "John" (since only people are capable of wearing things), creates a "thing" with the "wearable" property (since only objects marked "wearable" are capable of being worn), and sets John as wearing the hat.

Another notable aspect of the language is direct support for relations which track associations between objects. This includes automatically provided relations, like one object containing another or an object being worn, but the developer can add his/her own relations. A developer might add relations indicating love or hatred between beings, or to track which characters in a game have met each other.

Inform 7 is a highly domain-specific programming language, providing the writer/programmer with a much higher level of abstraction than Inform 6, and highly readable resulting source code.

Example game

(...)

📕 Description [fr]

Un ensemble d'outils libres et matures de conception de fictions interactives, par Graham Nelson (ganelson).

Inform est un ensemble d'outils libres, multi-plateformes et matures de conception de fictions interactives aux formats Z-machine (fichiers avec extension z3, z5, z6, z8) ou Glulx (plus récent, plus évolué, avec du contenu multimédia ; fichiers avec extension .zblorb, .gblorb, z3, z5, z6, z8). Il comprend un éditeur, un langage de programmation (Inform 6 ou 7) et un compilateur, ce dernier traduisant les commandes textuelles en fichier Z-code lisible par les machines virtuelles Z-machine ou Glulx. Les fictions interactives sont des histoires/jeux pouvant comporter différentes alternatives de scénarios acceptant une interaction de l'utilisateur. Celle-ci s'effectue par saisie de commandes au clavier (ex.: allumer la lampe) via une interface/ lecteur supportant le format de fichier adéquat.

Les ressources sont regroupées sur la fiche : "Ressources - Fiction interactive" et dans la subcat "Adventures - Fiction interactive - Contenu".


Inform est un langage de programmation en langage naturel destiné aux auteurs de fiction interactive.

Inform est un langage de programmation pour la création de fictions interactives, utilisant la syntaxe du langage naturel. Utilisant le langage naturel et s'inspirant d'idées issues de la linguistique et de la programmation lettrée, Inform est largement utilisé comme support d'écriture littéraire, comme outil de prototypage dans l'industrie des jeux et dans l'enseignement, tant au niveau scolaire qu'universitaire (où Inform est souvent utilisé comme matériel de cours sur la narration numérique). Il a été classé à plusieurs reprises dans le top 100 des langages de programmation les plus influents selon l'indice TIOBE. Créé en avril 2006, il a été mis en libre accès en avril 2022.

La plupart des utilisateurs utilisent Inform en tant qu'application sur leurs appareils : il existe des applications pour MacOS, Windows, Linux et Android, mais au centre de chacune se trouve le même compilateur et logiciel de base. Ce site Web fait partie du dépôt Github de ce noyau, qui est écrit comme un "programme lettré", ce qui signifie qu'il est compilé à la fois dans une version "tramée", lisible par l'homme, et dans une version "intriquée", exécutable par ordinateur. Vous êtes en train de lire la version tramée. Pour en savoir plus sur la programmation lettrée, consultez l'outil utilisé par le projet Inform : inweb.

Comme tout système logiciel complexe, Inform est un assemblage de nombreux programmes individuels, d'images, de fichiers PDF, d'ensembles de cas de test, de documentation, etc. Cette page est conçue comme un point de départ pour parcourir le code source et la documentation technique : elle ne liste pas tous les éléments.



🌍️ Wikipedia:

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 plateformes, 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.

(...)

Inform 7

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

🚧️ Installation ➜ 🚀️ Launching [fr]

⚙️ Installation à partir du binaire

📦️ Installation à partir du paquet Manjaro/Arch :
• (✔ v. 10.1.2) Il est dans les dépôts Manjaro/Arch (souvent dans sa dernière version), il suffit d'installer le(s) paquet(s). (inform7 & inform7-ide)

📄️ Installation à partir du source

• Source non testé.


🚀️ LANCEMENT DE L'INTERFACE:

▸ Classique :
• Si vous l'avez installé à partir d'un paquet, ou l'avez compilé puis installé dans les répertoires système : [Alt+F2] puis saisissez : inform7-ide

🕵️ Test [fr]

🕵️ Test (✔ v. 10.1.2) par goupildb (config. : Manjaro 64-bit) :
Le : 26 Octobre 2022
⏱️ Durée du test : 2 minutes.

🎯️ Objectif: tester son fonctionnement.

J'avais un doute s'il disposait d'une interface, et dans l'affirmative, j'avais envie de voir à quoi elle ressemblait.
L'installation (assez longue parce que par les dépôts AUR avec une superbe compilation qui fonctionne à merveille) a permis de lever le doute : oui.
L'interface (inform7-ide) est superbe et on sent très nettement un travail de peaufinement de longue haleine : on est guidé pas à pas jusqu'à la création du projet.

🕹️ Conclusion :
Impression globale : 👍️
Les développeurs (en particulier Graham Nelson) ont fait à la perfection tout le travail amont. Il ne vous reste plus qu'à écrire l'histoire interactive du siècle 😉️
👏️ ❤️ Un grand bravo et merci (notamment pour la version Linux !) à ses auteurs !