Utilizzare Python e PyGame per creare nuovi videogames da far girare su Raspberry PI… e magari sui nostri computer, a prescindere dal sistema operativo utilizzato.
Capita spesso di aver voglia di studiare o approfondire argomenti legati all’informatica ed alla programmazione: cerchiamo un nuovo linguaggio, magari il Python, troviamo un manuale, iniziamo a seguire un corso… e alla fine ci ritroviamo con in mano il telecomando del nostro videogioco preferito, a sparare ai marziani o a pilotare kart. È più forte di noi…
Se vi siete riconosciuti nella descrizione, questo libro fa per voi!
Implementiamo giochi studiando la programmazione
Il libro consente infatti di espandere le proprie conoscenze di base su Python, e usa la libreria PyGame per creare videogiochi frenetici con grafica e suoni eccezionali. Questa seconda edizione mostra come integrare componenti elettronici con i tuoi giochi usando i pin di input / output di Raspberry PI (GPIO) generici incorporati e un po’ di codice Python per creare nuovi giochi.
Si imparerà a conoscere la programmazione orientata agli oggetti (OOP) così come i modelli di progettazione, il model-view-controller (MVC) e le macchine a stati finiti (FSM). Sia che si utilizzi Windows, macOS, Linux o Raspberry Pi, si potrà liberare la potenza di Python e PyGame per creare giochi sempre più coinvolgenti.
Il libro include listati di codice completi e spiegazioni per “Bricks”, “Snake” e “Invaders”, tre giochi completamente funzionanti. In tal modo il lettore verrà invogliato ad iniziare a creare i propri giochi per poi modificarli o aggiungere nuove caratteristiche. I concetti vengono ulteriormente spiegati usando giochi come “Copycat” (in Italia un gioco simile si chiamava Simon), in cui il giocatore deve concentrarsi e ripetere la sequenza di luci, e “Couch Quiz”, in cui PyGame e componenti elettronici creano un gioco a quiz per 4 giocatori.
L’autore: Sloan Kelly
Sloan Kelly programma computer dal 1982. Il suo primo computer è stato uno ZX Spectrum 16K dove apprese Sinclair BASIC e passò al codice macchina Z80. Alla fine dell’era a 8 bit passò al Commodore Amiga dove codificò alcuni piccoli giochi in un linguaggio chiamata Blitz.
Dopo nove anni passati a lavorare nell’IT tradizionale in posizioni senior o dirigenziali, Sloan è tornato a studiare e gli è stato assegnato un Master in Informatica (tecnologia di gioco). Questo gli permise di proseguire la propria carriera nel settore dei giochi, settore in cui è rimasto per quasi dieci anni. Attualmente vive nella bellissima regione del Niagara in Canada con moglie e figli, e lavora per PixelNAUTS Games come programmatore senior. Il loro gioco di debutto, LOST ORBIT, è stato rilasciato nel 2015 ed ha ricevuto numerosi riconoscimenti dalla critica.
Ha lavorato su numerosi titoli AAA e indipendenti (indie). Attualmente lavora per una società di giochi educativi.
Ha pubblicato anche “BlitzMax for absolute beginners“, un manuale per accompagnare il lettore interessato verso la programmazione 2D e 3D di titoli legati al retrogaming.
Sloan è su Twitter @codehoose e realizza video su YouTube nel suo tempo libero.
Il formato
Il titolo è disponibile sia in formato cartaceo sia in formato Kindle (meno caro), ma solo in lingua inglese. Questo non è una grossa limitazione, dal momento che sono presenti i sorgenti degli esempi, e in genere l’inglese tecnico utilizzato in informatica è abbastanza lineare.
Il libro è composto da 21 capitoli, per un totale di circa 200 pagine; I pimi capitoli, “Cos’è un linguaggio di programmazione” e “Cos’è Python” mostrano in pratica la struttura dell’opera: si parte dalle basi, e si prosegue spiegando in linea di massima le caratteristiche del linguaggio, sino al capitolo 9. In tale capitolo viene introdotta la libreria di sviluppo PyGame, PyGame è il framework utilizzato nel prosieguo del libro per implementare su PC e Raspberry PI le caratteristiche di un generico videogioco.
A questo punto la velocità del libro cambia, si iniziano a vedere gli esempi legati alla game programming, e man mano che si avanza nell’insegnamento del linguaggio, si analizzano strutture più complesse per applicarle ai tre videgames che il libro consente di creare: Bricks, Snake e Invaders. La domanda che sorge spontanea è: si tratta di framework o di videogames pienamente funzionanti? La risposta è sì, gli esempi forniti sono perfettamente giocabili su qualsiasi piattaforma in grado di far girare un programma in Python.
E c’è di più. per i più pigri, è anche disponibile un link al quale scaricare l’insieme dei programmi approfonditi nel libro.
Occorre aggiungere che è complicato offrire il massimo delle informazioni legate a Python ed alla creazione di videogames in 200 pagine. L’autore fa di tutto per rendere i concetti e le idee il più possibile accessibili ai lettori, ma proprio per tale ragione risulta talvolta un po’ troppo denso, ostico e privo di esempi o di spiegazioni delle ragioni per cui un dato costrutto funzioni. Gli esempi sono scritti per risolvere esplicitamente i problemi legati alla creazione dei tre videogames, ma non viene quasi mai prevista una sezione esplicativa che mostri in che modo tali concetti possano applicarsi anche ad altri progetti: è un lavoro che viene lasciato “al lettore diligente”. Tale modo di fare consente da un lato di tenere basso il numero delle pagine e rendere il libro più accattivante anche per i più pigri, mentre dall’altro rischia di perdere per strada i lettori meno informatizzati, che una votla prodotti i giochi dimenticheranno il resto del libro.
A chi è diretto
Il testo consente di raggiungere una buona conoscenza del linguaggio Python e della Libreria PyGame anche a chi è digiuno di linguaggi di programmazione. Con i tre giochi, Brick, Snake e Invaders, si giunge ad avvere una buona comprensione di ciò che accade nella creazione di un videogioco. Con una valida idea in mente, alla fine della lettura (e dello studio) si è in grado di creare un gioco da solo.
Oltre ai giochi, vengono prese in considerazione anche la programmazione orientata agli oggetti e alcuni modelli di progettazione associati come Macchine a stati finiti (FSM) e framework Model-View-Controller (MVC).
Grazie ai tre giochi inclusi in questo testo (Bricks, Snake, e Invaders), viene inoltre offerta ragione di ciò che accade nel realizzare un videogioco. Tutto ciò che serve per avere successo è avere una grande idea e mettere in pratica il contenuto del volume.
Consigliamo quindi il libro a coloro che hanno già una discreta consocenza dei paradigmi della programmazione, la volontà di approfondire i concetti esposti sul libro anche attraverso altre fonti, ed una notevole vena creativa nell’ideare videogiochi: con tali presupposto, il libro consentirà di acquisire le principali capacità progettuali per creare videogiochi con Python e PyGame in grado di girare su Linux, MacOS, Windows e RaspberryPI.