Content Layout Reference
The recommended folder tree for GCS projects: every asset lives beside the card, unit, status, or encounter that owns it.
For anyone setting up a project folder structure, or wondering where a new VFX prefab should go.Organize GCS content by ownership. If an asset belongs to a card, a unit, a status, an intent, or an encounter, put it beside that owner. Shared folders exist, but only for assets that genuinely serve many owners.
The core ruleโ
Owns the thing -> owns the assets for the thing.
This keeps authoring work local. A designer editing a card finds its artwork, effects, and sounds in one folder, instead of hunting three global buckets for files that happen to share a prefix.
Recommended rootโ
YourGame/GCS/
|-- Databases/
|-- Content/
| |-- Art/
| |-- Cards/
| |-- Decks/
| |-- Encounters/
| |-- Intents/
| |-- Statuses/
| `-- Units/
`-- Scenes/
The exact root name and location are yours to choose. The ownership rule is what matters. The GCS demo ships organized exactly this way; see the demo asset layout for a populated example.
Databases and encounters keep their references when you move an asset to a better folder. Nothing in GCS depends on paths, so you can adopt this layout gradually in an existing project.
Cardsโ
Content/Cards/<Type>/
|-- Artwork/
|-- VFX/
|-- Audio/
|-- Animation/
`-- <card assets>
Slice by card type when your game gives types a visual identity (shared frames, glow colors, sound families). Give a single card its own folder only when it owns enough assets to justify one. The VFX/, Audio/, and Animation/ subfolders are created when those assets are actually produced, not up front. Assets the whole card family shares, such as a glow sprite or rarity frames, sit at the Cards/ root.
Unitsโ
Content/Units/
|-- Player/<Class>/
|-- Enemy/<Class>/
`-- Prefabs/
Unit artwork, animation, audio, and effects live under the player or enemy class that owns them. Units/Prefabs/ holds only the widgets every unit shares, such as HP bars and status lists.
Encountersโ
Content/Encounters/<Class or Region>/
|-- Backgrounds/
|-- Audio/
|-- VFX/
`-- Presentation/
Backgrounds and ambience belong to their encounters. Promote them to a shared folder only when many unrelated encounters reuse the same file.
Statuses and intentsโ
Content/Statuses/
|-- Prefabs/
`-- Icons/
Content/Intents/
|-- Prefabs/
`-- Icons/
Status icons belong to statuses, intent icons to intents. The Prefabs/ folders hold the shared widgets that render them, such as the status icon entry or the intent widget. When a status earns its own visual effect, the same ownership logic applies: a per-status VFX prefab lives under Statuses/, next to the status it belongs to.
Shared artโ
Content/Art/ is reserved for assets with no single owner:
- fonts
- shared UI sprites
- shared shaders and materials
- shared combat effects
- global audio mixer assets
- reusable animation controllers
The test for putting something here is simple: name the owner. If you can ("this is Poison Arrow's impact effect"), the asset belongs in that owner's folder, not in Art/.
Avoid kind-based bucketsโ
Do not create kind-only folders at the content root:
Content/Prefabs/
Content/Audio/
Content/VFX/
Content/Animations/
They look tidy on day one. Six months later, understanding a single enemy means visiting four distant folders, and deleting a cut card leaves orphaned files behind in three of them. Ownership folders age better because content grows and dies object by object.