Zork sul PDP-10
The Digital Antiquarian (la traduzione ufficiale italiana)

Continua il ciclo di articoli dedicato alla nascita di Infocom e ai primi tre capitoli della celebre serie di Zork. Sì avete letto bene: nel corso del nostro viaggio analizzeremo i primi tre capitoli di Zork. Contrariamente a quanto annunciato nell'ultimo editoriale, non ci limiteremo ai primi due titoli della leggendaria serie Infocom, ma chiuderemo la trilogia originale, com'è giusto che sia. 
Pertanto considerate l'indice riportato di seguito, soltanto parziale. Sarà nostra premura completarlo non appena sarà possibile, e se proprio non potete resistere, cliccate in fondo all'articolo per fiondarvi nel blog originale del "The Digital Antiquarian" ... ma non vorrete rovinarvi la sorpresa, vero?
 
A proposito, nel caso vi steste ancora chiedendo perché Zork sia così attuale qui su OldGamesItalia, vi consiglio di visitare attentamente la sezione "traduzioni" del nostro forum... 
Ecco il solito indice degli articoli:
 
Zork sul PDP-10
La Nascita della Infocom
ZIL e la Z-Machine
Come Vendemmo Zork
Giochi a Parser
Esplorando Zork, Parte 1
Esplorando Zork, Parte 2
Esplorando Zork, Parte 3
Infocom: Come Cavarsela da Soli
Zork II, Parte 1
Zork II, Parte 2
 
Buona lettura esploratori e ... attenti ai grue!
 
Festuceto
 
Uno dei tratti distintivi degli hacker è il non considerare mai un programma davvero completamente e definitivamente finito; ci sono sempre aggiunte da fare, angoli da smussare. E di certo Adventure, per quanto impressionante, lasciava ampio spazio ai miglioramenti. Dobbiamo poi aggiungere che Adventure arrivò al MIT attraverso Don Woods dell'AI Lab della Stanford, forse l'unico corso di informatica della nazione che aveva la statura per potersi confrontare alla lontana con quello del MIT. Gli studenti del MIT erano fieramente orgogliosi della propria Università. Anche se la Stanford aveva prodotto per prima un gioco d'avventura, il Dynamic Modeling Group del MIT avrebbe potuto quantomeno farlo meglio. E certo non nuoceva alla causa il fatto che il Project MAC e il Laboratory for Computer Science (per non parlare dello stesso Dynamic Modeling Group) avessero donato loro degli ottimi strumenti con cui affrontare il problema.
 
Adventure era stata implementato in FORTRAN, un linguaggio non particolarmente adatto alla creazione di un'avventura testuale. E infatti il FORTRAN non poteva nemmeno gestire nativamente le stringhe di lunghezza variabile, lasciando a Crowther e Woods il compito di arrangiare qualche soluzione, come del resto dovettero fare anche con molti altri problemi. Come sappiamo, entrambi erano programmatori molto talentuosi e ci riuscirono al meglio. E così gli hacker del Dynamic Modeling Group (la cui opinione del FORTRAN era solo un gradino superiore a quella che avevano del BASIC) non vedevano l'ora di progettare il proprio gioco d'avventura con il proprio linguaggio, l'MDL. Non solo l'MDL (essendo un linguaggio progettato, almeno in parte, per la ricerca nel campo dell'Intelligenza Artificiale) poteva vantare capacità di gestione di stringhe relativamente robuste, ma offriva anche la possibilità di definire dei nuovi “data type” complessi, adatti per compiti specifici, e la possibilità di inserire direttamente in tali strutture dei pezzi di codice. Lasciatemi provare a spiegarvi perché tutto questo era così importante.
 
Inizieremo con la stanza di apertura di Zork, il gioco che alla fine fu prodotto dal Dynamic Modeling Group in risposta ad Adventure. La descrizione di tale stanza al giocatore [nella nostra traduzione italiana di Zork I; ndAncient] appare così:
 
 
West of House
This is an open field west of a white house, with a boarded front door.
There is a small mailbox here.
A rubber mat saying 'Welcome to Zork!' lies by the door.
 
Questo è il codice sorgente originale in MDL che descrive la stanza:
 
<ROOM "WHOUS"
"This is an open field west of a white house, with a boarded front door."
"West of House"
<EXIT "NORTH" "NHOUS" "SOUTH" "SHOUS" "WEST" "FORE1"
"EAST" #NEXIT "The door is locked, and there is evidently no key.">
(<GET-OBJ "FDOOR"> <GET-OBJ "MAILB"> <GET-OBJ "MAT">)
<>
<+ ,RLANDBIT ,RLIGHTBIT ,RNWALLBIT ,RSACREDBIT>
(RGLOBAL ,HOUSEBIT)><
 
Praticamente tutto ciò che il programma deve sapere di questa stanza è incapsulato qui dentro in modo ordinato. Analizziamolo, linea per linea. Il tag “ROOM” [stanza] all'inizio definisce questa struttura come una stanza, chiamata brevemente “WHOUS” [abbreviazione di "West of House", cioè "A Ovest della Casa", ndAncient]. La linea di testo seguente è la descrizione della stanza che il giocatore vede quando vi entra la prima volta o quando digita “GUARDA”. “West of House” è invece il nome completo della stanza, quello che appare come titolo della descrizione della stanza e nella linea di stato in cima allo schermo, ogni volta che il giocatore si trova in questa stanza. Poi abbiamo un elenco di uscite dalla stanza, andare a nord porta il giocatore a “North of House,” a sud lo porta a “South of House”, a ovest in una di diverse stanze che compongono la “Foresta”. Cercare di andare a est produrrà invece uno speciale messaggio di fallimento, che riferirà al giocatore di non essere in possesso di una chiave per aprire la porta, anziché il generico: “Non puoi andare in quella direzione”. Subito dopo abbiamo gli oggetti che si trovano nella stanza all'inizio del gioco: la porta frontale, la cassetta delle lettere, e il tappetino di benvenuto. Quindi una serie di "flag" definisce altre proprietà della stanza: che è asciutta anziché invasa dall'acqua, che è illuminata anche se il giocatore non ha con sé una lanterna accesa; che (essendo all'aperto) non ha pareti; che è “sacred” [“sacra”] (il che significa che il ladro -un personaggio che vaga in giro, infastidendo il giocatore in modo non dissimile dai nani e dal pirata di Adventure- non può venire qui). E, alla fine, l'ultima linea associa questa stanza alla "white house" o, per essere più precisi, la associa a una parte della “regione casa” della geografia del gioco.
 
Ogni oggetto e ogni personaggio del gioco è definito da un simile blocco, che spiega quasi tutto ciò che il gioco deve sapere al riguardo. Va aggiunto anche che le abilità e le capacità speciali di oggetti e personaggi sono descritti come parti di essi, utilizzando dei collegamenti a delle sezioni speciali del codice, create appositamente. Per questo una volta che l'impalcatura del codice alla base di tutto questo fu creata (cosa che, ovviamente, non era affatto banale), aggiungere nuovo contenuto a Zork era prevalentemente una questione di aggiungere più stanze, più oggetti, e più personaggi, senza bisogno ogni volta di rituffarsi nell'"engine" che muoveva il tutto; solo le capacità speciali degli oggetti e dei personaggi dovevano essere programmate da zero e collegate nei punti giusti. Componendo il mondo da una raccolta di “oggetti” integrati, gli hacker del Dynamic Modeling Group stavano inconsapevolmente dirigendosi verso un nuovo paradigma nella programmazione, che sarebbe giunto alla ribalta dell'informatica solo alcuni anni dopo: la programmazione orientata agli oggetti, in cui i programmi non sono rigorosamente divisi nel codice che li esegue e nei dati che esso manipola, ma sono piuttosto costruiti dall'interazione di oggetti semi-autonomi che contengono il proprio codice e i propri dati. Un tempo considerata praticamente la soluzione a ogni problema (forse persino alla fame nel mondo), oggigiorno in certe aree, ci sono delle resistenze (probabilmente giustificate) alla imposizione, applicata a prescindere, della teoria della programmazione orientata agli oggetti operata da certi linguaggi, come il Java. Sia come sia, la programmazione orientata agli oggetti resta praticamente la soluzione ideale nella creazione delle avventure testuali. Per mostrarvi cosa intendo, guardiamo all'alternativa, illustrata da Adventure (scritto in FORTRAN, un linguaggio altamente NON orientato agli oggetti).
 
