I can program, but I just do not understand blueprints

Hey,

so I try to be quick cause I tend to write way to much, and this is my first forum post (only been active in the answerhub before).

Here is the thing, I can program, learned Java as a hobby, had Java in University (basics and advanced Java), learned C# for Unity
and understand most of the Web Languages (PHP, Javascript etc.). So I feel confident to say that I can program. I heard many times
before that blueprint is just like programming. I also see why, it bascially has all the functions you need just as a block(or node).

But for some whatever reason I can not understand blueprints. I follow a tutorial, understand step by step why this goes into that,
follow along, recreate it and it works (mostly, had one instance where it did not because of different UE Version). Now I try and take
pieces of this and create my own little function, mechanism or whatever and it fails. When reading code I understand it a lot better.

The thing now is I do want to learn blueprints it seems to be really great and intuitive, plus other software seems to head into a similar
direction so I assume this is going to be important in the future. I could theoretically learn C++, but like I said in the last sentence I
really want to understand the system behind blueprints.

One other thing is that I do understand blueprints when it comes to materials. There I can create materials with all the nodes I need,
it just seems for materials its the perfect system. So materials are all good to go when its comes to blueprints but actual game functions
and logic is a really big Question mark.

My question now basically is, do I just have to grind all tutorials I can find until it makes click or are there any specific sites, books or
tutorials I can use to understand the fundamentals of blueprints?

Before anyone asks I did read other threads about this kinda topic, but none really gave me a clear answer on what I should do to understand
it.

Thanks in advance
Kind Regards

Cribbel

Try C++ instead. However you need some basic blueprints for AI behavior trees, state machines etc. But that is very basic.

You might want to grasp how Unreal as an engine is structured into classes such as Objects, Actors, Pawns, Characters, GameModes, GameInstances, Controllers, AIControllers and so on. When you are using Blueprints, you are deriving from these C++ classes. For example, if you create a blueprint based on an Actor. It means it is something you can place in the world. A Pawn can be “possessed” by a controller, be it a PlayerController or an AIController. The GameMode persists and decides game rules, no matter how pawns are being added or destroyed.

When you understand the basics of this, then Blueprints are easier to grasp. There is even a “class browser” in the editor that will show you how the C++ and Blueprint classes inherits from each other.

Blue prints are a form of flow chart or state machine. I can’t imagine you taking programming coursework and not being tasked with learning those. I’ve been programming for over 30 years and have either worked with or substantially been exposed to over 20 different programming/scripting languages. I suspect you’ve been taught more along the lines of “this is the way to do this” rather than learning to abstract the problem and discovering the possible paths to the solution - a concrete list of rules rather than abstract problem solving methods. Blueprints is focused on process and abstracts the methods - function over form.

The problem, I find, with most ‘tutorials’ (and especially Blueprint ones) is that they’re usually done after the instructor has already gone through and built everything already. Because of that you miss out on all of the iterations of the overall design of the logic, you never hear them say “oops! Hmm, lets rethink this and try it this other way instead” and hop straight into a giant pre-formatted list of exact steps with little explanation of why things are done that way. Personally I don’t learn well from that kind of thing - I need to know WHY something is done a specific way otherwise I just don’t retain the HOW of the implementation.

My advice to you is to just build things with blueprint - don’t watch tutorials. Think about how you’d program something in C#, then figure out how you replicate that kind of functionality in Blueprint. The Documentation search feature is a HUGE resource you can turn to when you’re stuck - just search for something similar and you’re bound to come up with it. Over time you’ll pick up new tips and a great understanding of the overall structure of the engine, and you’ll start to see how you can improve the things you’ve made.

Perhaps you’re expecting it to be magic in some way that it’s not? Many people rave about visual programming and how much easier it is to follow (for them), but I find it to be the opposite. It sounds like you might find it more difficult as well. I find it separates things too much, and following the lines is tedious and takes brain cycles that could be used for understanding instead of Where’s Waldo.

So, like me, the problem might simply be that it doesn’t suit you.

The logic for Blueprints isn’t any different than the logic for code, really. Maybe somethings need to be done slightly differently, or maybe you have to specify something that the compiler handles invisibly for code, but it’s really the same thing in the end. I do tend to think of Blueprints as the alternative “code” (in some language, not necessarily c++) when I’m working the logic out.

1 Like

One of the problems with Blueprints is sharing code examples is difficult. Most of the time I find myself staring at screen shots or videos and the person presenting it has chosen to emphasize things that they believe the target audience already knows or understands. Recently I found the “HTF Do I?” and “WTF Is?” series (just Google with those terms - really!) are helpful for understanding the functionality, implementation, and styling of UMG widgets and some other issues with Blueprints. It’s a YouTube video channel and the presenter has broken things down into small steps. See if that helps.

I thought about going into C++ but for some reason I really want to understand blueprints. Maybe its because the majority seems to be using it but I am not sure.

I did read over the structure of the engine how everything is connected, but maybe I should again go back there and simultanously go into the engine and really see for myself what they are talking about, instead of only reading.

