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