Vai al contenuto
SIMONE PIZZI
Progetti ↗
Favella 1

FAVELLA1: «Completo» non vuol dire finito

Avevo dichiarato il linguaggio completo. Ma «completo» non vuol dire «finito»: è il pavimento del piano di sopra. Il racconto dalla 0.18.0 alla 0.29.0.

Data
Lettura
9 minuti
Sezioni
8
Copertina: FAVELLA1: «Completo» non vuol dire finito

L’altra volta, raccontando le novità di FAVELLA, avevo chiuso con un piccolo elenco di promesse: i pronomi, le descrizioni che non si ripetono sempre uguali, i comandi per disfare una mossa sbagliata. Roba «in arrivo». Riaprire quell’articolo adesso fa un effetto curioso, perché quell’elenco è diventato la parte meno interessante di tutto quello che è successo dopo.

Alla versione 0.18.0 avevo dichiarato il linguaggio completo. E lo era davvero. Solo che «completo» non vuol dire «finito»: vuol dire che il pavimento regge, e che puoi finalmente salire a costruire il piano di sopra senza la paura che ti crolli sotto i piedi. Questo è il racconto di quel piano di sopra, dalla 0.18.0 alla 0.29.0.

La prova del fuoco

C’è un solo modo onesto per scoprire cosa manca davvero a un linguaggio, e non è fissare la grammatica finché non confessa. È costruirci qualcosa per cui non era nato.

Così FAVELLA è finita a raccontare una cosa lontanissima dall’avventura testuale: un simulatore di guida, una discesa lungo la Salerno-Reggio Calabria fatta tutta di parole, acceleratore e code comprese. Un genere fuori asse, scelto apposta per vedere dove la lingua scricchiolava. E ha scricchiolato, nei punti giusti. Mancava un modo per dire "accelera" è un comando senza oggetto, un verbo che il giocatore digita da solo, senza niente da prendere o aprire. Mancava l’inventario di partenza, perché un guidatore le chiavi ce le ha già in tasca quando il gioco comincia. E mancavano i «tick» silenziosi, gli eventi che logorano il mondo senza annunciarsi: il carburante che cala mentre guidi, senza una frase a ricordartelo a ogni curva.

Tre attriti, tre primitive nuove. La lingua era uscita dalla sua zona di comfort ed era tornata con tre cose che non sapeva di volere.

Dalla parte del giocatore

Le promesse dell’altra volta, intanto, le ho mantenute tutte.

I pronomi sono ciò che più fa sembrare sveglio un parser italiano, e la mancanza che si sente di più. Adesso scrivi esamina la torcia e poi prendila, e funziona, come quando parli. Il motore tiene a mente l’ultimo oggetto nominato, con il suo genere e il suo numero: se l’ultima cosa di cui hai parlato è la torcia e provi a scrivere prendilo, ti chiede educatamente cosa intendi, perché «torcia» è femminile e lui se lo ricorda. E se quell’oggetto nel frattempo è sparito dalla scena, te lo dice: «Non la vedi più.»

Poi sono arrivate le tre comodità che chi ha giocato alle avventure conosce dal 1985: ANNULLA per disfare l’ultima mossa, ANCORA per ripeterla, TRASCRIZIONE per salvare su un file tutto quello che succede in partita. ANNULLA, in particolare, è una piccola macchina del tempo: prima di ogni turno il motore fotografa l’intero mondo (posizioni, inventario, stati, contatori) e quando disfi riavvolge tutto fedelmente, fino a cento mosse indietro.

E poi le descrizioni alternate, perché niente fa invecchiare un gioco come rileggere la stessa identica frase ogni volta che guardi il mare. Adesso una descrizione può avere più voci:

La descrizione del mare è una di:
  "Onde lente si rincorrono verso la riva.",
  "Il mare è una lastra di peltro sotto il cielo.",
  "Un gabbiano taglia l'orizzonte in due.".

Il motore le alterna senza ripetere mai due volte di fila la stessa, oppure le fa scorrere in ordine se gliel’hai chiesto. C’è una finezza nascosta di cui vado fiero: il caso è riproducibile, e anche ANNULLA lo riavvolge. Disfi una mossa, e il mare torna a mostrarti esattamente l’onda di prima.

Il mondo si anima

Fin qui erano comodità per chi gioca. Poi è toccato al mondo stesso, che fino a quel momento restava un museo: curato, e immobile.

È arrivata la luce. La cantina è buia e La torcia illumina: due frasi, e il buio diventa una primitiva del motore invece di un esercizio di regole. In una stanza buia, senza una fonte accesa, il gioco risponde «È buio pesto.» e non ti lascia vedere niente. Ma le uscite restano lì, perché alla cieca si cammina lo stesso, magari sbattendo.

Poi i personaggi hanno imparato a muoversi. La guardia va nel corridoio, oppure Il gatto cambia stanza e se ne sceglie una a caso fra quelle vicine. E se la mossa avviene sotto i tuoi occhi, il motore te la racconta: «La guardia se ne va verso nord.» Il museo ha cominciato a respirare.

E infine i sinonimi di verbo: "ghermisci" è come prendi. Una parola tua, più ruvida, che eredita in blocco tutto quello che il motore già sa fare con «prendi». Con questa si è chiuso il gruppo di capacità che mi piace chiamare «il mondo vivo».

La macchina che collauda le storie

Qui mi fermo un attimo, perché di tutto quello che è successo è la cosa di cui vado più orgoglioso, anche se è la meno vistosa.

