Passer d'Unity à Godot

Unity reste le moteur de jeu le plus connu, mais Godot séduit de plus en plus de développeurs. Voici un guide simple pour comprendre les différences entre les deux moteurs et passer de l’un à l’autre sans difficulté.

Passer d'Unity à Godot

Tout le monde connaît Unity, c'est le moteur de jeu le plus utilisé au monde. Mais il y a un autre moteur de jeu qui est en train de prendre de l'ampleur : Godot.

Pourquoi Godot ?

Godot est un moteur de jeu open source, gratuit et en constante évolution. Il est très simple à prendre en main et il est facile de créer des jeux avec. Il convient particulièrement aux petits jeux et il est très performant.

Il reste relativement proche de Unity, il est donc facile de passer de l'un à l'autre.

La logique de Unity

Unity est un moteur de jeu basé sur la logique des GameObjects. Un GameObject est un objet qui contient des composants. Un composant est une fonctionnalité qui est ajoutée à un GameObject. Par exemple, un GameObject peut être un joueur et avoir un composant qui lui permet de se déplacer, un autre qui lui permet de sauter et un autre qui lui permet de tirer.

La logique de Godot

Godot est basé sur la logique des Nodes. Un Node est un objet qui contient des enfants. Un enfant est un autre Node. Par exemple, un Node peut être un joueur et avoir un enfant qui lui permet de se déplacer, un autre qui lui permet de sauter et un autre qui lui permet de tirer.

Les équivalents de Unity dans Godot

GameObject -> Node

Les Nodes sont des objets qui peuvent être affichés à l'écran, mais ils peuvent aussi être dans l'interface graphique, être des sons ou être des fichiers de configuration. Godot comporte 3 types de Nodes : les Nodes 2D, les Nodes 3D et les Nodes d'interface graphique (Control).

Les Nodes peuvent être des enfants d'autres Nodes et ils peuvent avoir des enfants. Les Nodes peuvent aussi avoir des scripts attachés, qui sont des scripts GDScript (ou C#).

Tout comme les GameObjects, vous pouvez instancier des Nodes à partir d'autres Nodes. Par exemple, vous pouvez instancier un Node qui représente un joueur, et vous pouvez instancier un Node qui représente un ennemi, et vous pouvez les faire enfant d'un Node qui représente une scène.

Prefab -> PackedScene

Sur Godot, pour instancier un Node, vous devez utiliser une PackedScene. Une PackedScene est un fichier qui contient un Node. Celle-ci peut être instanciée et utilisée comme un Node normal, mais autant de fois que vous le voulez, tout comme les Prefabs sur Unity.

Component -> Script

Sur Unity, les scripts sont des composants attachés à un GameObject. Sur Godot, les scripts sont simplement des fichiers GDScript (ou C#) qui sont attachés à un Node.

ScriptableObject -> Resource

Dans Unity, les ScriptableObjects sont des objets qui permettent de stocker des données, qui peuvent ensuite être manipulées par les Components. Ils sont utilisés, par exemple, pour stocker des configurations, des statistiques, des paramètres, etc.

Dans Godot, leur équivalent sont les Ressources. De la même manière, elles permettent de stocker des données et peuvent ensuite être manipulées par les scripts.

Conclusion

Si vous avez déjà utilisé Unity, vous pouvez facilement passer à Godot. Il est très simple à prendre en main et vous ne devriez pas être trop perdu une fois que vous aurez compris la logique de Godot et les quelques différences.

Vous serez rapidement interpellé par la simplicité de Godot et vous serez surpris par la puissance de ce moteur de jeu. Vous pourrez créer des jeux très rapidement et vous pourrez les exporter sur plusieurs plateformes. Le gros avantage pour vous qui venez de Unity et donc êtes habitué au C# est que vous pouvez utiliser le C# sur Godot (bien que le support et les guides soient plutôt en GDScript, vous aurez toujours un équivalent en C#. Sachez aussi que le support de C# n’est pas aussi bon qu’en GDScript, bien qu’il soit de mieux en mieux), mais vous pouvez aussi utiliser le GDScript, qui est un langage de script très simple et qui permet de créer très facilement des jeux.