Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Domande frequenti

Cosa posso fare con Godot? Quanto costa? Quali sono le condizioni di licenza?

Godot is Free and open source Software available under the OSI-approved MIT license. This means it is free as in "free speech" as well as in "free beer."

In breve:

  • Sei libero di scaricare e utilizzare Godot per qualsiasi scopo: personale, non-profit, commerciale o altro.

  • Sei libero di modificare, distribuire, ridistribuire e remixare Godot a tuo piacimento, per qualsiasi motivo, sia non commerciale che commerciale.

All the contents of this accompanying documentation are published under the permissive Creative Commons Attribution 3.0 (CC BY 3.0) license, with attribution to "Juan Linietsky, Ariel Manzur and the Godot Engine community."

Loghi e icone sono in linea generale coperti dalla stessa licenza Creative Commons. Alcune librerie di terze parti incluse con il codice sorgente di Godot possono però essere coperte da diverse licenze.

For full details, look at the COPYRIGHT.txt as well as the LICENSE.txt and LOGO_LICENSE.txt files in the Godot repository.

Inoltre, vedi ` la pagina della licenza sul sito di Godot <https://godotengine.org/license>`_.

Quali piattaforme sono supportate da Godot?

Per l'editor:

  • Windows

  • macOS

  • Linux, *BSD

  • Android (sperimentale)

  • Web (experimental)

Per esportare i tuoi giochi:

  • Windows

  • macOS

  • Linux, *BSD

  • Android

  • iOS

  • Web

Both 32- and 64-bit binaries are supported where it makes sense, with 64 being the default. Official macOS builds support Apple Silicon natively as well as x86_64.

Alcuni utenti hanno riportato di aver compilato e usato Godot con successo su sistemi ARM-based con Linux, come il Raspberry Pi.

The Godot team can't provide an open source console export due to the licensing terms imposed by console manufacturers. Regardless of the engine you use, though, releasing games on consoles is always a lot of work. You can read more about Supporto console in Godot.

Per saperne di più, vedi le sezioni su exporting e compilare Godot da solo.

Nota

Godot 3 also had support for Universal Windows Platform (UWP). This platform port was removed in Godot 4 due to lack of maintenance, and it being deprecated by Microsoft. It is still available in the current stable release of Godot 3 for interested users.

Quali sono i linguaggi di programmazione supportati in Godot?

The officially supported languages for Godot are GDScript, C#, and C++. See the subcategories for each language in the scripting section.

Se si sta appena iniziando con Godot o lo sviluppo di giochi in generale, GDScript è il linguaggio consigliato da imparare e utilizzare dal momento che è nativo di Godot. Mentre i linguaggi di scripting tendono ad essere meno performanti di quelli di livello inferiore nel lungo periodo, per la prototipazione, lo sviluppo di prodotti a basso costo (MVP), e concentrandosi sul time-to-market (TTM), GDScript fornirà un modo veloce, facile e funzionale di sviluppare i vostri giochi.

Note that C# support is still relatively new, and as such, you may encounter some issues along the way. C# support is also currently missing on the web platform. Our friendly and hard-working development community is always ready to tackle new problems as they arise, but since this is an open source project, we recommend that you first do some due diligence yourself. Searching through discussions on open issues is a great way to start your troubleshooting.

As for new languages, support is possible via third parties with GDExtensions. (See the question about plugins below). Work is currently underway, for example, on unofficial bindings for Godot to Python and Nim.

Cos'è GDScript e perché dovrei usarlo?

GDScript is Godot's integrated scripting language. It was built from the ground up to maximize Godot's potential in the least amount of code, affording both novice and expert developers alike to capitalize on Godot's strengths as fast as possible. If you've ever written anything in a language like Python before, then you'll feel right at home. For examples and a complete overview of the power GDScript offers you, check out the GDScript scripting guide.

There are several reasons to use GDScript, especially when you are prototyping, in alpha/beta stages of your project, or are not creating the next AAA title. The most salient reason is the overall reduction of complexity.

