Home Technical Talk

Best Practices for Organizing Project Files: What Works for You?

Hello, everyone.

I know there's no written rule about project organization; each studio and person uses what they find most comfortable or believe is most appropriate. However, some project organization structures tend to be more commonly used than others. I'm wondering what file and folder organizational tree you usually use and what advantages and disadvantages you see in each one.

Thank you very much for sharing your perspective on this matter. I'm going to list some of the file trees that come to mind or that I've used before. You can suggest your own.

I'm not sure if there is one that is truly more convenient than another for working, or if it's just the habit of personal use that creates that sense of comfort.






Replies

  • Alex_J
    Options
    Offline / Send Message
    Alex_J grand marshal polycounter
    i try to avoid grouping by type because the computer already has many ways to filter by type
    I try to avoid group by use because - assuming its a game project - where and why things are used may change many times. What I mean is, don't couple a model with a level as an example.

    i think the best thing I've come up with so far is to have a TEMP or IMPORT folder at the root of all major categories, and this is dumping ground for anything new that you aren't sure how to filter. This way you can keep working and not shift brain to organization, but once you have been working with an item for awhile you get a feel for the muscle memory patterns you use to find it, then you can categorize it in the most ergonomic way.

    Usually I am grouping items by shared resources. So for example if all characters share a common material, it makes sense to me to group them together. Basically my project grouping kind of mimics the way computer will be dealing with them. 

    I wrote some notes on the subject here: https://www.notion.so/aljavgames/Project-file-organization-for-a-large-project-as-a-solo-dev-9789e997adb04181b4b577e58b61ce7e?pvs=4

    One thing I highly recommend is a free windows plugin called Fluent Search. Basically a computer wide text search that is fast. If I have to look through directories with my eyes for something when my brain already knows what it is called, to me that is unbearable inefficiency. The computer should do the finding, I should only have to remember part of the name it was called. The main measure I use is that I should be able to find anything I need within five seconds or less. If I can't do that then I consider there is something wrong with the organization or tools I am using.

    I think important to keep in mind though that you never reach perfection cause needs constantly change. Kind of like your personal kit if you are a soldier. YOu constantly adjust pouches one inch this way, one inch that way, so you can grab things fast. You always try to perfect it, but never do. But so long as you can get your shit when you need it, that's as good as you can do.

    If working on a team and you don't already have a template that has been proven to work for the last twenty years, I think having a filter that new things have to come through is key. Basically one person in charge of organizing the project and others deliver assets to them, or they have a TEMP dumping ground they are allowed to add to, but they can't gunk up the main directories.

    Just for personal indulgence I will mention one pet peeve, and this is a "best practice" as per the unreal recommended naming conventions, but they usually have a prefix for type, as in SM_Prop.  What I don't like about this is that if you look through a list of many items it twist your eyeballs in a knot because you have to look midway through the name to find the unique part. The unique part should always be leftmost IMO. 
    Therefore: Prop_subtype_type_namespace. In other words, from left to right, more unique to less unique. This way your eyes find the unique things without trying, and the categorization tags are just tacked on for the computer to use but not make a mess for human eyes. 
  • aprats91
    Options
    Offline / Send Message
    @Alex_J

    Thank you very much for your quick response!

    True, grouping by type can be considered redundant given that the computer is already good at doing this on its own. However, grouping by “use” does make some sense. Rather than use, the appropriate word would be category. We can create models that we usually find in certain places more frequently. For example, it’s easy for me to look for objects like glasses, cups, pots... in the kitchen category folder. Cars, trucks, motorcycles... in the automotive folder. Trees, plants, rocks... in nature.

    I like the idea of using a temporary folder. I will try to implement it in my workflow.

    I also practice the idea of grouping items by shared resources. I usually have a folder with all the trim sheets and tileable materials, but I don’t have models in a similar place.

    You are right about prefixes. It's true that if there is a very long list of SM_prop, it can be difficult to find what we are looking for. Computer_A_SM would be a good example.

  • Klunk
    Options
    Offline / Send Message
    Klunk ngon master
    we always use a working folder for all the incidentals
    e.g.
    generic_house1:
           the_clean_export_mesh.yff
           working:
                  the_roughout_mesh.yff
                  the_concept_mesh.yff
                  etc
           maps:
                  the_clean_export_trim.dds
                  working:
                          trim.psd
                          dirt_rtt.tga
                          light_rtt.tga
                          doodles.tga  
                          etc....

    probably better ways of doing it but there's always stuff that comes outside the purview of source control.
  • iam717
    Options
    Offline / Send Message
    iam717 greentooth
    This is @ home:
    #1 - ( while working on stuff )
    then
    #4 (after deleting, test versions and double-saves in-case of "crashes" )

Sign In or Register to comment.