Tech

De lang verloren broncode van ‘Zork’ is teruggevonden

De broncode werd eerder deze week gedeeld op GitHub, waarmee de programmeertaal van de populaire tekstgames in leven wordt gehouden.
Zork_photo

In 1977 schreven vier leden van het laboratorium voor computerwetenschappen aan het MIT een baanbrekend interactief fictieverhaal. Het resultaat was een van de eerste text-based adventure games. Het spel werd in drie delen uitgebracht door Infocom, onder de naam Zork (samen met Zork II en Zork III). In de spellen werden verhalen verteld aan de hand van de keuzes van de speler. “Je bereikt het einde van een gang. Welke kant ga je op?” is bijvoorbeeld een van de vragen die in het spel werden gesteld. De spelers konden vervolgens hun antwoorden uittypen om hun pad te vervolgen. Maar afgezien van zulke eenvoudige commando's, waren de games van Infocom ook in staat om complexere zinnen te begrijpen. Dit gaf hun spellen een bepaalde diepte die je in de rest van de gamewereld destijds nergens vond.

Advertentie

Infocom werd in 1986 door Activision opgekocht, om uiteindelijk binnen een paar jaar te worden stopgezet. Er zijn nog een aantal games van Infocom beschikbaar, waarmee de geest van Zork in leven wordt gehouden. Maar de broncode, die ons kan vertellen hoe Infocom destijds zo'n verfijnd spel wist te creëren, werd lange tijd als verloren beschouwd. Dat veranderde deze week, toen de broncodes van Infocoms tekstavonturen en interactieve fictieverhalen door internetarchivaris Jason Scott op GitHub werd geüpload. Hij deelde niet alleen de broncodes van de verschillende Zork-spellen, maar ook de videogame die Infocom in 1984 op The Hitchhiker's Guide to the Galaxy baseerde.

“Dit zijn de broncodes en formules die ten grondslag lagen aan de bestverkopende computerspellen uit de jaren tachtig,” vertelt Scott aan Motherboard. “De spellen van Infocom stonden jarenlang in de top tien en stonden erg hoog aangeschreven.”

De broncodes zijn van groot historisch belang voor veel fans van Zork. Het probleem is alleen dat maar weinig mensen begrijpen hoe de codes werken. Alle games van Infocom zijn gemaakt met de Zork Implementation Language (ZIL). Dit is gebaseerd op de oudere programmeertaal MIT Design Language (MDL), die zelf weer is gebaseerd op de programmeertaal Lisp.

“ZIL werd geschreven om adventure games te creëren op een manier waar mensen al 25 jaar geen commercieel gebruik meer van maken,” legt Scott uit. “Zelfs toen waren er maar zo’n 15 mensen die ZIL begrepen.”

Advertentie

De meeste mensen zullen waarschijnlijk vluchtig door de code heen gaan. “Voor hen is het gewoon leuk om de code te zien achter de games die ze als kind speelden,” voegt Scott toe. Voor een kleine groep programmeurs is deze informatie daarentegen van gigantisch belang in hun eigen onderzoek – bijvoorbeeld voor de leden van de facebookgroep ZIL - Zork Implementation Language. Deze groep werd twee jaar geleden opgericht door Zork-fanaten Jesse McGrew en Adam Sommerfield. Hun doel was om de taal via de groep beter te leren begrijpen en anderen erover te onderwijzen, maar het feit dat ze de originele broncode niet hadden als referentie, vormde een probleem. Sommerfield vertelt dan ook hoe fantastisch het voor de ZIL-gemeenschap is dat de broncode nu online staat.

“Allereerst is het van grote historische waarde dat we nu eindelijk naar de code kunnen kijken, het denkproces kunnen begrijpen en misschien zelfs een blik kunnen werpen in de hoofden van de Imps (Infocom Implementers). Maar daarnaast is dit een belangrijke uitbreiding van het referentiemateriaal en de bronnen die we gebruiken om ZIL te leren,” zegt Sommerfield.

Dave Lebling, een ontwikkelaar voor Infocom en een van de MIT-studenten die Zork heeft gemaakt, is ook lid van de facebookgroep. Sommerfield vertelt dat hij soms tips geeft aan andere leden van de groep. Steven Meretzky, een andere ontwikkelaar voor Infocom, steunt de groep ook en is dankbaar dat ze ZIL in leven houden.

Advertentie

De facebookgroep heeft de broncode getest met een compiler, die door McGrew werd gemaakt, en de code blijkt zowaar te werken. Het is een gebruiker zelfs gelukt om alle drie de spellen van Zork om te zetten. Enthousiastelingen als McGrew en Sommerfield kunnen nu zelf verder sleutelen aan de code en proberen de bestaande spellen aan te passen. De licenties vormen alleen wel een klein probleem. Scott geeft aan dat deze anoniem aan hem werden gegeven en “niet worden beschouwd als een open licentie.” Dat komt doordat Activision nog altijd de eigenaar is.

Scott heeft in 2015 ook al “een verzameling gedigitaliseerde scans uit een grote cache met documenten” geüpload. Deze scans hadden ook betrekking tot Infocom en werden door Scott 'The Infocom Cabinet' genoemd. In deze verzameling vind je aantekeningen, overboekingen en andere formulieren van Meretzky. Twee jaar later, in 2017, maakte Scott de film Infocom: The Documentary. In de documentaire legt hij het historische belang van de spellen vast, maar het behoud van de broncode bleek hierin van essentieel belang te zijn. “Tien jaar geleden kreeg ik het idee om de ontwikkeling van Infocom te vereeuwigen,” zegt Scott. “Ik dacht dat een groot deel hiervan verloren was gegaan, maar dat blijkt overduidelijk niet zo te zijn.

Scott schrijft in de documenten op GitHub dat de bestanden een momentopname van het ontwikkelingssysteem van Infocom zijn, op het moment dat het softwarebedrijf werd stopgezet. Hij geeft daarbij echter aan dat je de bestanden niet met de officiële spellen kunt vergelijken.

“Deze collectie is bedoeld als stof voor onderwijs, discussies en historisch werk,” schrijft Scott. “Het geeft onderzoekers en studenten de kans om te bestuderen hoe de code voor deze interactieve fictiespellen werd gemaakt en hoe het systeem omging met de invoer en verwerking van informatie.”

Voor degenen die iets minder fanatiek zijn, hebben de bronbestanden echter ook genoeg te bieden. Scott vertelt aan Motherboard dat de codes een aantal grapjes van de makers bevatten. “‘Game over’ wordt bijvoorbeeld ‘JIGS-UP’ genoemd,” vertelt Scott. De broncodes geven fans van Zork de kans om hun puzzels te herleven en de ingebouwde geheimen van de games te ontrafelen.