Maintaining asset library and graphics versioning for games

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.
Showing 1 of 1 servicesAll 242 services
Maintaining asset library and graphics versioning for games
Medium
~3 business days
FAQ
Our competencies
What are the stages of Game Development?
Latest works
  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    663
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    859
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    533

Asset Library and Graphics Versioning Support

Art director asks to return character version "as it was three weeks ago, before artist redid armor". Git stores only .unity files and .prefab, but source files in Photoshop and Substance Painter lie in shared NAS folder — without version history. This isn't rare scenario. This is norm for studios without proper asset management from start.

Why Git doesn't solve asset problem

Git works with text. Binary FBX at 80 MB or PSD at 200 MB — this diff unreadable and delta uncompressed. Repository with art assets without LFS grows to several gigabytes in months, becomes unsuitable for cloning.

Git LFS solves storage problem, not versioning from artist perspective. Tracking *.psd *.fbx *.png through .gitattributes — this minimum. Problem: LFS doesn't show revision previews without git lfs fetch, artists not used to git checkout for viewing previous texture versions.

Professional alternative — Perforce Helix Core or Plastic SCM (now Unity DevOps Version Control). Plastic SCM integrated in Unity Editor natively, can show visual diff for .unity and .prefab files, supports lock-files for binary assets (artist "locks" file, preventing parallel edits).

Asset library structure

Chaotic folder structure in Assets/ kills team time. Finding right texture in project with 3000+ files without proper hierarchy — that's 10–15 minutes search. Right structure depends on game type, but basic principle: by features, not by types.

Bad:

Assets/Textures/characters/hero_diffuse.png
Assets/Models/characters/hero.fbx
Assets/Materials/hero_material.mat

Good:

Assets/Characters/Hero/Textures/hero_diffuse.png
Assets/Characters/Hero/Models/hero.fbx
Assets/Characters/Hero/Materials/hero_material.mat

Removing feature — delete one folder completely. Searching — everything in one place.

For texture atlases: clear naming system with suffixes _D (diffuse/albedo), _N (normal), _M (metallic), _R (roughness), _AO (ambient occlusion) — critical for proper Unity import (TextureImporter automatically determines type by suffix with right setup).

Source versioning

Sources (.psd, .spp Substance, .blend, .ma) don't go in Unity project. Their storage — separate task. Options:

Artefactory/Nexus as binary repository with metadata — suits large studios. Each source has version, release tag, Jira task link.

Google Drive / SharePoint with strict naminghero_armor_v003_2024-11-15.psd — works for small teams. Cheap, but requires discipline.

Git LFS with separate repository for sources — middle ground. Separating engine and art repos reduces performance issues.

For any option you need process: artist completes iteration → exports final asset in needed format (PNG/TGA for textures, FBX for meshes) → puts in Unity project → tags source version. Gap between source and exported asset — main reason for "where did this texture come from?" question year later.

Audit and implementation

Start with inventory: how many assets, current volume, duplicates (same texture in three places with different names — typical). Tool: Find References in Unity + custom Editor script for finding unused assets through AssetDatabase.FindAssets.

Then — migration to chosen VCS, .gitattributes or Plastic SCM rules setup, team training on lock-file workflow.

Timelines

Work Timeline
Asset library audit and restructuring 3–7 days
Git LFS setup + rules + CI integration 2–5 days
Plastic SCM / Unity DevOps implementation 1–2 weeks

Cost determined after auditing current repository state and asset volume.