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
Documenti analoghi
Progettazione e realizzazione di videogiochi con Game Maker Di
(http://forums.gamemaker.nl/ ).