The original intent of creating a tightly integrated, custom scripting language for Godot was two-fold: first, it reduces the amount of time necessary to get up and running with Godot, giving developers a rapid way of exposing themselves to the engine with a focus on productivity; second, it reduces the overall burden of maintenance, attenuates the dimensionality of issues, and allows the developers of the engine to focus on squashing bugs and improving features related to the engine core, rather than spending a lot of time trying to get a small set of incremental features working across a large set of languages.

Since Godot is an open source project, it was imperative from the start to prioritize a more integrated and seamless experience over attracting additional users by supporting more familiar programming languages, especially when supporting those more familiar languages would result in a worse experience. We understand if you would rather use another language in Godot (see the list of supported options above). That being said, if you haven't given GDScript a try, try it for three days. Just like Godot, once you see how powerful it is and rapid your development becomes, we think GDScript will grow on you.

Ulteriori informazioni su come prendere mano con GDScript o altri linguaggi tipizzati dinamicamente possono essere trovate nel tutorial GDScript: An introduction to dynamic languages.

Quali sono state le motivazioni alla base della creazione di GDScript?

In the early days, the engine used the Lua scripting language. Lua can be fast thanks to LuaJIT, but creating bindings to an object-oriented system (by using fallbacks) was complex and slow and took an enormous amount of code. After some experiments with Python, that also proved difficult to embed.

I motivi principali per la creazione di un linguaggio di scripting personalizzato per Godot sono stati:

  1. Cattivo supporto ai thread nella maggior parte delle VM degli altri linguaggi, e Godot usa thread (Lua, Python, Squirrel, JS, AS, ecc.).

  2. Non esiste un buon supporto per l'estensione delle classi nella maggior parte delle VM degli altri linguaggi, e adattarle al funzionamento di Godot è altamente inefficiente (Lua, Python, JS).

  3. Many existing languages have horrible interfaces for binding to C++, resulting in a large amount of code, bugs, bottlenecks, and general inefficiency (Lua, Python, Squirrel, JavaScript, etc.). We wanted to focus on a great engine, not a great number of integrations.

  4. No native vector types (Vector3, Transform3D, etc.), resulting in highly reduced performance when using custom types (Lua, Python, Squirrel, JavaScript, ActionScript, etc.).

  5. Il garbage collector produce rallentamenti o un uso della memoria inutilmente alto (Lua, Python, JavaScript, ActionScript, ecc.).

  6. Difficulty integrating with the code editor for providing code completion, live editing, etc. (all of them).

GDScript è stato progettato per ridurre i problemi di cui sopra e altri ancora.

What 3D model formats does Godot support?

Puoi trovare informazioni dettagliate sui formati supportati, su come esportarli da software di modellazione 3D, e su come importarli in Godot nella documentazione Importare Scene 3D.

Sarà [inserire SDK proprietari come FMOD, Gameworks, ecc] supportato in Godot?

The aim of Godot is to create a free and open source MIT-licensed engine that is modular and extendable. There are no plans for the core engine development community to support any third-party, closed-source/proprietary SDKs, as integrating with these would go against Godot's ethos.

That said, because Godot is open source and modular, nothing prevents you or anyone else interested in adding those libraries as a module and shipping your game with them, as either open- or closed-source.

Per vedere come possa essere fornito il supporto per il SDK scelto, vedi la domanda sui Plugins poco sotto.

If you know of a third-party SDK that is not supported by Godot but that offers free and open source integration, consider starting the integration work yourself. Godot is not owned by one person; it belongs to the community, and it grows along with ambitious community contributors like you.

Come posso estendere Godot?

Per estendere Godot, ad esempio creando plugin per Godot Editor o aggiungere il supporto per ulteriori linguaggi, fai riferimento a EditorPlugins e ai tool script.

Also, see the official blog post on GDExtension, a way to develop native extensions for Godot:

You can also take a look at the GDScript implementation, the Godot modules, as well as the Jolt physics engine integration for Godot. This would be a good starting point to see how another third-party library integrates with Godot.

Come installo l'editor di Godot sul mio Sistema Operativo (per l'integrazione col desktop)?

