Naming Convention Best Practices

게임 오디오

This article was originally published by Can Uzer on his website.

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?)

Unity-project-view-example-naming-1

 

Unity-project-view-example-naming-2

 

 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!

Can Uzer

Lead Sound Designer

Rovio

Can Uzer

Lead Sound Designer

Rovio

Can (pronounced “John”) is a game audio designer with experience across mobile, PC/console, VR, and linear media. A graduate of SAE and Aalto University (MA in Sound Design), he previously ran his own game audio studio, working with various game companies. Currently, he works as the Lead Sound Designer for Rovio/SEGA in Finland, focusing on the intersection of content creation, implementation, and management. When not crafting sounds for certain iconic red and blue characters (and breaking builds in the process) Can enjoys exercising, playing games (especially retro stuff), and indulging in other nerdy pursuits.

canuzer.com

 @audiocan

댓글

Aaron Brown

January 27, 2025 at 09:29 pm

Comment_Positive_ThisIsAGoodArticle_01 Nice and succinct article summarizing the importance of naming conventions :) A few extra points of discussion: For casing it's extra critical to choose one and stick with it because changing casing in source control and many tools is a pain. Most Perforce depots I've seen are case sensitive and changing the casing is a huge effort of deleting source and conflicts. Perforce can be made to be case insensitive, but that seems rare for teams. For loops I have seen most teams append _lp at the end prior to enumeration. Either on the looping assets, or the container/event itself that loops. Helps keep it consistently at the end of the file for clarity on settings with mass editing. Also, for anyone wanting an awesome free tool to define your projects naming structure I recommend trying out this tool by Aaron Cendan! It helps streamline the process for everyone involved. https://www.aaroncendan.me/side-projects/the-last-renamer

댓글 달기

이메일 주소는 공개되지 않습니다.

다른 글

Strata 멀티트랙 SFX 라이브러리를 먼저 사용해본 사람들은 이렇게 말했습니다.

Strata의 시작 지난 40~50년 동안 SFX 라이브러리 제작자들은 거의 동일한 방식으로 콘텐츠를 제작하고 배포했습니다.디자인한 사운드를 녹음, 믹싱, 렌더링하고 테마별...

30.11.2022 - 작성자: 시몽 아슈비 (Simon Ashby)

Wwise를 사용한 반복 재생 기반 자동차 엔진음 디자인 | 제 2부

다시 뵙게 되어 반갑습니다! 이 시리즈에서는 Wwise에서의 간단한 반복 재생 기반 자동차 엔진을 구성 및 설계를 함께 살펴보게 됩니다. 디자인을 제어하기 위해 필요한 엔진 매개...

9.5.2023 - 작성자: 아르토 코이비스토 (Arto Koivisto)

무료 Wwise 인디 라이선스 | 최상의 오디오로 인디 개발자에게 힘을 실어줍니다

프로젝트의 비전에 맞는 몰입형 오디오 경험을 만드는 것은 특히 예산이 제한된 인디 개발자에게는 어려울 수 있습니다. 바로 이를 위해 Audiokinetic의 Wwise는 인디...

18.7.2024 - 작성자: Audiokinetic (오디오키네틱)

BPM: 불렛 퍼 미닛(Bullets Per Minute)에서 음악과 게임플레이 동기화하기

어떤 리듬의 FPS를 만들지 결정하기 BPM: 불렛 퍼 미닛(Bullets Per Minute)은 박자에 맞춰 총을 쏘고, 재장전하고, 점프하고, 피하는 리듬 액션 FPS...

11.12.2024 - 작성자: Awe Interactive (어 인터랙티브)

에이지 오브 엠파이어 IV의 음악

안녕하세요, 저는 린 가디너(Lin Gardiner)라고 합니다. Relic Entertainment(렐릭 엔터테인먼트)의 수석 오디오 디자이너이자 에이지 오브 엠파이어...

22.1.2025 - 작성자: 린 가디너(Lin Gardiner)

Wwise Meter 플러그인을 활용한 애니메이션 립싱크

소개 이번 글은 Jater (Ruohao) Xu가 쓴 3부작 기술 블로그 시리즈의 마지막 편으로, 역붕괴: 베이커리 작전에 대한 작업을 공유합니다. Wwise를 사용하여 게임...

2.7.2025 - 작성자: Ruohao (Jater) Xu (루오하오 (제이터) 쉬)

다른 글

Strata 멀티트랙 SFX 라이브러리를 먼저 사용해본 사람들은 이렇게 말했습니다.

Strata의 시작 지난 40~50년 동안 SFX 라이브러리 제작자들은 거의 동일한 방식으로 콘텐츠를 제작하고 배포했습니다.디자인한 사운드를 녹음, 믹싱, 렌더링하고 테마별...

Wwise를 사용한 반복 재생 기반 자동차 엔진음 디자인 | 제 2부

다시 뵙게 되어 반갑습니다! 이 시리즈에서는 Wwise에서의 간단한 반복 재생 기반 자동차 엔진을 구성 및 설계를 함께 살펴보게 됩니다. 디자인을 제어하기 위해 필요한 엔진 매개...

무료 Wwise 인디 라이선스 | 최상의 오디오로 인디 개발자에게 힘을 실어줍니다

프로젝트의 비전에 맞는 몰입형 오디오 경험을 만드는 것은 특히 예산이 제한된 인디 개발자에게는 어려울 수 있습니다. 바로 이를 위해 Audiokinetic의 Wwise는 인디...