Capitolo 17: *** Hai vinto *** ============================== I might just as well have saved the labor and sweat I had put into trying to make my reports harmless. They didn't fool the Old Man. He gave me merry hell. The Continental Op in Dashiel Hammett's Red Harvest. [Potevo anche aver salvato il lavoro ed il sudore che avevo impiegato nel tentare di rendere i miei rapporti inoffensivi. Non avevano ingannato il Vecchio Uomo. Mi ha provocato un sacco di guai.] Solo qualche parola finale per chiudere il cerchio. Quello che resta sono le appendici, con un sommario conciso ma completo del linguaggio Inform e della sua libreria IF, ed il codice sorgente e la trascrizione dell'esecuzione dei giochi che abbiamo sviluppato insieme. Il nostro "lavoro e sudore" era orientato a rendere la vostra introduzione ad Inform il più indolore possibile, ma forse non vi inganneremo a lungo. Sebbene siamo convinti di aver coperto le funzionalità base del sistema e di avervi dato una base abbastanza solida per affrontare le insidie della progettazione di avventure testuali, esistono ancora molte tecniche da padroneggiare ed ulteriori aspetti da apprendere, comprese le funzionalità medie ed avanzate che non abbiamo neanche accennato. Prima che ci provochiate un sacco di guai, comunque, vi possiamo assicurare che le conoscenze rimanenti, che potrebbero sembrare oscure ed enigmatiche, sono costruite, fondamentalmente, intorno agli stessi principi che avete già visto. Dovreste essere in grado di sfogliare dell'altra documentazione e delle altre risorse senza trovare che siano piene di strani geroglifici; al contrario sarete in grado di focalizzare la vostra attenzione su quelle parti che non conoscete (che ora, speriamo, saranno meno numerose). Inform, come altri sistemi di scrittura di IF potenti e flessibili, è in grado di far fronte alle necessità degli autori più esigenti: "Non mi piace il modo in cui PRENDI TUTTO è gestito: lo voglio cambiare!" E potete farlo. "Mi piacerebbe che l'elenco degli oggetti venisse organizzato in un modo migliore." Fatelo. "Voglio avere una migliore vita sociale grazie ad Inform." Nessun problema, ma dovete essere uno scrittore maledettamente affascinante. Oh, vabbè. Inform è stato progettato per farvi fare le cose semplici in maniera intuitiva e veloce. Lasciato così com'è vi offre un ampio spettro di funzionalità predefinite, ed abbiamo anche visto che è facile modificare alcuni dei comportamenti standard. L'obiettivo è quello che raggiungiate un tale livello di familiarità con il sistema in modo che possiate concentrarvi sulla progettazione del vostro gioco. Con "livello di familiarità" non intendiamo che voi conosciate tutti i segreti della libreria; queste persone esistono, ma sono poche. Tuttavia, una volta che siete diventati ragionevolmente esperti nella scrittura del codice, con un livello di conoscenza simile a quello fornito da questa guida, un'occhiata alla sezione appropriata dell'Inform Designer's Manual dovrebbe aiutarvi quando siete in difficoltà. È anche vero che ci sono problemi e problemi, dalla stupidaggine da pacca sulla fronte, all'incubo notturno da far digrignare i denti. Vi consigliamo di posticipare gli incubi. Potrebbe essere che un giorno scopriate che le loro zanne non sono così affilate. Ci sono molti argomenti interessanti che potreste affrontare in seguito. Eccone alcuni: * Punti: abbiamo visto due modi di fare punti in un gioco, ma potreste decidere che il punteggio non abbia significato nel vostro gioco. E c'è un terzo modo incorporato nel sistema per definire quali sono i "compiti" che meritano una ricompensa, dall'"indossare una ridicola cuffia alla festa dell'Ambasciatore" al "convincere la poco amichevole scimmia a suonare il pianoforte". Queste tecniche richiedono un po' di conoscenza di... * Array (matrici): sono liste numerate di variabili. Invece di avere un'unica variabile con cui giocare, potete averne un insieme, indicizzato da un numero. * Liste ed inventari: ci sono molte funzioni che vi consentono di modificare il modo in cui gli oggetti vengono raggruppati e presentati al giocatore durante l'esecuzione del programma. * Veicoli: auto, ascensori, mongolfiere, tappeti magici, navi spaziali - o qualunque altro dispositivo consenta al giocatore di muoversi. * La creazione di verbi e del vocabolario: sebbene abbiamo già affrontato questo concetto, potete regolare il parser per fargli fare qualunque tipo di cose speciali (da pronunce magiche che scatenino incantesimi impossibili, ad azioni speciali che riguardino più oggetti insieme). * Cambiare il giocatore: chi l'ha detto che il personaggio del giocatore debba essere un noioso essere umano? Trasformate l'insospettabile mortale in un proxy della realtà virtuale, un animale fantastico, un fantasma immateriale, un potente telepate od un vampiro telecinetico. Non sapete quale scegliere? Allora il vostro gioco può avere più personaggi principali e potete scegliere con chi giocare. * Lo scorrere del tempo, macchine a tempo ed eventi: impostate un timer che segni il tempo, sconosciuto al giocatore ed attaccatelo ad una bomba; una porta che si apre solo una volta ogni dieci turni; un drago di poche parole e poca pazienza; una pattuglia di soldati; un orologio che, inquietante, annunci l'arrivo del tramonto e del destino. Cambiate le "Azioni" sulla riga di stato in minuti, od in giorni. * Direzioni che cambiano: a nord c'è il nord? Non necessariamente. Cambiate gli oggetti di direzione del gioco in "avanti", "indietro" e così via. Siete su una nave? "Prua" e "poppa", "babordo" e "dritta" possono fare per voi. Entrate in uno specchio ed avrete la mappa e tutte le direzioni riflesse. * PNG complessi: quanto imprevedibile è il comportamento di quell'impertinente del maggiordomo? Può parlare, muoversi, rubarvi la roba, avvelenare il vostro thè? Reagisce in maniera coerente alle azioni del giocatore? Tiene una sua agenda? Sebbene la creazione di un PNG è un bel nodo da sciogliere, è una cosa che vale la pena padroneggiare. PNG "vivi" aumentano tantissimo la sensazione di realtà del vostro gioco. * Funzionalità tecniche: cambiate la riga di stato, od il prompt dei comandi. Pulite lo schermo, o modificatene il colore; centrate il testo sullo schermo, e cambiate il colore anche di quello. Aspettate che il giocatore prema un tasto e quindi eseguite una qualche azione. Visualizzate un messagio un carattere alla volta. Aggiungete una piccola bussola che mostri le uscite disponibili. L'interactive fiction unisce la creatività e le capacità narrative con l'abilità nello scrivere codice. Di solito i giochi che colpiscono di più sono quelli che hanno una buona quantità di entrambi. Se pensate di essere carenti in una di queste qualità potete prendere in considerazione l'idea di un lavoro di gruppo: ci sono liste di collaborazione su Internet (le IF collaboration lists) dove le persone si offrono di dare una mano con idee e programmazione (e alcuni ottimi giochi sono usciti dagli sforzi congiunti una collaborazione ben gestita). Soprattutto non dimenticate l'importanza del beta-testing, che può produrre il ritorno necessario a farvi trasformare il vostro decente tentativo in un capolavoro. Non c'è niente di meno piacevole per un giocatore che trovare un gioco che non è stato provato bene. Far fuori i bug è vostra responsabilità; assicuratevi di fare pulizia al meglio che potete, ma non rilasciate _mai_ un gioco che non è stato usato da qualcun altro. E ricordate che i beta-tester sono (quasi certamente) giocatori con esperienza, quindi i loro suggerimenti (al di là della ricerca dei bug) sono dei consigli preziosissimi di cui dovete tenere conto. Incoraggiateli a scrivere commenti sia riguardo la programmazione che il disegno del gioco. Adesso: dove andare, che fare? Consentiteci di insistere ancora una volta sull'importanza di leggere l'Inform Designer's Manual, un libro eccellente sotto tutti gli aspetti. E visto che ci siete, scrivete dei piccoli giochi, esercizi di allenamento; non vi consigliamo di cominciare con una saga epica come vostro primo scenario, ma se non vi va bene niente altro - l'approccio Penso In Grande - non saremo noi a fermarvi. È una buona idea giocare con i lavori di altre persone, perché in questo modo conoscerete il livello medio che i giocatori si aspettano; controllate i newsgroup per avere suggerimenti su dei buoni titoli da provare. Intorno a Settembre assicuratevi di tenere un occhio aperto sull'Interactive Fiction Competition (http://www.ifcomp.org), una vetrina annuale per giochi (più o meno) corti. E, poi, chi lo sa? Magari l'anno prossimo saremo tutti colpiti dal vostro lavoro. Sonja e Roger.