Why was Blueprint Nativization removed? (NO code preaching)

I experimented several times with BP Nativization on pure BP projects and the performance boost each time was awesome. I was really excited to use BP Nativization for actual releases and then I see in the UE5 notes that BP Nativization was removed. Why?

Also I would love for this thread to be kept clean of “Dude real programmers code” or “Why not try C++? Just try it bro”

;p

16 Likes

Did they really? I had no idea.

Maybe they’re optimizing their Blueprint performance for UE5 so that nativization might not be needed? Good topic of discussion though would love to know more about it

3 Likes

There have been no meaningful changes to the blueprint runtime that would improve performance. I assume they just deleted it since it was too difficult to maintain and kept bugging out on more complex blueprints.

3 Likes

It’s very buggy, and was almost never useful in complex, real games that aren’t extremely small at scale. For example, Mortal Shell said they try to use it but it always caused crashes or problems.

3 Likes

I honestly were wishing for a better blueprint runtime combined with a coding-based scripting support for those that don’t like visual scripting for UE5. Blueprint is nice and all but I strongly believe text-based coding is just much easier to manage, organize and keep clean.

6 Likes

That’s what I’m hoping

The following is 100% speculation.

Remember how they purchased the SkookumScript company and the “verse” script screenshots that are around? I am guessing that Verse is their new DSL (domain specific language) which may compile into better byte-code or native code from the beginning. All they would do is retarget the BP compiler from Kismet->Verse which means they have no need for the BP nativization feature because they have something better.

1 Like

Indeed. Same thing happened with Valorant. They tried, but that led to crashes.

Verse runs on the blueprint VM.

1 Like

I tried to use BP Nativization a few times but when packaging the project (mostly mobile and VR) it always throws weird errors, then I gave up and stop trying to use it.

3 Likes

There were several issues with nativization, most can be considered as limitations rather than bugs actually. It would’ve been more valuable (and effective) to list the known issues they have been gathered over the course of years and communicate it with us (or just post it in the forums at least), so people can learn the use of nativization more efficiently.

UE_DEPRECATED(5.0, “Blueprint Nativization has been removed as a supported feature. This setting is no longer exposed for editing and will eventually be removed.”)

ref: https://github.com/EpicGames/UnrealEngine/commit/11c00323ea9dc67a6433fa3420c38ef643f6cfa3#diff-4cd39c438bdaa8f0160692ce19304f1d1c12833f227dd3102ea4cf53563e3f95

9 Likes

If they decided to remove nativization instead of fixing its problems, then it is extremely likely they are working on some form of alternative. We already had Epic asking questions about scripting support in past and Tim had some tweets where he shared his opinions about the topic. I really hope we get something new that is fast and interactible via visual or text based coding depending on the choice.

1 Like

Dunno, is it? Like how they’re removing tesselation with no alternative, and now even planning to remove physx with no alternative?

3 Likes

Isn’t Chaos the alternative? The plan is to meet physX feature-for-feature such that the end user shouldn’t have to change code much.

Yeah right. Chaos is joke currently.

5 Likes

Well poop. Either way I’m still using C++ but it would’ve been nice if it was a new IL backend.

1 Like

We always had alternative for tessellation though. You can use displacement map to modify the mesh via 3rd party program and import it as Nanite mesh.

Chaos is alternative to PhysX, if they removed PhysX without alternative you wouldn’t have any physics in your game.

Just learned about this. I’m pretty disappointed, especially if there’s not a future solution planned.

4 Likes

I have used it in the past to create ports of blueprints but I’ve always moved the code to new classes and cleaned it up, I still think it was useful just in speeding up porting.

I guess they don’t want to waste company power to help bpprogremers aren’t able to move their problematic blueprints to C++ to gain a couple of frames.
maybe with the inclusion of verse themselves using the same virtual machine they may start some form of optimization from scratch

2 Likes