Godot (moteur de jeu)

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Godot
Description de l'image Godot logo.svg.

Informations
Dernière version 3.1.1 ()
Version avancée 3.0-alpha1 ()[1]
3.0-beta 1 ()[2]
3.0-rc1 ()[3]
3.1 alpha 1 ()[4]
3.1 alpha 2 ()[5]Voir et modifier les données sur Wikidata
Dépôt github.com/godotengine/godotVoir et modifier les données sur Wikidata
État du projet Développement actif
Écrit en C++ [6]
Environnement

Création : Windows, MacOS, Linux, FreeBSD, OpenBSD, Haiku [7]

Déploiement : Windows, MacOS, Linux, BSD, Haiku, iOS, Android, BlackBerry, HTML5[7]
Langues Multilingue (Support partiel du français)
Type Moteur de jeu
Politique de distribution Gratuit (Don)
Licence Licence MIT
Site web godotengine.org

Godot est un moteur de jeu multiplateforme, c'est-à-dire un logiciel permettant de créer des jeux vidéo qui est compatible avec différents systèmes d'exploitation. Il comporte entre autres un moteur 2D, un moteur 3D, un moteur physique, un gestionnaire d'animations, et des langages de script pour programmer des comportements. Il est depuis janvier 2014 ouvert au public et disponible sous licence MIT, ce qui fait de lui un logiciel libre. En plus des nombreux contributeurs bénévoles qui participent au projet, quelques développeurs rémunérés par don mensuel y travaillent à temps plein.

Fonctionnalités[modifier | modifier le code]

En tant qu'outil de création de jeux vidéo, Godot couvre de nombreux aspects de leur réalisation. L'utilisateur de Godot a la possibilité d'importer du contenu (images, son, modèles 3D), de créer des animations, de programmer le comportement de différents éléments du jeu grâce à un langage de script, de soumettre des objets à une physique (forces, collisions), de placer des sources de lumière, de créer un niveau constitué de tuiles au sein de l'éditeur, etc.

Rendu[modifier | modifier le code]

Godot possède à la fois un moteur de rendu 3D et un moteur de rendu 2D dédiés. Cette approche est différente de certains autres moteurs de jeu tels que Unity, qui manipulent une scène 3D dans tous les cas, et utilisent une caméra orthogonale pour restituer "l'effet 2D".

Moteur de rendu 2D[modifier | modifier le code]

Le moteur de rendu 2D de Godot utilise le pixel en tant qu'unité de distance, quitte à utiliser des agrandissements pour obtenir les dimensions d'image voulues sur l'écran. Il est capable de gérer les rendus[8] :

  • De sprites statiques,
  • D'animations, soit avec des sprites animées (succession d'images), soit par utilisation d'un squelette,
  • De défilement différentiel (ou parallaxe), technique utilisée pour faire défiler plusieurs plans d'un décor à des vitesses différentes pour donner l'illusion de profondeur,
  • D'effets de particules,
  • D'effets de lumière ; les éclairages et les ombres.

Moteur de rendu 3D[modifier | modifier le code]

Depuis la version 3.0 de Godot, le moteur de rendu 3D utilise la technique du rendu physique réaliste[9],[10]. La fonction de réflectivité bidirectionnelle choisie pour les calculs de lumière respecte tous les principes définis par les studios d'animation Disney[11]. Le rendu des objets virtuels est alors basé sur le paramétrage des matériaux qui le composent. Il tient compte de leur albédo, leur rugosité, leur caractère métallique, leur occlusion ambiante, leur anisotropie, leur transluminescence, leurs effets de contours et leur réfraction[11].

Arbre de scène[modifier | modifier le code]

Une des particularités de Godot réside dans son concept de scène. Une scène, dans Godot, est un ensemble de nœuds organisés en arbre[12]. Ces nœuds peuvent être des sprites, des formes servant de masques de collision, des sources lumineuses, des sources sonores, des objets physiques, des gestionnaires d'animation, ou d'autres choses encore. Par exemple, on peut créer une scène "personnage" composée d'une sprite, d'un objet physique et d'une forme de collision.

Il est important de noter qu'un nœud d'une scène peut aussi être l'instance d'une autre scène. Il est ainsi possible de réutiliser une scène définie séparément en l'imbriquant dans une autre. En reprenant l'exemple précédent, on peut tout à fait créer une scène principale "niveau" qui contient plusieurs scènes "personnage", entre autres nœuds.

Chaque scène est enregistré sous forme de fichier, qui peut être un fichier texte pour faciliter la gestion de versions[12].

Langage de script[modifier | modifier le code]

Godot permet d'attacher un script à n'importe quel nœud présent dans l'arbre de scène, afin de programmer le comportement de ce nœud. Auparavant, ce script devait être écrit en GDScript, un langage propre à Godot, mais depuis la version 3.0, d'autres langages de programmation sont disponibles comme le C#.

