Salut !
Je sais que ce topic a été fait des milliards de fois donc désolé d'en refaire un nouveau mais j'ai juste une question. Ce que j'en retire c'est :
- Unity est plus beginner friendly (j'ai déjà commencé un peu avec ce moteur là)
- Unreal est plus puissant/les rendus sont plus jolis
- Unreal est plus utilisé professionnellement
- les blueprint sur Unreal suffisent largement et on a pas vraiment à programmer
Pourtant la programmation est une partie qui m'intéresse aussi beaucoup, et je sais pas vraiment à quoi ressemble ces "blueprint", est-ce qu'on réutilise juste des blocs déjà tout fait ou on doit quand même savoir programmer en C++ ? Je veux pas non plus commencer par programmer entièrement tout le jeu tout seul non plus, mais à terme j'aimerais bien mettre la main à la pâte quoi
Pourtant la programmation est une partie qui m'intéresse aussi beaucoup, et je sais pas vraiment à quoi ressemble ces "blueprint", est-ce qu'on réutilise juste des blocs déjà tout fait ou on doit quand même savoir programmer en C++ ? Je veux pas non plus commencer par programmer entièrement tout le jeu tout seul non plus, mais à terme j'aimerais bien mettre la main à la pâte quoi
C'est pas que tu utilise des trucs tout fait, c'est surtout que tu passe par une interface graphique au lieu d'écrire. ça te mache pas le travail (pas plus que le ferait une library) mais c'est surtout plus rapide et pratique à utililser, et ça permet de voir plus clairement ce que l'on fait, voici par exemple une fonction que j'ai dans mon jeu :
C'est une fonction qui se trouve à l'intérieur d'un objet "Building_BP", On a ici la définition de la fonction, et un appel de fonction ressemble à ça :
la flèche blanche représente le flux du programme (dans quel ordre le programme fais les trucs, sur du code en texte, c'est tout simplement de haut en bas (sauf quand tu a des trucs genre for/while/goto)
Les cables colorés sont des valeurs, si ce sont des points ce sont des variables simples, l'espèce de grille de morpion représente les arrays, et les {} des Sets (je l'ai pas représenté ici mais on a aussi des bibliothèques)
La couleurs des valeurs représente le type de valeur :
- bleu pour une référence
- rouge pour un booléen
- vert pour un integer
Le bloc (ou "node" comme on les appelle sur UE4) violet tout à gauche et qui porte le nom de la fonction c'est simplement le début de la fonction avec les paramètres d'entrée.
Les nodes return et for je pense que tu devines comment ça marche
La node branch c'est simplement le "IF" de unreal
Les nodes "Get all tiles in range" et "Get building" c'est simplement des fonctions que j'ai écrites moi (toujours en BP)
"Buildings in range so far" c'est une variables locale (qui n'existe que dans cette fonction)
Voilà, j'espère que c'est clair et que ça t'aide à mieux comprendre comment les BP fonctionnent
EDIT :
on a pas vraiment à programmer
On a pas besoin de programmer EN C++. Le BP ça reste de la programmation
Je vois, merci c'est beaucoup plus clair j'arrivais pas du tout à imaginer ce que c'était !
Par contre j'avoue qu'en voyant ça comme ça ça me dit trop rien.. écrire des lignes de codes quel plaisir
Ca depends ce que tu veux faire.
Si tu veux faire du gameplay, le blueprint c'est genial.
Si tu veux faire de l'algotithm, le C++ c'est mieux.
(le blueprint ca se regarde pas, ca s'essaie ....).
Je suis un programmeur C++, et ca me viendrait pas a l'idée de faire du C++ pour tout ce qui est gameplay sous Unreal. C'est tellement plus rapide en blueprint.
Le 20 septembre 2020 à 22:18:40 Lapintade a écrit :
Ca depends ce que tu veux faire.
Si tu veux faire du gameplay, le blueprint c'est genial.
Si tu veux faire de l'algotithm, le C++ c'est mieux.
(le blueprint ca se regarde pas, ca s'essaie ....).Je suis un programmeur C++, et ca me viendrait pas a l'idée de faire du C++ pour tout ce qui est gameplay sous Unreal. C'est tellement plus rapide en blueprint.
Salut, qu'est-ce que tu entends par "de l'algorithme" ? Tu parles de logique des classes ?
je pense a des choses un peu compliqué. Un perso qui doit prendre un objet et le poser ailleurs pour déclencher un event, c'est ce que j'appelle du "gameplay". Une fonction qui doit trier un gros tableau pour en déduire des trucs, c'est de l'algorithme. Le mieux reste quand meme de m"langer les deux (c'est fait pour ca). Tu fais tout en blueprint et quand tu as besoin tu fais tes fonctions plus costaud en C++ et tu les appelles depuis les blueprints.
Les Blueprints si tu regardes des vidéos contiennent tout ce que tu as besoin pour créer un jeu.
Ce jeu a été réalisé entièrement en Blueprint par une personne :
https://www.youtube.com/watch?v=fYF4gfZ0F4M
Tu peux également créer tes propres briques Blueprint en C++ si tu le souhaites, comme par exemple pour créer des fonctionnalités avancées optimisées en une brique Blueprint, c'est très courant.
Il y a la programmation visuelle également possible sous Unity avec le plugin gratuit "Bolt" qui est l'équivalent des Blueprint sous Unreal.
https://assetstore.unity.com/packages/tools/visual-scripting/bolt-163802
(Je l'avais utilisé et il est vraiment bon et optimisé, il permet également de créer des "states machines" graphiques, et tu peux développer en C# tes propres briques visuelles).
Pour la programmation pure et dire je recommande à 100% Unity pour apprendre, c'est beaucoup plus facile que le C++ et les tutoriels ça ne manque pas.
Autre point important la compilation du jeu pour le lancer sous Unity sera beaucoup plus rapide, alors que sous Unreal tu devras attendre plus longtemps si tu as modifié plus de code à plusieurs endroits.
C++ c'est beaucoup plus compliqué que le C# , et pour le maitriser complètement ça demande beaucoup d'années comparé au C#, même s'il y a des simplifications pour l'utilisation du C++ dans Unreal.
Tout dépend aussi à quel niveau de complexité tu veux utiliser le C++.
Si tu plus tard tu comptes bosser dans une grosse société de jeux vidéo en tant que programmeur C++, ou que tu aimes la complexité et que tu es fan de coding, tu peux aller vers Unreal en C++.
Quoique tous les jeux développés sous Unreal ne sont pas 100% C++, tu vas quand même devoir apprendre les Blueprints.