Files
UE5-Modular-Game-Framework/docs/checklists/cpp-blueprint-status.md
Lefteris Notas 0a2d08b2ad Add Planar Capture System implementation checklist and developer reference
- Created a comprehensive implementation checklist for the Planar Capture System (Systems 136-147) detailing tasks across multiple phases including C++ core, material foundation, Blueprint actors, data assets, integration, and performance testing.
- Added a developer reference document outlining the architecture, data flow, state machine, budget enforcement, render target pooling, horror features, integration points, multiplayer networking, performance characteristics, debugging methods, and build order for the capture systems.
- Introduced examples of capture surface usage in the Project Void horror game, including specific implementations for mirrors, monitors, portals, and fake windows, along with a checklist for integration tasks.
2026-05-22 15:36:08 +03:00

21 KiB

C++ & Blueprint Status Checklist — All 147 Systems

Version: 2.1 | Generated: 2026-05-22 | C++ Files: 27 .h + 27 .cpp (15 full implementations + 10 stubs)

Complete status grid for every system in the UE5 Modular Game Framework. Use this to track: which systems have C++ code written, which Blueprint specs are complete, and what Blueprint assets remain to create.

Companion docs:


Legend

Symbol Meaning
Done — Full C++ implementation with logic + BP spec complete
🟡 C++ Stub — C++ header exists (UCLASS, basic vars, delegates). Blueprint child provides the full runtime implementation.
🔵 BP Spec Only — Full Blueprint spec exists, no C++ written. Full BP implementation required.
Content Asset — Create Data Asset/Table instances (not code)
Not Started — Spec exists but asset not created

Abbreviations:

  • C++ H/CPP = C++ header and source files exist in Source/PG_Framework/
  • BP Spec = Blueprint specification file exists in docs/blueprints/
  • BP Asset = Blueprint asset to create in UE5 Content Browser
  • MI Guide = Manual Implementation Guide (node-by-node) in spec file

Phase 0: Foundation (01-core — 7 systems)

# System C++ H/CPP BP Spec BP Asset to Create Status
01 DA_GameTagRegistry Core/DA_GameTagRegistry 01_DA_GameTagRegistry.md Data Asset instance: DA_GameTagRegistry (assign TagDataTables)
02 FL_GameUtilities Core/FL_GameUtilities 02_FL_GameUtilities.md None (static library)
03 I_InterfaceLibrary Core/I_InterfaceLibrary.h 03_I_InterfaceLibrary.md None (implement on actors)
04 GI_GameFramework Core/GI_GameFramework 04_GI_GameFramework.md BP_GameFramework (GameInstance child)
05 GM_CoreGameMode Core/GM_CoreGameMode 05_GM_CoreGameMode.md BP_CoreGameMode (GameMode child)
06 GS_CoreGameState Core/GS_CoreGameState 06_GS_CoreGameState.md BP_CoreGameState (GameState child)
07 DA_ItemData Inventory/DA_ItemData 07_DA_ItemData.md Data Asset instances: DA_Item_* per item
GI_StarterGameInstance 🔵 (superseded by 04) GI_StarterGameInstance.md BP_StarterGameInstance (or skip, use 04) 🟡

Data Tables (01-core root)

Asset Status
DT_Tags_Player.csv Create Data Table, import CSV
DT_Tags_Interaction.csv Create Data Table, import CSV
DT_Tags_Item.csv Create Data Table, import CSV
DT_Tags_Narrative.csv Create Data Table, import CSV
DT_Tags_AI.csv Create Data Table, import CSV
DT_Tags_Save.csv Create Data Table, import CSV
DT_Tags_Environment.csv Create Data Table, import CSV
DT_Tags_Combat.csv Create Data Table, import CSV
DT_Tags_State.csv Create Data Table, import CSV
DT_Tags_Audio.csv Create Data Table, import CSV
DT_Tags_Achievement.csv Create Data Table, import CSV

Phase 1: Player Core (02-player — 8 systems)

