Add developer documentation for systems 11-16, including architecture overview and implementation patterns
- Created detailed documentation for systems 102-135 covering achievements, settings, polish, data assets, input management, and state management. - Added INDEX.md for easy navigation of developer reference materials. - Introduced architecture-overview.md to provide a high-level understanding of the framework's structure and communication methods. - Compiled implementation-patterns.md to outline common UE5 Blueprint patterns for consistent development practices.
This commit is contained in:
111
docs/developer/11-16-systems.md
Normal file
111
docs/developer/11-16-systems.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# 11 — Achievements, Progression & Meta Systems (Systems 102-103)
|
||||
|
||||
**Category Purpose:** These 2 systems handle meta-progression — progress statistics tracking across sessions and the achievement/unlock system with platform integration.
|
||||
|
||||
| # | System | Asset Type | Role |
|
||||
|---|--------|-----------|------|
|
||||
| 102 | `BPC_ProgressStatTracker` | Component | Progress stats; total playtime, collectibles, achievements |
|
||||
| 103 | `SS_AchievementSystem` | Subsystem | Achievement subsystem; unlock, notify, platform integration |
|
||||
|
||||
**102 BPC_ProgressStatTracker:** Tracks cumulative stats across play sessions: total playtime, collectibles found, enemies killed, deaths, items crafted, documents read, endings seen. Persists via `I_Persistable` for long-term tracking.
|
||||
|
||||
**103 SS_AchievementSystem:** GameInstanceSubsystem that manages achievement unlocks. Listens to gameplay events (enemy killed, item found, chapter completed) and unlocks achievements when conditions met. Shows notification toast on unlock. Integrates with platform achievement APIs (Steam, PlayStation, Xbox).
|
||||
|
||||
---
|
||||
|
||||
# 12 — Settings, Accessibility & Platform Systems (Systems 104-105)
|
||||
|
||||
| # | System | Asset Type | Role |
|
||||
|---|--------|-----------|------|
|
||||
| 104 | `BPC_AccessibilitySettings` | Component | Accessibility; subtitles, colorblind, controller remap |
|
||||
| 105 | `SS_SettingsSystem` | Subsystem | Settings subsystem; persistent settings, apply, reset |
|
||||
|
||||
**104 BPC_AccessibilitySettings:** Manages accessibility features: subtitle toggle/size, colorblind mode selection (protanopia/deuteranopia/tritanopia), controller remapping, difficulty presets, hold-to-confirm toggle, camera shake reduction. Settings persisted via `SS_SettingsSystem`.
|
||||
|
||||
**105 SS_SettingsSystem:** GameInstanceSubsystem for all persistent settings. Loads defaults on init, saves on change, supports reset-to-default. Settings categories: Audio, Video, Controls, Gameplay, Accessibility. Coordinates with `SS_AudioManager` for volume, `SS_EnhancedInputManager` for key rebinding.
|
||||
|
||||
---
|
||||
|
||||
# 13 — Polish: Tutorial, Loading, Credits & Debug Systems (Systems 106-114)
|
||||
|
||||
| # | System | Asset Type | Role |
|
||||
|---|--------|-----------|------|
|
||||
| 106 | `BPC_AnalyticsTracker` | Component | Analytics; event tracking, session metrics, telemetry |
|
||||
| 107 | `BPC_DevCheatManager` | Component | Developer cheats; god mode, noclip, give item, teleport |
|
||||
| 108 | `BPC_ErrorHandler` | Component | Error handler; crash logging, error display, recovery |
|
||||
| 109 | `BPC_FPSCounter` | Component | FPS counter display; min/max/avg tracking |
|
||||
| 110 | `BPC_LoadingScreen` | Component | Loading screen; progress bar, tips, background |
|
||||
| 111 | `BPC_TutorialSystem` | Component | Tutorial system; contextual prompts, progression |
|
||||
| 112 | `WBP_CreditsScreen` | Widget | Credits screen; scroll, skip, post-credit scene trigger |
|
||||
| 113 | `WBP_DebugMenu` | Widget | Debug menu; state viewer, log, performance, cheats |
|
||||
| 114 | `WBP_SplashScreen` | Widget | Splash screen; studio logo, engine logo, skip |
|
||||
|
||||
**106 BPC_AnalyticsTracker:** Records gameplay events for telemetry: level starts/completes, deaths, item pickups, dialogue choices, playtime. Configurable event filtering. Stripped from shipping builds.
|
||||
|
||||
**107 BPC_DevCheatManager:** Developer tools: god mode, noclip, infinite ammo, give item by tag, teleport to cursor, toggle HUD, slow motion. Only available in development builds.
|
||||
|
||||
**108 BPC_ErrorHandler:** Global error handling: catches blueprint errors, logs to file, displays error toast (dev builds only). Graceful recovery from non-fatal errors.
|
||||
|
||||
**109 BPC_FPSCounter:** Simple FPS display overlay with min/max/avg tracking. Toggle via debug menu or console command.
|
||||
|
||||
**110 BPC_LoadingScreen:** Loading screen widget with progress bar, gameplay tips, background art. Manages level streaming progress display.
|
||||
|
||||
**111 BPC_TutorialSystem:** Context-sensitive tutorial prompts. Triggered by gameplay events (first combat, first hide, first puzzle). Tracks which tutorials the player has seen. Supports dismiss/snooze.
|
||||
|
||||
**112-114 Widgets:** Credits screen with scroll and post-credit scene trigger. Debug menu for development. Splash screen with studio/engine logos.
|
||||
|
||||
---
|
||||
|
||||
# 14 — Data Assets (Systems 115-127, 129, 134-135)
|
||||
|
||||
**Category Purpose:** These 16 systems define all Data Asset types used across the framework. Data Assets are the primary configuration mechanism — all content, rules, and settings live in these assets, never hardcoded in Blueprints.
|
||||
|
||||
| # | Data Asset | Configures |
|
||||
|---|-----------|-----------|
|
||||
| 115 | `DA_AdaptationRule` | Difficulty adaptation rules (metric thresholds, responses) |
|
||||
| 116 | `DA_AtmosphereProfile` | Atmosphere: audio ambience, lighting, fog, post-process per mood |
|
||||
| 117 | `DA_BehaviourVariant` | AI behavior variant: attack patterns, patrol style, aggression |
|
||||
| 118 | `DA_DataAssetArchitecture` | Overview document of all Data Asset types |
|
||||
| 119 | `DA_EncounterData` | Encounter definitions: enemy groups, spawn rules, difficulty tier |
|
||||
| 120 | `DA_EquipmentConfig` | Equipment/weapon stats: damage, fire rate, magazine, recoil |
|
||||
| 121 | `DA_HapticProfile` | Haptic/force feedback patterns for controller |
|
||||
| 122 | `DA_InteractionData` | Interaction definitions: prompt text, duration, icon, conditions |
|
||||
| 123 | `DA_ObjectiveData` | Objective/quest: description, prerequisites, rewards, branching |
|
||||
| 124 | `DA_PuzzleData` | Puzzle definitions: solution, steps, hints, rewards |
|
||||
| 125 | `DA_RareEvent` | Rare event: weight, conditions, effects, cooldown |
|
||||
| 126 | `DA_RoomMutation` | Room mutation: layout change, object swap, lighting change |
|
||||
| 127 | `DA_ScareEvent` | Scare event: type, anticipation duration, payoff, recovery |
|
||||
| 129 | `DA_InputMappingProfile` | Input mappings per platform (PC, Xbox, PS5) |
|
||||
| 134 | `DA_AudioSettings` | Audio bus configs, volume defaults, ducking, pool limits |
|
||||
| 135 | `DA_RoomAcousticPreset` | Room acoustics: 7 presets (Outdoor, SmallRoom, Cave, etc.) |
|
||||
|
||||
**Pattern:** All Data Assets derive from `UPrimaryDataAsset`. They are pure data containers — no runtime logic. Designers edit these in the Content Browser; systems read them at runtime. This is the "No Hardcoded Names" principle in practice.
|
||||
|
||||
---
|
||||
|
||||
# 15 — Enhanced Input System (System 128)
|
||||
|
||||
| # | System | Asset Type | Role |
|
||||
|---|--------|-----------|------|
|
||||
| 128 | `SS_EnhancedInputManager` | Subsystem | Input manager; context switching, rebinding, platform profiles |
|
||||
|
||||
**128 SS_EnhancedInputManager:** The sole authority for all input management. Handles Input Mapping Context push/pop with priority-based context switching. Coordinates input mode (game-only vs UI-only) with `SS_UIManager`. Manages key rebinding via `DA_InputMappingProfile`. Platform-specific bindings (PC keyboard/mouse, Xbox controller, PS5 controller). Gameplay systems query input state through this subsystem — never through raw Enhanced Input calls.
|
||||
|
||||
**Context Priority Ladder:** Default(0) < Hiding(5) < WristwatchUI(10) < Inspection(20) < UI(100). Higher priority contexts override lower ones — UI blocks gameplay input.
|
||||
|
||||
---
|
||||
|
||||
# 16 — State Management (Systems 130-131)
|
||||
|
||||
| # | System | Asset Type | Role |
|
||||
|---|--------|-----------|------|
|
||||
| 130 | `BPC_StateManager` | Component | Central state authority; action gating, overlay, vital signs |
|
||||
| 131 | `DA_StateGatingTable` | Data Asset | All state gating rules (37 action rules); designer-editable |
|
||||
|
||||
**130 BPC_StateManager:** The **single source of truth** for player capability. Manages 42 exclusive action states and 18 overlay states. All systems query `IsActionPermitted(Tag)` instead of checking each other's states directly. This is the central decoupling mechanism — the StateManager knows what's allowed; no individual system needs to know about others.
|
||||
|
||||
**131 DA_StateGatingTable:** A Data Asset containing all gating rules. Designers modify which actions are blocked during which states without touching Blueprints. For example: "Reloading blocks Sprint" or "Hiding blocks Interaction."
|
||||
|
||||
---
|
||||
|
||||
*Developer Reference v1.0 — Categories 11-16 Systems. Companion to docs/blueprints/ specs.*
|
||||
Reference in New Issue
Block a user