Elf Qrin's Lair


L'origine di Spacewar

J. M. Graetz


Questo articolo e' una ristampa dell'edizione Agosto 1981 della rivista Creative Computing. La politica aziendale della Creative a quel tempo permetteva la ristampa di articoli in newsletter e pubblicazioni non a scopo di lucro purche' fosse riprodotto questo avviso:
Copyright © 1981 by Creative Computing, 39 E. Hanover Ave., Morris Plains, NJ 07950. Sample issue $2.50, 12-issue subscription $20.
Copyright © 1981 dalla Creative Computing, 39 E. Hanover Ave., Morris Plains, NJ 07950. Copia dimostrativa $2.50, abbonamento a 12 numeri $20.
(ma dal momento che cessarono l'attivita' nel 1985 non ha molto senso richiedere la vostra copia dimostrativa).

Questa versione in HTML e' stata digitata da Eric Fischer.
La traduzione in italiano e' opera di Valerio "Elf Qrin" Capello (Tartagal, Argentina, 12-14 luglio 1999)


I. PRIMA DI SPACEWAR

Il Lensman, Lo Skylark, e l'Hingham Institute

E' colpa di Kimball Kinnison. E di Dick Seaton. Senza il Gray Lensman e lo Skylark of Space non ci sarebbe niente di cui scrivere. Cosi' la maggior parte della colpa ricade su E. E. Smith, ma la Toho Film Studios e l'American Research and Development Corp. hanno anch'essi la loro parte di responsabilita'. Se Doc Smith si fosse accontentato di disegnare ciambelle, se l'American-International Pictures fosse rimasta attaccata ai filmati di asciugamani da spiaggia, se (piu' di tutti) General Doriot non avesse sventolato i soldi di fronte a Ken Olsen nel 1957, il mondo sarebbe ancora libero da Spacewar! ("Guerra spaziale!", in Italiano, ndt)

E' accaduto tutto insieme nel 1961 all'Hingham Institute, un casamento ai limiti dell'abitabilita' situato in Hingham Street a Cambridge, nel Massachussets. Tre tizi dell'istituto erano coinvolti: Wayne Witanen, matematico, appassionato di musica, e arrampicatore; J. Martin Graetz (che sono io), uomo senza un talento fisso che tendeva a comportarsi con superiorita' perche' era gia' un Autore Pubblicato; e Stephen R. "Slug" Russell, specialista in treni a vapore, cultura generale, e intelligenza artificiale. Avevamo tutti 25 anni circa (chi piu', chi meno, fa lo stesso).

A quel tempo, ci riempivamo la testa con roba come "Skylark" e "Lensman", romanzi del Dott. Edward E. Smith, specializzato nella chimica applicata ai cereali, che scriveva con la grazia e la raffinatezza di un martello pneumatico. Queste storie erano tutte abbastanza simili: dopo un po' di azione preliminare per assicurarsi di aver in mente il nome corretto di ognuno di loro, un gruppo di ragazzi supersviluppati e ben determinati andava in giro per l'universo per prendere a pugni l'ultima banda di imbecilli galattici, far esplodere qualche pianeta, uccidere ogni tipo di forme di vita avversa, ed avere del sano divertimento.

In un istante, che e' poi dove essi solitamente si trovavano, si poteva contare sul fatto che i nostri eroi sarebbero venuti fuori con una teoria scientifica completa, avrebbero inventato la tecnologia per implementarla, costruito gli strumenti per implementare la tecnologia, e prodotto le (solite) armi per eliminare i cattivoni, il tutto mentre erano inseguiti nella loro astronave qua e la' attraverso le sconfinate vastita' della galassia (lui scriveva in questo modo) da una varieta' assortita di Fenachroni, Bosconiani, e dalla Corporazione Mondiale dell'Acciaio.

Tutto questo e' sufficiente per trasformare la nostra mente in margarina? No. Nelle pause tra un libro e l'altro, andavamo in uno dei piu' squallidi cinema di Boston per vedere l'ultima spazzatura prodotta dalla Toho. Nei giorni precedenti alle Mazda e alle Minolta, i giapponesi (e talvolta gli inglesi e i californiani) producevano una dieta ferrea di schifezze cinematografiche di cui Rodan e Gozilla sono solo gli esempi piu' noti. Questi film dipendevano interamente dai loro effetti fatti da modellini di alta qualita', un mare di raggi, bagliori, ed esplosioni, e la determinata mancanza di storia, carattere, o significato. Erano l'equivalente cinematografico di The Skylark of Space.

Se questo era il caso, ci chiedevamo noi, perche' qualcuno non tirava fuori il film di Skylark? In mancanza di risposta (la nostra innocente ignoranza in materia di tecnologia cinematografica, economia, e leggi sul diritto d'autore era enorme), spesso passavamo il tempo nella nostra stanza comune in Hingham Street immersi in profondi e speranzosi pensieri, inventando effetti speciali e sequenze per una grande serie di film epici spaziali che non avrebbe mai visto un set cinematografico. Cio' nonostante, questi libri, film, e queste riunioni crearono la condizione mentale che alla fine condusse alla creazione di Spacewar!

Quando I Computer Erano Dei

Al principio del 1961 Wayne, Slug, e io, non per coincidenza, lavoravamo tutti nel laboratorio di statistica Littauer dell'universita' di Harvard. La maggior parte del nostro lavoro era di effettuare calcoli statistici per conto di varie persone li' ad Harvard. Lo strumento per compiere questo lavoro era un IBM 704.

Ad una generazione il cui concetto di computer e' basato su un processore Z80 (processore a 8bit sul quale erano basati i personal computer di allora, con sistema operativo CP/M (Control Program for Microprocessors), precursore del MS-DOS, e gli allora popolari primi home computer ZX80 e ZX81, a cui fece seguito il celebre Sinclair ZX Spectrum. Al momento in cui effettuo questa traduzione il concetto di computer per la maggior parte della gente e' basato su un processore di classe Pentium, 32bit, possibilmente Pentium III, ndt), potrebbe essere difficile visualizzare un 704 o comprendere il posto che occupava nell'immaginazione collettiva (insieme con l'UNIVAC) come il modello di quello che era un computer: una raccolta di grossi contenitori grigi misteriosi avvicinabili solo attraverso l'intercessione dell'Operatore. In una stanza appositamente costruita per il computer, L'Operatore azionava interruttori, premeva bottoni, ed esaminava pannelli di luci lampeggianti, mentre il suo Assistente controllava vari dispositivi che ronzavano, ticchettavano e sbattacchiavano, affrettandosi avanti e indietro con pile di fogli cripticamente stampati, mucchi di schede stranamente punzonate, e bobine di recondito nastro marrone, il tutto con il mormorio di sottofondo della Macchina. Aggiungete un po' d'incenso e qualche candela, e potreste essere perdonati per pensare che questi erano i riti di qualche oracolo dei defunti.