Ad ogni stanza di Adventure è assegnato un numero da 1 (la location iniziale, naturalmente all'esterno di un piccolo edificio di mattoni) fino a 140 (stavolta, meno naturalmente, un vicolo cieco in un labirinto). Per trovare la descrizione completa della stanza (quella che viene mostrata al giocatore quanto vi entra per la prima volta o quando la GUARDA) il programma scava nella prima tabella di un file esterno di dati, confrontando il numero della stanza alle rispettive voci.
 
1
1 YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK BUILDING.
1 AROUND YOU IS A FOREST.  A SMALL STREAM FLOWS OUT OF THE BUILDING AND
1 DOWN A GULLY.
 
Un'altra tabella mostra invece la descrizione breve che viene visualizzata quando si entra in una stanza già visitata:
 
1 YOU'RE AT END OF ROAD AGAIN.
 
E ora viene il bello. Un'altra tabella ancora ci dice cosa ci aspetta in ogni direzione cardinale.
 
1 2 2 44 29
1 3 3 12 19 43
1 4 5 13 14 46 30
1 5 6 45 43
1 8 63
 
La prima linea di cui sopra ci dice che quando siamo in stanza 1, possiamo andare in stanza 2 digitando una delle tre voci di un'altra tabella ancora; in questo caso: “ROAD o HILL” (voce 2); “WEST” or “W” (voce 44); or “UPWAR” (infatti le parole vengono confrontate sulla base dei primi 5 caratteri soltanto [in questo caso la parola completa sarebbe UPWARD, formata da 6 caratteri, che significa SU; ndAncient], “UP,” “ABOVE,” or “ASCEN” (voce 29). In modo del tutto analogo, le definizioni degli oggetti sono sparpagliate su più tabelle all'interno del data file. Quindi, anche se Adventure tenta almeno in parte di astrarre il suo "engine" dai dati che compongono il suo mondo (collocando questi ultimi in un "data file" esterno), modificare il mondo stesso è un procedimento rognoso e foriero di errori, che consiste nell'editare più tabelle criptiche. I primi "engine" per avventure testuali sui microcomputer, come quelle di Scott Adams, funzionano tutti in questo modo. E anche se era comunque possibile sviluppare dei tool che alleviassero il fardello di modificare a mano i "data file", il sistema di Zork basato sull'MDL è flessibile e programmabile in un modo ben superiore a quello di questi sistemi: non essendo possibile inserire del codice all'interno degli oggetti del mondo di gioco, creare oggetti non standard in Adventure o in un gioco di Scott Adams richiedeva generalmente di andare a modificare il codice dell'"engine"; non proprio il massimo.
 
Per questo l'MDL era semplicemente migliore per scrivere un'avventura testuale che fosse capace di rappresentare limpidamente un mondo vasto, in un modo che fosse anche leggibile e facilmente mantenibile. Era quasi come se l'MDL fosse stato progettato a questo scopo. Ed effettivamente, se avete usato un linguaggio di programmazione di IF più moderno (come Inform 6), sareste rimasti sorpresi da quanto poco sia cambiato l'approccio nella definizione del mondo rispetto ai giorni dell'MDL di Zork. (Inform 7, uno degli ultimi, e migliori, tool per lo sviluppo di IF si è allontanato dal modello della programmazione orientata agli oggetti in favore di un approccio basato su regole più leggibili -se non addirittura più “letterarie”-. Basti dire che i meriti e gli svantaggi dell'approccio di Inform 7 sono un argomento troppo complesso per essere affrontato in questa sede. Forse ne riparleremo fra 20 anni, quando finalmente il Digital Antiquarian si occuperà dell'anno 2006...)
 
E gli hacker del Dynamic Modeling Group avevano ancora un altro asso nella loro manica.
 
Il MIT aveva all'attivo importanti ricerche sulla comprensione del linguaggio naturale nel computer, che risalivano almeno fino a Joseph Weizenbaum e al suo sistema ELIZA del 1966. E se quel programma alla fin fine era poco più di un elaborato trucco da salotto, esso però ispirò altri e più rigorosi tentativi di far parlare a un programma un buon inglese. È estremamente noto quello che fra il 1968 e il 1970 fu sviluppato da Terry Winograd sotto il nome di SHRDLU, che simulava un modello di mondo composto di blocchi. L'utente poteva chiedere al programma di manipolare questo mondo, spostando i blocchi di posto in posto, impilandoli, e così via, il tutto limitandosi a digitare le sue richieste con delle semplici frasi imperative in lingua inglese. Era perfino possibile porre delle semplici domande al computer, per sapere ad esempio quale blocco fosse collocato in una determinata posizione. Piuttosto sopravvalutato all'epoca (come gran parte della ricerca sull'intelligenza artificiale), quasi fosse un passo decisivo verso HAL, SHRDLU riuscì comunque a dimostrare che, almeno all'interno di un dominio molto ristretto, è possibile per un programma parlare e “comprendere” realmente un significativo sottoinsieme della lingua inglese. Partendo dalla tradizione di SHRDLU, gli hacker del Dynamic Modeling Group crearono un parser per avventure testuali che era oggettivamente il primo mai creato a essere degno del termine. E se Adventure se la cavava con un semplice riconoscimento delle parole (stratagemma reso palese dal fatto che “LAMPADA PRENDI” funziona esattamente come “PRENDI LAMPADA”), Zork comprendeva davvero non solo il verbo e il complemento oggetto, ma anche le preposizioni, il complemento di termine, le congiunzioni, la punteggiatura, e perfino gli articoli. A dare un contributo essenziale al raggiungimento di tale obbiettivo fu nuovamente l'MDL che (essendo un linguaggio ideato pensando alla ricerca sull'IA) aveva delle straordinarie capacità di manipolazione delle stringhe. Il parser che riuscirono a ideare si rivelò una creazione mirabile, che si sarebbe contraddistinta per molti anni a venire (un'eternità, allora come ora, nel mondo dell'informatica). Ma ora sto andando troppo avanti.
 
La strada che condurrà a Zork iniziò nel Maggio del 1977, quando Dave Lebling creò un semplicissimo parser e un semplicissimo "engine" piuttosto simile a quello di Adventure, dal quale Marc Blank e Tim Anderson crearono il loro primo gioco di quattro stanze, come prototipo. A quel punto Lebling si prese una vacanza di due settimane, mentre Blank, Anderson, e Bruce Daniels "hackeravano" come pazzi, creando la struttura base di Zork così come la conosciamo ancora oggi. Il nome stesso era una parola priva di senso presa dal gergo parlato al MIT; una parola che si usava nelle situazioni di tensione al posto di un altra più scurrile: “Zorka quel maledetto codice!”, quando una linea di codice non ne voleva sapere di funzionare, e cose del genere. Ogni programmatore ha qualche parola tipo questa che usa per programmi, variabili, funzioni, e così via, quando sta semplicemente facendo esperimenti e non ha tempo di inventarsi un nome migliore (negli ultimi 25 anni il mio personale “go-to placeholder” è stata la parola “fuzzy”, per ragioni troppo imbarazzanti e stravaganti per spiegarle qui). Nel caso di Zork, però, un nome vero e proprio tardava a venir fuori. E così il gioco restò Zork per i primi sei mesi della sua esistenza.
 
Quando Lebling tornò dalla vacanza per riprendere a lavorare al gioco, c'erano già delle solide basi. Tutto il design era modulare; questo significava (come dimostrato sopra) che era facile aggiungere altre stanze, altri oggetti, altri enigmi, ma anche che ogni parte della sottostante tecnologia poteva essere facilmente rimossa, migliorata, e inserita di nuovo. Il parser in particolare migliorò gradualmente da uno a due parole (“intelligente quasi quanto quello di Adventure”), fino a diventare la creazione allo stato dell'arte che era alla fine; il tutto prevalentemente grazie all'impegno di Blank, che ne divenne ossessionato fino a produrne “40 o 50” iterazioni.
 
Negli anni successivi la Infocom avrebbe sviluppato una storia e una mitologia, complesse ma anche comiche, intorno a Zork e al suo “Grande Impero Sotterraneo”, ma in questi primissimi giorni di sviluppo gli autori erano interessati al mondo di gioco solo come luogo in cui ambientare delle scene accattivanti ma anche ridicolmente eterogenee, e -ovviamente- degli enigmi da risolvere, nel solco della tradizione inaugurata da Don Woods con Adventure. E infatti il mondo di Zork rende omaggio ad Adventure quasi al punto da sembrare inizialmente un suo remake. Come Adventure, si inizia all'aria aperta, accanto ad una piccola casa; come in Adventure c'è una piccola area esterna da esplorare, ma il succo del gioco si svolge sottoterra; come Adventure lo scopo è raccogliere tesori e riportarli dentro la casa, che serve quindi da base delle nostre operazioni; ecc. ecc. Solo andando molto avanti nel gioco, Zork diverge davvero da questo schema e assume una sua distinta personalità, con location fantasiose ed enigmi molto più intricati, resi possibili dallo stupefacente parser. Ovviamente tutte queste parti furono ideate in seguito, quando il team di sviluppo aveva più esperienza e quando il parser era ormai molto migliore di quello iniziale. Personalmente darò uno sguardo approfondito a Zork nella sua versione per microcomputer, piuttosto che nella sua incarnazione per PDP-10, ma se siete interessati a saperne di più sull'implementazione originale senza capo né coda, vi invito a dare un'occhiata all'approfondito play-through di Jason Dyer.
 
Come Adventure, anche Zork girava su un DEC PDP-10. A differenza di Adventure però, girava sotto il sistema operativo che ospitava anche l’ambiente MDL, l’Incompatible Timesharing System (così chiamato, con un po’ di sano humour da hacker, in sarcastica risposta ad un precedente Compatible Timesharing System; anche qui però -scusate se insisto- vi rimando a Hackers di Levy per un eccezionale racconto delle sue origini). L’Incompatible Timesharing System era sostanzialmente unico del MIT, l’istituzione che lo aveva sviluppato. E aveva un elemento di estrema originalità: in uno stravagante (ma qualcuno lo chiamerebbe folle) tributo alla tradizione degli hacker di totale apertura e trasparenza, non aveva password; anzi, non aveva nessun tipo di sicurezza. Proprio chiunque poteva loggarsi e fare ciò che voleva. Questo creò una specie di community di coloro che gli hacker del MIT chiamavano “gente a caso dalla rete”: persone che non avevano niente a che fare con il MIT, ma che godevano, da qualche parte, di un accesso a un computer connesso ad ARPANET e che si fermavano per rovistare nel sistema, solo per vedere cosa stessero facendo quei folli hacker del MIT. La macchina del Dynamic Modeling Group aveva raccolto intorno a sé una community considerevole di gente a caso, grazie a un precedente gioco di quiz. Non ci volle molto prima che scoprissero Zork (anche se non era mai stato annunciato ufficialmente) e che si imbarcassero nell’avventura. Ben presto questo gioco in sviluppo si guadagnò una certa reputazione su ARPANET. Proprio a vantaggio di questa community di giocatori, gli sviluppatori iniziarono a collocare una copia dell’U.S. News and Dungeon Report in una delle prime stanze, che elencava tutti gli ultimi cambiamenti e le ultime aggiunte a questo mondo virtuale che la gente stava esplorando. La gente a caso dalla rete, insieme ad altri utenti più “legittimati” di base al MIT (fra cui anche John McCarthy, il padre dell’intelligenza artificiale), servirono da team allargato di beta-test; gli implementatori potevano vedere quello che queste persone provavano a fare, per non dire ciò di cui si lamentavano, e modificavano il gioco di conseguenza. In particolare, molti dei miglioramenti al parser furono senza dubbio incentivati da questo processo; chiunque abbia mai sottoposto una propria avventura testuale a un beta-test, sa bene che non si può semplicemente prevedere a priori gli infiniti modi in cui le persone proveranno a esprimere certe cose.  
 
La crescente popolarità di Zork sollevò delle inevitabili preoccupazioni sull’eccessivo carico generato da questi giocatori sul sistema PDP-10 del Dynamic Modeling Group, che a conti fatti era finanziato dal Dipartimento della Difesa e che quindi -teoricamente- sarebbe dovuto servire per vincere la Guerra Fredda. Al tempo stesso c’erano altri che chiedevano una copia del gioco, per poterla installare sulle proprie macchine. Anche se sviluppato e utilizzato principalmente sotto l’Incompatible Timesharing System, esisteva però una versione dell’ambiente MDL che girava su un altro sistema operativo per PDP-10, il TOPS-20, pubblicato dalla DEC per la prima volta nel 1976 e pubblicizzato come una versione più avanzata e user-friendly del TOPS-10. A differenza dell’Incompatible Timesharing System, il TOPS-20 era assai diffuso al di fuori del MIT. Gli hacker del Dynamic Modeling Group modificarono quindi Zork quanto bastava per farlo girare sul TOPS-20 e iniziarono a distribuirlo a tutti gli amministratori che gliene chiedevano una copia. Alla fine dell’anno tutte le macchine della nazione ospitavano Zork ed era stata perfino predisposta una "mailing list" per informare i vari amministratori delle espansioni e dei miglioramenti che venivano apportati.
 
Gli hacker del Dynamic Modeling Group erano generosi, ma non quanto lo era stato Don Woods con Adventure. Distribuirono Zork solo come file criptati, che erano eseguibili in un ambiente MDL ma che non erano leggibili (né modificabili) a livello di codice sorgente. Arrivarono perfino a modificare il proprio sistema di sviluppo Incompatible Timesharing System, celebre per la sua mancanza di sicurezza, aggiungendo una protezione esclusivamente alla cartella che conteneva il codice sorgente di Zork. Tuttavia gli hacker non si smentiscono mai e ben presto uno della DEC aveva già penetrato il velo. Dalla “History of Zork” della Infocom:
 
[La sicurezza] fu infine battuta da un hacker del sistema della Digital: usando un’arcaica (non che ne sia mai esistita una diversa) documentazione dell’Incompatible Timesharing System, riuscì a capire come modificare il sistema operativo. Sapendo il fatto suo, riuscì anche a capire come funzionava la nostra modifica per proteggere la cartella del codice sorgente. A quel punto era solo questione di decriptare i sorgenti, il che ben presto si ridusse a intuire la chiave che avevamo usato. Ted non ebbe difficoltà a procurarsi il tempo che gli serviva sulla macchina: aveva appena trovato una macchina TOPS-20 che era sottoposta agli ultimi test e vi avviò un programma che tentava ogni chiave finché una non gli restituì qualcosa che aveva le sembianze di un testo. Dopo meno di un giorno di lavoro, aveva una copia leggibile del sorgente. Dovemmo ammettere che, chiunque si fosse preso la briga di fare tutto ciò, di certo se lo meritava... Tutto questo produsse altre conseguenze in seguito.
 
Riguardo a queste “altre conseguenze”:
 
Ad un certo punto, alla fine del 1977, gli hacker del Dynamic Modeling Group decisero che la loro creazione aveva davvero, davvero bisogno di un nome vero e proprio.  Lebling suggerì Dungeon, che non emozionò nessuno (Lebling incluso), ma a nessuno veniva in mente un’alternativa migliore. E così si optò per Dungeon. Ciò avvenne poco prima della breccia nella sicurezza appena descritta; per questo il gioco recuperato da quell’hacker della DEC non si chiamava Zork, bensì Dungeon. Poco dopo, al MIT giunsero voci di possibili azioni legali da parte (provate a indovinare) della TSR, il publisher di Dungeons and Dragons e di un gioco da tavolo di esplorazione di dungeon chiamato semplicemente Dungeon! La TSR era sempre particolarmente zelante nel querelare e gli avvocati del MIT, consultati dagli hacker del Dynamic Modeling Group, erano unanimemente concordi nel ritenere che la TSR non avesse nessun appiglio legale a cui aggrapparsi. Tuttavia, piuttosto che venir risucchiati in una controversia su un nome che oltretutto non piaceva a nessuno, decisero di ritornare al ben più memorabile Zork. E così, all’inizio del 1978, Dungeon tornò di nuovo a essere Zork, per poi mantenere quel nome per sempre.
 
Quasi per sempre. Vi ricordate quel codice sorgente che “Ted” aveva sottratto al MIT? Ebbene, arrivò nelle mani di un altro hacker del DEC, un certo Robert Supnik, che convertì il tutto per FORTRAN, più diffuso e portabile (seppur intrinsecamente e infinitamente meno adatto alle avventure testuali); fu uno sforzo erculeo che stupì perfino gli hacker del Dynamic Modeling Group. Poiché il gioco contenuto nel codice sorgente in MDL a cui aveva accesso si chiamava Dungeon, questa nuova versione rimase Dungeon. Inizialmente Supnik eseguì il porting con l'intenzione di portare Dungeon a girare su un DEC PDP-11 (che, a discapito di quanto sembra indicare il nome, non era un successore del PDP-10, ma piuttosto una macchina fisicamente più piccola, meno potente, e meno costosa). Con il codice sorgente in FORTRAN di Supnik libero di essere distribuito, tuttavia, il salto dal PDP-11 ad altre architetture fu assai breve. Perciò, in questi primi anni, il Dungeon di Supnik con ogni probabilità era più ampiamente distribuito, e quindi era anche più giocato, dello Zork del Dynamic Modeling Group. E quando arrivarono dei PC in grado di supportarlo, Dungeon sbarcò inevitabilmente anche su questi. E così alla fine degli anni ‘80 la situazione era incomprensibile per chi non conosceva tutta questa storia: c’era questo gioco gratuito, chiamato Dungeon, che era stranamente simile ai giochi commerciali ufficiali di Zork, che a loro volta erano molto simili a quest’altro gioco, Adventure, che all’epoca era disponibile in dozzine di versioni gratuite e commerciali. Ad oggi il Dungeon di Supnik è disponibile insieme al codice sorgente (finalmente libero) della versione per PDP-10 di Zork.
 
Tornando al MIT, lo sviluppo dello Zork vero e proprio continuò per tutto il 1978, seppur a un ritmo decrescente. Se si escludono delle correzioni minori di bug, che sarebbero proseguite per un paio di anni ancora, gli ultimi pezzi di Zork furono aggiunti nel Febbraio del 1979. A quel punto il gioco aveva assunto proporzioni davvero enormi: 191 stanze, 211 oggetti, un vocabolario di 908 parole con 71 verbi diversi (senza considerare i loro sinonimi). Gli implementatori avevano praticamente finito le idee per nuovi enigmi ed erano comprensibilmente esausti per il grande sforzo, e (qualora queste giustificazioni non fossero sufficienti) avevano completamente riempito l'unico MB circa di memoria che un programma MDL poteva utilizzare. E così accantonarono Zork e si spostarono su altri progetti.
 
La storia sarebbe potuta tranquillamente finire lì, con Zork che passa alla storia come un altro esempio, eccezionalmente significativo, di avventura testuale fiorita sulle macchine istituzionali negli anni successivi alla pubblicazione di Adventure; insomma, Zork come fosse un altro Mystery Mansion, Stuga (AGGIORNAMENTO: non proprio; leggete il commento di Jason Dyer [“Se vogliamo essere precisi, Stuga non può essere annoverato nel gruppo degli altri due titoli; fu distribuito commercialmente, e vendette piuttosto bene, e può essere definito lo Zork della Svezia”; ndAncient]), o HAUNT. Però non andò così, grazie ad Al Vezza, il direttore (dall’anima tutt’altro che hacker) del Dynamic Modeling Group, che qualche mese più tardi decise che il momento era giusto per entrare coi suoi collaboratori nella nuova, promettente frontiera dei microcomputer, avviando una software house. Non poteva però certo immaginare dove avrebbe portato questa sua decisione.

The Digital Antiquarian è un blog, scritto da Jimmy Maher, che si occupa di storia e di cultura del videogioco partendo dall'analisi di singoli videogiochi. OldGamesItalia è lieta di presentarvi la traduzione italiana, autorizzata dall'autore!
Se anche voi apprezzerete questo interessantissimo blog, non mancate di visitare la pagina ufficiale (in lingua inglese) e di sostenerlo tramite Patreon.
Traduzione a cura di: The Ancient One
Editing a cura di: Festuceto


Consulta l'indice per leggere gli articoli precedenti

Visita il sito ufficiale di The Digital Antiquarian
Discutiamone insieme sul forum di OldGamesItalia!

 

Microsoft Adventure - Parte 2
The Digital Antiquarian (traduzione ufficiale italiana)

 
 
Come la stessa Microsoft affermava nel manuale d'istruzione: "Con Microsoft Adventure avete la versione completa dell'originale Adventure. Della versione originale per DEC non è rimasto fuori niente."
A questo punto vi starete chiedendo quale è il trucco... Vi ricorderete infatti che Scott Adams (anche lui un programmatore d'esperienza) non aveva neppure provato a fare un porting diretto, scegliendo invece di sviluppare da zero Adventureland, un gioco assai più piccolo. E quindi, come diavolo ci era riuscito Letwin?
 
Per prima cosa Letwin si avvantaggiò dell'interfaccia d'espansione di Radio Shack, che consentiva agli utenti di espandere la memoria oltre i 16 K e di sostituire le cassette con i floppy disk. Fu in un certo senso una scelta coraggiosa, che limitava in modo drastico il numero di potenziali acquirenti del suo gioco; nel numero di Settembre 1979, SoftSide riportava che "ben pochi" dei suoi lettori avevano comprato il disk drive da 500 dollari di Radio Shack. Eppure senza di esso il porting di Adventure non sarebbe mai stato possibile.
 
I benefici dell'espansione di memoria erano evidenti, consentendo programmi più lunghi e più complessi; quelli del floppy disk erano invece in parte ovvi e in parte meno ovvi. Quelli ovvi erano che il floppy era superiore alle cassette da tutti i punti di vista, consentendo agli utenti di immagazzinare molti più dati su un singolo supporto, e di salvarli e recuperarli molte volte più velocemente e in modo molto più affidabile. Ma è un altro l'attributo del floppy che si rivelerà essenziale per l'implementazione dei giochi più grandi come Adventure, considerato che anche i 32 K di memoria restano pur ancora un quantitativo minuscolo. A differenza delle cassette, il floppy era un device a "random-access", cioé con il floppy il TRS-80 poteva essere programmato per caricare in memoria -mentre il programma girava- dei blocchi di dati presi da qualunque punto del disco. All'opposto la lettura da cassetta richiedeva che l'utente posizionasse manualmente la cassetta nella giusta posizione, usando l'apposito contagiri, e che poi premesse "play"... per poi, ovviamente, aspettare fino a 20 minuti anche per caricare una delle semplici avventure di Scott Adams. Con l'ausilio di un disk drive invece Letwin ha potuto lasciare tutto il testo (che anche nell'originale di Crowther e Woods era contenuto in file esterno) sul disco, andando a caricare solo i singoli pezzi di cui di volta in volta aveva bisogno. E così nei suoi 32 K ha dovuto infilare solo il codice del gioco - non che questa fosse una cosa di poco conto, visto che Letwin ha dovuto convertire il codice originale in FORTRAN in linguaggio assembly Z80, ottimizzando ovunque fosse possibile per migliorare velocità e dimensioni.
Il pionieristico uso fatto da Letwin del disk drive, trasformato in una sorta di memoria ausiliare, sarebbe presto stato usato ovunque, rifinito quasi fosse una forma d'arte da società come la Infocom. Un numero sterminato di classici sarebbero stati semplicemente impossibili senza questo espediente. 
 
L'arrivo dei disk drive ha portato con sé anche un'altra innovazione meno gradita: la protezione contro le copie abusive. Ogni computer ha un formato standard con cui dispone i dati sui propri dischi. Per semplificare in modo estremo: ogni punto di un disco è spezzettato in tracce e settori, con una "master directory" (collocata da qualche parte in un punto standard del disco) che registra tutti i file archiviati sul disco con le rispettive collocazioni, assegnando loro una traccia e un settore. Questo permette al computer di individuare e recuperare i file che gli vengono richiesti. La maggior parte dei primi programmi per copiare dischi presupponeva che i dischi copiati rispettassero questo formato standard e si limitava semplicemente a tentare di copiare sul nuovo disco ogni file che trovava nella "master directory", uno ad uno. Tuttavia per un programma come Adventure era abbastanza semplice andare a sostituire il formato standard  con uno alternativo di propria ideazione; cioè uno che il programma stesso avrebbe saputo leggere ma che al tempo stesso avrebbe completamente confuso qualunque altro programma tarato sul formato standard. Visto con gli occhi di oggi, la protezione contro le copie pirata di Adventure era relativamente semplice, poiché si limitava a ridisporre lo schema numerico utilizzato per identificare i diversi settori del disco. Ed era anche relativamente gentile, perché consentiva agli utenti con due disk drive di farsi una singola copia di backup, immettendo un comando speciale all'interno del programma. Le protezioni successive sarebbero ben presto diventate molto più sofisticate e molto meno... gentili.
 
Microsoft Adventure guardava al futuro anche con la sua confezione. Veniva spedito in un vero scatolato con un vero artwork professionale e un manuale patinato a più pagine scritto da Dottie Hall. Mettetelo a confronto con le confezioni dei primi giochi di Scott Adams, fatte con la busta in plastica dei sandwich, un biglietto da visita e il rivestimento in plastica tipico del latte artificiale [???]. Nel 1979 la Microsoft era una delle poche software house con le risorse per offrire ai propri prodotti una presentazione professionale. Tuttavia col tempo l'industria dei giochi divenne più professionale (e più remunerativa), e il confezionamento dei giochi divenne una parte essenziale dell'esperienza dei giochi d'avventura, raggiungendo la sua gloriosa (ma alcuni direbbero assurda) vetta con artwork sgargianti, manuali interminabili con annessi racconti (se non veri e propri romanzi), mappe elaborate (a volte su stoffa o pergamena), e attrezzature sceniche evocative (i celebri "feelies").
 
 
Microsoft Adventure ha dato il via anche ad un'altra tendenza correlata, che è diventata quasi altrettanto diffusa: il suo artwork non ha quasi niente a che vedere con il gioco vero e proprio che dovrebbe invece rappresentare.
Di certo non mi sarei mai immaginato che la scherzosa risposta a "UCCIDI DRAGO" ("CONGRATULAZIONI! HAI APPENA SCONFITTO UN DRAGO A MANI NUDE!") si svolgesse in quel modo. Però... forse... con una buona dose di immaginazione...
 
Essendomi occupato a lungo della versione originale per DEC, non ho molto da dire sull'esperienza di gioco vera e propria della versione di Adventure sviluppata da Letwin. Era esattamente ciò che Microsoft affermava che fosse: un porting pedissequamente fedele dell'originale, escluse solo alcune delle chicche PDP-centriche tipo le "cave hours". Immagino che la maggior parte del testo in-game sia letteralmente lo stesso dell'originale per PDP, poiché il file dati esterno del gioco originale è stato semplicemente copiato direttamente sul floppy del TRS-80. È comunque interessante notare che Letwin ha fatto uno sforzo per semplificare alcuni degli enigmi più illogici dell'originale. Nell'originale, per esempio, si poteva guadagnare quel "last lousy point" solo gettando la rivista Spelunker Today nel Witt’s End (azione del tutto immotivata); nella versione di Letwin, leggendo la rivista (che ora è stata ribattezzata per qualche motivo LWPI - qualcuno ha idea di quale sia il significato della sigla?) si ottiene un indizio vitale secondo cui: "È INDIRIZZATA A WITTS END!".
Ancora meglio, la locazione "Breath-Taking View" -riccamente descritta ma precedentemente inutile- ora ha una sua funzione, perché Letwin vi ha aggiunto una singola riga che ci viene d'aiuto in un altro enigma tristemente celebre: "PAROLE DI FUOCO, COME APPESE NELL'ARIA, RECITANO 'PLOVER'". Un grande!
 
 
Se si escludono questi dettagli, Letwin ha fatto solo una singola aggiunta: la "Software Den" ["tana del software"]:
 
SEI IN UNA STRANA STANZA IL CUI INGRESSO ERA NASCOSTO DIETRO LE TENDE. IL PAVIMENTO È COPERTO DI TAPPETI, LE PARETI SONO DI GOMMA, LA STANZA È SOMMERSA DI CARTE, LISTATI, LIBRI, E BOTTIGLIE MEZZE VUOTE DI DR. PEPPER. LA PORTA NELLA PARETE A SUD È QUASI COMPLETAMENTE RICOPERTA DA UN GRANDE POSTER A COLORI DI UN SUPERCOMPUTER CRAY-1 NUDO.
 
UN CARTELLO ALLA PARETE RECITA: "SOFTWARE DEN" 
 
LO STREGONE DEL SOFTWARE NON SI VEDE DA NESSUNA PARTE.
 
QUI CI SONO MOLTI COMPUTER: MICRO, MINI, E MAXI.
 
Ecco quello che accade se si interagisce con i computer:
 
APPENA TI AVVICINI A QUELLE DELIZIE ELETTRONICHE, UN PROGRAMMATORE BARBUTO E INFURIATO SALTA FUORI DA DOVE ERA NASCOSTO. "AHA!" ESCLAMA, "HO BECCATO QUEL 'SOB' CHE MI RUBA L'ATTREZZATURA! TI SEI FORSE DIMENTICATO CHE SONO I MIEI INCANTESIMI A TENERE INSIEME QUESTA GROTTA? PER PRIMA COSA QUINDI RIMUOVO' ALCUNI DEI TUOI TESORI:

DESTROY (TESORI);

POI REVOCO ALCUNE DELLE PAROLE MAGICHE:
 
REVOKE (PAROLEMAGICHE);
 
E PER FINIRE TI MANDO CON UN CALCIO NEL MEZZO DEL LABIRINTO!"
 
YOURLOC = MEZZO.DEL.LABIRINTO;
 
SEI IN UN LABIRINTO DI PICCOLI PASSAGGI TORTUOSI, TUTTI DIVERSI.
 
 
[Notate che nel testo c'è un gioco di parole intraducibile fra "sob" ("figlio di puttana") e "S.O.B." (abbreviazione di "Subtract and Branch")]
 
Chi ha parlato di megalomania...?
 
 
Ma ora occupiamoci della questione che ha destato più scalpore: i riconoscimenti. Da nessuna parte in Microsoft Adventure, o nella documentazione a corredo, appaiono i nomi di Crowther e Woods. Ci viene solo detto che "originariamente Adventure è stato scritto in FORTRAN per il DEC PDP-10", quasi un'immacolata concezione software. Inutile aggiungere che Crowther e Woods non sono mai stati contattati dalla Microsoft e non hanno mai ricevuto alcuna royalty per quello che sembrerebbe essersi rivelato un discreto campione di incassi per la società; successivamente fu convertito anche per Apple II, e fu uno di quei programmi che la IBM volle fosse disponibile al Day One per il lancio del suo nuovo PC nel 1981. Poiché Crowther e Woods, immersi come erano nella cultura hacker old-school, non hanno mai considerato l'ipotesi di rivendicare la proprietà della loro creazione, in tutto questo, Microsoft non ha violato alcuna legge. Tuttavia l'aver clonato il gioco di un altro, riprendendo letteralmente ogni singola parola, e arrivando perfino a proteggerlo dalla copia (l'ironia!), per poi venderlo... beh, non credo che possa essere definito nemmeno "eticamente dubbio": siamo ben al di là dell'etica. Nella sua celebre "Open Letter to Hobbyists" del 1976, Gates affermava il diritto morale degli autori di software ad avere il pieno controllo delle proprie creazioni. Come conciliare questa affermazione con il suo successivo Microsoft Adventure? Sono stati proprio incidenti di "cooptazione commerciale" come questi che hanno portato alla creazione di licenze come la GNU, ideate per garantire che il software gratuito resti tale. Se vi siete chiesti almeno una volta perché nelle community dell'open-source si sia così ossessionati da ogni minimo aspetto di una licenza, forse questa storia potrebbe offrirvi una buona spiegazione.
 
Sia come sia, oggi Gates sembra deciso a fare il bene del mondo e a elargire i suoi soldi non meno di quanto una volta era dedito a schiacciare la concorrenza e ad ammassare la sua fortuna; il che si merita un grande urrà. Sono convinto che salvare anche un singolo bambino faccia abbondantemente pari con tutti gli aspetti dubbi della vicenda di Microsoft Adventure.
Nel frattempo Gordon Letwin è rimasto per molti anni alla Microsoft, guidando lo sfortunato progetto dell'OS/2 prima di andare in pensione nel 1993 forte della sua quota societaria. Adesso anche lui si dedica alla carità e in particolare alle cause ambientaliste. E anche qui ci sta bene un secondo urrà.
 
 
Ironicamente, Microsoft Adventure è talmente fedele all'originale da essere oggi la scelta ideale per chi voglia sperimentare l'originale nella forma più autentica possibile senza dover mettere su un PDP-10 virtuale. Ho reso disponibile un'immagine del disco del TRS-80, che resterà on-line finché gli avvocati della Microsoft non verranno a cercarmi per aver piratato il software che loro stessi rubarono 32 anni fa e per aver parlato male del loro "presidente non esecutivo". Ma, per semplificarvi ulteriormente le cose, potreste anche cercare la versione IBM PC su qualche sito abandonware. Se invece scegliete la versione TRS-80, per giocarla dovrete utilizzare l'emulatore SDLTRS, invece che la versione MESS, perché a causa della protezione contro la copia presente sul disco, ho dovuto salvare l'immagine nel formato "DMK" - un formato che sfortunatamente il MESS non legge. Mi dispiace molto! 
 
Presto mi occuperò delle avventure testuali del 1980, un anno particolarmente eccitante. Ma prima voglio fare una piccola divagazione teorica e poi voglio occuparmi di un altro genere di giochi particolarmente orientati alla narrazione.

The Digital Antiquarian è un blog, scritto da Jimmy Maher, che si occupa di storia e di cultura del videogioco partendo dall'analisi di singoli videogiochi. OldGamesItalia è lieta di presentarvi la traduzione italiana, autorizzata dall'autore!
Se anche voi apprezzerete questo interessantissimo blog, non mancate di visitare la pagina ufficiale (in lingua inglese) e di sostenerlo tramite Patreon.

Articoli precedenti:
Sulle tracce di The Oregon Trail
In difesa del BASIC
A Caccia del Wumpus
L'Avventura di Crowther
TOPS-10 in a Box
L'Avventura completata
Tutto il TRaSh del TRS-80
Eliza
Adventureland
Dog Star Adventure
Qualche domanda per Lance Micklus
Un 1979 indaffarato
The Count

Due diverse culture di avventurieri
Microsoft Adventure

Visita il sito ufficiale di The Digital Antiquarian
Discutiamone insieme sul forum di OldGamesItalia!

Microsoft Adventure
The Digital Antiquarian (traduzione ufficiale italiana)

 
Probabilmente anche voi avrete ricevuto almeno un paio di volte negli ultimi quindici anni una mail con questa fotografia e una frase irriverente tipo: "E tu, avresti investito su di loro?". L'immagine ritrae undici dei tredici dipendenti della Microsoft il 7 Dicembre 1978, proprio prima che la società lasciasse la sua prima casa ad Albuquerque in New Mexico (sede che fu scelta perché era anche la sede del primo cliente della Microsoft, quella MITS [Micro Instrumentation and Telemetry Systems, Inc.] che ogni giorno diventava più irrilevante nel giro di affari complessivo della Microsoft) per un radioso futuro a Seattle. L'adolescente in basso a sinistra è ovviamente Bill Gates in persona... e -liberi di non crederci- in quella foto aveva già 23 anni.
 
Che dire di Bill, che non sia già stato detto? Immagino che non si diventi multi-miliardiari senza lasciarsi alle spalle qualche ego ferito, ma il buon vecchio Bill ha sempre avuto un talento speciale per restare sulle scatole alla gente e, più in generale, per interpretare il ruolo del Dart Fener dell'industria dei computer. 
 
A dire il vero non sono poi così sicuro che Gates fosse tanto più malvagio di molti dei suoi colleghi dell'epoca. Infatti già ai tempi di questa foto l'utopismo digitale della People’s Computer Company e di Creative Computing stava subendo delle brutte batoste per mano degli aspiranti giganti dell'industria, che cercavano di accaparrarsi una fetta della nuova torta dei microcomputer. 
Penso a gente come Jack Tramiel (il capo della Commodore) che aveva dichiarato che "gli affari sono una guerra" e che si meravigliava per lo stupore dei suoi partner commerciali e dei suoi dipendenti dinanzi alle sue bugie e ai suoi tradimenti. Oppure penso a gente come Steve Jobs che, prima di aver co-fondato la Apple, fregava al suo miglior amico (che oltretutto aveva fatto il lavoro al posto suo...) un bonus di 5.000 Dollari, mentre ipocritamente elogiava a vanvera la solidarietà hippie e la filosofia orientale. Forse i più morali di tutti erano i dirigenti della Tandy, talmente privi di immaginazione e talmente isolati dai loro competitor, da non aver tempo da perdere per tentare attivamente di fargli dei torti. 
 
 
La vera differenza di Gates era che lui era dannatamente bravo nel suo essere malvagio. E se nel lungo periodo tutti i suoi avversari sono stati ripagati con la loro stessa moneta, Gates invece ha prosperato ininterrottamente. Non era immorale, quanto piuttosto amorale. A differenza di Tramiel (che sembrava trarre piacere dalle proprie azioni malvagie) o di Jobs (che voleva disperatamente apparire come il buono, indipendentemente dai brutti scherzi che giocava agli altri), Gates sembrava del tutto indifferente alla sua immagine e completamente disinteressato alle "sottigliezze" che separano il giusto dallo sbagliato. A livello personale si dice che ispirasse un misto fra l'indifferenza e il completo disgusto in tutti coloro che non erano sulla sua busta paga (o, forse, più probabilmente questi ultimi non potevano esprimersi al riguardo). Ciò non dipendeva però solo dalla sua igiene personale, che lasciava a desiderare almeno quanto le sue abilità relazionali. Né dipendeva dal fatto che egli esibiva tutta l'arroganza di chi era al tempo stesso sia un programmatore brillante che il rampollo, con tanto di laurea ad Harvard, di una ricca famiglia (e del resto era effettivamente entrambe le cose). No, a renderlo così profondamente fastidioso per tante persone era il suo smisurato bisogno di sconfiggere e dominare tutti coloro che lo circondavano. 
Se Gates non riusciva a vincere equamente, state certi che avrebbe barato. E -diamine!- se poteva vincere equamente ma sarebbe stato più facile vincere barando, probabilmente avrebbe scelto questa seconda condotta. Ma la verità resta una soltanto: Gates sapeva barare in modo intelligente. L'etica per lui non significava nulla, ma conosceva invece bene il diritto, e si è sempre curato (anche nelle azioni più torbide) di essere dal lato giusto della riga (certo, come sappiamo, divenne sempre meno bravo in questo nel corso degli anni '90, ma questa è una storia di cui parleremo un'altra volta...). 
Vi ricordate dei nerd un po' ottusi del MIT contro cui si era scagliato Joseph Weizenbaum in Computers and Human Reason? Beh, il giovane Gates combacia perfettamente con quello stereotipo, con in più però una montagna di spietatezza a sangue freddo. No, la sua personalità non gli avrebbe fatto fare molte amicizie. Ma quanto alle opportunità di investimento...
 
La storia di Microsoft Adventure ci fornisce una buona raffigurazione sia del vero acume tecnico e di marketing della società di Gates, sia del suo autentico genio nell'ignorare le considerazioni etiche pur restando dal lato giusto della legge. Ci fornisce uno dei primi esempi di quello che già allora stava diventando il modus operandi della società; un modus operandi destinato tanto a far infuriare gli hacker idealisti, quanto a far felici gli investitori finanziari. E poi -e non è certo un caso- rappresenta anche un momento molto importante nella costante evoluzione dei giochi di avventura. 
 
Nel 1979, cioè due anni pieni prima che il genio di Gates si manifestasse nella partnership con IBM per l'originale IBM PC, la Microsoft era già un pesce molto grande nello stagno ancora relativamente piccolo dell'industria dei microcomputer dell'epoca, avendo sviluppato un ampio giro d'affari a partire da quel primo Altair BASIC di cui abbiamo già parlato. Microsoft era per antonomasia la società a cui rivolgersi per le implementazioni del BASIC sui microcomputer; infatti non si limitava a fornire il TRS-80 Level 2 BASIC, ma anche i BASIC del Commodore PET e del nuovo Apple II Plus. In più si era anche già espansa in altri linguaggi di programmazione di alto livello, grazie alle prime implementazioni di FORTRAN e COBOL per i microcomputer. 
Microsoft Adventure faceva invece parte di una nuova iniziativa del 1979, la Microsoft Consumer Products Division, che intendeva pubblicare giochi, e altri applicativi meno esoterici, destinati ai clienti comuni. Nel complesso era un ramo notevolmente avanti coi tempi, anche se nel lungo periodo non avrà il successo sperato (la Microsoft infatti chiuderà questa divisione pochi anni dopo, per concentrarsi quasi esclusivamente su prodotti tecnici o per il mercato "business", e -se escludiamo la longeva mosca bianca di Flight Simulator- non pubblicherà più giochi e applicazioni destinati agli utenti domestici fino agli anni '90). Tuttavia nel 1979 la Consumer Products era considerata una parte importante della futura Microsoft. Con i giochi di avventura diventati così popolari sul TRS-80, quando un dipendente di nome Gordon Letwin affermò di poter portare l'Adventure originale di Crowther e Woods (una sorta di leggendario Sacro Graal per gli avventurieri dei microcomputer) sulle piccole macchine casalinghe, gli fu subito dato il via.
 
 
Gordon Letwin, nella foto sopra, è il tizio con i capelli neri all'estrema destra della seconda fila. Nato nel 1952, e quindi tre anni più vecchio di Bill Gates, la sua personalità e le sue origini non sono poi tanto diverse da quelle degli altri hacker che abbiamo già incontrato su questo blog. Personalità introversa, non verbale al punto di essere quasi inquietante, Letwin aveva letto dozzine e dozzine di libri di saggistica nel corso di tutta la sua infanzia e l'adolescenza. Entrato alla Purdue University per una laurea in fisica (la stessa scelta da Will Crowther dieci anni prima), Letwin trovò la sua vera vocazione nel centro computer dell'università. Dopo l'università trovò lavoro presso la Heath Company, rinomata fra gli hobbisti dell'elettronica per i loro "Heathkits", dei kit di assemblaggio che permettevano di costruirsi da soli i propri attrezzi per test, radio e televisioni. Nel 1977 la linea fu allargata per includere anche un computer, l'H8, per il quale Letwin aveva progettato un semplice sistema operativo chiamato H-DOS. Aveva anche scritto un suo BASIC, ma un giovane e aggressivo Gates era piombato alla Heat durante il suo giro fra i produttori di microcomputer per cercare di convincerli (non senza una certa umiliazione per Letwin...) ad acquistare la versione di Microsoft. In quell'occasione Letwin fece qualcosa di interessante, qualcosa che pochi altri hanno mai fatto: si oppose a Gates. Citando lo stesso Gates:
 
"Ci sono molti modi diversi per fare questa roba. Il suo aveva dei vantaggi che lui mi stava indicando. Finimmo così in una discussione fra tecnici. Nella stanza c'erano almeno 15 persone e nessuno era in grado di seguirci. Parlavamo in termini di "data structure", "single representations", "double scan", e roba del genere... Per esempio, se uno scriveva una linea sbagliata, il suo controllava immediatamente la sintassi, il mio no. Il che era uno dei punti negativi del nostro progetto. In ogni caso lui era estremamente sarcastico al riguardo, facendomi notare quanto il nostro approccio fosse stupido."
 
 
Poiché l'adagio secondo cui nessuno è mai stato licenziato per aver comprato Microsoft era vero perfino nel 1977, i dirigenti della Heath scelsero di sostituire il progetto interno di Letwin con il BASIC della Microsoft. Questo fece arrabbiare moltissimo Letwin. Gates, che al di là di tutti i suoi difetti sapeva riconoscere un talento quando ce l'aveva davanti, riuscì a portarlo alla Microsoft circa nove mesi dopo; poco prima che quella foto venisse scattata. 
 
Anche se Letwin e sua moglie continuarono a vivere molto modestamente anche dopo molti anni che la Microsoft li aveva resi ricchi, lui -più di molti altri hacker- conosceva il valore dei soldi e prendeva volentieri tutto ciò che gli arrivava. Un suo profilo sul Seattle Times, datato 1988, afferma che fu lui uno dei principali motivi che spinsero Gates e Paul Allen a trasformare la Microsoft da una "partnership" in una "corporation" nel 1981, concedendo a lui e ad altri dipendenti della prima ora quelle quote che li avrebbero resi molto ricchi di lì a una decina di anni. Ho accennato a questo fatto, perché potrebbe essere utile per spiegare una particolarità legata a Microsoft Adventure: fu pubblicata da Microsoft, ma fu ufficialmente sviluppata da un'entità chiamata Softwin Associates, una società apparentemente composta dal solo Letwin. Si direbbe quasi che Letwin avesse sviluppato Adventure come una specie di secondo lavoro a nero, e che poi ne abbia venduto la licenza al suo datore di lavoro. Perché mai organizzare così questa operazione? Perché facendo così Letwin avrebbe potuto raccogliere le royalties sulle vendite in qualità di collaboratore esterno ["outside contractor"], superando quindi i limiti del suo normale stipendio di dipendente. Il fatto che Gates, sempre attento agli aspetti economici e finanziari, abbia accettato una tale strategia probabilmente la dice lunga su quale fosse il suo valore percepito all'interno della società. 
 
 

The Digital Antiquarian è un blog, scritto da Jimmy Maher, che si occupa di storia e di cultura del videogioco partendo dall'analisi di singoli videogiochi. OldGamesItalia è lieta di presentarvi la traduzione italiana, autorizzata dall'autore!
Se anche voi apprezzerete questo interessantissimo blog, non mancate di visitare la pagina ufficiale (in lingua inglese) e di sostenerlo tramite Patreon.

Articoli precedenti:
Sulle tracce di The Oregon Trail
In difesa del BASIC
A Caccia del Wumpus
L'Avventura di Crowther
TOPS-10 in a Box
L'Avventura completata
Tutto il TRaSh del TRS-80
Eliza
Adventureland
Dog Star Adventure
Qualche domanda per Lance Micklus
Un 1979 indaffarato
The Count

Due diverse culture di avventurieri
- Microsoft Adventure

Visita il sito ufficiale di The Digital Antiquarian
Discutiamone insieme sul forum di OldGamesItalia!

Esploriamo la Colossal Cave con Leonardo Boselli!

Lo scorso venerdì, Leonardo Boselli ci ha portato nei meandri della Colossal Cave, avventura testuale storica, scritta da Will Crowther nel 1973 e poi espansa da Don Woods nel 1977.

Laornardo ha scelto di giocare la versione modifcata da Woods così da poterci mostrare una stanza in particolare, dalla descrizione evocativa, presente in questa versione.

Per chi volesse aprofondire, abbiamo una serie di articoli dedicati proprio a Colossal Cave. Trovate il primo a questo link.

L'Avventura completata - Parte 3
The Digital Antiquarian (traduzione ufficiale italiana)

Il sistema PDP-10 sul quale Don Woods completò Adventure era un macchinario costoso, condiviso fra molti utenti, e Stanford non l'aveva certo comprato per fare speleologia virtuale.
Forse proprio al fine di prevenire le inevitabili lamentele dei suoi superiori, Woods inserì nel programma il concetto di "Cave Hours": se qualcuno provava a giocare durante i momenti di maggiore richiesta di risorse (tale periodo era impostato di default dalle 8 di mattina alle 6 di sera, esclusi i fine settimana e giorni festivi), gli veniva concessa solo una "breve esplorazione", limitata di default a 30 minuti e senza possibilità di salvare i propri progressi. Chi invece giocasse fuori da tali periodi, poteva salvare liberamente i propri progressi, ma era però obbligato a uscire immediatamente dal gioco senza poter ricaricare prima di 90 minuti (vale la pena ricordare che cose di questo tipo servivano anche -in linea con la filosofia di cui parlavo nel mio articolo precedente- a rendere il gioco più difficile).

Queste restrizioni potevano essere alterate digitando al prompt del gioco: "MAGIC MODE".
A quel punto, rispondendo correttamente alle seguenti domande, l'utente diventava una specie di amministratore di sistema e poteva cambiare le impostazioni del gioco.

In questo modo:

MAGIC MODE

SEI UNO STREGONE?

SI'

DIMOSTRALO!  PRONUNCIA LA PAROLA MAGICA!

NANO

NON È QUELLA CHE PENSAVO CHE FOSSE.  SAI QUALE PENSAVO CHE FOSSE?

NO

NODDG

BMAFH

OH, CIELO, TU SEI *DAVVERO* UNO STREGONE!  PERDONAMI PER AVERTI INFASTIDITO . . .

VUOI VEDERE LE ORE?

SI'
         Lun - Ven:  Aperto tutto il giorno
         Sab - Dom:  Aperto tutto il giorno
         Festivi:   Aperto tutto il giorno

VUOI CAMBIARE LE ORE?

NO

VUOI RIPROGRAMMARE IL PROSSIMO PERIODO FESTIVO?

NO

Lunghezza della partita breve (niente per lasciare 30):

NUOVA PAROLA MAGICA (NIENTE PER LASCIARE INVARIATO):

NUOVO NUMERO MAGICO (NIENTE PER LASCIARE INVARIATO):

Attesa per riprendere a giocare (niente per lasciare 90):

VUOI CAMBIARE IL MESSAGGIO DEL GIORNO?

NO

VA BENE.  ORA PUOI SALVARE QUESTA VERSIONE.

NON DIMENTICARE DI SALVARE LA "CORE-IMAGE"...

CPU time 0.01   Elapsed time 33.98

EXIT

L'amministratore deve costruirsi la risposta corretta usando un complesso algoritmo di cifratura basato su una sequenza di caratteri generati casualmente ["NODDG"; ndTraduttore] e sull'orario esatto del sistema in quel preciso momento ["BMAFH"; ndTraduttore].
Per ovvie ragioni questa parte del codice sorgente è quanto più possibile occultata, anche se sono sicuro che con un po' di determinazione la si potrebbe individuare.Ci immaginiamo che l'algoritmo venisse trasmesso segretamente da amministratore di sistema in amministratore di sistema, ma questo è un aspetto di Adventure di cui non si è parlato molto. Se qualcuno ne sapesse di più, è pregato di lasciare un commento per farcelo sapere.

Un altro aspetto interessante del sistema delle "cave hours" è il modo in cui considera Adventure non tanto una narrazione o un gioco, ma piuttosto un luogo fisico (e, nello specifico, un parco giochi virtuale). Al visitatore che provi a entrare durante le ore di maggior afflusso viene detto: "SONO TERRIBILMENTE DISPIACIUTO, MA LA COLOSSAL CAVE ADESSO È CHIUSA", seguito dagli "orari di apertura".
Questa idea è ripresa anche nel gioco finale, dove il giocatore si trova improvvisamente catapultato nella sala di controllo di questo parco sotterraneo.
Tutto questo mette bene in luce come Adventure in definitiva sia tutto stanze, stanze, stanze. E ci fa anche vedere come Don Woods avesse apparentemente una vera fissa per i parchi gioco.

Quali che siano le implicazioni di questi "orari di apertura", ben presto gli amministratori di sistema ebbero ampie ragioni per ringraziare Woods per averli introdotti, pur senza smettere di maledirlo per aver scatenato Adventure nei loro sistemi.
La verità è che Adventure divenne popolare - molto, molto popolare. Completarlo divenne rapidamente l'ossessione degli hacker di tutta la nazione e, ben presto, di tutto il mondo. La leggenda vuole che i reparti di Information Technology e quelli di scienze dell'informatica delle università smisero di fare qualunque altra cosa finché non lo avevano completato. Anche proibire di giocarlo durante le ore di lavoro si rivelò di scarsa utilità: tutti quelli che in quelle ore dovevano fare qualcosa di produttivo, si ritrovavano invece "in coma" dietro le loro scrivanie per aver giocato tutta la notte ad Adventure. Una fonte apocrifa afferma che Adventure abbia fatto perdere all'intera industria dei computer almeno due settimane di produttività.

E, quando la crisi era ormai passata, molti hacker sparsi un po' su tutto il territorio si misero prontamente a realizzare i loro giochi. I giochi "stile-Adventure" divennero "i giochi d'avventura" per antonomasia, e un nuovo genere era nato.
Per molti anni gli esempi più complessi di questa nuova forma d'intrattenimento continuarono ad apparire sui grandi sistemi istituzionali di posti come il MIT (Zork), lo Stockholm Computer Center (Stuga), e l'Università di Cambridge (Acheton). Jason Dyer, sul suo blog, sta facendo un grandissimo lavoro nel coprire questi primi giochi d'avventura, scavando tanto nelle opere abbondantemente perdute, quanto nei grandi successi tipo Zork.
Almeno per ora -e, come sempre, tempo permettendo- io intendo invece andare a indagare il modo in cui le innovazioni di Crowther e Woods (per non parlare di quelle di Gregory Yob, e di Don Rawitsch, e di tanti altri ancora) abbiano iniziato a dare i loro frutti, sui primi home computer che stavano iniziando ad apparire proprio mentre Adventure stava paralizzando il mondo dei grandi computer istituzionali.

Però, prima di congedare Adventure, ecco a voi un comodo schema di cosa ognuno dei due autori ha rispettivamente creato:

Crowther:
- Il concetto alla base delle avventure testuali
- Gli spostamenti tramite i punti cardinali
- I nani
- Il "Maze of Twisty Little Passages, All Alike"
- La disposizione delle stanze e alcuni enigmi fino alla location "Complex Junction"

Woods:
- Limiti all'inventario
- Il "Maze of Twisty Little Passages, All Different"
- Le "cave hours"
- La disposizione delle stanze e gli enigmi oltre la location "Complex Junction"
- Il sistema di punteggio
- Il sistema di salvataggio
- Il pirata
- La lanterna che si esaurisce



Eh sì, hai proprio un bel po' di responsabilità, mio caro Don Woods!
Ma noi ti vogliamo bene lo stesso... se non altro, non hai implementato la necessità di cibarsi!

Se desiderate giocare alla versione completa di Adventure, sappiate che è possibile farlo in italiano grazie all'ottima traduzione di Giovanni Riccardi, basata sull’adattamento di Adventure per Inform realizzato da Graham Nelson (Advent 961209).

Gli screenshot del gioco che trovate in questa serie di articoli e i paragrafi citati provengono tutti da questa traduzione.

Scarica AVVENTURA, l'edizione italiana di Adventure a cura di Giovanni Riccardi, direttamente da OldGamesItalia.

The Digital Antiquarian è un blog, scritto da Jimmy Maher, che si occupa di storia e di cultura del videogioco partendo dall'analisi di singoli videogiochi. OldGamesItalia è lieta di presentarvi la traduzione italiana, autorizzata dall'autore!
Se anche voi apprezzerete questo interessantissimo blog, non mancate di visitare la pagina ufficiale (in lingua inglese) e di sostenerlo tramite Patreon!

Articoli precedenti:
- Sulle tracce di The Oregon Trail
- In difesa del BASIC
- A Caccia del Wumpus
- L'Avventura di Crowther
- TOPS-10 in a Box
- L'Avventura completata

Il sito ufficiale di The Digital Antiquarian

Discutiamone insieme sul forum di OldGamesItalia!

L'Avventura completata - Parte 2
The Digital Antiquarian (traduzione ufficiale italiana)

(Attenzione: stavolta ci sono spoiler a bizzeffe!)

Praticamente Woods non sostituì nemmeno una parola del testo originale di Crowther, limitandosi a costruirci sopra, arricchendo il testo minimalistico di Crowther e aggiungendo tante altre locazioni da esplorare.
Il contrasto fra gli stili di programmazione dei due autori non trova invece riscontro nella loro prosa; infatti Woods riprende in pieno lo stile conciso ma "evocativo al punto giusto" di Crowther. Non si nota nessun punto specifico in cui Crowther ha mollato e Woods è subentrato; anzi, il giocatore non ha proprio modo di intuire che le ultime parti del gioco sono state scritte da un'altra persona.

Se proprio dobbiamo trovare delle differenze, dobbiamo porre l'accento su come Woods si sia concesso qualche elemento fantastico e anacronistico in più, nonché qualche licenza poetica qua e là.
Un buon esempio del primo caso può essere il distributore di batterie, che Crowther difficilmente avrebbe mai inserito (senza dimenticarci poi che la lanterna di Crowther non finiva mai le batterie, perché quasi certamente se l'era immaginata come una lampada a carburo, uguale a quelle che lo accompagnavano nelle sue spedizioni spelologiche, e non come una lampada a batterie - ecco, questo è uno di quei pochi casi in cui i diversi background dei due autori hanno prodotto delle conseguenze concrete sull'opera) [CORREZIONE: Sembrerebbe che anche nell'originale di Crowther la lanterna fosse elettrica. Osservate la risposta che viene fuori se nel gioco si strofina la lanterna d'ottone: "SE VUOI PUOI ANCHE STROFINARE UNA LAMPADA ELETTRICA. COMUNQUE, NON È SUCCESSO NIENTE DI ECCITANTE." Per fortuna davanti al "certamente" di sopra avevo messo anche un "quasi"...].
Nel secondo caso abbiamo la descrizione più estesa e elaborata dell'intero gioco, relativa alla location chiamata "UNA VISTA DA TRATTENERE IL FIATO", situata molto, molto in profondità nel complesso:

È difficile immaginare che Crowther avrebbe mai potuto scrivere qualcosa del genere: siamo anni luce distanti dall'umile costruzione di mattoni del Kentucky da cui scorre fuori un ruscello, in cui il giocatore inizia la sua avventura. Questa descrizione è stata spesso paragonata a quella del Monte Fato che troviamo ne Il Ritorno Del Re, ma Woods -pur ammettendo che le sue letture di Tolkien sono antecedenti al suo lavoro su Adventure- ha sempre negato di essersi ispirato coscientemente ad essa.
Curiosamente questa stanza non ha nessuna funzione pratica nell'economia del gioco. Forse Woods l'aveva pensata come una specie di ricompensa per il giocatore così determinato da spingersi tanto in profondità.

Ma che tipo di sfide deve aver superato un giocatore arrivato tanto avanti nel gioco?
Io le divido in tre categorie.

La prima categoria è quella delle sfide logistiche o, se preferite, delle sfide emergenti.
Queste riguardano le difficoltà pratiche di trovare la propria strada fra le 140 stanze intrigatamente interconnesse che compongono il mondo di gioco di Adventure, riportando al contempo i 15 tesori nell'edificio in superficie, gestendo le limitate risorse energetiche della lanterna, facendo i conti con la limitata capacità di trasportare oggetti del nostro alter ego, e -più di tutto- tracciando mappe, su mappe, su mappe. Chiunque voglia spostarsi dentro il gioco deve pianificare la propria spedizione sotterranea proprio come avrebbe fatto la squadra speleologica di Crowther. Ho già abbondantemente spiegato che, secondo me, nella mentalità da speleologo di Crowther questo era il vero cuore del gioco, la sua vera sfida. Se vi sembra che stia esagerando, immaginatevi di giocare ad Adventure per la prima volta nel 1976 o nel 1977, senza avere nessuna nozione di come funzioni la geografia delle avventure testuali; immaginatevi intenti a cercare di capire come mappare quel labirinto, in quei tempi in cui il trucco "lascia-un-oggetto-in-ogni-stanza" non era ancora il pane quotidiano di ogni avventuriero...
Le opere di narrativa interattiva moderne avranno anche rigettato molti degli elementi di questa categoria, ma è innegabile che essi siano una parte essenziale di ciò che è Adventure e -mi sento di aggiungere- che essi siano anche una parte importante del fascino che Adventure esercitò su così tante persone nei tempi che furono.

Poi c'è la categoria degli enigmi buoni.
Si tratta di sfide semplici, lineari, risolvibili con un po' di logica normale e di buon senso. Alcuni esempi possono essere: la necessità di torvare un'altra uscita dalla caverna perché per le scale non riusciamo a portare fuori la pepita d'oro (che pepita dev'essere quella!); usare il tridente per aprire la conchiglia gigante; ecc.
Rispetto agli intrigati rompicapo che ci avrebbero offerto di lì a pochi anni la Infocom e le altre software house, questi sono enigmi decisamente "gentili".

E infine arriviamo alla categoria degli enigmi cattivi. Non ce ne sono molti, ma quelli che ci sono sono agghiaccianti.
C'è l'enigma del drago: quando il giocatore digita "UCCIDI DRAGO", il gioco risponde "CON COSA? A MANI NUDE?". A questo punto si deve digitare "SI", così che il gioco possa risponderci: "CONGRATULAZIONI! HAI APPENA SCONFITTO UN DRAGO A MANI NUDE! (INCREDIBILE, EH?)". Nel modo in cui sembra anticipare alcuni degli enigmi più ridicoli dell'inspiegabilmmente deliziosa The Hitchhiker’s Guide to the Galaxy (che arriverà però tanti anni dopo), questo enigma a conti fatti risulta abbastanza simpatico da apparirci quasi perdonabile.
Lo stesso non si può però dire dell'ultimo enigma del gioco, nel quale ci si aspetta che il giocatore intuisca una specifica proprietà (che fino a quel punto non esisteva!) di quel "bastone nero con una stella arrugginita in punta", che il giocatore si sta portando dietro quasi fin dall'inizio del gioco. Il gioco si aspetta infatti che il giocatore faccia esplodere la sala di controllo di quello che a quel punto abbiamo ormai capito essere una specie di parco giochi e non un complesso di grotte naturali. Badate bene che il giocatore può digitare solo ed esclusivamente il comando "BLAST" e non anche altre soluzioni tipo "BLAST WITH ROD" ("FAI ESPLODERE CON IL BASTONE") o "WAVE ROD" ("AGITA IL BASTONE" [un comando ricorrente in tante avventure testuali, incluso Adventure e Zork, ed entrato a far parte della mitologia delle avventure testuali, ndTraduttore]). Almeno che non mi sia perso qualcosa, questa azione è del tutto immotivata. Si tratta forse del più limpido esempio esistente di "tira-a-indovina-a-caso-il-verbo giusto", nonché probabilmente del peggior enigma che io abbia mai visto, autentico monumento satirico dei peggiori luoghi comuni delle avventure testuali "old-school".

Imbattendoci in tali delizie, non si può che scuotere la testa, cercando di immaginarsi come sia possibile che si sia passati dagli enigmi della seconda categoria a quelli della terza, saltando a pié pari ogni gradazione intermedia. C'è da aggiungere che suona particolarmente strano imbattersi in enigmi di questo tipo, se consideriamo che -da certi punti di vista- Adventure è invece un gioco sorprendentemente amichevole e con un'ottima curva di apprendimento; pensate ad esempio al sistema di aiuti che dispensa automaticamente degli indizi se il giocatore si impantana troppo a lungo in una delle sue sezioni più complicate.

Forse possiamo rispondere a questa domanda valutando le possibilità concretamente a disposizione di Woods; non dobbiamo infatti dimenticarci che Adventure ha un modello di mondo estremamente semplicistico, abbinato a un parser a sole due parole. Un tale sistema impone un limite reale a quanto intrigati possono essere gli enigmi creati dall'autore. Perfino alcuni dei migliori enigmi di Adventure sono resi più frustranti, di quanto non sarebbero, dalle limitazioni imposte dal parser. Prendete ad esempio il caso dell'orso, che il giocatore può domare e portarsi dietro per spaventare il troll. Di per sé sarebbe un enigma abbastanza leale, se non fosse che il giocatore per risolverlo deve indovinare l'unica sintassi corretta disponibile: "PRENDI ORSO" (che poi -letteralmente parlando- non corrisponde nemmeno appieno all'azione che viene eseguita dal nostro alter ego).
La verità è che la tecnologia dietro Adventure forse può supportare solo due tipi di enigmi: quelli estremamente semplici e quelli palesemente iniqui. E del resto gli enigmi del tipo "guess the verb" sono sempre i più semplici da ideare...

