C’era una volta un ragazzino seduto davanti a uno schermo, e sullo schermo non c’era quasi niente. Qualche riga di testo. Una descrizione: una stanza, una porta a nord, un oggetto appoggiato da qualche parte. E sotto, un cursore che lampeggiava in attesa.
Quel cursore mi ipnotizzava. Non chiedeva riflessi pronti, non chiedeva di schivare proiettili: chiedeva di leggere. E per andare avanti bisognava scrivere. Digitavi «prendi la chiave», «apri la porta», «vai a nord», e il mondo rispondeva. A volte rispondeva male, con quel «Non capisco» che era insieme frustrazione e sfida. Ma quando capiva — quando la frase giusta sbloccava la porta giusta — succedeva una cosa che nessun altro videogioco sapeva fare: la storia andava avanti perché tu avevi trovato le parole.
Erano le avventure testuali. E chi segue questo blog sa che quel fascino non mi è mai passato: ci ho costruito sopra un gioco intero, Il Relitto Silente, di cui ho raccontato qui la nascita, la crescita e il congedo. Ma il Relitto è un frutto. Oggi voglio raccontare l’albero.
Gli anni della ricerca
Crescendo, e poi con l’arrivo di internet, ho continuato a girare intorno alla narrativa interattiva da un’angolazione precisa: non solo giocarla, ma capire come si costruisce. Sono sempre stato a caccia di sistemi per svilupparla.
Ne ho attraversati parecchi. Quest, per esempio, che prometteva avventure testuali senza scrivere codice, a colpi di editor visuale. Twine, che ho frequentato a lungo e che adoro, anche se gioca un campionato diverso: più che un motore per avventure testuali è un telaio per storie interattive a bivi, con condizioni e variabili — splendido per l’ipertesto narrativo, meno adatto al modello classico del parser, quello dove il giocatore scrive e il mondo interpreta.
E poi è arrivato Inform. Anzi no: Inform c’era già da un pezzo. È più onesto dire che sono arrivato io a Inform.
Inform, ovvero la promessa a metà
Per chi non lo conoscesse: Inform è il punto di riferimento della interactive fiction mondiale da trent’anni. Nato nel 1993 dalla mente di Graham Nelson, è cresciuto fino alla sua incarnazione più radicale, Inform 7, uscita nel 2006 con un’idea che all’epoca sembrava fantascienza: si programma scrivendo frasi in inglese. Non pseudocodice che somiglia all’inglese: inglese. The kitchen is a room. è un’istruzione valida. Il compilatore la legge e la kitchen esiste.
Quando l’ho capito davvero, ho provato quella vertigine che si prova davanti alle idee giuste. Era esattamente ciò che cercavo da anni: un linguaggio dove descrivere una scena equivale a programmarla.
C’era solo un problema, ed era un problema grosso quanto una lingua intera: l’inglese.
Perché Inform 7 non è «in inglese» come un manuale è in inglese. Inform 7 è inglese: la sua grammatica formale è ricalcata sulla sintassi inglese, il suo parser ragiona in inglese, la sua libreria standard risponde in inglese. Scrivere un’avventura in italiano con Inform significa combattere su due fronti: il codice in una lingua, l’output in un’altra, e in mezzo librerie di traduzione che provano a tenere insieme i pezzi.
In molti ci hanno provato, sia con Inform 6 sia con il 7. Ho visto quei progetti di italianizzazione, ho visto la fatica e l’ingegno che ci sono dentro, e ho visto anche il muro contro cui vanno a sbattere. Perché tradurre un linguaggio di programmazione naturale non è tradurre un’interfaccia: è trapiantare una grammatica dentro un’altra. L’inglese non ha il genere dei sostantivi; l’italiano sì, e pretende la concordanza. L’inglese ha the e ha chiuso il discorso; l’italiano ha il, lo, la, i, gli, le, e poi l’apostrofo, e poi le preposizioni articolate — sul, nella, dei — che si fondono e si scompongono a seconda di cosa segue. Ogni frase italiana porta con sé un piccolo carico di morfologia che l’inglese non si sogna nemmeno.
Un giorno, guardando l’ennesimo tentativo di piegare Inform all’italiano, ho capito che il punto non era tradurre. Il punto era non tradurre affatto: serviva un linguaggio nato in italiano, pensato in italiano, con l’italiano nelle fondamenta e non nell’intonaco.
FAVELLA