Ogni cosa del 704, dall'imperscrutabile corpo principale ai tubi (si', tubi!) luminescenti visibili attraverso le pareti di vetro del contenitore della memoria centrale, proclamavano che questo era un Sistema Molto Complicato operato solo da Personale Specialmente Addestrato, tra i quali i programmatori e gli altri ordinari mortali non erano annoverati. In breve, un computer era qualcosa con il quale semplicemente tu non potevi sederti e giocherellarci.

Una Pietra Scagliata dall'Olimpo

Nell'estate del 1961 andai a lavorare per il Professor Jack B. Dennis, che era allora il proprietario del TX-0, una macchina che per me era solo leggermente meno leggendaria del suo antenato, il Whirlwind ("turbine", ndt). Il TX-0 era transistorizzato, e mentre i computer a stato solido cominciavano ad apparire sul mercato, il "Tixo" era l'originale. Anche nel 1961 era riconosciuto come uno strumento di ricerca d'importanza storica; molti dei programmi sviluppati sul TX-0, come il MACRO assembler di Jack Dennis e il programma di debugging (correzione degli errori all'interno dei programmi, ndt) FLIT di Thomas Stockham, erano i primi del loro genere. Cosi' la possibilita' di lavorare su questo computer era per certi versi un rito di passaggio; significava che avevo raggiunto il grado di Vero Programmatore.

[TX-0]

Anche se difficilmente puo' essere confrontato con la popolarita' di un Apple, il TX-0 era definitivamente a un passo di distanza del concetto di Computer-come-Apollo. Invece di essere sigillato dentro la sua speciale cappella, era sistemato ad un'estremita' di un tipica spaziosa e disodinata area di ricerca del MIT (Massachussets Institute of Technology, ndt). Con le sue rastrelliere di circuiti esposti, alimentatori e quadranti, e la sua lunga console (termine tecnico per definire un "pannello di controllo", da non confondere con i computer domestici dedicati esclusivamente ai videogiochi, ndt) a forma di "L", il TX-0 sembrava quello che per tutto il mondo era la stanza di controllo di una stazione di benzina periferica. E la cosa che piu' la faceva assomigliare a quello, era che ci si aspettava che tu ti servissi da solo.

Cosi' li' si trovava l'ex Assistente dell'Operatore del 704, premendo bottoni, attivando interruttori, e premendo tasti per far funzionare il proprio programma. Per certi versi era piu' semplice del 704; per una cosa, non c'era una serie di mostri meccanici rumorosi. Il dispositivo di ingresso e di uscita del TX-0 era qualcosa chiamato Flexowriter: un tutto-in-uno comprendente tastiera, stampante, lettore e scrittore di nastri e schede perforate, che lavorava come un mulo e aveva una personalita' analoga. C'era cnhe un lettore di schede ad "alta velocita'", un diavoleria modello Gran Premio che poteva caricare i programmi nella memoria quasi alla stessa velocita' di un lettore di nastri registrati di un TRS-80 (home computer dei primi anni '80, ndt).

E il TX-0 aveva uno schermo. Ora, schermi a tubi catodici programmabili montati in una console non erano una cosa inaudita a quei tempi ma erano generalmente lenti, poco flessibili, e complicati da programmare. Lo schermo del TX-0, invece, era facile da utilizzare; si poteva generare la visualizzazione dei dati con meno di una dozzina di istruzioni. E se questo non era abbastanza, c'era la bacchetta magica: la penna ottica. (L'importanza di questi due dispositivi non puo' essere abbastanza enfatizzata; Ivan Sutherland utilizzo' lo schermo e la penna per sviluppare il suo originale "Sketchpad.")

Questo era il TX-0, il primo computer accessibile in tempo reale dall'utente al mondo, e terreno di addestramento per progettisti e programmatori di generazioni successive di macchine su cui chiunque poteva metterci le mani sopra. I primi smanettoni di computer -- gli hacker -- erano il prodotto di questo addestramento; senza di questo, e senza di loro, non ci sarebbe mai stato Spacewar!

La gente del Tixo

Gli utenti del TX-0 erano un misto di studenti, ricercatori e professori con non molto in comune tra di loro, a parte la necessita' di una grande quantita' di disorganizzato tempo di accesso al computer. Il sentimento del posto, comunque, era creato dagli hacker -- principalmente studenti, ma vi erano inclusi anche un professore o due -- le cui vite sembravano essere organizzate in stringhe di 18 bit. Molti di loro lavoravano per i Professori John McCarthy e Marvin Minsky nell'Artificial Intelligence Group, un gruppo singolare (anche per gli standard del MIT) che sembrava convinto che dando abbastanza memoria RAM e un processore veramente veloce si sarebbe potuto ottenere un modello delle parti cognitive del cervello e hey presto! (in italiano nel testo, ndt) una vera macchina pensante. Altri lavoravano per il Professor Dennis, che presiedeva sopra l'uso e lo sviluppo del TX-0 e piu' o meno manteneva benignamente una parvenza d'ordine. L'uomo che manteneva la baracca in funzione era un gentiluomo con i capelli bianchi e la voce sommessa, John McKenzie, l'ingegnere capo.

