L’IDEale

Se c’è una cosa che apprezzo particolarmente di Godot è che mette a disposizione un ambiente totalmente integrato, praticamente coccoloso, dove poter fare tutto senza troppi fronzoli. Non capisco chi ama complicarsi la vita con compilatori a riga di comando o altri tool che sembrano fatti apposta per alimentare il masochismo, se non altro perché, a lavorare comodi, ci guadagna tantissimo la produttività, cioè la capacita di ottenere il massimo risultato con il minimo sforzo… Però, questa volta ci tocca. Mentre L’IDE di Godot, almeno finché utilizzato con GDScript, ha tutto l’occorrente per sviluppare videogiochi, quando si passa a pratiche più avanzate, la comodità va a farsi benedire e, come avrete visto con l’articolo precedente, spuntano tool a riga di comando e compilatori esterni. Cerchiamo, quindi, di recuperare un po’ della nostra amata coccolosità.

Visual Studio Code

Siccome non vogliamo ridurci, davvero, con il Blocco note di Windows, forse è il caso di procurarci un IDE, magari open-source, qualcosa per aiutarci nel lavoro della codifica. Personalmente ho scelto e consiglio caldamente Visual Studio Code1, perché è relativamente leggero, è un progetto maturo, rispetta le caratteristiche precedenti e, tutto sommato, non è difficile da istruire in modo che diventi il più docile possibile. Avremo già a che fare con il C++, ci manca solo che ci si metta pure l’IDE, no? Quindi, andiamoci a scaricare il programma dal link ufficiale, al solito in calce, ed installiamolo. Mi perdonerete, ma ho la pretesa di non dover spiegare la procedura a persone che si accingono a scrivere videogiochi, per giunta in C++: credo riusciate ad arrangiarvi… Una volta fatta questa operazione, lasciate pure riposare VS Code, lo gusterete al momento giusto.

Preparare il progetto in Godot

La preparazione del progetto in Godot non ha niente di speciale. Sia ben chiaro che stiamo creando un progetto di prova, al momento. Una volta messo in piedi questo, magari dopo aver studiato un pochetto meglio C++, siete autorizzati a creare l’MMO strafigo che avete sempre sognato. Per il momento voliamo basso. Anzi, teniamo i piedi ben piantati per terra, che è meglio, e continuiamo con il nostro tutorial. Useremo la PowerShell di Windows: state attenti che, in base a dove sono posizionate le vostre cartelle, potrebbero essere necessari i privilegi di amministratore.

In sequenza, eseguite questi compiti:

  • Create nella root di C: una cartella che chiamerete gd_extension: quando avrete capito come funziona il gioco, farete come vi pare…
  • Sotto quella cartella me ne create una che chiameremo demo ed un’altra che chiameremo src
  • Senza perdervi in un bicchiere d’acqua, create un nuovo progetto da Godot come avete sempre fatto in altre occasioni, solo stando attenti che la cartella di destinazione sia proprio la demo sotto gs_extension. Lasciatelo pure vuoto, salvate tutto e chiudete.
  • Adesso aprite PowerShell, posizionatevi sotto la cartella gd_extension e digitate il comando seguente:
PS C:\gd_extension\> git clone -b 4.4 https://github.com/godotengine/godot-cpp

Solite considerazioni per la versione, non mi ripeto. In realtà, una piccola considerazione serve: qui non occorre specificare stable, ma solo il numero di versione e build. Vi dico, per dovere di cronaca, che non importa dove sia la cartella del vostro progetto, mentre è importante la sua struttura interna.

Dopo che git ha fatto il suo lavoro, la directory gd_extension dovrebbe somigliare a quella nell’immagine in Fig.2.

Adesso possiamo eseguire, in sequenza, con questi due comandi:

PS C:\gd_extension\>cd godot-cpp
PS C:\gd_extension\godot-cpp> git submodule update --init

