Inform e Glulx/Inform e ancora Inform/Le estensioni (o librerie aggiuntive)

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Le estensioni (o librerie aggiuntive)[modifica]

Nonostante Inform sia un linguaggio di programmazione orientato alle avventure testuali, a mano mano che si diventa più bravi nella programmazione (unita ovviamente alla stesura delle storie), si arriva a un certo punto che Inform, di default, non basta più. Si vuole ottenere sempre di più, arrivando a voler gestire eventi sempre più complessi e a questo punto si è obbligati a dover scegliere fra due strade diverse: la prima, quella forse più facile e intuitiva, è quella di scrivere del codice "ad hoc"; la seconda, invece, è quella di utilizzare le estensioni (chiamate anche librerie aggiuntive)[1]. Fra queste ultime, mi preme ricordare:

  • la scenic.h (scritta da Richard Barnett, Joe Mason, Roger Firth e Stefano Gaburri), che dà la possibilità di attribuire a un oggetto dei nomi "scenici" che estendono la descrizione di default (evitando così di dover creare un nuovo oggetto per ogni nuova descrizione);
  • la fnote.h (scritta da L. Ross Raszewski), che ci permette d'integrare delle note a pie' di pagina nel gioco;
  • la dmenus.h (scritta da Dave Robinson), che ci viene incontro nella gestione semplificata dei menu;
  • la command it.h, da me scritta, che è un menu (annidato) di aiuto per i comandi;
  • la wtalk.h (scritta da Paolo Lucchesi), che ci viene in aiuto nei dialoghi con i PNG (i Personaggi Non Giocatori, ovvero tutti i personaggi che appaiono nel gioco all’infuori del giocatore stesso);
  • la flags.h (scritta da Alessandro Schillaci), che ci dà la possibilità di stampare a video dei messaggi di aiuto sulla base del numero dei capitoli e delle mosse effettuate;
  • la pname.h (scritta da Neil Cerutti), che ci permette di risolvere le ambiguità dell'input del giocatore quando la stessa parola di dizionario si riferisce a più di un oggetto;
  • la smartcantgo.h (scritta da David Wagner e Roger Firth), che può essere usata per stampare a video le uscite possibili;
  • la doors.h (scritta da L. Ross Raszewski), che ci permette di semplificare la gestione di una door;
  • la easydoors.h (scritta da Andrew MacKinnon), ci permette anch’essa di semplificare la gestione di una door, ma con delle caratteristiche in più;
  • la style.h (scritta da Chris Klimas), che ci aiuta nella gestione degli stili del testo;
  • la boxclever.h (scritta da Roger Firth), che ci permette di creare dei riquadri in grado di contenere, oltre al testo normale, anche il grassetto e il corsivo.

Bene. Le estensioni appena viste possono essere considerate le "principali". Ne esistono naturalmente molte altre[2] che, anche se non indispensabili, possono comunque essere molto utili. Fra queste, mi preme almeno ricordare:

  • la betatest.h, scritta da Marnie Parker, che facilita il betatesting del gioco dando la possibilità di commentare l'avventura mentre la si gioca, registrando il tutto in un file di testo;
  • la cyoa.h, scritta da Paolo Lucchesi, che permette di creare delle avventure testuali a scelte multiple (più conosciute da alcuni come libri-game);
  • la daemons.h, scritta da Andrew Plotkin e Roger Firth, che permette di creare dei daemon da poter eseguire in ordine di priorità;
  • l’easyout.h, scritta da Gabriele Brami, che verifica la presenza di proprietà direzionali in una stanza stampando poi la direzione e la destinazione;
  • la Io.h, scritta dal sottoscritto che, come avete già avuto modo di vedere dal capitolo 3, ci viene incontro nella gestione dell’input-output dei dati;
  • l’Italian3.h, una modifica (realizzata da Paolo Lucchesi) del file originale Italian.h contenuto in Infit che permette l'uso della narrativa in prima persona (oltre alla normale narrativa in seconda persona);
  • la math.h, scritta da Matt Albrecht, che mette a disposizione una serie di utilissime funzioni matematiche;
  • le mfs library, scritte da Giancarlo Niccolai per tutti coloro che sono interessati a creare dei giochi di ruolo in Inform;
  • la mininf.h, scritta da Ignazio Di Napoli e Marco Falcinelli, appositamente studiata per creare avventure giocabili facilmente su palmari, cellulari e console;
  • la moveclass.h, scritta da Neil James Brown e Alan Trewartha, che permette di spostare i Personaggi Non Giocatori lungo percorsi prestabiliti, calcolati oppure random;
  • la printslow.h, scritta da David Cornelson, che ci permette di modificare la velocità di stampa del testo;
  • la scanner.h, scritta da Alessandro Schillaci e Paolo Lucchesi, che elenca tutte le "istanze" di una classe presenti all'interno delle locazioni adiacenti alla locazione attuale senza spostarsi "fisicamente";
  • la tutor.h, scritta da Paolo Lucchesi per gestire i suggerimenti nel corso di un’avventura (per capire come utilizzarla date un’occhiata al listato di Villa Morgana);
  • l’untouchable.h, che permette di utilizzare un nuovo attributo denominato "untouchable" per caratterizzare quegli oggetti che pur essendo in vista non possono essere maneggiati dal giocatore perché irraggiungibili (ad esempio un uccello in cima un albero);
  • l’utility.h, scritta da L. Ross Raszewski, che contiene delle funzioni molto utili;
  • la wtellask.h, scritta da Paolo Lucchesi, utilissima per definire dei Personaggi Non Giocatori che possano rispondere in maniera più efficace e funzionale a dei comandi come "chiedi al personaggio del [argomento]" e "parla al personaggio del [argomento]".

Ricordatevi però che, anche se gratuite e libere di essere utilizzate da chiunque, queste estensioni sono state scritte da persone che hanno speso tempo e fatica; di conseguenza, tutti coloro che le usano hanno l’obbligo morale di ringraziare i rispettivi autori nei crediti dei loro giochi. Inoltre, se l’estensione utilizzata implica di per sé un modo d’utilizzo diverso da quello solito (come ad esempio la wtalk_it.h), occorre allora fornire negli aiuti del gioco la relativa documentazione.

Note[modifica]

  1. Per alcune di queste, il compilatore produce una serie di warning durante la fase di compilazione; non dovete tuttavia preoccuparvi perché l’eseguibile prodotto è comunque perfettamente funzionante.
  2. Quelle qui elencate sono tutte contenute all’interno del file estensioni_inform.zip. Le altre, invece, sono tutte scaricabili all’indirizzo http://www.inform-fiction.org/extensions/index.html; molte di queste però, prima di essere usate, devono essere necessariamente tradotte in italiano (su permesso, ovviamente, dei rispettivi autori).