Cependant, Godot contributors a pris soin de donner la priorité aux bogues qui ont été rencontrés dans la version 4.0. Cette mise à jour corrige plus de 900 problèmes que les utilisateurs ont rapportés en utilisant Godot 4 ou en aidant les contributeurs à tester la 4.1 avec des versions préliminaires. Le moteur devrait être plus fiable dans l'ensemble. Godot contributors continuera d'améliorer la stabilité, les performances et les flux de travail avec chaque nouvelle version de Godot 4.
Pour la plupart des jeux et applications créés avec la version 4.0, la migration vers la version 4.1 devrait être relativement sûre. Godot contributors prépare un guide de migration qui décrit tout ce à quoi les utilisateurs doivent faire attention lors de la migration de leur projet. Certaines incompatibilités sont attendues pour les utilisateurs de C# et de GDExtension en particulier, mais Godot contributors s’efforce de les éviter dans les prochaines versions. N'oubliez pas de toujours faire des sauvegardes lorsque vous migrez des versions, même mineures. Mieux encore, préférez l'utilisation d'un système de contrôle de version, tel que Git, et livrez une version de votre projet avant la migration.
Si vous souhaitez entrer directement dans l'action, vous pouvez télécharger Godot 4.1 dès maintenant. Ou restez dans les parages pour en savoir plus sur les changements les plus notables de cette version. Vous pouvez également regarder cette superbe vidéo de présentation réalisée par GDQuest :
Rendre la pareille
En tant qu'effort communautaire, Godot s'appuie sur des contributeurs individuels pour s'améliorer. Ces dernières années, les dons des utilisateurs et des entreprises ont permis d'embaucher un certain nombre de contributeurs principaux pour travailler à plein temps sur le moteur et offrir ces versions rapides.
Les dépenses mensuelles de Godot contributors restent supérieures aux dons mensuels, et ils dépendent toujours de dons ponctuels importants de la part des entreprises pour financer le développement. Actuellement, Godot contributors a besoin de beaucoup plus de dons mensuels pour maintenir le rythme des mises à jour de Godot 4, sans parler de la nécessité d'embaucher plus de mainteneurs pour examiner chaque contribution.
En plus du soutien financier, les utilisateurs pouvent également contribuer en écrivant des rapports de bogues détaillés, en contribuant à la base de code, en écrivant de la documentation, en écrivant des guides (pour la documentation ou sur votre propre site web), et en aidant les autres sur les différentes plateformes de la communauté en répondant aux questions et en fournissant des conseils utiles.
Enfin et surtout, faire des jeux avec Godot et créditer le moteur contribue grandement à le rendre plus populaire et à convaincre plus de gens de contribuer et d'améliorer Godot pour tout le monde.
Points forts
Cette version a été rendue possible grâce aux contributions de plus de 300 contributeurs ! Godot remercie tous chaleureusement pour leur travail et leur dévouement, y compris ceux qui ont aidés à tester le moteur avant la sortie et à soumettre des rapports de bugs.
Voici un aperçu des principaux changements et des nouvelles fonctionnalités.
Performances
Les jeux Godot sont construits sous la forme d'un arbre de nœuds, qui sont les éléments de base du moteur pour les entités du jeu. L'ajout et la suppression de nœuds sont des opérations que le moteur doit effectuer très souvent, et qui doivent donc être aussi rapides que possible.
Dans la version 4.1, Godot a modifié l'algorithme pour utiliser un hashmap rapide afin de rendre l'ajout et la suppression de nœuds enfants plusieurs fois plus rapides. Les opérations sur les nœuds non communs sont donc légèrement plus lentes, et l'empreinte mémoire de la classe Node de base est 10% plus élevée, mais il s'agit d'un petit compromis nécessaire pour un grand avantage pour tous les utilisateurs de Godot, en particulier pour les projets plus complexes avec beaucoup de manipulations de nœuds.
Cette version introduit également le multithreading expérimental pour vos scènes, une fonctionnalité lancée par Juan Linietsky. De nouvelles propriétés de nœuds vous permettent de contrôler totalement la façon dont les nœuds sont traités, séquentiellement ou en parallèle.
Comme Godot l'a mentionné, cette fonctionnalité est actuellement considérée comme expérimentale car elle nécessite des tests approfondis pour trouver les cas limites. Godot ne recommande pas encore de l'utiliser en production. Mais elle pose les bases pour tirer le meilleur parti du matériel moderne, avec des contrôles simples.
Toujours sur le front du multithreading, Pedro J. Estébanez a travaillé dur pour corriger un grand nombre de problèmes et de limitations liés au chargement multithread.
Du côté du rendu, le moteur de rendu Vulkan a été doté d'un cache de pipeline. Alors que Godot mettait déjà en cache les shaders pour réduire le ralentissement de la compilation des shaders, la compilation des pipelines entraînait toujours un certain ralentissement et des temps de chargement plus lents. Bien que le problème du ralentissement de la compilation des pipelines soit loin d'être résolu, cela représente un pas dans la bonne direction et devrait également conduire à une légère diminution des temps de chargement lors de l'utilisation de l'un des backends de rendu basés sur RenderingDevice. Ce cache peut être désactivé dans les paramètres du projet et est activé par défaut dans Godot 4.1.
Cette amélioration ne traite pas toutes les causes possibles de décrochage, mais c'est un premier pas dans la bonne direction de la part d'Alexander Streng. Godot continuera à y travailler dans les prochaines versions. D'autres travaux sur les performances suivront tout au long de l'année.
Noyau
Lors de l'importation de modèles dans Godot, il arrivait souvent que ceux-ci se retrouvent orientés vers l'arrière.
Juan Linietsky, Tokage et Aaron Franke ont travaillé sur un certain nombre de solutions pour résoudre ce problème. L'un des changements implémentés intervertit les directions des caméras avant et arrière dans l'éditeur. De plus, la fonction look_at() dispose désormais d'un argument permettant d'utiliser l'espace du modèle comme référence pour regarder vers l'avant au lieu de l'axe Z négatif de la caméra. Ces modifications permettent également de corriger un bogue de longue date concernant le suivi de trajectoire.
Cette mise à jour apporte également le frame delta smoothing à Godot 4, par lawnjelly. Cela permet d'améliorer significativement la fluidité des mouvements et d'obtenir un gameplay plus fluide. Cette option est activée par défaut, mais notez qu'elle ne fonctionne que si VSync est également activé.
Scripts
GDScript
Jusqu'à présent, en GDScript, il fallait utiliser une ressource ou un autoload pour partager des données entre plusieurs instances d'un même script.
Grâce à George Marques, il est désormais possible de créer et d'utiliser des variables statiques. Les variables statiques stockent les données sur la classe et non sur chaque instance, de sorte qu'elles sont partagées entre toutes les instances de la classe.
Pour rendre une variable statique, ajoutez le mot-clé static devant une variable définie au début de votre script.
Une grande fonctionnalité de GDScript ajoutée dans Godot 4 est la génération automatique de pages de documentation pour vos classes nommées.
Cette version inclut une refonte du système by ocean qui traite désormais les énumérations comme des types, ce qui rend la documentation générée plus précise. Vous pouvez aussi maintenant utiliser les docstrings en ligne au lieu de devoir toujours les placer au-dessus de la définition d'une variable ou d'une fonction.
Code : | Sélectionner tout |
var my_variable = 10 ## This is an inline docstring
C#/.NET
Dans cette version, l'accent a été mis sur l'harmonisation des fonctionnalités entre C# et GDScript.
Lorsque vous utilisez GDScript, vous pouvez définir un nouveau type de nœud à utiliser dans l'éditeur en ajoutant un nom de classe globale à votre script.
À partir de Godot 4.1, cela est également possible en C# en ajoutant l'attribut [GlobalClass] à votre fichier, grâce à Raul Santos et Will Nations. Vous pouvez également utiliser l'attribut [Icon] pour donner à votre classe globale une icône unique.
Notez qu'à partir de cette version, les projets réalisés en C# ne peuvent toujours pas être exportés vers des plates-formes mobiles et web. Godot s'efforce de fournir ce support dès que possible, mais la résolution de cette limitation dépendra probablement de la sortie de .NET 8 à la fin de l'année 2023. Cela signifie que le travail sur l'activation des plateformes mobiles et web ne pourra réellement commencer que plus tard dans l'année.
GDExtension
Godot est doté d'une technologie unique permettant d'utiliser des langages de bas niveau comme le C++ en tant que langage de script de jeu, sans avoir à recompiler le moteur.
Bien que cette technologie soit encore en phase bêta pour cette version, GDExtension est maintenant encore plus proche de GDScript et de C# en termes de capacités de script. Vous pouvez désormais implémenter de nouveaux nœuds de shaders visuels et créer des plugins d'éditeur avec GDExtension.
L'équipe a également mis en place un système de compatibilité ascendante pour s'assurer que le code écrit pour Godot 4.1 continue de fonctionner même si l'API change dans les versions futures. Cependant, une rupture de compatibilité significative a été nécessaire en 4.1 pour corriger des problèmes critiques dans GDExtension, de sorte que les extensions Godot 4.0 existantes devront être portées et recompilées pour la 4.1.
Enfin, un travail important a été réalisé sur l'architecture afin de rendre l'API GDExtension extensible à l'avenir.
Tout ce qui précède est le fruit du travail d'équipe de David Snopek, Juan Linietsky, RedworkDE, Yuri Rubinsky et Yuri Sizov.
L'éditeur
Godot 4 prend en charge plusieurs fenêtres que utilsées pour les paramètres du projet et de l'éditeur, ainsi que pour diverses fenêtres contextuelles. À partir de cette version, vous pouvez également détacher les documents dans des fenêtres flottantes et détacher les éditeurs de scripts, y compris l'éditeur de shaders, et les placer sur un moniteur séparé.
En outre, l'éditeur garde désormais en mémoire la disposition de votre fenêtre, de sorte que lorsque vous fermez et rouvrez l'éditeur, vous devriez souvent vous retrouver exactement là où vous vous étiez arrêté. Vous pouvez remercier trollodel, Hendrik Brucker et Tomasz Chabora pour cela.
Godot 4.0 a introduit la possibilité de définir et d'exporter des tableaux typés, et d'exporter des nœuds individuels vers l'inspecteur, mais il n'était pas possible de combiner les deux. À partir de Godot 4.1, vous pouvez exporter des tableaux de nœuds vers l'inspecteur, ce qui est très pratique pour relier les objets du jeu entre eux.
Ce travail a été réalisé par Tomasz et Timothé Bonhoure.
Le gestionnaire de projet vous permet maintenant d'assigner des tags à des projets individuels et de filtrer les projets par tags. Cela facilite grandement la recherche parmi des dizaines, voire des centaines de projets Godot.
Rendu
La turbulence des particules a été retravaillée dans cette version sur la base des commentaires des artistes afin d'offrir un plus grand contrôle créatif. La turbulence est largement utilisée pour créer ces riches effets d'étalement que l'on voit dans de nombreux jeux modernes. Un grand merci à KdotJPG et Raffaele Picca pour cette contribution.
Les nouvelles textures 3D Noise permettent de contrôler facilement la densité du brouillard volumétrique et de le rendre plus fin dans certaines zones. NoiseTexture3D peut également être utilisé pour créer des champs de vecteurs attracteurs de particules, ce qui est utile pour simuler le vent qui affecte les particules. Lasuch et Clay John ont implémenté cette fonctionnalité.
Bien qu'il y ait encore de nombreuses améliorations prévues pour les moteurs de rendu de Godot, la plupart d'entre elles seront présentes dans les prochaines versions. L'équipe de rendu (et tous les contributeurs au rendu) a donné la priorité à la correction des bogues et à la stabilité plutôt qu'aux nouvelles fonctionnalités. Notamment, le moteur de rendu 3D GLES3 n'est pas encore terminé, mais il fera l'objet d'un travail substantiel au cours des prochains mois.
Navigation
Godot 4.0 a introduit l'évitement en temps réel pour la navigation IA, mais il était limité à un seul plan.
Cette version inclut des algorithmes d'évitement complètement réécrits par smix8 pour vous donner de meilleurs comportements et un plus grand contrôle. L'évitement peut maintenant se faire en 2D ou en 3D, ce qui permet aux agents volants de se déplacer au-dessus de ceux qui marchent au sol. En outre, vous pouvez désormais utiliser des couches pour contrôler quels agents évitent quels agents et assigner des priorités pour que certains agents en repoussent d'autres.
Prise en charge des plateformes
Godot est plus que jamais déterminés à offrir des jeux sur toutes les plateformes populaires, et la version 4.1 offre toujours les mêmes capacités que Godot 4.0. Vous pouvez exporter vers toutes les plateformes de bureau avec les versions standard et .NET du moteur, et vous pouvez exporter vers les plateformes mobiles et web si vous n'utilisez pas C# dans vos projets.
À partir de la version 4.1, les exportations vers le web sont encore limitées en raison de la mauvaise prise en charge de certaines fonctionnalités modernes par les fournisseurs. Les navigateurs avec un mauvais support de WebGL 2, comme Chrome sur macOS, souffrent malheureusement de problèmes que Godot ne peut pas résoudre sans un correctif de Google ou une quantité significative d'efforts pour supporter un moteur de rendu dédié à WebGL 1 / GLES2.
Godot est également conscient de la complexité de la mise en place de jeux web sur des plateformes d'hébergement qui ne permettent pas de définir les en-têtes CORS nécessaires au support de SharedArrayBuffer. Cela dépend principalement de l'implémentation par Safari du support de l'en-tête coep:credentialless, alors que les navigateurs basés sur Chromium et Firefox fonctionnent déjà très bien (surtout si vous publiez sur itch.io). Il existe une solution de contournement possible que Godot est en train d'étudier.
Problèmes connus
Avec chaque version, Godot reconnait qu'il y a des problèmes qu'ils ne peuvent toujours pas résoudre à temps. Certains de ces problèmes ont été identifiés et des correctifs sont en cours d'élaboration, tandis que d'autres restent inconnus jusqu'à ce que quelqu'un rencontre le problème. Vous pouvez suivre le système de suivi des bogues pour savoir si le problème que vous rencontrez a été signalé.
Voici les problèmes notables qui ont déjà été identifiés et que vous pourriez rencontrer dans Godot 4.1 :
L'API nouvellement ajoutée pour définir des propriétés de configuration personnalisées pour les préréglages d'exportation ne conserve pas les configurations de l'utilisateur. Les options de configuration sont réinitialisées et perdues au redémarrage de l'éditeur. La correction sera disponible dans la version 4.1.1 (voir GH-79025).
Passons à la prochaine version !
Godo a déjà commencé à travailler sur Godot 4.2, qui sortira dans quatre mois. ILs s'engagent à maintenir le rythme et à respecter ce cycle de publication fiable, afin que vous n'ayez jamais à attendre longtemps avant de recevoir le prochain lot d'améliorations et de nouvelles fonctionnalités.
En attendant, profitez de Godot 4.1 !
source : Godot
Et vous ?
Que pensez-vous de Godot ?
Que pensez-vous des nouveautés et améliorations introduites par Godot 4.0 ? Laquelle vous intéresse le plus ?
Voir aussi :
La version stable de Godot 4.0 est disponible avec la prise en charge de Vulkan et l'amélioration de l'éditeur Godot, ainsi que l'amélioration du son et des animations 2D et 3D
Godot 4.0 bêta 1 signe le grand retour du moteur physique 3D interne de Godot, Godot Physics. Le moteur de jeu multiplateforme s'accompagne de nombreuses améliorations et nouveautés
Godot 4.0 ne prendra plus en charge le langage de script visuel VisualScript mais les développeurs peuvent toujours l'intégrer au moteur de jeu en tant qu'extension
Godot, le moteur de jeu open source, a maintenant sa propre fondation, il offre également la possibilité de programmer de coder des jeux à l'aide d'un langage spécifique, GDScript