# System C++ H/CPP BP Spec BP Asset to Create Status
08 BPC_HealthSystem 🟡 Stub: vars + delegates 08_BPC_HealthSystem.md BP child → implement health logic (take/heal damage, death, I_Damageable) → attach to pawn 🟡
09 BPC_StaminaSystem 🟡 Stub: vars + delegates 09_BPC_StaminaSystem.md BP child → implement stamina logic (drain, regen, exhaustion states) → attach to pawn 🟡
10 BPC_StressSystem 🟡 Stub: enum + vars + delegates 10_BPC_StressSystem.md BP child → implement stress logic (accumulation, decay, tier transitions) → attach to pawn 🟡
11 BPC_MovementStateSystem 🟡 Stub: vars + delegates 11_BPC_MovementStateSystem.md BP child → implement movement logic (CMC reads, GASP bridge, posture detection) → attach to pawn 🟡
12 BPC_HidingSystem 🔵 BP-only 12_BPC_HidingSystem.md BP child → attach to pawn 🔵
13 BPC_EmbodimentSystem 🔵 BP-only 13_BPC_EmbodimentSystem.md BP child → attach to pawn 🔵
14 BPC_CameraStateLayer 🔵 BP-only 14_BPC_CameraStateLayer.md BP child → attach to pawn 🔵
15 BPC_PlayerMetricsTracker 🔵 BP-only 15_BPC_PlayerMetricsTracker.md BP child → attach to pawn 🔵
PC_CoreController 🟡 Stub: minimal empty class (covered in 02-player integration) BP child PC_CoreController → add input routing, BeginPlay push IMC 🟡
PS_CorePlayerState 🟡 Stub: minimal empty class (covered in 02-player integration) BP child PS_CorePlayerState → add replicated state variables 🟡

Phase 2-14: All Remaining Systems

Interaction (03-interaction — 8 systems)

# System C++ BP Spec BP Asset
16 BPC_InteractionDetector 🔵 BP child
17 I_HidingSpot 🔵 Implement on BP actors
18 BPC_DiegeticDisplay 🔵 BP child
19 BP_DoorActor 🔵 BP actor child
20 BP_PuzzleDeviceActor 🔵 BP actor child
21 BPC_ContextualTraversalSystem 🔵 BP child
22 BPC_PhysicsDragSystem 🔵 BP child
23 BPC_UsableWorldObjectSystem 🔵 BP child

Inventory (04-inventory — 11 systems)

# System C++ BP Spec BP Asset
24 BPC_ContainerInventory 🔵 BP child
25 BP_ItemPickup 🔵 BP actor child
26 BPC_ActiveItemSystem 🔵 BP child
27 BPC_CollectibleTracker 🔵 BP child
28 BPC_ConsumableSystem 🔵 BP child
29 BPC_DocumentArchiveSystem 🔵 BP child
30 BPC_EquipmentSlotSystem 🔵 BP child
31 BPC_InventorySystem Inventory/BPC_InventorySystem None (use C++ component directly)
32 BPC_ItemCombineSystem 🔵 BP child
33 BPC_JournalSystem 🔵 BP child
34 BPC_KeyItemSystem 🔵 BP child

Save/Load (05-saveload — 9 systems)

# System C++ BP Spec BP Asset
35 SS_SaveManager Save/SS_SaveManager None (auto-created subsystem)
36 I_Persistable Core/I_InterfaceLibrary.h Implement on actors
37 BP_Checkpoint 🔵 BP actor child
38 BPC_AltDeathSpaceSystem 🔵 BP child
39 BPC_DeathHandlingSystem 🔵 BP child
40 BPC_PersistentCorpseSystem 🔵 BP child
41 BPC_PersistentWorldStateRecorder 🔵 BP child
42 BPC_PlayerRespawnSystem 🔵 BP child
43 BPC_RunHistoryTracker 🔵 BP child

UI (06-ui — 14 systems)

# System C++ BP Spec BP Asset
44 SS_UIManager 🔵 BP child (auto-created subsystem)
45 WBP_AccessibilityUI 🔵 Widget BP
46 WBP_DiegeticHUDFrame 🔵 Widget BP
47 WBP_HUDController 🔵 Widget BP
48 WBP_InteractionPromptDisplay 🔵 Widget BP
49 WBP_InventoryMenu 🔵 Widget BP
50 WBP_JournalDocumentViewer 🔵 Widget BP
51 WBP_MainMenu 🔵 Widget BP
52 WBP_MenuFlowController 🔵 Widget BP
53 WBP_NotificationToast 🔵 Widget BP
54 WBP_ObjectiveDisplay 🔵 Widget BP
55 WBP_PauseMenu 🔵 Widget BP
56 WBP_ScreenEffectController 🔵 Widget BP
57 WBP_SettingsMenu 🔵 Widget BP

