# Jeux vidéo > Jeux vidéo (Discussions générales) > Le coin des développeurs >  Godot. Multiplateforme et opensource du MIT

## Tchey

Après avoir fait un tour du côté de Python, LUA et LÖVE, RPGBoss, SuperPowers, et bien d'autres moteur/framework/langages/autres, je suis tombé sur Godot.

C'est gratuit, open source, libre, et la version 2.1 est sortie il y a peu. Aussi bien pour les jeux 3D que 2D, Godot gère pas mal de trucs, et son langage est proche du Python, sans en être vraiment.

http://godotengine.org/

Présentation de la version 2.1 sortie en aout 2016 : http://www.youtube.com/watch?v=nWRgfOUuhiU

C'est aussi sur Steam : http://store.steampowered.com/app/404790/




Des connaisseurs ?

J'ai trouvé deux séries de tutoriels pour débuter de manière simple et compréhensible (en anglais) : http://www.youtube.com/watch?v=UWB-HVFxEpU et http://www.youtube.com/watch?v=tPF_khHiPAM

Godot est mon favori pour le moment, du haut de mon ignorance. Très simple à installer sur Linux, communauté active et grandissante, traduction partielle du logiciel et de certaines ressources en français si ça intéresse des gens...

----------


## Poussin Joyeux

Belle découverte! Merci!

J'ai lu sur leur site qu'ils préparaient le support du C# aussi. 
Mais leurs arguments pour leur langage maison sont bons également.

La vidéo showcase est bien variée aussi!

----------


## Hyperpenguin

Ce monsieur qui fait de super tuto sur Game Maker commence à en faire sur Godot:
https://www.youtube.com/watch?v=ntYj...jXtGi8P4TaPIAp

ça peut peut-être t'intéresser.

----------


## Longwelwind

Par contre, c'est pas du MIT, ça utilise la licence MIT. Le moteur était de base un moteur utilisé par une société, qui a par la suite été open-sourcisé.

J'ai pu le tester, et il est vraiment sympa.
Y'as quelques choix de designs avec lesquels je suis pas vraiment d'accord, et j'attends que le C# soit ajouté comme langage de scripting avant de faire quelque chose de concret dessus, mais y'as pas mal de potentiel !

----------


## Hyperpenguin

J'ai commencé le tuto que je mentionnais, du coup, et le language ressemble fort à du Python on dirait. pour l'instant je m'y retrouve, en sortant de game maker c'est pas évident mais si j'arrive à faire un truc rigolo je le posterais ici.

----------


## G.bleu

> et le language ressemble fort à du Python on dirait


Et y'a Python (le vrai) qui arrive !

----------


## PaulPoy

Un projet de cours vidéo financé par Kickstarter vient de se terminer. Il est l'oeuvre Nathan Lovato (alias GDquest). Je n'ai pas backé (eu d'autres dépenses...), mais j'espère qu'on pourra acheter les cours ailleurs, que ça ne reste pas trop cloisonné.
Le monsieur met à dispo qq didacticiels sur Godot. A noter qu'il a fait pas mal de vidéo sur Krita, Construct etc.

----------


## RedGuff

Bonjour.  ::): 
*En attendant* le nouveau "dév couché", ça peut être bien !
 :Clap:

----------


## PaulPoy

La version 3 se fait attendre. Elle semble apporter beaucoup de bonnes choses, comme un moteur 3D revu et corrigé, des outils de mixage son, l'ajout/création de plugins sans compilation, le support du C#, les scripts visuels (à la Blueprint), une API haut niveau pour le multijoueur etc.

----------


## JulLeBarge

Hello,

ça fait longtemps que j'ai pas tenté de créer un petit jeu, et j'ai une envie en ce moment de faire un petit prototype de topdown shooter. A l'époque je faisais la 2D avec Construct, mais c'est assez limité surtout en version gratuite, et j'aimerais bien pouvoir tester le jeu sur mobile.
Je découvre l'existence de Godot, ça peut le faire pour ce genre de projet, c'est facile à prendre en main ?

