di  -  lunedì 21 maggio 2012

Introduzione

Da poco si è conclusa la quattordicesima edizione della pyweek (non le votazioni, almeno durante la stesura di questo articolo) e per me è stata la prima partecipazione all’evento. Volevo approfittarne per parlare un pò di come ho impiegato la mia settimana nella stesura del gioco insieme ad i miei compagni (abbiamo partecipato come squadra) per dare dei suggerimenti a coloro che vorrebbero, come noi, mettersi alla prova e partecipare. In particolare darò alcuni suggerimenti che mi sono stati utili, commentando secondo la mia esperienza personale.

Per chi non conoscesse l’evento, ricordo che questa competizione prevede la creazione di un videogame in python in una settimana di tempo. Anche se può sembrare molto impegnativa, consiglio vivamente la partecipazione.

Cosa tenere in mente

Innanzi tutto dovete pensare che questa è una competizione e quindi dovete cercare di dare il meglio di voi, sia singolarmente che in gruppo.

In secondo luogo il codice che scriverete non sarà sicuramente adatto ad un prodotto finale e sarà più inefficente di un videogioco scritto in C o C++, quindi pensate in python, non in altri linguaggi…

Un’altra cosa da tenere in mente quando si comincia è che meno tempo si perde, più possibilità ci sono di riuscire a portare a termine un giocodi maggior qualità.

Consigli pratici

Utilizzate un programma di versionamento, sopratutto se siete in gruppo. Questo può portarvi un notevole decremento dello stress da smarrimento di codice…

Prima che la pyweek abbia inizio, come molti consigliano, testate e imparate a destreggiarvi con le librerie che avete intenzione di utilizzare durante la pyweek. Di solito la scelta più comune è quella di utilizzare la libreria pygame, tra le più gettonate poi troviamo pyglet (o cocos2d), pyOpenGL ed alcuni addirittura con panda3D (dico “addirittura” perché lo ritengo un pò troppo complesso da utilizzare per il tempo dato dalla competizione). Inoltre è molto utilizzata anche la libreria fisica pymunk, della quale abbiamo già parlato in qualche articolo precedente (ma era la versione 1.0, l’attuale è la 2.1.0, quindi troverete sostanziali differenze).

Scelta la libreria, cercate di realizzare un loop di gioco, imparate a gestire gli eventi, le animazioni, le opzioni per l’audio, la creazione di un menù con tanto di transizioni.

Sono anche importanti la gestione dello schermo (gioco fullscreen o meno) e la risoluzione che sceglierete per il vostro videogioco (fissa o variabile, 4:3 o 16:9).

Imparare tutte queste piccole cose con la libreria da voi scelta vi permetterà di creare un videogame con un’esperienza di gioco uguale per tutti ed in grado di girare sui vari sistemi operativi esistenti. Infatti tra gli strumenti che dovete conoscere, è meglio dare anche un’occhiata a py2exe ed a py2app, utili per creare rispettivamente eseguibili per Windows ed applicazioni per Mac. Non dovete dimenticare che, sopratutto per le votazioni, è molto comodo avere un prodotto già pronto da eseguire, così da evitare anche eventuali complicazioni o incompatibilità; naturalmente dovrete lasciare disponibili anche i sorgenti per avviarlo con l’interprete python, quindi scrivete in dettaglio le librerie utilizzate per far funzionare il gioco e testatelo il più possibile su più computer e sistemi operativi.

Non dimenticate anche di fare un pò di pratica con gli strumenti per la creazione di assets, come GIMP, Audacity, Blender ecc…

La competizione

Appena venite a conoscenza dei temi da dover votare, potete iniziare a fantasticare sul tipo di gioco che volete sviluppare. Parlare anche di idee folli può essere fondamentale per la realizzazione di un buon titolo, per non essere troppo banali o poco divertenti.

Una volta conclusa la votazione del tema, dovete tenere bene a mente le meccaniche di gioco da voi scelte per la realizzazione del videogame. Scrivete una bozza del gioco finale, magari su carta e poi cercate di realizzare tutti i vari pezzi.

Prima riuscirete ad avere una demo giocabile, prima potrete informare gli altri del vostro operato nel giornale di bordo, suscitando interesse e iniziando i test che dureranno fino alla fine dell’evento.

Il gioco

Non create un gioco poco accessibile, dovete dare a tutti la possibilità di provarlo con disinvoltura. Pensate anche che molti non avranno la vostra stessa configurazione nel PC, quindi è bene bilanciare il gameplay per non far perdere framerate o, per esempio, evitare che persone con tastiera diversa non possano giocare.

Organizzate il vostro gioco all’interno di una cartella, non fate estrarre una marea di file senza controllo, perderete sicuramente punti.

Come ho già detto, testatelo su vari sistemi operativi, sopratutto i più utilizzati, come Windows, Mac ed Ubuntu.

Se lavorate in gruppo organizzare il videogioco in moduli può facilitare la realizzazione delle varie parti.

Riflessioni

Da questa esperienza ho constatato che una presenza costante nelle comunicazioni è di vitale importanza, basta utilizzare, ad esempio, una chat vocale come TeamSpeak, ogni sera per il resoconto sul videogame.

Inoltre è assolutamente necessario pensare all’utilizzo della programmazione orientata ad oggetti, sopratutto in team. Questo permetterò una costruzione più veloce del gioco ed una struttura più solida della base.

Mentre si scrive il codice sarebbe opportuno avere pronti dei prototipi per le immagini ed i suoni, non i prodotti finali da mettere nel gioco, ma semplicemente dei “manichini” che vi aiutino durante la realizzazione.

Infine dare delle scadenze giornaliere migliorerebbe il gioco finale. Questo aspetto infatti dovrebbe rendervi in grado di dosare meglio le features da inserire nel vostro videogioco in base al tempo che vi rimane, così da concentrarvi meglio sulle questioni importanti in base alle cose realizzate. Non è detto infatti che riusciate a completare il gioco così come lo avevate in mente, quindi è preferibile modificarne il design per renderlo in qualche modo “decente” prima della fine della competizione.

Conclusioni

Spero di aver suscitato l’interesse di qualche programmatore che si vuole mettere alla prova. Anche la semplice partecipazione è stimolante e vi può aiutare ad avere una visione migliore delle vostre capacità e della vostra creatività. Non dimenticate che nessuno ha una ricetta per le buone idee e che quindi tutto è nelle vostre mani durante la realizzazione del videogioco; non è forse questo il bello?

3 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    Francesco Sorrentino
     scrive: 

    Ciao Mirco. Come si chiama il gioco che avete presentato al PyWeek? Se è possibile votarlo ti diamo volentieri una mano noi… ;)

  • # 2
    Mirco Tracolli
     scrive: 

    @ Francesco

    Ciao Francesco, il gioco si chiama “Mad Robot”, ecco il link per provarlo : http://www.pyweek.org/e/AGLMTeam/

    Naturalmente non ne ho parlato nell’articolo per non uscire dal contesto, ma non posso ignorare la tua richiesta :D

    Dopo averlo provato, spero non ti dispiaccia lasciare qui le tue impressioni sui vari aspetti del gioco, sull’idea, la realizzazione ecc… Potrebbe essere un buono spunto per trattare problemi concreti ed aggiornare i consigli e/o le riflessioni derivate da questo evento.

  • # 3
    Francesco Sorrentino
     scrive: 

    @ Mirco

    Immaginavo fosse l’AGLTeam per via dei nomi italiani degli sviluppatori, ma non ne ero totalmente sicuro… ;) … lo scarico e appena finito di provarlo scriverò con piacere le mie impressioni. :)

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

Current ye@r *