Il existe une alternative aux langages de script. Dans le cas où une portion de code doit être programmé avec un fort souci d'optimisation et de performance, Godot permet de remplacer une classe GDScript par une classe C++ sans incidence avec le reste du jeu[13].

GDScript, le langage de script historique de Godot[modifier | modifier le code]

Le langage de script "GDScript" est un langage conçu spécifiquement pour fonctionner avec Godot[12],[13]. Sa syntaxe est similaire à celle de Python. Plusieurs raisons étaient évoquées pour justifier le choix de créer un nouveau langage, plutôt que d'utiliser Lua, Python, Squirrel ou Javascript avec leurs interprètes. Ces raisons sont[14],[15] :

  • La relative facilité d'apprentissage de ce nouveau langage,
  • La possibilité de fournir plus facilement un meilleur éditeur de code source dans l'interface utilisateur de Godot. En effet, GDScript permet plus aisément le support du complètement et le support de l'édition de code pendant le fonctionnement du jeu (Live editing),
  • D'autres raisons plus techniques, comme l'interfaçage plus simple entre ce langage et le C++, la gestion plus adaptée du ramasse-miette, la possibilité d'ajouter de manière native dans le langage des types de variables telles que les vecteurs et les matrices, ou le support de threads.

Autres langages de script disponibles[modifier | modifier le code]

Dès la version 3.0, il est possible d'écrire les scripts en C# [16], que ce soit via l'éditeur Mono ou via un autre environnement de développement que Godot[17]. Il est aussi possible d'utiliser VisualScript, un langage graphique propre à Godot qui se veut plus simple d'accès pour les non-développeurs[16].

À propos de Godot[modifier | modifier le code]

Histoire du projet[modifier | modifier le code]

Juan Linietsky et Ariel Manzur avaient commencé à développer un moteur de jeu depuis 2001[18], à cause de l'absence de moteurs de jeu généraliste à l'époque (beaucoup ne servaient qu'à concevoir des jeux de tir à la première personne, par exemple) et parce qu'ils pensaient important pour l'industrie vidéoludique argentine d'acquérir de l'expérience à propos des moteurs de jeu[19]. Cependant, en 2007, ce moteur fut mis à mal par quelques particularités de conception apparues avec certaines machines telles que l'iPhone ou la PlayStation3. En effet, une gestion de la mémoire différente et les microprocesseurs multi-cœur demandaient d'importantes modifications dans la façon de développer des jeux. Ils furent donc obligés de se séparer de l'architecture du moteur qu'ils avaient alors, et de repartir sur une autre base. Leur nouveau moteur de jeu est celui qui deviendra Godot[18]. Ils avaient pour idée de le rendre libre dès le départ[18], mais préféraient pour le moment en garder la propriété[19] et attendre que le projet ait une certaine maturité avant de le publier. Cinq à six ans après que le nouveau moteur de jeu ait été commencé, il commença à être utilisé au sein de OKAM studio[18] (et dans d'autres studios[19]). Cela leur permit de se focaliser sur la préparation du moteur pendant que le reste de l'équipe concevaient des jeux en l'utilisant[18].

Le 14 janvier 2014, Godot devint effectivement un logiciel libre par la publication, sur le site officiel du moteur, de sa première version sous licence MIT (Il s'agissait d'une version béta)[20],[21]. Cela permit à d'autres contributeurs bénévoles de participer au développement du moteur. Godot a aussi été publié sur Steam deux ans plus tard (le 24 février 2016[22]), ce qui, d'après Ariel Manzur, a fait gagner énormément de crédibilité au projet[18].

Le projet possède quelques sources de financement. Le 22 juin 2016, Mozilla annonce verser 20 000 $ au projet Godot afin que le moteur de jeu respecte les normes du web WebSocket, WebAssembly et WebGL lors des exportations de jeux en HTML5[10],[23]. Le 10 août 2017[24], Godot lance une campagne de financement participatif sur le site web Patreon[25]. Cette campagne vise à récolter des dons mensuels afin, d'une part, de constituer un salaire destiné à certains contributeurs-clé pour qu'ils travaillent à plein temps sur le projet (non plus uniquement pendant leur temps libre) et, d'autre part, de couvrir les frais des évènements concernant Godot. À ce jour, Juan Linietsky, Thomas Herzog et Rémi Verschelde sont rémunérés pour contribuer à Godot[26].

Choix du nom[modifier | modifier le code]

Le nom "Godot" a été choisi en référence à la pièce de théâtre En attendant Godot de Samuel Beckett.

