3.1 KiB
3.1 KiB
DA_DataAssetArchitecture — Data Asset Architecture Overview
Parent Class: UDataAsset
Dependencies: All consuming systems
Purpose: Overview of all 20 Data Asset types in the framework, naming conventions, and dependency rules.
Architecture
The Modular Game Framework uses UDataAsset (and subclass UPrimaryDataAsset where persistent identifiers are needed) as the primary authoring format for designer-facing content. Each DA type covers one content domain: weapons, AI profiles, atmosphere presets, narrative data, encounter definitions, etc.
Conventions
- Naming:
DA_<Domain><Subtype>— e.g.,DA_WeaponData,DA_AIProfile,DA_AtmosphereProfile - Storage: All DA files live in
Content/DataAssets/<Domain>/in-engine - Loading: Use
UAssetManagerwithFPrimaryAssetTypeandFPrimaryAssetIdfor async loading - Validation: Each DA implements
ValidateData()for editor-time data integrity checks - Gameplay Tags: All DAs carry a
FGameplayTagContainerfor query and filtering
Dependency Rules
- DAs reference other DAs by
FPrimaryAssetIdorTSoftObjectPtr, never by hard pointer - No DA may reference a runtime system; only other DAs
- Circular DA references are prohibited — use
World Context Objectfor runtime resolution - All DA types are registered in
DefaultGame.iniunder[/Script/Engine.AssetManagerSettings]
Registered DA Types (Section 13 of Master)
| # | DA Type | Domain | Consumed By |
|---|---|---|---|
| 1 | DA_ItemData |
Items | BPC_InventorySystem |
| 2 | DA_WeaponData |
Weapons | BPC_FirearmSystem, BPC_MeleeSystem |
| 3 | DA_AmmoData |
Weapons | BPC_AmmoComponent |
| 4 | DA_AIProfile |
AI | AI_BaseAgentController |
| 5 | DA_NarrativeData |
Narrative | BPC_NarrativeStateSystem |
| 6 | DA_EndingData |
Narrative | BPC_EndingAccumulator |
| 7 | DA_InteractionData |
Interaction | BPC_InteractionDetector |
| 8 | DA_ObjectiveData |
Narrative/UI | BPC_ObjectiveSystem, WBP_ObjectiveDisplay |
| 9 | DA_EncounterData |
Adaptive | BPC_ProceduralEncounter |
| 10 | DA_AtmosphereProfile |
Adaptive | BPC_AtmosphereStateController |
| 11 | DA_ScareEvent |
Adaptive | BPC_ScareEventSystem |
| 12 | DA_RoomMutation |
Adaptive | BPC_AdaptiveEnvironmentDirector |
| 13 | DA_BehaviourVariant |
AI | BPC_BehaviourVariantSelector |
| 14 | DA_HapticProfile |
Settings | BPC_HapticsController |
| 15 | DA_AdaptationRule |
Adaptive | BPC_DifficultyManager |
| 16 | DA_EquipmentConfig |
Inventory | BPC_EquipmentSlotSystem |
| 17 | DA_PuzzleData |
Interaction | BP_PuzzleDeviceActor |
| 18 | DA_RareEvent |
Adaptive | BPC_RareEventSystem |
| 19 | DA_LevelConfig |
Core | GM_CoreGameMode |
| 20 | DA_AudioSettings |
Audio | SS_AudioManager (132) — replaces deprecated DA_AudioPresets |
Reuse Notes
- This overview serves as a registry — all DA types referenced in any system must appear here
- New DA types require registration in DefaultGame.ini AND this document
- All individual DA spec files are in
docs/blueprints/14-data-assets/