# Inform e Glulx/Cosa occorre per iniziare

Inform e Glulx
Copertina Tutti i moduli · Sviluppo
* IntroduzioneInform e Glulx/Introduzione
* Cosa occorre per iniziareInform e Glulx/Cosa occorre per iniziare
** Compilatore, interprete e altro ancora
** L'installazione
** Perché IF-IDE?
** Per chi non vuole (o non può) usare IF-IDE e Windows Frotz 2002
* Le basi di Inform
** A cosa serve questo capitolo?Inform e Glulx/Le basi di Inform/A cosa serve questo capitolo?
** Benvenuto in InformInform e Glulx/Le basi di Inform/Benvenuto in Inform
** Le funzioniInform e Glulx/Le basi di Inform/Le funzioni
** Variabili numeriche e caratteri specialiInform e Glulx/Le basi di Inform/Variabili numeriche e caratteri speciali
** Un po' di matematica non guasta maiInform e Glulx/Le basi di Inform/Un po' di matematica non guasta mai
** Passaggio dei parametri e ritorno dei valoriInform e Glulx/Le basi di Inform/Passaggio dei parametri e ritorno dei valori
** L'input dei dati numerici: l'istruzione GetnumberInform e Glulx/Le basi di Inform/L'input dei dati numerici: l'istruzione Getnumber
** If (condition) then... else...Inform e Glulx/Le basi di Inform/If (condition) then... else...
** While e do... untilInform e Glulx/Le basi di Inform/While e do... until
** For, break e continueInform e Glulx/Le basi di Inform/For, break e continue
** L'utilizzo delle costantiInform e Glulx/Le basi di Inform/L'utilizzo delle costanti
** Switch... caseInform e Glulx/Le basi di Inform/Switch... case
** Salti ed etichetteInform e Glulx/Le basi di Inform/Salti ed etichette
** Caratteri e stringheInform e Glulx/Le basi di Inform/Caratteri e stringhe
** I vettoriInform e Glulx/Le basi di Inform/I vettori
** Le stringhe numericheInform e Glulx/Le basi di Inform/Le stringhe numeriche
** Le direttiveInform e Glulx/Le basi di Inform/Le direttive
** Il debuggingInform e Glulx/Le basi di Inform/Il debugging
* RUINS, l'avventura comincia
** Il grande altopiano (dalla padella alla brace)Inform e Glulx/RUINS, l'avventura comincia/Il grande altopiano (dalla padella alla brace)
** La cassa d'imballaggio (riuscirete a riempirla tutta)?Inform e Glulx/RUINS, l'avventura comincia/La cassa d'imballaggio (riuscirete a riempirla tutta)?
** Il fungo (velenoso o non velenoso)?Inform e Glulx/RUINS, l'avventura comincia/Il fungo (velenoso o non velenoso)?
** Chi ha paura del buio (gli insetti no di certo)?Inform e Glulx/RUINS, l'avventura comincia/Chi ha paura del buio (gli insetti no di certo)?
** La porta di pietra (gialla è più carina)Inform e Glulx/RUINS, l'avventura comincia/La porta di pietra (gialla è più carina)
** La chiave di pietra (così non si arruginisce)Inform e Glulx/RUINS, l'avventura comincia/La chiave di pietra (così non si arruginisce)
** Il primo tesoro (speriamo che non sia un anello)Inform e Glulx/RUINS, l'avventura comincia/Il primo tesoro (speriamo che non sia un anello)
** La maschera facciale (non di carnevale)Inform e Glulx/RUINS, l'avventura comincia/La maschera facciale (non di carnevale)
** Il ritorno della mummia (non è un film, è tutto vero)Inform e Glulx/RUINS, l'avventura comincia/Il ritorno della mummia (non è un film, è tutto vero)
** L'incrocio di Xibalbá (ma è davvero così pauroso)?Inform e Glulx/RUINS, l'avventura comincia/L'incrocio di Xibalbá (ma è davvero così pauroso)?
** La sfera di pietra pomice (avete indossato il casco)?Inform e Glulx/RUINS, l'avventura comincia/La sfera di pietra pomice (avete indossato il casco)?
** Una gabbia per un facocero (e l'archeologo che fine ha fatto)?Inform e Glulx/RUINS, l'avventura comincia/Una gabbia per un facocero (e l'archeologo che fine ha fatto)?
** La cripta dei nove signori della notte (o sette come i nani)?Inform e Glulx/RUINS, l'avventura comincia/La cripta dei nove signori della notte (o sette come i nani)?
** Un archeologo per un facocero (basta solo che non grugnite)Inform e Glulx/RUINS, l'avventura comincia/Un archeologo per un facocero (basta solo che non grugnite)
** La fine di RUINS è giunta (ma con Inform siete solo all'inizio)Inform e Glulx/RUINS, l'avventura comincia/La fine di RUINS è giunta (ma con Inform siete solo all'inizio)
* Inform e ancora Inform
** La Status LineInform e Glulx/Inform e ancora Inform/La Status Line
** I menuInform e Glulx/Inform e ancora Inform/I menu
** I labirinti e i nomi pluraliInform e Glulx/Inform e ancora Inform/I labirinti e i nomi plurali
** Il tempoInform e Glulx/Inform e ancora Inform/Il tempo
** I coloriInform e Glulx/Inform e ancora Inform/I colori
** I mezzi di trasportoInform e Glulx/Inform e ancora Inform/I mezzi di trasporto
** Su e giù con l'ascensoreInform e Glulx/Inform e ancora Inform/Su e giù con l'ascensore
** Gli NPC (o PNG in italiano)Inform e Glulx/Inform e ancora Inform/Gli NPC (o PNG in italiano)
** Le estensioni (o librerie aggiuntive)Inform e Glulx/Inform e ancora Inform/Le estensioni (o librerie aggiuntive)
** Varie, listati e decompilatoreInform e Glulx/Inform e ancora Inform/Varie, listati e decompilatore
* Inform e Glulx
** Cos'è GlulxInform e Glulx/Inform e Glulx/Cos'è Glulx
** L'installazione di JifInform e Glulx/Inform e Glulx/L'installazione di Jif
** La compilazioneInform e Glulx/Inform e Glulx/La compilazione
** L'esecuzioneInform e Glulx/Inform e Glulx/L'esecuzione
** Da Inform a GlulxInform e Glulx/Inform e Glulx/Da Inform a Glulx
** La grafica e il sonoroInform e Glulx/Inform e Glulx/La grafica e il sonoro
** L'allineamento delle immaginiInform e Glulx/Inform e Glulx/L'allineamento delle immagini
** Avventure senza graficaInform e Glulx/Inform e Glulx/Avventure senza grafica
** I colori e gli stili del testoInform e Glulx/Inform e Glulx/I colori e gli stili del testo
** La personalizzazione della Status LineInform e Glulx/Inform e Glulx/La personalizzazione della Status Line
** output dei datiInform e Glulx/Inform e Glulx/L'input/output dei dati
** VarieInform e Glulx/Inform e Glulx/Varie
** GULL, il manuale ufficialeInform e Glulx/Inform e Glulx/GULL, il manuale ufficiale
* Appendici
** Appendice A - Le azioni principaliInform e Glulx/appendici/Appendice A - Le azioni principali
** Appendice B - I messaggi della libreriaInform e Glulx/appendici/Appendice B - I messaggi della libreria
** Appendice C - Gli errori della compilazioneInform e Glulx/appendici/Appendice C - Gli errori della compilazione
** Appendice D - La soluzione di RuinsInform e Glulx/appendici/Appendice D - La soluzione di Ruins
** Appendice E - Come usare Windows Frotz 2002Inform e Glulx/appendici/Appendice E - Come usare Windows Frotz 2002
** Appendice F - Le mappeInform e Glulx/appendici/Appendice F - Le mappe
** Appendice G - Scrivere, distribuire e reperire delle avventure testualiInform e Glulx/appendici/Appendice G - Scrivere, distribuire e reperire delle avventure testuali
Modifica il sommario

## Compilatore, interprete e altro ancora...

Ora che avete letto (almeno mi auguro) l’introduzione, all’interno della quale è stata spiegata cos’è a tutti gli effetti un’avventura testuale, possiamo allora passare al lato più pratico, ovvero a cosa occorre per crearla. Se in qualità di utente dovessi scaricare i soli file di Inform, mi ritroverei con le librerie di sistema in inglese e un compilatore (ovviamente anch’esso in inglese); poco, davvero troppo poco per poter cominciare a lavorare con un linguaggio di programmazione. Qualcuno più esperto potrebbe iniziare ad aprire, per esempio, il blocco note di Windows per scrivere il sorgente e magari la finestra del prompt di MS-DOS per usare il compilatore. Già, ma non è scomodo lavorare su delle finestre che devo tutte le volte attivare/disattivare per poter effettuare le varie operazioni? E poi... come faccio a scrivere un’avventura testuale in lingua italiana se le librerie di sistema sono in inglese? E come faccio a giocarla, dal momento che il file compilato non è un eseguibile (.exe) ma nel formato Z-code (.Z5 o .Z8)?
Allora… procediamo con ordine, facendo una breve rassegna su tutto quello che ci serve:
* le librerie di sistema (versione 6.11, sulla quale è basato il manuale, o successiva), composte di nove file che includono la grammatica e il parser;
* le librerie in italiano (versione 2.5, sulla quale è basato il manuale, o successiva), composte di tre file e scritte da Giovanni Riccardi;
* Il compilatore (versione 6.30, sulla quale è basato il manuale, o successiva), disponibile per diversi sistemi operativi tra cui ovviamente Windows;
* l'interprete (Windows Frotz 2002 v1.08 o successivo), che esegue i file .Z5 e .Z8 per poter giocare alle avventure testuali create con Inform;
* un editor di testo, ovvero il bellissimo WIDE di Alessandro Schillaci e Paolo Lucchesi.

## L'installazione

La prima cosa da fare è la più banale di tutte: creare sotto Windows una directory (o cartella) denominata "inform" sulla partizione "C:" (o su un’altra lettera nel caso che il vostro disco fisso sia suddiviso in più partizioni). Create poi al suo interno le seguenti sottodirectory: "libraries" (per le librerie di sistema e Infit), "interpreter" (per l’interprete Inform, ovvero Windows Frotz 2002) e infine "wide". Decomprimete ora con il programma Winzip i seguenti file:
* "inform_library611.zip" e "infit25.zip" nella directory libraries;
* "inform_compiler630.zip" nella directory inform;
* "WindowsFrotz2002.zip" nella directory interpreter;
* "wide099beta.zip" nella directory wide.
L’ultima cosa che rimane da fare è rinominare le librerie di sistema che ora si trovano in "C:\inform\libraries" (nell’ordine "English", "Grammar", "infix", "linklpa", "linklv", "Parser", "parserm", "VerbLib", "verblibm") con l’estensione .h ("English.h", "Grammar.h" e così via).
Fine dell’installazione. Come vedete non è poi così difficile...

## Perché WIDE?

È presto detto: WIDE non funge solo da editor di testo, ma anche da compilatore e visualizzatore di oggetti (objects), funzioni (functions), costanti (constants) e molto altro ancora. È, insomma, un vero e proprio ambiente integrato di programmazione, che ci permette di svolgere da una sola finestra tutte le principali azioni richieste da Inform per la creazione di un’avventura testuale. Esse sono nell’ordine:
* la creazione del codice sorgente;
* la compilazione del codice sorgente nel formato Z-Machine (.z5 o .z8);
* l’esecuzione del file compilato mediante l'apposito interprete.
Apriamo ora il programma. La finestra principale di WIDE è suddivisa in tre ulteriori finestre (chiamate anche aree di lavoro). Quella in alto a destra è di fatto l’editor di testo, all’interno della quale potete creare e salvare il codice sorgente (contraddistinto dall’estensione .inf):
La finestra in alto a sinistra visualizza (se presenti) tutti gli oggetti, le costanti e le funzioni relative ad ogni listato aperto:
ma è comunque possibile, dal menu Albero, scegliere di visualizzare (sempre se presenti) anche le classi, gli include e i verbi.
La finestra in basso è indispensabile durante la fase di compilazione, perché segnala la presenza o meno di errori all’interno del codice sorgente che la maggior parte delle volte non permettono la creazione del file eseguibile:
Resta infine da vedere come creare, aprire, salvare, compilare ed eseguire il codice sorgente. Basta premere i seguenti pulsanti sulla barra degli strumenti, nell’ordine:
per creare un nuovo codice sorgente;
per aprire un codice sorgente precedentemente salvato;
per salvare il codice sorgente;
per compilare il codice sorgente;
per eseguire il file compilato con l’apposito interprete (nel nostro caso Windows Frotz 2002).
Il file compilato (l’avventura testuale vera e propria) ha di default l’estensione .Z5. A volte però, può capitare che l’avventura sia più lunga della norma, e a quel punto occorre compilarla con l’estensione .Z8. WIDE gestisce anche quest’ulteriore opzione dal menu Zcode e i due formati sono pienamente supportati da Windows Frotz 2002.

## Per chi non vuole (o non può) usare WIDE e Windows Frotz 2002

Il mondo è bello perché è vario. È per questo motivo che Tommaso Caldarola e Francesco Cordella mi hanno segnalato l’esistenza per Windows di TEXTPAD, un magnifico editor di testo completo ed efficiente prodotto dalla Helios Software. Un articolo di Roger Firth spiega poi come configurarlo correttamente per Inform.
Paolo Lucchesi ha invece adattato CRIMSON EDITOR (un editor di testo gratuito che non ha nulla da invidiare a Textpad) a Inform creando un apposito file di evidenziazione della sintassi come spiegato nel file crimson_inform.txt.
Impossibile poi, non citare lo stratosferico JIF (versione 2.0 - Megapack Edition, sulla quale è basato il manuale, o successiva), lo strumento di programmazione più completo per questo linguaggio. Scritto in Java da Alessandro Schillaci, questo programma multipiattaforma ricalca sotto certi aspetti le orme di WIDE, ma è decisamente più completo e potente di quest’ultimo; l’unica nota dolente è che richiede, per essere eseguito, l’installazione del JRE 1.4 (o successivo) che può rallentare il sistema sui computer più vecchi.
Per quanto riguarda invece gli utenti Linux e Macintosh, le rispettive versioni di Frotz sono Frotz 2.42 per il primo, e MaxZip 1.78 per il secondo. Gargoyle (così come Splatterlight per il Macintosh), invece, è un programma che è in grado di eseguire delle avventure testuali scritte in vari formati (tra cui, ovviamente, lo Z-code); il risultato è davvero straordinario, grazie soprattutto all’utilizzo di un font proprietario caratterizzato da un’alta leggibilità.
Altri programmi possono essere reperiti all’indirizzo http://www.ifarchive.org/ e comunque, dal momento che Inform sotto questo aspetto è universale (è uguale a livello di codice su tutte le piattaforme che lo supportano), tutto quello che verrà detto dal secondo capitolo in poi andrà bene per tutti.

## Note

* ↑ Per scaricare tutto l’occorrente cliccate, con il tasto sinistro del mouse, sulle parole sottolineate tra parentesi. In alternativa, potete sempre scaricare l’Inform Pack, un pacchetto che contiene tutto (o quasi) l’occorrente per iniziare a programmare con Inform, organizzato in directory secondo una comoda struttura.
* ↑ Se proprio non riuscite a fare quanto fin qui detto, cliccate allora qui.
* ↑ JIF funziona infatti su Windows, Linux e Linux-MacOs e supporta appieno sia Inform che Glulx. Ulteriori informazioni riguardo alla sua installazione, potete trovarle al paragrafo 6.2.
* ↑ Acronimo di Java Runtime Environment, è un file per Windows lungo circa 13 megabyte (la versione 1.4 o successiva per Linux la potete scaricare dal sito ufficiale della Sun), che permette di utilizzare qualsiasi programma scritto in Java sul vostro computer.
* ↑ Poiché questo programma può dare a volte dei problemi di visualizzazione delle lettere accentate, è vivamente consigliato usarlo da finestra terminale impostando il set dei caratteri Windows.
* ↑ Esiste anche Parchment, un interprete Z-code per i browser. Ulteriori informazioni potete trovarle sul sito ufficiale o sull’ottima guida d’utilizzo scritta dal bravissimo Paolo Lucchesi e liberamente consultabile all’indirizzo http://www.ifitalia.info/pmwiki/pmwiki.php?n=Guide.Parchment.

## Collegamenti esterni

* La FAQ su Inform.