4 Commenti

Codice e divertimento vanno insieme

Giocare e programmare: il confine è assai sfumato

di

thumbnail

05

giu

2015

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.




Andrea C. Granata (@andreacgranata) ha pigiato i primi tasti su un bianco VIC20 quando ancora Internet era in fasce. Un po’ sistemista un po’ sviluppatore, ha una passione per FreeBSD, programmazione in Ruby, metodologie Agile e infrastrutture cloud. Si occupa di Enterprise Architecture e di DevOps per una delle più importanti banche italiane. Nel tempo libero si divide tra la passione per la cucina, il pattinaggio di figura e i viaggi in Oriente.

Letto 3.931 volte | Tag: , , , , ,

4 commenti

  1. Erix

    Hai accidentalmente ripreso il nostro sottotitolo :-)
    http://deagostiniscuola.deascuola.it/primaria?layout=book&ref=41&book=11847
    (niente di male, il concetto è lo stesso anche se i lettori sono ‘un pochino’ più giovani)

  2. Lucio Bragagnolo

    Senza la minima intenzione! Poniamo rimedio.

  3. Erix

    Sia chiaro che non era una richiesta di rettifica, solo l’annotazione di una coincidenza :-)

  4. Lucio Bragagnolo

    Né abbiamo obbedito a una intimazione, si parla tra amici. :-)

Lascia il tuo commento