Asset Management

Synopsis: The current ‘redirector’ asset-management…well some may like it, but quite frankly I despise it. Every few weeks, all work is lost, again. Quite frankly I’ve been taking classes on Unity because I’m sure I could get ten products to release on Unity before I’m lucky enough to get Unreal Engine to release even one. I love almost everything about Unreal Engine, but I just can’t stand this “feature” anymore. Why is it so horrible? The Editorcrashes if an asset gets moved or copied, modified in anyway, assets go missing, undelete-able folders/files/assets, deleted folders/files/assets… It’s an absolute mess. Don’t bother with that “Fix Up…” option which does nothing but return; (being bitter, sorry). None of this should be necessary…

On to the feature request I suppose. It seems Epic’s reason for this is to manage a reasonably-fast found-able reference to an asset, if it is moved or deleted…(but what use if the Editor crashes/lose all work?)… Instead of managing redirectors like that, why not instead require that an asset should contain a single reference to everything that references it and those that reference the Asset should also contain a single reference to the Asset. All of this inside the uasset file… That way whenever a file is moved, you can update every reference to it. Yes, this may require a lot of recursive work every time a file is moved/copied, but only N where N is the number of things that reference an Asset. I could only see this being slow and bulky if an Asset ends up with 1K references, and even then I don’t think it would take more than a few seconds on platter-based storage…

Could this simplified management at least be an alternative option for people who can’t make use of the current management? At the very least as a fail-safe option? I really can’t immediately think of anything that would fail with this kind of management, but I have a migraine from torturing myself trying to get this all to work…

I’ve seen a few issues with assets in the past few years but if you’re running into such extensive issues that frequently I believe you’re doing something wrong.

Not one bit, considering the broken concept of Redirectors to begin with*. The only other kind of broken system I’ve seen in an engine has been requiring uniquely-named assets. At least that didn’t prove so problematic.

*The requirement of a manual means of “Fix Up…” should make it somewhat obvious that the current system needs a re-thinking, or re-working. Perhaps I’m not seeing how useful it is compared to what I’m proposing off the cuff.

As for “doing something wrong”…kinda hard to do something wrong. Your actions can include importing, deleting, moving, copying, creating. Editor prevents you from using same names/deleting things that don’t exist by providing a pretty little UI. The UI prevents you from doing something wrong, unless you’re tampering outside the Editor, which I’m not. Sometimes I might grab something from the Marketplace and simply Adding to Project, then MOVING it into its own folder (all inside Editor), it craps. Sometimes it doesn’t. Most of the time, some assets get moved, some don’t. (Without even opening the assets or assigning/referencing).

Any chance you’re doing a bit of spring cleaning, and trying to organize assets / asset-folders and projects better???

If so, then yes UE4 is not designed well enough for that (its just not a robust asset management system). The thing is, never delete anything, and avoid renaming too whenever possible. In short, don’t move assets about unnecessarily… BUT when you absolutely have to, try to duplicate or Copy & Paste everything, and then re-link paths manually instead. Afterwards, clear out the redundant bloat by ‘Migrating’ projects to a fresh one…

The downside to this approach is time… You can’t directly edit links to assets in the UE4 Editor. All materials / meshes for example are listed by name, but not path + name, which is a pain (BP nodes work the same way). Whereas, it’d be faster to be able to manually edit the paths, instead of always having to re-link everything through the Content Browser solely. All of this is very different from the previous engine…

But you have to remember that Epic came from UDK/UE3, which had a global asset database which was shared between all projects. That worked out great, especially during prototyping. But as a result, far too many unused assets got caught up in bloated builds, and that was a tricky and manual process to unhook before packaging.

This time around, Epic clearly wanted something that would only include assets used at individual file level, and so was source-control friendly too. In short, neither option is perfect. But deleting assets is pretty precarious and often outright dangerous in UE4. So unless you want to lose half a day putting things back together - avoid that completely. Instead, duplicate assets, then use ‘Migrate’ to streamline the project later…

Don’t “force delete” stuff.

OK, let’s try work it out.
TL;DR There’s no magical solutions for every case here :frowning:

