La différence entre utiliser Blueprints et C++ et quoi choisir pour Unreal Engine 5

Par atremblay, 19 février, 2024
UE5

Introduction


Avant de commencer notre propre jeu on doit selectionner un des deux languages que notre application va prendre comme base. Il existe 2 options, Blueprints et C++. Ces 2 options présentent des avantages et des inconvénients. Donc dans ce blogue, on va explorer le côté Blueprints et le côté C++ dans Unreal Engine 5 et puis comparer ces deux options. 

Image retirée.

 

C++ 

Image retirée.


Le C++ dans l'Unreal Engine 5 est le principal langage de programmation pour l'implémentation de la logique du jeu, des systèmes et des fonctionnalités au sein du moteur. Dans l'image en haut on trouve une image qui montre comment créer un movement WASD avec du C++ dans Unreal Engine 5. On va comparer cela avec les Blueprints plus tard... 

L'utilisation de C++ dans Unreal Engine 5 pour le développement de jeux présente plusieurs avantages, mais elle s'accompagne également de ses difficultés...
 

Avantages avec le C++

Vitesse d'exécution : Le code écrit en C++ s'exécute généralement plus rapidement que la logique équivalente mise en œuvre dans les Blueprints. Cette caractéristique est cruciale pour les composants dont les performances sont critiques, tels que l'IA, la physique et les systèmes de jeu complexes.

Code modulaire : Le C++ permet de créer un code modulaire et réutilisable, ce qui facilite l'organisation et la maintenance. Les développeurs peuvent créer des classes, des fonctions et des bibliothèques qui peuvent être réutilisées dans différentes parties du projet.

Bibliothèques externes : C++ permet l'intégration de bibliothèques externes, donnant accès à un large éventail de fonctionnalités au-delà de ce qui est disponible dans le cadre d'Unreal Engine.

Versionnement plus facile : La gestion du code dans les systèmes de contrôle de version est généralement plus simple avec C++ qu'avec les systèmes de script visuel comme Blueprints.
 

Déavantages avec le C++

Niveau de difficulté avec le C++ :  Rien autre à dire... Le C++

Temps de compilation : Les modifications apportées au code C++ nécessitent souvent une compilation, ce qui peut ralentir le processus d'itération par rapport aux modifications en temps réel possibles avec les Blueprints.
 
Difficultés de collaboration : Les membres de l'équipe venant d'autres secteurs, comme les artistes et les concepteurs, peuvent trouver difficile de collaborer sur le code C++ par rapport à la nature plus visuelle et collaborative des Blueprints.
 

 

Blueprints

Image retirée.

Les Blueprints dans Unreal Engine 5 offrent un système de script visuel qui permet aux développeurs de créer une logique de jeu et des comportements sans avoir avoir à utilise un language de programmation traditionnelle. Un exemple de Blueprints se trouve dans l'image en haut de nous. Ceci script permet de faire le movement WASD d'un personnage. Simplement, on prend les rotations et les vecteurs x et z du personnage et on ajoute du movement. 

Avec un clique droit on peut ajouter des blueprints prédéfinies qu'on doit juste connecter avec d'autres blueprints pour créer un algorithme. C'est tout!

Image retirée.

Image retirée.

Image retirée.

Bien que les Blueprints soient puissants et très plaisant aux utilisateurs moins habile avec C++, ils présentent un certain nombre d'avantages et d'inconvénients 


Avantages avec les Blueprints:

Visual Scripting : Les Blueprints fournissent un langage de script visuel, ce qui les rend accessibles aux artistes, aux concepteurs et à tous ceux qui n'ont pas de solides connaissances en programmation. 

Protypage rapide : Les Blueprints permettent un prototypage et une itération rapides. Les modifications peuvent être effectuées visuellement dans l'éditeur sans qu'il soit nécessaire de recompiler le code, ce qui accélère le processus de développement.

Flux de travail intuitif : Le système basé sur les nœuds est intuitif et permet aux développeurs de créer une logique complexe en connectant des nœuds, ce qui facilite la compréhension du flux du code.

Débogage en temps réel : Les Blueprints prennent en charge le débogage en temps réel, ce qui permet aux développeurs d'identifier et de corriger les problèmes pendant que le jeu se déroule.

Design par événements : Les Blueprints sont pilotés par les événements, ce qui convient à de nombreux scénarios de développement de jeux où les événements déclenchent des actions ou des comportements spécifiques.
 

Inconvénients avec les Blueprints:

Vitesse d'exécution : Les Blueprints sont généralement plus lents à exécuter qu'un code C++ équivalent. Les tâches critiques en termes de performances peuvent être mieux gérées en C++ afin de garantir des taux de rafraîchissement optimaux.

Logique complexe : Bien que les Blueprints soient puissants, une logique extrêmement complexe peut devenir difficile à gérer dans le système de script visuel. Dans ce cas, le langage C++ peut offrir une meilleure organisation et un meilleur contrôle.

Fonctionnalités limités : Avec son système de design par événements, les blueprints sont limitées pour des taches très spécifiques comme par exemples l'accès de bas niveau. Certaines modifications complexes du moteur ou intégrations profondes peuvent nécessiter des compétences en C++.
 

Quoi choisir alors?

C'est très simple! La règle empirique est la suivante : 

Débutant -> Blueprints 
Avancée -> C++
Petits projects et prototypes -> Blueprints 
Gros projects -> C++

(Bien sûr si vous êtes compétant en C++ c'est recommendé d'y chosir!)
 

Conclusion

En conclusion, on a vu les deux languages de programmation utilsées avec Unreal Engine 5 : Les Blueprints et le C++. Aussi, on a des avantages et incovénients de ces deux et finalement de quoi choisir. Étant donné que je suis un débutant avec ce moteur de jeu, je vais choisir mon project en Blueprints pour faire mon propre jeu! En plus, je vais essayer de combiner ces deux éléments (Blueprints et C++) dans mon parcours à apprendre Unreal Engine 5.

Merci beaucoup et au prochain blogue!
 

Références

  1. https://dev.epicgames.com/community/learning/tutorials/qM2K/unreal-engine-comparing-blueprints-and-c-use-cases (Consulté le 18 février 2024)
  2. https://docs.unrealengine.com/5.0/en-US/blueprints-visual-scripting-in-unreal-engine/ (Consulté le 18 février 2024)
  3. https://docs.unrealengine.com/5.0/en-US/unreal-engine-cpp-quick-start/ (Consulté le 18 février 2024)
  4. https://docs.unrealengine.com/5.0/en-US/programming-with-cplusplus-in-unreal-engine/ (Consulté le 18 février 2024)
  5. https://program-ace.com/blog/unreal-engine-blueprints-vs-c/#:~:text=Blueprints%20offer%20a%20visual%20scripting,complex%2C%20performance%2Dcritical%20tasks (Consulté le 18 février 2024)
  6. https://www.youtube.com/watch?v=vpysMjReREw (Consulté le 18 février 2024)

Commentaires