Hello all developers out there , hope you’re having a good day ,
I am an UE developer , has been for many years , and I like to pint out a specific subject , which is the deprecation and removal of older systems like cascade and older physics system , I think the most powerful feature about unreal engine is the ability to do what you want and how do you want it to be , to be unlimited in what you can do , and I feel this action would taking away that freedom from the engine , and not to mention the fact that in terms of performance they are much more efficient is still , by having more than one system we can chose the way we do things more freely than to be limited by one system, I hope my message here will help to keep the older stuff there , my intention in this is to keep this engine great and loved as it has always , and I am sure always will be
UE5 has great plugin system, and most of plugins are available with source code. This is great change.
For unreal 4.xx i made several testing/portfolio projects. However i don’t it over 10 years or so, and almost every project requires different 4.xx engine. I tried to migrate them all to 4.26 i think, but there are always some bugs introduced by engine version upgrade. And that code is old, i forgot what does what in there. And about half of that code can be replaced in ue5 with single plugin.
Also keeping old systems in engine is just unnecessary bloating it, those old system theoretically just sit there, but they still bloat code allocate memory, load at level transit, listen to events etc. And worst is if you develop new system that does same things, but better, you have extra layer of complexity with separating/sanitizing stuff from old system. For eg new sound system needs to take over output device, but old system does not expect anything taking over sound devices, so it just does BSOd, or shows you desktop with crash popup. Now to code new sound system they would need to add checks in all places where old system tries to do something with devices.
And you can always pick old unreal engine that uses your system.
Thank you for taking the time to participate in this discussion ,
What do you think about having the ability to enable these system or disable them completely by a single or couple of plugins ? , for example: I am using only Niagara but I would like to keep cascade in the newer versions of unreal , but in order for cascade not to cause any unwanted interference with other systems or the the engine in general , I will just go to plugins and disable it completely and by doing that I will prevent cascade or any other system from listening during level transitions or any of the other things you mentioned
Problem with OLD system added as plugin will be that it is not OLD system anymore, its new system that just pretends to be old one, but there would be differences, old code would not work without changing all those new incompatible. So it is better to use new system.
For old niagara code you can always use old emmiters, and package them inside new nodes. Most of stuff is same. And btw this is just like migrating old stuff into new system, and adding more flexibility to it. It is almost what you asked for.
You’re free to keep using the old versions if you like the old systems!
There are good technical reasons to remove old systems when they make assumptions and have requirements that are no longer compatible with the development of the engine.
For example , cascade and Niagara are coexisting in ue5 from version 5.0 until now which is 5.5 and I am developing a large video game using ue5.5 and I don’t see any problems with having both systems around , using older versions of the engine is not a solution just to be able to use a certain system that is removed in newer versions , in my opinion , having all the older and newer things in the engine , and have the ability to completely disable and enable older and even newer systems is the best way to move forward , I hope there are some people who can see my point in this.
I am open for any discussions