Well, there are corner cases when user is able to mess things up.
If I’d rename a file, fix redirector (so the original file is removed, marked for deletion in P4) and I’d try change asset name to its “original name”. Perforce loves to mess things up here and to incorrectly assume that original file was simply removed …
Or if you’d moved a file named X to different place and try to move another file in place X file. In such case first I submit the first part of cleanup to the server. Then I proceed with next changes.

Sadly is often the matter of used VCS or lack of it. Every VCS has its issues. I got serious issues with SVN in Unity which relies on a different concept for asset management.
But if you don’t use VCS, start using it. If anything got messed up, you can simply revert changes and try again.

I wouldn’t agree with that. I work with this engine for years, I’m very strict about folder/file organization so I move assets all the time.
I work in small teams so it’s possible to perform redirector sweep on the entire project. Sometimes hundreds of files affected. Nothing breaks. I never had to use tricks described in the quote.
The system itself is fine. Maybe not perfect and requires some additional clicking. Simply works for me and most of users …

[USER=“35245”]Yuji Saeki[/USER], @franktech
If you have a different experience, is it possible to find any repro for issues? It could be just specific bug which we could report.
Maybe you could provide example case or project where it fails for you? We could help you to find what’s wrong.

I did experience some crashes, but it was many versions/years ago. It’s perfectly stable for me now.
Every time editor crashes for weird/unexplained reason, try to remove /Saved folder (excluding /Config) and try again. Sometimes cache corrupts. Removing cache often helps - in any engine.

Unity has this .meta files. Yep, it allows avoiding hassle with direct asset references and redirectors. Although has a much bigger flaw: you can’t quickly check all references to given file. Managing assets is difficult in Unity, you can’t be never 100% sure if given asset isn’t used somewhere by someone else. UE4 gives you a very easy way to check where this asset is used, it’s an essential feature.
The bigger game or team, this getting more and more important. UE4 comes from AAA playground and so it’s expected to make things easy for complex projects and big teams. I can’t imagine working with .meta files in UE4 projects. Using anything else then direct references could decrease overall performance.
And probably that’s the reason why Epic never did anything with a task called “Redirectors 2.0”. It was on the old Roadmap board.

Simply importing assets (from marketplace, ex) and then attempting to move them (inside Editor) into their own UE-style naming-conventions can crash and burn. I understand UDK/UE3, I’m totally not angry or anything, with Epic. I’m thrilled for their engine. I’m simply trying to use it and crashing/burning due to the current asset-management “meh”.

I don’t.

While Unity may be slower to perform larger asset operations, at least it doesn’t crash and burn on me. I don’t find their asset management to be difficult either. :frowning: I do love Unreal’s ability to view references, although I’ve come across a few fringe situations in which it wasn’t accurate, but tolerable considering it has only happened maybe once or twice.

For Indie projects at least, I think it’d simplify things. Not knocking Epic or Unreal, simply asking for a feature-request. I would much rather prefer UE than Unity, but I can’t seem to get anything done long-term, without requiring … work-arounds of duplicating projects and other magic. Yes it may make extremely large operations a little slower (initial recursive logic only on asset, its references) but at least no micro-management magic would be needed anymore. With the advent of SSDs, NVMe, SANs, even RAM drives, I don’t see why it would hurt to at least have it as an option, considering.

And now I’m 99% you got some nasty troll in your project, engine installation or system. Or maybe it’s a rare case where faulty hard drive or RAM creates issues.
Why I’m so sure? Because I’m using tons of marketplace packages in any project. Always starting with moving all assets together (textures with materials, functions, meshes). Moving/renaming a lot of assets to match satisfy my naming perversion. It never “crashes and burns”.
Over 4 years, different projects, various machines. I’m not a big fun of redirectors too, but it simply always worked for me.

You don’t have issues with asset management in general. You’re simply unlucky, something’s bad happened in your particular case :wink:
I could even test marketplace package you have and repeat steps crashing editor.

I understand your approach and I’m enjoying this cultural conversation.
The thing is… you’re probably asking for changing the philosophy of asset management in Unreal because of issues that aren’t common. You’ve assumed that system is dysfunctional.
Did you ask other people if they have such terrible experience? Did you try to clean up cache, reinstall/verify engine, download project again? Did you try repeat crashes on a different machine? Maybe you did, but you didn’t mention it at all :wink:

