Request: [ A new loading / asset management / reference ] system

The request is to integrate a new asset management system to the engine.

I am not confident, but I think this is the slower part of the engine. Almost everything you try to do with assets in your project will load every data of the asset and depending on the type, will build the asset even if you just want to delete or move or rename it.

This happens via editor actions and even via code: Some functions depend on loading the UObject, and the package loader trigger the build of the asset.

Also, there are numerous of systems in the engine that load the meshes sequentially without freeing memory, causing a lot of freezes and sometimes, crashes due to being out of memory. The crash is a pain because there are some (a lot of) systems that does not provide a ‘Cancel’ option to the slow task modal and when the crash happens, we lost all unsaved data.

This happens in Unreal and also in UEFN. It is terrible in a big project, if you try to change some properties of a batch of assets or just delete a folder containing more than 1 asset, will build the meshes/animations/metahumans/textures/compile shaders/idk and freeze the computer for several minutes.

If that is because of the references the asset could have, the request could be changed to a new reference system that does not trigger the build of all parts of the assets every time.

Welcome to world of object oriented coding hell. :smiley:

Since C++ and unreal at its core is object oriented, they (epic) just cannot rewrite that behavior. There is Actor (or probably) Object class that does it every time its loaded, and EVERYTHING else inherits that behavior from it. So i doubt this will be ever fixed for unreal 5. Maybe in unreal 6 they do something about it, as whole idea of Verse is to make unreal less annoying with all that object oriented spaghetti web of cross referencing everything everywhere all at once.

All we can do for now is suffering in silence. :smiley:

  • Agree. One of the worst things you can accidentally do, is right-click on a large level / map or large mesh. You might as well go for a 15 minute break. This is not how it used to be though. Earlier versions of UE did NOT do this. Instead you got an instant right-click shortcut (properties) menu as you’d expect. So that’s something to consider here. As Epic could revert back from this change. :wink:

  • Personally haven’t deleted / moved / renamed anything in a very long time. Why? Realized one day that it wasn’t smart workflow anymore. It just takes too long / breaks things… For example… Its way quicker to just clone assets and manually relink them, than waiting for the editor to figure out dependencies. Even if this bloats projects, the workflow is far faster, and you can always migrate to smaller optimized projects later anyway. Here’s an example too of what not to do even if the end-goal is for reasonable reasons: