Enrico Colombini (Erix)

Progettare puzzle in un ebook

"Pensavo che avresti avuto qualche idea brillante"
[Jean in Locusta Temporis]

Narrativa e interazione

Verso la fine del 2008, quando Fabrizio Venerandi mi parlò del suo progetto di dare vita a una Casa editrice specializzata in ebook e dell'idea di creare una collana di storie a scelte multiple (le "Polistorie") iniziai a pensare alle nuove possibilità offerte da questa forma di pubblicazione.

Parte di una pagina di Locusta Temporis, con quattro link corrispondenti ad altrettante azioni; link alla relativa pagina.

Mi affascinava in particolare l'idea di creare una forma di racconto fortemente interattiva che, pur mettendo in primo piano l'aspetto narrativo, contenesse nella vicenda stessa situazioni complesse o enigmi simili a quelli dei giochi di avventura: una sorta di ibrido paritario tra romanzo e gioco.

Confesso che sulle prime pensai sarebbe stato difficile realizzare all'interno di un ebook, sostanzialmente costituito da un insieme di pagine immutabili, dei meccanismi che potessero risultare interessanti e non banali.

Fortunatamente mi sbagliavo: man mano procedevo col (faraonico) progetto di Locusta Temporis, mi rendevo conto di come una situazione coinvolgente dal punto di vista del lettore/giocatore potesse essere costruita anche con un insieme di pagine 'stampate' una volta per tutte, senza la flessibilità offerta da un programma per computer.

Ma forse è meglio ripartire dall'inizio, anzi dal passato remoto, quando ancora i computer erano ben lontani dall'essere presenti in tutte le case e chi voleva leggere lo faceva senz'altro su libri di carta.

I libri-gioco e i loro limiti

Negli anni '80 i libri-gioco conobbero una grande popolarità. Si tratta di una forma di narrazione interattiva organizzata in paragrafi numerati, nella quale il lettore non procede in sequenza una pagina dopo l'altra come in un libro normale; deve invece fare delle scelte, dalle quali dipende lo svolgersi della vicenda:

Se attacchi il lupo, vai al 75.
Se scappi, vai al 47.

La storia si trova quindi a un bivio: se il lettore decide di attaccare il lupo, passa al paragrafo 75 e prosegue la lettura da quel punto; se invece decide di fuggire, prosegue dal paragrafo 47. Si tratta quindi di collegamenti ipertestuali (link) analoghi a quelli che collegano tra loro le pagine Web.

Dal paragrafo iniziale la scelta "attacca" porta al paragrafo 75 mentre la scelta "scappa" porta al paragrafo 47. Ciascuno dei due prosegue con una propria serie indipendente di paragrafi successivi.

Ciascuna delle due diramazioni può proseguire in modo indipendente, oppure terminare (con un finale positivo o negativo) o ancora riunirsi alla prima dopo qualche paragrafo o riportare a un paragrafo già letto.

Per introdurre un poco di complessità in più, i libri-gioco offrono solitamente delle caselle da spuntare, come in questo caso:

Hai trovato un vecchio arco e una faretra.
Se li raccogli, marca la casella C.
In ogni caso vai al 22.

Il segno nella casella C avrà probabilmente effetto in qualche punto nel seguito della narrazione:

L'orco si avvicina.
Se hai marcato la casella C, vai al 76.
Se non hai marcato la casella C, vai al 35.

Dal paragrafo iniziale entrambe le scelte portano al paragrafo 22, ma il lettore può scegliere di marcare la casella C su carta oppure no. La narrazione prosegue finché non viene chiesto al lettore se la casella C sia marcata o meno; nel primo caso si continua al paragrafo 76, nel secondo al paragrafo 35.

In altre occasioni è richiesto al lettore di lanciare un dado per simulare eventi casuali come l'esito di una battaglia:

Cade un fulmine.
Lancia un dado: se esce 1 o 2 vai al 94.
Altrimenti vai al 44.

