Godot, pour les non-initiés, est un moteur de jeu multiplateforme publié pour la première fois sous une licence open source en 2014, bien que son développement initial soit antérieur de plusieurs années. Aujourd'hui, Godot revendique quelque 1 500 contributeurs et est considéré comme l'un des meilleurs projets open source au monde selon diverses mesures. Godot a été utilisé dans des jeux de haut niveau tels que le remaster Sonic Colors: Ultimate, publié par Sega l'année dernière en tant que premier grand jeu grand public propulsé par Godot. Mais Tesla aussi a apparemment utilisé Godot pour alimenter certaines des animations les plus intensives graphiquement de son application mobile.
Pour mémoire, un moteur de jeu fournit les blocs de construction de base nécessaires aux développeurs pour créer des jeux, et peut inclure n'importe quoi, des moteurs de rendu pour les graphiques 2D ou 3D aux scripts et à la gestion de la mémoire. Il s'agit essentiellement d'un framework logiciel que les développeurs peuvent utiliser et réutiliser sans avoir à repenser la roue à chaque nouveau jeu qu'ils créent.
Alors que de nombreuses entreprises, en particulier les grands studios de jeux, développent leurs propres moteurs en interne, à mesure que les jeux et les processus de développement associés sont devenus plus complexes, les moteurs de jeux tiers à usage général ont gagné en popularité. Cela inclut des opérateurs historiques établis de longue date tels que Unity, développé par la centrale technologique Unity Software, qui est actuellement en train de fusionner avec IronSource.
L'une des raisons pour lesquelles un studio peut utiliser un moteur de jeu tiers est de réduire les coûts de développement en interne, mais un compromis ici est qu'il doit alors travailler avec une base de code gargantuesque, sur laquelle il a un contrôle limité. Et c'est pourquoi Godot a gagné des adeptes au fil des ans : en tant que projet open source, il offre aux développeurs un moteur de jeu qu'ils peuvent modifier et ajuster à leurs propres besoins, avec des améliorations renvoyées à la communauté de développement pour que tout le monde puisse en profiter.
La première bêta de Godot 4.0 après 17 versions alpha
Envoyé par équipe Godot
Quoi de neuf au cœur de Godot 4.0 ?
Au cours des deux dernières années, le cœur du moteur a connu de nombreuses améliorations et refactorisations pour l'amener au niveau supérieur en termes de maintenabilité, de fiabilité et de performances. La triste réalité du développement de logiciels est que le code hérité se construit très rapidement et le maintenir à jour, prêt pour les nouveaux défis qui se présentent plusieurs années plus tard, demande beaucoup d'efforts. Aussi, l'équipe a profité de la nouvelle version majeure du moteur pour casser des choses afin de l'améliorer.
L'un des ajouts les plus importants est l'introduction des tests unitaires sur les composants du moteur. L'équipe note que bien que ses tests d'intégration existants puissent mettre en évidence des problèmes critiques empêchant la compilation ou l'exécution du code, ils ne contribuent guère à assurer la stabilité du moteur : « Avec une couverture de test unitaire décente, nous devrions être en mesure de mieux détecter les régressions logiques ou les changements qui cassent accidentellement les systèmes du moteur ».
Le rendu
Ce qui suit est un extrait du billet de l'équipe.
Nous savons que de nombreux utilisateurs sont enthousiasmés par les améliorations à venir du rendu 2D et 3D dans la version 4.0. Au cours des dernières années, nous avons complètement remanié les rendus Godot. Ils ciblent désormais Vulkan par défaut et nous les avons créés en pensant à la prise en charge future de Direct3D 12 et d'autres API de rendu. Nous avons également créé un moteur de rendu de compatibilité basé sur OpenGL visant à prendre en charge les appareils plus anciens et bas de gamme qui ne prennent pas en charge Vulkan ou d'autres API GPU modernes. Même si nous aimons les nouvelles fonctionnalités passionnantes, nous voulons également voir les gens créer des jeux sur toute la gamme d'appareils pour que tout le monde puisse en profiter.
Notamment, les systèmes d'éclairage global de Godot ont été refaits à partir de zéro dans la nouvelle version. GIProbe a été remplacé par le nœud VoxelGI, qui est une solution en temps réel adaptée aux environnements de petite et moyenne taille. Pour la toute première fois, Godot est également livré avec une technique GI qui peut être utilisée avec de grands mondes ouverts - l'illumination globale de champ de distance signée (SDFGI). C'est une nouvelle technique créée et mise en œuvre par Juan, elle fonctionne en temps réel, et vous pouvez en apprendre beaucoup plus ici. Si vous cherchez à ajouter un peu de qualité supplémentaire lors de l'exécution sur des appareils haut de gamme, le contributeur de rendu Clay John (clayjohn) vous apporte Screen Space Indirect Lighting. Cette fonctionnalité ajoute plus de détails aux techniques GI existantes en utilisant un échantillonnage de l'espace écran, similaire à SSAO. Enfin, la cuisson des lightmaps est désormais effectuée à l'aide du GPU pour accélérer considérablement le processus.
Pour vous aider à améliorer la fidélité de vos scènes 3D, nous avons travaillé sur quelques fonctionnalités intéressantes et attendues depuis longtemps. Le brouillard volumétrique fait sa première apparition dans Godot 4, équilibrant un aspect réaliste et des performances rapides, grâce à l'utilisation de la reprojection temporelle. Vous pouvez configurer l'effet globalement ou définir des zones spécifiques avec les nœuds FogVolume. Vous pouvez même créer des effets dynamiques complexes en écrivant des shaders personnalisés qui fonctionnent sur les nœuds FogVolume.
Pour les autres effets atmosphériques, Godot 4.0 introduit des sky shaders qui permettent aux utilisateurs de créer des ciels dynamiques qui se mettent à jour en temps réel (y compris les réflexions). Pour plus d'informations, consultez l'article présentant les sky shaders.
Les décalques sont une autre nouvelle façon d'ajouter des effets dynamiques, qui reposent sur des matériaux PBR et peuvent également être utilisés pour décorer vos environnements.
Les artistes d'effets visuels parmi vous devraient trouver de nombreuses modifications utiles aux particules basées sur le GPU. Ceux-ci prennent désormais en charge les attracteurs, les collisions, les traînées, les sous-émetteurs et l'émission manuelle. Et en parlant d'effets, notre responsable des shaders Yuri Rubinsky (Chaosus) a mis beaucoup d'amour pour rendre le langage d'ombrage et les shaders visuels plus accessibles et polyvalents.
Parmi les autres ajouts intéressants aux shaders, citons la prise en charge des tableaux uniformes et des variations fragment-to-light, ainsi que de nouvelles fonctionnalités de syntaxe, telles que les structures, les macros de préprocesseur et les inclusions de shader.
Pour les utilisateurs soucieux de la photographie, nous avons ajouté la prise en charge de l'utilisation d'unités lumineuses physiques dans Godot 4.0, ce qui vous permet d'utiliser des unités réalistes pour l'intensité des lumières ainsi que d'utiliser les paramètres standard de l'appareil photo (comme l'ouverture, la vitesse d'obturation et l'ISO) pour contrôler la luminosité de la scène finale. Les unités lumineuses physiques sont désactivées par défaut mais peuvent être activées dans les paramètres du projet.
Ne vous inquiétez pas, vous pourrez profiter des avantages de ces nouvelles fonctionnalités sans sacrifier les performances de votre jeu. Plusieurs nouvelles techniques d'optimisation sont également à votre disposition, telles que l'occlusion culling, le mesh LOD automatique et le HLOD manuel utilisant des plages de visibilité, rendues possibles par Joan Fons (JFonS) et Juan.
De même, la prise en charge de Fidelity FX Super Resolution 1.0 (FSR 1.0) d'AMD a été ajoutée par Je06jm. La prise en charge de FSR 2.1 est prévue pour une future version bêta.
Si vous utilisez Godot pour développer des applications, vous devriez être ravi d'apprendre que Godot 4 prend en charge plusieurs fenêtres par application en cours d'exécution. Vous le remarquerez avec l'éditeur lui-même, et vous pouvez activer le même comportement dans vos projets, globalement ou par sous-viewport.
Nous n'avons pas oublié la 2D. Le rendu de canevas 2D a été mis à jour pour prendre en charge les groupes de canevas qui permettent un mélange complexe de plusieurs CanvasItems qui se chevauchent (par exemple, vous pouvez empiler un tas de CanvasItems ensemble et les faire se fondre avec l'arrière-plan comme s'il s'agissait d'un seul élément). 4.0 apporte également la prise en charge des lumières directionnelles 2D avec des ombres et des SDF 2D pouvant être utilisés pour des effets personnalisés.
Physique et Navigation
Godot 4 marque un grand retour du moteur physique 3D interne de Godot, Godot Physics. Depuis des années, Godot s'appuie sur le moteur Bullet pour fournir une base solide à vos projets 3D. L'équipe a cependant estimé qu'une solution sur mesure donnerait plus de flexibilité lors de la mise en œuvre de nouvelles fonctionnalités et de la résolution des problèmes.
Mais d'abord, elle devait mettre Godot Physics au même niveau que Bullet en termes de fonctionnalités, et améliorer les performances et la précision de ces fonctionnalités en cours de route. Cela comprenait l'ajout de nouvelles formes de collision, de cylindres et de cartes de hauteur, ainsi que la réimplémentation de nœuds SoftBody. En plus des améliorations spécifiques aux fonctionnalités, des techniques d'optimisation générales, telles que l'optimisation en phase large et la prise en charge du multithreading, ont été mises en œuvre pour les environnements 2D et 3D. Certaines de ces améliorations peuvent également être trouvées dans les versions récentes de Godot 3.
Cela fait, il était temps d'améliorer le côté utilisateur des choses. L'équipe en avons profité pour procéder à une réorganisation majeure des nœuds physiques et améliorer de nombreuses API/comportements pour rendre l'expérience plus conviviale (logique des couches de collision, RigidBodies, etc.). De nombreuses propriétés auparavant propres à des types de corps spécifiques sont désormais disponibles pour tous les nœuds PhysicsBody. Cela lui permet d'introduire le nouveau nœud CharacterBody pour remplacer les anciens corps cinématiques, qui offrent un comportement plus avancé en 2D et 3D, vous permettant d'avoir un contrôleur de personnage avancé prêt à l'emploi avec de nouvelles propriétés configurables pour plus de flexibilité. Les scripter est également plus simple maintenant. Dans les versions précédentes du moteur, les propriétés liées au déplacement, au glissement et à la collision devaient être transmises manuellement à move_and_slide(). Ils peuvent désormais être configurés à l'aide de scènes, sur les nœuds eux-mêmes, réduisant ainsi le code nécessaire pour avoir les interactions physiques souhaitées.
Mais une nouvelle version n'est pas seulement de nouvelles fonctionnalités importantes. Un effort important a été déployé pour résoudre divers problèmes provoquant des instabilités et des calculs imprécis.
Pour insuffler plus de vie aux corps physiques, la prochaine version majeure de Godot introduit également un nouveau système de navigation. Les versions précédentes de la navigation étaient entièrement basées sur des nœuds, ce qui limitait leur convivialité et leurs performances. Grâce aux travaux initiés par Andrea Catania et poursuivis par smix8, Godot 4 propose une approche serveur de la navigation.
Le nouveau NavigationServer prend en charge les environnements entièrement dynamiques et la cuisson de maillage de navigation à la volée. Vous pouvez diffuser des régions, ce qui rend le système applicable aux grands espaces ouverts. Les corps physiques peuvent être marqués comme des obstacles pour éviter automatiquement les collisions, et tout fonctionne beaucoup plus rapidement qu'auparavant grâce à la prise en charge du multithreading. Les liens de navigation sont également pris en charge pour configurer les points de saut, les téléportations, etc.
Source : blog Godot
Et vous ?
Que pensez-vous de Godot ?
Que pensez-vous de ces améliorations et nouveautés ? Laquelle vous intéresse le plus ?
Voir aussi :
W4 Games lève 8,5 millions de dollars pour soutenir Godot Engine dans le développement de jeux open source, l'entreprise veut s'inspirer de Red Hat pour monétiser le moteur de jeu
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