Fuori da questa nuvola di smanettoni del computer evergeva il gruppo che porto' Spacewar! allo schermo argentato (va be', grigio chiaro): Dan Edwards (AI Group), specialista di Lisp (uno dei primi linguaggi di programmazione, basato sulla logica, ndt); Alan Kotok (TX-0 staff), che scrisse MIDAS, il successore del MACRO; Peter Sampson (AI Group), che fece suonare Bach al Tixo e al PDP-1; e Steve Russell e io.

"Vuoi Dire Che Questo E' Tutto Quello Che Fa?"

Quando i computer erano ancora delle meraviglie, la gente si affollava per vederli al lavoro ogni volta che se ne presentava l'opportunita'. Solitamente rimanevano delusi. Nastri sibilanti e lettori di schede rumorosi non mantenevano l'interesse di qualcuno per tanto tempo. Facevano soltanto la stessa cosa noiosa continuamente; oltre a questo, erano ovviamente meccanici -- tutt'al piu' mangiadischi troppo cresciuti -- e quindi non erano misteriosi. Il corpo principale, che faceva tutto il meraviglioso lavoro, se ne stava semplicemente seduto li'. Non c'era niente da vedere.

Al contrario, qualcosa succede continuamente su uno schermo TV, ed e' per questo che la gente lo osserva per ore. Al Giorno di Apertura annuale del MIT, per esempio, la gente veniva per osservare per ore lo schermo a tubo catodico del Whirlwind. Che cosa osservavano? Palle Rimbalzanti.

Palle Rimbalzanti e' probabilmente il primo programma dimostrativo per computer dotato di schermo video. Non faceva molto: un punto appariva in cima allo schermo, cadeva giu' fino al fondo e rimbalzava (con un "toc!" dall'altoparlante della console). Rimbalzava sui lati e sul pavimento del riquadro mostrato sul video, perdendo gradualmente forza fino a fermarsi sul pavimento e rotolare fuori dallo schermo attraverso un buco nella linea in basso. E questo era tutto. Pong (il primo videogioco "da bar", con le monetine, ndt) non era neppure un'idea nel 1960. (Nota: Be', forse non il Pong, ma qualcosa di molto simile. Guardate queste pagine. --DHA)

La controparte del TX-0 di Palle Rimbalzanti era il Topo nel Labirinto, scritto da Douglas T. Ross e John E. Ward. Essenzialmente, si trattava di un breve cartone animato: un topo stilizzato si muoveva attraverso un labirinto rettangolare finche' non trovava un pezzo di formaggio che quindi mangiava, lasciandone qualche briciola. Tu costruivi il labirinto e sistemavi il pezzo di formaggio (o i pezzi di formaggio -- potevi sistemarne piu' di uno) con la penna ottica. Una variante rimpiazzava il formaggio con un Martini; dopo aver bevuto il primo il topo barcollava verso il successivo.

Oltre al Topo, il TX-0 aveva anche HAX, che mostrava dei disegni che cambiavano secondo la disposizione di alcuni interruttori sistemati su due console. Certe disposizioni ben scelte producevano forme interessanti o particolari sistemazioni di punti, qualche volta accompagnati da suoni divertenti prodotti dall'altoparlante. L'altoparlante della console e' un fenomeno i cui giorni sembrano essere passati. Piu' di un semplice giocattolo, per gli operatori con una certa esperienza era una guida di valore per conoscere la condizione di un programma durante il suo svolgimento.

Finalmente, c'era l'inevitabile gioco del tris, con l'utente che giocava contro il computer. La versione del TX-0 utilizzava il Flexowriter piuttosto che lo schermo. (Il gioco e' cosi' semplice da analizzare che ce n'era perfino una versione per il Flexo, che non lavorava in tempo reale.)

Questi quattro programmi indicarono il cammino. Palle Rimbalzanti era un puro dimostrativo (un "demo", come si direbbe oggi, ndt): premevi un bottone, e lui faceva tutto da solo. Il topo era piu' divertente, perche' potevi farlo diverso ogni volta. HAX era un vero giocattolo; potevi giocare con lui mentre stava girando e fare cambiamenti al volo. E il gioco del tris era un gioco reale, per quanto semplice. Gli ingredienti c'erano; avevamo solo bisogno di una idea.

Il Primo Giocattolo Per Computer Al Mondo

Pur in tutta la sua semplicita', il TX-0 era ancora molto simile a una divinita'. Occupava un sacco di spazio, necessitava di attenzioni particolari, e richiedeva speciali procedure per accenderlo e spegnerlo, e costava un sacco di soldi per costruirlo.

Tutto questo cambio' nell'autunno del 1961, quando il primo modello in produzione del PDP-1 fu installato nella "Kluge Room" porta a porta con il TX-0. Era stato anticipato da mesi; una brochure prematura che annunciava la macchina (insieme a un paio d'altre non mostrate chiamate PDP-2 e PDP-3, nel caso qualcuno se lo stesse chiedendo) aveva circolato nell'area per un po'. Era chiaro che il PDP-1 aveva i geni del TX-0; gli hacker sarebbero stati a casa loro.

[PDP-1]

Il -1 sarebbe stato piu' veloce del Tico, piu' compatto, e disponibile. Era il primo computer che non richiedeva una certificazione E.E. e la pazienza di Buddha per accenderlo la mattina; potevi accenderlo in qualunque momento attivando un interruttore, e quando avevi finito potevi spegnerlo. Non avevamo mai visto niente di simile prima.

II. SPACEWAR! HA INIZIO

Il Gruppo Di Studio Dell'Hingham Institute Sulla Guerra Nello Spazio

Molto prima che il PDP-1 [originariamente detto PDP-11, un ovvio refuso tipografico] fosse funzionante Wayne, Slug, e io avevamo formato una sorta di comitato apposito per stabilire per che cosa l'avremmo utilizzato -- dal momento che l'installazione dello schermo di precisione Type 30 era in programma un paio di mesi dopo l'arrivo del computer stesso. Era chiaro dall'inizio che se pure la Palla e il Topo e HAX erano intelligenti e divertenti, non erano tanto buoni come programmi dimostrativi. Perche' no? Sfrecciando attraverso la galassia con il nostro Motore Bergenholm Privo D'Inerzia, il Gruppo Di Studio Dell'Hingham Institute Sulla Guerra Nello Spazio escogito' la sua Teoria sui Giocattoli Per Computer. Un buon programma dimostrativo avrebbe dovuto soddisfare tre condizioni:

  1. Dovrebbe dimostrare quante piu' risorse del computer possibile, e spingere queste risorse al loro limite;
  2. All'interno di una struttura costante, dovrebbe essere interessante, il che significa che ogni volta che gira dovrebbe essere differente;
  3. Dovrebbe coinvolgere l'osservatore il modo piacevole e attivo -- in breve, dovrebbe essere un gioco.

Con i Fenachroni che ci davano addosso, inseguendo la nostra traccia ionica, Wayne disse, "Insomma, c'e' bisogno di azione e di un po' di abilita'. Dovrebbe essere un gioco dove tu controlli dell cose che si movono intorno allo schermo, come, oh, astronavi. Qualcosa di simile a un gioco di esplorazione, o una gara o una competizione... un combattimento, forse?"

"SPACEWAR!" gridammo Slug e io, nel momento in cui l'ultimo schermo protettivo si abbassava, infiammandosi in un colore violetto.

Le regole di base furono sviluppate velocemente. Ci sarebbero state almeno due astronavi, ognuna controllata da un gruppo di interruttori ("Pero', sarebbe bello avere un joystick o qualcosa del genere..."). Le navicelle avrebbero avuto una riserva di carburante per razzi e una specie di arma: un raggio o un fascio di luce, possibilmente un missile. Per situazioni senza alcuna speranza, un bottone antipanico sarebbe stato bello... hmmm... a-ha! Iperspazio! (di che altro c'era bisogno, dopo tutto?) E questo, e non e' poco, era tutto.

Gli Hacker Incontrano SPACEWAR!

Per la fine dell'estate del 1961, Steve Russell era ritornato all'Artificial Intelligence Group (aveva lavorato li' prima di dedicarsi al Littauer); conseguentemente, qualunque idea venisse fuori dal Gruppo Di Studio, circolava molto presto tra gli hacker. Spacewar! era un concetto semplice e attraente, e gli hacker erano la gente semplice e attraente che l'avrebbe portato alla vita. Prima, comunque, c'era un piccolo problema di software.

Il PDP-1 era una macchina senza fronzoli, agli inizi; a parte qualche utility e routine di diagnostica, non aveva una libreria di programmi. In un certo senso era l'ideale per gli hacker; c'era una possibilita' di migliorare il software del TX-0 e scrivere roba nuova che non avrebbe mai potuto essere fatta prima. MACRO e FLIT vennero tradotti dal TXesco al PDPese, con il FLIT che diventava il primo di una serie di programmi per il debugging in tempo reale. Steve Piner scrisse un programma per mostrare e modificare dei testi chiamato Expensive Typewriter ("La Macchina da scrivere Costosa", ndt) (Per un po', "expensive" era l'aggettivo preferito per dare nome a varie routine per PDP-1 che imitavano la funzione di dispositivi piu' comuni. Tra gli altri c'era l'Expensive Planetarium di Peter Samson, come vedremo.), un altro capostipite, dal quale e' possibile far discendere, se volete, il piu' recenti word processor.

Successivamente alla creazione del software per la programmazione della macchina era ora possibile scrivere i programmi veri e propri, sarebbe a dire i giocattoli. Palle Rimbalzanti era stato convertito con successo per il PDP-1, ma HAX, per qualche ragione, non lo era stato. Ma nessuno ne senti' realmente la mancanza, perche' avevamo un giocattolo nuovo di zecca inventato dal Professor Marvin Minsky. Il programma mostrava tre punti che procedevano per "interagire," intessendo vari disegni sul video. Come con HAX, le costanti iniziali venivano definite con gli interruttori della console. Tra i vari disegni generati c'erano elementi geometrici, figure simili a quelle di Lissajous (un tipo di immagini frattali, ndt), e "fuochi d'artificio." Il programma di Minsky era intitolato qualcosa come "Tri-Pos: Three-Position Display," ("Tri-Pos: Schermo a Tre Posizioni", ndt), ma fin dall'inizio non l'abbiamo chiamato in altro modo che non fosse Il Minskytron ("tron" era il suffisso di moda nei primi anni '60.)

La classica forma a cuneo e ad ago delle astronavi e le posizioni di partenza situate in quadranti opposti vennero stabilite in questa fase, come mostrato in Figura 1. L'accelerazione era realistica; ci voleva del tempo per partire da fermi, e per rallentare bisognava invertire la posizione della navicella e spingere i razzi propulsori nella direzione opposta; lo scarico dei razzi era una sfarfallante "coda di fuoco." La rotazione, d'altra parte, era qualcosa che noi chiamavamo "gyro" -- una specie di effetto rotante inventato per evitare di prendere in considerazione cose complicate come le spinte inerziali. Immagino che fossero dei veri Bergenholm rotanti.


[Schermata di apertura di Spacewar]
Figura 1. La posizione di partenza. Le navicelle sono al centro di due quadranti opposti in diagonale. Il gruppo di stelle al centro in alto e' il corno della costellazione del Toro. Dovreste essere in grado di riconoscere le stelle di Orione a sinistra (la stella luminosa sopra l'astronave a forma di cuneo e' Rigel).

Era quasi subito evidente che uno sfondo neutro era una seccatura. Era difficile stimare il movimento relativo; non potevi renderti conto se le navicelle si stavano allontanando o avvicinando quando si muovevano lentamente. Quello di cui avevamo bisogno, ovviamente, erano alcune stelle. Russell scrisse una routine per visualizzare dei puntini sparsi a caso sullo schermo, e la qualita' del gioco miglioro'. L'unica cosa rimasta, pensavamo, era l'iperspazio, ed era in fase di sviluppo. Infatti, avevamo appena iniziato.

III. SPACEWAR! COMPLETATO

Tenete conto che quanto segue non e' accaduto secondo una progressione logica del tipo prima-una-cosa-e-poi-la-seguente, ma piuttosto tutto insieme un un periodo di circa sei settimane. Quando gli hacker sono eccitati, qualunque cosa possa succedere, succedera'.

Le Scatole Di Controllo

Spacewar! funzionava perfettamente con gli interruttori della console, a parte il fatto che lo schermo era rivolto da un lato, cosi' che un giocatore aveva un vantaggio visivo. Ancora peggio, con due eccitati guerrieri spaziali infilati in uno spazio inteso per un operatore ragionevolmente calmo, il danneggiamento dell'apparecchiatura era una minaccia costante. Come ultima cosa, un giocatore un giocatore nervoso poteva mancare l'interruttore per lanciare i missili e colpire la leva di avvio, facendo scomparire l'universo in un Big Crunch. Un dispositivo di controllo separato era ovviamente necessario, ma i joystick (la nostra idea originale) non erano disponibili nel 1962. Cosi' Alan Kotok e Robert A. Saunders, che era appena diventato membro del Tech Model Railroad Club (club di modellismo ferroviario, ndt), si precipito' nella sede del TMRC, frugo' intorno per un po' per trovare singolari pezzi di legno, fili elettrici, bakelite, e degli interruttori, e quando termino' di martellare, segare, e saldare, la' sul ripiano del video c'erano le prime scatole di controllo di Spacewar! (Figura 2. Queste scatole sono sparite in seguito, ma lo schizzo e' una ricostruzione ragionevolmente accurata).


[Schizzo della scatola di controllo]
Figura 2. Le scatole di controllo originali assomigliavano a qualcosa come questo. I controlli erano a) rotazione a destra e a sinistra, b) accelerazione (tirata indietro) e iperspazio (spinta in avanti), e c) bottone per lanciare i missili.

