This engine is an insult to developers

Ive had enough of this garbage engine, it doesnt matter what PC i use or os (win7,8.1, 10, linux tried them all), or what project/engine version, this engine is completely broken in C++.
There is no way one can program anything with this engine the entire framework/compilation/build tools are broken, there are no guides on how to create anything, ive been trying for ages to get a simple USTRUCT to work, i get only compilation errors from god knows where, none of the fixes on forums work on any version ever.
Errors that cant find includes, ue4 cant setup its own project aparently, and i have no clue how to fix it C++ has the most retarded include system ever invented period.

C++ is garbage, the UE4 C++ framework/documention is garbage aswell and outdated.

Ever since the engine free release i hoped and hoped for a secondary programming language since C++ framework is unsusable and i cant do anything about it. I tried to learn, i tried to have patience for fixes, i know enough C++ to not want to do anything with it anymore, because it doesnt work

Seems like Epic doesnt care at all about developers, i dont need Epic Game Jams, cash rewards, no marketplace better share i do not care, the ONLY thing i want is a **WORKING **API, i do not know how you are fine with the way this engine is broken since its existance probably.
It does not make sense it cant be that im the only one that cant even compile an empty C++ class without errors on any PC on any version or OS.

/rant

3 Likes

Sorry to hear your problems! But calm down, C++ isn’t easy and yes it can be tedious to fix compile errors. May I ask why you didn’t use blueprints? Also, did you actually post your errors here and ask for help?

I’ve felt some of your pain, too with Engine crashes (need to manually tweak engine settings and registry keys to stabilize), but IMO UE4 is the best game engine available for indie developers today and C++ is by far the greatest programming language ever created (thanks Bjarne!). Yes, both are hard to learn, but with some patience and hard work you can create something amazing.

For the USTRUCT problem and similar issues, I strongly suggest looking at how the UE4 samples/tutorial projects and engine code itself implement things.

C++ standalone is not that hard, but combined with the UE API it makes it impossible so many errors and no documentation on how to use it, i know some C++ thats not the issue its the fact that theres no good material to learn how to use UE4 API and avoid errors.
Im frustrated with the engine’s Blueprints i hate them, its so easy in regular C++ or any other OOP language to declare some enums or structs or lists/maps you name it.

All i wanted is a list of key/value but its impossible to do it in blueprints, BP Enums/Structs are useless, so i tought id make a custom USTRUCT ive tried making one before and its almost imposible.
Now i found TMap which still requires use of C++, you simply cant dodge C++ in UE4, eventually you will need it which makes C++/BP combo a pain for me.
Now i cant create a TMap in C++ and edit it in BP, i cant have a pawn in BP and create a TMap somewhere in C++ and simply gain access to it, i have to convert all my pawn to C++ just because there are no Maps in BP? ridiculous.

There is no documentation or tutorial that say’s where do i declare USTRUCTs (if i make a .h file in VS and include it i get errors it wont compile), what do i need to include for a UStruct to compile and so on, if i go by C++ basics i can declare regular structs in an .h file, or .h + .cpp files but the UE4 API isnt working like that its not accepting USTRUCT anywhere but inside an existing UClass created from the Editor, which means i cant declare the struct outside a class and reuse it in multiple Classes? broken& confusing.

Still im confused as hell as to where do i write common code like a map with values in UE4 api, in the game mode? i dont even know what survives and what not if i change the level.
Dont even know what these “MyPawn.generated.h” or “MyActor.generated.h” files are they create lots of errors if messed with and break the project.

I get these errors when trying to declare USTRUCT outside of an UCLASS file. Dont ask me i dont understand whats happening in there. Im also clueless on how to add .h/cpp files to UE4 includes by creating them in VS or outside, if its not created from within editor it wont find the .h file even if i place it in the Source folder ???

I have 99999 problems using UE4’s C++ and i cant find answer to any on forums or answehub or youtube vids.
If UE4 used regular C++ it would be somewhat doable, but UE4 C++ api? imposible.

2 Likes

I started with Gamedev in 2014 and started with UE4 in 2015. I have strong background in C++, which was important to help, but not definitive to understand many things… so its been more than 3 years learning process, as something professional would take years of study, so this is with this area. It is not easy, requires patience and determination.

You will require real working code to study and understand how things are done.

Okay so first: UE4 recently added Map support for BPs! Second. Never, ever add a header or cpp file from withinVisual Studio. Create them via the Content Browser. Yeah this sux balls. Unity is a ton easier with that. As for USTRUCTS:

Okay now for errors: Never trust the default VS tab! Check the build log as the Unreal Build Tool will output the real and correct errors there.

Tip: Check out the UE4 wiki in general. There are dozens of quite helpful guides :wink:

hi, in my opinion some points from the first post are just right, when i started to use ue4 i was using c++ and blueprints together, i was very comfortable with both (ue4 4.13 was last time that i felt like that).

i took a break between ue4 4.13 and ue4 4.17 (because i was hired to code an unity3d project) and when i came back, all was broken, i installed ue4 4.17 and tried to start any c++ project without any success, visual studio 2017 never succeeded to compile even the initial library, i spent an entire month trying any solution from the forums and the answer hub without any success.

i got tired of that issue (don’t know if now is fixed) and i switched to blueprint only projects to avoid frustration.

also the UE4 c++ API is like a kind of area 51, top secret, and if the code if not top secret the docs are out dated.

personally i don’t think that ue4 is garbage, for me this is the most powerful game engine, but it needs more attention in the c++ documentation, coder guys likes to code “a la” old school and not using blueprints.

Well the engine has high quality and lots of features.
But the programming part is garbage, BP’s are not enough once you are done playing around and want some serious work, and UE4 C++ api is a mess, VS is a mess, documentation is crappy, insufficient and incomplete.

If my only choice for this engine is hardcore C++ (undoable for most of us with this API), or insufficient BP’s, i dont think i can do anything with it.
The only reason im using UE4 is because the editor is top notch and has lots of features, if only C++ was as high quality, thats my grief with it, when you want to go code its a mess, otherwise its the best engine, and really i cant make complete game just from BP imo.

All other engines are incomplete, no docs, lack of basic features e.g. unity no terrain editor, CE5 no built in UI, lumber a total mess.

This link is half usefull
Doesnt tell me where can i declare my USTRUCTs to be able to include it in multiple classes… so far i only managed to make an USTRUCt inside an UCLASS file .h, so if i want to use it in another UCLASS i have to include that UCLASS .h? confusing and doesnt seem right, thats not how basic C++ is programmed right, from what i learned.
Also being forced to add classes from editor only is ridiculous, and what about outside code? how do i even get it to work with UE4 API?

I understand your anger :slight_smile: But let me tell you that tenthousands of devs out there all make games and they manage to get **** working. So calm down, take a long break, drink some coffee or whatever you like and start with a fresh mindset. I’m at work right now and stuck on some problem that freaks the sh’t out of me :smiley: I’d love to smash my keyboard to the wall^^

As for struct creation: I’m unsure right now. AFIAK you can create your USTRUCT in any .h file as long as its been created by the editor. From there you can use it like normal C++ structs! Simply include the header and voila?

USTRUCT( BlueprintType )

I honestly can’t say I’ve had any serious issues with the C++ side in the ~3 years I’ve been working with Unreal that I haven’t been able to figure out by going through the wiki or the forums.

If you’re just getting started with Unreal it can be pretty overwhelming, but following through some tutorials (either the official tutorials by Epic or a site like udemy) can make things much more manageable and they often provide some insight into common issues that you’re likely running into.

Some of the documentation is out of date, but when that is the case most answers can be found online. I’d strongly recommend trying to follow a couple of tutorials, while making sure to use the same engine version that the tutorial is using, to get a handle on the C++ side. Structs are actually covered in one of the udemy courses I took when first getting started, and I’m sure there are plenty of examples available

LOL ah that’s great. C++ is not the greatest language by any measure other than complexity, and by that I mean it is the most complex. C++ gets a few things right and nearly everything wrong. Good ideas in the language are ruined by their implementation.

I’m having similar experiences as @OP and it is incredibly frustrating. I will be very happy when the rest of the API available to C++ developers is also available in Blueprint.

C++ is not THAT challenging, and neither is Unreal (I mean that you can figure out the things that are challenging you in a reasonable time frame), and Unreal changes enough about how you develop in C++ that you’re learning two things at once, just so you can get one thing done. The two combined make figuring out your current challenges much more than twice as much effort.

in 4.20, create a brand new project. Now, create a new C++ Class in that project. Save the class. COMPILE ERROR. W T F…

If there is any comprehensive tutorial for newbs on how to expose C++ API features to Blueprint, I’d love a link or two. Specifically, I want to read from a large text file into a FString] then iterate over it.

@Naikrovek exposing C++ to BP is relatively easy. Check out BlueprintType, BlueprintReadWrite etc. macros. That should get you covered.

And by the way, let’s not get into too much “C++ for(n)ever” discussion. We already have enough on that subject!

MyStruct.h


// Copyright bla

#pragma once

#include "CoreMinimal.h"
#include "ObjectMacros.h"

USTRUCT(BlueprintType)
struct FMyStruct
{
    GENERATED_BODY()

    UPROPERTY(Category = "MyCat", BlueprintReadWrite)
    FName MyName;

    UPROPERTY(Category = "MyCat", BlueprintReadWrite)
    FString MyString;

    FMyStruct()
    {
    }
};

MyActor.h


// Copyright bla

#pragma once

#include "CoreMinimal.h"
#include "MyStruct.h"

UCLASS()
class AMyActor : public AActor
{
    GENERATED_BODY()

public:
    AMyActor();

    UPROPERTY()
    FMyStruct MyStruct;
};

Or am I missing something?

You can add C++ files/headers in VS if once you get to roughly know the setup.
I do it all the time coz I can’t be bothered opening the editor :stuck_out_tongue:

It’s ok to be frustrated at it
We’ve all been there.

In terms of your compile issues, can compile a basic C++ project generated by the UE4 launcher in VS2017?

UPROPER() FMyStruct MyStruct; should be UPROPERTY()

The thing with C++ is UE4… one step at one time. When you are doing lots of things at once - when lots and lot of ‘unknown’ and strange errors appear, you are strangulating yourself there…
Once you are already in ‘there’ with C++, you will be amazed on how much you can play with C++ - exposing functions to BP etc.

Is that written down somewhere? I’d love to know :smiley:

Just emulate what UE does when you add a class/struct.
Which it to add a new file(.h/.cpp) in the appropriate folder and add the appropriate code.

HTH

No you don’t.

I think when it comes to “internet” everybody often have too bold opinions…
I’ve been trying myself to be more realistic and refrain from posting harsh opinions, more often now remember myself that everything has problems in a way or another;

In the end it’s unhealthy to expect any piece of software to be flawlessly perfect, not even hardware drivers are bug free, when even that low-end universe has so many problems I honestly have no idea how don’t the whole software industry colapse somehow. Anyway, I just need to have the task done and in the end of the day I’m glad Unreal help me to deliver and that’s pretty much what matters to me now… Expecting “perfection” from any software has become delusional.

lol even code compilers are filled with bugs…