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

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

Exécute les projets exportés :

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 script intégré.

  • 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é.

  • Documentation de référence de classe hors ligne intégrée.

  • Utilisez l'éditeur dans des dizaines de langues fournies par la communauté.

Plugins :

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.

    • Pseudo-3D supportée incluant un aperçu dans l'éditeur.

  • 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 (par exemple les emojis). Les formats pris en charge sont TTF, OTF, WOFF1 et WOFF2.

    • 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 optionnel avec sRGB (activé par défaut).

    • Utilise un pré-calcul de profondeur optionnel (activé par défaut) pour réduire le coût du dessin, ce qui accélère le rendu de scènes complexes.

  • 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 (fonctionnalités de matériau intégrés):

  • Suit le modèle Disney PBR.

  • Supporte les modes Lambert, Lambert Wrap (demi-Lambert), Oren-Nayar et ombrage de diffusion Toon.

  • Supporte les modes de d'ombrage Schlick-GGX, Blinn, Phong, Toon et Spéculaire désactivé.

  • Utilise un flux de travail de type rugosité-métal avec support des textures ORM.

  • Utilises l'occlusion spéculaire d'horizon (modèle en filament) pour améliorer l'apparence du matériau

  • Normal mapping.

  • Mapping de détail pour l'albedo et les normal maps.

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

  • GLES3 : Cartographie parallaxe/relief avec niveau de détail automatique basé sur la distance.

  • GLES3 : Diffusion et transmittance sous la surface.

  • GLES3 : Réfraction avec support de la rugosité du matériau (donnant une réfraction floue). Avec GLES2, la réfraction est toujours fonctionnelle mais ne permet pas de gérer la rugosité à partir du matériau.

  • GLES3 : Fondu de proximité (particules molles).

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

  • L'énergie spéculaire peuvent être ajustée pour chaque lumière.

  • GLES3 : L'éclairage peut être calculé en une seule fois. Par défaut, jusqu'à 32 lumières omnidirectionnelles et 32 spots de lumières peuvent être affichées pour chaque ressource de maillage. Au besoin, cette limite peut être augmentée mais le coût de compilation des shaders seront plus long et les performances dégradées. GLES2 calcule les l'éclairage en plusieurs fois, ce qui n'a pas de limite dans le nombre de lumières mais est plus lent avec plusieurs lumières.

Shadow mapping :

  • DirectionalLight : Orthogonal (fastest), PSSM 2-split and 4-split. Supporte le mélange entre les divisions (splits).

  • OmniLight : Double paraboloïde (rapide) ou cubemap (plus lent mais plus précis). Supporte les textures colorées du projecteur sous forme de panoramas.

  • SpotLight : Texture unique.

Éclairage global avec éclairage indirect :

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

    • Supporte le pré-calcul de l'éclairage indirect seul ou le pré-calcul de l'éclairage direct et indirect. Le mode de pré-calcul peut être ajusté pour chaque lumière afin de permettre le pré-calcul de configurations d'éclairages hybrides.

    • Supporte l'éclairage dynamique d'objets en utilisant un système automatique basé sur un octree. Aucun placement manuel de sonde n'est requis.

    • Lightmaps sont pré-calculées par le CPU.

  • GLES3 : sondes GI (plus lentes, en temps semi-réel). Supporte les réflexions.