Bene: credo che abbiate capito dove stiamo andando a parare… Stiamo creando una cartella che possa contenere tutto l’occorrente necessario al nostro progetto di Godot, pur tenendo fuori la parte in C++. Riepilogando, quindi:

  • la cartella gd_estension è semplicemente il contenitore del progetto nella sua totalità.
  • La cartella demo è il contenitore del solo progetto di Godot, alla maniera classica.
  • La cartella godot-cpp è il contenitore dei sorgenti necessari per GDExtension
  • la cartella src è quella dove andremo a depositare i nostri files in C++.

Se avete capito il gioco a cui stiamo giocando, dobbiamo compilare i sorgenti scaricati dal repository. Faccio notare che non sono gli stessi sorgenti utilizzati per compilare Godot, ma sono specifici per GDExtension, tant’è che mai, prima d’ora, abbiamo visto quel godot-cpp alla fine dell’URL, vero? C’è, però, un piccolo problema: ci sono diverse versioni di Godot, anche se non sembra. Ci sono versioni differenti in base al sistema operativo, versioni differenti in base al fatto che siano di debug oppure di release… E siamo rimasti sul facile, perché la verità è che le versioni sono diverse anche per singole build! Non potete sapere se la piccola modificuccia della minuscola funzione di turno è proprio quella che vi si incastrerà di traverso e, questa cosa, potrebbe essere una scocciatura. Sai che c’è? Glielo chiediamo direttamente a Godot di che razza di versione è, perché se non lo sa lui, chi altri? Quindi andiamo con PowerShell nella stessa cartella dove c’è il Godot che utilizziamo per aprire l’editor, detta terra terra. Occhio che potrebbero servire le credenziali di amministratore, questa volta, soprattutto se l’eseguibile è stato copiato nella cartella Programmi di Windows. Digitiamo, quindi:

godot --dump-extension-api --dump-gdextension-interface

Per amor di precisione, nel comando precedente godot sarebbe il nome dato proprio a Godot Engine, l’eseguibile scaricato per avviare l’editor: adeguatevi di conseguenza. A questo punto, Godot ci scriverà una vera e propria autobiografia in un file chiamato extension_api.json ed un file header chiamato gdextension_interface.h. Prendete quei due file, tagliateli (tanto non serve a niente lasciarli lì) e copiateli nella cartella gdextension che troverete sotto quella godot-cpp creata da git al momento del cloning.

Prepariamo il divano… sbilenco

E’ arrivato il momento di configurare VS Code affinché si comporti bene e ci lasci lavorare senza abbattere santi a cannonate. VS Code, sinceramente parlando, non è il miglior IDE in circolazione, ma ha il vantaggio di supportare tutta una serie di linguaggi, compreso C# per Godot ed è probabile, anzi, che alcuni di voi lo utilizzino di già.

Prima di proseguire, sappiate che vi voglio così bene che vi ho preparato un file .zip con alcuni files che andremo ad utilizzare, esattamente gli stessi previsti dalla guida ufficiale: scaricatelo cliccando sull’icona. Copiate il file SConstruct nella cartella gd_extension, quella principale del progetto, mentre ignorate di sana pianta, per il momento, il file gdexample.gdextension. Tutti gli altri vanno copiati nella cartella src: spiegheremo come funzionano più avanti. Al momento mi interessa farvi configurare VS Code per poterci lavorare più o meno comodamente e con l’ausilio dei suggerimenti in linea, mentre modificherete il codice in C++.


La prima volta che si apre VS Code, l’IDE è in grado di fare poco o niente. Occorre installare dei plug in che permettono di configurarlo di conseguenza.

Come in Fig.3, selezionate l’ultima icona in basso dalla barra laterale sinistra ed inserite C++ nel box di ricerca in alto.

Installate tutti i plug in con l’icona nella parte destra della figura: sono gli elementi dell’IDE e del debugger originali di Microsoft per lavorare con il C++.


Installati i plug in, dal menù File selezionate Open Folder e andate a cercare sempre la nostra solita cartella gd_extension.

A questo punto, l’IDE dovrebbe apparirvi un po’ come in Fig.4. Dovrebbe esserci, in basso, una sezione in cui è presente, tra le altre, la voce Terminal. In caso contrario, dal menù View cercate e cliccate su Terminal in modo da aprirla.

Come vedete, si tratta proprio di una vista su una PowerShell che punta già alla nostra cartella gd_extension. La useremo per compilare il nostro progetto.


Senza indugiare oltre, spostatevi nella finestra del terminale e inserite il comando:

PS C:\gd_extension> scons platform=windows

Attenzione prima di procedere! Metti che abbiate avuto la malsana idea di crearvi una versione taroccata di Godot (come il sottoscritto, ndr.) tipo che abbiate compilato una versione con vettori a 64 bit, il comando precedente diventerebbe:

PS C:\gd_extension> scons platform=windows precision=double

In altre parole, dovete far in modo che sempre(!) la compilazione di GDExtension e dei vostri sorgenti, sia coerente con quella dell’engine utilizzato. Se usate una versione scaricata dal sito ufficiale di Godot, potete limitarvi a specificare la piattaforma.

Una volta inserito il comando nella PowerShell, SCons inizierà a fare le sue cose. Vedrete una marea di nomi di files stranamente conosciuti, anche se terminano tutti con l’estensione .cpp. Si tratta proprio delle librerie necessarie a GDExtension che, per chiari motivi organizzativi, hanno lo stesso nome delle classi che avete già utilizzato con GDScript (perché voi lo conoscete come l’Ave Maria il GDScript, vero?).

Ad un certo punto, potrebbe sembrare che SCons di pianti in prossimità di Linking Static Library… (Fig.5) ma è per finta: sta creando la DLL che ci servirà all’interno del progetto.


Al termine della compilazione, dovrebbe comparire uno strillone manzoniano che, in fin dei conti, significa che tutto è andato a buon fine e che termina con un tranquillizzante scons: done building targets.

Ci fermiamo qui, per il momento. Dal prossimo articolo, cercheremo di capire come funzionano tutti questi files.


  1. Link ufficiale al sito di Visual Studio Code ↩︎

L’IDEale

Se c’è una cosa che apprezzo particolarmente di Godot è che mette a disposizione un ambiente totalmente integrato, praticamente coccoloso, dove poter fare tutto senza troppi fronzoli. Non capisco chi ama complicarsi la vita con compilatori a riga di comando o altri tool che sembrano fatti apposta per alimentare il masochismo, se non altro perché, a lavorare comodi, ci guadagna tantissimo la produttività, cioè la capacita di ottenere il massimo risultato con il minimo sforzo… Però, questa volta ci tocca. Mentre L’IDE di Godot, almeno finché utilizzato con GDScript, ha tutto l’occorrente per sviluppare videogiochi, quando si passa a pratiche più avanzate, la comodità va a farsi benedire e, come avrete visto con l’articolo precedente, spuntano tool a riga di comando e compilatori esterni. Cerchiamo, quindi, di recuperare un po’ della nostra amata coccolosità.

Visual Studio Code

Siccome non vogliamo ridurci, davvero, con il Blocco note di Windows, forse è il caso di procurarci un IDE, magari open-source, qualcosa per aiutarci nel lavoro della codifica. Personalmente ho scelto e consiglio caldamente Visual Studio Code1, perché è relativamente leggero, è un progetto maturo, rispetta le caratteristiche precedenti e, tutto sommato, non è difficile da istruire in modo che diventi il più docile possibile. Avremo già a che fare con il C++, ci manca solo che ci si metta pure l’IDE, no? Quindi, andiamoci a scaricare il programma dal link ufficiale, al solito in calce, ed installiamolo. Mi perdonerete, ma ho la pretesa di non dover spiegare la procedura a persone che si accingono a scrivere videogiochi, per giunta in C++: credo riusciate ad arrangiarvi… Una volta fatta questa operazione, lasciate pure riposare VS Code, lo gusterete al momento giusto.

Preparare il progetto in Godot