Così è nata FAVELLA 1. Il nome viene dall’italiano antico: la favella è la facoltà di parlare, la lingua viva. Mi sembrava giusto per un progetto la cui intera filosofia sta in una frase: il codice è prosa.
In FAVELLA non ci sono parentesi graffe da bilanciare né punti e virgola da ricordare. Si scrive:
La prigione è una stanza.
La descrizione della prigione è "Una cella umida con una porta di ferro a nord.".
Una chiave arrugginita è una cosa.
La chiave arrugginita è in prigione.
La chiave arrugginita è prendibile.
Invece di apri la porta di ferro: dire "È chiusa a chiave.".
Invece di apri la porta di ferro se il giocatore ha la chiave arrugginita:
dire "La serratura scatta!" e adesso la porta di ferro è aperta.
E questo non è un esempio illustrativo: è un gioco funzionante. Lo dai in pasto al motore e ci giochi.
Il progetto è partito nel novembre del 2025 come esperimento — il primo compilatore era poco più di un mazzo di espressioni regolari tenute insieme con lo sputo — ed è cresciuto in un modo che merita una confessione: FAVELLA non l’ho scritta da solo. L’ho scritta in dialogo continuo con l’intelligenza artificiale, che in questo progetto non è stata uno strumento ma un partner di sviluppo: con lei ho definito le specifiche, esplorato il design della grammatica, riscritto il cuore del compilatore quando il giocattolo a regex non bastava più. Le decisioni e la visione restano umane; tutto il resto ha corso a una velocità che da solo non avrei mai tenuto.
E sotto la prosa, oggi, c’è ingegneria vera. Il motore è Python puro, e il compilatore lavora in due passate: prima impara quali nomi esistono nella tua storia — le stanze, gli oggetti, i personaggi — e poi interpreta le frasi con una grammatica formale non ambigua per costruzione. Tradotto dal tecnichese: ogni frase di FAVELLA ha una e una sola lettura possibile. L’italiano resta naturale per chi scrive, ma sotto il cofano è rigoroso come un linguaggio di programmazione deve essere. Una suite di 446 test automatici controlla ogni costrutto a ogni modifica.
Cosa sa fare, oggi
La parte che mi rende più orgoglioso è quanta strada ha fatto il linguaggio in così poco tempo. La roadmap che mi ero dato prevedeva otto livelli di capacità, e gli otto livelli sono chiusi.
Oggi in FAVELLA si dichiarano stanze, oggetti, contenitori e supporti; si scrivono regole condizionali con e, oppure, non e le parentesi; si tiene lo stato del mondo con stati e contatori («Il punteggio è un contatore.», «La forza parte da 3.»); si programmano eventi a turni e — la mia aggiunta preferita — i demoni: sentinelle autonome che sorvegliano una condizione e scattano da sole. «Quando la tensione è almeno 8: dire "Il portale ti risucchia." e adesso perdi.» Una riga, e il mondo ha imparato a reagire senza aspettare il giocatore.
Ci sono i personaggi, con dialoghi ramificati degni della tradizione: nodi, opzioni numerate, scelte che compaiono solo a certe condizioni e che hanno conseguenze sul mondo. Ci sono gli alias degli oggetti, i verbi personalizzati, le direzioni inventate dall’autore, le storie spezzabili in più file. E c’è perfino un linter: il compilatore ti avvisa se una stanza è irraggiungibile, se un oggetto non è mai stato collocato da nessuna parte, se una regola non potrà mai scattare. Non si limita a capire la tua storia: la rilegge e ti dice dove zoppica.
E siccome a un linguaggio serve una prova del fuoco, la demo ufficiale è un porting completo — indovinate un po’ — de Il Relitto Silente: quindici stanze, la catena di enigmi, gli echi, l’Anziano, il finale. Il gioco che avevo congedato è tornato a vivere come vetrina della lingua. C’è una simmetria, in questa cosa, che continua a piacermi.
Tutto — motore, compilatore, demo, documentazione, specifica della grammatica — è open source, pubblico, su GitHub.
Una lingua cerca casa

E qui arriva la parte difficile da scrivere.
FAVELLA è arrivata a una maturità che sei mesi fa non avrei osato pronosticare. Il linguaggio, allo stato attuale delle conoscenze, posso dirlo completo. Ed è esattamente questo il momento in cui devo essere onesto con me stesso: ho troppi progetti aperti, troppe cose da fare, e le giornate restano di ventiquattro ore anche per chi se le riempie male.
Per questo lo dico chiaramente, e lo dico qui: cerco qualcuno a cui FAVELLA interessi davvero. Qualcuno che voglia dare una mano — segnalare, provare, scrivere storie, contribuire al codice — o addirittura qualcuno che voglia prendersi cura del progetto in senso pieno, raccoglierlo e portarlo dove io da solo non riuscirò a portarlo. Un linguaggio vive se lo parla più di una persona.
Mi dispiace anche solo scrivere la parola abbandono accanto a questo nome, proprio adesso che il progetto è nel suo momento migliore. E infatti, conoscendomi, magari non lo farò veramente. Però le mani sono due e i progetti sono tanti, e preferisco cercare compagnia per tempo piuttosto che lasciare un’altra repo a impolverarsi in silenzio.
Nel frattempo, comunque, non sto con le mani in mano: sto lavorando al manuale integrale per l’utente, la guida organica e definitiva alla lingua, con la demo come esempio-guida dall’inizio alla fine. Sarà la porta d’ingresso per chiunque voglia scrivere la sua prima storia in FAVELLA senza leggere una riga di documentazione tecnica.
E poi c’è una sorpresa. Nei prossimi giorni.
Quel cursore, intanto, continua a lampeggiare. Solo che adesso, quando gli scrivo, mi risponde in italiano.
