Una panoramica introduttiva su ALAN 3, linguaggio per la creazione di avventure testuali, e il progetto Alan Italian per la traduzione in italiano della libreria standard di Alan.

Il progetto Alan Italian si prefigge i seguenti obiettivi:

  1. Tradurre in italiano la Alan Standard Library v2.1 di Anssi Räisänen.

  2. Fornire un modulo indipendente per il supporto della lingua italiana in Alan IF 3.

  3. Documentare l’uso di Alan e della Libreria Italiana attraverso guide ed esempi.

Sia la Libreria Standard Italiana che il modulo per l’italiano consentiranno la creazione di avventure testuali in lingua italiana utilizzando Alan 3, un linguaggio dedicato alla creazione di opere di interactive fiction.

La Libreria Standard è mirata a fornire ai novizi di Alan uno strumento di facile utilizzo per la creazione di avventure in italiano, grazie a una ricca infrastruttura di classi e verbi comunemente utilizzati nelle avventure.

Il modulo indipedente per l’italiano è mirato agli utenti più esperti di Alan, che vogliono creare le proprie avventure partendo solo con il supporto per la lingua italiana, e costruirsi da zero tutti i verbi e l’infrastruttura dell’avventura.

Alan IF

Alan (acronimo per Adventure LANguage) è un linguaggio dedicato alla creazione di avventure testuali (dette anche “AT”, o “IF”/“Interactive Fiction”). Creato nel lontano 1985 da Thomas Nilefalke (all’epoca, Thomas Nilsson) e Göran Forslund, Alan è oggi giunto alla sua terza incarnazione (Alan 3). Sebbene la versione 3 di Alan sia ancora in fase Beta, è sufficientemente stabile da poter essere usata per la creazione di avventure.

Gli ideatori di Alan hanno voluto creare uno strumento che fosse semplice da usare per chi non avesse esperienza di programmazione, e che non imponesse un modello standard su come debba essere strutturato il mondo delle avventure. Queste caretterstiche rendono Alan un ottimo candidato per la creazione di avventure in italiano.

Programmazione prosaica

La sintassi di Alan è modellata attorno alle esigenze dello scrittore, più che del programmatore, quindi l’uso di parentesi, punteggiatura e altri simboli per l’organizzazione sintattica del codice è ridotto al minimo indispensabile, e non vi sono vincoli strutturali riguardo l’uso di indentazione e la ripartizione del codice nelle righe del sorgente. L’aspetto di un file sorgente di Alan è più simile alla prosa che non alla programmazione.

Questo è un esempio (completo) di codice Alan per creare un’avventura con una stanza, un attore ed un verbo, scritto in forma prosaica:

The classroom IsA location
Name 'English Literature Classroom'. Exit south to corridor.
Description "there are no studends in the classroom, except you."
End the classroom.

Syntax greet = greet (person) where person IsA actor else "You can only greet people."

The teacher IsA actor at classroom.
Name teacher. Name professor mr John Keating. Pronoun him.
Description "Mr Keating is busy at his desk, proofreading the students' homework."
Verb greet does
     "-- Good evening professor Keating.
    $nA whole minute goes by before your teacher finally raises
      his head from the papers and acknowledges your presence.
    $n-- How may I help you, Mr. Anderson?"
End verb. End the teacher.

The corridor IsA location
  EXit north to classroom.
End the corridor.

Start at classroom.

Questo è il medesimo codice, scritto in una forma che è più tipica della programmazione:

THE classroom IsA location
  NAME 'English Literature Classroom'.
  DESCRIPTION "There are no studends in the classroom, except you."
  EXIT south TO corridor.
END THE classroom.

SYNTAX greet = greet (person)
  WHERE person IsA actor
    ELSE "You can only greet people."

THE teacher IsA actor AT classroom.
  NAME teacher.
  NAME professor mr John Keating.
  PRONOUN him.
  DESCRIPTION
    "Mr Keating is busy at his desk, proofreading the students' homework."
  VERB greet
    DOES
      "-- Good evening professor Keating. $nA whole minute goes by before your
       teacher finally raises his head from the papers and acknowledges your
       presence. $n-- How may I help you, Mr. Anderson?"
  END VERB greet.
END THE teacher.

THE corridor IsA location
  EXIT north TO classroom.
END THE corridor.

START AT classroom.

