Skip to main content

Content Layout Reference

GCS ยท 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.


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.

Reorganize without fear

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.