High Priority – Game Art

Naming Conventions

Effective naming conventions are essential for maintaining a well-organized project, ensuring tidy files, and promoting a seamless workflow. Besides saving time, they are instrumental in shaping the thinking and behavior of team members.

Artists are often easy-going and may overlook small details (we’ve been there ourselves ). Unfortunately, this can lead to headaches for programmers. Thus, it is crucial to keep your art team and yourself organized.

To achieve this, at High Priority, we have adopted the following naming conventions, which draw heavily from industry standards, with some modifications to enhance efficiency.

General Rules & Quick Example

  • All names in English, using PascalCase.
  • Asset type determines prefix. Only textures have a suffix.
  • Use 2 digits and 1 letter for family numbering and variations.
  • Use underscores to split prefix, asset name, numbering, and suffix
  • One folder per asset and its asset dependencies

Example:

[Prefix]_[AssetName]_[Family numbering][Variation letter]_[Suffix].[Format]

[  Folder : RoofTiles_01  ]
SM_RoofTiles_01a.fbx [mesh]
T_RoofTiles_01a_C.png [color or albedo or diffuse]
T_RoofTiles_01b_C.png [variation of color map]
T_RoofTiles_01a_R.png [roughness]
T_RoofTiles_01a_M.png [metallic]
T_RoofTiles_01a_N.png [normals]
T_RoofTiles_01a_A.png [AO]
M_RoofTiles_01a [material]
M_RoofTiles_01b [same material, but uses the 01b_C texture]

Upper CamelCase / PascalCase

Use PascalCase when naming your assets. PascalCase is the practice of writing compound words or phrases such that the first letter of each concatenated word is capitalized. Using this system makes separate words easily identifiable.

Good examples:

  • BlackColor
  • TimeUTC
  • RedCat
  • ComputerRAMSize

Bad examples:

  • blackColor
  • Time UTC (Notice the space between Time and UTC, this is wrong)
  • Redcat
  • ComputerRAMsize

Prefixes & Suffixes

Prefixes and suffixes help make your files easily identifiable without the use of long words or sentences. The result is a short filename that holds all the information needed. This way, you, or the person you’re handing it to, can quickly find what is needed.

Prefixes

PrefixDescription
SM_ 3D files. Static Meshes, Weapons, Foliage, Props with just a few joints for function.
SK_3D files that contain humanoid or animal skeleton joint rigs
T_Texture
M_Material
MI_Material Instance
MF_Material Function
MPC_Material Parameter Collection
J_Joints / Bones
SH_Shader
P_Particle System
A_Animation (clip) / Animation Sequence
AC_Unity Animation Controller
ABP_Animation Blueprint
PP_Post Process
MT_Morph Target
S_Sounds
SC_Sounds Cue
BP_Unreal Blueprint
Unity PrefabsAre named the same as the asset they house. Eg, SM_BigTree_01a

Suffixes (Textures only)

Each map type is represented with ‘one’ letter. Color is _C, Metallic is _M, Emissive is _E. If maps are combined to create a combined RGB mask map. We combine the letters. So _M(etallic) with _R(oughness) with _A(mbient Occlusion) becomes _MRA.

SuffixDescription
_CColor map (diffuse or albedo)
[Optional 4th channel = Height or Transparency/Opacity]
_TTransparency / Opacity mask
_MMetallic mask
_RRoughness mask
_SSmoothness (Inverted roughness map)
_NNormal map
_AAmbient Occlusion mask
_EEmissive map
_HHeight mask
_DDisplacement map (Often a blurred height map re reduce artifacts)
_GSingle channel Grayscale map
_ORM (Unreal mask)Mask map combined
[R=AO, G=Roughness, B=Metallic]
_MODS (Unity HDRP mask)Mask map combined
[R=Metallic, G=AO, B=Detail Map, 4th channel = Smoothness]
_MS (Unity URP mask)Mask map combined
[RGB=Metallic, 4th channel = Smoothness]
_IColor ID masks or color channel map
_USubsurface mask

Numbering

There are two parts to numbering your files: The number, and the letter. Example: T_ObjectName_01a_C

The number is used to identify Family Numbering: A completely new asset but within the same family. For example:

  • SM_WillowTree_01a
  • SM_WillowTree_02a

These are two different tree models, but part from the same WillowTree family.

The letters are for variations within the same asset. These are most commonly used for texture variations. For Example:

  • M_WillowTree_01a
  • M_WillowTree_01b

Both of these are for the same model (the SM_WillowTree_01), but the ‘b’ variation has a different leaf and bark color. That’s why it uses a different letter to easily identify the variant of the same object.

Folder Structure

Last, but not least, is the structure of your folders. Organizing them is a great way to make all your assets easy to find. This avoids scrolling through tons of different files, objects, parts, etc in one folder, a.k.a: Chaos.

Folder per “object”
Each “object” and its dependency files get their own folder. For example:

Content/Environments/Props/BigTree_01/…
    …/SM_BigTree_01.fbx
    …/T_BigTree_01_C.tga
    …/T_BigTree_01_M.tga
    …/T_BigTree_01_R.tga
    …/T_BigTree_01_N.tga
    …/M_BigTree_01.mat

Content/…
…/Characters
…/Vehicles
…/Weapons
…/Effects
…/Environments
…/   …/Terrain
…/   …/Background
…/   …/Props
…/   …/   …/BigTree_01 [ Game ready export files go here ]
…/   …/   …/   …/ [ SM_BigTree_01 ]
…/   …/   …/   …/ [ T_BigTree_01_C ]
…/   …/   …/   …/ [ T_BigTree_01_M ]
…/   …/   …/   …/ [ T_BigTree_01_R ]
…/   …/   …/   …/ [ T_BigTree_01_N ]
…/   …/   …/   …/ [ M_BigTree_01 ]
…/   …/   …/   …/Source [ Authoring source files go here. Not included in the game engine ]
…/   …/   …/   …/   …/ [ Modo, 3Ds Max, Maya, etc ]
…/   …/   …/   …/   …/ [ Zbrush ]
…/   …/   …/   …/   …/ [ Photoshop ]
…/Materials [ Global tile-able materials and their dependency files go here ]
…/   …/CobbleStone_01
…/   …/   …/ [ T_CobbleStone_01a_C ]
…/   …/   …/ [ T_CobbleStone_01a_M ]
…/   …/   …/ [ T_CobbleStone_01a_R ]
…/   …/   …/ [ T_CobbleStone_01a_N ]
…/   …/   …/ [ T_CobbleStone_01a_D ]
…/   …/   …/ [ M_CobbleStone_01a ]
…/   …/   …/   …/Source [ Authoring source files go here. Not included in the game engine ]
…/   …/   …/   …/   …/ [ Modo, 3Ds Max, Maya, etc ]
…/   …/   …/   …/   …/ [ Zbrush ]
…/   …/   …/   …/   …/ [ Photoshop ]
…/Shaders
…/Scenes or Maps
…/Sound
…/UI
…/Gameplay
…/Volumes

UV Channels

Name it manually
Each software makes and names UV Channels with it’s own system. So we name them specifically to avoid issues.
We use Maya native UV channel naming system:

map1
map2
map3
etc..

We create UV channels only when necessary, this means that model must have ONLY ONE UV Channel unless specified differently.

See you next time!

The High Priority Team