Narrative (07-narrative — 11 systems)

# System C++ BP Spec BP Asset
58-68 All 11 systems 🔵 BP children + DA instances

Weapons (08-weapons — 11 systems)

# System C++ BP Spec BP Asset
69 BP_WeaponBase 🔵 BP actor child
70 BPC_AmmoComponent 🔵 BP child
71 BPC_CombatFeedbackComponent 🔵 BP child
72 BPC_DamageReceptionSystem Full — Weapons/BPC_DamageReceptionSystem None (attach C++ component directly)
73 BPC_DeathCauseTracker 🔵 BP child
74 BPC_FirearmSystem 🔵 BP child
75 BPC_HitReactionSystem 🟡 Stub: PlayHitReaction() + thresholds BP child → add animation selection/trigger logic → attach to pawn/enemy
76 BPC_MeleeSystem 🔵 BP child
77 BPC_RecoilSystem 🔵 BP child
78 BPC_ReloadSystem 🔵 BP child
79 BPC_ShieldDefenseSystem 🟡 Stub: shield health + block angle vars BP child → add raise/lower/block detection → attach to pawn

AI (09-ai — 9 systems)

# System C++ BP Spec BP Asset
80-88 All 9 systems 🔵 BP children

Adaptive (10-adaptive — 15 systems)

# System C++ BP Spec BP Asset
89-101 All 13 core 🔵 BP children
132 SS_AudioManager 🔵 BP child (auto-created subsystem)
133 BP_RoomAudioZone 🔵 BP actor child

Meta, Settings, Polish (11-13 — 13 systems)

# System C++ BP Spec BP Asset
102-114 All 13 systems 🔵 BP children + widget BPs

Data Assets (14-data-assets — 16 systems)

# System C++ BP Spec BP Asset
115 DA_AdaptationRule 🔵 Data Asset instances
116 DA_AtmosphereProfile 🔵 Data Asset instances
117 DA_BehaviourVariant 🔵 Data Asset instances
118 DA_DataAssetArchitecture 🔵 Reference doc only
119 DA_EncounterData 🔵 Data Asset instances
120 DA_EquipmentConfig 🟡 Stub: damage resist struct + GetResistance() Data Asset instances per equipment piece
121 DA_HapticProfile 🔵 Data Asset instances
122 DA_InteractionData 🔵 Data Asset instances
123 DA_ObjectiveData 🔵 Data Asset instances
124 DA_PuzzleData 🔵 Data Asset instances
125 DA_RareEvent 🔵 Data Asset instances
126 DA_RoomMutation 🔵 Data Asset instances
127 DA_ScareEvent 🔵 Data Asset instances
129 DA_InputMappingProfile 🔵 Data Asset instances (per platform: PC/Xbox/PS5)
134 DA_AudioSettings 🔵 Data Asset instance (1 global)
135 DA_RoomAcousticPreset 🔵 Data Asset instances (per zone)

Input + State (15-16 — 3 systems)

# System C++ BP Spec BP Asset
128 SS_EnhancedInputManager Full — Input/SS_EnhancedInputManager None (auto-created subsystem)
130 BPC_StateManager Full — Player/BPC_StateManager None (attach C++ component directly to pawn)
131 DA_StateGatingTable 🟡 Stub: FStateGatingRule struct + IsActionGated() query Data Asset instance (37 gating rules)

Phase 17: Planar Capture System (17-capture — 12 systems)

Capture Components & Actors (17-capture)

