Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Linguaggi di scripting

Questa lezione fornisce una panoramica dei linguaggi di scripting disponibili in Godot. Imparerete i pro e i contro di ogni opzione. Nella prossima parte, scriverete il vostro primo script utilizzando GDScript.

Gli script si collegano a un nodo e ne estendono il comportamento. Ciò significa che gli script ereditano tutte le funzioni e le proprietà del nodo a cui si collegano.

Ad esempio, prendiamo un gioco in cui un nodo Camera2D segue una nave. Il nodo Camera2D segue il suo genitore per impostazione predefinita. Immaginiamo di volere che la telecamera si muova quando il giocatore subisce un danno. Poiché questa funzione non è integrata in Godot, si dovrebbe collegare uno script al nodo Camera2D e codificare il suo movimento.

../../_images/scripting_camera_shake.gif

Linguaggi di scripting disponibili

Godot offers four gameplay programming languages: GDScript, C#, and, via its GDExtension technology, C and C++. There are more community-supported languages, but these are the official ones.

You can use multiple languages in a single project. For instance, in a team, you could code gameplay logic in GDScript as it's fast to write, and use C# or C++ to implement complex algorithms and maximize their performance. Or you can write everything in GDScript or C#. It's your call.

We provide this flexibility to answer the needs of different game projects and developers.

Which language should I use?

Se siete principianti, vi consigliamo di iniziare con GDScript. Abbiamo creato questo linguaggio appositamente per Godot e per le esigenze degli sviluppatori di giochi. Ha una sintassi leggera e semplice e fornisce la più stretta integrazione con Godot.

../../_images/scripting_gdscript.png

Per C#, è necessario un editor di codice esterno come VSCode o Visual Studio. Sebbene il supporto di C# sia ormai maturo, si trovano meno risorse di apprendimento rispetto a GDScript. Per questo motivo, consigliamo C# soprattutto agli utenti che hanno già esperienza con questo linguaggio.

Analizziamo le caratteristiche di ogni linguaggio , nonché i suoi pro e i suoi contro.

GDScript

GDScript è un linguaggio di programmazione orientato agli oggetti e imperativo e costruito appositamente per Godot. È fatto da e per gli sviluppatori di videogiochi, per risparmiare tempo nella loro creazione. Le sue caratteristiche includono:

  • Una sintassi semplice che porta a file brevi.

  • Tempi di compilazione e caricamento rapidissimi.

  • Integrazione stretta dell'editor, con completamento del codice per i nodi, i segnali e per molte altre informazioni dalla scena a cui è collegato.

  • Built-in vector and transform types, making it efficient for heavy use of linear algebra, a must for games.

  • Supports multiple threads as efficiently as statically typed languages.

  • Niente garbage collection, perché questa funzione potrebbe intralciarti mentre realizzi i videogiochi. L'engine conta i riferimenti e gestisce la memoria per conto tuo nella maggior parte dei casi, ma puoi anche controllare la memoria se ne hai bisogno.

  • Gradual typing. Le variabili hanno tipi dinamici per impostazione predefinita, ma si possono usare anche i suggerimenti per i controlli di tipo forte.

GDScript somiglia a Python per quanto riguarda la strutturazione dei blocchi di codice tramite indentazioni, ma in pratica non funziona allo stesso modo. Si ispira a diversi linguaggi, tra cui Squirrel, Lua e Python.

Nota

Perchè non usare direttamente Python o Lua?

Anni fa, Godot utilizzava Python, poi Lua. L'integrazione di entrambi i linguaggi richiedeva molto lavoro e presentava forti limitazioni. Ad esempio, il supporto al threading era una grande sfida con Python.

Lo sviluppo di un linguaggio dedicato non ci richiede più lavoro e possiamo adattarlo alle esigenze dei game developer. Siamo ora al lavoro sull'ottimizzazione delle prestazioni e sulle funzionalità che sarebbe stato difficile offrire con i linguaggi di terze parti.

.NET / C#

As Microsoft's C# is a favorite amongst game developers, we officially support it. C# is a mature and flexible language with tons of libraries written for it. We were able to add support for it thanks to a generous donation from Microsoft.

../../_images/scripting_csharp.png

C# offers a good tradeoff between performance and ease of use, although you should be aware of its garbage collector.

Nota

You must use the .NET edition of the Godot editor to script in C#. You can download it on the Godot website's download page.

Since Godot uses .NET 6, in theory, you can use any third-party .NET library or framework in Godot, as well as any Common Language Infrastructure-compliant programming language, such as F#, Boo, or ClojureCLR. However, C# is the only officially supported .NET option.

Nota

Il codice GDScript stesso non viene eseguito così velocemente come il codice C# o C++ compilato. Tuttavia, gran parte del codice di script richiama funzioni scritte con algoritmi veloci nel codice C++ interno al motore. In molti casi, scrivere la logica di gioco in GDScript, C# o C++ non avrà un impatto significativo sulle prestazioni.

Attenzione

Projects written in C# using Godot 4 currently cannot be exported to the web platform. To use C# on that platform, consider Godot 3 instead. Android and iOS platform support is available as of Godot 4.2, but is experimental and some limitations apply.

C++ via GDExtension

GDExtension allows you to write game code in C++ without needing to recompile Godot.

../../_images/scripting_cpp.png

You can use any version of the language or mix compiler brands and versions for the generated shared libraries, thanks to our use of an internal C API Bridge.

GDExtension is the best choice for performance. You don't need to use it throughout an entire game, as you can write other parts in GDScript or C#.

When working with GDExtension, the available types, functions, and properties closely resemble Godot's actual C++ API.

Sommario

Gli scripts sono file contenenti codice che aggiungi ad un nodo per estendere le sue funzionalità.

Godot supports four official scripting languages, offering you flexibility between performance and ease of use.

È possibile mescolare i linguaggi, ad esempio implementare algoritmi impegnativi con C o C++ e scrivere la maggior parte della logica di gioco con GDScript o C#.