- Updated references from GI_GameTagRegistry to DA_GameTagRegistry in architecture overview and implementation patterns documentation. - Added new Blueprint specification for GI_StarterGameInstance, detailing its purpose, configuration, and integration pattern. - Introduced DA_GameTagRegistry Blueprint specification, centralizing GameplayTag management and providing functions for tag validation and logging. - Created documentation for the Starter GameInstance, outlining its role in the project setup and how other systems can integrate with it.
200 lines
14 KiB
Markdown
200 lines
14 KiB
Markdown
# Developer Reference — UE5 Modular Game Framework
|
|
|
|
**Version:** 1.3 | **Generated:** 2026-05-20 | **Files:** 16 (1 index + 2 overview + 1 migration + 1 starter + 10 category docs + 1 combined) | **Networking:** All docs include multiplayer sections
|
|
|
|
This directory contains developer-facing reference documentation for every system in the framework. Unlike the blueprint spec files (which define *what* to build), these documents explain *how each system works internally* — the data flow, state machines, integration points, and design rationale. Use these when you need to understand a system's behavior to implement, debug, or extend it.
|
|
|
|
## Who This Is For
|
|
|
|
- **Blueprint implementers** turning `.md` specs into actual UE5 Blueprint assets
|
|
- **Debuggers** tracing why something doesn't work
|
|
- **Designers** needing to understand constraints before modifying Data Assets
|
|
- **New team members** learning the framework's internal logic
|
|
|
|
## Directory Map
|
|
|
|
```
|
|
docs/developer/
|
|
├── INDEX.md ← THIS FILE
|
|
├── architecture-overview.md ← Framework-wide architecture walkthrough
|
|
├── implementation-patterns.md ← Common UE5 Blueprint patterns used
|
|
├── project-setup-migration.md ← Project setup & migration guide (NEW — Project Settings, plugins, init sequence)
|
|
│
|
|
├── 01-core-foundation.md ← Foundation systems (systems 01-07)
|
|
├── 00-starter-gameinstance.md ← Starter GameInstance: GI_StarterGameInstance setup guide
|
|
├── 02-player-systems.md ← Player state & embodiment (systems 08-15)
|
|
├── 03-interaction-systems.md ← Interaction & world manipulation (systems 16-23)
|
|
├── 04-inventory-systems.md ← Inventory, items & collectibles (systems 24-34)
|
|
├── 05-saveload-systems.md ← Save/load, persistence, death loop (systems 35-43)
|
|
├── 06-ui-systems.md ← UI, menus & diegetic presentation (systems 44-57)
|
|
├── 07-narrative-systems.md ← Narrative, dialogue, objectives (systems 58-68)
|
|
├── 08-weapons-systems.md ← Weapons, equipment & damage (systems 69-79)
|
|
├── 09-ai-systems.md ← AI, perception & encounters (systems 80-88)
|
|
├── 10-adaptive-systems.md ← Adaptive environment & atmosphere (systems 89-101, 132-133)
|
|
└── 11-16-systems.md ← Meta, Settings, Polish, Data Assets, Input, State (systems 102-135)
|
|
```
|
|
|
|
## Quick Reference — Every System at a Glance
|
|
|
|
| # | System | Category | Role |
|
|
|---|--------|----------|------|
|
|
| — | `GI_StarterGameInstance` | Project Setup | Minimal GameInstance; tag validation entry point |
|
|
| 01 | `DA_GameTagRegistry` | Foundation | Central GameplayTag → asset registry |
|
|
| 02 | `FL_GameUtilities` | Foundation | Shared utility functions (logging, math) |
|
|
| 03 | `I_InterfaceLibrary` | Foundation | All framework interfaces |
|
|
| 04 | `GI_GameFramework` | Foundation | Application kernel; owns subsystems |
|
|
| 05 | `GM_CoreGameMode` | Foundation | Spawns player, manages game rules |
|
|
| 06 | `GS_CoreGameState` | Foundation | Shared game state, phase tracker |
|
|
| 07 | `DA_ItemData` | Foundation | Base item data asset |
|
|
| 08 | `BPC_HealthSystem` | Player | Health, damage, death trigger |
|
|
| 09 | `BPC_StaminaSystem` | Player | Stamina pool, sprint drain, exhaustion |
|
|
| 10 | `BPC_StressSystem` | Player | Psychological stress tiers, hallucinations |
|
|
| 11 | `BPC_MovementStateSystem` | Player | Movement mode + posture, GASP liaison |
|
|
| 12 | `BPC_HidingSystem` | Player | Hide/peek/breath-hold, LOS checks |
|
|
| 13 | `BPC_EmbodimentSystem` | Player | First-person body, arm IK, overlays |
|
|
| 14 | `BPC_CameraStateLayer` | Player | Camera FOV/offset per state |
|
|
| 15 | `BPC_PlayerMetricsTracker` | Player | Player metrics: accuracy, deaths, ratios |
|
|
| 16 | `BPC_InteractionDetector` | Interaction | Raycast interaction detection |
|
|
| 17 | `I_HidingSpot` | Interaction | Interface for hideable objects |
|
|
| 18 | `BPC_DiegeticDisplay` | Interaction | In-world screens (wristwatch, monitors) |
|
|
| 19 | `BP_DoorActor` | Interaction | Physical door with state machine |
|
|
| 20 | `BP_PuzzleDeviceActor` | Interaction | Puzzle device base actor |
|
|
| 21 | `BPC_ContextualTraversalSystem` | Interaction | Vault/mantle/slide/squeeze/climb |
|
|
| 22 | `BPC_PhysicsDragSystem` | Interaction | Grab/drag/release physics objects |
|
|
| 23 | `BPC_UsableWorldObjectSystem` | Interaction | Generic world object use (levers, buttons) |
|
|
| 24 | `BPC_ContainerInventory` | Inventory | World container inventory |
|
|
| 25 | `BP_ItemPickup` | Inventory | Physical item pickup in world |
|
|
| 26 | `BPC_ActiveItemSystem` | Inventory | Quick-slot item management |
|
|
| 27 | `BPC_CollectibleTracker` | Inventory | Collectible tracking, set bonuses |
|
|
| 28 | `BPC_ConsumableSystem` | Inventory | Consumable use (health packs, syringes) |
|
|
| 29 | `BPC_DocumentArchiveSystem` | Inventory | Document/journal archive |
|
|
| 30 | `BPC_EquipmentSlotSystem` | Inventory | Equipment slots, equip/unequip |
|
|
| 31 | `BPC_InventorySystem` | Inventory | Core inventory grid |
|
|
| 32 | `BPC_ItemCombineSystem` | Inventory | Item combination crafting |
|
|
| 33 | `BPC_JournalSystem` | Inventory | Quest/objective journal |
|
|
| 34 | `BPC_KeyItemSystem` | Inventory | Key item tracking, use-on-target |
|
|
| 35 | `SS_SaveManager` | Save/Load | Save/load subsystem |
|
|
| 36 | `I_Persistable` | Save/Load | Persistence interface |
|
|
| 37 | `BP_Checkpoint` | Save/Load | Checkpoint actor |
|
|
| 38 | `BPC_AltDeathSpaceSystem` | Save/Load | Alternate death/void space |
|
|
| 39 | `BPC_DeathHandlingSystem` | Save/Load | Death orchestrator |
|
|
| 40 | `BPC_PersistentCorpseSystem` | Save/Load | Corpse persistence |
|
|
| 41 | `BPC_PersistentWorldStateRecorder` | Save/Load | World state change recording |
|
|
| 42 | `BPC_PlayerRespawnSystem` | Save/Load | Respawn logic |
|
|
| 43 | `BPC_RunHistoryTracker` | Save/Load | Run/session history |
|
|
| 44 | `SS_UIManager` | UI | UI subsystem, menu stack |
|
|
| 45 | `WBP_AccessibilityUI` | UI | Accessibility settings UI |
|
|
| 46 | `WBP_DiegeticHUDFrame` | UI | Diegetic in-world HUD frame |
|
|
| 47 | `WBP_HUDController` | UI | Root HUD widget |
|
|
| 48 | `WBP_InteractionPromptDisplay` | UI | Interaction prompt popup |
|
|
| 49 | `WBP_InventoryMenu` | UI | Inventory grid UI |
|
|
| 50 | `WBP_JournalDocumentViewer` | UI | Document/journal viewer |
|
|
| 51 | `WBP_MainMenu` | UI | Main menu |
|
|
| 52 | `WBP_MenuFlowController` | UI | Menu state machine |
|
|
| 53 | `WBP_NotificationToast` | UI | Toast notification |
|
|
| 54 | `WBP_ObjectiveDisplay` | UI | Active objective HUD element |
|
|
| 55 | `WBP_PauseMenu` | UI | Pause menu |
|
|
| 56 | `WBP_ScreenEffectController` | UI | Full-screen effects |
|
|
| 57 | `WBP_SettingsMenu` | UI | Settings menu |
|
|
| 58 | `BPC_NarrativeStateSystem` | Narrative | Narrative state machine |
|
|
| 59 | `BPC_ObjectiveSystem` | Narrative | Objective tracker |
|
|
| 60 | `BPC_DialoguePlaybackSystem` | Narrative | Dialogue playback |
|
|
| 61 | `BPC_DialogueChoiceSystem` | Narrative | Dialogue choices |
|
|
| 62 | `BPC_BranchingConsequenceSystem` | Narrative | Consequence execution |
|
|
| 63 | `BPC_TrialScenarioSystem` | Narrative | Timed trial/puzzle scenario |
|
|
| 64 | `BPC_CutsceneBridge` | Narrative | Cutscene bridge |
|
|
| 65 | `BPC_LoreUnlockSystem` | Narrative | Lore/journal unlock |
|
|
| 66 | `DA_NarrativeDataAssets` | Narrative | Narrative data assets |
|
|
| 67 | `BP_NarrativeTriggerVolume` | Narrative | Narrative trigger volume |
|
|
| 68 | `BPC_EndingAccumulator` | Narrative | Ending condition tracker |
|
|
| 69 | `BP_WeaponBase` | Weapons | Weapon base actor |
|
|
| 70 | `BPC_AmmoComponent` | Weapons | Ammo pool |
|
|
| 71 | `BPC_CombatFeedbackComponent` | Weapons | Combat feedback (hit markers) |
|
|
| 72 | `BPC_DamageReceptionSystem` | Weapons | Damage reception/resistance |
|
|
| 73 | `BPC_DeathCauseTracker` | Weapons | Death cause logging |
|
|
| 74 | `BPC_FirearmSystem` | Weapons | Firearm specialization |
|
|
| 75 | `BPC_HitReactionSystem` | Weapons | Hit reaction animations |
|
|
| 76 | `BPC_MeleeSystem` | Weapons | Melee weapon system |
|
|
| 77 | `BPC_RecoilSystem` | Weapons | Recoil pattern |
|
|
| 78 | `BPC_ReloadSystem` | Weapons | Reload system |
|
|
| 79 | `BPC_ShieldDefenseSystem` | Weapons | Shield defense |
|
|
| 80 | `BP_EnemyBase` | AI | Enemy base character |
|
|
| 81 | `BP_PatrolPath` | AI | Patrol path spline |
|
|
| 82 | `BPC_AlertSystem` | AI | AI alert states |
|
|
| 83 | `BPC_AIStateMachine` | AI | AI state machine |
|
|
| 84 | `AI_BaseAgentController` | AI | Base AI controller |
|
|
| 85 | `BB_AgentBoard` | AI | AI blackboard definition |
|
|
| 86 | `BPC_AIMemorySystem` | AI | AI memory/last known locations |
|
|
| 87 | `BPC_AIPerceptionSystem` | AI | AI perception (sight/hearing) |
|
|
| 88 | `BPC_BehaviourVariantSelector` | AI | Behavior variant selection |
|
|
| 89 | `BPC_DifficultyManager` | Adaptive | Dynamic difficulty scaling |
|
|
| 90 | `BPC_FearSystem` | Adaptive | Fear system (AI + player) |
|
|
| 91 | `BPC_PerformanceScaler` | Adaptive | Performance scaling (LOD) |
|
|
| 92 | `BPC_ProceduralEncounter` | Adaptive | Procedural encounter generation |
|
|
| 93 | `BPC_AdaptiveEnvironmentDirector` | Adaptive | Adaptive environment director |
|
|
| 94 | `BPC_AtmosphereStateController` | Adaptive | Atmosphere state (tone, tension) |
|
|
| 95 | `BPC_AudioAtmosphereController` | Adaptive | Audio atmosphere [DEPRECATED] |
|
|
| 96 | `BPC_LightEventController` | Adaptive | Light events (flicker/strobe) |
|
|
| 97 | `BPC_MemoryDriftSystem` | Adaptive | Memory drift distortions |
|
|
| 98 | `BPC_PacingDirector` | Adaptive | Pacing director |
|
|
| 99 | `BPC_PlaystyleClassifier` | Adaptive | Playstyle classification |
|
|
| 100 | `BPC_RareEventSystem` | Adaptive | Rare event system |
|
|
| 101 | `BPC_ScareEventSystem` | Adaptive | Scare event system |
|
|
| 102 | `BPC_ProgressStatTracker` | Meta | Progress statistics |
|
|
| 103 | `SS_AchievementSystem` | Meta | Achievement subsystem |
|
|
| 104 | `BPC_AccessibilitySettings` | Settings | Accessibility settings |
|
|
| 105 | `SS_SettingsSystem` | Settings | Persistent settings subsystem |
|
|
| 106 | `BPC_AnalyticsTracker` | Polish | Analytics/telemetry |
|
|
| 107 | `BPC_DevCheatManager` | Polish | Developer cheats |
|
|
| 108 | `BPC_ErrorHandler` | Polish | Error/crash handling |
|
|
| 109 | `BPC_FPSCounter` | Polish | FPS counter |
|
|
| 110 | `BPC_LoadingScreen` | Polish | Loading screen |
|
|
| 111 | `BPC_TutorialSystem` | Polish | Tutorial system |
|
|
| 112 | `WBP_CreditsScreen` | Polish | Credits screen |
|
|
| 113 | `WBP_DebugMenu` | Polish | Debug menu |
|
|
| 114 | `WBP_SplashScreen` | Polish | Splash screen |
|
|
| 115 | `DA_AdaptationRule` | Data Assets | Difficulty adaptation rules |
|
|
| 116 | `DA_AtmosphereProfile` | Data Assets | Atmosphere profile (audio/light/FX) |
|
|
| 117 | `DA_BehaviourVariant` | Data Assets | AI behavior variant |
|
|
| 118 | `DA_DataAssetArchitecture` | Data Assets | Data asset architecture overview |
|
|
| 119 | `DA_EncounterData` | Data Assets | Encounter definition |
|
|
| 120 | `DA_EquipmentConfig` | Data Assets | Equipment configuration |
|
|
| 121 | `DA_HapticProfile` | Data Assets | Haptic feedback profile |
|
|
| 122 | `DA_InteractionData` | Data Assets | Interaction definition |
|
|
| 123 | `DA_ObjectiveData` | Data Assets | Objective/quest data |
|
|
| 124 | `DA_PuzzleData` | Data Assets | Puzzle definition |
|
|
| 125 | `DA_RareEvent` | Data Assets | Rare event definition |
|
|
| 126 | `DA_RoomMutation` | Data Assets | Room mutation definition |
|
|
| 127 | `DA_ScareEvent` | Data Assets | Scare event definition |
|
|
| 128 | `SS_EnhancedInputManager` | Input | Enhanced Input manager |
|
|
| 129 | `DA_InputMappingProfile` | Data Assets | Input mapping profile per platform |
|
|
| 130 | `BPC_StateManager` | State | Central state authority |
|
|
| 131 | `DA_StateGatingTable` | State | State gating rules |
|
|
| 132 | `SS_AudioManager` | Adaptive | Audio subsystem (MetaSounds) |
|
|
| 133 | `BP_RoomAudioZone` | Adaptive | Room audio zone trigger |
|
|
| 134 | `DA_AudioSettings` | Data Assets | Audio bus/settings config |
|
|
| 135 | `DA_RoomAcousticPreset` | Data Assets | Room acoustic profile |
|
|
|
|
## How to Use These Docs
|
|
|
|
1. **New to the framework?** Start with [`architecture-overview.md`](architecture-overview.md) to understand the big picture.
|
|
2. **Setting up a new project?** Read [`00-starter-gameinstance.md`](00-starter-gameinstance.md) first — create `GI_StarterGameInstance` to validate your GameplayTags immediately. Then follow [`project-setup-migration.md`](project-setup-migration.md) for full Project Settings, plugins, Data Tables, and init sequence.
|
|
3. **Implementing a system?** Read the Blueprint Spec in `docs/blueprints/` — every file has a Manual Implementation Guide with node-by-node logic.
|
|
4. **Need to understand internals?** Read the corresponding Developer Reference doc in this directory.
|
|
5. **Debugging?** Each category doc includes a data flow section showing how data moves between systems.
|
|
6. **Need UE5 Blueprint patterns?** See [`implementation-patterns.md`](implementation-patterns.md).
|
|
7. **Multiplayer networking?** See [`../architecture/multiplayer-networking.md`](../architecture/multiplayer-networking.md). Every doc has a Multiplayer Networking section.
|
|
|
|
## Relationship to Spec Files
|
|
|
|
| Aspect | Blueprint Spec (`docs/blueprints/`) | Developer Reference (`docs/developer/`) |
|
|
|--------|--------------------------------------|----------------------------------------|
|
|
| **Purpose** | Define what to build with node-by-node logic (v2.0) | Explain how it works (understanding) |
|
|
| **Audience** | Implementers building Blueprints manually | Anyone needing to understand internals |
|
|
| **Content** | Enums, structs, variables, functions, **Manual Implementation Guide** | Data flow, state machines, design rationale |
|
|
| **Format** | TEMPLATE.md v2.0 — includes Build Checklist | Per-category reference docs + project-setup-migration.md |
|
|
|
|
---
|
|
|
|
*Developer Reference Index v1.2 — Companion to the Blueprint Spec system. Update both together.*
|