Visto che non devi installare Godot sul tuo sistema per usarlo, l'integrazione col desktop non è automatica. Ci sono due modi per superare questo problema. È possibile installare Godot da Steam (tutte le piattaforme), Scoop (Windows), Homebrew (macOS) or Flathub (Linux). Questo eseguirà automaticamente i passaggi necessari per l'integrazione col desktop.

Alternativamente, puoi eseguire manualmente i passaggi che un installer eseguirebbe per te:

Windows

  • Sposta l'eseguibile di Godot in una posizione stabile (cioè fuori della cartella Download), così da non spostarlo accidentalmente e rompere il collegamento in futuro.

  • Fai clic con il pulsante destro sull'eseguibile di Godot e scegli Crea collegamento.

  • Move the created shortcut to %APPDATA%\Microsoft\Windows\Start Menu\Programs. This is the user-wide location for shortcuts that will appear in the Start menu. You can also pin Godot in the task bar by right-clicking the executable and choosing Pin to Task Bar.

macOS

Trascina l'applicazione Godot estratta su /Applicazioni/Godot.app, quindi trascinala sul Dock se lo desideri. Spotlight sarà in grado di trovare Godot fintanto che si trova in /Applicazioni o in ~/Applicazioni.

Linux

  • Sposta l'eseguibile di Godot in una posizione stabile (cioè al di fuori della cartella Download), in modo da non spostarlo accidentalmente e rompere il collegamento in futuro.

  • Rinomina e sposta l'eseguibile di Godot in una posizione presente nella tua variabile d'ambiente PATH. Di solito è /usr/local/bin/godot o /usr/bin/godot. Questo metodo richiede i privilegi d'amministratore, ma ti pemette di eseguire Godot da un terminale scrivendo``godot``.

    • Se non puoi spostare l'eseguibile dell'editor Godot in una posizione protetta, puoi tenerlo da qualche parte nella tua cartella home e modificare la riga Path= del file .desktop linkato qui sotto andando a inserire l'intero percorso assoluto del file eseguibile Godot.

  • Save this .desktop file to $HOME/.local/share/applications/. If you have administrator privileges, you can also save the .desktop file to /usr/local/share/applications to make the shortcut available for all users.

L'editor Godot è un'applicazione portabile?

Nella configurazione di default, Godot è semi-portatile. Il suo eseguibile può partire da ogni luogo (incluso luoghi non scrivibili) e non richiede mai privilegi di amministratore.

Tuttavia, i file di configurazione verranno scritti nella configurazione a livello di utente o nella cartella dei dati. Questo di solito è un buon approccio, ma questo significa che i file di configurazione non verranno trasferiti tra le macchine se si copia la cartella contenente l'eseguibile Godot. Vedi File paths in Godot projects per maggiori informazioni.

