Abandonware
Rogue 1984, the DOS game, the history, the science
* * Back * *


UN SISTEMA ESPERTO BATTE I SEMPLICI MORTALI NELLA CONQUISTA DEI TERRIBILI SOTTERRANEI DEL DESTINO - A. K. Dewdney

"Le Scienze" (edizione italiana di Scientific American), numero 200, Aprile 1985, anno XVIII, volume XXXIV, pp. 104-107

Ogni anno, migliaia di persone incontrano una morte di fantasia nei Sotterranei del Destino giocando ad Avventuriero (Rogue, in inglese), un rappresentante di una nuova generazione di giochi d'avventura con il calcolatore. Il giocatore osserva una mappa dei sotterranei sullo schermo e dirige le azioni di un personaggio chiamato l'Avventuriero. Obiettivo del gioco è scendere attraverso i 26 livelli dei sotterranei, impadronirsi dell'Amuleto di Yendor e tornare sani e salvi in superficie raccogliendo quanto più oro possibile lungo il percorso e uccidendo o sfuggendo ai mostri che si incontrano. Sono ben pochi i giocatori umani che riescono, non dico a tornare con l'amuleto, ma anche solo a sopravvivere ai pericoli di questa odissea sotterranea.
La sensazione di entrare davvero in un mondo fantastico può essere molto vivida; è facile lasciarsi rapidamente alle spalle la coscienza di essere davanti a una tastiera e a uno schermo. Come l'Avventuriero, mi avvicinai all'ingresso dei sotterranei con una certa trepidazione: era notte e le antiche rovine che indicavano il punto della mia imminente discesa avevano un aspetto lugubre e minaccioso. Preparai la mia mazza incantata, un arco e una faretra di frecce sottratti dal tesoro di un drago sulle Montagne Oscure. Indossai la mia armatura costruita dai folletti, afferrai le mie armi e i viveri e mi inoltrai nell'oscurità stigea di una scala.
Proprio quando la discesa cominciava ad apparirmi senza fine, mi trovai di fronte a una porta di quercia e la aprii con cautela. Davanti a me c'era la prima stanza del livello superiore dei Sotterranei del Destino. Delle candele spandevano una fievole luce e io mi spinsi fino al centro della camera, per sorvegliarla meglio. Improvvisamente, il pavimento cedette sotto i miei piedi e per un terribile secondo mi trovai a precipitare, finché con un tonfo doloroso atterrai in un'altra stanza. Questa era molto più buia e, anche dopo essermi abituato all'oscurità, non riuscivo a vedere che per pochi passi intorno a me. Per peggiorare la situazione, sentivo qualcosa muoversi nella stanza. Attanagliato dalla paura, inciampai e mi trovai di fronte a un'orrenda figura accovacciata, coperta da un'armatura e con in pugno una clava. Appena lo vidi sollevare la sua arma per colpirmi, un flusso di adrenalina mi schiarì le idee: con un unico fluido movimento misi una freccia sul mio arco, tesi la corda e scoccai la freccia (Per mia fortuna, a scuola avevo seguito un corso di tiro con l'arco). Con un sibilo e un urlo, il demonio (perché di un demonio si trattava) cadde a terra fremendo di rabbia. Con cautela uscii di lì, deciso a trovare una scala per tornarmene fuori dai Sotterranei del Destino. Pensavo alla mia casa accogliente e alla scrivania con l'articolo delle «(Ri)creazioni al calcolatore» da finire.
Mentre procedevo lentamente verso il punto in cui pensavo dovesse trovarsi una scala, colpii con lo stivale qualcosa che sembrava un mucchietto di pietre. Abbassai lo sguardo. Anche al buio qualcosa splendeva. Oro! Quasi quasi potevo esplorare un'altra stanza, una sola, prima di tornare in superficie...
A parte l'intensità dell'esperienza di immedesimazione, Avventuriero va al di là dei tradizionali giochi d'avventura sotto almeno due punti di vista. In primo luogo, la configurazione del terreno generata dal programma stesso e varia da una partita all'altra. In secondo luogo, Avventuriero fornisce al giocatore una vista in pianta del tratto, esplorato fino a quel punto, del livello dei sotterranei in cui il giocatore si trova. Varie caratteristiche sono indicate da diversi caratteri della tastiera che appaiono sullo schermo. Per esempio, trattini e sbarrette rappresentano pareti, i segni «diesis» e i segni di percentuale rappresentano rispettivamente passaggi e scale, i più rappresentano entrate e i segni a rappresentano trappole. Oggetti e caratteristiche della camera possono essere o non essere visibili a seconda che la camera sia illuminata o meno. Quando l'Avventuriero penetra in questo livello, le caratteristiche del livello non appaiono sullo schermo; perché vengano rappresentate, l'Avventuriero (rappresentato da un segno @) deve scoprirle. Così egli esplora, incappa in qualche trappola, perlustra parti di varie stanze e attraversa passaggi. Può anche incontrare la lettera U, che rappresenta un mostro chiamato il Cupo Hulk.
Sotto la mappa grafica, lo schermo mostra l'attuale situazione statistica dell'Avventuriero. Nella figura, l'Avventuriero si trova al venticinquesimo livello, ha accumulato 7730 pezzi d'oro, ha guadagnato 77 punti (ma gliene rimangono solo 25 a causa dei danni sofferti), ha accumulato forza fino al quindicesimo grado (18 è il massimo), indossa una armatura di classe 9 e ha 30.668 punti d'esperienza, sufficienti per porlo all'elevato tredicesimo ordine d'esperienza. Al venticinquesimo livello dei Sotterranei del Destino, all'Avventuriero non rimane che una scala da scendere per raggiungere il livello inferiore e cercare di impadronirsi dell'ambito Amuleto di Yendor. L'Avventuriero, però, deve prima sbarazzarsi del Cupo Hulk.


