Making games alone isn't all fun and games..
Most of the time I spend working on my games I spend on organising and naming prefabs, models, maps, textures, materials, scripts, audiofiles, animations and other files. Working with a lot of files becomes increasingly difficult without good structure and organisation, so here are my top 5 tips for organising and working with a lot of game assets, that will hopefully save you some time for doing more fun things, like modelling, designing maps and back rubs..
1. Create packs or kits of everything
Always try to put as many things as you can in single files. So if you create a lot of textures in Illustrator or Photoshop then try to use multiple artboards and if you create 3D models in Blender, try to put a lot of models into one single file. For instance if you want to create a couple of bridges for a game then create a blender file called Bridges-Pack or Bridges-Kit or something like that and keep all your bridges in a single file. This makes searching for models a lot easier and it will also make re-using packs in other games a lot easier:
2. Use prefabs and prefab variants
Unity has a good prefab and prefab variants system that you can use to have original prefabs and variants of those original prefabs. (You can create a variant of a prefab by right clicking on it and selecting create prefab variant, just make sure you don't create a variant of a variant when you don't want to.) This can be useful for a lot of things. You can for instance have differents variants of the original prefab that all have different materials assigned or you could have different variants of an enemy character that have different scripts attached. The prefabs and variants system offers a lot of flexibility but it does take a while to get used to and you will make mistakes in the beginning but in the end it gives you a lot of freedom and can give you a lot of variety in assets with relatively little effort:
3. Use nested prefab prefabs
When you create many different prefabs, for instance for buildings, you can create a parent prefabs prefab to keep all your prefabs together. Inside of the prefabs prefab you can organise things even further by using empty game objects. This way you can just drag a pack with prefabs into your scene and start copying objects from that to quickly design new maps. This is a lot easier than having to drag prefabs into a scene one by one from the project view. Creating a prefab for other prefabs also makes it easy to keep oversight on all of them because you can just open the parent prefab and instantly see all of the other prefabs:
4. Give every prefab asset a unique ID number
By far the quickest way to find something in your project is by searching for a number so i try to give every asset a number before the name. I recommend giving your assets at least a four digit number so you can go up to 9999 assets before running into problems but depending on the size of your project it might be better to use a 5 or 6 digit number.
When numbering your assets you can create groups of numbers, for instance you can give all your characters a number between 0-1000 and all your buildings a number between 1000-2000 and so forth:
5. Write the types of the assets in the file names
I always try to put the type of the asset into the filenames.
So when i create a new material I put -Mat at the end of the filename, -Tex at the end of textures, -PS for particle systems, -Master for master files, -SFX for sound effects etc.. This way you can immediately see what kind of file you're dealing with in the project view and if you want to see al the materials in your project for instance you just have to type 'Mat' into the search field of the project view:
I hope these tips will be useful to you or maybe give you new ideas for better organising your assets..
Have a look at my other posts here on Publis0x or on my personal blog, if you want to know more about the games I'm making and for other Unity3D tips and tutorials.
If you have tips for better organising Unity3D yourself, feel free to add those in the comments!