The Client Code
The client code is a 3 letter code indicating the client. Use DIG for internal projects.
The Job Number
The job number indicates which job this is. Starting at 001, we increment each project per-client.
The Project Name
The project may either relate to the project, or be a code name. It is defined at the start of the project and doesn't change.
File Naming
How & When to case, underscore, and suffix.
Files are just data. The two important data types here are: meta data, and asset data.
Metadata is all the data about a file that exists outside it's actual contents. It is made up of it's location, it's type, it's name. These pieces of information are important in a tidy pipeline, and we choose to leverage some of them to communicate intent.
Asset Data is the contents of the file. This might be pixels, size or bit depth data in textures, or points, normals, uvs etc in 3D models.
The Asset Marker
Every asset will have a marker. Markers should be a unique & concise. Markers will inform the naming of all sub assets.
Asset markers are always PascalCase.
The Sub Assets
When a group of assets logically associate with one marker, they can be considered sub assets. Sub assets uses underscores to communicate their nature.
Sometimes, multiple variant identifiers may be required to fully communicate an asset.
Variant: The asset is a variation on the primary asset, such as an alternative configuration or including different data. Low/High poly. With/without UVs.
Secondary: The asset forms one part of the primary asset, such as a specific submesh, animation, or texture asset.
Marker
Asset
Type

OakTree
OakTree.fbx
Primary

OakTree
OakTree_Crooked.fbx
Variant

OakTree
OakTree_Crooked_Dif.png
Variant Secondary

TurboTank
TurboTank.fbx
Primary

TurboTank
TurboTank_Jumping.fbx
Secondary

EnchantedChest
EnchantedChest_Dif.png
Secondary

StridingManStatue
StridingManStatue.fbx
Primary

StridingManStatue
StridingManStatue_UVd.fbx
Variant

JaguarXC40
JaguarXC40_ReadyToBake.obj
Variant

PenthouseStructure
PenthouseStructure_Walls.fbx
Secondary
Texture Naming Conventions
Texture files are named using a consistent 3 letter coding system.
When packing single channel textures into multiple channels, we use the coding system to deduce an appropriate file name.
- Dif
- Nrm
- Rgh
- AO
- Met
- Hgt
- Emi
- Opa
- Sss
- Spc
- Diffuse
- Normal
- Roughness
- Ambient Occlusion
- Metallic
- Height
- Emissive
- Opacity
- Subsurface Scattering
- Specular
You can use these codes to prepend a single channel texture file, or combine multiple codes to prepend a packed texture.
Note: When building a project, your textures will be compressed. The compression algorithm used depends on your target platform/s. Some compression algorithms compress R and B differently to G, giving 1 extra bit to G. This could be the difference between 32 and 64 available values. This is why we put our most value-sensitive channel into G.
Packing Textures
A very common packed texture is Roughness, Metallic, and AO. These three single channel maps are commonly used in PBR materials, and can be packed together to reduce texture memory footprint.
- AO
- Rgh
- Met
- Ambient Occlusion
- Roughness
- Metallic
Combining AO, Roughness, and Metallic would give a file the name _AORghMet, since this indicates both the maps being packed and the packing order.
_AORghMet





Unreal Engine Naming Conventions
We prefix some asset types with a small letter code to help avoid file clashes and clarify file types where their generated icon may not be clear.
Prefixed Assets








Non-Prefixed Assets









AirShip
Almost There

AirShip
StaticMesh

AirShip_AORghMet
Texture

Airship_Cool_Dif
Texture

AirShip_Nrm
Texture

AirShip_Warm_Dif
Texture

Mi_Airship_Cool
MaterialInstance

Mi_Airship_Warm
MaterialInstance
Can
Common Mistakes

Can
StaticMesh

CanCrush
StaticMesh

M_CronkCan
Texture

Tin_AoRghMet
Texture

Tin_BaseColor
Texture

Tin_Nrm
MaterialInstance
Project File Layout
We operate a mirrored file structure. This means our engine content and our source files live in twin directory layouts.
Below is an example folder layout for a typical project.
Unity Layout
In Unity, "Asset" files live in the Unity project. The "Source" directory only needs to contain the working files required to generate/modify assets, such as PSD and Max files.
Project Layout
Source Layout
Unreal Engine Layout
In Unreal, "Asset" files live in the Source directory. Project files are all Unreals own "uasset" format, and thus must be named with an appropriate prefix to avoid clashes.