Sinon je pourrais aussi partir sur Unity, mais pour l'avoir déjà utilisé, je le trouve un peu lourd, et j'ai jamais fait de 2D avec.

----------


## PaulPoy

A prendre avec des pincettes parce que je n'ai qu'un tout petit peu tripoter ces 3 moteurs, par curiosité (plus C2 tout de même avec lequel j'ai fait un plugin, un petit proto etc).
Godot me semble entre les 2 niveaux difficulté d'approche, mais le manque de tuto et de sujets contredit un peu cela j'imagine quand on approche des choses très pointues. 
Pas mal d'éléments peuvent être gérés en code ou dans le logiciel. Il y a moyen de se faire des sortes de design pattern ECS, donc avoir une vraie approche code. Ce qui avec C2 était assez chiant, la sélection d'éléments pouvant être pas pratique (ils ont corrigé certaines limitations de ce type dans C3 si j'ai bien suivi).
Godot 3 va supporter le C#, j'imagine que le pont avec Unity en sera facilité.
De ce que j'ai lu et très rapidement essayé, Godot semble à l'aise en 2D (il possède sa vue propre pour la 2D, etc). Et pour le mobile, je n'ai pas essayé, mais normalement c'est censé fonctionner (me semble qu'à la base les dév argentins du projet s'en servaient pour des jeux mobiles, mais je fabule peut être).

----------


## Calys

Salut jullebarge, alors comme PaulPoy mon avis est à prendre avec des pincettes car je n'ai qu'un peu touché à Unity et Godot, et ne connais pas construct 2.

Ce qui me fait pencher vers Godot plutôt que Unity est le fait qu'il est mieux adapté à la 2D.
La 2D dans Unity se résume à de la 3D avec un axe de caméra qui reste fixe alors que chez Godot tu sens que ça a été pensé pour de la 2D dès le départ.
Par contre je n'ai jamais fait de 3D, donc la comparaison entre les deux s'arrête là.

Ce qui me fait pencher pour Godot est aussi le fait qu'il soit open source et fonctionne sous linux, mais ça ne concerne pas tout le monde, j'en conviens.

Pour ce qui est des tuto et des forums, c'est vrai que tu trouveras beaucoup plus de ressources pour Unity que pour Godot.
GDquest à quand même fait une belle série de tutos pour les débutants et une autre qui aborde des thèmes plus avancés (d'autres vidéos sont à venir mais elles seront payantes/réservées aux backers de son kickstarter).
Pour ce qui est de la communauté, les channels discord respectifs de Godot et GDquest sont assez actifs, très loin de ce qu'on pourrait trouver pour Unity, mais c'est pas le néant non plus.

Après ça dépends aussi de ce que tu trouves "lourd" dans Unity, les deux suivent un peu là même approche, c'est des moteurs de jeu assez simple à prendre en main grace à leur éditeur, mais aussi assez générique pour pouvoir créer quasiment n'importe quel type de jeu avec.

----------


## PaulPoy

Ça fait qq temps que je suis le projet Godot. Il est tout de même assez agréable à utiliser, il pèse qq Mo, et se lance directement, c'est plus pratique qu'Unity et sa connexion un peu lourdingue.
La communauté semble se développer petit à petit ce qui est bon signe. La doc doit être revue. Ils ont lancé un Patreon pour dégager à plein de temps un des concepteurs et ça a bien fonctionné ! 
J'essaierai de m'y pencher plus sérieusement dessus quand la v3 sera stable avec le support C# (l'espèce de Python actuel est sympa mais peut être un poil limité, un peu de typage et cie m'intéresse plus à l'heure actuelle).

----------


## JulLeBarge

Merci pour vos réponses. Je vais tester Godot du coup, ça semble bien correspondre à ce que je recherche: simple à utiliser, parfait pour la 2D !

----------


## Hyperpenguin

Bon je me suis mis à Godot la semaine dernière et ça marche super bien, c'est une vrai réussite au niveau prise en main, rapidité, stabilité, ça pèse 60mo et on est directement dans le dev très vite! Mis à part GDquest et heartbeast, vous connaissez d'autres ressources intéressante pour les tutos?

----------


## PaulPoy

J'avais noté qq chaines youtube, je ne sais pas trop ce qu'elles valent, et ne sont pas très fournies, mais à défaut de mieux.
https://www.youtube.com/channel/UChv...NROf6iMDhxIpUA
https://www.youtube.com/channel/UCBH...9vVPkL2VxVHU8A
https://www.youtube.com/channel/UC5C...vsn7ddwsuUtJOQ

Ce n'est pas un tuto mais j'ajoute un message intéressant de Lars Kokemohr, enseignant qui a mis en place avec succès Godot comme outil pédagogique dans son université (et qui intervient régulièrement sur la page Facebook). Il y explique en quoi Godot, selon lui, est une meilleure alternative qu'Unity pour apprendre le développement de jeux vidéo. Il met en avant sa simplicité et les meilleures habitudes qu'il propose.
https://www.quora.com/Should-I-learn...-as-a-beginner

Pour l'anecdote, le second message tente d'argumenter en faveur de Unity (objectivement, il le fait mal). Son auteur parle notamment du côté émotionnel des utilisateurs de Godot, alors que lui même à refuser de répondre à Lars K. qui souhaitait le contacter pour dialoguer à ce sujet, allant, il me semble, jusqu'à le bloquer.

----------


## Hyperpenguin

Ah bah c'est du joli. Merci pour les liens je regarde ça.

----------


## Hyperpenguin

Bon je m'éclate avec même si un point me chagrine, il existe une méthode bien pratique, is_floor(), qui permet de savoir si on est au sol ou pas, il existe aussi is_on_ceiling(), et surtout is_on_wall()... Super mais is_on_wall ne donne pas de quel côté est le mur, du coup c'est inutile ! J'ai du créer 2 node area2d de part et d'autre de mon personnage et jouer avec les signaux "body_entered" et "body_exited" et la encore je ne sais pas pourquoi mais mon personnage de base entre en collision x les notes area2D alors que la collisionShape ne le recouvre pas... Très bizarre, mais je suppose que ça pourrais s'améliorer.

----------


## Rashtek_Frites

Yo !

Tu ne te compliquerais pas un peu la vie avec les nodes que tu as rajouté et leurs signaux ?

Je suppose que ton bonhomme comprend un node KinematicBody2D, et du peu que j'ai vu en tâtouillant Godot, ça te permet de laisser au moteur le soin de gérer les collisions. 

T'es-tu penché sur la classe KinematicCollision2D ? C'est un ensemble de données retournées par les fonction move_and_collide() et move_and_slide() de la classe KinematicBody2D, où tu trouveras notamment le vecteur de collision, utile pour scripter la réaction de ton bonhomme - et résoudre ton problème de savoir de quel côté est le mur sur l'axe des x.

Je n'ai quasiment pas d'expérience en développement de jeu, mais je suppose que la fonction is_on_wall() peut surtout servir si tu souhaites que ton bonhomme puisse s'accrocher au mur ou y rebondir, toutes les infos dont tu aurais besoin pour scripter le comportement souhaité provenant de la KinematicCollision2D que tu récupérerais dans une variable qui va bien.

Mon expérience récente sur Godot se limite à avoir bidouillé un embryon de Breakout - juste une balle qui rebondit sur les bords de l'écran, et j'ai été agréablement surpris de constater à quel point il est simple de gérer les collisions grâce aux fonctions natives. J'ai l'impression que la capacité de choisir le node le plus approprié à la résolution du problème est la principale compétence à acquérir pour exploiter pleinement les possibilités du moteur. Il y a beaucoup de sortes de nodes et il n'est pas évident de choisir le bon quand on se familiarise avec le système et qu'on ne connaît pas toutes leur propriétés et leurs méthodes.

Edit : Question ressources, je recommande la section Tutorials de la documentation officielle. Dans ton cas, particulièrement Using KinematicBody2D et tout particulièrement la section Movement and walls d'où provient toute ma science sur le sujet.  ::P: 

Edit2 : Détail important, peut-être pas pertinent mais au cas où : quand tu modifies la taille d'une CollisionShape2D il faut faire gaffe à utiliser les deux poignées qui sont à l'intérieur de la Shape et pas l'une des quatre qui sont à l'extérieur, sans quoi tu modifies l'échelle (scale) du node, ce qui est une source avérée de bugs pour le moteur physique.

----------


## Hyperpenguin

Merci pour cette réponse détaillée ! On m'a effectivement redirigé vers KinematicCollision2D pour me sortir de mon problème. Je vais m'y pencher, même si ça fonctionne dans l'état  actuel,c'est pas très propre. Je bute sur un autre soucis en parallèle, j'aimerais importer des maps faites avec Tiled Map editor dans Godot, un plugin existe mais ça foire, je sais pas si la version du plugin store de Godot est à jour face au github officiel du plugin, à voir.

----------


## Hyperpenguin

Salut salut petite question, je n'arrive pas a uploader mon jeu Godot sur itch.io, enfin le fichier est bien transmis mais marqué comme "indisponible", vous avez déjà eut ce problème ?

----------


## Hyperpenguin

J'ai jamais eut de réponse et j'ai laissé tomber hehehe. Y'a des gens ici qui utilisent Godot? Que pensez vous de la 3.1?

----------


## schouffy

T'as ta réponse je crois  :^_^: 
ça a l'air cool et je serais bien tenté d'essayer, mais je suis tellement productif en C# que je me vois pas quitter Unity.

----------


## PaulPoy

Depuis la v3 Godot propose le C#.

----------


## schouffy

Ah ben je suis encore plus tenté d'essayer mtn  ::):

----------


## theludovyc

Bonjour à toutes et à tous,

Je suis responsable de la communauté francophone de godot  ::):  !

Le site officiel à été mis en ligne hier soir https://www.godot-francophone.org/

N'hésitez pas aussi à rejoindre notre discord https://discordapp.com/invite/NQVd34V et à nous suivre sur twitter https://twitter.com/GFrancophone =)

----------


## Hyperpenguin

Oui venez on est bien, et Godot c'est vraiment le feu!

----------


## Kamikaze

Bon après avoir reniflé un peu partout j'ai jeté mon dévolu sur Godot, ça a l'air excellent (surtout pour la 2D) et c'est open source donc merveilleux.

Le support pour Vulkan arrive, j'ai aussi démarré avec Vulkan par curiosité concernant les rendus graphiques et je trouve ça génial pour apprendre, tout est tellement explicite que c'est finalement assez simple. Le truc c'est surtout de savoir où sont les trucs et de se programmer sa petite abstraction

----------


## Rashtek_Frites

Oui Godot c'est chouette. En plus, Godot est fait en Godot, donc rien que ça ça me rend tout chose.
Je suis trop paresseux pour développer quoi que ce soit d'un peu poussé mais même un gland comme moi a réussi à faire des trucs avec.

La documentation a toujours été bien faite et toute une partie est en fait constituée d'exemples concrets qui permettent généralement de trouver assez rapidement de quels Nodes on a besoin pour concrétiser ses idées en tirant pleinement profit des fonctionnalités du moteur pour se simplifier la vie. (Tout en gardant la possibilité d'ouvrir le capot et de customiser au poil de fesse si on est un vrai développeur qui touche sa bille en C++ par exemple).

----------


## Kamikaze

Ouais l'aspect extension m'intéresse beaucoup, j'étais un poil déçu de pas pouvoir démarrer nativement en C++ mais ça me fera pas plus mal de m'initier au GD script.

Y'a même les shaders intégrés et tout plein de trucs prêts à utiliser, c'est génial.

D'ailleurs première question développement pour ceux qui y touche un peu (dans un contexte 2D avec des sprites)

1) Est ce que vous avez un moyen élégant d'interpoler les frames d'une animation? Y'a tout un tas de moyens pour faire ça, mais je me demande si y'a pas une solution simple via un shader ou autre.

