Naming conventions are one of the cornerstones of an organized project, and whatever your discipline, a solid, sensible naming convention will save your skin as you hit full-on production. But just because you have established one early in your development, this doesn’t mean it won’t be challenged. What happens when your naming convention is backed into a corner by the changes and pressure put on it by real-life production: changes that require fast file searching and a flexible approach that won’t so easily break when new assets are thrown at it? The problems of a non-practical naming convention are especially evident in dialogue file naming, where i’ve found a couple of easy approaches to be extremely useful.

Firstly, i’ve found it incredibly useful to think about how the filenames actually appear in sorted order in a file or hierarchy folder. For example, this list of cutscene lines between two characters will display poorly for anyone who actually uses these files…

cutscene1_dave_line1

cutscene1_chaz_line2

cutscene1_dave_line3

cutscene1_chaz_line4

When these lines are taken off their script page and placed onto an OS or in software, either for editing, implementation or debugging, they will arrange themselves like this…

cutscene1_chaz_line2

cutscene1_chaz_line4

cutscene1_dave_line1

cutscene1_dave_line3

Nasty! The ability, in this case, not to hear or see these files in the narrative order in which they should be played back makes it very difficult to work with these files. Narrative order should always, where possible, be considered as a way of prioritizing and expressing a naming convention, especially when you are dealing with tens of thousands of files. Simply leading with the line number would solve this:

cutscene1_line1_dave

cutscene1_line2_chaz

cutscene1_line3_dave

cutscene1_line4_chaz

The same can be said of context grouping for AI dialogue. Grouping can be done based on either context, character name, variation number and so on. For this, I usually go with character name first, as this is how much of the dialogue I have worked with has been organized and prioritized. For example:

doppleganger01_happy_01

doppleganger01_happy_02

doppleganger01_panic_01

doppleganger01_panic_02

doppleganger02_happy_01

doppleganger02_happy_02

doppleganger02_panic_01

doppleganger02_panic_02

The character name leading organizes all the content belonging to that character first, and then the context of the AI dialogue for that character ensure they are grouped accordingly. This not only makes things easier for quickly moving around large chunks of data, and large subsets of that data, but it also allows for quick scrubbing around in a file directory for the required files.

Aside from thinking about filenames on this organizational and narrative, or contextual level of hierarchy, one of the most important elements of filename design and information hierarchy has been to build in change and iteration as a numerical expression. This is a very simple file naming convention trick which I picked up from the awesome Creative Director John Howard when we collaborated on prototype 2.

The notion is deceptively simple. Knowing in advance that lines of dialogue are going to constantly be added to the game as production moves forward, the problems inherent in renaming a whole section of the game dialogue because of the insertion of a new scene, or line , can be quite destructive to production and to the ability of an implementer to make these additions and changes without resistance from the naming framework. The way to get around this is rather than use 01, or even 001 with leading zeros only is to allow an extra decimal place in all numerical file naming like this…

cutscene010_010_dave

cutscene010_020_chas

cutscene010_030_dave

cutscene010_040_chas

This naming convention now allows the addition of not only new lines in-between the lines we already have there, without having to rename any of the existing lines, but also to add easily entirely new cutscenes. Here is how we add a couple of lines…

cutscene010_010_dave

cutscene010_020_chas

cutscene010_025_partridgefamily

cutscene010_030_dave

cutscene010_040_chas

cutscene010_045_partridgefamily

Similarly if we have two cutscenes, 010 and 020, we can easily accommodate 9 brand new cutscenes in between them with this future-proof naming convention.

This small addition to the numerical values used in naming dialogue files has made life a lot easier during iterative development across several titles for me now and i’m happy to recommend it and pass it along. Obviously, these examples are not just relevant to dialogue, but can easily be applied to any large datasets such as interactive music cues.

Happy file hunting!