Quando i programmatori scrivevano libri (interattivi) 6


ATTENZIONE!
Ho aperto una nuova rubrica, Scegli la tua avventura (testuale)!, nella quale riporterò man mano le teorie, gli appunti, i progressi e (perché no?) forse un giorno anche il traduttore vero e proprio, che in questo articolo viene solo accennato.

Vi avviso subito: questo post ha un elevato contenuto di amarcord, e il motivo è presto detto. Si parla delle avventure testuali (in inglese Interactive Fiction), un genere di gioco molto diffuso negli anni ’80 più che altro per le limitate capacità dei computer dell’epoca.

Esempio di avventura testuale su uno schermo dell'epoca:  forse non ci crederete, ma quelli verdi sono fosfori!

Esempio di avventura testuale su uno schermo dell’epoca:
forse non ci crederete, ma quelli verdi sono fosfori!

Volendo sintetizzare per chi non sa di cosa parlo, mi riferisco a quei programmi per computer che “simulano” (o meglio, “danno l’impressione di giocare in”) un ambiente artificiale seppur limitato.

In questo ambiente i giocatori interagiscono non con il mouse o toccando lo schermo, bensì scrivendo sulla tastiera comandi per dire al computer cosa il personaggio deve fare, e così facendo fanno interagire il loro personaggio con gli oggetti o i personaggi non giocanti, che incontrano durante il gioco stesso.

Siccome hanno poco o nessun supporto grafico sempre per le limitazioni di cui sopra, stiamo parlando di un’opera letteraria, di un libro. Un libro particolare, però, perché è interattivo: una versione evoluta e più moderna dei librigioco, che curiosamente si diffusero molto nello stesso periodo ma che erano (e sono tuttora) limitati dal fatto che è complicato introdurre davvero delle narrazioni condizionali, a meno di artifizi che rendono la lettura decisamente meno scorrevole (comunque, i librigioco hanno altre potenzialità, che sarebbe fuori luogo specificare qui).

Questo era il sogno di molti ragazzi negli anni '80: il Commodore 64 nella sua configurazione più completa, con tanto di lettore di floppy (!) disk.

Questo era il sogno di molti ragazzi negli anni ’80: il Commodore 64 nella sua configurazione più completa, con tanto di lettore di floppy (!) disk.

Come prodotto commerciale raggiunsero il massimo quando erano diffusi gli home computer: parliamo del Commodore VIC 20, del Commodore 64 e del Sinclair ZX Spectrum. Se non sapete di cosa sto parlando vuol dire che siete approdati all’informatica molto tardi, quando ormai i computer avevano tutta la memoria che desideravano e una grafica realistica. Il che rende questo tipo di giochi poco appetibili, oggi (o, perlomeno, difficili a vendersi).

Un esempio di programma scritto con il BASIC del Commodore 64: ok, non è propriamente un parser, ma vi da l'idea di quanto frustrante doveva essere lavorare a quei tempi!

Un esempio di programma scritto con il BASIC del Commodore 64: ok, non è propriamente un parser, ma vi da l’idea di quanto frustrante doveva essere lavorare a quei tempi!

Personalmente, invece, sono approdato molto presto all’informatica e mi ricordo i tentativi di scrivere un parser utilizzando il linguaggio BASIC della Commodore.

Cos’è un parser?

E’ quel piccolo software che serve per tradurre un comando dato al personaggio scritto in linguaggio naturale (es. esamina la lampada) in una serie di comandi che il computer possa capire, e quindi eseguire. Se prendiamo in esame le ultime avventure testuali prodotte, di solito i parser erano assai complessi e in grado ad esempio di comprendere frasi molto articolate come apri la scatola rossa con la chiave verde poi vai a nord (attenzione, però: in lingua inglese!).

Anche se gli algoritmi erano efficienti, avevamo comunque bisogno di diversi server per star dietro alle decine di migliaia di utenti del servizio di lettura della posta elettronica!

Anche se gli algoritmi erano efficienti, avevamo comunque bisogno di diversi server per star dietro alle decine di migliaia di utenti del servizio di lettura della posta elettronica!

I miei erano tentativi perché, ovviamente, le limitazioni di calcolo e del linguaggio di programmazione erano tanti e tali da rendere l’interpretazione del linguaggio naturale un sogno più che un software.

La cosa curiosa è che i computer più potenti non hanno reso il problema più semplice, però hanno reso possibile l’utilizzo della “forza bruta” per tentare tutte le analisi. Questo mi è stato molto d’aiuto quando ho scritto l’algoritmo per decidere se la parola ancora era un avverbio di tempo o un sostantivo… adesso capite perché è importante coltivare il pensiero laterale!