Réflexions :

  • Réflexions rapides précalculées ou lentes en temps réel à l'aide de ReflectionProbe. La correction de la parallaxe peut être activée en option.

  • Les techniques de réflexion peuvent être mélangées pour une plus grande précision ou une plus grande évolutivité.

  • GLES3 : Réflexions à base de voxels (lors de l'utilisation de GI probes).

  • GLES3 : Réflexions écran-espace.

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 :

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

  • GLES3 : particules calculées par le GPU avec support pour les shaders de particules personnalisés.

Post-traitement :

  • Tonemapping (Linear, Reinhard, Filmic, ACES).

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

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

  • GLES3: réduction de l'effet de postérisation HDR optionnel pour éviter les bandes de couleur (efficace lorsque le rendu HDR est activé).

Filtrage de texture :

  • Filtrage nearest, bilinear, trilinear ou anisotropic.

Compression de texture :

  • Format avec ou sans pertes WebP (n'économise pas de VRAM ; réduit uniquement la taille de stockage).

  • S3TC (uniquement supporté sur les ordinateur de bureau).

  • ETC1 (recommandé lors de l'utilisation du moteur de rendu GLES2).

  • GLES3 : BPTC pour une compression de haute qualité (non supporté sur macOS).

  • GLES3 : ETC2 (non supporté sur macOS).

Anticrénelage :

  • Anticrénelage multi-échantillon (MSAA).

  • Anticrénelage approximatif rapide (FXAA).

Performance :

  • Élimination des objets cachés (Occlusion Culling) avec rooms and portals. Supporte les notifications de gameplay avec une visibilité primaire et secondaire pour désactiver l'IA ou le calcul de physique pour les noeuds qui n'en on pas besoin.

  • Formes d'occlusion en temps-réel. (sphère et polygone) Pas aussi efficaces que les pièces ou les portails (et ne supportent pas les notifications de jeu), mais plus faciles à configurer.

Note

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.

  • Supporte l'export de la scène actuelle vers un fichier glTF 2.0 à partir de l'éditeur.

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.

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

  • 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é.

Avertissement

Godot 4.0 supprimera entièrement le VisualScript du noyau. Par conséquent, la création de nouveaux projets utilisant VisualScript dans Godot n'est pas recommandée. Les futures versions de Godot 4.x peuvent avoir le VisualScript réimplémenté comme une extension.

Alors que Godot 3.x conservera le support de VisualScript, nous recommandons d'essayer GDScript à la place, surtout si vous avez l'intention de migrer votre projet vers Godot 4.

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 d' audio bus re-routable et des effets avec des dizaines d'effets inclus.

  • Les nœuds Listener2D et Listener3D pour écouter depuis une position différente de celle de la caméra.

  • Entrée audio pour enregistrer des microphones avec accès en temps réel en utilisant la classe AudioEffectCapture.

  • Entrée MIDI.

    • Pas encore de support pour la sortie MIDI.

API utilisés :

  • Windows : WASAPI.

  • macOS : CoreAudio.

  • Linux : PulseAudio ou ALSA.

Importer

Formats :

  • Images : Voir Importer des images.

  • Audio :

    • WAV avec compression IMA-ADPCM optionnelle.

    • Ogg Vorbis.

    • MP3.

  • Scènes 3D :

    • glTF 2.0 (recommandé).

    • ESCN (exportation directe à partir de Blender).

    • FBX (expérimental, uniquement pour les maillages statiques).

    • Collada (.dae).

    • Wavefront OBJ (scènes statiques uniquement, peut être chargé directement sous forme de maillage).

  • Les maillages 3D utilisent Mikktspace pour générer les tangentes à l'importation, ce qui permet de s'assurer de la cohérence avec les autres applications 3D comme Blender.

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.

    • Les touches peuvent être mappées en mode "physique" pour être indépendantes de la disposition du clavier.

  • 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 manette (jusqu'à 8 contrôleurs en simultané).

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

  • La prise en charge de la manette de jeu, du clavier et de la souris est également disponible sur Android.

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.

  • Headless/server binaries peuvent être téléchargés pour Linux compiled for macOS. N'importe quel binaire peut être utilisé sans fenêtre avec la command line argument --no-window.

Mobile

  • Achats In-app sur Android et iOS.

  • Support des annonces publicitaires en utilisant des modules tiers.

  • Prise en charge de l'intégration de sous-vues sur Android.

Support XR (AR et VR)

  • Support de ARKit sur iOS prêt à l'emploi.

  • Support des API OpenXR.

    • Comprend la prise en charge des casques les plus populaires comme le Meta Quest et le Valve Index.

  • Support des API OpenVR.

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

  • Un sélectionneur de couleur avec les modes RGB et HSV.

  • Les conteneurs (horizontal, vertical, grille, flux, centré, marge, rapport d'aspect, 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 et l'anticrénelage.

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

  • Tween un nœud pour facilement créer des animations procédurales par le code.

  • 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 de fichier

  • 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 tous les types de données Godot, comme Vector2/3, 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.

  • Command line tutorial 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.

    • Respectueux des packagers. Dans la plupart des cas, les bibliothèques système peuvent être utilisées à la place de celles fournies par Godot. Le système de compilation ne télécharge rien. Les compilations peuvent être entièrement reproductibles.

    • Godot 4.0 sera écrit en C++17.

  • Licencié sous la licence permissive MIT.

Voir aussi

Le répertoire de propositions Godot liste les fonctionnalités qui ont été demandées par la communauté et qui pourraient être implémentées dans les futures versions de Godot.