giovedì 4 marzo 2010

Fare un Videogioco (Introduzione)

Hai mai desiderato realizzare un videogioco? Hai mai immaginato immensi mondi e storie virtuali, o anche semplicemente una nuova versione del buon vecchio Tetris? Bene, sei venuto nel posto giusto.

Prima di tutto, devi sapere che la creazione di un videogioco richiede molto tempo, tanta buona volontà, grande pazienza e soprattutto una discreta conoscenza informatica.

Se le premesse non ti hanno scoraggiato, allora possiamo iniziare!


Come si fà un videogioco?

Il videogame non è altro che un programma, anche se è assai più complesso creare un gioco rispetto ad una comune applicazione. Questo perchè il gioco deve gestire la grafica, i comandi, i suoni e la connessione ad internet (per la modalità multigiocatore online ad esempio).

Per creare giochi si hanno tre scelte con il loro grado di difficoltà:
  1. Usare un Game Editor (Facile/Medio)
  2. Usare un Engine (Medio/Difficile)
  3. Usare un linguaggio di programmazione (Difficile)
Analizziamole una per una.

Usare un Editor

Un editor è un programma che permette di creare un gioco senza troppe conoscenze di programmazione. Si creano i vari oggetti e le stanze, con grafica e suoni. Ci penserà l'editor a far girare il tutto segnalando eventuali errori

Ci sono editor per un singolo genere di gioco e per più generi. Tendenzialmente quest'ultimi sono più difficili da usare per la loro natura più generalizzata, ma sono anche quelli che permettono un maggiore sfogo creativo. In alcuni casi non richiedono nessuna conoscenza di codice di programmazione e tutto il gioco viene creato tramite "drag and drop" (semplicemente utilizzando il mouse e i comandi dati dal programma), tuttavia si possono ottimizzare, nel caso si possedessero conoscenze programmative, con codice in altri linguaggi. Vi sono anche editor per giochi in 3D, ma sono più complessi da utilizzare in quanto quel tipo di grafica richiede particolari requisiti (come per esempio il texture mapping) che non sono richiesti in un più semplice gioco 2D



RPGMaker, un famoso editor di giochi di ruolo


Purchè tutto questo possa sembrare perfetto, in realtà per ottenere un gioco completo e senza bug viene richiesta molta pratica e tenacia (Non pensare di farti il tuo Age of Empires dopo due giorni in due ore). Inoltre, per quanto efficiente possa essere l'editor, i giochi non raggiungeranno (quasi) mai i livelli di un videogame professionale sviluppato con tecniche più avanzate

Qui potete trovare alcuni editor: Lista Editor per video giochi



* La versione Lite di Game Maker è gratis, la versione Pro (con il supporto di particolari funzioni della grafica 3D ) è a pagamento
** A pagamento

Usare un Engine

L'engine è, come dice la parola, il "motore" di un gioco, ovvero la base su cui si può successivamente fare il videogame. In esso sono già implementate tutte le caratteristiche di base, come la ricezione dei comandi, il rendering (ovvero la procedura per disegnare la grafica su schermo) ed eventualmente l'apparato audio.



M.U.G.E.N, un engine di un gioco picchiaduro completamente personalizzabile

Cosa ce ne facciamo? Semplicemente, avendo già la base del nostro videogame, dobbiamo soltanto modificare la grafica, i suoni, aggiungere livelli o, più semplicemente, personalizzare l'engine fino a farlo diventare un gioco completo. Questo tipo di modus operandi è spesso utilizzato nell'ambito professionale, in cui le grandi software house creano e commercializzano il loro engine, così che altre case di produzione di videogiochi possano utilizzarle per fare i loro videogiochi.

Sono molti gli engine gratuiti che si trovano su internet, e alcuni sono particolarmente adatti per i principianti per la loro semplicità, anche se alcuni possono essere più complessi in quanto richiedono conoscenze di programmazione

Pur essendo relativamente facile creare i primi videogiochi personalizzando un engine, ci sono diversi svantaggi nell'usare questa metodologia. Prima di tutto, per quanto personalizzabile, un engine permette di creare solo un tipo di gioco ( Se scaricate un engine per un picchiaduro, non sperate di poter farlo diventare un gioco di corse automobilistiche!). Inoltre gli engine gratuiti raramente sono affidabili (senza bug o errori), e quelli a pagamento sono spesso molto cari.

Qui potete trovare alcuni engine: Lista Engine per video giochi



Linguaggi di programmazione

Usare un linguaggio di programmazione è di gran lunga il metodo più difficile per creare giochi, ma anche quello più appagante, più flessibile e più performante. La difficoltà risiede nel fatto che , se negli editor e negli engine la grafica, la ricezione dei comandi, l'audio, l'iterazione fra gli oggetti e così via erano tutti aspetti già gestiti dal programma, nel caso del linguaggio devi essere tu a rendere il tuo gioco in grado di fare tutto questo! E' anche vero che, una volta ottenuta esperienza, questo tipo di metodologia non offre limiti se non quello della propria fantasia.


Il caro vecchio Visual Studio, anche se si possono usare ambienti di sviluppo simili ma gratuiti come Netbeans

Nella programmazione professionale si utilizza il C++, anche se possono essere usati altri linguaggi, come il più semplice QBasic. Indipendentemente dal linguaggio, la base della logica di programmazione è la stessa e, una volta che si impara ad usare un linguaggio, impararne un altro è piuttosto facile. Alcuni linguaggi (come Flash o il già citato Java) gestiscono grafica, audio e comandi da sè, altri avranno bisogno di librerie (ovvero particolari funzioni aggiuntive, spesso scaricabili gratuitamente) per poterlo fare.

Qui troverete una lista contente le principali librerie: Lista librerie per videogiochi


Esperienza personale

Io iniziai a fare videogiochi 10 anni fa con l'ormai arcaica versione 4.0 di Game Maker. Non erano grandi giochi, anzi, spesso erano un'insensata accozzaglia di immagini che si muovevano a caso! Tuttavia, aborto dopo aborto, iniziai da solo a capire alcuni concetti base della programmazione. I miei giochi diventavano sempre più "sensati" e sempre meno buggati. Arrivai a fare un giochino di lotta tra carri armati molto semplice e poi un gioco di competizione per due giocatori.

Tuttavia si avvicinava la maturità, e di conseguenza la necessità di preparare una tesina. E a quel punto passai da Game Maker al C++ con la libreria SDL. Sviluppai due giochini di prova (un gioco del Tris a due giocatori e un clone semplificato di Duck Hunt) e passai subito (mio grave errore, spiegheremo successivamente perchè) nello sviluppo della mia tesina: un engine di un gioco isometrico chiamato Fortress Brest. La versione base era stata fatta in 4 mesi, ma non includeva molte delle caratteristiche richieste per essere un buon motore.
Sto tutt'ora completando lo sviluppo di tale engine in modo da renderlo un gioco completo ispirato al ben più famoso Castle Wolfenstein.

Non ho completamente abbandonato lo sviluppo in Game Maker (ho ancora da finire un gioco survival horror) ma, ora come ora, punto maggiormente i miei sforzi sulla programmazione. Magari renderò disponibili (quando avrò tempo) tutte le mie creazioni.


Prossimamente: Fare un Videogioco (Curva d'apprendimento)








Nessun commento:

Posta un commento