Tuttavia, non è frequente che nei libri-gioco si trovino varianti significative della storia (a parte eventuali finali multipli) oppure enigmi interessanti che richiedano ragionamento, intuizione o comunque siano di soddisfazione per il solutore. Ciò accade non solo per la difficoltà di rappresentare situazioni complesse a livello di progetto, ma ancor più perché ogni complessità aggiuntiva implica un aumento del numero di pagine e di conseguenza del costo di stampa. È un aspetto che approfondirò più avanti, perché ha importanza anche per i libri elettronici.

Percorsi in ipertesto

In apparenza un ebook interattivo è ancora meno flessibile di un libro-gioco. Le scelte tra i paragrafi possono infatti essere sostituite da link ipertestuali (come quelli delle pagine Web) ma l'uso delle caselle da spuntare o dei dadi non è molto praticabile: non avrebbe senso richiedere al lettore di portare con sé carta e matita, o un dado da gioco, insieme al proprio reader.

È vero che alcuni tipi di ebook consentono qualche forma di programmazione ma ciò comporta diversi limiti e, in particolare, rende assai problematico scrivere un ebook interattivo che possa essere pubblicato in una serie di formati differenti (epub, PDF, Kindle, ...) e che non diventi rapidamente obsoleto. Considero quindi il caso di un ebook 'classico', composto da un insieme di pagine definite una volta per tutte e immutabili, esattamente come quelle di un libro stampato.

Apro una breve divagazione: naturalmente la presenza di enigmi o di percorsi complessi non è affatto necessaria ai fini della soddisfazione del lettore e non ha nulla a che vedere con la qualità narrativa: ciò che conta è che la lettura sia coinvolgente. La possibilità di inserire bivi nella lettura consente già di esplorare diversi modi di raccontare una storia ed è interessante notare (ad esempio confrontando tra loro le Polistorie pubblicate da quintadicopertina) come diversi autori ne abbiano usufruito in maniere assai differenti.

Senza alcuna pretesa di completezza, anche perché mi pare che il campo sia tutto da esplorare, ecco alcune semplici tecniche utilizzabili nella narrativa ipertestuale (nota: uso qui il termine "pagine" per quelli che nei libri-gioco erano i "paragrafi", dato che questa è spesso l'impaginazione negli ebook interattivi):

Queste semplici tecniche si possono naturalmente combinare tra loro (e in parte si sovrappongono). Ma se volessimo creare degli enigmi davvero giocabili? L'ultimo caso sopra elencato, il Labirinto, già offre un primo spunto ma, per capire come creare situazioni complesse, fa comodo adottare un diverso punto di vista.

Memoria di un evento

Il punto cruciale che consente la 'programmazione' di meccanismi non banali è la possibilità che una certa scelta fatta dal lettore abbia effetto in tempi successivi, ossia dopo un certo numero di pagine. Ad esempio, il protagonista non potrà avviare l'auto se in precedenza non ne aveva preso le chiavi.

In un programma per computer (un adventure game) ciò si ottiene scrivendo un dato in una variabile, cioè in una casella di memoria che verrà consultata in seguito; in un libro-gioco, come abbiamo visto, si può ottenere lo stesso risultato chiedendo al lettore di marcare una casella sul foglio di carta. Ma in un ebook dove tutte le pagine sono, per così dire, stampate una volta per tutte e non ci sono caselle da marcare?

Per quanto possa sembrare strano, la cosa è perfettamente fattibile anche in un ebook: la si ottiene duplicando le pagine che seguono la scelta in questione, fino al punto in cui questa scelta debba avere effetto, come mostrato nella figura sottostante.

In questo caso nella pagina 1 potrà essere presentata una scelta (tralascio ogni pretesa di buona scrittura per semplicità di illustrazione):

A quel punto...
decisi di uscire di casa [2A]
afferrai le chiavi del catorcio e uscii [2B]

Tra parentesi quadre ho indicato la pagina di destinazione, cioè quella cui ciascuna scelta rinvia, cosa che il lettore naturalmente non vede.

Dalla pagina 1 la scelta di uscire direttamente porta alla 2A, che prosegue poi con 3A, 4A, 5A, 6A; la scelta di prendere le chiavi porta invece alla 2B, che prosegue con il ramo alternativo 3B, 4B, 5B, 6B. In questo esempio le pagine 2A...5A sono identiche alle pagine 2B...5B, mentre le pagine 6A e 6B sono diverse tra loro in quanto descrivono ciò che accade quando il protagonista raggiunge l'auto, a seconda che abbia le chiavi con sé oppure no, quindi in conseguenza della scelta fatta alcune pagine prima.

Vi sono quindi due serie parallele di pagine, che possono anche essere del tutto identiche tra loro; per esempio la pagina 2A potrebbe contenere esattamente lo stesso testo della pagina 2B. Si tratta tuttavia di due sequenze distinte: il lettore segue la sequenza B se ha fatto la scelta di prendere le chiavi, segue invece la A se non l'ha fatta. Naturalmente la presenza di pagine duplicate è nota solo all'autore; il lettore vede solo le pagine della strada che ha scelto.

Procedendo con la lettura, dopo qualche pagina il protagonista arriva all'automobile; a quel punto la vicenda proseguirà in modo diverso nelle due sequenze, in base alla scelta che era stata fatta alcune pagine prima. Dunque la memoria della scelta è stata conservata, proprio come se fosse stata usata una variabile di un programma o una casella di carta da marcare con la matita.

Il sistema può apparire banale, ma come vedremo è proprio grazie a questa tecnica di base che diventa possibile costruire meccanismi complessi ed enigmi interessanti.

È da notare che la nostra 'variabile' è stata ottenuta al prezzo di un certo numero di pagine aggiuntive, un aspetto sul quale ritornerò più avanti. Ciò è reso possibile dal fatto che la pagina di un ebook ha un costo significativamente inferiore rispetto a una pagina stampata su carta; usare questo sistema su vasta scala in un libro-gioco porterebbe infatti a dimensioni e costo proibitivi.

Combinazioni di variabili

Complichiamo leggermente la situazione introducendo più possibilità: prima di uscire di casa il nostro protagonista può prendere le chiavi dell'auto, leggere i titoli del giornale, fare entrambe le cose oppure uscire immediatamente. La figura illustra una possibile organizzazione delle pagine, leggermente diversa rispetto alla precedente.

Vi sono in questo caso quattro versioni della pagina 1, che sono a tutti gli effetti quattro pagine distinte. La pagina 1A potrebbe essere:

A quel punto...
decisi di uscire di casa [2A]
afferrai le chiavi del catorcio [1B]
diedi un'occhiata ai titoli [1C]

Nella 1B il nostro eroe già possiede le chiavi, quindi non è offerta la possibilità di prenderle:

Fatto questo...
decisi di uscire di casa [2B]
diedi un'occhiata ai titoli [1D]

Se invece siamo nella 1C, vuol dire che ha letto i titoli del giornale ma non ha preso le chiavi, dunque:

Fatto questo...
decisi di uscire di casa [2C]
afferrai le chiavi del catorcio [1D]

Una volta compiute entrambe le azioni, si finisce comunque alla pagina 1D:

Non mi restava altro da fare che...
uscire di casa [2D]

Da notare che esistono due percorsi differenti per arrivare alla 1D, a seconda dell'ordine in cui si fanno le azioni: 1A - 1B - 1D, oppure 1A - 1C - 1D.

Dalla pagina iniziale 1A si va alla 2A se si sceglie di uscire dalla porta (non avendo fatto nulla), oppure alla 1B se si prendono le chiavi o alla 1C se si leggono i titoli. Dalla 1B si va alla 2B se si esce (avendo preso le chiavi) o alla 1D se si leggono i titoli. Dalla 1C si va alla 2C se si esce (avendo letto i titoli) o alla 1D se si prendono le chiavi. Dalla 1D, infine, si può solo uscire (avendo fatto entrambe le cose). Le quattro sequenze A,B,C,D proseguono separatamente.

Una nota secondaria: la pagina 1D si potrebbe eliminare formulando diversamente le scelte in 1B e 1C (come nell'esempio riportato in Memoria di un evento) ma l'ho lasciata per mettere in evidenza le quattro possibili combinazioni.

Ciascuna delle quattro pagine iniziali prosegue con una sequenza di pagine separata, quindi abbiamo quadruplicato il numero di pagine. Vedremo che questa moltiplicazione delle pagine può diventare un problema, ma per il momento c'è un punto importante da considerare.

Pagine e stato

Nell'esempio precedente, le quattro versioni della pagina 1 rappresentano le possibili combinazioni delle due variabili:

In altri termini, e questo è un punto molto importante, ciascuna di queste quattro pagine rappresenta un diverso stato, dove per "stato" intendo una delle possibili combinazioni sopra elencate.

Nel nostro caso è come se ci fossero due caselle da marcare, cioè due variabili: "chiavi" e "titoli", ciascuna delle quali può essere stata marcata (valore = 1) o non marcata (valore = 0), come mostrato nella lista qui sopra.

Ogni versione della pagina 1 rappresenta quindi una sola delle possibili combinazioni di variabili, ma la cosa non finisce lì: si estende infatti a tutte le pagine che da essa proseguono, eventuali diramazioni comprese.

Ad esempio, la pagina 2B è raggiungibile solo avendo preso le chiavi ma non avendo letto i titoli, per cui conserva il medesimo stato della 1B da cui proviene. Non che lo stato sia scritto in alcun modo nella pagina, ma è utile ragionare in questo modo per passare dal punto di vista "programma" al punto di vista "ebook".

In questo schema, ciascuna pagina del libro (intesa come ciascuna versione di pagina) rappresenta quindi uno stato ben preciso, che è conseguenza delle scelte fatte dal lettore per arrivarci. Per meglio evidenziarlo, ogni stato è indicato nelle figure con una lettera e un colore diverso.

Quindi le variabili esistono anche negli ebook: la differenza rispetto ai libri-gioco è che esse non sono esplicite (sotto forma di caselle marcate o non marcate) ma sono implicite nel fatto di avere raggiunto una pagina lungo un certo percorso. Dentro ciascuna pagina, ai fini del progetto, è come se fossero 'stampati' anche i valori delle variabili.

L'infinito è proibito

Una sorprendente conseguenza di tutto ciò è che un ebook con pagine fisse e immutabili può essere programmato come si fa con un gioco per computer, usando il lettore umano (al posto della CPU) per eseguire il programma costituito da una rete (grafo) di pagine collegate da scelte. Non serve nemmeno 'salvare' la situazione corrente: basta tenere il segno della pagina, perché essa contiene già in sé lo stato di tutte le variabili e quindi la memoria delle scelte fatte.

Questo meccanismo (che tecnicamente è una "macchina a stati") è assai versatile e teoricamente offre le stesse possibilità che si avrebbero impiegando un programma per computer, ma con due importanti limitazioni.

Il primo limite è che il numero di stati dev'essere finito, ossia non può essere infinito. Finora il problema non si è posto perché negli esempi ho usato solo variabili binarie, cioè che possono assumere due soli stati (es. azione fatta oppure non fatta) ma nulla vieta di usare una variabile come contatore per sapere, ad esempio, quante volte un evento si sia verificato.

Supponiamo che, prima di uscire di casa, nella pagina 1A il nostro protagonista cerchi di chiamare un'amica al telefono, ma non ottenga risposta:

A quel punto...
telefonai a Marta [1B]
decisi di uscire di casa [2A]

Nella pagina 1B:

Il telefono di Marta era occupato;
riprovai a chiamare [1C]
decisi di uscire di casa [2B]

Nella pagina 1C:

2 chiamate a Marta, sempre occupato;
riprovai a chiamare [1D]
decisi di uscire di casa [2C]

Nella pagina 1D:

3 chiamate a Marta, sempre occupato;
riprovai a chiamare [1E]
decisi di uscire di casa [2D]

...e così via, aggiungendo ogni volta 1 al numero delle chiamate. Possiamo andare avanti per un bel pezzo, ma a un certo punto bisogna porre un limite al numero di chiamate, perché ogni ulteriore tentativo di chiamata richiede almeno una pagina in più nel libro (due nell'esempio, in quanto c'è anche una nuova pagina 2 per ogni nuova pagina 1, anche se molte di queste potrebbero riunirsi).

Dalla pagina iniziale 1A si può uscire alla 2A (non avendo chiamato al telefono) oppure chiamare passando alla 1B. Dalla 1B si può uscire alla 2B (avendo chiamato una volta) oppure chiamare passando alla 1C. Dalla 1C si può uscire alla 2C (avendo chiamato due volte) oppure chiamare passando alla 1D. E così di seguito, aggiungendo una nuova versione della pagina 1 (A,B,C,D,E,...) per ciascuna chiamata telefonica fatta.

Non è possibile lasciar procedere il conteggio senza limite se vogliamo mostrarne o conoscerne il valore, in quanto ciò significherebbe avere un numero infinito di stati, e quindi un numero infinito di pagine: cosa impossibile perché le pagine di un ebook, benché virtuali, devono essere 'prestampate' come quelle di un libro di carta; non si possono creare nuove pagine durante la lettura, come invece si può fare in un programma per computer.

Da qui il primo limite: il numero complessivo di stati in un ebook può anche essere molto grande, ma dev'essere finito. In pratica ciò vuol dire che ciascuna variabile potrà avere solo un numero predefinito di possibili valori.

(vale la pena di notare che questo limite teorico si applica anche a un computer digitale, ma in quel caso il numero di stati possibili è talmente grande da poter essere considerato infinito per quanto riguarda il nostro discorso)

Esplosione combinatoria

La necessità di evitare un numero infinito di stati è teoricamente importante, ma tutto sommato non crea problemi: il lettore si annoierebbe terribilmente (o morirebbe di vecchiaia prima di finire il libro) se dovesse ripetere un'azione all'infinito, quindi possiamo tranquillamente mettere un limite senza che nessuno si lamenti.

Al contrario, c'è una limitazione non teorica ma assai importante dal punto di vista pratico: la dimensione del libro. È vero che le pagine elettroniche non hanno un costo di stampa, ma aggiungere pagine aumenta la lunghezza del file che le contiene, cosa che a un certo punto può creare problemi in fase di lettura.

Ad esempio molti reader, intendo i dispositivi usati per leggere gli ebook, non sono in grado di digerire più di un certo numero di pagine indipendenti (e possono avere anche altri limiti, come il numero di link contenuti in una pagina). Tra l'altro certe limitazioni non sono definite dagli standard, ma dipendono dal singolo produttore.

Ai fini pratici abbiamo verificato che le 5800 pagine e gli 11000 link di Locusta Temporis sono molto vicini a quanto alcuni reader possano tollerare, o almeno lo erano al momento della pubblicazione (la tecnologia cambia di continuo; ad esempio la memoria disponibile aumenta). Il formato epub sembra essere particolarmente sensibile a questo problema, a causa di un limite di progetto relativo all'indice interno; col formato PDF, invece, la risposta ai clic tende a rallentare al crescere delle dimensioni totali.

Ma perché servono tante pagine? Vogliamo forse riscrivere "Guerra e Pace"?

Per capirlo torniamo all'esempio "Combinazioni di variabili", dove si potevano fare o non fare due operazioni distinte (leggere i titoli del giornale e/o prendere le chiavi dell'auto) e c'erano di conseguenza quattro possibili stati, dunque quattro pagine. Che succede se aumentiamo il numero di variabili?

Con una variabile binaria le pagine si moltiplicano per 2, con 2 variabili indipendenti si moltiplicano per 4, con 3 variabili si moltiplicano per 8, con 4 variabili si moltiplicano per 16, con 5 variabili si moltiplicano per 32, con 6 variabili si moltiplicano per 64, con 7 variabili si moltiplicano per 128, raddoppiando quindi a ogni nuova variabile aggiunta.

Se il nostro personaggio può fare o non fare dieci azioni diverse e indipendenti, abbiamo 10 variabili binarie (fatto/non fatto), che possono dare 1024 diverse combinazioni (2 elevato alla decima potenza). Se ciascuna di queste combinazioni prosegue per cinque pagine, ecco che già abbiamo più di 5000 pagine e non abbiamo ancora fatto praticamente niente!

Va ancora peggio se alcune variabili possono avere più di due valori: se consentiamo un numero di telefonate da 0 a 9, il numero di possibili stati (quindi delle pagine) si moltiplica per 10 anziché per 2 come effetto di questa sola variabile.

L'aumento esponenziale del numero di possibili stati con l'aumentare del numero di variabili si chiama esplosione combinatoria ed è il principale problema che ci si trova di fronte quando si vogliano progettare enigmi o situazioni interessanti in un ebook.

Per questo motivo ero scettico riguardo alla possibilità di riuscire nell'impresa; tuttavia, come accennavo all'inizio, in seguito dovetti ricredermi: vi sono tecniche di progetto che consentono di ottenere risultati soddisfacenti senza aumentare troppo il numero delle pagine. Cercherò di illustrare a grandi linee alcune di queste tecniche.

Decidere dove investire

Dovendo mantenere la quantità di pagine entro limiti ragionevoli, non è possibile (come abbiamo visto) realizzare una struttura completamente 'aperta' come si può fare in un adventure game da computer. Occorre invece usare il proprio budget di pagine in modo accorto, cercando di ottenere il miglior risultato col minor numero possibile di pagine.

È importante notare che "il miglior risultato" non significa il puzzle più complesso o impegnativo, ma la maggiore soddisfazione per il lettore: un autore deve progettare la propria opera in modo che sia gradita da coloro cui è destinata, non per soddisfare il proprio narcisismo e darsi pacche sulle spalle da solo.

Come evitare l'esplosione combinatoria? Un fattore molto importante per tenere sotto controllo il numero di pagine è la località delle variabili.

Mi spiego con un esempio, tornando alla possibilità di uscire di casa con o senza le chiavi dell'auto: questa scelta, come illustrato in "Memoria di un evento", genera due sequenze di pagine indipendenti l'una dall'altra, ciascuna delle quali rappresenta uno dei due possibili valori della variabile "prese le chiavi".

Come autore posso scegliere di unificare questi due rami o mantenerli distinti per un certo tratto, al limite fino al termine della narrazione.

Posso unificarli rimandando a casa il personaggio quando arriva alla macchina e scopre di non avere le chiavi, facendogliele perdere o rubare, facendogli decidere di andare comunque a piedi o in cento altri modi; ma in ogni caso da quel punto in poi vi sarà una sola sequenza di pagine e la variabile "prese le chiavi" non avrà più importanza. In altre parole il suo effetto è locale, cioè fa aumentare il numero di pagine solo in una certa parte del racconto.

Dalla pagina 1 si va alla 2A se non si prendono le chiavi, oppure alla 2B se si prendono. La 2A prosegue alla 3A che descrive l'effetto del non avere le chiavi, mentre la 2B prosegue alla 3B che descrive l'effetto dell'avere preso le chiavi. Sia la 3A che la 3B convergono poi nella pagina 4, quindi la vicenda riunificata prosegue con una sola serie di pagine: 5,6,7,...,269, 270 dove la storia finisce.

Al contrario, supponiamo che alla fine di una lunga storia il nostro personaggio arrivi finalmente al parcheggio e ci siano due finali diversi: uno se nella prima scena aveva preso le chiavi, un altro se non le aveva prese. In questo caso sarà necessario duplicare l'intera storia perché, come abbiamo visto, non c'è altro modo in un ebook di conservare fino all'ultima pagina la memoria di un evento accaduto nella prima pagina. In questo caso limite l'effetto della variabile è globale, cioè si applica appunto all'intero libro.

Dalla pagina 1 si va alla 2A se non si prendono le chiavi, oppure alla 2B se si prendono, come nel caso precedente, ma a differenza di questo la 2A e la 2B proseguono sino alla fine della storia con due serie di pagine distinte, rispettivamente 3A,4A,5A,...269A,270A e 3B,4B,5B,...269B,270B. Le pagine finali 270A e 270B descrivono l'effetto della scelta fatta nella prima pagina.

Tornando alle scelte di investimento, è chiaro che limitando l'area di applicazione delle variabili si risparmiano pagine. Una possibile scelta (non certo l'unica) può essere quella di concentrare l'uso delle variabili in certe parti della narrazione, in modo da creare situazioni 'interessanti', riunendo poi per un po' le pagine in un solo filo narrativo (o comunque in un numero molto limitato di narrazioni alternative).