An_expert_system_outperforms_mere_mortals_as_it_conquers_the_feared_Dungeons_of_Doom_fig1.jpg

In questa sede possiamo analizzare solo superficialmente il gioco. Sarebbe possibile scrivere un intero libro di regole e consigli per giocare ad Avventuriero. Per ora, l'unico manuale del genere disponibile è un conciso opuscolo di otto pagine scritto da Michael C. Toy e Kenneth C. R. C. Arnold, "A Guide to the Dungeons of Doom". Sfortunatamente, è disponibile solo per gli utenti del sistema a partizione di tempo VAX/UNIX. A quanto mi dice Arnold, è ora disponibile una versione di Avventuriero adatta per l'IBM PC e la si può richiedere (sotto la denominazione inglese di Rogue) alla A. I. Design, 201 San Antonio Circle, Suite 115, Mountain View, California 94040. Toy e Arnold, i creatori di Avventuriero, pensano evidentemente che il modo migliore per imparare il gioco sia giocarlo. È comunque possibile dare una descrizione a grandi linee delle caratteristiche generali del gioco.


An_expert_system_outperforms_mere_mortals_as_it_conquers_the_feared_Dungeons_of_Doom_fig2.jpg

A ogni livello, l'area di gioco è divisa in quadrati. L'Avventuriero, mentre esplora l'ambiente che lo circonda, occupa un quadrato alla volta. Il movimento all'interno delle stanze e dei passaggi è controllato mediante comandi formulati premendo alla tastiera lettere quali h, j, k e l che muovono l'Avventuriero di un unico quadrato in una delle quattro direzioni principali. Altri comandi producono un movimento diagonale o un movimento continuo in una data direzione. Per far salire o scendere una scala all'Avventuriero, il giocatore deve battere il carattere < o, rispettivamente, >.
Quando si scopre un oggetto vicino alla posizione dell'Avventuriero, per raccoglierlo automaticamente bisogna spostare l'Avventuriero sul quadrato in cui si trova l'oggetto. Se il giocatore vuole spostarsi su quel quadrato senza raccogliere l'oggetto, deve battere una m seguita dal carattere per la direzione appropriata. Battendo la s, si può anche far effettuare all'Avventuriero una ricerca delle trappole nei quadratini circostanti: con l'avvertenza, però, che la ricerca ha solo il 20 percento di probabilità di portare effettivamente alla scoperta di una trappola.
Di tanto in tanto, l'Avventuriero deve fermarsi (battere un puntino) o mangiare (battere una e) per recuperare le forze spese nell'esplorazione o nella lotta contro i mostri. A parte una limitata quantità di cibo trasportata in uno zaino, l'Avventuriero non ha altro da mangiare che quello che può trovare per terra nei sotterranei (per quanto poco invitante possa sembrare).
Quando trova un pezzo di armatura, l'Avventuriero può prenderselo (mettendolo automaticamente nello zaino) o indossarlo (battere una W). Ovviamente, l'armatura dà all'Avventuriero maggiore protezione in combattimento, ma può anche essere stregata. Se l'armatura è stregata, ogni tentativo di togliersela (battere una T) è inutile senza una pergamena magica che rompe la maledizione. Tutti gli anelli magici trovati dall'Avventuriero possono essere indossati (battere una P) o tolti (battere una R) a meno che non siano stregati.
A volte l'Avventuriero è costretto ad abbandonare una fiaschetta e una pergamena o due (battere una d seguita da un carattere che rappresenta l'oggetto) perché lo zaino è pieno (Un Avventuriero con lo zaino pieno non può raccogliere un'armatura). Prima di abbandonare la fiaschetta, però, l'Avventuriero può berne l'ignoto contenuto sperando di trarne beneficio: alcune pozioni hanno un effetto curativo e altre mettono in grado l'Avventuriero di vedere il Mostro Invisibile. D'altro canto, la pozione può provocare uno stato di disorientamento; può capitare, ad esempio, che dopo aver dato all'Avventuriero il comando di muoversi verso nord, egli cominci a vagare in una direzione a caso. Allo stesso modo, può essere vantaggioso leggere una pergamena (battere una r) prima di gettarla: certe formule tolgono la maledizione da un'armatura.
Gli strumenti magici più impressionanti a disposizione dell'Avventuriero sono delle bacchette. A seconda del tipo di bacchetta raccolta, l'Avventuriero può sbarazzarsi di un mostro (battere una z) con vari effetti: può trasportarlo in un luogo a caso, lanciargli addosso globi infuocati o trasformarlo in un altro mostro. È meglio usare quest'ultimo tipo di bacchetta, detta bacchetta polimorfa, sui mostri più orribili: è di gran lunga preferibile trasformare il terribile Verme Purpureo in un pipistrello che viceversa.
Quando l'Avventuriero scopre un mostro, può essere opportuno lasciarlo stare: a volte un mostro sta dormendo e non attaccherà se lasciato in pace. Se però un combattimento appare inevitabile, si può impugnare un'arma (battere una w) e lottare all'ultimo sangue (battere una f), dopo aver spostato l'Avventuriero vicino al mostro. L'esito dello scontro dipenderà in modo probabilistico da fattori quali l'attuale livello di forza dell'Avventuriero, il suo grado di esperienza e la classe dell'armatura.
Tra i giocatori di Avventuriero, primeggia un giocatore non umano di grosso calibro: un programma per calcolatore che nel corso degli ultimi quattro anni si è dedicato a questo gioco rivaleggiando in prodezza con i migliori concorrenti alla ricerca dell'amuleto e dell'oro. Questo programma fornisce anche un'interessante opportunità di osservare un sistema esperto al lavoro.
Il 16 febbraio del 1984, all'Università del Texas di Austin, un Avventuriero controllato da un programma fece fuori tutti i mostri, ammassò un considerevole mucchio d'oro e ritornò con l'amuleto. Questo programma, dal nome ben poco magico di Rog-o-Matic, diresse ogni passo dell'Avventuriero, ogni sua pausa, ogni lancio e ogni colpo.
Rog-o-Matic è la creazione di quattro studenti del dipartimento di scienze del calcolatore della Carnegie-Mellon University di Pittsburgh: Andrew Appel. Leonard Hamey, Guy Jacobson e Michael Mauldin. Rog-o-Matic unisce fonti di conoscenza programmate a sistemi esperti per prendere decisioni sul da farsi in ogni immaginabile situazione sotterranea.
Quando un essere umano gioca ad Avventuriero, un flusso di comandi passa dalla tastiera al programma Rogue grazie al sistema operativo. Il programma decide automaticamente quale mostro schierare contro l'Avventuriero, che configurazione usare per il prossimo livello dei sotterranei, e così via. Il programma trasmette queste informazioni, sempre attraverso il sistema operativo, allo schermo per tenere informato l'essere umano della situazione attuale.
Sostituendo un giocatore umano, il programma Rog-o-Matic intercetta il flusso di caratteri da tastiera e trasmette per proprio conto caratteri al programma Rogue. Quest'ultimo non ha nessuna idea (per così dire) del fatto che sta giocando un altro programma. Allo stesso modo, anche l'informazione diretta dal programma Rogue verso lo schermo viene diretta verso il programma Rog-o-Matic, che può così avere la propria mappa dei Sotterranei del Destino.
Il programma Rog-o-Matic è formato da 12.000 righe scritte nel linguaggio di programmazione C ed è ancora più lungo e complicato del programma Rogue. Rog-o-Matic iniziò nel 1981 con qualcosa che i suoi primi creatori, Appel e Jacobson, pensavano dovesse essere un «progetto semplice». Poco dopo che Mauldin si fu unito al gruppo, il primo programma che giocava ad Avventuriero passò attraverso una larga serie di modifiche dando lungo a diverse varianti, ciascuna delle quali aggiungeva qualche miglioramento nella tattica o nella strategia. Quando anche il quarto membro, Hamey, iniziò a contribuire allo sviluppo del programma, gli autori cominciavano a rendersi conto di aver creato, in effetti, un sistema esperto. Questi sistemi costituiscono un'applicazione chiave della cosiddetta Quinta Generazione di calcolatori, che secondo i progetti dovrebbe dare risultati commerciali alla fine degli anni ottanta. Un sistema esperto è progettato per incorporare e proiettare l'abilità umana in una grande varietà di aree, dalla medicina all'ingegneria.
Usando il tipo di architettura software adatta per sistemi esperti, i creatori di Rog-o-Matic furono in grado di delineare e modificare il loro programma con relativa facilità. In particolare, organizzarono i vari tipi di conoscenza e abilità richiesti dall'Avventuriero in una gerarchia di sottosistemi diversi.


An_expert_system_outperforms_mere_mortals_as_it_conquers_the_feared_Dungeons_of_Doom_fig3.jpg

Per esempio, un esperto di alto livello (chiamato Mischia) controlla la lotta durante il combattimento e un altro esperto di alto livello (chiamato Bersaglio) dirige la caccia dell'Avventuriero ai mostri. Entrambi questi esperti utilizzano un esperto di livello inferiore, detto Battaglia, che effettua particolari attacchi oppure inizia una ritirata a seconda della situazione. L'esperto in battaglia chiama a volte in aiuto l'esperto in ritirata e quest'ultimo attinge invariabilmente a una fonte di conoscenza chiamata Perc, un particolare algoritmo che studia il terreno alla ricerca del più breve percorso possibile per qualsiasi posizione specificata. In generale, gli algoritmi per il percorso più breve hanno avuto un notevole sviluppo e in questa particolare applicazione è accettabile solo l'algoritmo più veloce possibile: viene utilizzato quasi in continuazione nel corso dell'esplorazione dei Sotterranei del Destino da parte di Rog-o-Matic. Le conoscenze sul terreno usate da Perc vengono da Termap, una struttura di dati che registra le caratteristiche del terreno scoperte fino a quel momento dall'Avventuriero nel corso della sua esplorazione di un particolare livello dei sotterranei. Infine, Termap ricava tutte le sue conoscenze da Senso, una struttura di dati di basso livello che contiene tutte le informazioni rilevanti fornite in uscita dal programma Rogue.
Prima di elencare i compiti di altri esperti e di altre fonti di conoscenza, vorrei riesaminare più in dettaglio uno degli esperti, Battaglia. Una volta che una battaglia è in corso, l'esperto in mischia richiede all'esperto in battaglia di decidere se attaccare o ritirarsi. Dato che il meglio del valore sta nella prudenza, l'esperto in battaglia stabilisce per prima cosa l'auspicabilità e fattibilità di una ritirata. Per farlo deve verificare l'esistenza di alcune condizioni preliminari:
1. L'Avventuriero non è attualmente sotto l'influenza della pozione che produce confusione (che potrebbe far partire direttamente l'Avventuriero verso il mostro).
2. L'Avventuriero non è già tenuto saldamente da un mostro.
3. Sarebbe possibile morire nel corso di una mischia (in questo caso è fortemente auspicabile evitare il conflitto).
4. L'esperto in ritirata può trovare una via di fuga (una ritirata è possibile).
Se valgono tutte e quattro le condizioni, ROG-O-MATlC affiderà l'incarico della ritirata dell'Avventuriero all'esperto in ritirata. Se invece non valgono, l'esperto in battaglia passa in rassegna una serie di possibilità aggressive.
1. Se è possibile che l'Avventuriero muoia nel corso di una mischia, se il mostro è vicino e visibile e se l'Avventuriero si trova ad avere una bacchetta per il teletrasporto, allora punta la bacchetta contro il mostro.
2. Se è possibile che l'Avventuriero muoia nel corso di una mischia, se il mostro è vicino e se l'Avventuriero ha una pergamena per il teletrasporto, allora legge la formula magica riportata sulla pergamena.
Se non vale né l'una né l'altra di queste condizioni, non rimane altra alternativa che andare almeno una volta allo scontro con il mostro, quindi il programma Rog-o-Matic impegna arditamente in battaglia il suo Avventuriero. Forse è abbastanza forte per sopravvivere a uno scontro; in caso contrario, può anche rimanere ucciso.
Tra gli altri esperti usati dal programma c'è un esperto in esplorazione (Esplora) che decide dove condurre la prossima esplorazione e che movimento usare. Ci sono poi un esperto in missili, che controlla il lancio di frecce, massi, lance e così via contro i mostri, un esperto nella scelta degli oggetti da raccogliere, chiamato Oggetto, un esperto nella scelta dell'armatura da indossare, un esperto nell'uso della magia e un esperto, chiamato Salute, che decide quando mangiare o riposarsi. Oggmap è una struttura di dati che registra la posizione e la storia di tutti gli oggetti incontrati fino a un certo punto, Invent è un inventario di ciò che è contenuto nello zaino dell'Avventuriero e Intern è un riconoscitore di stato interno che controlla se l'Avventuriero è pronto a uno sforzo.
Non c'è da sorprendersi se Rog-o-Matic può giocare rapidamente una partita di Avventuriero. Dopo pochi minuti di tempo del calcolatore è tutto finito in un modo o nell'altro. Fino a oggi, solo alla Carnegie-Mellon il programma ha giocato più di 12.000 partite di Avventuriero; i dati statistici riportati dai quattro creatori di Rog-o-Matic tendono a confortare l'affermazione che attualmente il programma supera in abilità la grande maggioranza degli esperti umani di Avventuriero. Per esempio, in un test effettuato alla Carnegie-Mellon durante un periodo di tre settimane nel 1983, Rog-o-Matic ottenne un punteggio medio superiore a quello dei 15 migliori giocatori di Avventuriero dell'università. Rog-o-Matic supera la maggior parte degli esseri umani e mostra, rispetto a essi, alcune differenze notevoli nello stile di gioco. Secondo Mauldin, il programma è prudente e privo di immaginazione; esplora in modo efficiente ed evita tutte le ricerche ridondanti che gli esseri umani probabilmente intraprendono. Il suo stile di lotta, invece, è piuttosto metodico e, se non è fortunato, non è in grado di imitare le ardite possibilità del gioco umano.
Consideriamo, per esempio, il fattore fortuna nella sua storica impresa del febbraio 1984 all'Università del Texas di Austin. Dopo aver superato gli incredibili pericoli dei Sotterranei del Destino, l'Avventuriero (naturalmente sotto il controllo di Rog-o-Matic) trovò l'Amuleto di Yendor in un passaggio del ventiseiesimo livello. Tornando verso la superficie con il suo trofeo, l'Avventuriero incontrò al ventiduesimo livello uno dei peggiori mostri, un drago che sputa fuoco. L'Avventuriero estrasse la spada ma il drago soffiò una saetta di fuoco per primo. La fiamma mancò l'Avventuriero, che in quel momento si trovava nel vano di una porta, colpì una parete e rimbalzò direttamente contro il drago, bruciacchiandolo gravemente. Con le forze che gli rimanevano, il drago avanzò verso l'Avventuriero, che lo finì con un colpo di spada e poi proseguì verso la superficie occupandosi lungo la strada di altri mostri meno pericolosi. Quando emerse alla luce del giorno, aveva in suo possesso non solo l'amuleto d'oro ma anche 6.913 pezzi d'oro e altri oggetti.
Il lettore che, incuriosito dal precedente resoconto, voglia provare il divertimento offerto dal gioco può impegnarsi nel seguente rompicapo costruito appositamente da Mauldin. Oltre a essere un'introduzione ai piaceri di Avventuriero, illustra la difficoltà di inserire intelligenza nel programma Rog-o-Matic.


An_expert_system_outperforms_mere_mortals_as_it_conquers_the_feared_Dungeons_of_Doom_fig4.jpg

Una stanza del ventiseiesimo livello dei Sotterranei del Destino è attualmente occupata dal Verme Purpureo (P), dal Grifone (G) e dall'Avventuriero (@). L'Amuleto di Yendor (,) si trova sul lato opposto di una scala (%) rispetto all'Avventuriero.
L'obiettivo dell'Avventuriero è afferrare l'amuleto e correre sulla scala senza rimanere ucciso. All'Avventuriero rimane un solo punto da usare in lotta e non può rischiare uno scontro con il Verme Purpureo o con il Grifone. Per fortuna, il Verme Purpureo è profondamente addormentato e l'Avventuriero, indossando l'Anello della Segretezza, deve solo evitare di calpestarlo per non svegliarlo. Il Grifone, d'altra parte, è quanto mai sveglio e in caccia dell'Avventuriero. Il Grifone non disturberebbe mai un mostro amico, ma vorrebbe molto occupare la stessa posizione dell'Avventuriero, che smembrerebbe con un solo colpo dei suoi crudeli artigli.
Tocca all'Avventuriero muovere. Ogni mossa dell'Avventuriero o del Grifone porta all'occupazione di uno degli otto punti adiacenti. Il Grifone è così ristretto di vedute da scegliere sempre una mossa lungo il percorso più diretto verso la sua preda. Se l'Avventuriero si sposta sulla scala è al sicuro dal Grifone e dal Verme Purpureo: le regole di cooperazione tra i mostri proibiscono l'inseguimento su altri livelli.