Bon j'ai pas encore visité toutes les options d'animation donc ça se trouve y'a d'jà un truc du genre. 

Genre entre 2 key frame, interpoler le mouvement

----------


## Kamikaze

Sinon apparemment le support pour les specular map pour les sprites arrivera dans 4.0 vivement les nouvelles releases

----------


## Rashtek_Frites

Pour ta question sur l'interpolation, elle m'a tué, et je vais peut-être dire une connerie, mais tu as regardé ce qu'il est possible de faire avec le node Tween ?
Si ça se trouve j'ai rien pipé et c'est pas du tout ce que tu cherches, mais ça me coûte pas plus cher de le suggérer.

----------


## Kamikaze

Ah je vois souvent parler de ce Tween mais je sais pas ce que sais encore, je vais mater ça

- - - Mise à jour - - -

Eh ben ça a l'air d'être ça p'têt, faudra que je teste

Ici aussi ça en parle: https://docs.godotengine.org/en/stab...mple-animation

Mais je suis pas sûr qu'aucun des deux fasse effectivement une transformation graphique, mais bref je vais creuser ça d'abord

----------


## Rashtek_Frites

Ah effectivement, je suis complètement hors de mon domaine mais je crois que ça correspond à ce qu'on appelle les fonctions d'easing, le genre de technique qu'on utilise pour que les déplacements des sprites sur l'écran soient moins linéaires et d'apparence plus naturelle. Ça gère peut-être quelques déformations de base ceci dit (du style zoom et dézoom, ça j'en suis quasi sûr).

