Dall'idea al codice sorgente

Dopo aver giocato a qualche IF, molte persone decidono che vogliono provare a scrivere qualcosa di proprio. Il primo passo è quello di tradurre le vostre idee in un codice sorgente. Il codice sorgente è un insieme di istruzioni, scritte in un linguaggio per computer, che definiscono cose come quali oggetti ci sono in un gioco, che cosa fanno, come si comportano quando un giocatore cerca di manipolarli, e così via. Ci sono molti linguaggi per computer progettati specificatamente per scrivere IF, come TADS, Hugo e Alan. Ma il linguaggio per IF più usato in questo momento è Inform.

Inform è un linguaggio abbastanza ad alto livello, il che significa che è più vicino al modo in cui gli esseri umani processano le informazioni ("Se il personaggio del giocatore cerca di prendere il cracker al pappagallo, il pappagallo può morderlo") che a quello dei computer ("001001101110010"). Un frammento di codice Inform che agisca in questo modo potrebbe apparire come quello che segue:

   Object pappagallo "Polly il pappagallo"
      with name 'polly' 'pappagallo' 'uccello',
         before [;
            LetGo: if (noun == cracker) "Polly morde la tua mano mentre
               cerchi di sgraffignargli il cracker! ~Awwwk! Giù le mani!~
               dichiara.";
         ],
      has animate proper;

Anche se non conoscente Inform, potete dare un'occhiata a questo codice e farvi un'idea abbastanza precisa di quello che fa. È certamente più facile rendere le idee in questa forma che direttamente attraverso una stringa di numeri. (E se volete imparare Inform -- di cui avete bisogno prima di continuare con la sezione due -- un bel posto per cominciare è il sito web di Inform, mantenuto dal creatore del linguaggio, Graham Nelson.)

Alcune parti di un determinato gioco in Inform possono essere proprie di tale gioco -- non in tutti i giochi ci sono dei pappagalli, ad esempio. Ma una gran parte può ripetersi da gioco a gioco. Sicuramente la maggior parte dei giochi di IF ha bisogno di un parser, la parte del gioco che prende i comandi complessi come "METTI TUTTO TRANNE IL CRACKER NELLA GABBIA DEL PAPPAGALLO" e li scompone in una lista di cose da fare ("esegui il comando Inserisci sul pappagallo, il mangime ed il giornale, ma non sul cracker, con la gabbia come destinazione"). Scrivere un parser dall'inizio può essere estremamente difficile -- la maggior parte dei parser "fatti in casa" (ed una manciata di questi viene fuori ad ogni IF competition) sono terribili. Inoltre è una perdita di tempo: se una persona ne ha codificato uno veramente buono, e volete che il vostro parser faccia quasi le stesse cose, perché non potete semplicemente usare il codice di quella persona? Risposta: potete. Il parser, il sistema di gestione degli oggetti e quasi ogni elemento di interactive fiction che si ripete da gioco a gioco è presente nella libreria di Inform.

Una libreria è un gruppo di file, scritto nello stesso linguaggio con il quale state programmando, che potete includere nel vostro programma per eseguire certe funzioni senza aver bisogno di ricodificarle. In Inform questa cosa è facile come scrivere:

   Include "Parser";
   Include "VerbLib";
   Include "Grammar";

Codificate gli oggetti e le routine proprie del vostro gioco, aggiungete quelle tre linee al posto giusto ed il vostro programma è completo. D'altra parte nessun computer può eseguire direttamente il codice sorgente: il codice sorgente ha bisogno di essere tradotto in codice macchina.


Prossima sezione:
Dal codice sorgente al codice della virtual machine
O ritorna al sommario