Download

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.

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.

5 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++.

3 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.

1 Like

+1… The engine is the mother of all API’s, that makes it hard to skip learning both BP & C++.

Well as regards waste of time, you stand to save time overall by iterating with Blueprints first.

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?

1 Like

Yes, here’s why its hard to avoid.
Taking projects apart might help:wink:

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.

^This^…

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. :stuck_out_tongue:

1 Like

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

Search options have improved and now there’s lots more choice. But search engines can only offer an answer ultimately if there is one. Epic looking for your feedback on the direction to take with Answerhub thread shows lots of Forum / AH threads are going unanswered / unresolved. So what about all the answers on the unofficial UE Discord servers… How many of those discussions are accessible to search engines? Plus, how useful are search engines when the UE Community isn’t as active as 2014-2016? :wink:

Most experts in this area from EFF in US to Max Schrems in EU, would probably disagree with this, and point out that the amount of metadata being leaked by users is immense. The only question is, how much of it is actually being weaponized against users right now. This is basically what the Facebook Cambridge Analytica scandal was all about.

You’ve argued before this isn’t happening. I don’t share your confidence on that. No matter what search engine is used, once users visit underlying websites, they face a host of trackers / telemetry / analytics that phone home to google / facebook and 1000’s of other data brokers, many of which sell profiles to the likes of credit reference agencies.

Google had plans to launch Dragonfly before they got caught. If something like that gets launched eventually in the west anyway, the consequences could be chilling. AI / Algos are pushing the business case for constant invasive fingerprinting and tracking of users all of the time, in order to be able to calc credit scores on people on every aspect of their lives. This is the reality in the east right now. The only question is, how much of that tech is coming west. The good news is there’s VPN / soft-VPN options to help. Metager / Startpage / Swisscows / Brave all offer proxy options, along with leveraging Browser-based Adblockers or other options. But fighting for privacy is very much an arms race! :wink: