Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog Loterie
Logo Makeyourgame
Les formations Les financements Les exercices La certification Unity
Logo Makeyourgame
Mes objectifs Les jeux Les ressources Le glossaire
Logo Makeyourgame
Les tutos Les tutos Youtube

Doit-on utiliser le C# ou GDScript pour Godot Engine ? : par alto

Blog

Godot Engine offre la possibilité d'utiliser de nombreux langages au sein du moteur de jeu, comme par exemple son propre langage le GDScript.


En effet le moteur de jeu Godot Engine met bien en avant son langage développé pour le moteur, le GDScript, issu et basé sur le Python. Mais il propose aussi de pouvoir utiliser le C# (avec l'utilisation de Mono) , ou encore GDNative ou voire même en C++.

Devant ce large éventail, on est en droit de se demander lequel choisir et surtout existe-t-il un langage meilleur que les autres pour utiliser Godot Engine? 

C'est d'ailleurs une des questions que vous nous posez, notamment au sujet des vidéos Youtube, faites en utilisant le C#.

Notion de performances des langages

Si vous questionnez le web dans ce sens vous trouverez sans aucun doute des informations, et un des premiers points qui est comparé c'est leur vitesse d'exécution.

Sur ce point il semble que GDScript soit assez lent comparé au C#, lui même plus lent que le C++ !

Un très bon benchmark a été effectué par un utilisateur de Godot Engine, et je vous propose d'aller y faire un tour.

Les résultats sont sans conteste, GDScript est bien plus lent en exécution, et ce sur pas mal d'aspects du moteur https://makeyourgame.fun/sceditor/emoticons/ermm.png.

Il va même jusqu'à comparer les utilisations du C# dans Unity et dans Godot Engine. Ce dernier l'emporte légèrement du fait de sa simplicité de prise en charge du C#.

Ainsi après ce benchmark doit-on uniquement utiliser le C# pour Godot Engine ?

Je ne pense pas non. Et d'ailleurs certaines discussions de la communauté, ou le devBlog nous apprennent que l'optimisation du GDScript est déjà en cours. Cependant il y a de fortes chances que le C# demeure plus rapide. 

Cela provient du son système de compilation (JIT: Just In Time), comme pour le langage Java, lui permettant d'être plus rapide que le GDScript.

Le GDScript est plus lent ok, c'est un fait ... est-ce si horrible que ça ?

Et bien clairement cela dépend de votre projet de jeu vidéo ... avez-vous besoin de performances de ouf ? ou pas ?

Est ce que c'est juste un ti jeu pour le fun ? Alors là on se fiche pas mal des performances non ? 

Voilà ! Vous avez l'idée https://makeyourgame.fun/sceditor/emoticons/smile.png.

De plus il est tout à fait possible de mixer des zones de son jeu, faites tantôt en GDScript, puis en C# pour les parties devant être optimisées, voire même en C++, pourquoi pas ? 

Le langage C#, un langage à ne pas négliger

Après cette première cartographie, et malgré l'amour que l'on peut porter à GDScript, il faut aussi considérer l'aspect professionnel. 

Le langage C# est très utilisé en entreprise pour la conception logicielle et de part ses performances ou encore certaines de ses fonctionnalités appréciées par les développeurs.

C'est sûrement pour cela que Unity a choisi le C#, tout en virant sur ces dernières années le js et le boo qui n'étaient plus adaptés pour assurer de bonnes performances. En effet Unity avec son ECS / DOTS, pour porter son moteur au devant des plus grandes plateformes consoles (XBox, PS...), avait besoin de performances, comme la gestion multicore des CPU actuels !

Sur Make Your Game, nous avons choisi volontairement le langage C#, car il est pris en charge à la fois par Godot Engine et à la fois par Unity. Cela vous permet de pouvoir passer de l'un à l'autre sans devoir changer de langage.

Ainsi que vous vouliez créer votre propre premier jeu vidéo, ou vous lancer dans une carrière de développeur Unity, le C# est votre point de départ !

Commencez votre apprentissage du langage C# avec nos tutoriels C#  en libre accès. 

Mais il est évident qu'il n'y a pas que le C# dans la vie, et nous vous invitons fortement, au fur et à mesure de votre connaissance, et montée en compétence, à faire un tour aussi vers d'autres langages.

Le javascript (js) par exemple est un très bon langage web pour débuter. C'est pour cela que nous vous proposons aussi des tutoriels sur Phaser, qui est un framework, pour créer aussi des jeux vidéos (2D only), utilisant le javascript. 

De plus si par la suite vous souhaitez vous orientez vers des formations web avec Simplon par exemple, vous aurez déjà commencé un des piliers des langages web https://makeyourgame.fun/sceditor/emoticons/smile.png!

Simplon est un organisme de formation national, proposant des formations web, financées, pour lequel je travaille en tant que formateur.

Et surtout faites vous plaisir

Au delà de ces considérations de performances de langages, de métiers, de choix ... un point qui demeure essentiel, au delà de tout... Have Fun !

Amusez-vous à créer des jeux vidéos. Cela doit rester un pur plaisir, même dans le cadre d'un métier, même au delà des bugs qui font vraiment "ch****" par moments.

Mais c'est comme ça. Créer,  c'est pas toujours facile !

A très vite pour d'autres nouvelles ou pensées.


Photo de profil

Alexandre Taurisano

Développeur web, C# et certifié Unity. Formateur Unity et Fondateur du studio Event Orizon sur Carcassonne.