In entrambi i casi, anche un lettore che non conoscesse Alan sarebbe in grado di intuire a cosa serve il codice, e come funzionerà l’avventura da esso creato. Il primo esempio risulterà più facile da comprendere a chi non ha esperienza di programmazione, mentre il secondo risulterà più familiare ai programmatori. Ogni autore è libero di adottare lo stile che preferisce nel proprie avventure.

Nei sorgenti della libreria di questo progetto, adotteremo uno stile di programmazione formale, più simile al secondo esempio, per ragioni di praticità di editing. Nei sorgenti degli esempi adotteremo invece uno stile meno formale, più prosaico.

Sebbene Alan adotti un approccio sintattico alla programmazione che ne semplifica l’uso, avvicinandola il più possibile all’uso naturale della lingua inglese, si tratta comunque di un vero e proprio linguaggio di programmazione formale — da non confodere, per esempio, con la programmazione in lingua naturale adottata da Inform 7.

Libertà autoriale

A differenza di altri sistemi per la creazione di AT, Alan non impone un modello standard del mondo dell’avventura, o un set di verbi predefiniti; la filosofia di Alan è di lasciare all’autore totale autonomia su come modellare l’avventura. Alan mette a disposizione un insieme di funzionalità e meccanismi che sono comuni a tutte le avventure, ma starà ai singoli autori decidere se e come usarle — ad esempio le funzionalità per il salvataggio e il caricamento di una partita sono controllate dall parole chiave Save e Restore, ma sarà l’autore a dover decidere se e come rendere queste funzionalità accessibili al giocatore (p.es. implementando i comandi per il giocatore ‘salva’ e ‘carica’).

Per gli autori che sono abituati a lavorare con Inform, TADS, e altri sistemi di autoraggio dotati di una libreria standard che mette a disposizione i verbi, le classi ed i messaggi d’uso comune, l’approccio tabula rasa di Alan potrà sembrare insolito. Lavorare con Alan è come dipingere partendo da una tela bianca: toccherà a noi scegliere i pennelli ed i colori da usare, e preparare la tela dandogli un fondo appropriato al tipo di colori che useremo. Gli altri sistemi, invece, sono come un kit di partenza dove il materiale di lavoro è già presente: abbiamo pennelli di varie misure, un set di tubetti con tutti i colori principali, e una tela già pretrattata e pronta all’uso.

A secondo del tipo di avventura che si vuole creare, i modelli preconfezionati potranno risultare troppo dettagliati o troppo scarni — molto dipende dal tipo di realismo che vogliamo conseguire. Magari non ci servono affatto le funzionalità per il vestiario o per i dialoghi, oppure ce ne servirebbe una versione più dettagliata e realistica. Alan ci consente di costruire un’infrastruttura ad hoc per le nostre avventure, partendo da zero.

Alan mette a disposizione le seguenti classi di base con cui modellare il mondo delle AT:

predefined classes
Figura 1. Le classi predefinite di Alan

Si tratta delle classi universali che sono alla base di qualsiasi avventura, e ciascuna di esse ha caratteristiche specifiche studiate appositamente per l’interactive fiction. L’autore potrà estenderle e specializzarle secondo necessità — creando supporti, animali, persone, indumenti, cibi e bevande, armi, e quant’altro. Queste classi sono come i colori primari dell’artista, e usandole saggiamente sarà possibile illustrare mondi fantastici ricchi e vivaci, creando le giuste tinte e sfumature con cui narrare la propria avventura.

Alan Italian vs Libreria Standard Italiana

Per gli amanti della libertà assoluta nel plasmare il mondo delle avventure, Alan “nudo e crudo” è lo strumento ideale, e Alan Italian è un modulo a sé stante che aggiunge il supporto della grammatica italiana senza intaccare la tabula rasa offerta da Alan.

Per chi invece preferisce scrivere le proprie avventure avvalendosi di un modello ricco e consolidato, la Alan Standard Library è lo strumento ideale da cui partire, rendendo l’uso di Alan simile agli altri sistemi di autoraggio. Per gli autori italiani, questo progetto mette a disposizione la Libreria Standard Italiana, che è la traduzione/adattamento della libreria inglese.

Alan Standard Library

La Alan Standard Library, scritta da Anssi Räisänen, definisce un ricco insieme di verbi, classi e funzionalità comunemente usati nelle avventure testuali, che gli autori possono usare come fondamenta su cui costruire le proprie avventure.

La libreria standard non è inclusa nella distribuzione ufficiale di Alan, e va scaricata separatamente.

Questo progetto è finalizzato alla traduzione italiana della Alan Standard Library.