----------


## Kamikaze

Ouais je commence à creuser les shaders là, Godot a l'air de supporter ça vraiment bien, avec éditeur en live des shaders etc.

Pour mon histoire d'interpolation j'ai trouvé une app qui fait ça via machine learning apparemment mais je suis surpris de pas avoir trouvé de solution purement algorithmique, ça a pas l'air très compliqué, m'enfin, faut que je creuse

----------


## LOIC JOINT

C'est un moteur génial, j'ai bossé avec pendant plusieurs années (et je l'utilise toujours !) après avoir utilisé Unity et franchement, j'ai jamais regretté Unity. En plus les dernières versions apportent un sacrée paquet de choses en plus, pour moi c'est clairement le pendant libre de Unity.
J'ai réalisé 3 jeux avec, si cela peut donner une idée ^^ (ces derniers sont développés pour mobile, il faut le prendre en compte ^^).

----------


## Rashtek_Frites

Ton intervention a aussi le mérite de souligner que les options d'exportation de projet de Godot permettent de déployer ses créations sur toutes les plateformes sans charge de travail supplémentaire, ce qui doit être le cas d'autres moteurs de ce type (je ne connais pas très bien ce domaine), mais ça reste avantageux.

----------


## LOIC JOINT

> Ton intervention a aussi le mérite de souligner que les options d'exportation de projet de Godot permettent de déployer ses créations sur toutes les plateformes sans charge de travail supplémentaire, ce qui doit être le cas d'autres moteurs de ce type (je ne connais pas très bien ce domaine), mais ça reste avantageux.


Tout à fait, d'ailleurs c'est vraiment un jeu d'enfant (on télécharge le module d’exportation qui nous intéresse, cela ce fait directement dans le logiciel via un simple clique et hop, on peut exporter vers le format désiré !). On peut même activer la console de débug en lançant le jeu sur son terminal mobile, ils font vraiment fort ^^

----------

