Keycap Kevin: imparo a programmare un videogioco per la mia tastiera
Per programmare il mio primo videogioco uso il software Ren'Py. E ho scoperto che è davvero facile da imparare.
Metto in palio la tastiera Pixel compatibile con Lego. Per rendere la competizione più difficile e divertirsi un po', occorre giocare. E il gioco lo programmo io, per la prima volta in vita mia. Ho già trovato il software adatto: Ren'Py. Ora devo solo convertire la mia storia, che ho già in testa, in codice. Se hai perso l'ultima parte della serie, puoi leggere di più qui:
Linguaggio di script semplice
Ho scaricato Ren'Py dal sito ufficiale. Il programma funziona su Windows, MacOS e Linux. Su queste piattaforme non sono necessari altri software o driver. Posso utilizzare l'app editor installata per programmare. Programmo con un linguaggio di scripting basato su testo. È possibile giocare anche su iOS e Android.
Posso avviare o modificare il mio progetto tramite il launcher. Nell'immagine si può vedere anche il titolo del mio gioco «The Keyboard Theft». Ora sai già che il mio gioco consiste nel rubare una tastiera.
Posso aggiungere immagini, video e musica al testo. Definisco i miei personaggi, le immagini e altro in modo centralizzato. In questo modo posso anche apportare modifiche rapidamente. Esempio: definisco il mio personaggio principale Stevie con «define stevie = Character("Stevie", color="C4A277")». Ora, quando digito «stevie» e il testo tra virgolette, Ren'Py sa che si tratta di un personaggio. Questo viene identificato come parlante, con il corrispondente codice colore esadecimale. Se voglio aggiustare qualcosa, devo farlo solo nella mia definizione.
Con le immagini è ancora più facile. Ad esempio, se voglio inserire un'immagine di sfondo, devo solo inserire «scene» seguito dal nome del file. Ad esempio, «scene bg_room_1». Metto sempre le immagini nella stessa cartella. Se devo cambiare qualcosa nell'immagine, sovrascrivo il file in questa cartella. Quindi Ren'Py mostra immediatamente l'immagine attuale.
Effetti resi facili
Posso aggiungere effetti a immagini, video e musica. Questo mi permette di animare le immagini, spostarle, ruotarle o scalarle sullo schermo con semplici comandi. Ad esempio, se voglio che un nuovo sfondo spinga in alto quello vecchio, lo faccio con il comando «scene bg_introduction_carol with wipeup». Posso anche impostare la durata dell'effetto. Tutti questi comandi sono spiegati nella documentazione di Ren'Py (in inglese). Devo solo cercarli e inserirli di conseguenza. Nel video puoi vedere i primi secondi del mio gioco con alcuni effetti. Niente di sconvolgente, ma contribuiscono a creare l'atmosfera desiderata.
Ren'Py supporta molti formati. JPEG e PNG trasparenti per le immagini, WAV e MP3 per la musica e WEBM o MPEG 4 per i video, solo per citarne alcuni. Ma attenzione: non tutti i formati sono uguali. Tuttavia, alcuni file WAV non possono essere riprodotti da Ren'Py. In questo caso, semplicemente non viene riprodotta alcuna musica. Per il mio progetto, quindi, mi affido al formato con cui non ho mai avuto problemi in Ren'Py: MP3. La qualità è più che sufficiente per il mio gioco. Naturalmente, la musica può anche essere sfumata o messa in pausa.
La sfida non è la programmazione, ma le immagini
In effetti, la programmazione è molto semplice. Quando scrivo una nuova scena, avvio sempre il progetto per osservare i cambiamenti. In questo modo posso vedere subito se qualcosa non va. Ad esempio, se un effetto sonoro non viene riprodotto. Come già detto, ciò è dovuto al fatto che Ren'Py non riconosce il formato del file. In questo caso, il programma non riproduce un messaggio di errore, il che rende difficile la risoluzione dei problemi la prima volta. Ma non appena ne conosco il motivo, non mi succede più. Con il codice è più facile. Qui Ren'Py mi riproduce un messaggio di errore e indica la riga di codice, come si può vedere nell'immagine seguente.
In questo caso, non ho concluso l'affermazione di Stevie con una virgola. Questi messaggi di errore sono utili e mi permettono di trovare rapidamente il bug. Così riesco a programmare in modo facile e veloce. Come mi ha spiegato lo youtuber Visual Novel Design, con Ren'Py si tratta più o meno di un copia e incolla.
D'altra parte, non sto facendo molti progressi con le immagini, cioè con la mia grafica. Ti parlerò delle sfide che ho incontrato in questo campo la prossima volta.
Tecnologia e società mi affascinano. Combinarle entrambe e osservarle da punti di vista differenti sono la mia passione.