RISPARMIA IL 15% SU TUTTI I CORSI

Fino al 31 agosto con il codice sconto CORSARO

Scegli il tuo corso e iscriviti!
Home
Giocare e programmare: il confine è assai sfumato

05 Giugno 2015

Giocare e programmare: il confine è assai sfumato

di

Recuperare l'entusiasmo degli anni ruggenti del microcomputing con la potenza della videodidattica applicata ai social.

Per chi come me ha iniziato a programmare molti anni fa, l’idea di Full Stack Developer è abbastanza naturale. A quei tempi, l’unico modo per imparare a programmare era leggere e rileggere il manuale allegato al microcomputer.

Ricordo ancora i primi giochi computati sul Commodore 64, la frustrazione di copiarli sbagliati e la soddisfazione di capire sempre più facilmente dove sbagliavo, tanto da iniziare a modificarli e a implementarne di nuovi.

Listato di gioco in BASIC per Commodore 64

Gustare un gioco su Commodore 64 richiedeva talvolta un lungo preambolo.

Questo approccio – lettura attenta della documentazione, tante ore passate a scrivere codice e ad approfondire ogni dettaglio – sul lungo periodo mi ha dato grandi soddisfazioni e funziona egregiamente ancora adesso che la facilità di reperire informazioni è diventata estrema, ed è molto probabile trovare la soluzione al proprio problema direttamente su Stack Overflow o già implementata in librerie o in codice open source.

Il contro di avere – permettetemi la semplificazione – la pappa pronta è che si perde la visione di insieme e, di fronte a problemi un po’ più complicati della media, non si sa cosa fare o si implementano soluzioni talmente naïf da non reggere nel tempo.

Un possibile rimedio a questa carenza di capacità di astrazione è tornare a cimentarsi con le basi; ne avevamo già parlato in un post di qualche mese fa. Chi però è meno attratto dall’impostazione accademica e privilegia invece un approccio hands-on, oggi ha un’intrigante opportunità, ovvero seguire passo passo il progetto Handmade Hero, a partire dal suo trailer. Casey Muratori descrive il suo progetto così:

Handmade Hero è un progetto in svolgimento con lo scopo di creare un gioco completo di qualità professionale, accompagnati da video che spiegano ogni singola riga del suo codice sorgente. […] A dire la verità, à fuori si trovano risorse in abbondanza su come affrontare i singoli elementi della programmazione di giochi. Se volete imparare, per dire, le specifiche di come si implementa la screen space ambient occlusion, potete probabilmente usare Google per trovare saggi e post che la descrivono. Ma se volete solo sapere come svolgere il lavoro quotidiano di implementare e strutturare l’ottanta percento del codice che non consiste in un algoritmo grafico isolato, non c’è molto.

Giorno dopo giorno, Casey affronta in diretta su twitch (purtroppo in un orario improbabile per l’Italia) gli step necessari per implementare da zero in C/C++ un gioco, pubblicando a poche ore di distanza le singole sessioni di programmazione e di Q&A su YouTube.

Handmade Hero consente in modo informale e quasi ludico di riprendere molte delle basi necessarie a un programmatore (multithreading, code circolari eccetera) e concetti specifici per la programmazione di giochi, tutti espressi con chiarezza e con un indubbio valore didattico, e lo fa creando un percorso che non solo espone i singoli concetti ma li lega insieme allo scopo di implementare un oggetto concreto: il suo gioco. Ancora di più però mi affascina l’approccio di queste lezioni. Per usare le sue parole,

Credo che la programmazione dovrebbe essere molto fluida ed è una cosa che enfatizzo costantemente in trasmissione. Programmare può, e dovrebbe, divertire. Molto spesso il codice migliore è il codice che vi siete divertiti a scrivere. E senza dubbio scrivete molto più codice quando vi divertite che quando lo sentite come un peso.

Questa visione ci riporta ai tempi del Commodore 64, quando la programmazione era il gioco, e forse è il momento di riflettere se non sia il caso di recuperare un po’ di quello spirito.

L'autore

  • Andrea C. Granata
    Andrea C. Granata vanta oltre 25 anni di esperienza nel mondo dello sviluppo software. Ha fondato la sua prima startup nel 1996 e nel corso degli anni si è specializzato in soluzioni per l'editoria e il settore bancario. Nel 2015 è entrato a far parte di Banca Mediolanum come Head of DevOps, ruolo che oggi ricopre per LuminorGroup.

Vuoi rimanere aggiornato?
Iscriviti alla nostra newletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.