- Introduced DA_RenderPipelineProfile data asset to define rendering pipeline configurations for various platforms and quality tiers. - Documented enums, structs, variables, and default preset tables for render settings. - Created a comprehensive developer guide for setting up platform-specific render profiles, including file structure, profile creation, and integration with upscalers. - Included validation rules, console variable references, and testing matrices for ensuring compliance with platform requirements.
4.0 KiB
4.0 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 - Parent Class:
Primary Data Asset(Blueprint class). Maps to C++UPrimaryDataAsset. - Loading: Use
Async Load Primary Assetnode withPrimary Asset IdandPrimary Asset Type - Validation: Each DA implements a
ValidateData()function for editor-time data integrity checks - Gameplay Tags: All DAs carry a
Gameplay Tag Containerfor query and filtering
Dependency Rules
- DAs reference other DAs by
Primary Asset IdorSoft Object Reference, 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]- In BP: configure via Project Settings → Asset Manager → Primary Asset Types to Scan
BP Type Reference
| C++ Type | Blueprint Variable Type | BP Node |
|---|---|---|
FPrimaryAssetId |
Primary Asset Id |
Make Primary Asset Id, Break Primary Asset Id |
FPrimaryAssetType |
Primary Asset Type |
Make Primary Asset Type |
TSoftObjectPtr<T> |
Soft Object Reference |
Async Load Primary Asset, Resolve Soft Reference |
FGameplayTagContainer |
Gameplay Tag Container |
Has Tag, Add Tag, Has Any |
UPrimaryDataAsset |
Primary Data Asset (parent class) |
Right-click → Miscellaneous → Data Asset → PrimaryDataAsset |
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 (148) |
| 15 | DA_RenderPipelineProfile |
Settings | BPC_RenderPipelineManager (149) |
| 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/