Se si è interessati a operazioni veramente portabili (ad esempio per l'uso su una chiavetta USB), seguire i passaggi in Self-contained mode.

Perché Godot usa Vulkan o OpenGL invece di Direct3D?

Godot aims for cross-platform compatibility and open standards first and foremost. OpenGL and Vulkan are the technologies that are both open and available on (nearly) all platforms. Thanks to this design decision, a project developed with Godot on Windows will run out of the box on Linux, macOS, and more.

Poiché Godot ha solo poche persone che lavorano sul suo renderer, preferiremmo avere meno backend di rendering da mantenere. Inoltre, l'utilizzo di una singola API su tutte le piattaforme permette maggiore consistenza e meno problemi riguardanti una piattaforma specifica.

In the long term, we may develop a Direct3D 12 renderer for Godot (mainly for Xbox), but Vulkan and OpenGL will remain the default rendering backends on all platforms, including Windows.

Perché Godot cerca di mantenere piccolo il suo set di funzionalità principali?

Godot intentionally does not include features that can be implemented by add-ons unless they are used very often. One example of something not used often is advanced artificial intelligence functionality.

Ci sono diverse ragioni per questo:

  • Code maintenance and surface for bugs. Every time we accept new code in the Godot repository, existing contributors often take the responsibility of maintaining it. Some contributors don't always stick around after getting their code merged, which can make it difficult for us to maintain the code in question. This can lead to poorly maintained features with bugs that are never fixed. On top of that, the "API surface" that needs to be tested and checked for regressions keeps increasing over time.

  • Facilità di contribuire Mantenendo il repository piccolo e ordinato, rimane facile e veloce compilare dalla risorsa principale. Questo rende molto più facile per i nuovi contributori iniziare con Godot, senza che devano acquistare hardware di alto livello.

  • Mantenere una dimensione piccola del file binario dell'editor. Non tutti hanno una connessione veloce ad internet. Assicurarsi che chiunque possa scaricare l'editor di Godot, estrarlo ed eseguirlo in meno di 5 minuti rende Godot più accessibile agli sviluppatori.

  • Keeping the binary size small for export templates. This directly impacts the size of projects exported with Godot. On mobile and web platforms, keeping file sizes low is important to ensure fast installation and loading on underpowered devices. Again, there are many countries where high-speed Internet is not readily available. To add to this, strict data usage caps are often in effect in those countries.

Per tutte le ragioni dette precedentemente, dobbiamo essere selettivi sulle funzionalità principali da accettare in Godot. Questo è il motivo per cui, in future versioni di Godot, stiamo puntando a spostare alcune caratteristiche principali in componenti aggiuntivi supportati ufficialmente. In termini di dimensione del file binario, questo ha anche il vantaggio di includere solo quello che è usato nel tuo progetto. (Nel frattempo, puoi :ref:`compilare dei template di esportazione personalizzati con le funzionalità non usate disabilitate <doc_optimizing_for_size> per ottimizzare la dimensione di distribuzione del tuo progetto.)

Come devono essere creati i contenuti per gestire più risoluzioni e proporzioni?

Questa domanda si presenta spesso ed è probabilmente grazie al malinteso creato da Apple quando originariamente ha raddoppiato la risoluzione dei loro dispositivi. Ha fatto pensare alla gente che avere i stessi contenuti in diverse risoluzioni fosse una buona idea, così tanti hanno continuato su quella strada. Inizialmente funzionava fino a un certo punto e solo per i dispositivi Apple, ma poi sono stati creati diversi dispositivi Android e Apple con risoluzioni e proporzioni diverse, con una gamma molto ampia di dimensioni e DPI.

The most common and proper way to achieve this is to, instead, use a single base resolution for the game and only handle different screen aspect ratios. This is mostly needed for 2D, as in 3D, it's just a matter of camera vertical or horizontal FOV.

  1. Choose a single base resolution for your game. Even if there are devices that go up to 1440p and devices that go down to 400p, regular hardware scaling in your device will take care of this at little or no performance cost. The most common choices are either near 1080p (1920x1080) or 720p (1280x720). Keep in mind the higher the resolution, the larger your assets, the more memory they will take and the longer the time it will take for loading.

  2. Use the stretch options in Godot; canvas items stretching while keeping aspect ratios works best. Check the Multiple resolutions tutorial on how to achieve this.

  3. Determina una risoluzione minima e quindi decidi se vuoi che il tuo gioco si adatti verticalmente o orizzontalmente per i diversi aspect ratio, o se ce n'è una minima e vuoi invece che appaiano delle barre nere. Questo è anche spiegato nello step precedente: Multiple resolutions .

  4. Per le interfacce utente, usa anchoring in modo da decidere dove i controlli dovrebbero essere e muoversi. Se la UI è più complessa, considera i Containers.

E questo è tutto! Il tuo gioco dovrebbe funzionare con più risoluzioni.

Quando uscirà la prossima versione di Godot?

Quando è pronta! Vedi Quando uscirà la prossima versione? per maggiori informazioni.

Which Godot version should I use for a new project?

We recommend using Godot 4.x for new projects, but depending on the feature set you need, it may be better to use 3.x instead. See Which version should I use for a new project? for more information.

Should I upgrade my project to use new Godot versions?

Some new versions are safer to upgrade to than others. In general, whether you should upgrade depends on your project's circumstances. See Should I upgrade my project to use new engine versions? for more information.

Vorrei contribuire! Come posso iniziare?

Awesome! As an open source project, Godot thrives off of the innovation and the ambition of developers like you.

The best way to start contributing to Godot is by using it and reporting any issues that you might experience. A good bug report with clear reproduction steps helps your fellow contributors fix bugs quickly and efficiently. You can also report issues you find in the online documentation.

If you feel ready to submit your first PR, pick any issue that resonates with you from one of the links above and try your hand at fixing it. You will need to learn how to compile the engine from sources, or how to build the documentation. You also need to get familiar with Git, a version control system that Godot developers use.

We explain how to work with the engine source, how to edit the documentation, and what other ways to contribute are there in our documentation for contributors.

Ho una grande idea per Godot. Come posso condividerla?

We are always looking for suggestions about how to improve the engine. User feedback is the main driving force behind our decision-making process, and limitations that you might face while working on your project are a great data point for us when considering engine enhancements.

If you experience a usability problem or are missing a feature in the current version of Godot, start by discussing it with our community. There may be other, perhaps better, ways to achieve the desired result that community members could suggest. And you can learn if other users experience the same issue, and figure out a good solution together.

If you come up with a well-defined idea for the engine, feel free to open a proposal issue. Try to be specific and concrete while describing your problem and your proposed solution — only actionable proposals can be considered. It is not required, but if you want to implement it yourself, that's always appreciated!

If you only have a general idea without specific details, you can open a proposal discussion. These can be anything you want, and allow for a free-form discussion in search of a solution. Once you find one, a proposal issue can be opened.

Please, read the readme document before creating a proposal to learn more about the process.

È possibile utilizzare Godot per creare applicazioni che non siano giochi?

Sì! Godot dispone di un ampio sistema di UI integrato, e la sua piccola dimensione di distribuzione può renderlo un'alternativa adatta a framework come Electron o Qt.

Quando si crea un'applicazione non di gioco, assicurarsi di abilitare modalità basso-uso processore nelle impostazioni del progetto per diminuire l'uso di CPU e GPU.

Controlla Material Maker e Pixelorama per esempi di applicazioni open source fatte con Godot.

È possibile utilizzare Godot come libreria?

Godot è pensato per essere usato con il suo editor. Ti consigliamo di provarlo, perché molto probabilmente ti farà risparmiare tempo a lungo termine. Non ci sono piani per rendere Godot utilizzabile come libreria, in quanto renderebbe il resto del motore più contorto e difficile da usare per gli utenti occasionali.

Se si desidera utilizzare una libreria di rendering, considera invece l'utilizzo di un motore di rendering stabilito. Tieni presente che i motori di rendering di solito hanno comunità più piccole rispetto a quella di Godot. Ciò renderà più difficile trovare le risposte alle tue domande.

Quale toolkit di interfaccia utente usa Godot?

Godot non usa un toolkit standard GUI come GTK, Qt o wxWidgets. Invece, usa il proprio toolkit di interfaccia utente, renderizzato usando OpenGL ES o Vulkan. Questo toolkit è esposto sotto forma di nodi Control, che sono usati per visualizzare l'editor (che è scritto in C++). Questi nodi Control possono anche essere utilizzati nei progetti da qualsiasi linguaggio di scripting supportato da Godot.

Questo toolkit personalizzato permette di beneficiare dell'accelerazione hardware e di avere un aspetto coerente su tutte le piattaforme. Oltre a questo, non ha a che fare con le limitazioni della licenza LGPL che vengono con GTK o Qt. Infine, questo significa che Godot sta "mangiando il suo stesso cibo per cani" poiché l'editor stesso è uno degli utilizzatori più complessi del sistema UI di Godot.

Questo toolkit UI personalizzato non può essere usato come libreria, ma puoi ancora usare Godot per creare applicazioni che non siano giochi usando l'editor.

Why does Godot use the SCons build system?

Godot uses the SCons build system. There are no plans to switch to a different build system in the near future. There are many reasons why we have chosen SCons over other alternatives. For example:

  • Godot can be compiled for a dozen different platforms: all PC platforms, all mobile platforms, many consoles, and WebAssembly.

  • Developers often need to compile for several of the platforms at the same time, or even different targets of the same platform. They can't afford reconfiguring and rebuilding the project each time. SCons can do this with no sweat, without breaking the builds.

  • SCons will never break a build no matter how many changes, configurations, additions, removals etc.

  • Godot's build process is not simple. Several files are generated by code (binders), others are parsed (shaders), and others need to offer customization (modules). This requires complex logic which is easier to write in an actual programming language (like Python) rather than using a mostly macro-based language only meant for building.

  • Godot build process makes heavy use of cross-compiling tools. Each platform has a specific detection process, and all these must be handled as specific cases with special code written for each.

Please try to keep an open mind and get at least a little familiar with SCons if you are planning to build Godot yourself.

Perchè Godot non usa STL (Standard Template Library)?

Like many other libraries (Qt as an example), Godot does not make use of STL (with a few exceptions such as threading primitives). We believe STL is a great general-purpose library, but we had special requirements for Godot.

  • I modelli STL creano simboli molto grandi, il che si traduce in un enorme codice binario di debug. Utilizziamo invece alcuni modelli con nomi molto brevi.

  • La maggior parte dei nostri contenitori soddisfa esigenze particolari, come Vector, che utilizza la copia in scrittura e che usiamo per passare i dati, o il sistema RID, che richiede tempo di accesso O (1) per le prestazioni. Allo stesso modo, le nostre implementazioni di mappe hash, sono implementate per integrarsi perfettamente con i tipi di motori interni.

  • I nostri contenitori hanno un tracciamento della memoria integrato, che aiuta a monitorare meglio l'utilizzo della memoria.

  • Per array di grandi dimensioni, utilizziamo la memoria in pool, che può essere mappata su un buffer preallocato o su una memoria virtuale.

  • Utilizziamo il nostro tipo String personalizzato, in quanto quello fornito da STL è troppo elementare e manca di un adeguato supporto all'internazionalizzazione.

Perché Godot non utilizza le eccezioni?

Noi crediamo che i giochi non debbano "crashare", qualunque cosa accada. Se si verifica una situazione inaspettata si verifica, Godot genererà e stamperà un errore (che può essere ricondotto anche allo script), ma poi cercherà di gestirlo nel modo più armonioso possibile e andare avanti.

Additionally, exceptions significantly increase the binary size for the executable and result in increased compile times.

Does Godot use an ECS (Entity Component System)?

Godot does not use an ECS and relies on inheritance instead. While there is no universally better approach, we found that using an inheritance-based approach resulted in better usability while still being fast enough for most use cases.

That said, nothing prevents you from making use of composition in your project by creating child Nodes with individual scripts. These nodes can then be added and removed at run-time to dynamically add and remove behaviors.

More information about Godot's design choices can be found in this article.

Why does Godot not force users to implement DOD (Data-Oriented Design)?

While Godot internally attempts to use cache coherency as much as possible, we believe users don't need to be forced to use DOD practices.

DOD is mostly a cache coherency optimization that can only provide significant performance improvements when dealing with dozens of thousands of objects which are processed every frame with little modification. That is, if you are moving a few hundred sprites or enemies per frame, DOD won't result in a meaningful improvement in performance. In such a case, you should consider a different approach to optimization.

La stragrande maggioranza dei giochi non ne ha bisogno e Godot fornisce pratici aiutanti per fare il lavoro per la maggior parte dei casi in cui lo fai.

If a game needs to process such a large amount of objects, our recommendation is to use C++ and GDExtensions for performance-heavy tasks and GDScript (or C#) for the rest of the game.

Come posso supportare lo sviluppo o contribuire a Godot?

Vedi Ways to contribute.

Chi sta lavorando su Godot? Come posso contattarvi?

Vedi la pagina corrispondente sul ` sito web di Godot <https://godotengine.org/contact>`_.