The courses were called (directly translated from german to English) “basic programming techniques” and “advanced programming techniques” both focusing mainly on Java but techniques can be applied on other languages. The only form of visual programming were “UML-Diagrams” if that is any information for you. But never has anything similar to the visual scripting like in blueprints. But I think I know what you mean with a flow chart, basically its going along the nodes and always is at acertain spot like a petri chart/diagram (not sure how its called in english)

I agree with you about the tutorials. It seems they just want to push it out as quick as possible and forget about actual explaining. The worst are those that only show the working BP and say nothing. I did many C# scripts in Unity maybe you are right and I should just try and recreate what I did there in the blueprints :slight_smile:

This is the exact spot I am currently at. Thinking it is not the right system for me, but something inside me just wants to understand the system.

That youtube channel sounds exactly like what I need. Really small steps well explained of the system. I will be checking that out tomorrow (0:17 in the night here right now :stuck_out_tongue: )

To everyone, thanks a lot for all the replies and the tips I will try out the next few days. I will report back on how things went, and of course any further ideas are appreciated

Thanks :slight_smile:

Hi Cribbel, the reason why you’re having a hard time with Blueprints, is because trying to work with it like a Programmer. You suffer Programmer’s Brain my friend. I did too, until I accepted that Blueprints is not for Programmers, per se. Blueprints is for Level Designers, Artist, Animators to implement the logic behind GAME ACTORS in the Level Map without the need of a programmer (avoiding the complexity of hardcoding C++ IDEs, Recompiling the entire engine, etc).

The intermediate Text-based Scripting Language is missing, which could also make adapting to Blueprints more difficult for us with Programmer’s Brain. Previously in UE3/UDK, there was Unrealscript a text-based scripting language that worked along with Kismet the visual logic editor. In fact you could create custom Kismet nodes with it. Epic moved all of the functionality of Unrealscript plus some into Kismet, which is now Blueprints.

1 Like

I have the same problem. My background is in Javascript and Java. Blueprints are still hard for me, but I just grind the Unreal Youtube tutorials, and also use AnswerHub and the forums. I’m getting there! (Slowly).

I find Blueprints a bit confusing and weird too.

Blueprints have one major difference from any text programming language, it is execution flow. I had serious trouble with this at beginning, for few days, but i kept doing blueprints, and now i rather do small things (and prototype) in blueprints. C++ is for single big tasks, or when i start get confused by Cthulhu (or spaghetti monster) in blueprints.

So i think your problem is that you are not used to track those white lines between nodes. And it is matter of habits, not understanding or learning, so keep doing it until you get used to blueprints. Because you will need blueprints anyway at some point. There is no escape from it.

Actually i felt the same at first coming from C# unity , then i even started C++ yet i couldnt get blueprints, because it simply takes times learning the concept of them and how they access and modify data in the UE4 world.
I had the same feeling going to C++ from C# it felt like a programming lang, but for a couple months i felt like i couldnt code much in C++ i just didnt see the bigger picture.

The thing any tutorials dont teach you is basics of blueprints lol even if they seem they do, learn how to use:
-Branches/sequences/timelines/blueprint interfaces/delays/ and,or,not equivalent to && || !, how to make a custom event equivalent to java function/method and how to call it, even from other blueprints using interfaces.
-Learn how to get individual values and recreate structs, by that i mean get a vector or rotation from a transform break it, take any component you want x,y,z etc then make new vec/rotator etc and basics of moving things around.
-Learn event handlers for functions.
You also need to burn through tutorials to understand what you should use in what case, like Blueprint based on Character for character, based on actor for non player objects in the level, learn Animation blueprints they seem quite complex at first but you will understand after you do a couple tutorials.

I would recommend this Twin Stick Shooter tutorial i learned a lot from this alone, i would guarantee that by the end of this tutorial you will understand how BP’s work.
Link: A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums

Dont just follow everything he does modify things on your own while doing the tutorial, experiment a lot thats how you learn faster.

I would kind of disagree with this statement. You can create really powerful stuff with blueprints too.

I believe it all depends on how you like things to look. I like the way nodes look because I get lost inside c++ code. With blueprint I can see the workflow easily. I believe it’s the opposite for a programmer.

I am not sure if you really need blueprints if you know c++ good enough though.

As a programmer, I think of each Blueprint box as a method or object, execution wires as program flow, and the lesser pins as arguments. It doesn’t always seem to turn out that way in practice, though.

Yeah things can go pretty chaotic if you are not careful. I just never like it when wires get over each other, even a little. Though the new alignment stuff is really helpful about it.

In the end, if I knew C++, I would never touch to BP, but I just don’t have the time for it. :frowning:

Hi Achilleon, I agree with you that Blueprints can do Powerful stuff, and I personally like pushing its limits. However, doing powerful stuff may be better in C++ if one has programmer’s brain. I was introduced to Blueprints node based visual scripting predecessor: UDK Kismet. I refer to Kismet User Guide statement: UnrealKismet tool is a very flexible and powerful tool that allows non-programmers to script complex gameplay flow in level. I realized I was trying to *force *programming paradigms etc with using Kismet which resulted in lots of grief.

Reading the thread I noticed a lot of people sharing learning resources. Can you share your experience of using any courses to learn Java? I’m actively planning to learn java now and learning it on my own takes a lot of time. Please share your learning experiences.