Detto in altre parole: se si vogliono avere più storie (parallele o divergenti, non importa) il numero di pagine disponibili per 'divagazioni', ad esempio per reti complesse di pagine che rappresentano enigmi da risolvere, dovrà essere ridotto. Se invece si desiderano costruire situazioni abbastanza intricate, converrà probabilmente avere una trama di fondo non modificabile dal lettore ma che si dirami localmente in sentieri multipli, per poi riunirsi nuovamente sulla strada maestra.

Qualche pattern

Quando si progettano dei puzzle è importante trovare il giusto equilibrio tra soddisfazione e frustrazione. Un po' di difficoltà è necessaria perché il lettore possa dire "Ehi, sono stato bravo a risolverlo!", ma è fin troppo facile eccedere perché all'autore, che ha pensato l'enigma e ne conosce la soluzione, i problemi sembrano sempre troppo facili (e qui non mi sento certamente di scagliare la prima pietra).

In realtà basta molto poco per creare situazioni interessanti. Accenno brevemente ad alcuni possibili schemi di base (pattern) utilizzabili nella costruzione di enigmi e situazioni altamente interattive in un ebook, senza richiedere un numero troppo grande di pagine. Sono presi dalla mia esperienza e naturalmente non rappresentano che una parte delle numerose possibilità ancora da esplorare.