La scatola era di legno con la parte superiore di Bakelite. I due interruttori sono a due posizioni; il bottone e' un interruttore momentaneo silenzioso. Le loro funzioni sono le seguenti:

a. Controllo di rotazione.
Premuto a sinistra ruota la navicella in senso antiorario, a destra la ruota in senso orario.
b. Un controllo a due funzioni.
Tirato indietro accende i razzi acceleratori; i razzi continuano a spingere finche' l'interrutore resta tirato. Premuto avanti, l'interruttore e' il controllo per l'iperspazio, come descritto piu' in basso.
c. Il bottone lanciamissili.
Deve essere silenzioso in modo che il tuo avversario non possa rendersi conto quando stai cercando di sparare. (C'era un intervallo fisso tra i colpi "per permettere ai tubi di lancio di raffreddare" e il fuoco non era automatico; bisognava continuare a premere il bottone per lanciare un missile.)

Con le scatole di controllo, i giocatori potevano sedere comodamente distanti, ognuno con una vista chiara dello schermo. Questo, unito ad una attenta progettazione dei controlli, miglioro' notevolmente il livello di abilita' dei giocatori, rendendo il gioco ancora piu' divertente.

Primi Passi

Per la fine del 1961, tutti gli elementi erano al loro posto: la disponibilita' di un computer nuovo di zecca, un manipolo di hacker, dei datori di lavoro tolleranti quando non implicati attivamente, e un'idea eccitante. Slug Russell riceveva pressioni da tutti quanti per "fare qualcosa" a proposito di Spacewar! (Io mi trovavo in un altro dipartimento del MIT a quel tempo, e Wayne, ahime', era uno di quei sfortunati Riservisti dell'Esercito richiamati in servizio attivo durante il panico del Muro di Berlino in Ottobre. Non ha mai potuto partecipare allo sviluppo della sua propria idea.)

Russell, non era una persona da "fare qualcosa" quando c'era un'alternativa, rifiutava per una ragione o per l'altra. Una delle scuse per non farlo, Slug ricorda, era "Oh, non abbiamo una routine di seno e coseno e accidenti, io non so scrivere una routine di seno e coseno..." (le funzioni matematiche di seno e coseno sono necessarie per calcolare il movimento di rotazione circolare di un oggetto, ndt) Allora Alan Kotok torno' da un giro a Maynard (quartier generale del DEC) con nastri di carta dicendo "Va bene, Russell, questa e' una routine di seno e coseno; adesso qual e' la tua scusa?" "Be'", dice Slug, "mi sono guardato intorno e non ho trovato una scusa, cosi' ho dovuto accettare la situazione e immaginarmi qualcosa."

Con l'alta matematica in mano, Slug produsse il primo programma di un oggetto-in-movimento nel Gennaio del 1962. Questo non era niente piu' di un puntino che poteva accelerare e cambiare direzione controllato da un interruttore. Anche considerando l'assenza di istruzioni hardware per moltiplicare e dividere (nei primi PDP-1, qualunque cosa piu' difficile dell'addizione o sottrazione di numeri interi doveva essere fatta tramite una procedura software) il computer non era chiaramente spinto ai suoi limiti.

Il passaggio dal puntino all'astronave si tratto' di un passo sorprendentemente facile: "Mi sono reso conto," dice Slug, "che non dovevo preoccuparmi della velocita' della routine di seno e coseno, perche' c'erano solo due angoli coinvolti in ogni fotogramma di animazione -- uno per ogni navicella. Quindi l'idea di ruotare la griglia venne fuori." I contorni dell'astronave erano rappresentati come una serie di codici di direzione che partivano dalla punta della navicella; quando la navicella era verticale con la coda verso il basso, ogni codice puntava a uno dei cinque possibili punti adiacenti che potrebbero essere disegnati in seguito. Per disegnare la navicella inclinata, Rusell calcolava il seno e coseno appropriato e li aggiungeva alla costante del codice di direzione originale, ruotando in effetti l'intera griglia. Con questo metodo, l'inclinazione della navicella doveva essere calcolato solo una volta per ogni fotogramma di animazione. I codici del contorno erano memorizzati in una tabella cosi' che potevano essere sperimentate differenti forme a volonta', ma questo significava che la tabella doveva essere esaminata per ogni fotogramma per disegnare il contorno. Con l'avanzare dello sviluppo del gioco, questa soluzione dimostrava essere una seccante causa di rallentamento che, come vedremo, fu intelligentemente risolta da Dan Edwards.

Per Febbraio, il primo gioco era funzionante. Era un modello ridotto all'osso: solo le due astronavi, una riserva di carburante, e una fornitura di missili -- punti luminosi lanciati dalla punta della navicella. Una volta lanciato, un missile era un missile balistico, che procedeva diritto finche' non colpiva qualcosa (piu' precisamente, finche' non raggiungeva una distanza minima con una navicella o un altro missile) o veniva autodistrutto dopo un certo tempo.

Le Stelle Del Paradiso

Una delle forze che guidano i veri hacker e' la ricerca dell'eleganza. Non e' sufficiente scrivere programmi che funzionino. Devono anche essere "eleganti," nel codice o nel modo in cui funzionano -- in entrambi, se possibile. Un programma elegante compie il suo lavoro il piu' velocemente possibile, o e' il piu' compatto possibile, o e' il piu' intelligente possibile nell'avvantaggiarsi di particolari caratteristiche della macchina su cui gira, e (infine) mostra i suoi risultati in una forma esteticamente piacevole senza compromettere i risultati o le operazioni di altri programmi associati.

"Peter Samson," ricorda Russell, "era offeso dalle mie stelle casuali." In altre parole, mentre uno sfondo di puntini di luce sparsi a caso poteva andar bene per qualche stupida flotta spaziale, non andava affatto bene per la Pattuglia Galattica. Cosi' Peter Samson si sedette e scrisse l'"Expensive Planetarium."

Utilizzando dati tratti dall'American Ephemeris and Nautical Almanac ("Almanacco Nautico e delle Effemeridi Americano", ndt), Samson codifico' l'intero cielo notturno (fino al grado di magnitudo cinque) tra i 22 1/2 ° N e i22 1/2 ° S, includendo percio' la maggior parte delle costellazioni piu' familiari. Lo schermo visibile poteva restare fisso o muoversi gradualmente da destra a sinistra, fino a mostrare l'intero culindro [cilindro?] (scritto erroneamente "culinder" invece di "cylinder", nell'articolo originale, peraltro la "u" e la "y" sono affiancate nella tastiera QWERTY, ndt) di stelle. L'eleganza non si fermava qui. Illuminando ogni punto dello schermo il giusto numero di volte, Samson era capace di mostrare sullo schermo delle stelle molto simili alla loro reale luminosita' relativa. L'E.P. era gia' un'affascinante programma dimostrativo di suo, e fu "debitamente ammirato e infilato dentro Spacewar!"

La Stella Pesante

Fino a questo punto, Spacewar! era pesantemente pregiudicato dalle abilita' motorie e dai riflessi pronti dei giocatori, mentre la strategia contava molto poco. Le partite tendevano a diventare niente piu' che selvaggi sparatutto, molto eccitanti ma non gratificanti, in fin dei conti. Era necessario aggiungere qualcosa.

Russell: "Dan Edwards era offeso dalla presenza del movimento delle astronavi, e pensava che doveva essere introdotta la forza di gravita'. Invocai la mia innocente ignoranza di analisi matematica e altre cose" -- in altre parole, qui c'e' il pennello intinto nella vernice bianca e qui c'e' la parte di recinto da dipingere (citazione dal racconto di Tom Sawyer di Mark Twain. Allude lo scaricare il proprio lavoro sugli altri, presentandolo come un piacere) -- "e cosi' Dan aggiunse i calcoli gravitazionali."

La stella risplendeva al centro dello schermo, i suoi raggi dardeggianti erano un chiaro avvertimento che era qualcosa con cui era meglio non avere a che fare. Il suo campo gravitazionale raggiungeva tutto lo spazio; non importava dove fossi, se non ti muovevi saresti stato attirato dentro il sole e distrutto. (come un gesto di buona volonta' verso i giocatori meno dotati e principianti, c'era un opzione attivata tramite un interruttore che trasformava l'attrazione in una specie di "gravita' inversa" diretta verso i quattro angoli dello schermo.)

La stella faceva due cose. Introduceva un elemento indipendente dal giocatore di cui il gioco aveva bisogno; e quando la velocita' era elevata e lo spazio era pieno di missili, era spesso questione di pura fortuna non distruggersi contro la stella. Oltre a questo apportava l'altro elemento che aggiungeva interesse al gioco, richiedendo strategia. Con la presenza della gravita', entrambe le navicelle erano sottoposte a qualcosa al di fuori del loro controllo, ma che un abile giocatore poteva utilizzare a suo vantaggio.

Il primo risultato di questa nuova attenzione alla strategia era la mossa di apertura in Figura 3, che fu prontamente nominata "l'apertura CBS" per via della sua forma che ricordava un occhio. (il logo della CBS, canale televisivo statunitense, e' appunto un occhio, ndt) Ci voleva un po' per imparare questa manovra, ma presto divenne l'apertura standard tra i giocatori esperti, poiche' generalmente era il presupposto per le partite piu' eccitanti.


[L'apertura CBS]
Figure a. "L'apertura CBS." Le navicelle girano poco lontano dalla stella e danno una breve spinta ai razzi propulsori (notate lo scarico dell'astronave a forma di ago) per entrare in un orbita simile a quella di una cometa, poi ruotano nella direzione opposta e tentano di sparare missili all'avversario.

L'aggiunta della gravita' spinse Spacewar! oltre il limite di una grafica pulita, senza sfarfallio. Per riportarlo sotto il limite, Dan Edwards escogito' un elegante trucco per velocizzare la routine di visualizzazione dei contorni delle navicelle.

Nel programma originale di Rusell, le tabelle dei contorni erano esaminate e interpretate in ogni fotogramma di animazione, un'operazione essenziale ma ridondante. Edwards rimpiazzo' questa procedura con un "compilatore" di contorni, che esaminava le tabelle all'inizio del gioco e compilava un breve programma per generare la sagoma di ogni navicella. Questo ridusse drammaticamente il tempo di calcolo, restituendo una grafica fluida e liberando spazio per gli effetti speciali previsti in origine.

Iperspazio

Mentre succedeva tutto questo, io mi trovavo nel mio nascondiglio segreto (allora conosciuto come l'Electronic Systems Lab) lavorando al bottone antipanico definitivo: l'iperspazio. L'idea era che quando ogni altro tentativo era inutile, potevi saltare nella quarta dimensione e sparire. Poiche' questo avrebbe introdotto un elemento molto simile alla magia in un universo altrimenti razionale, l'uso dell'iperspazio doveva essere contenuto in qualche modo. Il nostro scopo era creare una funzione che, se pure utile, non fosse completamente affidabile. Il macchinario, dicevamo, avrebbe dovuto essere "La prima versione di un Generatore di Ipercampo... non e' passato attraverso una fase di collaudo... l'abbiamo montato in fretta e furia sulle navicelle" e cosi' via. Poteva essere buono per una o due volte, ma si sarebbe rapidamente deteriorato in seguito. Poteva non funzionare per niente ("Non e' colpa mia, amico!") o se funzionava, le possibilita' di ritornare intatti erano minori delle precedenti. Slug: "Era qualcosa che potevi usare, ma non qualcosa che volevi usare."

Il primo iperspazio non era tanto elegante. "Inaffidabilita' Versione I" poteva essere riassunta in questo modo: avevi esattamente tre salti. In ogni salto le coordinate della tua navicella venivano riassegnate a caso cosi' che non potevi mai sapere dove saresti riapparso -- poteva essere in mezzo alla stella. Sparivi per un breve periodo di tempo, che dava al tuo avversario un po' di respiro, ma quando tornavi mantenevi intatte velocita' e direzione originali. Per saltare dovevi premere la leva di spinta dei razzi propulsori in avanti.

L'iperspazio aveva una caratteristica carina (be', io pensavo che fosse carina). Vi ricordate del Minskytron? Una delle sue figure era molto simile a un classico atomo di Bohr, che in quel periodo era l'abusata metafora per qualunque cosa avesse a che fare con lo spazio e la fantascienza. Ragionando sul fatto che una navicella che entrava nell'iperspazio avrebbe causato una distorsione locale dello spazio-tempo che avrebbe prodotto un'emissione tensofotonica indotta dalla deformazione luminosa (vedete com'e' facile?), avevo fatto in modo che la navicella che scompariva si sarebbe lasciata dietro una specie di firma di Minskytron (Figura 4).


[Minskytron]
Figure 4. "Emissione tensofotonica indotta dalla deformazione luminosa." La firma di Minskytron dell'Iperspazio.

Imprecisioni E Cose Malandate

Guardando indietro, e' notevole che lo Spacewar! originale potesse includere cosi' tante caratteristiche, per via delle limitazioni del nostro PDP-1: 4Kwords (circa 9Kbytes) di memoria (un word, o "parola", equivale a due bytes, in effetti corrisponderebbe a soli 8Kbytes di memoria, ndt), un ciclo di istruzione di cinque microsecondi, e la necessita' di utilizzare una subroutine per le operazioni di moltiplicazione e divisione. Difficilmente si puo' restare sorpresi, quindi, che abbiamo dovuto lasciar passare qualche elemento insoddisfacente (sarebbe a dire, inelegante).

Il piu' irritante di questi (e il primo ad essere migliorato nelle versioni successive) fu la appropriatamente chiamata Esplosione Malandata ("Crock Explosion", nell'originale, ndt). Qualcosa di drammatico doveva ovviamente accadere quando una navicella veniva distrutta, ma avevamo a che fare con uno schermo a matrice di punti a due colori (bianco e il nero di sfondo, senza gradazioni di grigio, ndt). Il programma di controllo originale produceva un'esplosione di puntini sparsi a caso, confinati all'interno di un piccolo quadrato i cui confini erano troppo discernibili (Figura 5).


[L'Esplosione Malandata]
Figure 5. L'Esplosione Malandata. Nessuno e' perfetto.

Questa esplosione era intesa come una soluzione temporanea finche' qualcosa di piu' plausibile non fosse stata sviluppata, ma dopo che tutte le altre caratteristiche erano state "infilate," non c'era piu' spazio o tempo (inteso, come pure di seguito, come tempo-macchina per effettuare i calcoli durante lo svolgimento del programma, non come tempo per la consegna del lavoro, ndt) per una procedura piu' carina.

Similmente, i missili non erano del tutto coerenti con l'universo di Spacewar! dopo l'introduzione della stella con massa elevata. I calcoli gravitazionali per le due navicelle era tutto quanto il programma poteva sopportare; non c'era il tempo di effettuare i calcoli anche per una mezza dozzina di missili. Cosi' i missili non erano influenzati dalla stella, con il singolare risultato che potevi spararvi proprio attraverso e colpire qualcosa dall'altro lato (e se non prestavi attenzione nel girare intorno alla Stella, potevi essere tu). Tirammo fuori le solite scuse... mmmmmm bombe fotoniche mmmmmm... ma a nessuno importo' veramente.

La stessa stella pesante non era del tutto Newtoniana. La tattica comune di spingersi giu' per il pozzo gravitazionale per guadagnare spinta inerziale girando intorno alla stella (Figura 6) rilasciava maggiore energia rispetto a quella a cui si aveva in realta' diritto. Dal momento che questo era stato fatto per rendere il gioco piu' interessante, niente fu fatto in quel momento per correggerlo.


[sfruttando la gravita' della stella]
Figure 6. Una scena comune durante una partita -- e non parlate di G-force! (unita' di misura della gravita', 1G = gravita' terrestre: 9.75 metri al secondo, ndt)

IV. DOPO SPACEWAR!

Il gioco era essenzialmente completo per la fine dell'Aprile del 1962. L'unico lavoro immediatamente necessario era di rendere Spacewar! presentabile per l'annuale Science Open House del MIT, che si teneva a Maggio. Un calcolo del punteggio fu aggiunto, cosi' che si poteva porre un termine alle partite, rendendo facile limitare il tempo che una persona poteva passare ai comandi. Per accontentare la folla a cui avevamo (accuratamente) pubblicizzato la cosa, un grande schermo a tubi catodici da laboratorio era stato attaccato al computer con funzione di schermo secondario Sistemato in cima di un alto scaffale, permetteva a degli spettatori riuniti in una stanza affollata di guardare in un relativo comfort.

Sempre a Maggio, il primo incontro del DECUS (Digital Equipment Computer Users' Society) ("Societa' degli Utenti di Computer e Apparecchiature Digitali", ndt) si sarebbe tenuto a Bedford, in Massachussets. A quell'incontro, avevo consegnato i primi depliant sul soggetto, pretenziosamente intitolati "SPACEWAR! Applicazione in Tempo Reale per il PDP-1."

Al termine dell'estate del 1962, il gruppo originale di hacker che creo' Spacewar comincio' a disperdersi. Alan Kotok e io andammo a lavorare per la Digital. Steve Russell segui' John McCarthy alla Stanford University. Peter Samson e Bob Saunders rimasero a Cambridge per un po', ma alla fine anche loro se ne andarono verso l'Ovest. Dan Edwards resto' con l'AI group per qualche anno, poi si trasferirono al Progetto MAC. Pure Jack Dennis e il PDP-1 finirono al Progetto MAC, che si evolse nel Laboratorio Informatico del MIT. Altri continuarono la manutenzione e lo sviluppo di Spacewar! Nastri con il programma cominciavano ad apparire in tutto il paese, non solo sui PDP-1 ma piu' o meno in tutti computer di ricerca che avevano uno schermo programmabile.

Un Mistero, Per Giunta

Slug mi dice che c'e' una Versione Perduta di Spacewar! Ci doveva essere, naturalmente. Dice che il gioco e' molto simile all'originale, ma che il punteggio e' molto piu' imponente. Dopo ogni partita, il punteggio cumulativo viene mostrato come una fila di navicelle, come le tacche sull'aereo di un pilota della Seconda Guerra Mondiale. Slug dice di aver visto questa versione per un breve tempo sul PDP-1, ma non ha mai scoperto chi l'ha prodotto e che fine ha fatto.

Vent'Anni Dopo

Il PDP-1 originale di Spacewar fu mandato in pensione nel 1975 e messo in un magazzino di Northboro del DEC, dove serve come pezzi di ricambio per macchine simili adesso in mostra al Digital's Computer Museum di Marlboro, Massachussets. Nel momento in cui scrivo, l'ingegnere del DEC Stan Schultz e io stiamo cercando di rimettere lo Spacewar! originale nuovamente in condizioni di funzionare. Fino ad ora, tutti i tentativi di trovare le scatole di controllo originali sono stati inutili; probabilmente costruiremo delle repliche (i joystick di plastica dell'Atari di cui disponiamo non hanno classe). (ai tempi in cui fu scritto l'articolo, primi anni '80, i joystick dell'Atari erano i piu' diffusi ed erano diventati lo standard de facto, e lo sarebbero stati ancora per tutto il decennio, ndt)

Dan Edwards lavora ancora per il Governo degli Stati Uniti, sviluppando sistemi di sicurezza informatici. Alan Kotok e' ancora un ingegnere consulente al DEC. Peter Samson e' adesso direttore di marketing per la Systems Concepts, Inc., a San Francisco. Bob Saunders e' andato a Silicon Valley, dove e' un ingegnere programmatore per la Hewlett-Packard.

Jack Dennis e' Professore di Scienze al Dipartimento di Ingegneria Elettrica del MIT.

John McKenzie, l'ingegnere capo, e' in pensione, me nell'ultimo anno e oltre ha aiutato nel riportare in vita il TX-0 e il PDP-1 al Museo del Computer.

E cosa ne e' stato dell'Hingham Institute? Wayne Wiitanen e' recentemente diventato un Ricercatore Scientifico Anziano nel Laboratorio di Ricerca della General Motors, dove disegna allegramente occhi per robot. Slug, dopo varie avventure, e' adesso un analista programmatore per l'Interactive Data Corp. a Waltham, nel Massachussets. Io mi sono ridotto a scrivere per vivere, ma tendo a comportarmi in modo meno superiore, per questo.

Lo stesso Spacewar! ha prodotto una discendenza di rumorosi e sgargiantemente colorati mostri che si nascondono in oscure caverne e infestano le sale delle pizzerie, mangiando quarti di dollaro e offrendo piaceri degenerati. Io penso di conoscere qualche ex hacker che non e' sorpreso neanche un po'.

Ringraziamenti

Sono stato in grado di raggiungere tutti gli autori dello Spacewar! originale, gli hacker e l'altra gente dell'Hingham Institute. Per non parlare dei Professori Dennis e Minsky, e John McKenzie. In aggiunta, sono grato a Marcia Baker, al Professor F.J. Corbato, e il Professor R.M. Fano, tutti del MIT, per l'aiuto fornitomi per luoghi e date, e altri fatti. L'aiuto e' loro; ogni errore mio.