How hard is unreal engine c++?

I’ve decided to learn unreal engine 4 for some personal projects,i already have some programming experience as a javascript developer and php,also some knowledge of c from college. I bought some udemy courses focused on c++. Will it take too long to start doing basic stuff like picking objects up and etc?

thanks in advance.

1 Like

Use Blueprint first.

It’ll teach you the API more easily, you’ll be able to find things quicker and figure out exactly how the engine “expects” you to put the components of a game together. Starting out in C++ straight away is a recipe for not getting anything done.

Once you’ve done a few small projects in Blueprint, there are full C++ projects from Epic you can download from the launcher and study. Most are quite old now, but they still hold up.

C++ in Unreal does a lot of stuff for you (kind of) - but you still need a decent understanding of the language and the engines API. Most “standard” C++ stuff has it’s own custom implementations in UE4, such as the lifetime managements of objects etc.

6 Likes

thanks, you are basically telling for me to get used to the api by using the blueprint in order to have a better understanding of the components.

Any kind of development is as hard as you let it be, as you already know. My advice is to start small, very small! I always chose Space Invaders as my learning project… to this date i’ve made Space Invaders in UDK, UE4, Unity, OpenGL, DirectX, Leadwerks, irrlicht… this list is endless; every new engine gets this same treatment (and i’ve been in this for nearly 30 years). Some basic game mechanics, translating some objects, bullet pools, basic collision. Don’t go off thinking you’re working on the next Skyrim etc. You may well be, but it’s a slow hill to climb and you don’t want to get turned off by difficulty. Take a small project and break it down into very small hurdles and put the time in. I wish you the best of luck and am eager to see what you develop.

Bests,
Matt.

3 Likes

This. Difficulty is only half of the reason you should use Blueprints first; speed is the second half. While it is much faster, cleaner, and more maintainable to write lines of native C++ code than it is to string Blueprint nodes together, you lose tons of time compiling native code. By comparison, Blueprints compile instantly and let you prototype functionality much more quickly.

Say you want to create a complex wave-spawning system. Build out a prototype in Blueprints and make sure the logic is working. Then convert to C++ once you have a strong core, hiding the messy implementation details, and then expose properties like spawn time, etc. to Blueprints for tweaking. This way you will know what native functions to look for.

Most importantly though: These are all just recommendations about *how *to approach engine C++. Whichever approach you choose, just remember that you should learn engine C++. It makes the engine a much more powerful tool in your hands.

2 Likes

Thanks Guys for the tips, i’m currently studying and practing blueprints and getting used to raw c++ oop before really diving into unreal engine c++.

4 Likes

So, recompilation is a waste of time, but creating the same twice is not?

When you are still prototyping you don’t have a clear picture of what you are going to end up with. Prototyping in C++ is usually going to take longer than if you slap some Blueprints together. When you have something that you want to keep you then refactor it into C++ so it is ready for production.

2 Likes

A lot of it comes down to, how good are you at designing systems in your head/on paper before your start. One of the other things is, do you know the extent of the Engine, ie functions/features/classes/types, etc. I mean, i do a lot of stuff in C++ first, cause i have the idea in my head, i created a kinda plan for it and know the end goal. Sometimes this isn’t the final version, i sometimes refactor things again, if i find a better way, learn something new, or i need to optimize it.

The thing is, i have been programming for years, in Pascal, C, C#, C++, Java, etc. (15+ years), i still spent time in the blueprints, to get to know the engine. I am also a firm believer in “not everything in c++”. There is a balance. C++ for the core, expensive math, expensive tick functions, etc. Expose things that are to be edited a lot/adjusted to BP. Even if you just use BP’s as Class defaults (data only). Exposing properties for easy tweaking is a must. Exposing events/delegates/bp functions is also beneficial. Honestly. Getting that balance is the key to good development progress. C++ programmers don’t want to be hammered by gameplay programmers, to change one variable or adjust one thing, that should have been exposed to BP!

Just my two cents :slight_smile:

I’m coming from being self taught in programming- and I can make hide nor hair of Blueprints. I don’t use Unreal, but would love to give it a shot. I would rather study a straight up programming language, as how I learned to use previous engines. Is Blueprints really necessary?

2 Likes

It’s not a necessity, but you won’t know how the engine THINKS it should work.

You have to realize that you are dealing with the evil spawn of a bunch of … inept people (to be kind).

These folks like to do things like remove Tessellation, or release major versions without checking that stuff actually works (phys-mats anyone?)
These aren’t one off blunders. They are the CONSTANT of this engine.

As such, you as a self taught programmer cannot expect to even being to comprehend the way they THINK stuff should work.
No.
You have to learn how they think first. Hence use blueprint.

NOTE:
And I want to make it double clear that the inept are those who decide what the development team has to do. The development team itself can’t really be held responsible for the decisions of a few.
EVEN IF, they could ■■■■ well test stuff out before release…

Blueprints are two things:

  1. A way to configure a “prefab” configuration of game objects, put together to make a “full actor.” For example, you can bundle up a particle system, a light, a sound effect, a mesh, and a projectile movement component, to build “a grenade” as a blueprint. You can then subclass that “grenade” in child blueprints to change mesh, trajectory, amount of damage, loudness of sound, etc.

  2. A way to “wire up” said composed objects, without having to dive into C++. When you build a grenade out of components, you need a little bit of logic – “three seconds after throwing, hide the mesh, play the particle system, sound effect, and light flash, then clean up/delete the grenade object.” That level of logic is super easy to do in Blueprint. Similarly, you can do “when I walk close to a door, animate it to be open, then when I leave the door, animate it to close again” using a detector volume, a timeline, and a door mesh, plus a small amount of blueprint wiring.

