Liste des fonctionnalités

Cette page liste toutes les fonctionnalités actuellement supportées par Godot.

Note

Cette page liste les fonctionnalités supportées par la version stable actuelle de Godot (3.2). Plus de fonctionnalités sont disponibles dans la dernière version de développement (4.0).

Fonctionnalités

Plates-formes

Peut exécuter à la fois l'éditeur et les projets exportés :

  • Windows 7 et suivant (64 bits et 32 bits).

  • macOS 10.12 et suivants (64-bit, x86 et ARM).

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

    • Les binaires sont liés statiquement et peuvent fonctionner sur n'importe quelle distribution si compilés sur une distribution de base suffisamment ancienne.
    • Les binaires officiels sont compilés sur Ubuntu 14.04.

Exécute les projets exportés :

  • Android 4.4 et versions ultérieures.
  • iOS 10.0 et ultérieurs.
  • HTML5 via WebAssembly (Firefox, Chrome, Edge, Opera).
  • Consoles.

Godot vise à être aussi indépendant des plateformes que possible et peut être porté sur de nouvelles plateformes avec une relative facilité.

Éditeur

Fonctionnalités :

  • Éditeur d'arbre de scène.

  • Éditeur de scripts.

  • Support des éditeurs de script externes tels que Visual Studio Code ou Vim.

  • GDScript debugger.

    • Pas encore de support pour le débogage dans les threads.
  • Outils de suivi des performances.

  • Rechargement de script à chaud.

  • Édition de scènes à chaud.

    • Les changements seront répercutés dans l'éditeur et seront conservés après la clôture du projet en cours.
  • Inspecteur à distance.

    • Les changements ne seront pas répercutés dans l'éditeur et ne seront pas conservés après la clôture du projet en cours.
  • Réplication de caméra à chaud.

    • Déplacez la caméra de l'éditeur et voyez le résultat dans le projet exécuté.
  • Utilisez l'éditeur dans des dizaines de langues fournies par la communauté.

Plugins :

  • Les plugins de l'éditeur peuvent être téléchargés depuis la bibliothèque asset library pour étendre les fonctionnalités de l'éditeur.
  • Créez vos propres plugins en utilisant le GDScript pour ajouter de nouvelles fonctionnalités ou accélérer votre flux de travail.
  • Téléchargez les projets de l'asset library dans le gestionnaire de projet et importez-les directement.

Graphismes 2D

Deux moteurs de rendu disponibles :

  • Moteur de rendu OpenGL ES 3.0 (utilise OpenGL 3.3 sur les plateformes de bureau).
    • Graphismes haut de gamme. Recommandé sur les plateformes de bureau.
  • Moteur de rendu OpenGL ES 2.0 (utilise OpenGL 2.1 sur les plateformes de bureau).
    • Recommandé sur les plateformes mobiles et Web.

Fonctionnalités :

  • Rendu de sprite, polygone et ligne.

    • Des outils de haut niveau pour dessiner des lignes et des polygones tels que Polygon2D et Line2D.
  • AnimatedSprite comme aide à la création de sprites animés.

  • Couches de parallaxe.

    • Support pseudo-3D en dupliquant automatiquement une couche plusieurs fois.
  • Eclairage 2D avec des normal maps.

    • Ombres dures ou douces.
  • Rendu des polices à l'aide de bitmaps (BitmapFont) ou rastérisation à l'aide de FreeType (DynamicFont).

    • Les polices bitmap peuvent être exportées à l'aide d'outils comme BMFont.
    • DynamicFont prend en charge les polices monochromes ainsi que les polices colorées. Les formats pris en charge sont TTF et OTF.
    • DynamicFont prend en charge des contours de police optionnels dont la largeur et la couleur sont réglables.
    • Prise en charge du suréchantillonnage des polices pour maintenir la netteté des polices à des résolutions plus élevées.
  • Particules calculées par le GPU avec prise en charge de shaders de particules personnalisés.

  • Particules générées par le CPU.

Outils 2D

  • Caméra 2D avec lissage intégré et marges de glissement.

  • Nœud Path2D pour représenter un chemin dans l'espace 2D.

    • Peut être dessiné dans l'éditeur ou généré de manière procédurale.
    • PathFollow2D pour que les nœuds suivent un Path2D.
  • Classe d'aide à la géométrie 2D.

  • Nœud Line2D pour dessiner des lignes 2D texturées.

Physique 2D

Corps physiques :

  • Corps statiques.
  • Corps rigides.
  • Corps kinematic.
  • Les articulations.
  • Areas pour détecter les corps qui y entrent ou en sortent.

Détection de collision :

  • Formes intégrées : ligne, boîte, cercle, capsule.
  • Polygones de collision (peuvent être dessinés manuellement ou générés à partir d'un sprite dans l'éditeur).

Graphiques 3D

Deux moteurs de rendu disponibles :

  • Moteur de rendu OpenGL ES 3.0 (utilise OpenGL 3.3 sur les plateformes de bureau).
    • Graphismes haut de gamme. Recommandé sur les plateformes de bureau.
    • Rendu HDR avec sRGB.
  • Moteur de rendu OpenGL ES 2.0 (utilise OpenGL 2.1 sur les plateformes de bureau).
    • Recommandé sur les plateformes mobiles et Web.
    • Rendu LDR pour une plus grande compatibilité.
    • Toutes les fonctionnalités ne sont pas disponibles. Les fonctionnalités disponibles uniquement lors de l'utilisation du moteur de rendu OpenGL ES 3.0 sont marquées GLES3 ci-dessous.

Caméra :

  • Caméras perspective, orthographiques et frustum-offset.

Rendu basé sur la physique :

  • Suit le modèle Disney PBR.
  • Utilise un flux de travail de type rugosité-métal avec support des textures ORM.
  • Normal mapping.
  • GLES3 : Cartographie parallaxe/relief avec niveau de détail automatique basé sur la distance.
  • GLES3 : Diffusion et transmittance sous la surface.
  • GLES3 : Fondu de proximité (particules molles).
  • Fondu de distance qui peut utiliser le mélange alpha ou le dithering pour éviter de passer par le pipeline transparent.
  • Le Dithering peut être déterminée par pixel ou par objet.

Éclairage en temps réel :

  • Lumières directionnelles (soleil/lune). Jusqu'à 4 par scène.
  • Lumières omnidirectionnelles.
  • Lumières spot avec angle de cône et atténuation réglables.

Shadow mapping :

  • DirectionalLight : Orthogonal (fastest), PSSM 2-split and 4-split. Supporte le mélange entre les divisions (splits).
  • OmniLight: Dual paraboloid (fast) or cubemap (slower but more accurate). Supports colored projector textures in the form of panoramas.
  • SpotLight : Texture unique.

