Dangers of binning off UE4 code vs implementing a better solution

Wondering what you lot think.

I’ve got a mind to bin off a bunch of the UE4 navigation modifier code because it angers me a bit. But there’s a risk that keeping any improvements up to date from engine builds would become harder. So do I bin it off, or code an alternate but duplicated in many ways code path?

I guess the AI code isn’t going to be changing regularly enough to break a build.

What code am I talking about? The sub-8-bit area id -> area “class” mapping inside the Recast impl file. Basically, I want to be able to define navmesh areas more freely for navmesh area markup and this stuff LOOKS on the surface to be semi-useful for that, but ends up being less so because its got this weird ID->AreaClass mapping instead of ID->NavArea instance mapping. Why would we want an AreaClass and not a specific instance? I guess easier for serialization? Its kind of treated as static data, which isn’t really that useful to me.

I also kind of want to fix the **** navigation so that you can actually have “smark” smartlinks. I.e. ones that actually function reliably. But maybe thats just me :slight_smile:

Comments pls.

Any modification of the engine will make it harder, or even impossible to merge new versions of the engine. If you want to be sure that you will always be able to upgrade you should avoid messing with the engine code. But you can always just stick to specific version of the engine without upgrading it, in this case you can freely do what you want with the engine without worrying about upgrade. So it really depends on what’s more important to you.

Third option: Do the modifications and then make a pull request. If you truly believe the solution is better, it should survive a code review and get merged down the line. Only downside is that it is a lengthy process.