Programmare per gioco

Oggi è diventato di moda (finalmente, vorrei dire) e si chiama coding. Coding si traduce con “programmare” e non con “scrivere programmi”. Che differenza fa? Semplice: fra scrivere programmi e programmare c’è la scrittura che fa la differenza. La programmazione scritta utilizza un linguaggio che, per quanto possa essere semplice, ha comunque caratteristiche di astrazione notevoli. Anche lo storico LOGO di Papert, a parte i comandi semplicissimi per muovere la “tartaruga”, non era proprio intuitivo.
Esiste però una soluzione: un linguaggio ad interfaccia grafico.
Come per molti altri ritrovati, non c’è un vero e proprio inventore, perché la cosa si è creata gradualmente.
Il primo interfaccia grafico non è stato per un programma ma per il sistema operativo: prima i Mac, poi i personal computer (prima di Windows c’era il DOS: qualcuno se lo ricorda ancora?).
A ruota apparvero i programmi con interfaccia grafico. Word simulava un foglio di carta bianca, Excel ed i suoi numerosi emuli mostravano un foglio a quadretti larghi. I programmi grafici mostravano un foglio accanto al quale gli strumenti erano simboleggiati da piccole icone. Aspettando la realtà virtuale che cambierà tutto, siamo ancora fermi a quel punto.

Restavano i linguaggi di programmazione: roba per esperti, che non aveva bisogno di essere user friendly: anzi, conservava una sua snobistica severità, un rigore che simboleggiava forse il rigore del ragionamento necessario a padroneggiarli. Potevano produrre interfacce grafiche per i programmi che producevano, ma essi stessi non ne usavano. Troppo facile, sembravano dire.

Poi è venuto Gamemaker (2001) , e poi Scratch (2006), StarLogo TNG (2007) e Construct2 (2013) e la programmazione non è più stata solo dominio dei maggiorenni iperspecializzati.
Questi linguaggi hanno alcune caratteristiche comuni. Innanzitutto non sono per esperti. I comandi sono ridotti a piccole icone oppure a profili che vanno ad innestarsi gli uni negli altri. Questo li rende comprensibili anche ai più piccoli.
In secondo luogo, sono concepiti per realizzare prodotti relativamente semplici, che sia possibile ideare e realizzare in poche ore o addirittura in pochi minuti di lavoro.
In terzo luogo, privilegiano l’aspetto ludico del prodotto: sono, insomma, particolarmente adatti a realizzare piccoli – non necessariamente piccolissimi – videogiochi bidimensionali.

Che utilità hanno questi programmi? Ovviamente non sono finalizzati alla produzione di software. Sono programmi educativi, per abituare i giovanissimi al rigore del ragionamento, senza passare per il linguaggio scritto: e così come un fumetto è meno difficile da capire rispetto ad un testo scritto, così è più semplice far ripetere al computer una certa azione cliccando su una icona con una freccia che gira, piuttosto che scrivendo il comando for x=1 to10 .

Il bello è che pian piano l’interfaccia grafica sta conquistando anche programmi importanti. Un nome per tutti: persino Unreal Engine , programma professionale per “grandi” videogiochi offre la scelta fra il linguaggio C++ a linea di comando e un interfaccia, necessariamente complicatissimo, ma pur sempre grafico e, a suo modo, intuitivo.

Ai primi quattro programmi (Gamemaker, Scratch, StarLogo TNG, Construct2 ) e alle loro implicazioni didattiche dedicherò i prossimi post.

Scritto da: Paolo Freschi