Questa mia introduzione per raccontarvi di un interessante incontro di qualche giorno fa.

Una collezione di librigioco dell'epoca.

Una collezione di librigioco dell’epoca.

Girando per internet mi sono imbattuto nel blog di Bonaventura Di Bello, secondo la sua biografia uno dei più prolifici scrittori di avventure testuali. In uno dei suoi articoli ha illustrato uno degli aspetti che più caratterizza la differenza tra una avventura testuale e un libro gioco. Poco importa se i termini scena e paragrafo siano omologhi: la vera questione è cosa si “perde” nel passaggio da un trattamento automatizzato della narrazione a uno manuale.

Torniamo per un attimo all’avventura testuale. Il giocatore usa una semplice riga di testo libera per controllare il gioco, e la situazione di gioco è descritta al giocatore tramite frasi di testo. Mentre i comandi inseriti dall’utente sono semplici frasi imperative, le risposte sono scritte al presente indicativo, ed espresse dal punto di vista di un’altra persona.

Un esempio delle scelte possibili, alla fine di un paragrafo: in pratica, esse corrispondono alla "scena" di un gioco di avventura testuale, solo che il giocatore non può fare una qualsiasi azione ma solo quelle elencate alla fine del paragrafo.

Un esempio delle scelte possibili, alla fine di un paragrafo: in pratica, esse corrispondono alla “scena” di un gioco di avventura testuale, solo che il giocatore non può fare una qualsiasi azione ma solo quelle elencate alla fine del paragrafo.

Questo approccio risulta vincente perché il protagonista si identifica con il giocatore. Tuttavia, ciò comporta che un librogioco che volesse emulare tale illusione di libertà dovrebbe avere moltissime pagine, e una grande complessità (con conseguenze nell’editing). Pensate a tutte le frasi che un giocatore di avventure può digitare in ogni scena, e adesso pensate a doverle elencare al termine di un paragrafo. Impraticabile!

Come scrive Bonaventura Di Bello nel suo blog:

Nei miei appunti tendo a definire ognuna delle unità narrative come scena, per quanto mi sia reso conto, col tempo, che se tale definizione può andar bene per una descrizione vera e propria (di un ambiente, di una situazione, ecc.) si presta meno bene per quelle unità narrative che fanno parte, invece, di un flusso di pensieri del protagonista e di altri personaggi oppure di un dialogo fra questi.

Come si evince da tale definizione, una corrispondenza biunivoca scena – paragrafo è esclusa… e tuttavia utilizzare la parola scena anche in quel contesto è comunque corretto: la cosa importante è associarle una categoria mentale diversa da quella che siamo soliti utilizzare.

Questa ri-associazione risulta più facile, in sede creativa, se ci muoviamo in quell’universo piuttosto che in quello narrativo: ci permette di tradurre l’avventura in un libro, senza farci travolgere dalla complessità ma senza comprometterne l’atmosfera.

Iniziano i primi tentativi di contaminazione reciproca: le avventure testuali lasciano lo spazio ai libri interattivi (elettronici).

Iniziano i primi tentativi di contaminazione reciproca: le avventure testuali lasciano lo spazio ai libri interattivi (elettronici).

Dal punto di vista del lettore, insomma, quella parola non deve mai entrare in gioco: ci si dovrà riferire unicamente alle istruzioni per continuare la lettura, che potranno far riferimento sì a paragrafi / pagine diverse, ma indicandole con il numero o apposita indicazione (“etichetta”).

La soluzione migliore è specificare un’azione che si compierà nel contesto narrativo per operare il passaggio ad altro paragrafo: ad esempi, Se vuoi parlare con l’Orco vai al 5 (equivalente al comando parla con l’Orco).

Se comunque questo mio articolo vi ha incuriosito, su internet si trova ancora una discreta comunità di appassionati che continua a scrivere avventure testuali liberamente disponibili, utilizzando però strumenti di creazione gratuiti (e non potrebbe essere altrimenti, visto che i giochi non li vendono più!).

ATTENZIONE!
Ho aperto una nuova rubrica, Scegli la tua avventura (testuale)!, nella quale riporterò man mano le teorie, gli appunti, i progressi e (perché no?) forse un giorno anche il traduttore vero e proprio, che in questo articolo viene solo accennato.

Marco Spedaletti

Informazioni su spotlessmind1975

Progettista, analista e sviluppatore, ho ideato e gestito soluzioni innovative per clienti di primaria importanza, privati e istituzionali, utilizzando diverse tecniche e linguaggi di programmazione. Attualmente sono consulente per la stesura di offerte tecniche mirate, e libero professionista orientato alla soluzione di problemi attraverso l’utilizzo dei computer (Software Problem Solver).