Elenco delle funzionalità

Questa pagina ha lo scopo di elencare tutte le funzionalità attualmente supportate da Godot.

Nota

Questa pagina elenca le funzionalità supportate dall'attuale versione stabile di Godot (3.4). Altre funzionalità <https://docs.godotengine.org/en/latest/about/list_of_features.html> __ sono disponibili nell'ultima versione in sviluppo (4.0).

Funzionalità

Piattaforme

Può eseguire sia l'editor che i progetti esportati:

  • Windows 7 e successivi (64-bit e 32-bit).

  • macOS 10.12 e successivi (64-bit, x86 e ARM).

  • Linux (64-bit e 32-bit, x86 e ARM).

    • I file binari sono collegati in modo statico e possono essere eseguiti su qualsiasi distribuzione se compilati in una distribuzione base sufficientemente vecchia.

    • I file binari ufficiali sono compilati su Ubuntu 14.04.

  • HTML5 tramite WebAssembly (Firefox, Chrome, Edge, Opera).

Esegue progetti esportati:

Godot mira ad essere il più possibile platform-indipendent e può essere portato su diverse piattaforme con relativa semplicità.

Editor

Funzionalità:

  • Editor dell'albero delle scene.

  • Editor di script integrato.

  • Supporto per external script editors come Visual Studio Code o Vim.

  • GDScript debugger.

    • Ancora nessun supporto per il debugging nei thread.

  • Strumenti di monitoraggio delle prestazioni.

  • Ricaricamento dello script in tempo reale.

  • Modifica della scena in tempo reale.

    • Le modifiche si rifletteranno nell'editor e verranno mantenute dopo la chiusura del progetto in esecuzione.

  • Inspector remoto.

    • Le modifiche non si rifletteranno nell'editor e non verranno mantenute dopo la chiusura del progetto in esecuzione.

  • Replica della telecamera in tempo reale.

    • Spostare la telecamera dell'editor e vedi il risultato nel progetto in esecuzione.

  • Usa l'editor in svariate lingue fornite dalla community.

Plugins:

  • I plug-in dell'editor possono essere scaricati da: ref: Libreria dei Contenuti <doc_what_is_assetlib> per estenderne le funzionalità.

  • Crea i tuoi plugin usando GDScript per aggiungerne di nuovi

  • Download projects from the asset library in the project manager and import them directly. features or speed up your workflow.

  • Download projects from the asset library in the project manager and import them directly.

Grafica 2D

Due modalità di rendering disponibili:

  • Renderer OpenGL ES 3.0 (utilizza OpenGL 3.3 su piattaforme desktop).

    • Grafica di alta qualità. Consigliato su piattaforme desktop.

  • Renderer OpenGL ES 2.0 (utilizza OpenGL 2.1 su piattaforme desktop).

    • Consigliato su mobile e piattaforme Web.

Funzionalità:

  • Rendering di Sprite, poligoni e linee .

    • Strumenti di alto livello per disegnare linee e poligoni come Polygon2D e Line2D.

  • AnimatedSprite come supporto per la creare sprite animati.

  • Livelli di parallasse.

    • Supporto pseudo-3D, compresa l'anteprima nell'editor.

  • Illuminazione 2D con normal maps.

    • Ombre dure o morbide.

  • Rendering dei caratteri mediante bitmap (BitmapFont) o rasterizzazione tramite FreeType (DynamicFont).

    • I caratteri bitmap possono essere esportati utilizzando strumenti come BMFont.

    • DynamicFont supporta sia font monocromatici che colorati (ad esempio per le emoji). I formati supportati sono TTF, OTF e WOFF1.

    • DynamicFont supporta i contorni opzionali per i caratteri, con larghezza e colore regolabili.

    • Supporto per il sovracampionamento dei caratteri per mantenerli nitidi a risoluzioni più elevate.

  • Particelle basate sulla GPU con supporto per shader personalizzati di particelle.

  • Particelle basate sulla CPU.

Strumenti 2D

  • Telecamera 2D con movimento fluido integrato e margini di scorrimento.

  • Nodo Path2D per rappresentare un percorso nello spazio 2D.

    • Può essere disegnato nell'editor o generato proceduralmente.

    • Nodo PathFollow2D per fare in modo che i nodi seguano un Path2D.

  • Classe di supporto per la geometria 2D.

  • Nodo Line2D per disegnare linee 2D con texture.

Fisica 2D

Corpi fisici:

  • Corpi statici.

  • Corpi rigidi.

  • Corpi cinematici.

  • Giunti.

  • Aree per rilevare i corpi che entrano o escono.

** Rilevamento delle collisioni: **

  • Forme già integrate: linea, scatola, cerchio, capsula.

  • Poligoni di collisione (possono essere disegnati manualmente o generati da uno sprite nell'editor).

Grafica 3D

Due modalità di rendering disponibili:

  • Renderer OpenGL ES 3.0 (utilizza OpenGL 3.3 su piattaforme desktop).

    • Grafica di alta qualità. Consigliato su piattaforme desktop.

    • Optional HDR rendering with sRGB (enabled by default).

    • Uses an optional depth prepass (enabled by default) to reduce the cost of overdraw, which speeds up complex scene rendering.

  • Renderer OpenGL ES 2.0 (utilizza OpenGL 2.1 su piattaforme desktop).

    • Consigliato su mobile e piattaforme Web.

    • Rendering LDR per una maggiore compatibilità.

    • Non tutte le funzionalità sono disponibili. Quelle disponibili solo quando si utilizza il renderer OpenGL ES 3.0 sono contrassegnate con * GLES3 * di seguito.

Telecamera:

  • Telecamere prospettiche, ortografiche e troncoconiche.

Physically-based rendering (built-in material features):

  • Segue il modello Disney PBR.

  • Supports Lambert, Lambert Wrap (half-Lambert), Oren-Nayar and Toon diffuse shading modes.

  • Supports Schlick-GGX, Blinn, Phong, Toon and Disabled specular shading modes.

  • Utilizza il flusso di lavoro roughness-metallic con supporto per le texture ORM.

  • Uses horizon specular occlusion (Filament model) to improve material appearance

  • Normal mapping.

  • Detail mapping for the albedo and normal maps.

  • Dissolvenza a distanza che può utilizzare alpha blending o dithering per evitare di passare attraverso la pipeline trasparente.

  • Il dithering può essere determinato per pixel o per oggetto.

  • GLES3: Mappatura parallasse/rilievo con livello di dettaglio automatico basato sulla distanza.

  • GLES3: Diffusione e trasmittanza sotto la superficie.

  • GLES3: Refraction with support for material roughness (resulting in blurry refraction). On GLES2, refraction is still functional but lacks support for material roughness.

  • GLES3: Dissolvenza di prossimità (particelle morbide).

Illuminazione in tempo reale:

  • Luci direzionali (sole/luna). Fino a 4 per scena.

  • Luci omnidirezionali.

  • Faretti con angolo del cono e attenuazione regolabili.

  • Specular energy can be adjusted on a per-light basis.

  • GLES3: Lighting is done with a single-pass forward approach. By default, up to 32 omni light and 32 spot lights can be displayed per mesh resource. If needed, this limit can be increased at the cost of increased shader compilation times and lower performance. GLES2 uses a multi-pass forward approach to lighting, which doesn't have a limit on the number of lights but is slower with many lights.

Mappatura delle ombre:

  • DirectionalLight: Ortogonale (più veloce), PSSM a 2 e 4 suddivisioni. Supporta la sfumatura tra le suddivisioni.

  • OmniLight: Doppia paraboloide (veloce) o cubemap (più lento ma più preciso). Supporta le texture colorate e proiettabili sotto forma di panorami.

  • SpotLight: Texture singola.

Illuminazione globale con illuminazione indiretta:

  • Baked lightmaps (veloci, ma non possono essere aggiornate durante l'esecuzione).

    • Supporta il baking della sola luce indiretta o di entrambe le luci diretta e indiretta. La modalità bake può essere regolata indipendentemente per ogni luce, per permettere una organizzazione ibrida della stessa.

    • Supporta l'illuminazione dinamica di oggetti utilizzando un sistema automatico basato su octree. Non è richiesto il posizionamento manuale della sonda.

    • Lightmaps sono pre-calcolate dalla CPU.

  • GLES3: Sonde GI (più lente, quasi in tempo reale). Supporta i riflessi.

Riflessi:

  • Fast baked reflections or slow real-time reflections using ReflectionProbe. Parallax box correction can optionally be enabled.

  • Le tecniche di riflessione possono essere mischiate per una migliore accuratezza o scalabilità.

  • GLES3: Riflessi basati su Voxel (quando si utilizzano sonde GI).

  • GLES3: Riflessi nello spazio dello schermo.

Cielo:

  • Cielo panoramico (utilizzando un HDRI).

  • Cielo procedurale.

Nebbia:

  • Nebbia di profondità con curva di attenuazione regolabile.

  • Nebbia di altezza (pavimento o soffitto) con attenuazione regolabile.

  • Supporto per la colorazione automatica della nebbia di profondità dipendente dalla direzione della telecamera (per adattarsi al colore del sole).

  • Trasmittanza opzionale per rendere le luci più visibili nella nebbia.

Particelle:

  • GLES3: Particelle basate sulla GPU con supporto per shader personalizzati di particelle.

  • Particelle basate sulla CPU.

Post-elaborazione:

  • Tonemapping (Lineare, Reinhard, Filmico, ACES).

  • GLES3: Regolazione automatica dell'esposizione in base alla luminosità della finestra di visualizzazione.

  • GLES3: Profondità di campo vicina e lontana.

  • GLES3: Occlusione ambientale dello spazio dello schermo.

  • GLES3: debanding opzionale per evitare le bande di colore (efficace quando il rendering HDR è abilitato).

  • Glow/Bloom con ridimensionamento bicubico opzionale e diverse modalità di fusione disponibili: Screen, Soft Light, Add, Replace.

  • Correzione del colore utilizzando una rampa unidimensionale.

  • Regolazione della luminosità, contrasto e saturazione.

Filtraggio delle texture:

  • Filtraggio per vicinanza, bilineare, trilineare o anisotropico.

Compressione delle texture:

  • Lossless or lossy WebP (does not save VRAM; only reduces storage size).

  • S3TC (only supported on desktop platforms).

  • ETC1 (consigliato quando si utilizza il renderer GLES2).

  • GLES3: BPTC per una compressione di alta qualità (non supportata su macOS).

  • GLES3: ETC2 (non supportato su macOS).

Anti-aliasing:

  • Antialiasing multi-campione (MSAA).

  • Antialiasing approssimativo veloce (FXAA).

Prestazioni:

  • Occlusion culling with rooms and portals. Supports gameplay notifications with primary and secondary visibility to disable AI/physics processing for nodes that don't need it.

  • Real-time occluder spheres. Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up.

Nota

Most of the effects listed above can be adjusted for better performance or to further improve quality. This can be helpful when using Godot for offline rendering.

Strumenti 3D

  • Mesh integrate: cubo, cilindro/cono, (emi)sfera, prisma, piano, quad.

  • Strumenti per generazione geometrica procedurale.

  • Geometria solida costruttiva <doc_csg_tools>` (destinata alla prototipazione).

  • Nodo Path3D per rappresentare un percorso nello spazio 3D.

    • Può essere disegnato nell'editor o generato proceduralmente.

    • Nodo PathFollow3D per fare in modo che i nodi seguano un Path3D.

  • Classe di supporto per la geometria 3D.

  • Support for exporting the current scene as a glTF 2.0 file from the editor.

Fisica 3D

Corpi fisici:

  • Corpi statici.

  • Corpi rigidi.

  • Corpi cinematici.

  • Corpi di veicoli (destinati alla fisica arcade, non alla simulazione).

  • Giunti.

  • Corpi morbidi.

  • Ragdolls.

  • Aree per rilevare i corpi che entrano o escono.

** Rilevamento delle collisioni: **

  • Forme integrate: cuboide, sfera, capsula, cilindro.

  • Genera forme di collisione a triangolo per qualsiasi mesh dall'editor.

  • Genera una o più forme di collisione convesse per qualsiasi mesh dall'editor.

Shaders

  • 2D: Shader personalizzati per vertici, frammenti ed illuminazione.

  • 3D: Shader personalizzati per vertici, frammenti, illuminazione e cielo.

  • Shader basati su testo che utilizzano un linguaggio shader ispirato a GLSL <doc_shading_language>.

  • Editor visuale di shader.

    • Supporto per plug-in visual shader.

Scripting

Generale:

  • Modello di progettazione orientato agli oggetti con script che estendono i nodi.

  • Segnali e gruppi per la comunicazione tra gli script.

  • Supporto per scripting cross-language.

  • Molti tipi di dati di algebra lineare 2D e 3D come vettori e trasformazioni.

GDScript:

C#:

  • Confezionato in un binario separato per mantenere basse le dimensioni e le dipendenze dei file.

  • Utilizza Mono 6.x.

    • Pieno supporto per la sintassi e le funzionalità di C# 7.0.

  • Supporta tutte le piattaforme.

  • Si consiglia di utilizzare un editor esterno per beneficiare della funzionalità IDE.

VisualScript:

GDNative (C, C++, Rust, D, ...):

  • Quando ne hai bisogno, collegati alle librerie native per prestazioni più elevate e l'integrazioni di terze parti.

    • Per lo scripting della logica di gioco, si consigliano GDScript o C # se le loro prestazioni sono adeguate.

  • Binding ufficiali per C e C ++.

    • Usa qualsiasi sistema di compilazione e funzionalità della lingua che desideri.

  • Supporto per i bindings per D, Kotlin, Python, Nim e Rust forniti dalla comunità.

Audio

Funzionalità:

  • Uscita Mono, stereo, 5.1 e 7.1.

  • Riproduzione non posizionale e posizionale in 2D e 3D.

    • Effetto Doppler opzionale in 2D e 3D.

  • Supporto per il reindirizzamento audio buses <doc_audio_buses>` ed effetti con decine di effetti inclusi.

  • Listener2D and Listener3D nodes to listen from a position different than the camera.

  • Ingresso audio per registrare i microfoni con accesso in tempo reale utilizzando la classe AudioEffectCapture.

  • Ingresso MIDI.

    • Ancora nessun supporto per l'uscita MIDI.

API utilizzate:

  • Windows: WASAPI.

  • macOS: CoreAudio.

  • Linux: PulseAudio o ALSA.

Importa

Formati:

  • Images: Vedi Importazione di immagini.

  • Audio:

    • WAV con compressione IMA-ADPCM opzionale.

    • Ogg Vorbis.

    • MP3.

  • Scene 3D:

    • glTF 2.0 (consigliato).

    • ESCN <https://github.com/godotengine/godot-blender-exporter> __ (esportazione diretta da Blender).

    • FBX (experimental, static meshes only).

    • Collada (.dae).

    • Wavefront OBJ (solo scene statiche, possono essere caricate direttamente come mesh).

  • 3D meshes use Mikktspace to generate tangents on import, which ensures consistency with other 3D applications such as Blender.

Input

  • Sistema di mappatura degli input che utilizza eventi di input codificati o azioni di input rimappabili.

    • I valori degli assi possono essere mappati su due diverse azioni con una zona morta configurabile.

    • Usa lo stesso codice per supportare sia tastiere che gamepad.

  • Input da tastiera.

    • I tasti possono essere mappati in modalità "fisica" per essere indipendenti dal layout della tastiera.

  • Input del mouse.

    • Il cursore del mouse può essere visibile, nascosto, catturato o confinato all'interno della finestra.

    • Quando acquisito, l'input grezzo verrà utilizzato su Windows e Linux per eludere le impostazioni di accelerazione del mouse del sistema operativo.

  • Input Gamepad (fino a 8 controller simultanei).

  • Input penna/tablet con supporto della pressione.

  • Il supporto per l'input del gamepad, della tastiera e del mouse è disponibile anche su Android.

Networking

  • Rete TCP di basso livello utilizzando StreamPeer e TCP_Server.

  • Rete UDP di basso livello utilizzando PacketPeer e UDPServer.

  • Richieste HTTP di basso livello utilizzando HTTPClient.

  • Richieste HTTP di alto livello utilizzando HTTPRequest.

    • Supporta l'HTTPS in modo immediato, utilizzando i certificati in bundle.

  • API multiplayer di alto livello utilizzando UDP e ENet.

    • Replica automatica tramite chiamate di procedura remota (RPC).

    • Supporta trasferimenti inaffidabili, affidabili e ordinati.

  • Client e server WebSocket, disponibili su tutte le piattaforme.

  • Client e server WebRTC, disponibili su tutte le piattaforme.

  • Supporto per UPnP per eludere il requisito di inoltrare le porte quando si ospita un server dietro un NAT.

Internazionalizzazione

  • Pieno supporto per Unicode comprese le emoji.

  • Salva le stringhe di localizzazione usando CSV o gettext.

  • Usa stringhe localizzate nel tuo progetto automaticamente negli elementi della GUI o usando la funzione `` tr () ``.

  • Supporto per la composizione tipografica da destra a sinistra e la modellazione del testo pianificata in Godot 4.0.

Finestre e integrazione del sistema operativo

  • Sposta, ridimensiona, minimizza e massimizza la finestra generata dal progetto.

  • Cambia il titolo e l'icona della finestra.

  • Richiedi attenzione (farà lampeggiare la barra del titolo sulla maggior parte delle piattaforme).

  • Modalità a schermo intero.

    • Non utilizza lo schermo intero esclusivo, quindi la risoluzione dello schermo non può essere modificata in questo modo. Utilizza invece un Viewport con una risoluzione diversa.

  • Finestra senza bordi (a schermo intero o non a schermo intero).

  • Possibilità di mantenere la finestra sempre in primo piano.

  • Finestra trasparente con trasparenza per pixel.

  • Integrazione del menu globale su macOS.

  • Esegui i comandi in modo bloccante o non bloccante.

  • Apri percorsi file e URL utilizzando gestori di protocollo predefiniti o personalizzati (se registrati nel sistema).

  • Analizza gli argomenti personalizzati della riga di comando.

  • Headless/server binaries can be downloaded for Linux and compiled for macOS. Any binary can be used without a window using the --no-window command line argument.

Mobile

  • Acquisti in-app su Android e iOS.

  • Supporto per annunci pubblicitari che utilizzano moduli di terze parti.

  • Supporto per l'incorporazione di sottoview su Android.

Supporto XR (AR e VR)

  • Supporto per ARKit su iOS pronto all'uso.

  • Supporto per le API OpenXR.

    • Include il supporto per i visori più popolari come Meta Quest e Valve Index.

  • Supporto per le API OpenVR.

Sistema GUI

La GUI di Godot è costruita utilizzando gli stessi nodi Control usati per creare giochi in Godot. L'interfaccia utente dell'editor può essere facilmente estesa in molti modi utilizzando i componenti aggiuntivi.

Nodi:

  • Pulsanti.

  • Caselle di controllo, pulsanti di conferma, pulsanti a scelta multipla.

  • Inserimento di testo utilizzando LineEdit (riga singola) e TextEdit (più righe).

  • Menu a tendina utilizzando PopupMenu e OptionButton.

  • Barre di scorrimento.

  • Etichette.

  • RichTextLabel per testo formattato usando il BBCode <doc_bbcode_in_richtextlabel>`.

  • Trees (Alberi) (possono essere utilizzati anche per rappresentare tabelle).

  • Color picker with RGB and HSV modes.

  • Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...).

  • I nodi Control possono essere ruotati e ridimensionati.

Dimensionamento:

  • Ancore per mantenere gli elementi della GUI in un specifico angolo, bordo o centrato.

  • Contenitori per posizionare automaticamente gli elementi della GUI seguendo determinate regole.

  • Scala a risoluzioni multiple usando le modalità di stiramento 2d o viewport.

  • Supporta qualsiasi rapporto d'aspetto usando ancore e l'aspetto expand stretch.

** Temi: **

  • Editor di temi integrato.

    • Genera un tema in base alle attuali impostazioni del tema dell'editor.

  • Temi procedurali basati su vettoriali utilizzando StyleBoxFlat.

    • Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing.

  • Temi basati sulle texture utilizzando StyleBoxTexture.

Le ridotte dimensioni di Godot possono renderlo un'alternativa adatta a framework come Electron o Qt.

Animazione

  • Cinematica diretta e cinematica inversa.

  • Tween node to easily perform procedural animations by code.

  • Supporto per l'animazione di qualsiasi proprietà con interpolazione personalizzabile.

  • Supporto per la chiamata di metodi nelle tracce di animazione.

  • Supporto per la riproduzione di suoni nelle tracce di animazione.

  • Supporto per le curve di Bézier nell'animazione.

Formati del file

  • Scene e risorse possono essere salvate in formati testuali o binari.

    • I formati basati su testo sono leggibili dall'uomo e più facili per il controllo versione.

    • I formati binari sono più veloci da salvare/caricare per scene/risorse di grandi dimensioni.

  • Leggere e scrivere file di testo o file binari utilizzando File.

    • A scelta può essere compresso o criptato.

  • Leggere e scrivere file JSON.

  • Leggere e scrivere file di configurazione in stile INI usando ConfigFile.

    • Can (de)serialize any Godot datatype, including Vector2/3, Color, ...

  • Leggere i file XML utilizzando XMLParser.

  • Impacchetta i dati di gioco in un file PCK (formato personalizzato ottimizzato per la ricerca veloce), in un archivio ZIP, o direttamente nell'eseguibile per la distribuzione di un singolo file.

  • Esportare ulteriori file PCK che possono essere letti dal motore per supportare mod e DLC.

Varie

  • Accesso di basso livello ai server che permette di bypassare l'overhead dell'albero della scena quando necessario.

  • Command line interface for automation.

    • Esporta e distribuisci progetti utilizzando piattaforme di integrazione continua.

    • Shell completion scripts are available for Bash, zsh and fish.

  • Supporto per moduli C++ staticamente collegati nel binario del motore.

  • Motore ed editor scritti in C++03.

    • Può essere compilato utilizzando GCC, Clang e MSVC. È supportato anche MinGW.

    • Amichevole nei confronti dei confezionatori. Nella maggior parte dei casi, è possibile utilizzare le librerie di sistema al posto di quelle fornite da Godot. Il sistema di compilazione non scarica nulla. Le compilazioni possono essere completamente riproducibili.

    • Godot 4.0 sarà scritto in C++17.

  • Concesso sotto la licenza permissiva MIT.

    • Processo di sviluppo aperto con le contribuzioni sono benvenute <doc_ways_to_contribute>`.

Vedi anche

Il repository delle proposte di Godot elenca le caratteristiche che sono state richieste dalla comunità e che potrebbero essere implementate nelle future versioni di Godot.