It is very, very, helpful to understand what blueprints can do, and where they are strong. It allows you to easily get “things moving” on the screen in interesting ways, without having to bootstrap a bunch of C++ class knowledge or worrying about object ownership. It essentially shows you “what the goal is” of future C++ development.

It turns out that, because wiring is a Turing complete programming language, you can write an entire game in Blueprints. I wouldn’t recommend it, but it is possible – any tool can be pushed harder than it should be, if you really want to. (See also: using Javascript to build single-page apps.)

Once you understand more of what the pieces of the engine are, you can learn C++, and how to build the components that you will end up using in your actor blueprints. At that point, you need to learn not just C++, the language, but also the macro/code generation package that Unreal puts on top of C++, and THEN you need to also learn the C++ class library that makes up the engine. This is a lot of work, and really hard if you don’t know how it all is supposed to fit together – don’t start there!

Good luck with Unreal Documentation,
When it comes to unreal docus, as they say google is your friend.
Try to get used to getting info from engine source, cause the C++ API documents is very minimal in too many places.

Start with blueprint (bp)…you will find the learning to be much more enjoyable. Only convert to C++ when the class is becoming slow (and make sure it is proven via profiling). Otherwise maintain bp. BP at the surface maybe slow (gui node some more??), but the underlying process is still mostly C++ so it is still sufficiently fast in a lot of cases.

People need to stop saying stuff like this… Google is only a friend to its Shareholders!
Face it, if privacy laws had any teeth most Google Executives would probably be in jail.
So lets ignore the uncomfortable truth… We all live in an episode of ‘Black Mirror’ now

the comic book heroes will come save us, they just as real as the bad guys, now that the bad guys aint hiding anymore

You are welcome to not use Google or its services. Contrary to popular belief, if you don’t actually use any Google services, they will know very little about you.

Similarly, you can also not use Facebook (I don’t!) and not use Instagram and not use any other service you don’t like. Works pretty well!

That being said, a good web search engine, whichever one you choose to use (duckduckgo?) is absolutely crucial to succeed in almost any profession these days. If you haven’t yet learned a good way to express the kinds of searches you need to find results, and how to browse the list of results that come back to guide your attention to what’s a good answer or not, you are falling behind, just like people who didn’t learn to drive a car fell behind when horses went out of style.

1 Like

No, I’ve argued that, what is happening, is no different from a town crier in the town square 200 years ago seeing what everybody’s up to. Or, you know, the nosy lady down the street who always sits by her window. The EFF argument is that “the town crier and nosy lady should not be allowed to talk about or act on what they see of what goes on around them,” which is a fine argument if that’s what you want, but I don’t share it.

Anyway, use duckduckgo through a VPN if you want – the one thing you shouldn’t do is ignore the power of search engines. And, if there’s questions with no answers, that means you need to make a better question. How to break down your current roadblock into different questions, and research yourself to go to the next step, or work around the roadblock, is a necessary engineering skill.

Of course it would be better if every question got a quick answer by someone who had a real clue! That’d be amazing! This is why people go to schools – there are teachers and peers in the same situation, and lots of reference material, and they can often actually help with the answers, and when you go off the tracks, at least point you in the right direction. If you’re looking to learn, you could do a lot worse than finding a good school that teaches the thing you need.

1 Like

Consider this: You walk outside, and some guy jumps out at you from behind a corner, beats you up, and takes your wallet?

I’m much more worried about what actually happens. And, as I said, if you don’t like Google, don’t use Google, and then there are no search results to sell (although, generally, they only sell de-personalized results, i e, audience classification.)

Yes, and you would never know.

I can’t tell you how and what to think – some people are afraid of the dark, some people don’t like flying, and some people don’t eat cilantro, and that’s OK. I can suggest what actually happens in the real world, as a counterpoint to some of the more speculative fear mongering :slight_smile:

No. that was about LITERALLY stealing people’s data / Breaching privacy laws.

And FB is still doing this with impunity.
At the moment, “algorithms” scan your posted comments/content even when they are shared Privately for what FB likes to call “hate speech”. They then have some actual human review the scanned content. Effectively breaching ANY expectation of privacy one might have from replying to a friend in a comment that is only visible BY friends.
They haven’t gotten pinged for this just yet, but a large class action is sure to be coming.

Either way, how did this go from Coding C++ to whatever dystopian future China is in currently, due to the lack of balls required to burn the commies to the ground?
How in the hell did they go from Genghis Khan to “Communism is great” anyway? :laughing:

The most scandalous part about that was that the tech didn’t actually work. “Machine learning” snake oil, purified.

When those in power take too much for too long, those without power won’t actually lie down and die in a ditch, they will rise up with pitchforks and torches.
Exactly where that bar lies, varies over time and by population/location. But, for someone with a lot to lose, “paying something to retain the peace” may be the better choice compared to “fomenting bloody revolt,” at least if you look at the various revolutions in the past.