Poi, ovviamente, c'è da mettere in conto le differenze culturali. È come se tutti si aspettassero che Adventure dovesse essere difficile, che completarlo dovesse rivelarsi un'impresa ardua. Da qui tutta l'enfasi che il gioco mette sul punteggio. Come per i cabinati dell'epoca, dove i giocatori confrontavano i risultati delle partite terminate in una "sconfitta", accontentandosi di essere arrivati almeno un po' più avanti del resto dell'ufficio. Chi era meno competitivo invece poteva formare delle squadre per risolvere insieme il gioco, logica conseguenza dei contesti altamente conviviali in cui erano inevitabilmente collocati i PDP-10.

Per finire non dobbiamo dimenticarci che gli sforzi del giocatore potevano indirizzarsi anche sul codice sorgente liberamente distribuito. Considerando che la maggior parte dei primi giocatori di Adventure furono hacker "hardcore", immagino che fu proprio così che l'assurdo enigma del verbo "BLAST" sia stato risolto per la prima volta (CORREZIONE: O forse con un debugger del linguaggio macchina. Tim Anderson, nella sua "History of Zork", afferma che questo metodo sia stato usato per capire come conquistare quel celebre "last lousy point" [cioé "l'ultimo disgustoso punto" che è quasi impossibile ottenere senza barare e che preclude la possibilità di finire l'avventura; ndTraduttore]. Da aneddoti come questi sembrerebbe anche che Adventure sia stato inizialmente distribuito in formato binario, e che il codice sorgente sia arrivato solo in un secondo momento.)

Mi sono dilungato su questi dettagli, perché credo che essi siano rilevanti non solo per la nostra comprensione di Adventure, ma anche per comprendere molti dei giochi di cui mi occuperò più avanti, molti dei quali saranno così frustranti che la maggior parte delle persone che li hanno giocati ancora oggi non riescono a menzionare le avvenutre testuali senza bestemmiare.

La prossima volta concluderò questa piccola mini-serie di articoli dedicati ad Adventure parlando dell'euforica accoglienza che ricevette e del suo lungo retaggio. Farò anche un preciso resoconto di chi dei due autori è responsabile di ogni aspetto del gioco finale, così finalmente saprete come dividere le vostri lodi e le vostre critiche.

Se desiderate giocare alla versione completa di Adventure, sappiate che è possibile farlo in italiano grazie all'ottima traduzione di Giovanni Riccardi, basata sull’adattamento di Adventure per Inform realizzato da Graham Nelson (Advent 961209).

Gli screenshot del gioco che trovate in questa serie di articoli e i paragrafi citati provengono tutti da questa traduzione.

Scarica AVVENTURA, l'edizione italiana di Adventure a cura di Giovanni Riccardi, direttamente da OldGamesItalia.

The Digital Antiquarian è un blog, scritto da Jimmy Maher, che si occupa di storia e di cultura del videogioco partendo dall'analisi di singoli videogiochi. OldGamesItalia è lieta di presentarvi la traduzione italiana, autorizzata dall'autore!
Se anche voi apprezzerete questo interessantissimo blog, non mancate di visitare la pagina ufficiale (in lingua inglese) e di sostenerlo tramite Patreon!

