I’m part of a small development team with a handful of coders and some of artists and level designers. We are currently not sure how to organize our content efficiently and it would be nice if someone experienced in managing a bigger project like this could give us some hints. Most of our environment artists are also level designers and each one of us has his specific maps that only he is working on. We would like to share our created assets (textures, models, materials, blueprints, etc.) with the team so they can be reused in each others maps. We also have a huge size of assets like base textures or sounds, that nobody knows if they will end up in the final game and file sizes quickly go into the terabytes. What’s the most efficient way of organizing a project like this? How does epic tackle this?
Our idea was to use an svn repository and only upload content that someone uses in one of his maps. However we can’t be sure that those assets stay in the map in the final version, they might get switched for some other asset and our repository might end up with a lot of files that are not used. When compiling a release candidate of the game, how do we make sure nothing is included that we didn’t use? Also, into how many packages should we split our assets? Create one package for each map that includes textures, materials, models, etc. or create a package for textures and another one for materials, etc. no matter in which map they are used?
It would be helpful if someone experienced in the game industry could shed light on how to manage a project like.
I wouldn’t call myself experienced but our team went through the same thing and some things have changed coming from UE3 to 4. You asked a lot so I will try to keep it short and break it down. Also this is slightly subjective I suppose as well but here goes.
You don’t need to worry about un-used items being included I don’t think. If I am correct when you package the game it only packs the assets that are used in maps your putting into the package and any assets that would possibly get called by code. So I wouldn’t worry about it.
When it comes to dividing up assets and organizing your team I am going to be honest with you. You want everyone on the same page and up to date no outlying assets. To do this I would setup a git or svn repo and put the entire project in it minus the ignore file. Make sure everyone update before they start and each time they finish.
When it comes to breaking up your assets and multiple people touching them. You want it broken down as far as possible so when there is a change its a small upload or download, this works for patching too. Think about it if one texture was updated but everything is all packaged together you get a huge patch, if its all broken down its a little 2mb patch. Also if its broken up responsibly then you have less chance of devs stepping on each others tows. Also this yields to finding what you want much faster.
We devoted a wiki page to our asset layout and naming convention of said as well.
Typically though for whatever name we go with for the beginning folder and those are the folders you want a bunch of.
Inside that folder we have the following folders Anims - Models - Textures - Materials - Sounds
Should be self explanatory what goes in what, but again its that first folder name that matters our project has something like 45 header folders
Agree completely, OSIAS. Additionally my team makes use of a group note sharing application (we use OneNote but there are many out there). This way we can keep track of non-game asset items (changes to story, concept art, music score, ideas, etc). Works a treat and everybody is kept on the same page.