In questo articolo provo a raccontare come ho sviluppato il mio primo gioco in Godot con il supporto dell’IA.

Cos’è Godot?
Godot è un game engine open source rilasciato sotto licenza MIT, la cui prima versione pubblica risale al 2014. Con Godot è possibile creare giochi in 2D e 3D per diverse piattaforme (Web, Windows, macOS, Android, iOS), e l’editor stesso funziona su Windows, macOS e Linux.
Scelte
L’idea di creare un videogioco risale a qualche anno fa, ma non si era mai concretizzata fino a oggi. L’avvento dell’IA ha sicuramente contribuito in maniera sostanziale perché, nonostante il mio background da sviluppatore software, non avevo mai scritto una sola riga di codice in un game engine. Niente di presentabile, almeno!
Dal mio punto di vista, quindi, usare Godot e imparare GDScript (che riprende diverse caratteristiche di Python, che già conosco) era la scelta più ovvia, se non altro per riuscire a capire senza troppa fatica il codice generato dal mio fedele assistente artificiale. Il 2D e la pixel art, invece, sono stati scelti soprattutto perché non volevo creare niente di troppo complesso né di troppo difficile da pubblicare; ma ci arriveremo più avanti.
Dopo aver esplorato diverse idee, alcune delle quali sono ancora in cantiere, sono arrivato a un cosiddetto (o almeno così mi hanno detto! :D) “cozy” game, ovvero, come dice Wikipedia, un
videogioco progettato per offrire un’esperienza rilassante, a basso tasso di stress e priva di punizioni severe o competizione.
Esattamente il tipo di gioco di cui avevo bisogno.
Sul perché abbia scelto di pubblicarlo su itch.io, beh, la risposta è piuttosto semplice: itch.io permette di pubblicare giochi come il mio in modo completamente gratuito! Sul perché abbia scelto di non monetizzarlo, beh, è solo il mio primissimo gioco: né alla prima build né adesso ho davvero idea di cosa significhi pubblicare un gioco a pagamento e, sinceramente, in questa fase non ho voglia di complicarmi la vita con la burocrazia fiscale italiana.
Claude Code
Inizialmente avevo deciso di procedere alla vecchia maniera, scrivendo il codice per conto mio e senza l’aiuto dell’IA.
Ho creato il progetto, ho realizzato un primo scorcio di “mondo” e definito l’autotiling, poi ho creato il player e l’ho animato.
A quel punto mi sono reso conto di non avere ancora la più pallida idea di come funzionasse davvero il game loop, di come gestire i salvataggi e, cosa non meno importante, di come generare tutte le risorse grafiche di cui avevo bisogno (certo, su itch.io se ne trovano di gratuite, ma quanto tempo ci avrei messo? E avrei trovato tutto quello che mi serviva?).
In questo Claude mi è stato davvero utile. Non solo si è fatto carico di tutto il lavoro di scrittura del codice ma, grazie al server MCP di PixelLab, è anche riuscito a generare diverse risorse grafiche che altrimenti non avrei trovato.
La primissima iterazione con Claude è servita a definire il progetto (funzionalità e game loop in primis) e una roadmap: cosa fare subito e cosa lasciare per dopo, cosa mettere nella v1 e cosa invece poteva mancare, e così via. Una volta definito il “piano d’attacco”, è iniziato lo sviluppo vero e proprio, che si è distribuito su un periodo di circa un mese.
L’IA non è stata fondamentale solo per scrivere il codice ma, soprattutto, per avere una visione d’insieme del gioco e per mantenere un certo livello di coerenza tra le mie varie richieste.
Il gioco
Il gioco inizia con il player che spawna in un punto casuale di una mappa generata proceduralmente. La mappa è tutta da sbloccare, un’area alla volta, e per farlo il player dovrà “sudare”: abbattere alberi e usare i tronchi ottenuti come moneta per “acquistare” nuove aree.
Si parte quindi con una sorta di fase di tutorial, con una serie di obiettivi pensati apposta per insegnare le varie meccaniche del gioco.
Il giocatore dovrà farmare legna e minerali (pietra, ferro, oro, cristalli) e otterrà una ricompensa per ciascun obiettivo raggiunto.
Per il resto, preferisco non fare spoiler! :D
Cosa ho imparato?
Prima di tutto, che creare un gioco anche semplice come il mio è già di per sé parecchio complicato ma, soprattutto, molto diverso dal creare software come ho sempre fatto. Il codice in sé non è complicatissimo, ma ci sono tantissime dinamiche che devo ancora capire a fondo, come ad esempio l’autotiling e come migliorarlo (perché sì, c’è qualcosa che non mi torna!). In generale spero di aver imparato abbastanza, soprattutto su come si lavora con Claude, per fare qualcosa di meglio in futuro, sia aggiornando questo gioco sia con quelli che eventualmente verranno.