At first i liked blueprints, but now i hate them.

UE4 community has been replaced by fanboys community, there is not a single thread on the “Feedback” channel which doesn’t end with someone trying to stop any form of criticism.

Many people have expressed multiple times their problems with programming in unreal, but rather than admit it, or just saying there are pros and cons, or “here is what you can do about it”, no, they have been attacked by the entire community. This engine is already perfect in the way it is! if if you have a problem is cause of you! go back to unity!

I really don’t see what do you gain from that.
The big step through mobile doesn’t seems solid to me, and now we even have this new UWP thing (another point for unity).
And the few people that still wanna stay with unreal cause their tools or their policy or even their community are bashed every day just for asking something that it would simplify their work.
Can you honestly still see the bright future that you could see when unreal just came out?

[= ;487332]
Intellisense is not Epic’s fault; try Visual Assist plugin for Visual ; or try other IDEs…

I can’t try other IDE’s to work with UE4. There is a thing called the Unreal Header Tool. Do you know of another IDE that works with UE4 on a Windows PC? That would be new to me… I see this: docs.unrealengine.com/latest/INT/Programming/QuickStart/1/index.html

[=MaxiHori;487485]
UE4 community has been replaced by fanboys community, there is not a single thread on the “Feedback” channel which doesn’t end with someone trying to stop any form of criticism.

Many people have expressed multiple times their problems with programming in unreal, but rather than admit it, or just saying there are pros and cons, or “here is what you can do about it”, no, they have been attacked by the entire community. This engine is already perfect in the way it is! if if you have a problem is cause of you! go back to unity!

I really don’t see what do you gain from that.
The big step through mobile doesn’t seems solid to me, and now we even have this new UWP thing (another point for unity).
And the few people that still wanna stay with unreal cause their tools or their policy or even their community are bashed every day just for asking something that it would simplify their work.
Can you honestly still see the bright future that you could see when unreal just came out?

I’ve not seen anyone say the engine is perfect, if it was, why would they continue to release updates? In terms of staying with UE4, it seems that I’ve run into a lot of developers who were with Unity but moved because UE4 is now free of monthly payments.

[=teak421;487518]
I can’t try other IDE’s to work with UE4. There is a thing called the Unreal Header Tool. Do you know of another IDE that works with UE4 on a Windows PC? That would be new to me… I see this: docs.unrealengine.com/latest/INT/Programming/QuickStart/1/index.html

IIRC there was an old thread about how to use Qt for Unreal. If you do a quick search on Google, I’m sure you’ll find that. Not sure if it still works though.

[=;487529]
IIRC there was an old thread about how to use Qt for Unreal. If you do a quick search on Google, I’m sure you’ll find that. Not sure if it still works though.

Learned something new! A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums

[=;358972]
I think that blueprints should be at least separated of each other. I mean if someone is trying to make platformer game there should be bunch of ready to use for this purpose and etc. To clearly explain what I mean I attached a picture. This kind of menu should appear when you starting your project.

[images removed]

…and I think this would make creating game a mile step easier than bag of blueprints 1200 nodes blocks without any sense of how to use.

I love this modular proposal​:heavy_heart_exclamation::heavy_heart_exclamation::heavy_heart_exclamation::heavy_heart_exclamation::heavy_heart_exclamation::heavy_heart_exclamation::heavy_heart_exclamation::heavy_heart_exclamation::heavy_heart_exclamation:

Hey ,

I’m seeing a lot of good feedback here. I’d like to say thanks to discussing the workflow issues of having to convert your blueprints to C++. You’re right about it being extra work and we are working on the BP to C++ conversion tools right now, but I’d love to hear more about what you think. Any ideas, concerns or opinions are always welcome, so keep them coming because we try to hear everything and take appropriate action.

P.S. I edited lunyBunny’s post because the images were taking up a lot of space.

[]
Any ideas, concerns or opinions are always welcome, so keep them coming because we try to hear everything and take appropriate action.

I have been following this thread for quite a while and here is my Blueprint expierience from the perspective of a coder (knows about algorithms) but is oblivious about C++:

First impression : Wow, great. A turing-complete virtual machine that facilitates gameplay (and other) logic.
First assumption: Whats possible in C++ is also possible with BP (although a bit more verbose in terms of nodes and wiring)

First disappointment: Blueprints are limited in what they can do. the construction script cant spawn new actors. In coding, it is a common thing to have a class create an object member in its constructor. But BPs cant do that. So, complex actor building at designtime is not possible.

Second disappointment: Some fucntionality is only available in certain places wothout any appearent reason. The most annoying limitatiosn are:

  • Timelines are only possible in event graphs. Why cant functions or macros contain timelines. This would allow for simple animation functions instead of one messy graph
  • Static meshes can not be created in components or macros. Again, this makes the procedural placement of items a hazzle.
  • Some actor functions are only exposed “half-way”. i can set the horizontal alignment of the TextRender component, but not the vertical, etc.

Another thing is refactoring. It is a real pain to move a variable declaration or a function with its implementation to a parent class.
One has to manually recreate the function in the base class, copy all nodes inside, delete the child class implementation, drag the inherited function in and reconnect all nodes.

So, to me it appears that BPs are really usefull as glue-logic for C++ code and the fact that this glue-logic is powerfull enough to make the one or other complete game is pure coincidence.

And if we consider UMG as a part of Blueprints, then the list goes on. But I understand that UMG is a topic in and of itself.

Here are some practical examples where I cursed Blueprints in the past:
https://forums.unrealengine.com/showthread.php?100720-FEATURE-REQUEST-Easier-moving-BP-variable-to-parent-class
https://forums.unrealengine.com/showthread.php?100965-FEATURE-REQUEST-Construction-script-for-BP-components
https://forums.unrealengine.com/showthread.php?68646-Still-a-problem-with-acessing-a-child-actor-component-s-variables&highlight=fassade

(and just two more about UMG)
https://forums.unrealengine.com/showthread.php?100961-FEATURE-REQUEST-UMG-widget-inheritance
https://forums.unrealengine.com/showthread.php?101308-FEATURE-REQUEST-UMG-widgets-should-reflect-parameter-changes-in-designer

But then again, thersthe case when I love Blueprints :smiley:
https://forums.unrealengine.com/showthread.php?74914-Default-Wall-Size&highlight=smartbrush

So, if the BP virtual machine would just get a little more capable, it would be great :slight_smile:
What pointed out in one of the threads, linked above, is the fact that the BP needs to become more solid.
Improving there is, in my oppinion, the biggest win :smiley:

Cheers,
Klaus

[=;488642]

So, if the BP virtual machine would just get a little more capable, it would be great :slight_smile:
What pointed out in one of the threads, linked above, is the fact that the BP needs to become more solid.
Improving there is, in my oppinion, the biggest win :smiley:
Klaus

+1 to improve BP.

Hey ,

Thanks for that! I’ve had some of those points filed into proper feature requests and others as bug reports.

To clarify some of those odd functionalities:

[]
In coding, it is a common thing to have a class create an object member in its constructor.

After talking with some developers, I’ve learned that having a class create an object member in its constructor is not something that C++ does, so it won’t be something that can be done in Blueprints. That is a hard limitation unfortunately.

[]
Timelines are only possible in event graphs. Why cant functions or macros contain timelines. This would allow for simple animation functions instead of one messy graph

Timelines are latent functions that execute over a period of time/frames. They don’t work in standard functions because functions execute immediately, so they are something you can’t use there no matter what. Macros however, we’re looking into improving.

As for partial exposures, please let us know whenever you see anything like that. It’s unintended to limit anything like the example you used and we’d love to get them fixed up.

Thank you so much again! We really appreciate you being honest and giving all this constructive feedback :smiley:

Hi ,

Thanks for yout time going through my post :slight_smile:

I just did some checking and i think I just made a poor description by what I meant with “create an object member in its constructor”. It seems that in c++ the object is always created when declared instead of the declaration being a mere class pointer. So I should have chosen the word “initialize”, which would be more appropriate in the C++ world :slight_smile:

What I was talking about is like this:
https://msdn.microsoft.com/library/f1h35k32%28v=vs.110%29.aspx