La preparazione del progetto in Godot non ha niente di speciale. Sia ben chiaro che stiamo creando un progetto di prova, al momento. Una volta messo in piedi questo, magari dopo aver studiato un pochetto meglio C++, siete autorizzati a creare l’MMO strafigo che avete sempre sognato. Per il momento voliamo basso. Anzi, teniamo i piedi ben piantati per terra, che è meglio, e continuiamo con il nostro tutorial. Useremo la PowerShell di Windows: state attenti che, in base a dove sono posizionate le vostre cartelle, potrebbero essere necessari i privilegi di amministratore.

In sequenza, eseguite questi compiti:

  • Create nella root di C: una cartella che chiamerete gd_extension: quando avrete capito come funziona il gioco, farete come vi pare…
  • Sotto quella cartella me ne create una che chiameremo demo ed un’altra che chiameremo src
  • Senza perdervi in un bicchiere d’acqua, create un nuovo progetto da Godot come avete sempre fatto in altre occasioni, solo stando attenti che la cartella di destinazione sia proprio la demo sotto gs_extension. Lasciatelo pure vuoto, salvate tutto e chiudete.
  • Adesso aprite PowerShell, posizionatevi sotto la cartella gd_extension e digitate il comando seguente:
PS C:\gd_extension\> git clone -b 4.4 https://github.com/godotengine/godot-cpp

Solite considerazioni per la versione, non mi ripeto. In realtà, una piccola considerazione serve: qui non occorre specificare stable, ma solo il numero di versione e build. Vi dico, per dovere di cronaca, che non importa dove sia la cartella del vostro progetto, mentre è importante la sua struttura interna.

Dopo che git ha fatto il suo lavoro, la directory gd_extension dovrebbe somigliare a quella nell’immagine in Fig.2.

Adesso possiamo eseguire, in sequenza, con questi due comandi:

PS C:\gd_extension\>cd godot-cpp
PS C:\gd_extension\godot-cpp> git submodule update --init

Bene: credo che abbiate capito dove stiamo andando a parare… Stiamo creando una cartella che possa contenere tutto l’occorrente necessario al nostro progetto di Godot, pur tenendo fuori la parte in C++. Riepilogando, quindi:

  • la cartella gd_estension è semplicemente il contenitore del progetto nella sua totalità.
  • La cartella demo è il contenitore del solo progetto di Godot, alla maniera classica.
  • La cartella godot-cpp è il contenitore dei sorgenti necessari per GDExtension
  • la cartella src è quella dove andremo a depositare i nostri files in C++.

Se avete capito il gioco a cui stiamo giocando, dobbiamo compilare i sorgenti scaricati dal repository. Faccio notare che non sono gli stessi sorgenti utilizzati per compilare Godot, ma sono specifici per GDExtension, tant’è che mai, prima d’ora, abbiamo visto quel godot-cpp alla fine dell’URL, vero? C’è, però, un piccolo problema: ci sono diverse versioni di Godot, anche se non sembra. Ci sono versioni differenti in base al sistema operativo, versioni differenti in base al fatto che siano di debug oppure di release… E siamo rimasti sul facile, perché la verità è che le versioni sono diverse anche per singole build! Non potete sapere se la piccola modificuccia della minuscola funzione di turno è proprio quella che vi si incastrerà di traverso e, questa cosa, potrebbe essere una scocciatura. Sai che c’è? Glielo chiediamo direttamente a Godot di che razza di versione è, perché se non lo sa lui, chi altri? Quindi andiamo con PowerShell nella stessa cartella dove c’è il Godot che utilizziamo per aprire l’editor, detta terra terra. Occhio che potrebbero servire le credenziali di amministratore, questa volta, soprattutto se l’eseguibile è stato copiato nella cartella Programmi di Windows. Digitiamo, quindi:

godot --dump-extension-api --dump-gdextension-interface

Per amor di precisione, nel comando precedente godot sarebbe il nome dato proprio a Godot Engine, l’eseguibile scaricato per avviare l’editor: adeguatevi di conseguenza. A questo punto, Godot ci scriverà una vera e propria autobiografia in un file chiamato extension_api.json ed un file header chiamato gdextension_interface.h. Prendete quei due file, tagliateli (tanto non serve a niente lasciarli lì) e copiateli nella cartella gdextension che troverete sotto quella godot-cpp creata da git al momento del cloning.

Prepariamo il divano… sbilenco

E’ arrivato il momento di configurare VS Code affinché si comporti bene e ci lasci lavorare senza abbattere santi a cannonate. VS Code, sinceramente parlando, non è il miglior IDE in circolazione, ma ha il vantaggio di supportare tutta una serie di linguaggi, compreso C# per Godot ed è probabile, anzi, che alcuni di voi lo utilizzino di già.

Prima di proseguire, sappiate che vi voglio così bene che vi ho preparato un file .zip con alcuni files che andremo ad utilizzare, esattamente gli stessi previsti dalla guida ufficiale: scaricatelo cliccando sull’icona. Copiate il file SConstruct nella cartella gd_extension, quella principale del progetto, mentre ignorate di sana pianta, per il momento, il file gdexample.gdextension. Tutti gli altri vanno copiati nella cartella src: spiegheremo come funzionano più avanti. Al momento mi interessa farvi configurare VS Code per poterci lavorare più o meno comodamente e con l’ausilio dei suggerimenti in linea, mentre modificherete il codice in C++.


La prima volta che si apre VS Code, l’IDE è in grado di fare poco o niente. Occorre installare dei plug in che permettono di configurarlo di conseguenza.

Come in Fig.3, selezionate l’ultima icona in basso dalla barra laterale sinistra ed inserite C++ nel box di ricerca in alto.

Installate tutti i plug in con l’icona nella parte destra della figura: sono gli elementi dell’IDE e del debugger originali di Microsoft per lavorare con il C++.


Installati i plug in, dal menù File selezionate Open Folder e andate a cercare sempre la nostra solita cartella gd_extension.

A questo punto, l’IDE dovrebbe apparirvi un po’ come in Fig.4. Dovrebbe esserci, in basso, una sezione in cui è presente, tra le altre, la voce Terminal. In caso contrario, dal menù View cercate e cliccate su Terminal in modo da aprirla.

Come vedete, si tratta proprio di una vista su una PowerShell che punta già alla nostra cartella gd_extension. La useremo per compilare il nostro progetto.


Senza indugiare oltre, spostatevi nella finestra del terminale e inserite il comando:

PS C:\gd_extension> scons platform=windows

Attenzione prima di procedere! Metti che abbiate avuto la malsana idea di crearvi una versione taroccata di Godot (come il sottoscritto, ndr.) tipo che abbiate compilato una versione con vettori a 64 bit, il comando precedente diventerebbe:

PS C:\gd_extension> scons platform=windows precision=double

In altre parole, dovete far in modo che sempre(!) la compilazione di GDExtension e dei vostri sorgenti, sia coerente con quella dell’engine utilizzato. Se usate una versione scaricata dal sito ufficiale di Godot, potete limitarvi a specificare la piattaforma.

Una volta inserito il comando nella PowerShell, SCons inizierà a fare le sue cose. Vedrete una marea di nomi di files stranamente conosciuti, anche se terminano tutti con l’estensione .cpp. Si tratta proprio delle librerie necessarie a GDExtension che, per chiari motivi organizzativi, hanno lo stesso nome delle classi che avete già utilizzato con GDScript (perché voi lo conoscete come l’Ave Maria il GDScript, vero?).

Ad un certo punto, potrebbe sembrare che SCons di pianti in prossimità di Linking Static Library… (Fig.5) ma è per finta: sta creando la DLL che ci servirà all’interno del progetto.


Al termine della compilazione, dovrebbe comparire uno strillone manzoniano che, in fin dei conti, significa che tutto è andato a buon fine e che termina con un tranquillizzante scons: done building targets.

Ci fermiamo qui, per il momento. Dal prossimo articolo, cercheremo di capire come funzionano tutti questi files.


  1. Link ufficiale al sito di Visual Studio Code ↩︎

Ultima modifica: