I’m a long-time user of Unreal Engine 4, since when it was running under a subscription model back in 2014.
After all this time, the engine got improved on several fronts: VFX, animations, and so forth.
But one place I feel that lacks care and attention is when it comes to programming. I mean, yes, tons got improved from 2014, but it seems to me that recently your attention is almost exclusive to artists. I know that’s pretty much what separates Unreal Engine from other solutions and might be your public pitch - it’s easy to make a good-looking game with Unreal -, but I really wish you could give us, programmers, some quality of life stuff that would make a huge difference.
When I saw the feature demo yesterday for UE5, I confess I got a little bit frustrated. What you’re shipping is really impressive, and I’m really excited to give it a hands-on, but at the time being, it’s a pity for me to know that some aspects of programming in UE are still quite too hardcore.
With no further ado, I leave you a list of features I believe would make UE5 shine even brighter.
Built-in Blueprint JSON support.
We are living in the data-driven age, aren’t we? JSON is a pivotal technology that makes data-driven games easier to iterate - from modders to game designers to system programmers. That said, not having out-of-the-box support for JSON through Blueprints quite sucks. There are several plug-ins out there, for sure, but you know… third parties.
Built-in Blueprint Formatter.
Yes, we have BlueprintAssist which is awesome, but still - a third-party paid plug-in (which I can’t live without).
Automatic getters/setters.
Imagine how nice would be to right-click a variable (named something like Velocity, then selecting the option Generate Getters/Setters and see the magical operation of two functions being created for you, named respectively GetVelocity and SetVelocity.
A scripting language?
Blueprints are great and all, but when it comes to larger teams, code diffing and file conflict are nightmares. One solution besides your in-editor diff app would be… Unreal Verse? I mean, I personally was expecting this one so bad and felt sad when nothing was mentioned in the debut video. Anyways - a ‘new’ language to overcome diffing problems when we have solutions in the wild may sound overkill, but I just had to have an excuse to put ‘scripting language’ here without getting into the nitty-gritty of why I’d want a new language among C++ and BPs.
These are the top items I can think of from the top of my head, but I’ll update the list as soon as anything new ticks.
Hope this gets fruitful and thanks for this conversation channel.
As I mentioned, I’m re-visiting this thread with more ideas & feedback around programming with UE5.
Built-in HTTP Support on Blueprints.
We have plug-ins, I know, but one thing that I faced in the past is: one plug-in was doing HTTP in a particular way. Then, its maintainer stopped maintaining it and I had to migrate - and with that, all the code I produced around that old plug-in got automatically deprecated. Please, Epic, help. Besides, we are living a connected age. Even for leaderboards or something, most of the games today have some sort of networking - and HTTP is a core.
A built-in Loading Screen manager.
It doesn’t matter the industry: architecture, movies or games - most of production applications require a loading screen and it makes me shocked knowing that UE is so poor when it comes to managing loading screens. Really, it seems to me a must-have functionality, specially at an engine with this scale. We have plug-ins sorting this out, and I know it’s impossible for you, Epic, to create and maintain everything all these plug-ins do, but please, note that the points I’m raising are not specific, niche scenarios.
UMG.
I’m a full-time front-end developer working with web technologies to build UIs. I’m confident to say how mature these tools are to build the web we know. UMG is your solution when it comes to UI, but it’s waaaaay behind web technologies. I mean, way behind. And that’s expected - it’s pretty complicated for a single company with several divisions and focus to create something that would compete with, well, the entire web. So, why not leave this duty behind? What I’m encouraging here is to, perhaps, flirt more with HTML, CSS and JavaScript. In a project I’m working on, I’m using CEF to render a React app to use as a UI, but not having a built-in integration makes everything more complicated, and I have no one to ask about. Besides, have you ever imagined a world where people wouldn’t create threads on ‘how do I create a rounded button?’? Yeah, that would be heaven, lol.
Anyways, these are the top three in my mind recently.
If you ever read this, I anticipate my personal gratitude.
A lot of these are non-issues really. Variables can have getters and setters created through C++ via UPROPERTY specifiers. JSON support would be nice, true, as well as the formatter. A scripting language is already being developed which will most likely alleviate most other concerns you raised. It’s obvious that you come from a web dev background and I have to say that I hope that UE does no become a HTML wrapper, especially when it comes to UI.
I don’t want UE to become an HTML wrapper; I do want it to provide it to those who want to say the least. But what you dislike about HTML? I know the communication between UE4 - HTML isn’t that seamless, but I’d love to see ways to use it when one wants to - a built-in one.
Regarding the scripting language, I do apologise but I don’t think Epic ever confirmed they are crafting this scripting language and will be embedding it into Unreal. I know about Verse and that they’ve been working on it, but do we have a confirmation it’ll be landing at UE?
Regarding Getters/Setters via UPROPERTY, etc. What do you mean? I’m talking about Blueprints.