Le moteur de jeu ne s'est pas toujours appelé "Godot". Cependant, avant qu'il ne le soit définitivement, ce nom était déjà utilisé en tant que nom de code pendant le développement en interne. Il désignait ce que ce projet pourrait devenir, à savoir, un moteur de jeu ayant des objectifs assez généraux, et doté d'une interface utilisateur décente. Un tel projet demandera beaucoup de temps avant d'aboutir (s'il aboutit), d'où la référence à En attendant Godot, dont l'attente est un thème de prédilection[27].

Juan Linietsky justifie a posteriori le choix de garder officiellement ce nom. En effet, les personnages de la pièce attendent en permanence un individu nommé Godot sans que personne ne sache s'il viendra effectivement un jour. Juan compare ces personnages avec les utilisateurs de Godot, qui sont en permanence dans l'attente de nouvelles fonctionnalités pour le moteur[15].

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « https://godotengine.org/article/dev-snapshot-godot-3-0-alpha-1 » (consulté le 22 septembre 2017)
  2. « https://godotengine.org/article/dev-snapshot-godot-3-0-beta-1 »
  3. « https://godotengine.org/article/dev-snapshot-godot-3-0-rc-1 »
  4. « https://godotengine.org/article/dev-snapshot-godot-3-1-alpha-1 »
  5. « https://godotengine.org/article/dev-snapshot-godot-3-1-alpha-2 »
  6. « Page GitHub de Godot. On y voit qu'environ 90 % du code est écrit dans le langage C++. » (consulté le 20 janvier 2017)
  7. a et b « Fonctionnalités de Godot (site officiel) » (consulté le 20 janvier 2017)
  8. « Godot : un game engine multi-plateformes opensource », Le rdv des passionnés de technologies, de jeux vidéo et de programmation,‎ (lire en ligne, consulté le 26 février 2017)
  9. (en-US) « Godot team ships Godot 3.0 | CG Channel », sur www.cgchannel.com (consulté le 7 octobre 2018)
  10. a et b « Godot 3.0 apportera un moteur de rendu réaliste 3D et la prise en charge de C# pour les habitués d'Unity », Developpez.com,‎ (lire en ligne, consulté le 7 octobre 2018)
  11. a et b « Godot est disponible en version 3.0, le moteur de jeu multiplateforme 2D et 3D fait peau neuve et apporte de nombreuses améliorations et nouveautés », Developpez.com,‎ (lire en ligne, consulté le 7 février 2018)
  12. a b et c « Publication de la version 2.0 du moteur de jeu libre Godot Engine - LinuxFr.org », sur linuxfr.org (consulté le 26 février 2017)
  13. a et b (en) « Scripting — Godot Engine 2.1 documentation », sur docs.godotengine.org (consulté le 28 février 2017)
  14. (en) « Frequently asked questions — Godot Engine 2.1 documentation », sur docs.godotengine.org (consulté le 28 février 2017)
  15. a et b « Introduction au moteur Godot, conférence de Juan Linietsky, 7 juillet 2015 », sur RMLL - Web TV (consulté le 28 février 2017)
  16. a et b « Godot Engine sort en version 3.0 ! - Créer un jeu vidéo », Créer un jeu vidéo,‎ (lire en ligne, consulté le 6 février 2018)
  17. Godot Engine, « Godot Engine - Godot 3.0 is out and ready for the big leagues », sur godotengine.org (consulté le 6 février 2018)
  18. a b c d e et f (en) « SteamLUG Cast s04e05 – Waiting For VR », sur steamlug.org (consulté le 4 mars 2017)
  19. a b et c 80.lv, « Godot 2.0: Talking with the Creator », sur 80.lv (consulté le 30 juin 2018)
  20. « Annonce du passage de Godot à la licence MIT sur developpez.com » (consulté le 26 février 2017)
  21. Godot Engine, « Godot Engine - First public release! », sur godotengine.org (consulté le 4 mars 2017)
  22. « Informations - Toutes les informations », sur store.steampowered.com (consulté le 4 mars 2017)
  23. (en-US) « Mozilla Awards $385,000 to Open Source Projects as part of MOSS “Mission Partners” Program – The Mozilla Blog », sur The Mozilla Blog (consulté le 30 juin 2018)
  24. (en) « Halfway there! Thanks for your incredible support! | Juan Linietsky & Godot Contributors on Patreon », Patreon,‎ (lire en ligne, consulté le 30 juin 2018)
  25. 3DVF, « Le moteur de jeu Godot 3.0 se dévoile et lance une campagne de levée de fonds - 3DVF.com », sur www.3dvf.com (consulté le 30 juin 2018)
  26. (en) « Juan Linietsky & Godot Contributors are creating Godot Engine | Patreon », Patreon,‎ (lire en ligne, consulté le 30 juin 2018)
  27. Godot Engine, « Godot Engine - Godot history in images! », sur godotengine.org (consulté le 3 mars 2017)