Why does Unreal Engine hate files ?

Hey,

These days, I work on the project which needs a lot of reorganization like moving assets and so, but yeah, you know… it is getting frustrating… Unreal Engine simply hates files and its redirectors system is horrible imho. Moving files create empty folders, ghost files (redirectors), sometimes it breaks references, empty folder usually can not be deleted and so on… I remember this was issue of UE3 too… Why is it so hard in 2015 to make system which is simple and works correctly… I imagine something simple like global table with IDs and Paths, when you move your asset Path in this global table is updated, so no redirectors or other strange things are needed… maybe even better. support for moving assets directly in windows explorer, so it will not break references… maybe som autoscan which detects changes in path… that would also add support for perforce move command…

This is thing which I don’t like about Unreal engines, is this behaviour really needed ?

Yeah I have had issues as well, including a complete break in the project prior to using perforce. Whatever you do, don’t touch the files outside of the editor. It is just a recipe for disaster.

+1 yes i have the same issue. why can’t unreal just create a folder for the assets inside the project folder and read them but it have to package them inside i think this create the issue.

Naahhhhh I do it all the time. Move stuff in the engine, delete the redirectors in Explorer than open up and fix the reference issues. Always used source control though, but still never had any major issues.

The redirector system is really irritating though. I don’t understand why it’s even required.

Consider the following:
You have a material that is used in several levels, so in the UMAP files it is referenced.
If you now move the material to a different folder, how would all the maps that are currently not loaded know about that movement…?

What I usually do is:
Having one folder per asset type. All the meshes go into a “Meshes” folder. All textures into a “texture” folder, etc.
The organization and grouping is done via collections.
So I never move an asset from its imported location but just reorganize my collections as needed.

a simple (and under the hood) search when the map is loaded?

edit:
also why is the whole redirect thing not under the hood?

I think about some different system, every reference will be just some unique ID and then there will be some global map which links IDs and Paths to assets. When you move asset, path is updated, nothing other is needed because when other things are loaded they will request path by ID. Yeah I know it is really simlified version, but why not something like this instead of redirectors ?

AFAIK redirectors exist so that if you move an asset from its original location, the editor doesn’t have to open every other asset that references it (which can include large levels) to update the paths. All “Fix up references” does it just opening those assets, correcting the paths, and then deleting the redirectors (when it works anyway).

I agree that an UUID system based on an internal asset registry would be much better, though I don’t know whether it could cause the editor to lose track of externally modified assets (through Perforce, SVN, git, etc.).

i never had any issues with it, mb because i knew about redirectors from very beginning of my UE experience

Yeah good point. I’m still used to an old-school engine where EVERY file had to be uniquely named, and all references were based on filenames.