M.A.C. : Mystery Adventure Creator
Guida per iniziare
Autore: Paolo Lucchesi
email: plucchesi@tin.it
Personal home page:
http://www.paololucchesi.it
M.A.C. home page:
http://mac.paololucchesi.it
0: Introduzione
Questa breve guida nasce dall'esigenza di fornire un punto di partenza a tutti coloro che vogliono imparare ad usare M.A.C. come programma per la realizzazione di avventure testuali. Infatti ho notato troppo spesso che, in contrasto con la sua vantata semplicità, M.A.C. ha una sintassi di linguaggio talvolta molto criptica e sfrutta delle convenzioni che non sono sempre di immediata comprensione. Per questo motivo ho deciso di realizzare queste brevi note che guidano passo dopo passo il lettore durante tutta la realizzazione di una piccola avventura testuale che sfrutti il più possibile le caratteristiche di M.A.C., sperando che questo sia di aiuto a tutti.
In questo modo vedremo come usare M.A.C., come creare stanze e oggetti, come gestire le azioni più complesse, come realizzare immagini grafiche e finalmente confezionare un prodotto completo e distribuibile.
Ovviamente questa guida non vuole spiegare tutte le caratteristiche di M.A.C., né vuole sostituire completamente il manuale. Vuole essere solo una semplice e chiara guida per iniziare, per imparare ad usare M.A.C. e a realizzare avventure.
1: Per iniziare
Anzitutto scarichiamo l'archivio .zip che contiene M.A.C. e tutti i file correlati. L'archivio si chiama mac.zip e lo possiamo trovare all'indirizzo http://space.tin.it/giochi/ipsll/mac/mac.zip. Una volta scaricato, apriamo questo file con winzip (o con qualunque altro programma per decomprimere i file .zip), e estraiamo tutti i file dell'archivio in una cartella (altrimenti detta directory) di nostra scelta. A titolo di esempio supponiamo che questa cartella sia c:\advent\mac (ovvero la cartella mac, creata all'interno della cartella advent, a sua volta creata nell unità disco c:).
A questo punto possiamo iniziare a giocare un po' con M.A.C. e con l'avventura di prova (una piccola avventura horror semplice semplice), tanto per prenderci un po' la mano. Ma può nascere subito il primo piccolissimo ostacolo: M.A.C. nasce fondamentalmente come programma dos, e conserva ancora questa impostazione (anche perché io la ritengo comodissima). Quindi il modo più semplice per far partire M.A.C. é quello di usare il prompt di ms-dos (o prompt dei comandi); Basta cercarlo nel menù avvio di Windows, dovrebbe trovarsi sotto "programmi". Lanciamolo; non fa differenza se appare a schermo intero o in finestra (ma posso passare dall'una all'altra modalità premendo ALT-ENTER). A questo punto spostiamoci nella directory (cartella) dove é installato M.A.C. dando, ad esempio, i seguenti comandi:
c:\
cd c:\advent\mac
mactxt prova
mac prova
winmac prova
macstd prova
mactxt test
mac m9
2: Una prima avventura
A questo punto, ora che abbiamo visto come giocare le avventure di prova, vorremmo iniziare a creare qualcosa. Per questo abbiamo bisogno di un editor, un programma che permette di scrivere file di testo. Al limite potrebbe anche andar bene il blocco note (notepad) di Windows, ma le sue funzionalità sono veramente ridotte al minimo. Su internet si possono trovare ottimi editor con licenza freeware o shareware; io posso consigliare di scegliere Crimson Editor (http://www.crimsoneditor.com/ ). Assolutamente sono da evitare programmi di word processing come Word e WordPad.
Scarichiamo, installiamo e lanciamo il nostro editor. Possiamo usare la combinazione di tasti ALT-TAB (tenete premuto ALT e premete TAB) per passare dall'editor al prompt di ms-dos e viceversa. Usiamo, ad esempio, l'editor per aprire il file prova.adv, ovviamente nella cartella c:\advent\mac e iniziamo a renderci conto di come viene fatta un'avventura per M.A.C., di come si articola il programma.
Per quanto l'avventura di prova sia interessante, noi vogliamo creare qualcosa di nostro. Quindi chiudiamo il file prova.adv senza salvare e apriamo un file vuoto. Iniziamo scrivendo le seguenti righe:
@ital.adh
[System]
StartLocation=1
CharSet=w
[Locations]
#1,Camera,,0,0,2,3,0
Sei in una vasta camera da letto arredata in modo
quasi spartano. Verso sud vedi un ripostiglio, mentre ad
est vedi una cucina.
Con questo la nostra prima locazione é finita, ma noi ne vogliamo altre; aggiungiamo di seguito:
#2,Ripostiglio,,1,1,0,0,0
Sei in un piccolo ripostiglio polveroso. L'unica porta
conduce verso nord, alla camera.
#3,Cucina,,0,0,0,0,1
Sei in una cucina arredata in modo semplice ma
estremamente funzionale. Verso ovest c'é la camera.
A questo punto salviamo quello che abbiamo fatto con il nome prima.adv, ovviamente nella solita cartella c:\advent\mac. Ritorniamo al prompt di ms-dos e diamo il comando
mactxt prima
3: Aggiungiamo qualcosa
L'avventura che abbiamo provato é un po' scarna. Si può solo girare fra tre stanze (di cui una buia), e non si può fare niente altro. Usciamo dal gioco, ritorniamo all'editor e riapriamo il nostro file. A questo punto aggiungiamo qualche oggetto:
[Objects]
#1,un libro,1,1
Una copia della Divina Commedia.
#2,un letto,1,0
Un grosso letto sfatto.
#3,una penna,-1,1
Una penna stilografica. Purtroppo l'inchiostro é finito.
#4,una torcia spenta,3,1
Una torcia elettrica, spenta.
#5,una torcia accesa,0,5,4
Una torcia elettrica, accesa.
#6,un pulsante,2,0
Un grosso pulsante rosso sulla parete.
[Nouns]
#1,LIBRO,VOLUME,DIVINA,COMMEDIA
#2,LETTO
#3,PENNA,STILO,STILOGRAFICA
#4,TORCIA,LAMPADA
#6,PULSANTE,TASTO
Dopo aver definito gli oggetti, definiamo i nomi associati a questi ultimi. Questo serve a far sì che, se giocando l'avventura viene dato il comando PRENDI LA PENNA, il programma capisca che ci si stà riferendo all'oggetto 3.
Quindi dopo la riga [Nouns] troviamo una lista di righe conenenti i vari sinonimi di ogni nome.
Notiamo che manca il nome n. 5; questo perché il nome n. 4 vale sia per l'oggetto n. 4 che per l'oggetto n. 5.
A questo punto salviamo di nuovo il nostro file e rilanciamo l'avventura per osservare i nostri progressi
4: Qualcosa di più interattivo
A questo punto dobbiamo rendere un po' più interessante la nostra avventura. Per questo doveremo definirci i nostri verbi, i nostri messaggi, le nostre azioni e i nostri eventi. Andiamo con ordine.
Le definizioni standard definiscono già alcuni verbi (PRENDI, POSA, INDOSSA, etc.), ma a noi ne serve qualcun altro e quindi dobbiamo definirceli da soli. Apriamo il nostro file e aggiungiamo in fondo:
[Verbs]
#31,SPOSTA,MUOVI,TIRA
#32,PREMI,PIGIA,SPINGI
#33,ACCENDI
#34,SPENGI,SPEGNI
[Messages]
#1,Sotto il letto non trovi nulla di interessante.
#2,Al buio? Non é facile...
#3,Come premi il pulsante senti il rumore.
di un macchinario che si mette in moto.
#4,Il rumore si fa sempre più forte.
#5,Il rumore del macchinario cessa di colpo.
#6,Complimenti, hai vinto.
#7,All'improvviso tutto intorno a te esplode. Muori sepolto dalle macerie.
[Vars]
machine,timer
[Actions]
if verb SPOSTA noun LETTO present 2
then message 1
if verb ACCENDI noun TORCIA carried 4
then swap 4 5 sysmsg 10
if verb SPENGI noun TORCIA carried 5
then swap 5 4 sysmsg 10
Per ora basta così. Salviamo e rilanciamo il programma. Ora possiamo esplorare lo sgabuzzino.
5: Un po' più complicato
Per complicarci un po' la vita cerchiamo di ricreare questa situazione: se premo il pulsante nello sgabuzzino si accende un macchinario nascosto. Se ripremo il pulsante fermo tutto e, se il macchinario é andato per almeno 4 turni, l'avventura si conclude nel migliore dei modi. Altrimenti se lascio il macchinario acceso per 7 turni esplode tutto. Inoltre dopo che il macchinario é acceso da 3 o 5 turni viene mostrato un messaggio di avviso, e per di più non posso premere il pulsante al buio.
Vediamo come fare. Aggiungiamo in fondo al nostro file, sempre nella sezione [Actions]:
if verb PREMI noun PULSANTE present 6 dark 0
then message 2
if verb PREMI noun PULSANTE present 6 eq machine 0
then set timer 0 set machine 1 message 3
if verb PREMI noun PULSANTE present 6 gt machine 0 gt timer 3
then message 5 message 6 quit
if verb PREMI noun PULSANTE present 6 gt machine 0
then message 5 set machine 0
A questo punto dobbiamo gestire opportunamente il timer, e questo viene fatto usando la gestione degli eventi. Aggiungiamo:
[Events]
if gt machine 0
then add timer 1
if gt machine 0 eq timer 3
or gt machine 0 eq timer 5
then message 4
if gt machine 0 eq timer 7
then message 7 quit
Finalmente la nostra piccola e insensata avventura ha una forma definitiva. Salviamo il file e proviamola.
5: Aggiungiamo la grafica
A questo punto vogliamo aggiungere le immagini grafiche alla nostra piccola avventura. Qualsiasi programma di grafica o per fotoritocco abbastanza potente può andare bene, l'importante é che possa salvare in formato .png (portable network graphic); quindi Paint di windows non va bene: non ha strumenti sufficienti per fare alcunché e salva solo in formato .bmp.
Creiamo anzitutto una cartella all'interno di c:\advent\mac, chiamandola (ad esempio) primaimg. In questa cartella salveremo le nostre immagini. Poi realizziamo le immagini che rappresentano la camera, la cucina, il ripostiglio e una stanza buia. Queste immagini dovranno avere una dimensione di 384 x 256 pixel, e possono essere in RGB (16 milioni di colori), con tavolozza fino a 256 colori (254, per essere precisi), in bianco e nero, o in scala di grigi. Salviamo queste immagini (ovviamente nella cartella c:\advent\mac\primaimg) in formato .png, chiamandole camera.png, cucina.pgn, ripost.png e buio.png (i primi tre nomi sono solo esempi, mentre buio.png é obbligatorio, essendo nelle definizioni standard).
A questo punto riapriamo il file della nostra avventura e apportiamo qualche modifica. Anzitutto andiamo all'inizio del file, e nella sezione [System] aggiungiamo la riga:
ImagePath=primaimg
#1,Camera,camera.png,0,0,2,3,0
#2,Ripostiglio,ripost.png,1,1,0,0,0
#3,Cucina,cucina.png,0,0,0,0,1
Salviamo e proviamo il tutto. Ora abbiamo anche la grafica quindi diamo il comando
mac prima
winmac prima
6: Come distribuire un'avventura
Se vogliamo distribuire un'avventura, non vogliamo che chiunque possa mettere le mani dentro il nostro file prima.adv e "rubare" la soluzione di tutti i nostri enigmi. Però se torniamo al nostro prompt di ms-dos e diamo questo comando:
mac -c prima
mac -b prima
Inoltre noi non vogliamo che il giocatore debba dare comandi complessi per giocare con la nostra avventura. Quindi facciamo questa operazione: facciamo una copia del programma mac.exe (o winmac.exe per una versione windows, o mactxt.exe per un'avventura solo testo) e chiamiamo questa copia con lo stesso nome del nostro file, mantenendo però l'estensione .exe. Nel nostro caso, ad esempio, la chiameremo prima.exe. Possiamo fare questa operazione tramite windows, oppure più velocemente tramite prompt di ms-dos, dando il comando:
copy mac.exe prima.exe
prima
A questo punto possiamo distribuire la nostra avventura. Prepariamo un file prima.zip (usando ad esempio WinZip) contenente prima.exe, prima.mac e la cartella che contiene le nostre immagini in formato .png, e il gioco é fatto.
7: Conclusioni
Queste brevi note volevano solo aiutare il principiante ad iniziare. Molti argomenti non sono stati nemmeno nominati, come ad esempio i blocchi o i cicli while, e la maggior parte delle condizioni e dei comandi non sono stati spiegati. Però ritengo che, una volta che si é presa una certa familiarità con M.A.C., la consultazione del manuale (o del file riassuntivo sintassi.txt) diventi agevole e preziosa.
Non mi resta che augurare a tutti gli sviluppatori di avventure che hanno scelto il piccolo, umile M.A.C. buon lavoro e buon divertimento.