I’m eager to help you, but I’m not convinced that major system redesign is needed here.

[USER=“69”]Just Krishna[/USER]

Will keep an eye on it, but it usually happens in the middle of other things making it harder to access.
You do see this case quite often. I guess Its quite similar to your Perforce example mentioned above:

Rename / Move a file, then quickly realize you’ve made a mistake and try to undo it, but you can’t now…
i.e. Import texture ‘Red’, rename to ‘Blue’. Import another, rename to RED, that name is not available!!
Fix-up Redirectors may solve this. But at other times it takes an Editor restart to root out the gremlins!
But none of this is a show stopper. Its better if Epic focus on killing bugs like this & this & this instead!

For sure, that’s worth repeating, as lots of threads confirm that helps clear up strange / weird problems!

Most users have seen quirks from time to time though, certainly those I’ve spoken to.
You should say more about your workflow. Maybe there’s a best practice secret here.


Do you run ‘Fix-Up-Redirectors’ after every single (even small) change?
If so, do you run it just in ‘affected folders’, or across the whole project?

I’ve tried in entirely isolated, fresh (OS reinstall too, nothing else but drivers) environments at home, systems are stable, have tried on two workstations so far. RAM is fine, storage is fine. I don’t have issues with asset-management in general. I have an issue with UE’s Redirector asset-management. I’ve assumed the system dysfunctional because it’s the only thing crashing to desktop and the plethora of Google/Forum results showing others have had issues with Redirector asset-management, for a number of years now, (though I can’t say how much more than what results I’ve found trying to track this down).

Side-note, “Fix-Up-Redirectors” doesn’t appear to do anything at all on my installations. No extra IO, no files ever get cleaned up, no matter what folders I try it on.

I appreciate your attempts at helping resolve this, but I think I’ll just try and grab UE source, wade through it and try to remove the entire concept of Redirectors and attempt to implement the concept I was hoping for. Maybe something else is causing all of it to fail, though I couldn’t guess what it might be. Probably going to be more work than this is worth.

I have no idea now, but after reading this…

Whoa. Now I’m really curious how this could be possible?

It’s just wild guess. Maybe it’s the fact I’m always using version control system? Probably Epic very rarely or never test engine such case?
And we’re talking about Windows, right? I keep forgetting about fact that Mac/Linux versions of editor have a lot of issues.

Linux (host) development hasn’t been considered yet due to driver issues and a need for a stable v4.15-kernel environment on something aside Unity/Gnome…just can’t get into the workflow with those two, though Linux Mint+Cinnamon seems promising. Back on topic, we’re not using any VCS. One project per person (unrelated projects). Other dev gets crashes on theirs too, relating to same stuff. They’re not the forum-type though, and though I’m not normally either, it is becoming…difficult to try and live around.

Edit Not sure if it could be related, but we don’t bother with Visual Studio or using C++. Pure BP (lightweight games).

Well, the only thing I could do is to strongly recommend VCS. Even if redirectors would work without it and it’s still one person project. Sometimes it’s a lifesaver, literally.
Maybe not P4 if you don’t need exclusive checkouts all the time :wink:

Let us know if you’d manage to bypass these nasty issues :slight_smile:

I cant ever recommend PlasticSCM enough for any sort of game VCS.

Why? I was always curious about Plastic SCM, but I’ve never tried it because there’s no free version for small teams.

Linking to this in case its of interest to anyone…

Sorry to join this conversation so late. I too find the asset management a bit of a hassle, but nothing unmanageable. As for the problems that [USER=“35245”]Yuji Saeki[/USER] seems to be having, let me ask you this: is your OS in English or another language, ex Japanese? I’ve stumbled upon some nasty problems that are simply caused by unicode characters causing all sorts of problems in a folder hierarchy. This might explain why moving marketplace assets causes crashes. This almost never happens, because the assets that have just been added aren’t referenced anywhere yet. My advice is to use an English distribution of the OS for Unreal development. It’s not ideal but it is safer!

Polylingual OS but purely English structures. Affects even pure English installs. Crashing far less often lately.