Announcement

Collapse
No announcement yet.

moving / renaming still completey broken in 4.8

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #31
    Originally posted by TheJamsh View Post
    Like I said, in order for those references to be updated the files have to be checked out and checked back in, which you can't always do.
    Please, just stop. It doesn't work this way you describe with sane version control. There really aren't any possible sane excuses here you could think of.

    Originally posted by TheJamsh View Post
    Perhaps I've not experienced the same issues as you guys, but all I'm saying is I've worked across multiple UE4 projects in varying team sizes and not had too many
    I managed to nuke half the level with current redirctor scheme on first week of using unreal 4. And yes, I clicked "fix redirectors". The level had to be scrapped and couldn't be fixed, luckily I could reimport the whole thing in one click, but if I couldn't that would royally suck.

    This thing is broken beyond reason, and should definitely be fixed.
    At the moment current advice is "you don't want to move or rename anything, ever, otherwise you'll have high chance of data loss". Which isn't good.
    See this blog post someone posted on those forums earlier.

    Another separate issue that UE4 keeps paths very short and restricts you to very small subset of characters (ascii only with no spaces, IIRC). If your path goes over 100 characters, bake will fail (because bake will create temporary directory with a VERY long name AND name of that directory will fail hard-coded MAX_PATH length check). So here goes "organized directory structure". Unity doesn't have this issue either.

    Comment


      #32
      Originally posted by Gwenn View Post
      Referencing assets by path is what's wrong to begin with.
      I've never used Unity - but by the sounds of it, the alternative going by their method is the have an additional file associated with every file in the content folders? Each time you moved something, you'd have to rebuild the DDC as well which can take hours on some projects.

      Originally posted by NegInfinity View Post
      Please, just stop. It doesn't work this way you describe with sane version control. There really aren't any possible sane excuses here you could think of.
      Perforce, the industry standard, absolutely does work that way. You cannot merge binary files, therefore if you check in a file while somebody else has it checked out - one of you has to lose your changes. To make this easier to visualize here's a scenario:

      - Somebody in Level Design checks out a map and starts working on it in their local Workspace. Say they're working on it for a week.
      - I decide I want to move a Particle System or Material referenced by that level, so I move it. Without a Redirector, I would also have to check out the Level as well, and submit that once I was done.
      - I then check-in the level, and other people in the studio update to that version and uses the new particle system and material in various places around the project.
      - Person a checks in their level at the end of the week, but can't because they don't have latest. They either have to lose their work, or we have to spend several hours reversing all the effects of me moving that particle or material across several days worth of several peoples commits. Not only is it a waste of your time but it's also a waste of others', and you also risk ******* a lot of people off if they can't submit their work for whatever reason.

      Unreal's roots are first and foremost, an engine for studios of that kind of size where things like this would become a big problem.

      As much as I'm an Unreal fanboy, there's a genuine reason for their existence. IF, there's a better solution that fixes both sides of the problem then great - I'm all for it. Meh, I've made my point.

      Comment


        #33
        Originally posted by TheJamsh View Post
        I've never used Unity - but by the sounds of it, the alternative going by their method is the have an additional file associated with every file in the content folders? Each time you moved something, you'd have to rebuild the DDC as well which can take hours on some projects.
        No, every time you move something, nothing happens.

        Originally posted by TheJamsh View Post
        Perforce,
        Merging of binary files is not related to the issue in any fashion.

        Originally posted by TheJamsh View Post
        - I decide I want to move a Particle System or Material referenced by that level, so I move it. Without a Redirector, I would also have to check out the Level as well,
        That's completely incorrect and you don't understand how that works.

        You won't need to checkout or even touch the level. When material is not referenced by path, but by guid, level doesn't care where that material is.
        So you can check out local copy, move things around as you'd like, and your level will not be changed in any way. The only change you'll have to checkin "material was moved from location A to location B". That's it. The level will file remain completely unchanged.
        Redirector's however, are a good way to pollute repository with junk information.

        You're trying to guess how it would work based on your understanding of the unity asset system. Your understanding of the system is incorrect, because you never worked with unity. Either read "Asset Management" portion of blog post I linked, or give unity a whirl.

        Originally posted by TheJamsh View Post
        As much as I'm an Unreal fanboy, there's a genuine reason for their existence.
        The reason for their existence is "the system originally used paths 10 years ago, and when we started to move things around, we needed a workaround that would prevent paths from immediately breaking". That's not a very good reason and the system doesn't have any benefits.
        Last edited by NegInfinity; 12-08-2015, 10:43 AM.

        Comment


          #34
          Originally posted by TheJamsh View Post
          IF, there's a better solution that fixes both sides of the problem then great - I'm all for it.
          Just put an unique, definitive ID, somewhere in each UASSET file, and use that instead of a file path when referencing other UASSETS. That's it.

          You can even have it both ways and keep using file paths when referencing from code. The only reason redirectors exist is to keep references alive when file paths become invalid, which is really a dirty workaround to a bad system.
          Helium Rain, a realistic space opera

          Comment


            #35
            Originally posted by Gwenn View Post
            Just put an unique, definitive ID, somewhere in each UASSET file, and use that instead of a file path when referencing other UASSETS. That's it.

            You can even have it both ways and keep using file paths when referencing from code. The only reason redirectors exist is to keep references alive when file paths become invalid, which is really a dirty workaround to a bad system.
            Yes, exactly. That's it.

            Comment


              #36
              I'm basing my understanding off of what was posted above me in the thread, where somebody mentioned having to move a .meta file around as well.

              Originally posted by NegInfinity View Post
              That's completely incorrect and you don't understand how that works.
              You misunderstood. My point was if there was no Redirector there and we still used paths for referencing, then I'd have to check the level out and change the path, then check it back in with a string pointing to the new path. Otherwise you open level, it looks for file at path 'x' and it's not there. I had to deal with this ALL the time when the guy doing parts of our UI kept moving textures and materials around, but he couldn't submit UMG assets for example because other people were working on them. As soon as he submitted and anybody else updated and opened their project, everything broke. Perhaps after spending so much time trying to fix broken projects because people couldn't submit full changelists, I grew more fond of redirectors..

              Sorry for the drama, but I get wound up when somebodies argument initially seems as thinly veiled as 'Well Unity does it this way and I've had a problem with it in Unreal, so Unreal must be broken'.

              Unique GUID in assets would probably be a good solution, I agree. Frankly until someone from Epic who really knows what they're talking about comes and posts here, nobody knows for sure.

              EDIT: One issue with storing the GUID in the .Uasset file is that unless you can specify a way to load only a small chunk of the file, you'd have to load the whole thing to get the GUID. This means every time you start up a project, all assets would be loaded into memory and 9/10 times, you'll probably run out.

              Not to say it can't be done, but right now storing all this data externally sounds like this only option which is something I'd personally like to steer away from.
              Last edited by TheJamsh; 12-08-2015, 12:19 PM.

              Comment


                #37
                Originally posted by TheJamsh View Post
                My point was if there was no Redirector there and we still used paths for referencing, then I'd have to check the level out and change the path, then check it back in with a string pointing to the new path. Otherwise you open level, it looks for file at path 'x' and it's not there.
                Yes. Our misunderstanding lies there - I believe using a path in the first place is wrong. Redirectors are just the painful workaround that makes it usable.

                If we keep the path, of course we should keep redirectors, but I'd really do away with the path.
                Helium Rain, a realistic space opera

                Comment


                  #38
                  Originally posted by TheJamsh View Post
                  I'm basing my understanding off of what was posted above me in the thread, where somebody mentioned having to move a .meta file around as well.
                  The reason why Unity even has .meta files is because Unity does not convert assets to internal format during import (well, it technically does, but it is hidden away from you). So, if you put *.tga into project content/asset it'll stay as *.tga. Because *.tga can't have extra metadata, the metadata is stored in *.meta file which placed near original file.

                  Since UE4 has everything in *.uasset form, guid for the file could be placed inside the asset. Meaning no *.meta files.

                  Originally posted by TheJamsh View Post
                  You misunderstood. My point was if there was no Redirector...
                  You're repeating what I said using different words. Redirectors exist for historical reason as a quick and dirty workaround around limitation of path-based system.

                  However, path-based system doesn't bring any benefit to begin with, and should obviously be replaced with something that doesn't break and doesn't need redirectors.

                  Originally posted by TheJamsh View Post
                  I get wound up when somebodies argument initially seems as thinly veiled as 'Well Unity does it this way and I've had a problem with it in Unreal, so Unreal must be broken'.
                  I advise to get rid of that habit, and listen instead. There's no point in getting wound up. Both engines have superior features that aren't present in another one, and both have weak points. When people say "it is broken" they are trying to improve your favorite software tool, so when you argue with them, you oppose adding new improvements to your favorite engine.
                  That doesn't make much sense, don't you think?

                  By the way, at the moment really weak points of UE4 is asset management handling - the one that is discussed in this thread, and animation retargeting mechanism (although animation system itself is better).

                  Comment


                    #39
                    Originally posted by NegInfinity View Post
                    you oppose adding new improvements to your favorite engine.
                    Originally posted by TheJamsh View Post
                    Unique GUID in assets would probably be a good solution, I agree.
                    Originally posted by NegInfinity View Post
                    You're repeating what I said using different words. I advise to get rid of that habit, and listen instead. --- That doesn't make much sense, don't you think?.
                    I absolutely wasn't, and my reason for irritation is that lot of the time the attitude of those coming from a different engine is that Unreal should bend itself to suit (Often as if it should be an easy or priority task), rather than listening to folks who have a lot of experience with the engine advising them on a better overall workflow for these tools. Cueing the condescending remarks I'm stepping out of the conversation permanently now.

                    In the meantime, I would suggest waiting for an Engine dev to post their thoughts on the matter.

                    Comment


                      #40
                      Originally posted by TheJamsh View Post
                      Cueing the condescending remarks I'm stepping out of the conversation permanently now.
                      As you wish. Have a nice day.

                      Comment


                        #41
                        Originally posted by TheJamsh View Post
                        my reason for irritation is that lot of the time the attitude of those coming from a different engine is that Unreal should bend itself to suit [..] rather than listening to folks who have a lot of experience with the engine
                        For what it's worth, I 'm not coming from another engine. I used UT3's modding kit, then UDK, then UE4. I believe I have plenty of experience with the engine (and other engines too), even if you're implying I don't.

                        Still believe redirectors are a broken fix to a bad design.
                        Helium Rain, a realistic space opera

                        Comment


                          #42
                          Goodness... Not sure how this turned into a ******* match. The bottom line is that UE4 needs to review and make their content browser better... And, one way to do that is to listen to feedback from ALL users, even users from different engines.

                          Its frustrating how the MOVE / COPY works... I simply want it to work... That's it.

                          teak
                          "A little bit of nonsense now and then is cherished by the wisest men..."
                          -- Willy Wonka

                          Smooth Zoom Camera Plugin for 4.24 here.

                          Comment


                            #43
                            Yes, having the same issues. Redirectors are simply hell on earth.

                            Why isn't there some system of individual GUIDs for each each resource (created on first import) and a mapping table, storing the current path of this asset on the target computer or a similar system?
                            Last edited by spyro; 12-10-2015, 12:49 PM.

                            Comment


                              #44
                              Me and Neg are netflix-and-chill now, sorry folks.

                              One issue I did think of with the GUID system is that they'd need to find a way to load only a small chunk of the .UAsset file - or you risk loading every asset into memory when you load up the engine (nine times out of ten you'll probably run out once you're project get's up to a good size) - which could also mean longer loading/iteration times. It is possible to do that, I'm doing something similar to load only certain information from a UMap asset without loading the entire level - but I don't know how much overhead that adds in itself and how responsive that would be.

                              Something like Spyro's suggestion seems like a good idea, so long as the path is based on the 'Root Directory' and not specific drives or locations. IDK at this point..

                              Comment


                                #45
                                It's 2018 now and I'm using 4.21 with Perforce.

                                I just renamed a file and submitted it to source control.

                                Source control now contains two files, one with the old name, one with the new.

                                When I use "get latest version" (from P4V) on a different machine, I get the following error (and that's the old name):

                                Click image for larger version  Name:	Capture.JPG Views:	1 Size:	28.7 KB ID:	1563538

                                Quite a horrible first time user experience with Perforce, I must admit.

                                EDIT: Apparently you must rename files from within P4V itself, and not from the Unreal Editor:

                                https://forums.unrealengine.com/unre...71#post1368871

                                I wish Epic would have disabled the rename option from the context menu when source control is activated then, and this could have been avoided...
                                Last edited by roberteker; 12-18-2018, 12:08 PM.

                                Comment

                                Working...
                                X