Z-machine

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
 Ne doit pas être confondu avec Z machine.

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

Histoire[modifier | modifier le code]

Infocom[modifier | modifier le code]

Le jeu d'aventure textuel Zork fut originellement créé pour les mini-ordinateurs PDP-10, par Dave Lebling et Marc Blank, alors étudiants au MIT. Devant le succès du jeu, qui se répandit via l'Arpanet, ils participèrent à la création d'Infocom, une société de développement de jeux d'aventure textuels. L'idée était d'adapter Zork pour les micro-ordinateurs, mais le jeu original était codé en MDL (en), et pesait 1 Mo, ce qui était bien trop gros pour les micro-ordinateurs de l'époque. Le jeu fut ainsi séparé en 3 parties, et un langage de programmation, le ZIL (pour "Zork Implementation Language") fut créé à partir de MDL (notamment en enlevant des fonctionnalités inutiles pour un jeu d'aventure textuel)[1].

Afin de résoudre le problème de la portabilité et de pouvoir commercialiser le jeu sur un grand nombre de plateformes, il fut décidé de créer une machine virtuelle, capable de lancer Zork et tout autre jeu codé en ZIL. Notons que le concept de machine virtuelle était relativement nouveau à l'époque, bien que popularisé par la P-machine, créée en 1978 qui permettait d'exécuter des programmes écrits en Pascal[1]. Il suffisait ensuite de créer, pour chaque micro-ordinateur, du code spécifique qui émulait la Z-machine et permettait de lancer des fichiers compilés pour la Z-machine ; on n'avait ainsi besoin d'écrire ce code qu'une seule fois pour que tous les jeux compilés pour la Z-machine puissent être joués sur ce type de micro-ordinateur. C'est ainsi que les jeux Infocom sortirent un grand nombre de micros nord-américains (Atari 400/800, CP/M, IBM PC, TRS-80 Model II et III, NEC APC, DEC Rainbow, Commodore 64, TI Professional, DECmate, Tandy-2000, Kaypro II, Osborne 1, MS-DOS, TI 99/4A, Apple Macintosh, Epson QX-10, Apricot, Atari ST, Amiga[2] ; on peut noter l'absence de l'Amstrad CPC ou l'Oric, plus populaires en Europe[3].

Plusieurs versions de la Z-machine furent développées par Infocom pendant les années 1980. La version 3 vit le jour en 1982, et permettait de jouer à des jeux de 128Ko ; les jeux développés pour cette version de la Z-machine étaient ceux de la série "Standard"[2]. La version 4 vit le jour en 1985, avec A Mind Forever Voyaging et Trinity, et d'autres jeux de la série "Plus". La version 5 apparut en 1987 avec Beyond Zork, et introduisit de nouvelles fonctionnalités et opcodes qui enrichissent la Z-machine, tels que les jeux de 256Ko ou les effets temporels. Notons qu'à cette époque Infocom voyait ses ventes ralentir, et Activision, qui venait de l'acheter, voulait augmenter le rythme de production et la rentabilité, ce qui conduisit à l'implantation d'idées et de fonctionnalités qui s'éloignent des aventures purement en mode texte, parfois de façon pas forcément très heureuse[4]. La version 6 de la Z-machine vit le jour en 1988, et ajouta des capacités graphiques et la gestion de la souris, ce qui s'éloignait des jeux Infocom traditionnels ; seulement quatre jeux sortirent avant la fermeture du studio.

Scène amateur[modifier | modifier le code]

Le début des années 1990 vit la création par Graham Nelson d'Inform, un langage de programmation pour aventures textuelles muni d'un compilateur qui permettait de compiler les jeux Inform pour la Z-machine. Ceci relança l'intérêt pour la Z-machine, puisqu'il était désormais possible à n'importe qui de créer des fictions interactives pour la Z-machine. Deux nouvelles versions furent créées ; la dernière, la version 8, permet la création de jeux pesant jusqu'à 512Ko.

Dans les années 1990 une machine virtuelle nommée Glulx fut créée par Andrew Plotkin, avec pour but d'étendre les capacités de la Z-machine et de s'affranchir des contraintes, notamment de taille. Les jeux créés pour Glulx permettent ainsi d'utiliser des images, des sons et musiques, des effets temporels, des fenêtres et des liens hypertextes ; de plus, leur taille n'est (en théorie) pas limitée. De plus, le fait que le compilateur Inform peut compiler du code pour en faire un jeu Glulx en fait en quelque sorte le successeur de la Z-machine.

De nos jours, il existe des milliers de jeux pour la Z-machine, dont des classiques du genre tels que Galatea, Spider and Web et Photopia. Elle risque cependant d'être moins utilisée dans les années qui suivent, puisque la dernière version du langage Inform, Inform 7 6L38, intègre trop de fonctionnalités pour qu'un jeu de taille moyenne puisse avoir une taille inférieure à 512Ko ; le format par défaut est ainsi la machine virtuelle Glulx. Cependant il est toujours possible d'écrire des jeux pour la Z-machine, en utilisant le langage Inform 6 (qui est toujours maintenu) ou même ZIL, pour lequel un compilateur moderne (ZILF) a été écrit.

Interpréteurs Z-machine[modifier | modifier le code]

Il existe de nombreux interpréteurs pour la Z-machine, permettant d'émuler la Z-machine sur un système particulier et ainsi de jouer aux jeux compilés pour la Z-machine. Ces fichiers se reconnaissent à leur extension : .dat pour les jeux Infocom, et .z3, .z5, .z6, .z8 pour les fichiers modernes.

L'interpréteur historique pour la Z-machine est Frotz, un logiciel libre écrit en C, et disponible sur une grande variété de plateformes : Windows (via Windows Frotz), Mac, Unix, iOS, Palm OS, mais aussi Kindle, Game Boy Advance ou Raspberry Pi. Un autre interpréteur important est Parchment, un interpréteur écrit en JavaScript et qui permet donc de jouer aux jeux pour Z-machine dans un navigateur Internet.

Il existe de nombreux interpréteurs pour Z-machine, écrits dans de nombreux langages et permettant de jouer sur de nombreuses plateformes. Il existe ainsi des interpréteurs récents sur mobile (iOS et Android) ou pour iRC (Grue), ainsi que pour des vieux micro-ordinateurs (Zeugma, qui permet de jouer à des jeux pour la Z-machine version 5 sur un Commodore 64) ou des calculatrices scientifiques (Foblub pour TI-89) ; mais également, de façon plus inattendue, pour Arduino (Zorkduino) ou même pour stylos Livescribe[5].

Enfin, la Z-machine a récemment été implantée en hardware (pour la première fois, s'agissant d'une machine virtuelle), puisque la version 3 de la Z-machine peut être implantée sur FPGA[6].

Références[modifier | modifier le code]

  1. a et b Jimmy Maher, ZIL and the Z-Machine.
  2. a et b Graham Nelson, A short history of the Z-machine, Appendice D du Designer's Manual 4.
  3. Hugo Labrande, "Racontons une histoire ensemble : histoire et caractéristiques de la fiction interactive francophone", Transcript in Press (disponible ici).
  4. Jimmy Maher, ... And Into the Fire.
  5. (en) [vidéo] « Zork and Tic-Tac-Toe on a Livescribe Pen » sur YouTube, mis en ligne le 6 décembre 2010.
  6. Article et code.

Liens externes[modifier | modifier le code]