# System C++ BP Spec BP Asset
136 BPC_PlanarCapture Full — Capture/BPC_PlanarCapture None (use C++ component directly)
137 BP_PlanarCaptureActor Full — Capture/BP_PlanarCaptureActor BP children (139-143 extend this)
138 SS_PlanarCaptureManager Full — Capture/SS_PlanarCaptureManager None (auto-created WorldSubsystem)
139 BP_Mirror 🔵 BP-only BP actor child of BP_PlanarCaptureActor
140 BP_Portal 🔵 BP-only BP actor child of BP_PlanarCaptureActor
141 BP_Monitor 🔵 BP-only BP actor child of BP_PlanarCaptureActor
142 BP_HorrorMirror 🔵 BP-only (extends BP_Mirror) BP actor child of BP_Mirror
143 BP_FakeWindow 🔵 BP-only BP actor child of BP_PlanarCaptureActor
144 M_CaptureSurface_Master Content Asset Create Material in editor
145 MPC_CaptureSurface Content Asset Create MPC in editor
146 DA_PlanarCaptureProfile 🔵 BP-only Data Asset instances
147 MI_MirrorInstances Content Asset 7 Material Instance Constants

Quick Action List — What to Build Next

Immediate (Phase 0 — Foundation)

  • Create 11 Data Tables from CSV, import, register in Project Settings
  • Create DA_GameTagRegistry Data Asset, assign TagDataTables array (11 entries)
  • Create BP_GameFramework (child of GI_GameFramework), assign TagRegistry
  • Create BP_CoreGameMode (child of GM_CoreGameMode), set classes in defaults
  • Create BP_CoreGameState (child of GS_CoreGameState)
  • Create PC_CoreController + PS_CorePlayerState BP children (C++ stub parents)
  • Create 22 IA_* Input Actions + 5 IMC_* Input Mapping Contexts
  • Create DA_InputMappingProfile instances (PC/Xbox/PS5)

Player Pawn Setup

  • Create player pawn BP (Character parent) with basic movement
  • Add BPC_StateManager component → assign DA_StateGatingTable
  • Add BPC_HealthSystem (C++ stub) → implement health logic in BP child
  • Add BPC_StaminaSystem (C++ stub) → implement stamina logic
  • Add BPC_StressSystem (C++ stub) → implement stress logic
  • Add BPC_MovementStateSystem (C++ stub) → implement movement bridge
  • Add BPC_InventorySystem (C++ full) → set grid size + max weight
  • Add BPC_DamageReceptionSystem (C++ full) → set thresholds
  • Add BPC_ShieldDefenseSystem (C++ stub) → implement shield logic
  • Add BPC_HitReactionSystem (C++ stub) → implement hit reaction animations
  • Add remaining 55 BPC_* BP children as needed (see build order doc)

State Management

  • Create E_PlayerActionState enum (42 values) in editor
  • Create E_OverlayState enum (18 values) in editor
  • Create E_ActionRequestResult enum (8 values) in editor
  • Create E_PlayerVitalSignals enum (5 values) in editor
  • Create S_StateChangeRequest, S_StateGatingRule, S_ActionPermissionResult structs
  • Create DA_StateGatingTable instance → populate 37 gating rules

Data Asset Content

  • Create DA_Item_* instances for test items (medkit, key, etc.)
  • Create DA_Equipment_* instances for armor/weapons
  • Create DA_AudioSettings, DA_RoomAcousticPreset instances
  • Create remaining DA_* instances per project content

Prototype Testing


C++ Source File Index

Full Implementations (15 systems — logic complete, no BP child needed for functionality)

