Ajouter un commentaire

Zork : mémoire virtuelle et « machine virtuelle » en… 1979

Par:
francoistonic

jeu, 16/07/2026 - 20:06

Les développeurs de Zork doivent imaginer des concepts avancés pour exécuter un code qui dépasse les capacités de la RAM et permettre un portage très jeu. Le code ne change pas ou presque. Il est exécuté par la Z-Machine. Nous sommes en 1979.  

Zork, ce nom appartient à la mythologie des jeux vidéo. La toute première version sort en 1980 : Zork I The Great Underground Empire. Il s’agit d’un jeu interactif 100 % textuel. On navigue, on interagit par des mots, des phrases.

Le joueur est un aventurier. Il se retrouve dans un royaume souterrain. Il part à la recherche de trésors et de richesses. Il faut résoudre des énigmes, combattre des monstres et explorer les souterrains. Un des défis est de trouver de la lumière et bien entendu, de rester en vie…

Les créateurs, des étudiants au MIT, étaient des amateurs de jeux de rôle et de Donjons & Dragons… Zork I marque véritablement une petite révolution dans le jeu et est le précurseur des jeux d’aventures qui vont suivre. Il a fallu presque 3 ans de développement. Le tout premier nom du jeu était Dungeon. 

Un énorme travail a été réalisé pour construire un monde cohérent avec l’empereur, les paysages, une monnaie, des religions, des habitants, etc. Une des difficultés dans la conception fut la programmation d’un interpréteur syntaxique qui puisse reconnaître et comprendre les phrases des utilisateurs. Pour structurer leur travail, les développeurs créent une société de développement fin 79. Quelques semaines plus tard, Zork I sort sur le marché sur toutes les principales machines du marché. Le succès sera immédiat et énorme : +1 million d’unités vendues !

La saga

Zork I : The great underground empire, 1980

Zork II : the wizard of Frobozz, 1981

Zork III : the dungeon master, 1982

Beyond Zork, 1987

Zork Zero, 1988

Plusieurs autres jeux peuvent se rattacher au monde de Zork, comme Return to Zork ou Zork Nemesis.  

Une idée géniale

L’idée de base est géniale : avec des commandes, des verbes, des mots simples, le joueur navigue dans le jeu et interagit avec lui. Mais l’interaction se fait aussi, comme nous l’avons évoqué plus haut, avec de véritables phrases : opening the small box.  

Les créateurs de Zork jouaient à Adventure, le précurseur sorti en 1976. Mais le jeu était moins ambitieux et très limité. Les commandes ne pouvaient pas dépasser deux mots. Mais Adventure créa un nouveau marché. 

Zork, comme Adventure, fut tout d’abord écrit en langage MDL pour le PDP-10 (construit par DEC), un énorme ordinateur, très utilisé dans les universités. C’est pour cela que les premières versions du jeu étaient accessibles uniquement sur une machine PDP-10, à travers une connexion Arpanet (l’ancêtre d’Internet). Le fait d’utiliser un mainframe pour jouer n’était pas l’idéal. Avec les premiers micro-ordinateurs familiaux, un énorme marché commençait à s’ouvrir. 

Comment porter rapidement ?

Pour pouvoir plus facilement porter le jeu et avoir un modèle de programmation souple, l’équipe va créer leur propre langage : ZIL (Zork Implementation Language). ZIL s’inspire du langage initial : MDL (MIT Design Language), lui-même s’appuyant sur LISP.  Pour les développeurs, il fallait aussi exécuter le jeu sur des machines beaucoup moins puissantes que le PDP-10. L’Apple II ou le TRS-80 n’embarquaient que 32 Ko en standard, voire moins. Pour réussir ce tour de force, il a fallu réduire le nombre de pièces, d’objets disponibles et le vocabulaire du jeu. 

Pour faciliter le portage sur les multiples micro-ordinateurs du marché, l’équipe va créer une machine virtuelle pour assurer une abstraction, la Z-machine. Seule la Z-machine est réécrite et optimisée, en code assembleur, sur chaque plateforme matérielle. 

Le cœur du code de Zork ne change pas, ou très peu. Un compilateur, optimisé pour chaque plateforme, était utilisé pour compiler le jeu. La Z-machine devait « juste » supporter les binaires ZIL. 

L’interpréteur du jeu et le fichier contenant la carte, les objets et tous les éléments du gameplay, nécessitaient 77 Ko. Mais la plupart des micro-ordinateurs ne disposaient pas de cette mémoire vive. Il a fallu développer une sorte de mémoire virtuelle et utiliser moins de mémoire dynamique pour le gameplay (à tout moment, le joueur doit savoir où il est et les objets dont il dispose).  

Bibliographie

https://www.filfre.net/2012/01/zil-and-the-z-machine/

https://www.gamasutra.com/view/feature/1499/the_history_of_zork.php?print=1 

http://inform-fiction.org/zmachine/standards/z1point1/appd.html

Z-Machine documentation

Pour découvrir l'histoire de la micro-informatique, lisez Technosaureshttps://www.programmez.com/catalogue/technosaures

 

 

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 V     V   AA   V     V  ZZZZZ      J 
V V A A V V Z J
V V AAAA V V Z J
V V A A V V Z J J
V A A V ZZZZZ JJJ