Home Tecnologia The Seen Zorker ti consente di sbirciare sotto il cofano per vedere...

The Seen Zorker ti consente di sbirciare sotto il cofano per vedere come funzionavano i giochi negli anni ’80

9
0

Le persone associano i giochi di high quality anni ’70/inizio anni ’80 a Invasori spaziali E Pac-Manma lontano dalle sale giochi, period probabile che trovassi i primi appassionati di laptop domestici impegnati e grattandosi la testa su un tipo di gioco molto diverso. Insieme al suo predecessore spirituale Avventura colossale nella grotta, Zork e i suoi sequel hanno aperto la strada al genere delle avventure testuali, giochi basati su parser senza grafica che hanno visto anni di rinascita sotto il titolo più intellettuale di “narrativa interattiva”.

Oltre advert essere il primo di una serie di successi dei primi anni ’80 per il suo studio, Infocom, Zork è stata una vera conquista dal punto di vista tecnico. La popolarità del gioco period dovuta almeno in parte alla sua portabilità: poteva girare su un Commodore 64 con la stessa facilità con cui poteva girare su un PC 8086 o uno ZX Spectrum, il che rappresentava un enorme vantaggio in un’period in cui i consumatori potevano scegliere tra dozzine di microcomputer, ciascuno in gran parte incompatibile con gli altri.

La versatilità del gioco period dovuta alla lungimirante decisione di Infocom di eseguire i suoi titoli fondamentalmente in quella che chiamava Z-Machine, essenzialmente una primissima implementazione di una macchina virtuale. Il gioco e i suoi successori sono stati scritti nel linguaggio di implementazione Zork di alto livello proprietario di Infocom, che è stato poi compilato in un set di istruzioni di livello inferiore chiamato Z-Code, che è stato eseguito dall’ambiente Z-Machine. Ciò significava che invece di dover riscrivere i propri giochi da zero per ogni nuovo sistema che voleva supportare, Infocom doveva solo scrivere un nuovo interprete Z-Code per ciascun sistema. (Per chiunque sia interessato, è possibile trovare un sacco di eccellente documentazione su come funzionava la Z-Machine Qui.)

Comunque, adesso, quasi esattamente 50 anni dopo l’uscita del primo Zork gioco, c’è un sito che alza il sipario sulla Z-Machine in tempo reale. Lo Zorker visibile è il lavoro di un esperto di narrativa interattiva Andrea Plotkine tiene traccia dello stato di un gioco mentre è in esecuzione, consentendo al giocatore di vedere come la Z-Machine mette in azione i suoi comandi. L’effetto è un po’ come guidare un’auto con il cofano aperto in modo da poter vedere esattamente cosa fa la pressione del pedale dell’acceleratore all’interno del motore, tranne, sai, più sicuro.

Zork I E II sono disponibili sul sito da un po’, ma risalgono al 1982 Zork III è stato aggiunto solo il 1 maggio. È ampiamente considerato il più difficile della trilogia originale e, poiché è l’unico che non ho mai risolto la prima volta, sono rimasto affascinato dall’analisi del suo funzionamento interno.

Allora cosa c’è da vedere? Bene, una cosa interessante da fare è osservare il funzionamento interno del parser. ZorkL’analisi degli enter non è certamente perfetta e molti di noi hanno passato ore cercando di far capire al gioco qualcosa che volevamo provare a fare. (Il parlato period un problema particolare per i primi parser: comandi come “dì al ladro di restituire l’oro” o “Ladro, restituisci il mio oro” generalmente suscitavano sconcerto: “Non capisco ‘oro’ in quel contesto.”)

Tuttavia, il parser Infocom è semplice ed elegante, soprattutto considerando l’età del gioco. Si basa su due semplici elenchi: uno di verbi e uno di sostantivi. La maggior parte di queste parole hanno sinonimi e abbreviazioni – “lampada” funzionerà per “lanterna”, “n” per “nord”, ecc. – e ci sono anche delle tolleranze per gli errori di ortografia. Ogni verbo ha una funzione associata, alcune delle quali richiedono nomi come argomenti, altre che possono funzionare in entrambi i modi. “Guarda” restituirà la descrizione della stanza corrente, mentre “guarda [at] [noun]” controllerà se il sostantivo è presente; in caso affermativo la funzione restituirà la descrizione dell’oggetto in questione, altrimenti ti verrà detto “Non puoi vederne nessuno [noun] Qui!”

C’è anche il supporto per una maggiore complessità, come vediamo qui:

© Lo Zorker visibile

Questo codice riguarda la spruzzatura di una bomboletta di repellente Frobozz Magic Grue. (I grues, come sanno tutti i fan, sono mostri che si nascondono nell’oscurità e mangiano gli sciocchi che si avventurano in aree buie senza torcia o lanterna.) Ecco come funziona:

Dettagli Zorker visibili
© Lo Zorker visibile

Il gioco controlla innanzitutto se la lattina è vuota. In caso contrario, controlla se hai detto “Burn can”, nel qual caso ti fai esplodere e il gioco finisce. Altrimenti si tratta di vedere Dove stai spruzzando la bomboletta. Se non specifichi una posizione, il gioco presume che tu lo stia semplicemente spruzzando in aria, nel qual caso è praticamente sprecato. (Nota anche che il gioco ti aiuta un po’ qui: se inserisci semplicemente “Bomboletta spray”, ti verrà chiesto su cosa vuoi spruzzare la bomboletta.)

Advert ogni modo, ti spruzzi la bomboletta addosso e sarai protetto dai grues per cinque turni. Il gioco avvia un timer (“I-SPRAY”, che tiene traccia di quanti turni sono trascorsi da quando ti sei spruzzato) e imposta un paio di flag: “SPRAYED?”, che tiene traccia se ti sei spruzzato e “SPRAY-USED?”, che tiene traccia se la bomboletta è stata svuotata. Qui vediamo anche con quanta facilità puoi portare il gioco a uno stato impossibile da vincere: se spruzzi il repellente su qualcosa che non sei tu, allora sei sfortunato.

Se c’è una cosa in particolare per cui Zork III viene ricordato, è il famigerato Royal Puzzle, una versione a grandezza naturale di uno di quei puzzle dove devi far scorrere le tessere attorno a una griglia. Risolvere un enigma come questo sarebbe già abbastanza difficile in un gioco con una rappresentazione grafica dell’ambiente; risolverlo in un gioco di testo basato su parser, anche con l’aiuto rudimentale che il gioco ti offre, richiede la consapevolezza spaziale di una sorta di esperto di architettura e/o la pazienza di un santo.

Non avere nessuna di queste cose significava che Zork III period l’unico gioco di Zork che non avevo risolto da bambino, ed ero interessato a vedere come il gioco teneva traccia dei vari componenti del puzzle e delle rispettive posizioni. Si scopre che gran parte del codice del gioco è dedicato al puzzle, chiamato internamente “puzzle cinese”. Ogni posizione nella griglia 6×6 viene memorizzata come un singolo numero in una matrice di 36 elementi, con la posizione dei vari muri che viene aggiornata man mano che il giocatore li sposta.

Potresti pensare che ci siano 36 stanze nel puzzle, ma no: ce n’è solo una, presumibilmente perché aggiungere 36 stanze in gran parte identiche al gioco sarebbe uno spreco di memoria. (Per riferimento, ci sono circa 60 stanze nell’intero resto del gioco.) La stanza del puzzle singolo è sempre la stanza che ospita il giocatore, il che richiede che il gioco tenga traccia di cose come oggetti e li scambi dentro e fuori dalla stanza secondo necessità: diciamo che lasci cadere la spada nella stanza con le coordinate x: 3 y:4, quindi muoviti verso est. In realtà non ti muovi affatto: il gioco aggiorna semplicemente la tua posizione su x:4 y:4 e rimuove la spada. Se ti sposti nuovamente verso ovest, il gioco ricorda che questa è la stanza in cui hai lasciato cadere la spada, quindi aggiorna nuovamente la tua posizione e riporta la spada nella stanza.

Ottimizzazioni come questa sono importanti quando si lavora con il tipo di vincoli di spazio imposti dai primi anni ’80 e tali vincoli erano piuttosto severi. L’insieme di Zork III’Il codice sorgente del gioco, che embody gli elenchi di verbi/sostantivi, le descrizioni delle stanze e degli oggetti, il parser, l’interprete ZIL e il codice del gioco vero e proprio, pesa 92 KB. In totale. Non è del tutto Deserto Cremisi.

Tuttavia, è anche interessante osservare le molte somiglianze tra il modo Zork III e i giochi moderni funzionano. In definitiva, un gioco è solo un insieme di variabili di stato: un giocatore è già stato in questa stanza? Hanno ucciso questo mostro? Hanno parlato con questo NPC e gli è stata assegnata questa missione? A che punto sono con la ricerca? Cosa stanno trasportando in questo momento? A che livello è la loro salute? Come è cambiato il mondo di gioco dall’inizio del gioco?

Il modo in cui un gioco moderno gestisce queste cose può certamente essere molto più sfumato rispetto al 1982:Zork non ha nulla a che vedere con le missioni a più fasi, advert esempio, ma i principi sono essenzialmente gli stessi. Imposta la bandiera [x] se evento importante [y] è successo. Tieni traccia di cosa c’è nell’inventario del giocatore. Tieni traccia dei timer. Il giocatore è appena stato colpito da un mostro? Sottrarre [x] dalla loro salute. La loro salute è ora sotto lo 0? SÌ? Oh caro. È ora di eseguire la funzione JIGS-UP e quindi ripristinare l’ultimo salvataggio.

A questo proposito, c’è pochissima differenza tra Zork E Anello Elden. Certo, le implementazioni di questi concetti sono mondi a parte, ma i concetti stessi rimangono gli stessi.

Oh, e infine: come qualsiasi altro Zork i fan lo sanno, una cosa che devi provare in ogni gioco è digitare, “Ciao marinaio”– è un po’ come l’equivalente Zork del cheat code di Konami, nella misura in cui è qualcosa che provi a inserire aspettandoti che qualcosa possa accadere come risultato. Il fatto è che, in tutto Zork (dove la frase viene incontrata per la prima volta) e Zork II, l’unica risposta che ottieni è “Non succede niente qui”. L’implicazione è che qualcosa accadrà da qualche altra parte, ma non accade mai. Tuttavia! In Zork III, c’è un punto in cui il messaggio diventa “Non succede ancora nulla”. E se aspetti abbastanza a lungo, ecco: arriva l’ora, arriva l’antico marinaio!

Zork III Ciao marinaio
© Lo Zorker visibile

fonte

LEAVE A REPLY

Please enter your comment!
Please enter your name here