BP doc - naming convention

Purpose: 

The purpose of this document is to define a formal name convention for art assets across studio projects. This may be used for both art source and game assets. However, collaboration will need to take place with Design and Tech groups to ensure the naming convention will work for discipline specific use. 

Why have a naming convention? 

  • A naming convention helps to immediately identify how files are used in a development environment.

  •  It allows for quick filtering and searching for specific file types in Windows, source control and the game engine. 

  • It provides a quick and concise view of what you are looking at and how it is used. 

  • It helps inform which art discipline made the asset. 

  • By knowing the above it can help with debugging runtime and build issues. 

A naming convention provides a known common ground that allows multiple individuals and disciplines to work together with confidence that they can identify and find the files they need. 

Unreal and Unity: 

We use both Unreal and Unity. This document defines what can be used across both platforms. A unique doc for Unreal and Unity will have to be created for specifics like Blueprints vs Prefabs. We will have to make sure that this naming convention is intuitive for artists in both Unity and Unreal and to break into unique engine naming conventions where constructs diverge. 

Asset Name: 

An Asset Name is what an object will be called in the development environment. It starts with a prefix then has a basename and might contain a suffix depending on what role it plays in the game. The parts of the Asset name will be combined with underscores ‘_’ as such: 

  • Prefix_BaseName_Suffix 

An old crate place in the game would have the base name: 

  • OldCrate 

It’s prefix would be SM_ since it is a static mesh: 

  • SM_OldCrate 

Base Name:

The base name of an asset is what defines the identity of an asset within its unique type. Consideration, in naming, should be given for what function the asset will play in the game as well as what the asset looks (or sounds) like. The base name should be recognizable across disciplines to inform what the asset is and how it should be used. Base names should be concise and descriptive while keeping the following in mind: 

  • Base Names should use ‘PascalCase’ to help readability:
    • OldCrate - correct 
    • oldcrate - not correct...less readable 
    • old_crate - not correct...readable but longer then needed
  • Base Name will be part of a larger filename that will always have a prefix and may have a suffix. It is also part of a longer file path. As such try to maintain a descriptive name but keep character count to a reasonable number.

    • Use commonly understood shortened words when possible. Think about using Lrg instead of Large or Sm instead of Small:

      • LrgOldCrate, SmOldCrate

    • If you have a character named Maximilianus you should shorten it to Maximil, or even Max if that is descriptive enough compared to other characters in the game. 

    • To reduce overly long filenames avoid using underscores unless they are necessary to make a distinction from other assets of that type.

      • LrgOldCrate - correct 

      • Lrg_old_crate - given pascal case the added underscores are unnecessary 

    • Unique difference between the same type of asset should be distinguished by following the base name with an underscore ‘_’ then 2 characters for the number of variations…starting with ‘_01’. The example below for ‘LrgOldCrate’ should all be large old creates but they should be have difference that make them visually unique

      • LrgOldCrate_01, LrgOldCrate_02…LrgOldCrate_10

Prefix: 

The prefix describes the basic function of the asset in the game and in most cases what art discipline created it. Prefixes should be 2 capital letters followed by an underscore:

  • SM_BaseName 

Prefixes will always have 2 characters because it provides a consistent way to view the file names. When an asset name has an inconsistent number of characters in its prefix the asset names do not line up in file lists and are harder to visually parse. 

Suffix:

The suffix is used to work in concert with the prefix to describe more detail about what type of asset it is. Suffixes are currently used with texture files to define what kind of texture it is (i.e. albedo, normal, ambient occlusion...) as well as with unique versions of the same type of asset. 

Meshes 

Static meshes, non-rigged geometry, will use the prefix SM_BaseName 

  • SM_Box 

Skeletal meshes (rigged/skinned geometry) will use the prefix SK_BaseName

  • SK_Dog 

Materials 

Materials will use the prefix MT_BaseName 

  • MT_Box 

Textures will use the prefix TX_BaseName followed by an underscore ‘_’ and a suffix

  • TX_Box_<Texture Suffix> 

Animations 

Animation will use the prefix AS_BaseName 

  • AS_Bark 

Particles 

Particle system will use the prefix PS_BaseName 

  • FX_Explosion