When building a big‑budget game, dozens of artists, designers, and programmers touch the same files.
If the project’s folder structure is a mess, you spend more time hunting for a texture, dealing with merge conflicts, and rebuilding the whole project just because a new asset was added in the wrong place.
A clean folder structure:
DerivedDataCache
folders in the repo.Below is a layout that works for most AAA studios and is based on the real‑world examples from the SLAY project and Lyra Starter.
Folder | Why it matters | Typical examples |
---|---|---|
Content/ | All the stuff the player sees | Meshes, textures, sounds, widgets |
Source/ | C++ code split into modules | GameCore, Gameplay, UI |
Plugins/ | Re‑usable extensions | PhysicsSim, GameplayFramework |
Config/ | Engine settings you control | DefaultEngine.ini, GameUserSettings.ini |
Binaries/ … Saved/ | Generated data that changes every build | DLLs, shader cache, autosaves |
Quick tip: Never commit anything from Binaries, Intermediate, or DerivedDataCache they’re regenerated on every build.
Unreal’s own style guide recommends a simple naming pattern:
<Prefix>_<BaseName>_<Variant>_<Suffix>
Part | What it means | Example |
---|---|---|
Prefix | Asset type ( SM_ for static mesh, BP_ for blueprint, UI_ for widgets) | SM_WoodTable |
BaseName | Logical group | EnemyOrc |
Variant | Different versions | LongHair , ShortHair |
Suffix | Sub‑type (e.g. _S for specular) | SM_WoodTable_S |
Rule: Always start with a prefix, no spaces, and keep the rest in camelCase or PascalCase.
If you’re tired of creating a new project from scratch every time, run this script once and you’ll get a perfectly‑structured skeleton in seconds.
spec.json
– the recipe
Python Script
Give it a try on your next Unreal project and watch the chaos disappear! 🚀