Codici
Zork
Zork
Zork è uno dei più famosi videogiochi della storia. Lo è per vari motivi:
- perché è una delle prime avventure testuali (anche se la prima in assoluto è Colossal Cave)
- perché è uno dei primi software "portabili", cioè eseguibili su sistemi operativi diversi e su macchine diverse
- perché è uno dei giochi più divertenti, umoristici e godibili
Ma di linguaggi macchina ce ne sono diversi, a seconda della tipologia di processore. Per cui un codice compilato per essere eseguito su un computer Intel 8086 non sarà eseguibile da un Motorola 68000.
Questa situazione fa sì che per scrivere un programma che sia eseguibile su N computer con processori diversi occorre compilarlo in N versioni diverse. Oppure no?
No. La soluzione alternativa è quella della "macchina virtuale". Per macchina virtuale in generale si intende un software che gira in un sistema operativo X ma simula il comportamento di un'altra macchina, eventualmente con un altro sistema operativo. Usando una macchina virtuale si può eseguire un programma scritto originariamente per un diverso sistema operativo e per un diverso processore. Oggi questa pratica è molto comune e in pratica tutto il software che gira "in cloud" viene eseguito in questo modo.
Ma all'epoca l'idea di Tim Anderson, Marc Blank, Bruce Daniels e Dave Lebling, gli inventori di Zork, era parecchio innovativa. All'origne Zork era scritto in MDL, un dialetto Lisp creato al MIT di cui esisteva un interprete per il computer PDP-10, che era un mainframe, cioè uno di quei computer enormi che occupavano i laboratori delle Università statunitensi. Un frammento di Zork scritto in MDL lo trovate nell'immagine del pannello.
Per evitare di dover ricompilare il gioco per ogni diverso sistema esistente, nel 1979 Joel Berez e Marc Blank decidono di realizzare una macchina virtuale, la Z-machine, per ognuno dei principali processori disponibili. I giochi, invece, venivano compilati in un formato unico, eseguibile da tutte le Z-machine. Questo sistema permise di far circolare Zork in tutto il mondo e alla società Infocom di crescere enormemente, fino ad ad avere 100 dipendenti e un valore stimato di dieci milioni di dollari.
Ma stava arrivando la grafica nei video giochi, e i PC IBM stavano diventando uno standard. Infocom viene venduta, poi chiusa nel 1989, lasciando il mondo dei giocatori di Zork a bocca asciutta.
Quattro anni dopo Graham Nelson - uno strano tipo di matematico poeta amante delle finzioni interattive - decide di riportare in vita Zork scrivendo un proprio compilatore - basato su un linguaggio completamente differente - ma in grado di generare Z-files compatibili; mentre altri scrivevano degli interpreti per i nuovi computer.
Ancora oggi esistono interpreti in grado di eseguire Z-files su Linux, Windows e persino su IPhone.
Nelson ha scritto in seguito diverse finzioni interattivi, alcune delle quali sono diventate famose, come Curses.
Questo è un esempio di codice Inform, tratto dalla relativa pagina di Wikipedia Inform:
Constant Story "HELLO WIKIPEDIA"; Constant Headline "^An Interactive Example^"; Include "Parser"; Include "VerbLib"; [ Initialise; location = Living_Room; "Hello World"; ]; Object Living_Room "Living Room" with description "A comfortably furnished living room.", n_to Kitchen, s_to Frontdoor, has light; Object -> Salesman "insurance salesman" with name 'insurance' 'salesman' 'man', description "An insurance salesman in a tacky polyester suit. He seems eager to speak to you.", before [; Listen: move Insurance_Paperwork to player; "The salesman bores you with a discussion of life insurance policies. From his briefcase he pulls some paperwork which he hands to you."; ], has animate; Object -> -> Briefcase "briefcase" with name 'briefcase' 'case', description "A slightly worn, black briefcase.", has container; Object -> -> -> Insurance_Paperwork "insurance paperwork" with name 'paperwork' 'papers' 'insurance' 'documents' 'forms', description "Page after page of small legalese."; Include "Grammar";Torna su
Prossimo pannello: ⇨ TAUmus
© Codexpo.org - Content released under Creative Commons 4.0 BY/SA/NC
Versione: 12/01/2022 - 19:23:50
Parole: 363Pannelli
Codici |
Hello World |
99 bottles of beer |
Haiku |
Apollo |
Colossal Cave |
Zork |
TAUmus |