Progettare puzzle in un ebook
"Pensavo che avresti avuto qualche idea brillante"
[Jean in Locusta Temporis]
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.
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.
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.
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.
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.
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).
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?
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.
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.
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.
Puzzle locale
Il protagonista deve risolvere un problema in un ambiente costituito da un numero limitato di luoghi, nei quali è possibile compiere alcune azioni.
Esempio banale: per proseguire occorre che sia acceso un condizionatore e ciò richiede di attaccare una spina, girare un interruttore e usare il telecomando; in questo caso vi sono 8 combinazioni possibili, per cui il numero di pagine che descrivono l'ambiente viene moltiplicato per 8. Se anche si trattasse di una pagina sola, ce ne sarebbero 8 versioni distinte.
È anche possibile fare in modo che le variabili non siano indipendenti l'una dall'altra: una scelta può essere condizionata dal fatto di avere compiuto o meno un'azione in precedenza. In questo caso le descrizioni e le scelte saranno diverse negli 8 rami dell'esempio, e qualche ramo potrà non essere necessario.
Benché semplice (almeno in linea di principio), questo meccanismo offre ampie possibilità di interazione e di regolazione della difficoltà di soluzione.
La figura mostra un ambiente di tre pagine con due variabili indipendenti (spina e interruttore) che danno quattro possibili stati, cui corrispondono altrettante versioni delle stesse pagine; si può uscire solo dalle pagine dello stato D, ossia una volta eseguite entrambe le azioni. Le frecce indicano i cambiamenti di stato conseguenti a un'azione, cioè al cambio di valore di una variabile; per chiarezza di illustrazione non sono indicati i link tra le singole pagine.
Possesso di oggetti
Dal punto di vista della struttura delle pagine, non c'è alcuna differenza tra l'aver compiuto un'azione su un oggetto inamovibile (ad esempio un interruttore) e l'aver preso un oggetto (ad esempio il telecomando) quindi si tratta sempre del caso precedente, anche se il lettore ne avrà una diversa percezione. Per l'autore si tratterà in ogni caso di una variabile binaria.
Pagine visitate
Visitando una certa pagina si cambia una variabile, senza che necessariamente il lettore ne sia cosciente. Ciò permette di aggiungere ulteriori elementi di complessità ai puzzle; per esempio, sarà possibile accendere il condizionatore solo dopo averne letto le istruzioni. Dal punto di vista della realizzazione, la pagina delle istruzioni porterà a un insieme parallelo di pagine, del tutto identico al precedente tranne che nel punto dove la memoria della lettura del manuale avrà effetto.
Il lettore può muoversi liberamente tra le pagine dell'insieme A in figura, ma quando ha visitato la pagina 3A non torna alla 2A bensì alla 2B, ossia alla pagina corrispondente dello stato B. Il testo contenuto nelle pagine A e B può anche essere del tutto identico, ma il fatto di leggere la pagina 3A causa un cambiamento di stato.
Ordine di scelta
Eseguendo le stesse azioni in ordine diverso si ottengono risultati differenti. Se il protagonista sta giocando a briscola, potrà magari vincere calando prima il fante e poi l'asso, ma perderà nel caso opposto.
Ciò si può ottenere mantenendo separati gli insiemi di pagine fino alla fine, a differenza di quanto mostrato in Combinazioni di variabili dove i due percorsi si unificavano.
Aggiungendo altre pagine dal contenuto identico si può anche richiedere che una o più azioni siano ripetute in una certa sequenza in un ordine preciso, ad esempio per lanciare segnali di fumo composti da una precisa serie di nuvolette grandi e piccole.
Nell'esempio in figura il lettore vede una sola pagina, dalla quale può scegliere di produrre nuvolette grandi o piccole; solo la sequenza corretta P-G-P-P porta alla soluzione, mentre ogni errore riporta all'inizio. Da notare che scegliere G nella pagina 1A riporta alla pagina stessa, ma il lettore non nota alcuna differenza tra i quattro stati (a meno naturalmente che l'autore non scelga di fargliela notare introducendo differenze nel testo).
Dialoghi
Certe scelte in un dialogo possono cambiare il seguito del dialogo stesso e/o condizionare lo svolgersi della vicenda; dal punto di vista dell'autore si tratta sempre dei meccanismi Puzzle locale e Pagine visitate, anche se il lettore ne ha una percezione assai diversa.
È possibile far sparire da un dialogo le frasi già pronunciate, utilizzando la tecnica accennata in Pagine visitate e visibile anche in Combinazioni di variabili dove una scelta già fatta non viene riproposta.
Contatori e timer
Abbiamo già visto come contare il numero di ripetizioni di un evento ne L'infinito è proibito. È interessante anche la possibilità di far accadere un'azione a tempo, ossia dopo un numero predefinito di scelte del lettore. Lo si può ottenere facendo in modo che ciascun link porti a un ambiente parallelo, cioè a un insieme di pagine identico al precedente ma che rappresenti un conteggio differente. Nell'ultimo di questi ambienti si avrà l'effetto dello scadere del timer.
Supponiamo ad esempio di avere una pagina 1 che descrive una stanza con due finestre, rappresentate dalle pagine 2 e 3; vogliamo far accadere qualcosa dopo che si è guardato fuori tre volte, indipendentemente dalla finestra o finestre scelte. La figura mostra una possibile realizzazione: ciascuna scelta di guardare da una qualsiasi delle due finestre avanza allo stato seguente, che rappresenta un conteggio successivo del timer (per scelta, il timer non avanza quando da una finestra si torna alla pagina 1).
Da notare che le pagine 2A e 3A, per quanto teoricamente presenti, non ci sono in quanto la scelta di guardare dalla finestra porta comunque allo stato B.
Sequenza
Quando un ambiente (inteso come insieme di pagine, che possono rappresentare luoghi, pensieri, situazioni o qualunque altra cosa) è vasto e/o una situazione da risolvere è complessa, è difficile introdurre più variabili senza causare un'eccessiva moltiplicazione del numero di pagine. Volendo fare in modo che ci siano diversi oggetti da prendere, azioni da compiere e via dicendo, si possono combinare la tecnica Puzzle locale e quella Contatori e timer per creare una sequenza.
Si tratta di suddividere il puzzle su vasta scala in una serie di problemi più semplici, che andranno risolti uno dopo l'altro ma dando al lettore l'impressione di trovarsi sempre nel medesimo ambiente; un buon autore farà in modo che non si percepisca alcuna interruzione della continuità narrativa.
Ad esempio, dopo aver risolto il puzzle per accendere il condizionatore del laboratorio, si dovranno trovare gli appunti del ricercatore scomparso; solo allora sarà possibile risvegliare il piccolo di mammut dall'ibernazione. Dal punto di vista narrativo sarebbe magari stato possibile consentire di fare contemporaneamente le due cose, ma supponiamo che ciascuno dei puzzle richieda tre variabili binarie: consentendo la massima libertà al lettore ci sarebbero 6 variabili indipendenti, il che richiederebbe 64 versioni di tutte pagine, mentre facendogli risolvere i due problemi uno dopo l'altro limitiamo ciascuno dei due a 8 versioni, per un totale di 16 versioni.
È vero che questa tecnica obbliga il lettore a seguire un percorso obbligato ma, se ben applicata, consente di lasciargli l'illusione di una grande libertà di movimento e azione. Incidentalmente, lo stesso sistema è usato correntemente da molte avventure grafiche per computer (immagino per limitare costosi dialoghi e animazioni, quindi con un obiettivo simile al nostro).
La figura mostra una sequenza di tre enigmi (rispettivamente con 4, 6 e 6 stati) che si svolgono l'uno dopo l'altro, per un totale di 4 + 6 + 6 = 16 versioni delle stesse pagine. Se potessero essere risolti contemporaneamente sarebbero invece necessarie 4 * 6 * 6 = 144 versioni delle pagine per rappresentare tutti i possibili stati.
Combinazione
Immaginiamo il nostro eroe alle prese con una valigetta dalla serratura a combinazione: se ciascuna delle tre rotelle ha 10 posizioni, ci sono 1000 possibili combinazioni: decisamente troppe pagine!
Se però non viene descritta la posizione delle rotelle (descriverla implicherebbe forzatamente di avere 1000 pagine con le relative descrizioni) c'è un sistema per ridurre drasticamente il costo, facendo scegliere le posizioni delle rotelle in sequenza: bastano due insiemi di pagine, uno che rappresenti la sequenza corretta e uno che rappresenti tutte le sequenze errate. Ogni errore (ad esempio già nella prima rotella) porterà nella seconda sequenza, dove le rimanenti scelte saranno comunque senza effetto, ma il lettore non potrà rendersene conto fino al termine della combinazione, dove saprà solo di avere sbagliato.
Nell'esempio mostrato in figura ci sono tre 'rotelle', ciascuna delle quali ha cinque posizioni (numerate da 1 a 5) e la combinazione corretta è 2-4-1. Benché gli stati possibili siano teoricamente 5 * 5 * 5 = 125, in realtà ne bastano due soli: uno "giusto" (A) e uno "sbagliato" (B) che rappresenta tutti gli altri stati. Se ad esempio il lettore sbaglia il numero sulla seconda rotella (2A), invece di passare alla pagina 3A (terza rotella della sequenza corretta) passerà alla 3B (terza rotella della sequenza errata) ma non avrà modo di accorgersi della differenza perché le pagine 3A e la 3B sono identiche: stesso testo e medesime scelte. Dalla 3B, tuttavia, finirà in ogni caso alla 4B (combinazione errata) qualunque sia la sua scelta.
Personaggi multipli
Può sembrare incredibile, ma in un insieme di pagine immutabili come quello di un ebook è anche possibile far controllare al lettore più di un personaggio.
Ci sono almeno due tecniche: la prima consiste nel limitare ciascun personaggio a un certo ambiente e consentire il passaggio del lettore da un personaggio all'altro solo in un determinato luogo (pagina); da un punto di vista 'meccanico' è come se il personaggio fosse uno solo che si muove in entrambi gli ambienti (quindi si sommano le relative pagine), ma il lettore ha la piena sensazione di controllarne due in modo indipendente. Non sottolineerò mai abbastanza quanto importante sia la percezione del lettore, più che il meccanismo in sé.
La seconda tecnica consente una libertà totale ma è usabile solo in un numero ristretto di pagine per via dell'esplosione combinatoria: entrambi i personaggi possono muoversi in modo indipendente e si può passare in ogni momento dall'uno all'altro. Il numero di versioni dell'ambiente necessarie si ottiene in questo caso moltiplicando la dimensione dei rispettivi ambienti: se Gino si muove in 4 luoghi e Marta in 5, avremo 4 x 5 = 20 stati diversi e quindi altrettante versioni delle pagine, il cui numero minimo va raddoppiato a 40 perché ciascuno stato può essere descritto sia dal punto di vista dell'uno che dell'altro personaggio.
Per quanto teoricamente semplice, questo meccanismo è alquanto impegnativo da realizzare manualmente perché ogni stato di un personaggio va appunto replicato per tutti i possibili stati dell'altro personaggio, e viceversa.
Numeri casuali
Essendo le pagine di un ebook definite una volta per tutte, chiaramente non è possibile decidere a caso la strada da prendere, come se si fosse tirato un dado.
Tuttavia si può ottenere un effetto sorprendentemente simile con una tecnica molto semplice: conservando la memoria di una o più scelte precedenti, magari del tutto ininfluenti ai fini della vicenda e comunque non correlate con la situazione attuale (per esempio quale domanda sia stata posta per prima in un dialogo). Così uno stesso puzzle può avere soluzioni differenti per due lettori diversi!
Immaginiamo ad esempio che suonare il campanello, bussare alla porta o chiamare ad alta voce abbiano lo stesso effetto: l'amico apre la porta. La vicenda prosegue in modo identico nei tre casi, ma più avanti potrà 'casualmente' esserci il sole, piovere o nevicare a seconda della scelta iniziale.
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.
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.