Éclairage global avec éclairage indirect :

  • Baked lightmaps (rapides, mais ne peuvent être mises à jour à l'exécution).

    • Lightmaps sont pré-calculées par le CPU.
  • GLES3 : sondes GI (plus lentes, en temps semi-réel). Supporte les réflexions.

Réflexions :

  • GLES3 : Réflexions à base de voxels (lors de l'utilisation de GI probes).
  • Réflexions rapides pré-calculées ou réflexions lentes en temps réel à l'aide de ReflectionProbe. La correction de la parallaxe peut être activée en option.
  • GLES3 : Réflexions écran-espace.
  • Les techniques de réflexion peuvent être mélangées pour une plus grande précision.

Ciel :

  • Ciel panoramique (en utilisant un HDRI).
  • Ciel procédural.

Brouillard :

  • Brouillard en profondeur avec une courbe d'atténuation réglable.
  • Brouillard de hauteur (sol ou plafond) avec atténuation réglable.
  • Prise en charge de la couleur du brouillard de profondeur automatique en fonction de la direction de la caméra (pour correspondre à la couleur du soleil).
  • Transmittance optionnelle pour rendre les lumières plus visibles dans le brouillard.

Particules :

  • GLES3 : particules calculées par le GPU avec support pour les shaders de particules personnalisés.
  • Particules générées par le CPU.

Post-traitement :

  • Tonemapping (Linear, Reinhard, Filmic, ACES).
  • GLES3 : Ajustements automatiques de l'exposition en fonction de la luminosité du viewport.
  • GLES3 : Profondeur de champ proche et lointaine.
  • GLES3,: Occlusion ambiante de l'espace écran.
  • Glow/bloom avec mise à l'échelle bicubique en option et plusieurs modes de mélange disponibles : Screen, Soft Light, Add, Replace.
  • Correction des couleurs à l'aide d'une rampe unidimensionnelle.
  • Réglages de la luminosité, du contraste et de la saturation.

Filtrage de texture :

  • Filtrage nearest, bilinear, trilinear ou anisotropic.

Compression de texture :

  • GLES3 : BPTC pour une compression de haute qualité (non supporté sur macOS).
  • GLES3 : ETC2 (non supporté sur macOS).
  • ETC1 (recommandé lors de l'utilisation du moteur de rendu GLES2).
  • GLES3 : S3TC (non supporté sur les plateformes mobiles/Web).

Anti-aliasing :

  • Antialiasing multi-échantillon (MSAA).

La plupart de ces effets peuvent être ajustés pour obtenir de meilleures performances ou pour améliorer encore la qualité. Cela peut être utile lorsque vous utilisez Godot pour un rendu différé.

Outils 3D

  • Maillages intégrés : cube, cylindre/cône, (hémi)sphère, prisme, plan, quadrilatère.

  • Outils pour génération de la géométrie procédurale.

  • Constructive solid geometry (destiné au prototypage).

  • Nœud Path3D pour représenter un chemin dans l'espace 3D.

    • Peut être dessiné dans l'éditeur ou généré de manière procédurale.
    • PathFollow3D pour que les nœuds suivent un Path3D.
  • Classe d'aide à la géométrie 3D.

Physique 3D

Corps physiques :

  • Corps statiques.
  • Corps rigides.
  • Corps kinematic.
  • Corps de véhicules (destinées à la physique arcade, pas à la simulation).
  • Les articulations.
  • Corps mous.
  • Ragdolls.
  • Areas pour détecter les corps qui y entrent ou en sortent.

Détection de collision :

  • Formes intégrées : cuboïde, sphère, capsule, cylindre (uniquement avec la physique Bullet).
  • Générer des formes de collision triangle pour n'importe quel maillage à partir de l'éditeur.
  • Générer une ou plusieurs formes de collision convexes pour n'importe quel maillage à partir de l'éditeur.

Shaders

  • 2D : Vertex, fragment et shaders de lumière personnalisés.

  • 3D : Vertex, fragment, lumière et shaders de ciel personnalisés.

  • Des shaders basés sur du texte utilisant un langage de shader inspiré de GLSL <doc_shading_language>.

  • Éditeur de shaders visuels.

    • Prise en charge des plugins de shaders visuels.

Les scripts

Général :

  • Modèle de conception orientée-objet avec des scripts étendant(extend) de nœuds.
  • Signaux et groupes pour la communication entre les scripts.
  • Prise en charge de script cross-langage.
  • De nombreux types de données d'algèbre linéaire en 2D et 3D comme les vecteurs et les transformations.

GDScript :

C# :

  • Emballé dans un binaire séparé pour limiter la taille des fichiers et les dépendances.

  • Utilise Mono 6.x.

    • Support complet de la syntaxe et des fonctionnalités du C# 7.0.
  • Prend en charge toutes les plates-formes.

  • Il est recommandé d'utiliser un éditeur externe pour bénéficier des fonctionnalités d'un IDE.

VisualScript :

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

  • Lorsque vous en avez besoin, créez un lien vers des bibliothèques natives pour des performances plus élevées et des intégrations tierces.

    • Pour les scripts de logique de jeu, GDScript ou C # sont recommandés si leurs performances sont appropriées.
  • Bindings officielles pour C et C++.

    • Utilisez le système de compilation et les fonctionnalités de langage que vous souhaitez.
  • Support des bindings D, Kotlin, Python, Nim et Rust fournies par la communauté.

Audio

Fonctionnalités :

  • Mono, stéréo, sortie 5.1 et 7.1.

  • Lecture(playback) non positionnelle et positionnelle en 2D et 3D.

    • Effet Doppler optionnel en 2D et 3D.
  • Support for re-routable audio buses and effects with dozens of effects included.

  • Nœud Listener3D pour écouter depuis une position différente de celle de la caméra en 3D.

  • Entrée audio pour enregistrer avec des microphones.

  • Entrée MIDI.

    • Pas encore de support pour la sortie MIDI.

API utilisés :

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

Importation

Formats :

  • Images: See Importer des images.

  • Audio :

    • WAV avec compression IMA-ADPCM optionnelle.
    • Ogg Vorbis.
  • Scènes 3D :

    • glTF 2.0 (recommandé).
    • ESCN (exportation directe à partir de Blender).
    • FBX (expérimental).
    • Collada (.dae).
    • Wavefront OBJ (scènes statiques uniquement, peut être chargé directement sous forme de maillage).

Entrée

  • Système de cartographie des entrées utilisant des événements d'entrée codés en dur ou des actions d'entrée remappables.

    • Les valeurs des axes peuvent être associées à deux actions différentes avec une zone morte configurable.
    • Utilise le même code pour prendre en charge les claviers et les gamepads.
  • Entrée clavier.

    • Keys can be mapped in "physical" mode to be independent of the keyboard layout.
  • Entrée souris.

    • Le curseur de la souris peut être visible, caché, capturé ou confiné dans la fenêtre.
    • Lorsque capturées, les données brutes seront utilisées sous Windows et Linux pour contourner les paramètres d'accélération de la souris du système d'exploitation.
  • Entrée de manette de jeu (jusqu'à 8 contrôleurs en simultané).

  • Saisie au stylet/tablette avec support de la pression.

Réseau

  • Réseau TCP de bas niveau utilisant StreamPeer et TCP_Server.

  • Réseau UDP de bas niveau utilisant PacketPeer et UDPServer.

  • Requêtes HTTP de bas niveau utilisant HTTPClient.

  • Requêtes HTTP de haut niveau utilisant HTTPRequest.

    • Support HTTPS utilisant des certificats groupés.
  • API multijoueur de haut niveau utilisant UDP et ENet.

    • Réplication automatique au moyen de remote procedure calls (RPC).
    • Support des transferts peu fiables, sûrs et ordonnés (unreliable, reliable and ordered).
  • Client et serveur WebSocket, disponible sur toutes les plateformes.

  • Client et serveur WebRTC, disponible sur toutes les plateformes.

  • Support d'UPnP pour éviter l'obligation de forward ports lors de l'hébergement d'un serveur derrière un NAT.

Internationalisation

  • Support complet d'Unicode, y compris les emojis.
  • Enregistrez les chaînes de caractères de localisation en utilisant CSV ou gettext.
  • Utilisez les chaînes de caractère localisées dans votre projet automatiquement dans les éléments de l'interface graphique ou en utilisant la fonction tr().
  • Soutien à l'écriture de droite à gauche et à la mise en forme du texte prévu dans Godot 4.0.

Fenêtrage et intégration au systèmes d'exploitation

  • Déplacez, redimensionnez, minimisez et maximisez la fenêtre créée par le projet.

  • Changez le titre et l'icône de la fenêtre.

  • Demander l'attention (fera clignoter la barre de titre sur la plupart des plateformes).

  • Mode plein écran.

    • N'utilise pas le plein écran exclusif, donc la résolution de l'écran ne peut pas être modifiée de cette façon. Utilisez plutôt un Viewport avec une résolution différente.
  • Fenêtre sans bordure (plein écran ou non).

  • Possibilité de garder la fenêtre toujours en haut.

  • Fenêtre transparente avec transparence par pixel.

  • Intégration au menu global sur macOS.

  • Exécuter les commandes de manière bloquante ou non bloquante.

  • Ouvrez les chemins d'accès aux fichiers et les URL en utilisant les gestionnaires de protocole par défaut ou personnalisés (s'ils sont enregistrés dans le système).

  • Analyser les arguments de ligne de commande personnalisés.

Mobile

  • Achats In-app sur Android et iOS.
  • Support des annonces publicitaires en utilisant des modules tiers.

Support XR (AR et VR)

  • Support de ARKit sur iOS prêt à l'emploi.
  • Support des API OpenXR et OpenVR.
  • Les casques VR populaires comme l'Oculus Quest et le HTC Vive sont supportés grâce à des plugins.

GUI système

L'interface graphique de Godot est construite en utilisant les mêmes nœuds Control que ceux utilisés pour les jeux dans Godot. L'interface utilisateur de l'éditeur peut facilement être étendue de nombreuses façons à l'aide d'add-ons.

Nodes :

  • Buttons (Boutons).
  • Cases à cocher, boutons à cocher, boutons radio.
  • Saisie de texte en utilisant LineEdit (une seule ligne) et TextEdit (plusieurs lignes).
  • Menus déroulants utilisant PopupMenu et OptionButton.
  • Barres de défilement.
  • Étiquettes (Lables).
  • RichTextLabel pour texte formaté en utilisant le BBCode.
  • Trees (arbres) (peuvent également être utilisés pour représenter des tableaux).
  • Conteneurs (horizontal, vertical, grille, centre, marge, séparateur déplaçable, ...).
  • Controls peuvent être tournés et mis à l'échelle.

Dimensionnement :

  • Des ancres pour maintenir les éléments de l'interface graphique dans un coin spécifique, un bord ou au centre.

  • Conteneurs pour placer automatiquement les éléments de l'interface graphique en suivant certaines règles.

  • Mise à l'échelle à plusieurs résolutions en utilisant les modes d'étirement 2d ou viewport.

  • Support de tout les rapports d'aspect en utilisant des ancres et l'aspect d'étirement expand.

Theming :

  • Éditeur de thèmes intégré.

    • Générer un thème basé sur les paramètres actuels du thème de l'éditeur.
  • Thème vectoriel procédural utilisant StyleBoxFlat.

    • Supporte les coins arrondis/ biseautés, les ombres portées et les largeurs par bordure.
  • Thème basée sur une texture en utilisant StyleBoxTexture.

La petite taille de distribution de Godot peut en faire une alternative appropriée à des frameworks comme Electron ou Qt.

Animation

  • Direct kinematics et inverse kinematics.
  • Support de l'animation de toute propriété avec par interpolation personnalisable.
  • Support des méthodes d'appel dans les pistes d'animation.
  • Support de la lecture de sons dans les pistes d'animation.
  • Support des courbes de Bézier dans les animations.

Formats

  • Les scènes et les ressources peuvent être enregistrées dans text-based ou des formats binaire.

    • Les formats en texte sont lisibles par l'homme et plus compatible avec le contrôle de version.
    • Les formats binaires sont plus rapides à sauvegarder/charger pour les grandes scènes/ressources.
  • Lecture et écriture de fichiers texte ou binaires en utilisant File.

    • Peut éventuellement être compressé ou chiffré.
  • Lecture et écriture de fichiers JSON.

  • Lecture et écriture de fichiers de configuration de type INI en utilisant ConfigFile.

    • Peut (dé)sérialiser n'importe quel type de données Godot, y compris Vector, Color, ...
  • Lire les fichiers XML en utilisant XMLParser.

  • Emballez les données de jeu dans un fichier PCK (format custom optimisé pour la recherche rapide), dans une archive ZIP ou directement dans l'exécutable pour une distribution en fichier unique.

  • Exporter des fichiers PCK supplémentaires qui peuvent être lus par le moteur pour supporter les mods et les DLCs.

Divers

  • Accès de bas niveau aux serveurs ce qui permet de contourner la surcharge de l'arbre de scène lorsque cela est nécessaire.

  • Interface de ligne de commande pour l'automatisation.

    • Exporter et déployer des projets en utilisant des plateformes d'intégration continue.
    • Des scripts de complétion sont disponibles pour Bash, zsh et fish.
  • Support des modules C++ liés statiquement dans le binaire du moteur.

  • Moteur et éditeur écrit en C++03.

    • Peut être compilé en utilisant GCC, Clang and MSVC. MinGW est également pris en charge.
    • Friendly towards packagers. In most cases, system libraries can be used instead of the ones provided by Godot. The build system doesn't download anything. Builds can be fully reproducible.
    • Godot 4.0 sera écrit en C++17.
  • Licencié sous la licence permissive MIT.

Voir aussi

Le répertoire roadmap documente les fonctionnalités qui ont été convenues et qui pourraient être implémentées dans les futures versions de Godot.