Quick! What's the difference between the following groups of file names?
The biggest difference is that by looking at the names of the files in Group 2 you can already start to get an idea of what is included in that file, while the files names for Group 1 are so ambiguous that it's impossible to know what's in the file. Clearly, if you were going to be naming files for a game you would want to follow the structure of Group 2.
So...why did all the files in one the games I was working on end up getting named like the files in Group 1? (Yes we actually had model files named 1.fbx, 2.fbx, etc) Looking back these are the three main things that contributed to our horrible naming conventions on that game:
- To start with our group was still in FIEA learning about game development, so we didn't know entirely what we were doing. (Even after school, I still feel like I don't know what I'm doing half the time)
- Secondly, we were tasked with creating a working prototype for a game within two weeks so we felt like taking time to setup proper naming conventions and folder structure would take away from our development time. (Just in case you couldn't guess this is always the wrong answer)
- Finally, we completely underestimated the impact of having no structure until we were only a day or two away from finishing the prototype and wasting tons of time trying to find the particular files we needed at the right moments.
In the end we really screwed ourselves over towards the end of the project and since then I have always tried my best to emphasize good naming conventions on every game that I am on.
However, even with the best intentions, a tight structure can start to unravel if not maintained properly. Here are some of my suggestions on how to get your naming conventions setup well (can't guarantee that they are the best way but it's the way I do them) and how to maintain them:
Setting up good naming conventions
- When setting up dates use the Year/Month/Day formula. If you do it this way then all your files will start in date order if you sort them by name. Also make sure that the Month and Day always have two numbers. Example: 2012-08-30
- When you have files that are part of a group include the name of the group at the beginning of the file name. If you do this and sort your files by name it will automatically group them together. Example: BuildingsSkyscraper.fbx, BuildingsStore.fbx
Maintaining good naming conventions
- Document all your naming conventions and make sure it's in an easily accessible location. That way team members can easily look up the structure if they either forgot or have never dealt with having to name a file in that structure.
- Perform routine checks on the file names for the game. This doesn't have to be a long, drawn out process. You could quickly look through a couple of files every few days to see if all naming conventions are being maintained.
- Finally, you want to try to build an understanding around the team that having and maintaining proper structure is important. This can take some time and there's no right way to accomplish this, but if you can get your team to be proactive about naming conventions then it will reduce the potential headaches in the future.
Those are only a few ways of creating and maintaining good naming conventions so if you have any tips please post them here so we can all learn!