Costruire un videogame

Transcript

Costruire un videogame
Costruire un videogame
www.gamemaker.nl
1) Il programma viene distribuito in un unico file autoinstallante (gmaker.exe): basta avviarlo e
l’installazione procede in automatico, generalmente senza intoppi. Non ne esistono versioni
per altri sistemi operativi che non siano Windows.
Dopo l’installazione del programma principale bisogna assolutamente procedere a scaricare
dal sito e ad installare, uno dopo l’altro, i 4 Resource Packs, che mettono a disposizione
centinaia di disegni, animazioni, sfondi, musiche, effetti sonori. Altre risorse grafiche e
sonore si possono trovare sui siti Web segnalati nella pagina del sito principale
appositamente dedicata alle risorse.
2) All’atto della prima installazione il programma chiede se si vuole attivare la modalità
avanzata, che è naturalmente del tutto inutile quando si muovono i primi passi in questo
ambiente. Limitarsi alla modalità normale, inoltre, permette di avere menù e toolbars più
ridotte e semplici da gestire. Sarà possibile avviare la modalità avanzata in qualsiasi
momento successivo, quando si giunga a sentirne l’esigenza.
All’avvio il programma chiede il codice di registrazione: chi intende utilizzare la versione
completamente gratuita deve semplicemente ignorare la richiesta.
3) Muoversi in un labirinto per raggiungere una meta finale - La stanza
Il primo gioco che ci si può proporre di realizzare è così semplice da non richiedere una vera e
propria sceneggiatura preventiva (che in casi più complessi è bene realizzare su carta insieme agli
allievi coinvolti): si tratta di costruire un labirinto entro il quale far muovere un personaggio in
direzione di una meta finale, che costituirà anche l’obiettivo del gioco.
La prima cosa da fare è creare una stanza (room). I giochi creati con Game Maker, infatti, possono
articolarsi in più livelli, ciascuno dei quali si svolge in una stanza. Le stanze possono essere in
numero qualsiasi, ma il nostro primo gioco ne conterrà una sola.
Per creare la nostra prima e unica stanza si può ricorrere a una delle seguenti tre procedure:
1. Selezionare la voce di menù Add Room
2.Cliccare sull’icona apposita della toolbar
:
3. Cliccare col tasto destro del mouse sulla cartella Rooms nell’albero delle cartelle a
1
sinistra della finestra principale:
4 Muoversi in un labirinto per raggiungere una meta finale - La stanza
Qualunque sia la procedura seguita la situazione che si viene a presentare sullo schermo è quella di
una stanza vuota e grigia come la seguente:
La finestra della stanza si può espandere a schermo intero ed anche allargare in valori assoluti
(espressi in pixels). Per adesso, tuttavia, non è opportuno preoccuparsi di altro che della griglia che
compare sovrapposta alla stanza stessa. Le sue dimensioni (SnapX e SnapY) controllano la
disposizione e i movimenti degli oggetti (cioè dei personaggi e degli elementi fissi del gioco). Per
poter utilizzare icone più grandi e agevolarne gli spostamenti è bene allargare la griglia standard da
16 x 16 a 32 x 32. È sufficiente digitare i nuovi valori al posto di quelli presenti e poi chiudere e
salvare con il consueto tasto di conferma (icona di spunta) in alto a sinistra della sottofinestra della
stanza. Si noti che la stanza viene automaticamente denominata room0.
A questo punto è opportuno salvare anche il gioco nel suo complesso, ricorrendo alla solita icona
del dischetto presente in tutte le applicazioni Windows. Il file creato presenta l’estensione *.gmd
(game maker data) e non è eseguibile al di fuori di Game Maker. Solo alla fine della costruzione del
gioco si potrà salvarne una versione indipendente in un file eseguibile.
5 Muoversi in un labirinto per raggiungere una meta finale - Lo sfondo
Per porre rimedio al grigiore della stanza, scegliamo adesso un bello sfondo (background) colorato.
Si può ricorrere, in perfetta analogia con il caso precedente della stanza, a tre diverse procedure.
Indico soltanto la più immediata, l’icona apposita della toolbar:
2
1. Avendo installato le risorse, si dispone di un vasto repertorio di sfondi tra cui scegliere. Si clicca
su Load Background e si cerca nella cartella dei Backgrounds (se non si sono modificate le
impostazioni originali, la si trova nella cartella di installazione del programma:
C:\Programmi\Game_Maker5). Trattandosi di un labirinto può andar bene un vortice come quello
disegnato in wirl1. Ma non è proibito caricarne diversi per provare quello che fa il migliore effetto
nella stanza. Possiamo anche cambiare il nome dall’anodino background0 a “vortice viola”. Si
conferma ogni volta con OK.
2. Per mettere lo sfondo nella stanza bisogna riaprirla (si clicca 2 volte su room0) e scegliere la
linguetta background; di qui si seleziona lo sfondo col mouse cliccando sull’icona accanto alla
casella con la scritta <no image>:
3. La figura scelta come sfondo si dispone a tessere impilate verticalmente e replicate
orizzontalmente: se ne può variare la disposizione e la spaziatura verticale e orizzontale (Tile). Se si
preferisce un’unica immagine ingrandita si clicca su Stretch. Ecco il risultato che si ottiene
allargano la finestra della stanza a schermo intero.
4. A questo punto si esce dalla stanza col tasto di conferma e si risalva il tutto.
6 Muoversi in un labirinto per raggiungere una meta finale - Gli oggetti
Bisogna ora costruire gli oggetti da inserire nella stanza. Ce ne servono 3: i mattoni per costruire i
muri che delimitano il labirinto; il protagonista che deve percorrerlo; la meta finale, ovvero l’uscita
del labirinto.
Gli oggetti di Game Maker si possono suddividere in tre categorie fondamentali: quelli che fanno da
sfondo, rimanendo immobili come elementi di arredo delle stanze; quelli che hanno un
comportamento autonomo, indipendente dalle azioni dell’utente; quelli infine il cui comportamento
interagisce con le azioni del giocatore. Per semplificare li chiameremo rispettivamente:
- oggetti fissi
- oggetti autonomi
- oggetti interattiviLa creazione di un oggetto, a sua volta, consiste in tre passi fondamentali:
- individuazione dell’icona che lo rappresenta visivamente (Sprite)
- programmazione del comportamento (se non è fisso)
3
- collocazione nella stanza (definitiva se fisso, iniziale altrimenti)
Cominciamo con i mattoni del labirinto, che sono naturalmente degli oggetti fissi. Basterà allora
sceglierne lo sprite e collocarli nella stanza (gli oggetti fissi non hanno comportamento). I diversi
mattoni non saranno altro che repliche identiche (Instances) di un unico oggetto (Object).
Game Maker offre, anche nel caso degli sprites, un vasto repertorio di risorse. Per caricare uno
sprite si hanno a disposizione i soliti tre metodi.
1. La toolbar è il più rapido:
2. Scegliamo un’icona di 32 x 32 pixels che si collochi esattamente nella griglia della nostra stanza.
La si trova in C:\Programmi\Game_Maker5\Sprites\various e si chiama Square:
3. Il primo passo di creazione dell’oggetto non è finito. Trovata l’icona l’oggetto va creato
effettivamente con il pulsante Add an Object:
4. Nella finestra delle proprietà del nuovo oggetto si seleziona lo sprite da associare all’oggetto
stesso. Il primo passo è compiuto:
7 Muoversi in un labirinto per raggiungere una meta finale - Gli oggetti
Si notino ancora tre cose. È meglio dare all’oggetto un nome significativo come “muro”. Bisogna
cliccare sulla proprietà Solid, per motivi che chiariremo in seguito (non vogliamo certo che il nostro
personaggio possa attraversare i muri del labirinto!). Il pulsante New, infine, consente di caricare un
nuovo sprite. Volendo, allora, è possibile invertire le due azioni che insieme costituiscono il primo
passo di creazione di un oggetto (scelta dello sprite e aggiunta effettiva dell’oggetto), cliccando
subito su Add an Object e scegliendo poi lo sprite col pulsante New.
Il secondo passo, trattandosi di un oggetto fisso, si salta.
Il terzo consiste nel collocare le diverse istanze dell’oggetto nella stanza. Si riapre la stanza e si
sceglie l’oggetto da collocare:
4
Col tasto sinistro del mouse si posa l’istanza, col destro la si cancella. Ecco il risultato (ovviamente
sono ammesse infinite varianti):
8 Muoversi in un labirinto per raggiungere una meta finale - La meta
Anche la meta è un oggetto fisso (e solido). Procediamo alla sua creazione allo stesso modo (nella
stessa cartella si trova lo sprite Goal che fa all’uopo) e collochiamola nella stanza:
Per il terzo oggetto, il protagonista del gioco, la storia è molto diversa. Come sprite scelgo il
simpatico orsacchiotto (Bear) presente ancora nella stessa cartella. Ma non mi posso limitare a
collocarlo nella stanza nella sua posizione iniziale.
Il protagonista deve rispondere ai comandi del giocatore: si tratta infatti di un oggetto interattivo di
cui devo, quindi, programmare il comportamento.
In Game Maker il comportamento degli oggetti viene programmato in modo completamente
visuale, trascinando nella finestra delle proprietà dell’oggetto delle icone che rappresentano:
- gli eventi intercettati dall’oggetto;
- le azioni con cui l’oggetto risponde all’evento intercettato.
Se l’oggetto è autonomo, gli eventi saranno generati dal sistema. Se è interattivo saranno provocati
dalle azioni dell’utente: tipicamente azioni compiute con la tastiera o con il mouse.
Il nostro orsacchiotto deve poter compiere le seguenti azioni:
- muoversi all’interno del labirinto;
- arrestarsi di fronte ai muri;
- terminare il gioco quando tocca la meta.
La prima azione va ancora scomposta in 5 elementi per programmare il gioco:
5
- muoversi verso destra quando il giocatore preme la freccia a destra;
- muoversi verso sinistra quando il giocatore preme la freccia a sinistra;
- idem verso l’alto;
- idem verso il basso;
- star fermo quando il giocatore non preme alcun tasto.
9 Muoversi in un labirinto per raggiungere una meta finale - Lo spostamento
Indico di seguito il dettaglio delle operazioni da compiere per lo spostamento a destra; le altre tre
direzioni si programmano in perfetta analogia.
1. Apro l’oggetto “orsacchiotto” con doppio clic.
2. Clicco sul pulsante Add Event e scelgo l’evento Keyboard. Dall’elenco di tasti che si apre scelgo
Right.
3. Scelto l’evento, devo associargli le azioni corrispondenti. Le azioni sono rappresentate da icone
raggruppate per categoria sulla sinistra della finestra delle proprietà dell’oggetto. Per far muovere
un oggetto baste scegliere la prima icona in alto a sinistra (frecce rosse a raggiera) e trascinarla
nell’area delle azioni. Quando si rilascia il pulsante del mouse compare la seguente finestra di
dialogo:
4. A questo punto si clicca sulla freccia a destra e si indica la velocità. 8 non è una scelta obbligata;
l’importante è che l’oggetto si muova con una velocità che costituisca un sottomultiplo
dell’ampiezza della griglia (32) in modo che spostandosi l’oggetto non si sfasi rispetto alla griglia
medesima, il che renderebbe più complicato per il giocatore manovrare l’oggetto.
6
10 Muoversi in un labirinto per raggiungere una meta finale - Test
Sistemate anche le altre tre direzioni, si può salvare il gioco e procedere a un primo test. Basta
cliccare sulla freccia verde della toolbar (Run Game) a destra dell’icona del dischetto.
Cosa succede all’orsetto quando premo una freccia direzionale? E quando sbatte in un muro?
Sarà chiaro adesso perché è necessario programmare anche l’evento Keyboard – No key: quando
l’utente non preme alcun tasto bisogna che l’orsetto si arresti (nella finestra di dialogo dell’azione di
movimento si sceglie il pulsante centrale in mezzo alle frecce e si lascia la velocità a 0), altrimenti
finisce chissà dove.
Per evitare che trapassi i muri bisogna programmare un evento Collision, che funziona solo con gli
oggetti solidi (ecco spiegata la necessità di questa proprietà). Cliccando su Collision il sistema mi
chiede con quale oggetto deve collidere il mio orsacchiotto: scelgo il muro e come azione associata
metto di nuovo il movimento “fermo” (si perdoni l’ossimoro), come per Keyboard - No key.
Rifacendo il test, noterete a questo punto che l’orsetto rimane all’interno del labirinto (se non ci
sono passaggi al contorno), non passa più attraverso i muri, non esce più dallo schermo e si arresta
non appena smettete di premere le frecce.
Per finire il nostro primo gioco non rimane altro da fare che stabilire che cosa succede quando
l’orsacchiotto raggiunge la meta. Anche in questo caso l’evento è una collisione. L’azione
corrispondente è la fine del gioco (End the game) che si trova nella categoria Main2. Volendo, la
fine del gioco si può far precedere da un messaggio di congratulazioni (Display a message: nella
stessa categoria, icona del fumetto).
a. I movimenti dell’orsacchiotto sono facili da controllare finché si procede diritti: quando bisogna
infilarsi in un passaggio stretto il controllo è più problematico. Per ottenere maggiore facilità di
manovra si possono sostituire gli eventi Keyboard con i corrispondenti eventi KeyRelease, che
eliminano l’effetto di autoripetizione della tastiera: il personaggio fa un solo passo quando si
abbandona la pressione del tasto. Fissando poi la velocità di spostamento a 32 si ottiene che per
ogni pressione/rilascio delle frecce l’orsetto si sposti esattamente di una cella. L’evento No key
diventa superfluo.
b. Un secondo livello del gioco potrebbe contenere un labirinto più complesso, magari con dei
bonus da raccogliere. Bisogna creare una seconda stanza e collegarla alla prima: invece di far finire
il gioco quando viene raggiunta la meta, si fa passare il giocatore al livello successivo (azione Go to
next room nella categoria Main1). I bonus possono essere diamanti, denaro o altro, da raccogliere
durante il percorso. Basta disseminare il labirinto di oggetti solidi e programmare l’orsetto per la
collisione con loro. Servono due azioni: una fa sparire il bonus (azione Destroy the instance in
Main1; attenzione: selezionate Other, non Self, se no sparisce l’orsetto); la seconda assegna un
punteggio (azione Set the score nella categoria Score; attenzione di nuovo: spuntare Relative,
7
altrimenti il punteggio non viene incrementato di volta in volta, ma riportato sempre al valore
iniziale indicato).
c. Si può anche condizionare il passaggio al secondo livello al raggiungimento di un punteggio
minimo (azione If score has a value nella categoria Score) o alla raccolta di tutti i bonus (azione If
the number of instances is a value nella categoria Control).
d. In un terzo livello si collocheranno dei nemici in agguato, che viaggiano su e giù in una zona del
labirinto. Si tratta di un tipo di oggetti che abbiamo definito autonomi, perché esibiscono un
comportamento che non dipende dalle azioni dell’utente. Per far sì che un oggetto di muova da solo
non appena si entra in un certo livello, si ricorre all’evento Create, cui si associa un movimento in
un’opportuna direzione. Basterà poi fargli invertire la direzione (Reverse horizontal direction o
Reverse vertical direction nella categoria Move1) o farlo rimbalzare (Bounce against objects nella
stessa categoria di azioni) in corrispondenza a un evento di collisione.
e. Se si devono prendere decise contromisure contro i nemici bisognerà rassegnarsi a dotare di armi
il nostro pacifico orsacchiotto. Si crea un oggetto proiettile (può andar bene anche un panino…)
dotato di movimento autonomo come i nemici che deve affrontare e lo si associa a un nuovo evento
di tastiera dell’orsacchiotto. L’azione corrispondente sarà un’azione Create in Main1, che servirà
proprio a creare un’istanza dell’oggetto proiettile. Attenzione: l’azione Create non va confusa con
l’omonimo evento da usare per gli oggetti autonomi come il proiettile stesso. Ma se siete arrivati a
questo punto potete benissimo proseguire da soli, magari scaricando il tutoriale Maze Games dal
sito di Game Maker.
Concluso il gioco, la cosa migliore è naturalmente farlo subito provare a qualche utente esterno al
gruppo che l’ha realizzato, annotando con cura, oltre agli eventuali malfunzionamenti, i
suggerimenti:
•
•
•
•
•
per renderlo più facile da utilizzare;
per renderlo più divertente;
su come aggiungere eventualmente nuovi oggetti e livelli;
su come idearne nuove varianti e sviluppi;
su come inventare nuovi giochi.
Da, “Progettazione e realizzazione di videogiochi ad elevata accessibilità” Luciano Rosso
8