Mi interessa soprattutto mettere in evidenza le cose che si possono fare indicando a grandi linee la via da percorrere, senza approfondire più di tanto i dettagli del meccanismo in termini di pagine e link (i diagrammi sono indicativi). Difatti i dettagli del procedimento possono essere in gran parte automatizzati con strumenti software, mentre il progetto è in ogni caso compito dell'autore.

Dal dire al fare

Mi rendo conto di avere sorvolato su molti dettagli e introdotto qualche semplificazione, ma spero di avere almeno reso l'idea: è possibile fare in modo che un ebook, con le sue pagine non modificabili, si comporti dal punto di vista del lettore (che è quello che conta) in modo simile a un programma per computer, consentendo ampie possibilità di interazione complessa.

Per ottenere questo risultato l'autore è tenuto ad affrontare un compito piuttosto impegnativo: deve infatti ragionare in termini di variabili e tenere conto di tutti i possibili stati, cioè delle combinazioni di queste variabili, con in più le complicazioni cui ho accennato per evitare l'esplosione combinatoria e deve infine produrre tutte le necessarie versioni delle singole pagine con i link corretti.

Si tratta evidentemente di un'attività che può assorbire una gran mole di tempo ed energia, distogliendoli al lavoro creativo e rischiando di mettere quest'ultimo in secondo piano rispetto al lato puramente tecnico della faccenda, per non parlare dell'elevata probabilità di introdurre errori non facilmente individuabili.

Screenshot del diagramma di massima della complessa toolchain di Medusa per la creazione delle pagine in differenti formati di ebook e link al relativo PDF con l'immagine dettagliata.

Per evitare di trovarmi in questa sgradevole situazione, prima di iniziare a scrivere Locusta Temporis decisi di realizzare un tool software che mi desse una mano per quanto riguardava la parte del lavoro che potesse essere svolta in modo meccanico.

In particolare doveva occuparsi della creazione di tutte le necessarie versioni di ciascuna pagina in base al valore delle variabili lungo ogni possibile percorso di lettura, evitando però di creare inutili pagine non raggiungibili e consentendomi di 'programmare' gli enigmi più o meno come in un gioco di avventura.

Lo battezzai Medusa (Macchinario Esente Da Un Significativo Acronimo) e mi fu di grande aiuto nella realizzazione dell'opera.

Il suo principio di funzionamento è tutto sommato semplice, anche se la realizzazione lo è forse un po' meno... ma di questo parlerò un'altra volta.