Home Technical Talk

Directory Structure for game project?

duke
polycounter lvl 13
Offline / Send Message
duke polycounter lvl 13
I've been working on and off on a project at home for almost 2 years now, and i've decided to clean things up a bit and re-do the directory structure (previously, there was none..). Project Management and versioning are separate issues imo. I'm using SVN for versioning. What I would really like to hear about is how people structure their directories when working on a complete, a-z game. I was thinking:

-/Builds/
--/(By date + version)/

-/Documentation/
--/Concepts (original concept art)/
--/Reference (images, notes, etc.)/
--DesignDoc.doc etc.

-Art
--3dsMax*
--Interface
--Models
--Textures

-Code
--Client
--Common
--Server
--Tools

*=3dsmax has a default project structure that I usually use. The most up-to-date assets are kept as FBX or whatever in the main Models folder.

...any comments?

Replies

  • SimonT
    Options
    Offline / Send Message
    SimonT interpolator
    No perfect solution out there i think. I know it for example that way that you have the same folder structure twice: in one you keep the working files (max, psd, ...) and in the one the converted stuff (fbx, dds, ...).

    But i think you structure looks good but maybe you will also need subfolders e.g. in the Textures folder (psd, tga, dds, ...)
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    we had this discussion recently at work because we had for years a bloated system in place for everyone to work with. The bad thing we had were to many pre defined folders that were not really used, so the new one had the following unique details:
    • short folder names, more close to back end dev conventions (3-4 chars if possible often close to filetype extention)
    • camelCase so no underscores or no spaces so we can send it around without character escape issues
    • max 2-3 hierarchies
    • split at root more close to core sections (producers, designers/ artist, coders), so each group can adjust the sub folders to their needs for the project.
    Developers are kind of the exception sometimes because they are often already forced to functional structures to begin with. So source files and compiling related folder structures (/bin, /src, /lib,...) have their own folder or rule.

    One major result of this change is that we might have more files in folders but with a good naming convention and list view booth in Windows / OSX that should work well. For big projects you often rely on good filenames instead of thumbnails anyways - because there are just to many files to process or to slow connections to the fileserver.
    Things like this always takes years or months to explore depending on the company size and the kind of people being involved.

    Whenever I am involved at big projects at work with max or other authoring tools I write my own exporter scripts so we don't have to watch out to much making mistakes with filenames, folder targets and lots of other settings one might forget or oversee in the export process.
    If you have a sexy pipeline with automated scripts you can cut of so much time and stress caused by tedious and repetitive tasks with details.

    I recently suggested at work writing a commandline tool or UI for creating those new folder structures. SO that only folders that are really needed will be created on the server with the correct writing conventions with the variables of the project details. Because we pump like 20-40 projects a year that need their own folders. And with so many people involved its just to easy to make mistakes.
  • Ruz
    Options
    Offline / Send Message
    Ruz polycount lvl 666
    additionally is there anyway to stop max creating folder structures automatically. This really annoys me. For example with my bruce willis project I point max to the BRUCE folder, but then max creates a whole load of folders which I don't need like renderoutput etc.
  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
    Ruz: Don't set your max project folder to your build folder, just add all the important directories manually with paths.
  • Ruz
    Options
    Offline / Send Message
    Ruz polycount lvl 666
    yeah seems like the best way , thanks.
    would have been nice if you could have max use a txt file like the .mxp file with the folder structure you need.
  • cw
    Options
    Offline / Send Message
    cw polycounter lvl 17
    Ruz wrote: »
    additionally is there anyway to stop max creating folder structures automatically. This really annoys me. For example with my bruce willis project I point max to the BRUCE folder, but then max creates a whole load of folders which I don't need like renderoutput etc.

    You can adjust the created paths, take a look at the 3dsclean scripts; edit the max ini to redirect various filetypes to folders of your choosing. :)
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    it can also be customized with maxscript:
    http://www.kxcad.net/autodesk/Autodesk_MAXScript_Reference_9/MAX_System_Directories.htm
    http://www.kxcad.net/autodesk/Autodesk_MAXScript_Reference_9/PathConfig_Struct.htm
    you can set it using
    SetDir <filetype_name> <string>
    
    a full list of available directories is listed in the first link.

    I am not a fan of project folders of max, they are messy and almost in the way if you want to do something quickly. So most of the time I just write scripts that do just what I need.
  • SimonT
    Options
    Offline / Send Message
    SimonT interpolator
    A hard but nice trick can be, to let the server delete all stuff which is not written in the correct naming convention. Sounds hard but after you first loss of a days work you will make sure that you are working clean. OK, mostly we don't have this problem because the games are mostly that strictly that the new asset just won't be loaded when it's not spelled right but i think you know what i mean when you have to re-export something from a college which is in vacation currently and you find maxfiles like "asset_final.max", "asset_totallyfinished.max" "asset_noItisDone.max" ...
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    This stuff should be forbidden anyways, proper version control is the way to go. Not stupid file iterations, which bloat both, the local and the server files - which totally sucks
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    perna wrote: »
    Sounds like you worked in SimonT's company, Renderhjs ;)
    they had it already in place before I came, changed it though after I complained ;)

    nah sub folders for file types is a horrible thing, fine if you use the thumbnail view in windows all the time, but not a option with lots of files and if the default view is the list view.
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    Neox wrote: »
    This stuff should be forbidden anyways, proper version control is the way to go. Not stupid file iterations, which bloat both, the local and the server files - which totally sucks

    +1 The most painless projects ive worked on used version control. none of the 'which file version is the most recent' bullshit. and providing people comment their commits its a pleasure to use.
Sign In or Register to comment.