Ok, io e mio figlio stiamo scrivendo un videogioco
Avete presente quei film americani dove il padre chiama il figlio nel giardino del retro della casa e iniziano a tirarsi la palla da baseball e si capisce dopo un po’ che a nessuno dei due importa davvero del baseball, ma che stanno facendo quello che fanno per comunicare, per trovare un momento tutto loro dove stare assieme? Ecco, io la stessa cosa con mio figlio, ma niente baseball, stiamo scrivendo un videogioco assieme.
La cosa è andata pressapoco così: secondogenito viene, tredici anni, mi dice papà scriviamo un videogioco assieme, nel senso che io faccio gli sprite e la storia e tu programmi tutto, e io ho risposto ok.
Così, ha aggiunto, abbiamo qualcosa di cui parlare assieme. Questo è il modo in cui i figli fanno i segni negli organi interni dei genitori, improvvisamente.
L’ultima volta che ho scritto un videogioco arcade avevo qualcosa tipo diciassette anni, era da poco uscito Sign “o” the Times, e il videogioco si chiamava Mens! ed era un clone di Pitfall! scritto interamente in Applesoft Basic e poi compilato. Questo per dire che mi sono dovuto studiare al volo un manuale di Pygame e rinfrescare un po’ quello che sapevo di Python.
Secondogenito mi ha spiegato nei dettagli il gioco, mi ha fatto chiaramente capire che io devo solo programmare e non mettere becco con le mie cose strane, e fare questo platform 2D visto dall’alto, molto 8-bit, figlio ideale di Undertale, con scrolling in tutte e quattro le direzioni.
Io gli ho detto di fare una mappa sul foglio, lui l’ha fatta, gli ho detto di ricopiarla in ascii su un .txt e poi di associare ogni simbolo ascii con uno sprite da lui disegnato, e lui l’ha fatto.
Allora mi sono seduto e ho iniziato a programmare in Python e Pygame, cercando di fare in modo che la mappa ascii si prendesse gli sprite e creasse il mondo dove si sarebbe mosso il protagonista del gioco. Ci ho pensato tutta la sera, parte della notte e l’indomani mattina mi sono seduto e ho iniziato a scrivere il codice che avevo pensato.
Ho usato come IDE Netbeans, ho installato tutto e ho programmato finché, ad un certo punto, è apparso sullo schermo il mondo che mio figlio aveva pensato.
È stato un momento magico: avevo i suoi schizzi, avevo i suoi sprite, avevo la sua idea e poi – di colpo – ecco il livello lì davanti a me, con il personaggio che ci cammina dentro. Ero dentro la testa di mio figlio, dentro la sua progettazione e stavo vedendo, per la prima volta, quello che si era immaginato.
L’ho quasi svegliato, l’ho chiamato di sotto, lui ha guardato tutto. Non ha mostrato nessuna emozione, ha detto ok. Mi ha dato alcune indicazioni per continuare. “Non pensavi che ce l’avrei fatta eh” gli ho detto scherzando. “Non pensavo che avresti fatto così in fretta” mi ha risposto e forse era un complimento.
Scrivere un videogioco ha momenti di una bellezza e di entusiasmo difficili da raccontare. La progettazione del codice, vedere il mondo che funziona, e poi torni e rompi tutto quello che avevi scritto per raffinarlo, per fare in modo che funzioni anche con cose che ancora non hai inserito. Cerchi di renderlo più efficace e più elegante.
Mentre fai dell’altro continui a pensare a una cosa che non sei riuscito a fare, ti immagini il metodo per scriverla, ci torni sopra decine e decine di volte finché non appare, a volte all’improvviso, con tutta la sua logicità.
Un videogioco è un mondo espressivo carico di segni e simboli. È un modo per raccontare e raccontarsi che attinge alla narrativa, alla grafica, al suono, al mistero, al divertimento. È un pacchetto completo di emozioni e di sogni, un macchinario.
Vedremo nelle prossime settimane come si evolverà la cosa, se lui o io non ci stuferemo, ma per ora è stata una boccata di ossigeno.
Qui sotto un breve video fatto mentre stavamo testando spostamenti e muri:
Bello, io sto cercando invano di fare qualcosa di simile con qualcuno dei figli…
Ora però la domanda: perché Netbeans? Secondo me dovresti provare PyCharm, c’è una versione community che è gratis e secondo me funziona molto meglio.
In realtà perché sono riuscito ad installarlo A parte gli scherzi, me lo avevano consigliato tempo fa e ho aperti diversi progetti in HTML5/Javascript e Python. Non lo amo ma ho capito come funziona.