giovedì 20 gennaio 2011

Fare un videogioco: Platform

I giochi platform sono probabilmente il tipo più conosciuto in assoluto. Questo è dovuto principalmente alla fama di Mario, il personaggio che ha creato il genere ai tempi di Donkey Kong (1981) e che ogni anno sforna il miglior platform game di sempre (l'ultimo è il geniale Super Mario Galaxy 2 del 2010). Questo suo enorme successo ha portato alla creazione di molti altri giochi, più o meno meritevoli.
Genere

Platform in inglese significa "Piattaforma", e non c'è termine più adatto per definire questo tipo di giochi, dato che consistono effettivamente nel saltare tra diverse piattaforme. Benchè questo fatto è presente in molti videogiochi, bisogna distinguere i "platform puri" con "giochi con elementi platform". I platform puri sono quei giochi, come il già citato Super Mario, che centrano l'azione sul fare salti precisi per superare ostacoli. I livelli diventano complessi di piattaforme disposte in modo da rendere sempre più difficile l'avanzata dell'eroe. A volte può capitare che il protagonista prenda sei potenziamenti (come per il classico fungo che fa ingrandire Mario) che lo aiutano nell'avanzamento nei vari livelli. Altre ancora vi sono dei nemici che rappresentano ulteriori ostacoli. Nonostante quello che si pensa, la trama non è affatto fondamentale in questo tipo di giochi, anzi, non è nemmeno necessaria! I giochi con elementi platform invece sono spesso giochi d'azione, con alcune sezioni o parti che richiedono salti precisi

Grafica

Il platform è nato in tempi remoti e perciò trova la sua massima espressione nella grafica 2D a scorrimento laterale. Per grafica 2D non intendo necessariamente la grafica tramite sprites, ma anche grafica poligonale 3D impostata con lo scorrimento laterale.


Ecco il vecchio Super Mario Bros (1985), con grafica ad 8 bit. Se si vuole passare a qualcosa di più recente...


possiamo prendere Rayman (1995), uno dei giochi che personalmente ha una delle più belle grafiche 2D. Se invece consideriamo questi ultimi tempi e la grafica poligonale, sempre però rimanendo in ambito dello scorrimento bidimensionale verso destra...



ci troviamo davanti allo splendore di New Super Mario Bros Wii. Tuttavia, l'avvento della grafica poligonale ha permesso di trasportare le meccaniche platform in mondo completamente tridimensionale. Il primissimo esponente è Alpha Waves (1990)

Gioco rivoluzionario in tutti i sensi: è il primissimo gioco in vera grafica poligonale mai creato! Lo scopo del gioco è controllare un triangolo rimbalzante e passare attraverso stanze labirintiche saltando su delle piattaforme. Il vero punto di non ritorno si avrà però con Super Mario 64 (1996)



Fare un disastro tentando di trasferire le meccaniche ben consolidate dei giochi di Mario era molto facile, ma invece il risultato fu uno dei più grandi capolavori videoludici di sempre. Da quel momento in poi, Mario 64 fu il modello di riferimento, al quale si rifecero parecchi giochi, di qualità altalenante.
Gameplay

Le meccaniche di gameplay dei giochi platform sono spesso molto semplici, soprattutto nei platform puri. Si prenda per esempio Super Mario: con un tasto si salta, con un altro si corre (tenendolo premuto) o si lanciano palle di fuoco (nelle versioni più recenti si afferrano anche gli oggetti). La gravità influenza tutti gli oggetti presenti e sono presenti anche le forze d'attrito sul terreno. In pratica è una simulazione basilare della fisica del nostro mondo. Il concetto non cambia se si trasporta il tutto in un contesto tridimensionale, dove l'unica cosa diversa è il movimento non più costretto in due direzioni. Queste sono ovviamente le basi, tutto quello che c'è intorno (power up, nemici...) non è fondamentale. Infatti alcuni platform sono solo basati su salti precisi per evitare ostacoli: in tal caso calibrare i salti e sfruttare tutte le capacità del personaggio (spesso capace di saltare sui muri o fare particolari acrobazie) è l'unico modo per superare i livelli. Se si vuole invece fare qualcosa di più classico, basta aggiungere diversi nemici (uno che cammina, uno che vola, uno che rimbalza...) e diversi power up (il fungo ed il fiore di Super Mario, per intenderci) che permettono di variare un pò l'azione. Se poi si aggiungono ancora altre cose, si può far diventare il gioco come uno di un altro genere ma con elementi platform, come avevo già spiegato.
Farne uno

Fare un platform non è troppo difficile. Una volta sviluppato l'engine di base, con la fisica correttamente implementata, il gioco è già praticamente fatto. Usando un editor, in particolare Game Maker, potrebbe risultare ancora più facile. Personalmente parlando, quando usavo molto il succitato programma, usando un ottimo tutorial per platform, ne sviluppavo quasi uno a settimana! Ovviamente erano più aborti di giochi che altro, ma questo è comunque indice di come sia facile crearne. Il lavoro di progettazione è comunque fondamentale, come per tutti i giochi, ed il fatto che non riuscissi a fare un gioco intero su cento che ne iniziai ne è la riprova. Inoltre il fattore fantasia è come al solito importante: l'ennesimo clone di Super Mario non è sicuramente quello di cui abbiamo bisogno.

Spero che questa guida vi sia stata utile! Scusatemi per il fatto che aggiorno poco il blog, ma ho davvero poco tempo per gestirlo. Come al solito i commenti sono graditi!

13 commenti:

  1. Ciao.. complimenti per il sito.. spieghi davvero cose molto interessanti per me che vorrei fare questo mestiere :)
    Io sto agli inizi però (dopo aver imparato c e java ora inizio a dedicarmi al c++) e vorrei avere un paio di consigli da una persona più esperta di me... ho qualche dubbio su come si implementa la fisica e l'IA in un gioco.. non è che potresti darmi qualche dritta? se ti fa piacere fare due chiacchiere con me questo è il mio indirizzo mail: allanon.bombadil@gmail.com

    RispondiElimina
  2. Ciao Mauro, mi scuso per la mancata risposta ma purtroppo non ho mai molto tempo per questo blog. In ogni caso, non c'è un modo preciso di implementare l'IA. Scriverò qualcosa al riguardo magari sul prossimo post. Per la fisica, in realtà dipende molto da cosa devi fare. Come ben sai, sono le coordinate x ed y che posizionano un immagine sullo schermo. Le variazioni delle stesse permettono l'illusione del movimento, e più queste variazioni sono grandi, più velocemente si muoverà l'oggetto. Quindi a quel punto basta calcolare con le apposite formule(quelle che si trovano su qualunque libro di fisica delle superiori) le variazioni, in modo da dare un movimento realistico. Magari sono stato poco chiaro, farò nel caso degli esempi.

    RispondiElimina
  3. ciao e grazie, io ho game maker ma ad esempio quando faccio saltare il personaggio rimane su e non si muove più.
    Non è che mi potresti dare una mano????
    Comunque ho anch'io un acccount blogger e se vi volete iscrivere il blog è www.sanctumxxblog.blogspot.com

    RispondiElimina
  4. Ciao Sanctum. Purtroppo non uso game maker da molto tempo, e quindi non mi ricordo bene. C'è un comando che setta la gravità, e la devi porre in direzione 270 (cioè verso il basso) e come forza un numero maggiore di zero (più è alto il numero, maggiore sarà l'attrazione). Tuttavia questo non basta... Se mastichi l'inglese, c'è l'ottimo tutorial step-by-step di Mark Overmars che usavo io ai tempi, e quello spiega tutto molto bene, ecco il link Qua

    RispondiElimina
  5. tranquillo, game maker l'ho eliminato. Mi sapresti indicare un altro programma? Grazie

    RispondiElimina
  6. Game Maker è il migliore per chi vuole imparare pee me... Personalmente avresti dovuto tenerlo e farci pratica: fare i videogiochi non è una cosa da cinque minuti, richiede tempo, costanza, perseveranza ed innumerevoli fallimenti. Comunque, c'è la lista su questo post

    RispondiElimina
  7. Grazie. Ora lo rimetto e ci riprovo intanto vai sul mio blog dove troverai il link del mio forum/social network

    RispondiElimina
  8. ho provato anche dev c++ ma col c++ nn ci capisco tanto... Voi sapreste darmi qualche consiglio??? Grazie ^_^

    RispondiElimina
  9. Guarda, usare il C++ per uno che non ha mai programmato in vita sua buttandosi subito sui giochi è una follia: io prima di poter iniziare a fare Fortress Brest ho dovuto fare tre anni di scuola e molta pratica da me... Se non hai le conoscenze di base di programmazione object oriented e non, è semplicemente impossibile, anche perchè non sono cose che si imparano nel giro di 5 minuti, come ho già detto... ergo, ti rimando a Game Maker ed al tutorial che ti ho postato, sempre ricordandoti che devi perseverare sempre e comunque!

    RispondiElimina
  10. ok, continuerò a usare game maker, ma comunque ho esperienze in html e pascal

    RispondiElimina
  11. Beh, HTML con il C++ non c'entra poco o niente, infatti non è nemmeno un linguaggio di programmazione. Le conoscenze col Pascal possono sicuramente aiutare, ma non sono certo sufficienti, dato che, pur rimanendo uguali a livello di logica, la sintassi è molto diversa e il C++ aggiunge una serie di cose che il Pascal non può gestire, come ad esempio la programmazione ad oggetti, indispensabile per creare videogiochi più complessi del gioco del Tris!

    RispondiElimina
  12. beh, sì, hai ragione, ma ora sto crecando di farmi un forum... tu conosci qualche hosting gratuito?? (a parte forumfree, forumcommunity e forumup)

    RispondiElimina
  13. Preferirei non andare fuori argomento, nei commenti...

    Comunque no

    RispondiElimina