Scrivere un’avventura testuale porta con sé un problema antico: come fai a sapere che è davvero finibile? Che l’oggetto che serve al terzo enigma sia raggiungibile sul serio, che tu non abbia per sbaglio chiuso il giocatore in una stanza senza la chiave giusta? Storicamente lo scopri giocando, e rigiocando, e maledicendo. FAVELLA adesso ha un collaudatore automatico: gli dai una storia e lui, senza giocarla, risale la catena della vittoria a ritroso — dal «hai vinto» fino allo stato iniziale — e ti dice se quella catena si chiude, oppure dove si spezza.

Non è magia, e lo dichiara da sé: ti dà le condizioni necessarie, non una prova matematica. Ma è una sentinella che lavora mentre tu pensi ad altro. E quanto fosse utile l’ho scoperto sulla mia pelle, come racconto fra poco.

La grande revisione

Dopo aver aggiunto tutta questa roba, sono tornato indietro a guardarmela con la lente. Non per aggiungere altro: per togliere i difetti.

Sono saltate fuori le asimmetrie che solo l’uso fa vedere. Un nome di stato al plurale, Le vite sono un contatore, che la lingua rifiutava per un capriccio della grammatica, mentre stanze e oggetti il plurale lo accettavano da sempre. Un aggettivo come La lapide è incisa, che il motore fraintendeva perché leggeva quell’«in» iniziale come una preposizione e si perdeva per strada. Un turno che, se qualcosa andava storto a metà, lasciava il mondo a pezzi invece di annullarsi pulito. Li ho corretti uno per uno, ciascuno con la sua prova messa a guardia.

E qui torna la sentinella. Sistemando proprio l’aggettivo è incisa, la prima versione della correzione ha rotto, di nascosto, una frase del Relitto Silente: è nello scriptorium. Non l’ho trovato io. L’ha trovato il collaudatore, che rigiocando la demo si è accorto che non si vinceva più e ha alzato la mano. La macchina che avevo costruito per controllare le storie aveva appena pizzicato il suo stesso autore. È difficile spiegare quanto mi abbia fatto sorridere.

In mezzo a tutto questo, anche un lavoro più sordo ma necessario: il motore costruisce la sua tabella di analisi una volta sola e poi la riusa, e quello che prima costava una frazione di secondo a ogni rilettura adesso è quasi gratis. Cose che nessuno nota, finché non ci sono.

Alla 0.18.0 le prove automatiche erano 446. Adesso sono 582, più 43 dedicate solo al collaudatore. Ogni numero è una cosa che non si può più rompere senza che qualcuno se ne accorga.

Adesso si installa

E poi c’è il salto che cambia tutto per chi non programma.

Fino a poco fa, per usare FAVELLA dovevi clonare il repository e installare Python. Una richiesta ragionevole per uno sviluppatore, un muro per un autore. Da adesso quel muro non c’è più: c’è un programma da installare, con il suo doppio clic, per Windows, per Mac e per Linux. Lo apri e dentro c’è tutto: il motore, le demo, un unico comando favella1 per giocare, compilare, collaudare. E c’è un laboratorio che gira senza rete: si apre nel browser ma lavora sul motore vero, quello installato sulla tua macchina, con la diagnostica autentica del compilatore. Niente più terminale, niente più «prima installa quest’altra cosa».

È la prima versione che posso mettere in mano a qualcuno dicendogli soltanto: prova.

Il libro è cresciuto

Insieme alla lingua è cresciuto il suo manuale.

Quando ne ho parlato l’ultima volta erano 17 capitoli. Adesso sono 20, perché tutto quello che ho raccontato qui andava spiegato a chi vuole impararlo: un capitolo per installare e avviare FAVELLA, uno per il buio e la luce, uno per i comandi del giocatore. E poi gli innesti dentro i capitoli che c’erano già, perché ogni primitiva nuova trovasse il suo posto nel discorso e non finisse confinata in un’appendice.

C’è anche una cosa che mi sta a cuore più del conto delle pagine. Il manuale aveva una dedica, a Bonaventura Di Bello. Adesso ne ha due. La seconda è per Pietro Bernasconi, che ha messo la lingua sotto torchio costruendoci generi a cui non era pensata — sì, la discesa della Salerno-Reggio era farina del suo sacco — e da quegli sforzi sono nate tre delle primitive che oggi do per scontate. Un linguaggio cresce così: qualcuno lo usa per fare una cosa storta, e quella cosa storta diventa una capacità nuova per tutti.

«Completo», di nuovo

Eccoci alla 0.29.0. Un linguaggio che si parla meglio, un mondo che si muove, una macchina che controlla le storie al posto tuo, un programma che si installa con un doppio clic e un libro per imparare tutto quanto.

Potrei dire di nuovo che è completo. Ma la lezione l’ho imparata, e adesso la parola mi suona diversa. «Completo» è soltanto il pavimento del piano successivo.

E in fondo all’officina c’è ancora un cantiere di cui continuo a non parlare. Chi scrive storie con FAVELLA, quando lo vedrà, lo troverà di casa.

Ogni tanto scrivo una lettera

Nessuna cadenza fissa, nessun riassunto automatico: parte solo quando ho qualcosa da raccontare. In fondo a ognuna c'è il link per uscire.

↑ Su

Cerca nel sito

Condividi

L'indirizzo di questa pagina:

Scrivi a Simone

Segnalazioni, correzioni, o solo per dire che una cosa non funziona: quest'ultima è la più utile di tutte.