Here the rectangle “creates” (as I put it) the point class members.
So BPs could actually do that…

[]
Timelines are latent functions that execute over a period of time/frames. They don’t work in standard functions because functions execute immediately, so they are something you can’t use there no matter what.

Well, when you put it like that, it absolutely makes sense :slight_smile:

[]
As for partial exposures, please let us know whenever you see anything like that. It’s unintended to limit anything like the example you used and we’d love to get them fixed up.

No problemo :smiley:

Cheers,
Klaus (who will dig deeper into c++)

[]

I am no programmer (although I dabbed at C++ in Doom 3 source code) and while at the beginning I couldn’t wrap my head around BP, once I began working with it I really liked the concept and workflow (so far, I have no notion of going “give me some scripting language instead”). The way I see it, I will either have to learn C++ if I want to go beyond BP or find/hire someone to do C++.

[=MaxiHori;487485]
UE4 community has been replaced by fanboys community, there is not a single thread on the “Feedback” channel which doesn’t end with someone trying to stop any form of criticism.

Many people have expressed multiple times their problems with programming in unreal, but rather than admit it, or just saying there are pros and cons, or “here is what you can do about it”, no, they have been attacked by the entire community. This engine is already perfect in the way it is! if if you have a problem is cause of you! go back to unity!

I really don’t see what do you gain from that.
The big step through mobile doesn’t seems solid to me, and now we even have this new UWP thing (another point for unity).
And the few people that still wanna stay with unreal cause their tools or their policy or even their community are bashed every day just for asking something that it would simplify their work.
Can you honestly still see the bright future that you could see when unreal just came out?

I agree that these situations happen, but lets face it, people will only be satisfied when the engine is able to create a game with a push of a button. And even then, they will still complain for that: “pushing a button? No way! The engine should create everything and publish the game automatically without me moving a single finger”.
Some criticism helps the continuous development of the engine, and then there are others, that I just don’t know if they are really serious or not.

[=EvilCleric;508910]
I agree that these situations happen, but lets face it, people will only be satisfied when the engine is able to create a game with a push of a button. And even then, they will still complain for that: “pushing a button? No way! The engine should create everything and publish the game automatically without me moving a single finger”.
Some criticism helps the continuous development of the engine, and then there are others, that I just don’t know if they are really serious or not.

UE4 has C++, full source code. Learn it and use it.

In other words, there is a solution in place, industry standard solution. Devs offer help when they can. There are tutorials and books not only about C++ but also about C++ in UE4. Despite all that people reject it. Sounds kinda like what you are talking about - it’s all there, but people don’t want to be bothered by learning new stuff.

[]
There are tutorials and books not only about C++ but also about C++ in UE4.

The crux with that is that the content gets outdated before you reach page 3.

Is this book outdated: http://www.amazon.com/Learning-C-Creating-Games-UE4/dp/1784396575/ref=sr_1_3?ie=UTF8&qid=1460133342&sr=8-3&keywords=Unreal+Engine+4 ?

[=;488642]

First disappointment: Blueprints are limited in what they can do. the construction script cant spawn new actors. In coding, it is a common thing to have a class create an object member in its constructor. But BPs cant do that. So, complex actor building at designtime is not possible.

That’s a really bad programming practice. It’s good that Blueprints don’t allow you to do that: the sooner you get over this bad habit the better.

[=;488642]

Second disappointment: Some fucntionality is only available in certain places wothout any appearent reason. The most annoying limitatiosn are:

  • Timelines are only possible in event graphs. Why cant functions or macros contain timelines. This would allow for simple animation functions instead of one messy graph
  • Static meshes can not be created in components or macros. Again, this makes the procedural placement of items a hazzle.
  • Some actor functions are only exposed “half-way”. i can set the horizontal alignment of the TextRender component, but not the vertical, etc.

These can be seen as annoying, yes, but they are in reality trivial things. Timelines are simple animations to do simple things, if you want to do some sophisticated animation layout (that’s the only need you should have of a function or macro to lead them) then it is much better to use Persona for that. Unreal engine is built around communication between many different aspects of the engine (much more so than others, as Unity) and you shouldn’t try to do everything in single classes (actually the less you do that, the better; this includes using parent/child relation, inheriting, interfaces, delegates etc. properly instead of spamming single classes with code).

