Naming Convention Best Practices

What makes a good naming convention in game development, and why should you care? Simply put, a naming convention is a set of rules that define how specific types of assets—such as audio clips, animations, and sprites—are named. As a game sound designer managing large amounts of audio assets, I’ve learned that clear, consistent naming conventions are essential for maintaining order and efficiency. When taken seriously, they can dramatically improve workflow, reduce errors, and streamline communication across teams. In this article, I’ll share practical tips to help you name your assets more effectively.

Let’s start with the clear advantages that strong naming conventions bring to the table:

  • Efficient Navigation & Search: Quickly locate the files you need without frustration.
  • Logical Organization: Files are sorted in a practical, easy-to-understand order.
  • Simplified Batch Processing: Batch-renaming and other mass file operations become effortless.
  • Automation Potential: Enables powerful scripting and automation for tasks involving string processing.
  • Improved Code Readability: Cleaner, more intuitive code when asset names are referenced.
  • Cross-Asset Cohesion: Consistent naming across disciplines such as audio, art, and animation keeps teams aligned.
  • Readable Archives: File structures remain clear and organized over time.
  • Satisfies Perfectionism: A personal favorite—there’s something satisfying about everything being neat and orderly!

So, how do you define a strong, effective naming convention? Below are a few key principles and ideas you can incorporate into your file naming system, including some practical examples.

Essential Qualities of a Strong Naming Convention

  1. Informative but Concise: Include enough detail without being verbose (e.g., ui_button_select).
  2. Hierarchical Structure: Organize sections from general to specific (e.g., environment_forest_bird).
  3. Logical Sorting: Ensure names make sense when sorted alphabetically.
  4. Consistent Typing Case: Stick to a consistent case style, such as camelCase, PascalCase, or snake_case.
  5. Uniform Numbering: Use consistent digits based on expected file counts (e.g., 01, 02 or 001, 002). Avoid single-digit numbers to maintain proper sorting (e.g., avoid cases like pig_minion_1 followed by pig_minion_10).
  6. Grammatical Consistency: Stick with consistent verb forms, nouns, or suffixes (e.g., cha_sonic_spin vs. cha_sonic_spinning; bomb_activation vs. bomb_activate).
  7. Consistent Word Forms: Use one standard spelling for ambiguous terms (e.g., ambiance/ambience or flyer/flier).
  8. Consistent Tense and Number: Keep tense and plurality uniform (e.g., chest_destroyed vs. chest_destroy; coins_collect vs. coin_collect).

Naming Convention Examples

It can be helpful to document your naming format using a formula to ensure consistency across assets. Here’s an example of a logical and consistent format:

type_category_?subcategory_?action_?subcategory_?01
(Note: The “?” indicates optional categories.)

Some Examples using this format:

  • ui_button_select
  • ui_button_shop_purchase
  • gp_proj_fire_hit_small_01
  • gp_proj_fire_hit_small_02
  • gp_booster_bomb_activate
  • mus_core_jungle_01

These examples illustrate several best practices:

  • The categories flow from general to specific.
  • Abbreviations are used conservatively to maintain clarity.
  • The “action” category is always a verb, without unnecessary suffixes.
  • Numbering is consistent and helps with sorting.
I’ll provide two file naming examples from Unity’s project view. You can decide which one seems more logical or organized (or, should I say, sane?) 🙂
 

Additional Tips to Consider

  1. Avoid Excessively Long Names: Overly long names can clutter tool UIs. Focus on essential details.
  2. Be Intentional with Descriptors: Decide whether to be explicit about certain qualities. For example, adding “loop” at the end of a music track name can clarify its looping nature (e.g., music_theme_loop), but omitting it keeps names shorter. Choose based on your production needs.
  3. Mechanics vs. Theme: Make a choice between using game mechanic or theme names (or a combination of both). For example, a script could be named “ExplodingProjectile” (mechanical), while the theme could simply be “Fireball” (thematical). Sound designers and artists often approach game mechanics from a thematic perspective, which comes naturally. However, it’s also important to consider the mechanical aspect when naming and categorizing entities, which can add clarity and context in some cases.

  4. Use Abbreviations Wisely: Abbreviations reduce length but should remain understandable. Stick to standard, consistent abbreviations. Some examples:
    • gp: gameplay
    • plr: player
    • cha/char: character
    • amb: ambience
    • mus: music

Details on Typing Cases

  1. Snake Case for Clarity: I find snake_case—lowercase words separated by underscores—especially helpful (e.g., cha_red_attack_vo). It simplifies searches since underscores isolate specific terms (e.g., cha_ filters cha_ but avoids characters).
  2. Mixed Typing Cases for Emphasis: Consider capitalizing key terms for clarity (e.g., amb_factory_main_STOP to highlight stop events). You can also use camelCase for multi-word categories (e.g., enemy_fireDemon_death, where “Fire Demon” is a single entity).
  3. Other Styles: PascalCase, camelCase and kebab-case (yes, kebab-case is a thing, though kebap would be more accurate—trust me, I’m Turkish) can also be useful depending on your team’s preferences.

What to Avoid

  • Non-Descriptive Names: clip_01 (no context, no clue).
  • Inconsistent Separators: awesome_sound1 (missing underscore before the number).
  • Natural Language Structures: PickupGreenEmerald—difficult to sort and scale. Instead, use ItemGemEmeraldGreen.
  • Inconsistent Hierarchy: boss_enemy_eggman should be enemy_boss_eggman for logical sorting (“enemy” is broader than “boss”).
  • Inconsistent Digits: GreatArt_1, GreatArt_2, GreatArt_10—should use GreatArt_01, GreatArt_02
  • Cryptic Abbreviations: mus_stng_lvl_comp (uh… what?).
  • Excessive Length: sfx_env_forest_daytime_birds_chirping_loop_ambient_lowIntensity_01.wav (ouch).
  • Version Indicators: Including version numbers or other indicators. music_battle_theme_epic_v3_finalMix_02 clutters things—are you sure it’s FINAL final (final)?
  • Inconsistent Terminology Across Teams: Audio files named mechanic_woodbox while artists call it mechanic_crate. Misalignment like this leads to confusion—ensure cross-department consistency.
  • Avoid White-Spaces: It’s usually a good idea to avoid using spaces between words. This can cause issues for certain tools or utilities, and it’s generally not advised.

Conclusion

There’s no universal rule for naming conventions—each project has unique needs. However, setting up a thoughtful system early on, with input from all departments, will streamline production. Better yet, document your naming convention so everyone is on the same page.

I hope these tips help you name your assets more effectively and optimize your workflow. Happy naming!

Leave a Comment