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.2). 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 i progetti in editor che quelli 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.

Esegue progetti esportati:

  • Android 4.4 e successivi.
  • iOS 10.0 e successivi.
  • HTML5 tramite WebAssembly (Firefox, Chrome, Edge, Opera).
  • Consoles.

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 script.

  • 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: asset library <doc_what_is_assetlib> per estenderne le funzionalità.
  • Crea i tuoi plugin usando GDScript per aggiungere nuove funzionalità o velocizzare il tuo flusso di lavoro.
  • Scarica i progetti dalla libreria di risorse nel project manager e importali direttamente.

Grafica 2D

Due modalità di rendering disponibili:

  • Modalità di Rendering OpenGL ES 3.0 (utilizza OpenGL 3.3 su piattaforme desktop).
    • Grafica di alta qualità. Consigliato su piattaforme desktop.
  • Modalità di Rendering 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 creazione di sprite animate.

  • Livelli di parallasse.

    • Supporto del Pseudo-3D mediante la duplicazione automatica di un livello più volte.
  • 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. I formati supportati sono TTF e OTF.
    • 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 calcolate tramite GPU con supporto per shader di particelle personalizzati.

  • Particelle generate dalla CPU.

Strumenti 2D

  • Camera 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:

  • Modalità di Rendering OpenGL ES 3.0 (utilizza OpenGL 3.3 su piattaforme desktop).
    • Grafica di alta qualità. Consigliato su piattaforme desktop.
    • Rendering HDR con sRGB.
  • Modalità di Rendering 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.

Rendering basato sulla fisica:

  • Segue il modello Disney PBR.
  • Utilizza il flusso di lavoro roughness-metallic con supporto per le texture ORM.
  • Normal mapping.
  • GLES3: Mappatura parallasse/rilievo con livello di dettaglio automatico basato sulla distanza.
  • GLES3: Diffusione e trasmittanza sotto la superficie.
  • GLES3: Dissolvenza di prossimità (particelle morbide).
  • 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.

Illuminazione in tempo reale:

  • Luci direzionali (sole/luna). Fino a 4 per scena.
  • Luci omnidirezionali.
  • Faretti con angolo del cono e attenuazione regolabili.

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).

    • Lightmaps sono pre-calcolate dalla CPU.
  • GLES3: Sonde GI (più lente, quasi in tempo reale). Supporta i riflessi.

Riflessi:

  • GLES3: Riflessi basati su Voxel (quando si utilizzano sonde GI).
  • Riflessi veloci pre-calcolati o riflessi lenti in tempo reale utilizzando ReflectionProbe. La correzione della parallasse può essere attivata opzionalmente.
  • GLES3: Riflessi nello spazio dello schermo.
  • Le tecniche di riflessione possono essere mischiate per una migliore accuratezza.

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 calcolate dalla GPU con supporto per shader di particelle personalizzati.
  • Particelle generate dalla CPU.

Post-processing:

  • 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.
  • Glow/Bloom con ridimensionamento bicubico opzionale e più modalità di fusione disponibili: Screen, Soft Light, Add, Replace.
  • Correzione del colore utilizzando una rampa unidimensionale.
  • Regolazione della luminosità, contrasto e saturazione.

Filtro texture:

  • Filtraggio per vicinanza, bilineare, trilineare o anisotropico.

Compressione delle texture:

  • GLES3: BPTC per una compressione di alta qualità (non supportata su macOS).
  • GLES3: ETC2 (non supportato su macOS).
  • ETC1 (consigliato quando si utilizza il renderizzatore GLES2).
  • GLES3: S3TC (non supportato su piattaforme mobile/Web).

Anti-aliasing:

  • Antialiasing multi-campione (MSAA).

La maggior parte di questi effetti può essere regolata per prestazioni migliori o per migliorare ulteriormente la qualità. Questo può essere utile quando si utilizza Godot per il rendering offline.

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.

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 (solo con fisica Bullet).
  • Generare forme di collisione triangolare 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 di shader visuali.

    • 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 bus <doc_audio_buses>` ed effetti con decine di effetti inclusi.

  • Nodo Listener3D per ascoltare da una posizione diversa da quella della telecamera in 3D.

  • Ingresso audio per registrare coi microfoni.

  • Ingresso MIDI.

    • Ancora nessun supporto per l'uscita MIDI.

API utilizzate:

  • Windows: WASAPI.
  • macOS: CoreAudio.
  • Linux: PulseAudio o ALSA.

Importare

Formati:

  • Images: Vedi Importare immagini.

  • Audio:

    • WAV con compressione IMA-ADPCM opzionale.
    • Ogg Vorbis.
  • Scene 3D:

    • glTF 2.0 (consigliato).
    • ESCN <https://github.com/godotengine/godot-blender-exporter> __ (esportazione diretta da Blender).
    • FBX (sperimentale).
    • Collada (.dae).
    • Wavefront OBJ (solo scene statiche, possono essere caricate direttamente come mesh).

Input

  • Sistema di mappatura degli input che utilizza eventi di input hardcoded 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.

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

  • Spostare, ridimensionare, ridurre a icona e ingrandire 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 della riga di comando personalizzati.

Mobile

  • Acquisti in-app su Android e iOS.
  • Supporto per annunci pubblicitari che utilizzano moduli di terze parti.

Supporto XR (AR e VR)

  • Supporto per ARKit su iOS pronto all'uso.
  • Supporto per le API OpenXR e OpenVR.
  • I visori VR più popolari come Oculus Quest e HTC Vive sono supportati grazie ai plugin.

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.
  • Checkboxes, check buttons, radio buttons.
  • Inserimento di testo utilizzando LineEdit (riga singola) e TextEdit (più righe).
  • Menu a tendina utilizzando PopupMenu e OptionButton.
  • Barre di scorrimento.
  • Labels.
  • RichTextLabel per testo formattato usando il BBCode <doc_bbcode_in_richtextlabel>`.
  • Trees (Alberi) (possono essere utilizzati anche per rappresentare tabelle).
  • Contenitori (orizzontale, verticale, griglia, centrato, margine, divisore trascinabile, ...).
  • I nodi Control possono essere ruotati e ridimensionati.

Dimensionamento:

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

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

  • Ridimensiona a più risoluzioni utilizzando le modalità di estensione ''2d'' o ''viewport''' .

  • Support any aspect ratio using anchors and the expand stretch aspect.

** Temi: **

  • Editor di temi integrato.

    • Genera un tema in base alle attuali impostazioni del tema dell'editor.
  • Temi procedurali basati su vettoriali utilizzando StyleBoxFlat.

    • Supporta angoli arrotondati/smussati, ombreggiature e spessori per bordo.
  • 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.
  • 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

  • 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 i file JSON.

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

    • Può (de)serializzare qualsiasi tipo di dati Godot, compresi Vector, 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.

  • Interfaccia da linea di comando per l'automazione.

    • Esportare e distribuire progetti utilizzando piattaforme di integrazione continua.
    • Gli script di completamento <https://github.com/godotengine/godot/tree/master/misc/dist/shell> __ sono disponibili per Bash, zsh e 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

La ` tabella di marcia <https://github.com/godotengine/godot-roadmap>`__ repository di documenti delle caratteristiche che sono state concordate e che potrebbero essere implementate nelle future versioni di Godot.