Many of the bad comments here on Blueprints it seems to me come from people that don’t have much knowledge of game engines in the specific and programming in general. While Unreal tries to simplify things it is still a professional tool, much more sophisticated and powerful than the other publicly available counterparts (that are more used for mobile for a reason), but with this, naturally, comes also more difficulty of use for those that don’t understand the underlyings of the system properly and lack a solid background. There’s no way outside of it. A Photoshop will be, no matter what, always more difficult to use properly than a Paint, and a Maya more difficult to use properly than a Rhinoceros. The more things you can do, the more possibility you have of doing mistakes and then - as it always happens - blame the tools for it instead of yourself.

It has already been suggested before but if some of you have no knowledge of game engines and/or programming in games then it would be better to go in degrees: maybe learn to use Gamemaker at first, then dabble in Unity and finally come to Unreal. You can also learn everything from scratch by using Unreal, but you will have many more chances of doing mistakes and neither understanding what you are doing wrong in the process (and this, in turn, will create gaps in your knowledge that will bring bad habits, as the one of spawning actors in constructs). I myself don’t come from a game background in programming and I had to learn in steps. If I would have jumped to Unreal immediately without intermediate steps I would have never understood many of the things by reading them (and I had already knowledge in general programming prior).

[=;488642]

Another thing is refactoring. It is a real pain to move a variable declaration or a function with its implementation to a parent class.
One has to manually recreate the function in the base class, copy all nodes inside, delete the child class implementation, drag the inherited function in and reconnect all nodes.

That’s annoying, yes, but, sincerely, it should very seldomnly happen that you have to refactor functions or macros if you have a concept a priori (a thing that if you want to use Blueprints not just as a way of a “quick test for ideas” but for serious work) it should be necessary. If you find often in this situation then it means that you are, frankly, approaching your project in a very bad way and with bad practices. You should have at least a good idea of what your parent classes functionality has to be so that you don’t need to go back and forth consistently, at least not in the refactoring sense.

[]
That’s a really bad programming practice. It’s good that Blueprints don’t allow you to do that: the sooner you get over this bad habit the better.

Nope. It was just a bad description on my part. What I meant was “Initializing”, and that is done all the time.
You get the idea of procedural mesh placement? Thats what I want to be able to do… before BeginPlay.

[]
If you find often in this situation then it means that you are, frankly, approaching your project in a very bad way and with bad practices. You should have at least a good idea of what your parent classes functionality has to be so that you don’t need to dabble with it consistently.

That depends. It is excatly that “not puttig everything into one class” that makes refactoring neccessary. Especially when you expand class functionality where all of a sudden some functionality of a class would be required by other classes. So, quickly reparented to a common ancestor, but then moving code to this new parent should be easier…
I dont see it as a bad practice, while still having an outline of the class hierachy, having more flexibility here.

[=;509036]

You get the idea of procedural mesh placement? Thats what I want to be able to do… before BeginPlay.

Yeah, I get what you mean. You come from Unity, are you? That’s typical there and, yes, it is “done all the time” in Unity. Still, it IS a bad habit, nonetheless.

[=;509036]

That depends. It is excatly that “not puttig everything into one class” that makes refactoring neccessary. Especially when you expand class functionality where all of a sudden some functionality of a class would be required by other classes. So, quickly reparented to a common ancestor, but then moving code to this new parent should be easier…

Problem is: it is easier said than done in Blueprints. Blueprints are still done in a VM, so how could you copy/paste without having to rebuild the active links? It is practically impossible.

[=;508964]
The crux with that is that the content gets outdated before you reach page 3.

Everything gets obsolete soon or later. There is one thing that people need to understand when following any tutorial or book: if some step or instruction is already outdated then one must search for the new one. How long will it take: 1 to 5 minutes? In any case, that search gives the opportunity to learn even more, so it’s not a waste o time, in fact, it’s great and enjoyable (at least for me).