Narratika l’antispacc per creare le novelle!
Oggi, ecco un nuovo mio progetto, immaginato al volo e ancor più velocemente iniziato, per motivazioni che rientrano nella logica del sesto corollario alla legge fondamentale di Murphy… Un linguaggio di marcatura (e non “di scripting”!), pensato per creare visual novel, perché ho riflettuto che, volendo tentare di iniziare a crearne qualcuna anche piccolina perché tipo onestamente semplicemente voglio, una delle cose che mi fa incazzare è come i vari linguaggi di scripting incidentalmente rendono tedioso l’effettivo scrivere la storia. 
Fortunatamente, a differenza di qualche altra cosa che sto praticamente trascinando da mesi nonostante forse non richieda così tanto lavoro, gli spiriti identificati e classificati da Murphy non si sono eccessivamente accaniti su di me in questo caso, visto che almeno a rilasciare questa prima versione, pur se ancora work-in-progress, ci sono arrivata, giusto con questo fine settimana. (Purtroppo, oramai la mia vita va avanti a suon di “non ci si può mettere a far qualcosa senza che qualcos’altro non vada fatto prima“.) 
L’ho chiamato
#Narratika (il nome più decente suggerito da ChatGPT), e ovviamente sta già tutto su
https://gitlab.com/octospacc/Narratika o
https://github.com/octospacc/Narratika, altrimenti starei a raccontare stronzate ipotetiche; ma no, le cose che faccio io sono fin troppo reali…

A livello tecnico, il linguaggio è implementato sotto forma di transpiler, che leggono file con quella sintassi e sputano fuori altro a seconda del caso. Per ora ho implementato quindi due transpiler: uno in Python, che sputa fuori file con la sintassi di Ren’Py da andare poi a mano a mettere nella cartella del gioco che si sviluppa (…non ho ancora capito come potrei fare ad integrarlo come libreria, anziché lasciarlo come programma CLI); e poi uno in JavaScript, pensato invece per Monogatari, un altro motore, che si aggiunge banalmente come libreria. 
Tralasciando come faccia molto ridere il fatto che me ne esco pubblicando ben 2 transpiler proprio stamattina, che sarebbe il Trans Day of Visibility, il punto chiave di questo linguaggio non è niente di complesso, ma è anzi qualcosa di talmente stupido da lasciarmi negativamente stupita del fatto che nessuno ci abbia mai pensato prima: poter scrivere visual novel senza le torture varie che escono puntualmente fuori, quando si ha da scrivere tanto testo così strutturato facendo la lotta contro la sintassi dettata da un linguaggio di programmazione… 
Detto in breve, qui non si bestemmia mai. Il testo dei dialoghi, o della narrazione, non si deve scrivere dentro virgolette, ma si scrive e basta (seguito solo dal prefisso con il simbolo adeguato, che indica chi parla). Visto che non ci sono di mezzo simboli normalmente usati nel parlato a racchiudere il parlato, giustamente non si deve smattare con il farne eventuale escaping. E poi, si può assumere che qualsiasi riga del file che non inizia con uno di quei simboli speciali sia implicitamente dell’ultimo tipo esplicitato, e quindi dividere il testo in battute e paragrafi è immediato quanto scrivere un qualunque documento umano. Infine, visto che, oltre a tutto questo, nemmeno l’indentazione è obbligatoria (e francamente non è necessaria per mantenere la leggibilità), diventa facilissimo scrivere gli script pure da mobile! 
Stavolta penso si possa godere tutti, insomma. Per gli approfondimenti rimando ovviamente al README, ma già nella foto qui si vede un po’ la sintassi del linguaggio (attenzione attenzione lavori in corso…), e un esempio di come questa viene convertita al formato di Ren’Py per l’esecuzione, rimanendo comunque perfettamente leggibile e modificabile. Penso che la prima visual novel che scriverò e rilascerò con questo affare, in realtà, sarà proprio una di demo per il linguaggio… 