Articoli precedenti:
- Sulle tracce di The Oregon Trail
- In difesa del BASIC
- A Caccia del Wumpus
- L'Avventura di Crowther
- TOPS-10 in a Box
- L'Avventura completata

Le Mappe di Adventure

Il sito ufficiale di The Digital Antiquarian

Discutiamone insieme sul forum di OldGamesItalia!

L'Avventura completata - Parte 1
The Digital Antiquarian (traduzione ufficiale italiana)

Nel 1977 Don Woods era uno studente della Stanford University quando sentì parlare per la prima volta di Adventure da un altro studente che vi si era imbattuto a più riprese, fra cui anche nei computer del sistema dello Stanford Medical Center. Come avesse fatto il gioco di Crowther ad arrivare dal suo datore di lavoro di allora (le BBN Technologies di Boston) fino alla California del nord è destinato a restare un mistero. Sappiamo però che Woods ne restò sufficientemente affascinato da procurarsene una copia e installarla sul minicomputer PDP-10 dello Stanford Artificial Intelligence Laboratory (SAIL), dove -da vero hacker quale era- passava la maggior parte del suo tempo.
Dopo averne esplorato le (limitate) profondità di quella versione, Woods maturò l'idea di riprenderne lo sviluppo da dove Crowther l'aveva lasciato e di finire il gioco. Purtroppo però aveva a disposizione solo l'eseguibile e non il codice sorgente in FORTRAN.
Quello che segue è una degli aneddoti più leggendari legati al mondo degli hacker, così divertente da meritarsi di essere ripetuto anche qui.

Il programma di Crowther (come potete verificare voi stessi, se lo desiderate) contenveva un solo indizio sulla sua origine: le istruzioni all'interno del gioco recitano nell'inimitabile prosa stringata di Crowther: "ERRORI, SUGGERIMENTI, LAMENTELE A CROWTHER." Evidentemente Crowther non si era mai neppure immaginato che il suo programma (tanto più nel stato incompleto in cui l'aveva lasciato) potesse uscire dal ristretto cerchio degli hacker della BBN, che ovviamente non potevano non sapere chi fosse e come contattare quel "CROWTHER". A complicare ulteriormente le cose c'era il fatto che Crowther, all'epoca in cui Woods scoprì Adventure, aveva già lasciato la BBN e stava lavorando per la Xerox in California (che sia stato proprio lui a portare Adventure sulla costa occidentale?).
La soluzione di Woods fu quella di inviare una mail a crowther@xxx, dove "xxx" stava per ogni singolo dominio di internet esistente a quell'epoca. Con quell'idea, oltre a essersi meritato sul campo il titolo di primo spammer della storia, Woods riuscì a rintracciare Crowther alla Xerox e ad assicurarsi il suo permesso di completare il gioco e (cosa ancora più importante!) il suo prezioso codice sorgente.
In quei giorni internet era un luogo ben più piccolo di oggi...

Quando scoprì Adventure, Woods doveva ancora compiere 23 anni, ma si era già assicurato un posto nella storia degli hacker co-creando il linguaggio di programmazione satirico chiamato INTERCAL, uno dei più bizzarri ed elaborati esempi di humor degli hacker.

In Hackers, Steven Levy dà molta importanza al presunto contrasto fra la cultura degli hacker della East Coast e della West Coast:

"La prima differenza risiede nel luogo: un vecchio centro congressi semicircolare, realizzato in cemento, vetro e legno di sequoia, adagiato sulle colline che guardano il campus della Stanford. Dentro l'edificio gli hacker lavoravano dietro ai sessantaquattro terminali sparpagliati per i vari uffici. Ben lontani dall'ambiente claustrofobico della Tech Square del MIT. Niente ascensori, niente assordante sibilio dell'aria condizionata. Lo stile rilassato non vi fece mai diffondere fino in fondo l'acredine (certo, talvolta, costruttiva) del MIT: le urla delle lezioni del Tech Model Railroad Club (TMRC), le guerre di religione fra studenti e hacker. Al posto dell'immaginario che pervadeva la Tech Square, fatto di battaglie e di fantascientifici duelli spaziali, quello della Stanford era costruito intorno alle delicate leggende di elfi, hobbit e stregoni di cui parlava J.R.R. Tolkien nella trilogia della Terra di Mezzo. Le stanze del laboratorio di intelligenza artificiale avevano il nome di luoghi della Terra di Mezzo e la stampante del SAIL era stata modificata per poter stampare tre diversi font elfici."

La mia personale sensazione è che Levy probabilmente enfatizzi troppo la divisione culturale fra i conservatori dai capelli a spazzola che, ammassati dentro al MIT, impazzivano per i libri di Heinlein e i gentili tizi appassionati di Tolkien. Infatti i due gruppi avevano anche molte preferenze in comune in fatto di hardware (sistemi DEC PDP), di sistemi operativi (TOPS-10), di linguaggi di programmazione (niente BASIC, please!), e -più in generale- di come "dovessero" essere usati i computer; questo li avvicinava fra loro molto più di quanto i due gruppi non assomigliassero invece ai populisti della People’s Computer Company.
Nonostante questo ritengo che possiamo trovare delle differenze nell'approccio che Crowther e Woods avevano con la programmazione; differenze che non posso essere ricondotte solo alla geografia, quanto piuttosto al periodo storico in cui ognuno di loro ha operato.
Prima di affrontare questo argomento, però, lasciatemi fare un passo indietro per introdurre un po' di background tecnico.

Adventure girava su un PDP-10 con sistema operativo TOPS-10. Come ho già spiegato in precedenza, per almeno 20 anni -dal 1960 al 1980- le macchine della DEC sono state indiscutibilmente le favorite degli hacker. Sia le macchine, che la compagnia che le faceva, erano profondamente innovative: abbastanza grandi da riuscire a restare al passo con i tempi, ma anche abbastanza piccole da essere flessibili. Ma (cosa ancora più importante) la DEC non solo comprendeva gli ideali degli hacker, ma li abbracciava anche, usando strutture di ricerca assolutamente all'avanguardia (come i laboratori del MIT e della Stanford) per mettere a punto e addirittura per sviluppare sia il software che l'hardware, arrivando talvolta ad assumere gli esponenti migliori e più competenti di quel mondo. Il divario con un colosso borioso e serioso come l'IBM difficilmente poteva essere più ampio. Nel frattempo il TOPS-10 divenne amato al pari dell'hardware su cui girava, essendo stato sviluppato e rifinito dalla DEC dagli anni '60, senza interruzioni e con l'assistenza attiva della community degli hacker. Finché non fu rimpiazzato da Unix e dal successore della stessa DEC (il sistema operativo TOPS-20), cosa che all'inizio del 1977 era già iniziata lentamente ad accadere, il TOPS-10 era per definizione il sistema operativo degli hacker.

Adventure fu scritto in FORTRAN (Formula Translating System), un linguaggio di programmazione che era già vecchio quando Crowther e Woods lo usarono. Esso fu infatti il primo significativo linguaggio di programmazione ad alto livello mai creato, essendo stato introdotto dall'IBM sui suoi sistemi mainframe alla fine degli anni '50. La versione usata da Crowther e Woods rispettava il così detto "standard FORTRAN IV", che risaliva al 1965. Nonostante l'avversione degli hacker per il BASIC, il FORTRAN IV non era poi tanto meglio, considerato che -se si voleva davvero ottenere qualche risultato- esso richiedeva ancora i numeri di linea e un copioso uso delle odiate "GOTO statement". Di certo era particolarmente inadatto a scrivere un'avventura testuale, non prevedendo praticamente nessuna capacità di immagazzinamento o manipolazione del testo. Fu proprio per questo motivo che Crowther decise di mettere tutto il testo del gioco in un file esterno: in quel modo era semplicemente più facile da gestire. Ironicamente il FORTRAN 77 (una significativa espansione del linguaggio, che introduceva le "string variables" e tantissimi altri miglioramenti) fu pubblicato lo stesso anno in cui Woods completò Adventure, ormai troppo tardi per essere utilizzato nel progetto.

Ma allora, perché usare il FORTRAN? Beh, oltre al FORTRAN e al linguaggio assembly (in cui sarebbe stato noiosissimo implementare un programma come Adventure), a quei tempi i normali linguaggi di programmazione per il TOPS-10 includevono solo il denigrato BASIC e l'ancora più disprezzato COBOL (un linguaggio rigidamente inflessibile, progettato per il "batch processing" non interattivo - per esempio per la fatturazione o per altre ripetitive mansioni di calcolo, del tutto prive di interesse agli occhi degli hacker). Con uno sfoggio di un copioso livore, o di un singolare umorismo, Edsger Dijkstra sul COBOL ha fatto un dichiarazione del tutto simile a quella che aveva fatto sul BASIC: "L'uso di COBOL storpia la mente e quindi il suo insegnamento dovrebbe essere considerato reato."
La scelta non poteva che cadere sul FORTRAN.

Crowther e Wood avranno anche lavorato con il medesimo linguaggio di programmazione, ma le differenze nel loro stile di programmazione sono immense. Il codice sorgente originale di Crowther è di per sé un "maze of twisty little passages", un enorme piatto di "spaghetti code" commentato solo in modo sporadico e breve. È certamente efficiente, ma altrettano certamente non è né leggibile, né mantenibile se non da Crowther.
La versione finale di Adventure scritta da Woods è, all'opposto, un modello di chiarezza: commentata frequentemente e con dovizia di particolari, nonché strutturata nel modo più pulito e logico che i limitati strumenti di FORTRAN IV gli consentivono. Considerate le limitazioni a cui doveva sottostare Woods, possiamo affermare che il suo codice sia una vera gioia da leggere. Anzi, la sua chiarezza potrebbe aiutarci a spiegare perché Adventure sia stato così rapidamente e così frequentemente converitto per altri linguaggi e altre piattaforme: il codice di Woods è fatto in modo tale che una conversione si rivela quasi un mero esercizio meccanico.

Non è ovviamente mia intenzione confrontare un programma completo con uno incompleto, perché significherebbe fare un torto a Crowther; del resto è improbabile che, mentre lo scriveva, il codice di Woods fosse pulito e leggibile come invece ci appare nella sua versione pubblicata. Tuttavia credo che ci siano comunque alcune considerazioni da fare in merito.
In questa differenza di stile scorgiamo almeno in parte una differenza di personalità; del resto Crowther aveva fama di essere un programmatore brillante ma solitario, e non credo che fosse il tipo di persona interessata a spiegare agli altri ciò che stava facendo o a coccolare coloro che avessero voluto seguire le sue orme.
Senza dimenticare poi che Crowther e Woods appartengono a due diverse generazioni di hacker. Crowther si è formato negli anni '60, quando le regole di un programazione "corretta" erano ancora in gran parte da scrivere e tutta l'enfasi del mestiere era rivolta a ottenere ciò che si desiderava, in qualunque modo il primitivo hardware del tempo potesse essere convinto a farlo. Woods invece si è formato negli anni '70, quando l'importanza della struttura, della leggibilità e della manutenibilità del codice erano ormai chiare e gli scienziati del computer stavano iniziando a gettare le basi di quelle regole di buona programmazione che -con qualche aggiunta- ancora oggi seguiamo.

A seguire qualche osservazione tratta giocando la versione completata di Adventure.

Se desiderate giocare alla versione completa di Adventure, sappiate che è possibile farlo in italiano grazie all'ottima traduzione di Giovanni Riccardi, basata sull’adattamento di Adventure per Inform realizzato da Graham Nelson (Advent 961209).

Gli screenshot del gioco che trovate in questa serie di articoli e i paragrafi citati provengono tutti da questa traduzione.

Scarica AVVENTURA, l'edizione italiana di Adventure a cura di Giovanni Riccardi, direttamente da OldGamesItalia.

 

The Digital Antiquarian è un blog, scritto da Jimmy Maher, che si occupa di storia e di cultura del videogioco partendo dall'analisi di singoli videogiochi. OldGamesItalia è lieta di presentarvi la traduzione italiana, autorizzata dall'autore!
Se anche voi apprezzerete questo interessantissimo blog, non mancate di visitare la pagina ufficiale (in lingua inglese) e di sostenerlo tramite Patreon!

Articoli precedenti:
- Sulle tracce di The Oregon Trail
- In difesa del BASIC
- A Caccia del Wumpus
- L'Avventura di Crowther
- TOPS-10 in a Box

Il sito ufficiale di The Digital Antiquarian

Discutiamone insieme sul forum di OldGamesItalia!