Quelles sont les limites des Blueprint ?

Sont-ils dépendants de C++

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour tout l’monde !

Jonglant, depuis quelques temps, entre Unreal Engine 4 et Unity pour tester les deux moteurs (et ainsi me faire un premier avis sur celui qui me conviendrait le mieux), je suis tombé sur le débat "C++ 'vs’ Blueprints: ça donne quoi ?"1 concernant UE4; bon, d’après les intervenants, si on résume en très gros, il semblerait que les Blueprints soient plutôt limités et ne sont "que" un complément au langage C++. Un outil utile, certes, mais qui n’a rien d’une alternative pour les concepteurs de jeux vidéos n’ayant pas de notions de cpp.

En lisant l’article le plus récent2 que j’ai trouvé à ce sujet, il semblerait que la situation n’ait pas réellement changée: les Blueprints, c’est pour le prototypage, la conception d’un jeu de A à Z avec du visual scripting étant considéré comme un mauvais choix stratégique3.

Personnellement, je ne peux pas avoir d’avis sur le sujet puisque je n’ai jamais utilisé le moteur pour un quelconque projet. En bref, voici mes questions:

  • Que pensez-vous des limitations des Blueprints ? Sont-elles avérées ? Si oui, à quel niveau (= type de projets) les limitations deviennent visibles, voire bloquantes, selon vous ?
  • Si les limites sont avérées: avez-vous eu recours à l’écriture de fonctions C++ ? Était-ce régulier ?

Quoi qu’il en soit, merci d’avance pour vos réponses ! ^^

The most inflated egos are often the most fragile.

+0 -0
Auteur du sujet

Je penses que le blueprint a de beau jour devant lui.

https://www.youtube.com/watch?v=DywBqQtTHMo&list=PLL0cLF8gjBprG6487lxqSq-aEo6ZXLDLg

Ce mec fait tout en blueprint.

PatateDur

Ok, merci pour le lien, mais maintenant que tu es banni, ça va être compliqué d’échanger.

Personne d’autre n’a eu d’expérience relativement avancée avec les Blueprints ? :(

The most inflated egos are often the most fragile.

+0 -0
Auteur du sujet

Cette réponse a aidé l’auteur du sujet

Je me permets un doublon, suite à de nouvelles recherches pour obtenir des réponses concernant mes questions. Je ne comprends pas comment j’ai pu louper ça sur Reddit, mais il se trouve que dans le sub-reddit dédié à UnrealEngine 4, une partie de la FAQ répond à cette question d’une manière plutôt efficace:

Version courte

TLDR: If you are alone, in a very small team, inexperienced or only want to test out an idea real quick it is valid to focus on BP only.

Version longue

The engine works by far the best when both are used. C++ is the programming language, BP works as scripting language. A separation that is used in a lot of large software projects.

It basically means that the foundation is written with a fast runtime, a lot of safeguards, testing and redundancy in C++, which is a bit slower to code but a lot more convenient to make really solid code, especially when you need to change something in a few weeks time. Setting up the C++ environment for use with UE4 takes a while and the language itself is generally recommended for advanced programmers only as there are a lot of fundamental principles and techniques which need to be understood before the language can be used efficiently.

BP is excellent for quickly combining functionalities and a bit slower than C++ during runtime (aka when the game is running). This difference in speed is mostly irrelevant until you really have performance issues and pretty much all features you commonly see in games can be implemented with BP by itself. However, it comes with a few downsides. Collaboration is not convenient as BPs are effectively binary files. This means there is no simultaneous editing of the same file as is possible in text based code. Other tools around BP are also not as effective as the text equivalents simply because text editors have been around much longer and are used by a lot more people. This means debugging large code files will be slower and organization in general is more challenging. Which makes working on larger projects that are primarily BP based easily very inconvenient during the polishing phase when you need to touch various aspects of the code again. The upsides are a much more intuitive way of programming especially for inexperienced programmers and designers and a slightly faster development time when setting up features initially.

An example for how it can work together would be an Inventory system where data storage (e.g. what items exist, how many are inside of the inventory, etc) and fundamental functions (add to inventory, remove from inventory, is in inventory, list all items in inventory) is written in C++. Exposed to BP it becomes very easy and requires but a handful of nodes to implement things such as "Press E to pickup item".

TLDR: If you are alone, in a very small team, inexperienced or only want to test out an idea real quick it is valid to focus on BP only.

It is generally not advisable to focus exclusively on C++ as turnaround times are significantly higher especially if you only need to tweak a few values. The combination of C++ and BP is where the engine shines. So in larger teams, if you are experienced with C++ or an advanced programmer and intend to keep working and maintaining the project for an extended amount of time, it is advisable to use both even if just to manipulate default values in editor.

The most inflated egos are often the most fragile.

+1 -0

Disons qu’a minima, Blueprint est une couche très fine au dessus du C++ qui ne sert qu’à interagir avec le contenu - on déclare un pointeur en C++ vers un mesh, avec la macro Blueprint qui va bien, et ça permet ensuite de choisir le mesh dans l’éditeur graphique avec la liste des objets compatibles. Difficile d’utiliser UE4 sans cet usage minimal, à moins de vraiment vouloir se tirer une balle dans le pied.

C’est aussi de plus en plus le choix principal dans certains sous-systèmes du moteur (UI et animation en particulier) qui sont vraiment pensés exclusivement pour Blueprint.

Après, pour le code du jeu, c’est largement au choix du développeur. Perso j’en utilise assez peu parce que je préfère du texte versionnable, mais on peut faire un peu tout finalement, sauf à rentrer dans des zones grises - comme des fonctions du moteur disponibles dans le code mais pas exposées dans l’API Blueprint.

Le commentaire au-dessus est très bien.

+0 -0
Auteur du sujet

Après, pour le code du jeu, c’est largement au choix du développeur. Perso j’en utilise assez peu parce que je préfère du texte versionnable, mais on peut faire un peu tout finalement

Personnellement, ne sachant pas précisément où je vais (je suis très largement débutant, désireux de tester des petits trucs), j’vais rester sur le Blueprint.

Si je devais, un jour, concrétiser un projet, je pense que je n’utiliserai pas Unreal Engine. Je me tournerai vers Unity. Ça m’évitera d’avoir affaire à C++ et de tout foutre en l’air.

The most inflated egos are often the most fragile.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte