Article de reference

Machine Z

La Z-machine est une machine virtuelle développée par Joel Berez et Marc Blank en 1979 et utilisée par Infocom pour ses jeux d'aventure textuels . Infocom a compilé le code du j...

La Z-machine est une machine virtuelle développée par Joel Berez et Marc Blank en 1979 et utilisée par Infocom pour ses jeux d'aventure textuels . Infocom a compilé le code du jeu dans des fichiers contenant des instructions Z-machine (appelés fichiers d'histoire ou fichiers de code Z) et pouvait donc porter ses aventures textuelles sur une nouvelle plate-forme simplement en écrivant une implémentation Z-machine pour cette plate-forme. Avec le grand nombre de systèmes informatiques domestiques incompatibles utilisés à l'époque, c'était un avantage important par rapport à l'utilisation de code natif ou au développement d'un compilateur pour chaque système.

Histoire

Le « Z » de Z-machine signifie Zork , le premier jeu d'aventure d'Infocom. Les fichiers Z-code ont généralement des noms se terminant par .z1, .z2, .z3, .z4, .z5, .z6, .z7 ou .z8, où le numéro est le numéro de version de la Z-machine sur laquelle le fichier est censé être exécuté, tel qu'il est donné par le premier octet du fichier d'histoire.

Il s'agit cependant d'une convention moderne. Infocom utilisait elle-même les extensions .dat (Data) et .zip (ZIP = Z-machine Interpreter Program), mais cette dernière était en conflit avec l'utilisation répandue de .zip pour les fichiers d'archive compatibles PKZIP à partir des années 1990, après qu'Activision ait fermé Infocom. Infocom a produit six versions de la Z-machine. Les fichiers utilisant les versions 1 et 2 sont très rares. Seuls deux fichiers de la version 1 sont connus pour avoir été publiés par Infocom et seulement deux de la version 2. La version 3 couvre la majorité des jeux publiés par Infocom. Les versions ultérieures avaient plus de capacités, aboutissant à un certain support graphique dans la version 6.

Le compilateur (appelé Zilch) qu'Infocom utilisait pour produire ses fichiers d'histoire n'a jamais été publié, bien que la documentation du langage utilisé, appelé ZIL , un langage de la famille Lisp similaire à MDL , existe toujours, et qu'un remplacement open source « ZILF » ait été écrit. Après que Mediagenic ait déménagé Infocom en Californie en 1989, Computer Gaming World a déclaré que « ZIL ... est fonctionnellement mort », et a rapporté des rumeurs sur un « analyseur complètement nouveau qui pourrait ne jamais être utilisé ». En mai 1993, Graham Nelson a publié la première version de son compilateur Inform , qui génère également des fichiers d'histoire Z-machine en sortie, même si le langage source Inform est assez différent de ZIL.

Inform est devenu populaire dans la communauté de la fiction interactive . Une grande partie de la fiction interactive se présente sous la forme de fichiers d'histoire Z-machine. La demande de pouvoir créer des fichiers de jeu plus volumineux a conduit Nelson à spécifier les versions 7 et 8 de la Z-machine, bien que la version 7 soit rarement utilisée. En raison de la façon dont les adresses sont gérées, un fichier d'histoire de version 3 peut atteindre 128 Ko de longueur, une histoire de version 5 peut atteindre 256 Ko de longueur et une histoire de version 8 peut atteindre 512 Ko de longueur. Bien que ces tailles puissent sembler petites par rapport aux normes informatiques actuelles, pour les aventures uniquement textuelles, elles sont suffisamment grandes pour des jeux élaborés.

Dans les années 1990, Graham Nelson a élaboré une norme Z-Machine basée sur des études détaillées des fichiers Infocom existants. La norme comprend également des extensions utilisées par ses versions plus récentes, ainsi que des liens vers le format de ressources « Blorb » utilisé par Infocom et un format de fichier de sauvegarde « Quetzal ». Glulx 32 bits pour Inform 7. L' Interactive Fiction Technology Foundation , fondée en 2016, gère toutes ces normes.

ZIL (langage d'implémentation Zork)

Le ZIL est basé sur le MDL du MIT. Voici la définition de la lanterne en laiton du Zork I :

<OBJET LANTERNE ( LOC SALON ) ( SYNONYME LAMPE LANTERNE LUMIÈRE ) ( ADJECTIF LAITON ) ( DESC "lanterne en laiton" ) ( DRAPEAUX TAKEBIT LIGHTBIT ) ( ACTION LANTERNE-F ) ( FDESC "Une lanterne à piles se trouve sur la vitrine à trophées." ) ( LDESC "Il y a une lanterne en laiton (à piles) ici." ) ( TAILLE 15 ) >

Un exemple plus complexe impliquant le combat, ainsi que son équivalent MDL Zork, est présenté dans un article de blog de 2019 d'Andrew Plotkin. Notamment, la machine Z ne prend pas en charge le ramasse-miettes et ZIL n'a aucun concept du système de liste de Lisp.

Interprètes

Une implémentation de Frotz fonctionnant sur un iPhone , jouant la version MIT de Zork .

Les interprètes pour les fichiers Z-code sont disponibles sur une grande variété de plates-formes. Le site Web Inform répertorie des liens vers des interprètes disponibles gratuitement pour 15 systèmes d'exploitation de bureau (y compris les micro-ordinateurs 8 bits des années 1980 tels que l' Apple II , le TRS-80 et le ZX Spectrum , et regroupant « Unix » et « Windows » en un seul), 10 systèmes d'exploitation mobiles (y compris Palm OS et Game Boy ) et quatre plates-formes d'interprétation (Emacs, Java, JavaScript et Scratch). Selon Nelson, il s'agit « probablement de la machine virtuelle la plus portable jamais créée ».

Les interpréteurs les plus populaires sont Nitfol et Frotz. Nitfol utilise l' API Glk et prend en charge les versions 1 à 8 de la Z-machine, y compris la version 6 de la Z-machine graphique. Les fichiers de sauvegarde sont stockés dans le format de sauvegarde standard de Quetzal . Les fichiers binaires sont disponibles pour plusieurs systèmes d'exploitation différents , notamment le système d'exploitation Mac OS classique , les systèmes de type Unix , DOS et Windows .

Frotz a été écrit en C par Stefan Jokisch en 1995 pour DOS. Au fil du temps, il a été porté sur d'autres plates-formes, telles que les systèmes de type Unix , RISC OS , et iOS . Les effets sonores et les graphiques ont été pris en charge à des degrés divers. En 2002, le développement a stagné et le programme a été repris par David Griffith. La base de code a été divisée entre la machine virtuelle et les parties d'interface utilisateur de telle manière que la machine virtuelle est devenue indépendante de toute interface utilisateur. Cela a permis une plus grande variété dans le portage de Frotz. L'un des ports les plus étranges est également l'un des plus simples : un bot de messagerie instantanée est enveloppé autour d'une version de Frotz avec la fonctionnalité d'E/S minimale créant un bot avec lequel on peut jouer à la plupart des jeux Z-machine en utilisant un client de messagerie instantanée.

Zoom est un autre client populaire pour macOS et d'autres systèmes de type Unix . Il prend en charge le même format de sauvegarde Quetzal , mais le packaging de la structure du fichier est différent.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index