Dear Epic Games… I hate to be that guy, but I believe we have to talk;
From time to time, circumstances drive me to situations where I must extend the Editor, in a way or another.
Unfortunately, the more I encounter these roadblocks the more these situations are becoming: “-Oh god please no, one of those situations again!”
Putting drama aside, in short: we need someone working on a better streamlined Editor API aimed at extensibility.
I mean, latest event as example… I had to work on this; well, it’s just a simple Blueprint node right?!
For what I had to achieve, could be a simple task provided we had extensible classes in place.
I had to write over 1.000 lines of code to make this little K2 node work the way I need it to work. This ain’t even funny… C’mon now, that is kinda obscene!
And I’m not done with it yet, because there’s a final caveat that I have to address while “K2_” classes are completely undocumented.
I now see myself wandering around inside engine source code and learning about the Blueprint’s Kismet Compiler Context thingy simply because I don’t know how to make a simple “If Then Else” with pins when return values as UObjects are involved
The fact that this ‘single’ spawn node is in fact composed by THREE hidden nodes that are generated in runtime doesn’t help either…
By comparison, I’ve made custom stuff for other engines before; it’s always a necessity…
Let me draw a “graph” to express how I feel the current UE4 workflow for editor extension currently is:
[Complexity]:
Now, we can make some “hacks” and actually use UMG widgets in custom UEditor panels.
But that doesn’t solve everything; we need, again, an API aimed at UEditor extensibility features such as extending K2_ classes easier and faster for example.
Take a look at this: Unity - Manual: Editor Windows
And they classify that as “advanced topic”… Oh boy. I wish doing that same for UE4 was that simple because by far UE4 is my engine of choice, the GameplayFramework is the best out there; but please, add better UEditor API for external developers /rant]