# C++ Class Header Source Size
01 UDA_GameTagRegistry Public/Core/DA_GameTagRegistry.h Private/Core/DA_GameTagRegistry.cpp 105 + cpp
02 UFL_GameUtilities Public/Core/FL_GameUtilities.h Private/Core/FL_GameUtilities.cpp 169 + cpp
03 9 I_ Interfaces Public/Core/I_InterfaceLibrary.h 317 (header-only)
04 UGI_GameFramework Public/Core/GI_GameFramework.h Private/Core/GI_GameFramework.cpp 226 + cpp
05 AGM_CoreGameMode Public/Core/GM_CoreGameMode.h Private/Core/GM_CoreGameMode.cpp 116 + cpp
06 AGS_CoreGameState Public/Core/GS_CoreGameState.h Private/Core/GS_CoreGameState.cpp 144 + cpp
07 UDA_ItemData Public/Inventory/DA_ItemData.h Private/Inventory/DA_ItemData.cpp 232 + cpp
31 UBPC_InventorySystem Public/Inventory/BPC_InventorySystem.h Private/Inventory/BPC_InventorySystem.cpp 210 + cpp
35 USS_SaveManager Public/Save/SS_SaveManager.h Private/Save/SS_SaveManager.cpp 193 + cpp
72 UBPC_DamageReceptionSystem Public/Weapons/BPC_DamageReceptionSystem.h Private/Weapons/BPC_DamageReceptionSystem.cpp 150 + cpp
128 USS_EnhancedInputManager Public/Input/SS_EnhancedInputManager.h Private/Input/SS_EnhancedInputManager.cpp 232 + cpp
130 UBPC_StateManager Public/Player/BPC_StateManager.h Private/Player/BPC_StateManager.cpp 246 + cpp
136 UBPC_PlanarCapture Public/Capture/BPC_PlanarCapture.h Private/Capture/BPC_PlanarCapture.cpp 360 + cpp
137 ABP_PlanarCaptureActor Public/Capture/BP_PlanarCaptureActor.h Private/Capture/BP_PlanarCaptureActor.cpp 250 + cpp
138 ASS_PlanarCaptureManager Public/Capture/SS_PlanarCaptureManager.h Private/Capture/SS_PlanarCaptureManager.cpp 330 + cpp

C++ Stubs (10 systems — UCLASS + basic vars/delegates, need BP child for logic)

# C++ Class Header Source Purpose
08 UBPC_HealthSystem Public/Player/BPC_HealthSystem.h Private/Player/BPC_HealthSystem.cpp Health vars + delegates
09 UBPC_StaminaSystem Public/Player/BPC_StaminaSystem.h Private/Player/BPC_StaminaSystem.cpp Stamina vars + delegate
10 UBPC_StressSystem Public/Player/BPC_StressSystem.h Private/Player/BPC_StressSystem.cpp Stress enum + vars + delegate
11 UBPC_MovementStateSystem Public/Player/BPC_MovementStateSystem.h Private/Player/BPC_MovementStateSystem.cpp Movement vars + delegate
APC_CoreController Public/Player/PC_CoreController.h Private/Player/PC_CoreController.cpp Minimal controller stub
APS_CorePlayerState Public/Player/PS_CorePlayerState.h Private/Player/PS_CorePlayerState.cpp Minimal player state stub
75 UBPC_HitReactionSystem Public/Weapons/BPC_HitReactionSystem.h Private/Weapons/BPC_HitReactionSystem.cpp Hit reaction stub
79 UBPC_ShieldDefenseSystem Public/Weapons/BPC_ShieldDefenseSystem.h Private/Weapons/BPC_ShieldDefenseSystem.cpp Shield defense stub
120 UDA_EquipmentConfig Public/Inventory/DA_EquipmentConfig.h Private/Inventory/DA_EquipmentConfig.cpp Equipment config stub
131 UDA_StateGatingTable Public/State/DA_StateGatingTable.h Private/State/DA_StateGatingTable.cpp Gating table stub

Planar Capture Systems (3 full C++ implementations)

# C++ Class Header Source Purpose
136 UBPC_PlanarCapture Public/Capture/BPC_PlanarCapture.h Private/Capture/BPC_PlanarCapture.cpp SceneCapture2D lifecycle, camera math, horror features
137 ABP_PlanarCaptureActor Public/Capture/BP_PlanarCaptureActor.h Private/Capture/BP_PlanarCaptureActor.cpp Placeable surface actor with mesh, MDI, proximity trigger
138 ASS_PlanarCaptureManager Public/Capture/SS_PlanarCaptureManager.h Private/Capture/SS_PlanarCaptureManager.cpp Global budget manager, RT pool, surface scoring

Capture Utility (Static Library)

# C++ Class Header Source Purpose
UPlanarCaptureCameraUtils Public/Capture/PlanarCaptureCameraUtils.h Private/Capture/PlanarCaptureCameraUtils.cpp Mirror/portal/oblique projection math

Capture Common (Shared Types)

# C++ Class Header Source Purpose
PlanarCaptureCommon.h Public/Capture/PlanarCaptureCommon.h Private/Capture/PlanarCaptureCommon.cpp Shared enums, structs, quality profiles

Status Checklist v2.1 — Updated 2026-05-22. See remaining-blueprint-build-order.md for the prioritized build list.