- 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.
742 lines
45 KiB
Markdown
742 lines
45 KiB
Markdown
# GAMEINDEX — Project Void: Psychological Horror FPS Prototype
|
||
|
||
**Version:** 1.0 | **Generated:** 2026-05-21 | **Target UE:** 5.5–5.7
|
||
**Framework:** UE5 Modular Game Framework (135 systems)
|
||
**Game:** Project Void — Abandoned Asylum Psychological Horror
|
||
|
||
---
|
||
|
||
## Purpose
|
||
|
||
This document is the master index for the **"Project Void"** example game prototype. It defines:
|
||
1. The complete `Content/Game/` folder structure — every asset to create
|
||
2. Which framework system each game asset demonstrates
|
||
3. The full scene loading flow from boot to credits
|
||
4. Expansion notes for extending the prototype into a full game
|
||
|
||
**Rule:** All game content lives in `Content/Game/`. Never modify `Content/Framework/`. Game assets reference framework systems via interfaces, dispatchers, and Data Asset children.
|
||
|
||
---
|
||
|
||
## Game Concept — "Project Void"
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ PROJECT VOID — Psychological Horror FPS │
|
||
│ │
|
||
│ Setting: Abandoned Blackwood Asylum, 1920s │
|
||
│ Player: Dr. Eliza Vance — investigative journalist │
|
||
│ Premise: You wake inside the asylum with no memory │
|
||
│ of how you arrived. The building shifts │
|
||
│ around you. Patients roam the halls. │
|
||
│ Something older than the asylum │
|
||
│ watches from the void between rooms. │
|
||
│ │
|
||
│ Tone: Silent Hill meets Amnesia meets Outlast │
|
||
│ Core Loop: Explore → Find clues → Solve puzzles → │
|
||
│ Evade threats → Piece together memory → │
|
||
│ Unlock new areas → Reality shifts │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Folder Structure
|
||
|
||
```
|
||
Content/Game/ ← ALL game content (NEVER modify Framework/)
|
||
│
|
||
├── GAMEINDEX.uasset ← (optional) Empty Data Asset — marker file
|
||
│
|
||
├── Core/ ← Core game classes (child of Framework classes)
|
||
│ ├── GI_HorrorGame.uasset ← Child of GI_GameFramework
|
||
│ ├── GM_HorrorGameMode.uasset ← Child of GM_CoreGameMode
|
||
│ ├── PC_HorrorController.uasset ← Child of PC_CoreController (or PlayerController)
|
||
│ ├── PS_HorrorPlayerState.uasset ← Child of PS_CorePlayerState
|
||
│ ├── GS_HorrorGameState.uasset ← Child of GS_CoreGameState
|
||
│ └── FL_HorrorUtilities.uasset ← Child of FL_GameUtilities (game-specific utils)
|
||
│
|
||
├── Characters/ ← Player & NPC Blueprints
|
||
│ ├── BP_HorrorPlayerCharacter.uasset ← GASP-based player pawn (all BPC_ components)
|
||
│ ├── BP_Enemy_Patient.uasset ← Melee-chase enemy (slow, persistent)
|
||
│ ├── BP_Enemy_Shade.uasset ← Teleporting horror (rare, terrifying)
|
||
│ ├── BP_Enemy_Orderly.uasset ← Fast, flashlight-vulnerable enemy
|
||
│ └── BP_NPC_Survivor.uasset ← Friendly NPC for dialogue/objectives
|
||
│
|
||
├── Items/ ← DA_ItemData children — all game items
|
||
│ ├── DA_Item_Flashlight.uasset ← Tool — toggleable light (see item-flashlight.md)
|
||
│ ├── DA_Item_Pistol.uasset ← Weapon — 9mm (see item-pistol.md)
|
||
│ ├── DA_Item_MedKit.uasset ← Consumable — health restore (see item-medkit.md)
|
||
│ ├── DA_Item_Keycard_Omega.uasset ← KeyItem — progression gate (see item-keycard.md)
|
||
│ │
|
||
│ ├── DA_Item_Ammo_9mm.uasset ← Ammo — pistol rounds
|
||
│ ├── DA_Item_Shotgun.uasset ← Weapon — double barrel
|
||
│ ├── DA_Item_Ammo_Shells.uasset ← Ammo — shotgun shells
|
||
│ ├── DA_Item_Battery.uasset ← Consumable — flashlight power
|
||
│ ├── DA_Item_AdrenalineSyringe.uasset ← Consumable — temporary stamina boost
|
||
│ ├── DA_Item_SanityPill.uasset ← Consumable — stress reduction
|
||
│ ├── DA_Item_Crowbar.uasset ← Tool — pry doors, melee weapon
|
||
│ ├── DA_Item_Keycard_Alpha.uasset ← KeyItem — east wing access
|
||
│ ├── DA_Item_Keycard_Beta.uasset ← KeyItem — basement access
|
||
│ ├── DA_Item_Key_Wardens.uasset ← KeyItem — warden's office
|
||
│ ├── DA_Item_JournalPage.uasset ← Document — lore collectible
|
||
│ ├── DA_Item_PatientFile.uasset ← Document — story collectible
|
||
│ ├── DA_Item_OldPhoto.uasset ← Collectible — memory fragment
|
||
│ └── DA_Item_VoidShard.uasset ← Collectible — rare, ending-related
|
||
│
|
||
├── Pickups/ ← BP_Pickup_* children — world pickup actors
|
||
│ ├── BP_Pickup_Flashlight.uasset
|
||
│ ├── BP_Pickup_Pistol.uasset
|
||
│ ├── BP_Pickup_MedKit.uasset
|
||
│ ├── BP_Pickup_KeycardOmega.uasset
|
||
│ ├── BP_Pickup_Ammo_9mm.uasset
|
||
│ ├── BP_Pickup_Shotgun.uasset
|
||
│ ├── BP_Pickup_Ammo_Shells.uasset
|
||
│ ├── BP_Pickup_Battery.uasset
|
||
│ ├── BP_Pickup_AdrenalineSyringe.uasset
|
||
│ ├── BP_Pickup_SanityPill.uasset
|
||
│ ├── BP_Pickup_Crowbar.uasset
|
||
│ ├── BP_Pickup_KeycardAlpha.uasset
|
||
│ ├── BP_Pickup_KeycardBeta.uasset
|
||
│ ├── BP_Pickup_KeyWardens.uasset
|
||
│ ├── BP_Pickup_JournalPage.uasset
|
||
│ ├── BP_Pickup_PatientFile.uasset
|
||
│ ├── BP_Pickup_OldPhoto.uasset
|
||
│ └── BP_Pickup_VoidShard.uasset
|
||
│
|
||
├── Actors/ ← World interaction actors
|
||
│ ├── BP_Door_Asylum.uasset ← Standard door (open/close/lock)
|
||
│ ├── BP_Door_OmegaWing.uasset ← Keycard-locked door
|
||
│ ├── BP_Door_Barricaded.uasset ← Crowbar-required door
|
||
│ ├── BP_Door_Void.uasset ← Reality-shifting door (adaptive env)
|
||
│ ├── BP_Chest_Supply.uasset ← Container inventory (lootable)
|
||
│ ├── BP_Desk_Drawer.uasset ← Container inventory (small)
|
||
│ ├── BP_FilingCabinet.uasset ← Container inventory (documents)
|
||
│ ├── BP_Puzzle_Fusebox.uasset ← Puzzle device (restore power)
|
||
│ ├── BP_Puzzle_PipeOrgan.uasset ← Puzzle device (play melody)
|
||
│ ├── BP_Puzzle_MorgueDrawers.uasset ← Puzzle device (find body)
|
||
│ ├── BP_HidingSpot_Locker.uasset ← Hiding spot
|
||
│ ├── BP_HidingSpot_UnderBed.uasset ← Hiding spot
|
||
│ ├── BP_HidingSpot_Wardrobe.uasset ← Hiding spot
|
||
│ ├── BP_Checkpoint_SafeRoom.uasset ← Checkpoint actor
|
||
│ ├── BP_Checkpoint_Mirror.uasset ← Checkpoint actor (thematic)
|
||
│ ├── BP_Usable_Lever.uasset ← Usable world object
|
||
│ ├── BP_Usable_Valve.uasset ← Usable world object
|
||
│ ├── BP_Usable_Button.uasset ← Usable world object
|
||
│ └── BP_DiegeticScreen_Monitor.uasset ← Diegetic display (security monitor)
|
||
│
|
||
├── Weapons/ ← Held weapon actors
|
||
│ ├── BP_Pistol_Held.uasset ← Equipped pistol (I_UsableItem, I_Toggleable)
|
||
│ ├── BP_Flashlight_Held.uasset ← Equipped flashlight (I_UsableItem, I_Toggleable)
|
||
│ ├── BP_Shotgun_Held.uasset ← Equipped shotgun
|
||
│ └── BP_Crowbar_Held.uasset ← Equipped crowbar (tool + melee)
|
||
│
|
||
├── UI/ ← Game-specific UI widgets
|
||
│ ├── WBP_GameHUDController.uasset ← Child of WBP_HUDController (game-specific layout)
|
||
│ ├── WBP_GameMainMenu.uasset ← Child of WBP_MainMenu (game title/branding)
|
||
│ ├── WBP_GamePauseMenu.uasset ← Child of WBP_PauseMenu
|
||
│ ├── WBP_GameInventoryMenu.uasset ← Child of WBP_InventoryMenu
|
||
│ ├── WBP_SplashHorror.uasset ← Child of WBP_SplashScreen
|
||
│ ├── WBP_JournalHorror.uasset ← Child of WBP_JournalDocumentViewer
|
||
│ ├── WBP_DeathScreen.uasset ← Custom death/void space screen
|
||
│ └── WBP_LoadingHorror.uasset ← Child of WBP_LoadingScreen (tips, atmosphere)
|
||
│
|
||
├── DataAssets/ ← DA_* content instances
|
||
│ ├── DA_InputMapping_Horror_PC.uasset ← Input mapping profile for horror game
|
||
│ ├── DA_InputMapping_Horror_Xbox.uasset ← Console profile
|
||
│ ├── DA_Encounter_WardA_Patrol.uasset ← Encounter data
|
||
│ ├── DA_Encounter_ShadeAmbush.uasset ← Encounter data
|
||
│ ├── DA_Atmosphere_WardA_Standard.uasset← Atmosphere profile per area
|
||
│ ├── DA_Atmosphere_Basement_Dark.uasset
|
||
│ ├── DA_Atmosphere_VoidSpace.uasset
|
||
│ ├── DA_Scare_LockerJumpscare.uasset ← Scare event data
|
||
│ ├── DA_Scare_MirrorApparition.uasset
|
||
│ ├── DA_Scare_WindowFace.uasset
|
||
│ ├── DA_Scare_VoidWhisper.uasset
|
||
│ ├── DA_Puzzle_FuseboxData.uasset ← Puzzle data
|
||
│ ├── DA_Puzzle_PipeOrganData.uasset
|
||
│ ├── DA_Puzzle_MorgueDrawersData.uasset
|
||
│ ├── DA_Objective_FindKeys.uasset ← Objective data
|
||
│ ├── DA_Objective_RestorePower.uasset
|
||
│ ├── DA_Objective_EscapeAsylum.uasset
|
||
│ ├── DA_AdaptationRule_Horror.uasset ← Difficulty adaptation rules
|
||
│ ├── DA_BehaviourVariant_Patient.uasset ← AI behavior variants
|
||
│ ├── DA_BehaviourVariant_Shade.uasset
|
||
│ ├── DA_BehaviourVariant_Orderly.uasset
|
||
│ ├── DA_RoomAcoustic_WardA.uasset ← Room acoustic presets
|
||
│ ├── DA_RoomAcoustic_Basement.uasset
|
||
│ └── DA_RoomAcoustic_Void.uasset
|
||
│
|
||
├── AI/ ← AI controllers, behavior trees, blackboards
|
||
│ ├── AI_PatientController.uasset ← AI controller for Patient enemy
|
||
│ ├── AI_ShadeController.uasset ← AI controller for Shade enemy
|
||
│ ├── AI_OrderlyController.uasset ← AI controller for Orderly enemy
|
||
│ ├── BT_PatientBehavior.uasset ← Behavior tree
|
||
│ ├── BT_ShadeBehavior.uasset
|
||
│ ├── BT_OrderlyBehavior.uasset
|
||
│ ├── BB_PatientData.uasset ← Blackboard data
|
||
│ ├── BB_ShadeData.uasset
|
||
│ ├── BB_OrderlyData.uasset
|
||
│ └── BP_PatrolPath_Asylum.uasset ← Patrol paths per area
|
||
│
|
||
├── Narrative/ ← Narrative data + trigger volumes
|
||
│ ├── DA_Dialogue_Intro.uasset ← Dialogue data
|
||
│ ├── DA_Dialogue_SurvivorEncounter.uasset
|
||
│ ├── DA_Dialogue_EndingTruth.uasset
|
||
│ ├── DA_Cutscene_Opening.uasset ← Cutscene data
|
||
│ ├── DA_Cutscene_Ending.uasset
|
||
│ ├── BP_NarrativeTrigger_Intro.uasset ← Trigger volumes
|
||
│ ├── BP_NarrativeTrigger_VoidFirst.uasset
|
||
│ ├── BP_NarrativeTrigger_Ending.uasset
|
||
│ └── DA_LoreEntry_*.uasset ← Lore/data entries
|
||
│
|
||
├── Encounters/ ← Procedural encounter spawners
|
||
│ ├── BP_EncounterSpawner_WardA.uasset
|
||
│ ├── BP_EncounterSpawner_Basement.uasset
|
||
│ └── BP_EncounterSpawner_Void.uasset
|
||
│
|
||
├── Atmosphere/ ← Atmosphere + scare event actors
|
||
│ ├── BP_LightEvent_Flicker.uasset
|
||
│ ├── BP_ScareEvent_LockerBang.uasset
|
||
│ ├── BP_ScareEvent_Mirror.uasset
|
||
│ ├── BP_HorrorMirror_Morgue.uasset ← Horror mirror (wrong reflection scare)
|
||
│ ├── BP_Mirror_NurseStation.uasset ← Standard mirror (checkpoint reflection)
|
||
│ └── BP_AtmosphereController_WardA.uasset
|
||
│
|
||
├── Capture/ ← Planar Capture surface actors
|
||
│ ├── BP_Mirror_NurseStation.uasset ← Standard mirror: Mode=Mirror, aged, checkpoint
|
||
│ ├── BP_HorrorMirror_Morgue.uasset ← Horror mirror: wrong reflection, steam scare
|
||
│ ├── BP_HorrorMirror_WardensOffice.uasset ← Horror mirror: final entity confrontation
|
||
│ ├── BP_Monitor_Security.uasset ← Security monitor: hallway camera feed, scanlines
|
||
│ ├── BP_Monitor_Morgue.uasset ← Morgue monitor: static noise, flicker, Shade cameo
|
||
│ ├── BP_Portal_VoidEntrance.uasset ← Void portal entrance (Basement → VoidSpace)
|
||
│ ├── BP_Portal_VoidExit.uasset ← Void portal exit (VoidSpace → Basement)
|
||
│ ├── BP_FakeWindow_WardensOffice.uasset ← Atmospheric window: rain, night, parallax
|
||
│ └── DA_PlanarCaptureProfile_Mirror.uasset← Capture profile Data Assets
|
||
│
|
||
├── Audio/ ← Game-specific audio assets
|
||
│ ├── DA_AudioSettings_Horror.uasset ← Audio bus config
|
||
│ ├── BP_RoomAudioZone_WardA.uasset ← Room audio zone volumes
|
||
│ ├── BP_RoomAudioZone_Basement.uasset
|
||
│ └── BP_RoomAudioZone_Void.uasset
|
||
│
|
||
├── Save/ ← Save system instances
|
||
│ ├── BP_Checkpoint_WardAEntry.uasset ← Placed checkpoint actors
|
||
│ ├── BP_Checkpoint_BasementGate.uasset
|
||
│ └── BP_Checkpoint_VoidThreshold.uasset
|
||
│
|
||
├── Polish/ ← Tutorial, loading, credits
|
||
│ ├── BP_TutorialTrigger_Controls.uasset ← Tutorial prompt triggers
|
||
│ ├── BP_TutorialTrigger_Hiding.uasset
|
||
│ ├── BP_TutorialTrigger_Combat.uasset
|
||
│ └── BP_CreditsSequence.uasset ← Credits level/sequence
|
||
│
|
||
├── Input/ ← Game-specific input overrides (if any)
|
||
│ └── (Empty unless overriding framework IMC_/IA_ assets)
|
||
│
|
||
└── Maps/ ← ALL levels
|
||
├── L_SplashScreen.umap ← Disclaimer/splash → auto-advances
|
||
├── L_MainMenu.umap ← Title screen with 3D background
|
||
├── L_Asylum_Entry.umap ← Tutorial zone — waking up
|
||
├── L_Asylum_WardA.umap ← First major area
|
||
├── L_Asylum_WardB.umap ← Second area (keycard gate)
|
||
├── L_Asylum_Basement.umap ← Dark horror area
|
||
├── L_Asylum_VoidSpace.umap ← Reality-shifted zone
|
||
├── L_Asylum_WardensOffice.umap ← Climax area
|
||
├── L_Ending_Truth.umap ← Final ending sequence
|
||
├── L_Credits.umap ← Credits roll
|
||
└── L_Test_Sandbox.umap ← Developer testing sandbox
|
||
```
|
||
|
||
---
|
||
|
||
## Scene Loading Flow (Complete)
|
||
|
||
```
|
||
BOOT SEQUENCE
|
||
═══════════════════════════════════════════════════════════
|
||
|
||
[Engine Init]
|
||
│
|
||
└─ GI_GameFramework (Framework/Core/) — kernel boots
|
||
├─ Initialize all SS_ subsystems:
|
||
│ ├─ SS_SaveManager (35) — mount save directory
|
||
│ ├─ SS_SettingsSystem (105) — load persistent settings
|
||
│ ├─ SS_EnhancedInputManager (128) — load input profiles
|
||
│ ├─ SS_AudioManager (132) — init MetaSound buses
|
||
│ ├─ SS_AchievementSystem (103) — load achievement state
|
||
│ └─ SS_UIManager (44) — create menu widget cache
|
||
│
|
||
├─ DA_GameTagRegistry (01) — validate all tags
|
||
├─ Set Game Phase → Loading
|
||
└─ OpenLevel → L_SplashScreen
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_SplashScreen │ (5–8 seconds, skippable)
|
||
│ ├─ Studio logo (fade in/out) │
|
||
│ ├─ UE5 logo │
|
||
│ ├─ "Project Void" title card │
|
||
│ │ └─ Audio: MS_MusicBus plays │
|
||
│ │ menu_ambient_loop │
|
||
│ ├─ Health warning │
|
||
│ └─ Auto-advance or Skip → │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_MainMenu │
|
||
│ ├─ WBP_GameMainMenu displayed │
|
||
│ ├─ 3D background: asylum hallway │
|
||
│ ├─ Menu options: │
|
||
│ │ ├─ New Game → L_Asylum_Entry │
|
||
│ │ ├─ Continue → Load latest save │
|
||
│ │ ├─ Load Game → Save slot UI │
|
||
│ │ ├─ Settings → WBP_SettingsMenu │
|
||
│ │ ├─ Credits → L_Credits │
|
||
│ │ └─ Quit → Confirm → Quit │
|
||
│ └─ Audio: MS_MusicBus menu_theme │
|
||
└──────────────┬──────────────────────┘
|
||
│ New Game
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ LOADING SCREEN │
|
||
│ ├─ WBP_LoadingHorror displayed │
|
||
│ ├─ Progress bar + atmosphere tip │
|
||
│ ├─ SS_SaveManager.ResetGameState() │
|
||
│ ├─ GI_GameFramework.SetPhase │
|
||
│ │ (InGame) on level loaded │
|
||
│ └─ Audio: crossfade to game amb │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
GAMEPLAY LOOP
|
||
═══════════════════════════════════════════════════════════
|
||
|
||
┌─────────────────────────────────────┐
|
||
│ L_Asylum_Entry (Tutorial) │
|
||
│ ├─ Player wakes in padded cell │
|
||
│ ├─ Tutorial triggers: │
|
||
│ │ ├─ Move/Look (BP_Tutorial_*) │
|
||
│ │ ├─ Interact (pick up note) │
|
||
│ │ ├─ Crouch (vent) │
|
||
│ │ └─ Hide (first patient sight) │
|
||
│ ├─ First objective: "Find a way │
|
||
│ │ out of this wing" │
|
||
│ └─ Exit → L_Asylum_WardA │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_Asylum_WardA (Exploration) │
|
||
│ ├─ Find: Flashlight (dark hallway) │
|
||
│ ├─ Find: Pistol (security office) │
|
||
│ ├─ Puzzle: Restore fusebox power │
|
||
│ ├─ Encounter: Patient enemy │
|
||
│ ├─ Find: Keycard Alpha │
|
||
│ ├─ Atmosphere: Flickering lights, │
|
||
│ │ ambient whispers, room zones │
|
||
│ └─ Exit → L_Asylum_WardB │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_Asylum_WardB (Horror Ramp) │
|
||
│ ├─ Keycard-gated doors │
|
||
│ ├─ Find: Shotgun (morgue) │
|
||
│ ├─ Puzzle: Pipe organ melody │
|
||
│ ├─ Encounter: Orderly enemy │
|
||
│ ├─ First Void Space shift │
|
||
│ │ └─ Reality warps: walls bleed, │
|
||
│ │ corridors loop │
|
||
│ ├─ Find: Keycard Beta │
|
||
│ └─ Exit → L_Asylum_Basement │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_Asylum_Basement (Dark Horror) │
|
||
│ ├─ No lights — battery management │
|
||
│ ├─ Puzzle: Morgue drawer sequence │
|
||
│ ├─ Encounter: Shade enemy │
|
||
│ ├─ Stress system peaks — │
|
||
│ │ hallucinations trigger │
|
||
│ ├─ Find: Warden's Key │
|
||
│ └─ Exit → L_Asylum_WardensOffice │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_Asylum_VoidSpace (Climax) │
|
||
│ ├─ Reality fully broken │
|
||
│ ├─ Chase sequence (Shade pursues) │
|
||
│ ├─ Ending accumulator evaluates │
|
||
│ │ choices made during game │
|
||
│ └─ Exit → L_Ending_Truth │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_Ending_Truth (Resolution) │
|
||
│ ├─ Final cutscene plays │
|
||
│ ├─ Ending determined by: │
|
||
│ │ ├─ VoidShards collected │
|
||
│ │ ├─ Survivors saved/killed │
|
||
│ │ ├─ Sanity level at end │
|
||
│ │ └─ Key choices made │
|
||
│ └─ Auto-advance → L_Credits │
|
||
└──────────────┬──────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ L_Credits │
|
||
│ ├─ Scroll credits + atmospheric │
|
||
│ │ post-credit scene │
|
||
│ ├─ Achievement unlocks fire │
|
||
│ └─ Return → L_MainMenu │
|
||
└─────────────────────────────────────┘
|
||
|
||
|
||
PAUSE / DEATH / SAVE BRANCHES (any gameplay level)
|
||
═══════════════════════════════════════════════════════════
|
||
|
||
PRESS ESC → SS_UIManager.PushMenu(PauseMenu)
|
||
├─ GI_GameFramework.SetPhase(Paused)
|
||
├─ SS_EnhancedInputManager.SetInputModeUIOnly()
|
||
├─ WBP_HUDController hides diegetic elements
|
||
├─ WBP_GamePauseMenu shows (Resume/Save/Load/Settings/Quit)
|
||
└─ Resume → PopMenu → SetPhase(InGame) → restore input
|
||
|
||
PLAYER DIES → BPC_DeathHandlingSystem (39)
|
||
├─ Death animation plays
|
||
├─ BPC_StateManager.ForcePushState(Death)
|
||
├─ Check if VoidSpace conditions met:
|
||
│ ├─ Yes → BPC_AltDeathSpaceSystem.EnterVoidSpace()
|
||
│ │ └─ Load L_Asylum_VoidSpace + solve puzzle to return
|
||
│ └─ No → BPC_PlayerRespawnSystem.RespawnAtCheckpoint()
|
||
│ └─ Load last checkpoint → restore state
|
||
├─ BPC_PersistentCorpseSystem leaves corpse
|
||
└─ BPC_RunHistoryTracker logs death
|
||
|
||
CHECKPOINT TOUCHED → BP_Checkpoint (37)
|
||
├─ SS_SaveManager.CreateAutoSave()
|
||
├─ BPC_PersistentWorldStateRecorder captures world state
|
||
│ └─ Door states, item pickups, enemy positions, flags
|
||
├─ WBP_NotificationToast shows "Checkpoint Reached"
|
||
└─ Screen vignette pulses briefly
|
||
```
|
||
|
||
---
|
||
|
||
## Framework System Coverage Map
|
||
|
||
Each game asset proves a specific framework system works. Below: every framework system → which game asset demonstrates it.
|
||
|
||
### 01-core (Foundation — 7 systems)
|
||
| # | Framework System | Game Asset That Uses It |
|
||
|---|-----------------|------------------------|
|
||
| 01 | DA_GameTagRegistry | All game items/pickups (tags registered) |
|
||
| 02 | FL_GameUtilities | FL_HorrorUtilities (game-specific helpers) |
|
||
| 03 | I_InterfaceLibrary | All items, doors, enemies (I_Interactable, I_Damageable, I_UsableItem, I_Lockable, I_Persistable) |
|
||
| 04 | GI_GameFramework | GI_HorrorGame (child — sets TagRegistry, initializes game) |
|
||
| 05 | GM_CoreGameMode | GM_HorrorGameMode (child — horror-specific rules, deaths) |
|
||
| 06 | GS_CoreGameState | GS_HorrorGameState (tracks horror-specific global flags) |
|
||
| 07 | DA_ItemData | ALL DA_Item_* assets (13 items) |
|
||
|
||
### 02-player (Player State — 8 systems)
|
||
| # | Framework System | How Demonstrated |
|
||
|---|-----------------|-----------------|
|
||
| 08 | BPC_HealthSystem | Player takes damage from enemies → health decreases → death |
|
||
| 09 | BPC_StaminaSystem | Sprinting drains stamina; AdrenalineSyringe restores it |
|
||
| 10 | BPC_StressSystem | Darkness, enemy proximity, hallucinations increase stress tiers |
|
||
| 11 | BPC_MovementStateSystem | Walk/Sprint/Crouch/Sneak — GASP locomotion states |
|
||
| 12 | BPC_HidingSystem | Lockers, under beds, wardrobes — hide from enemies |
|
||
| 13 | BPC_EmbodimentSystem | First-person body visible; arm IK when holding items |
|
||
| 14 | BPC_CameraStateLayer | FOV changes: combat zoom, hide peek, inspection zoom |
|
||
| 15 | BPC_PlayerMetricsTracker | Accuracy tracking per weapon, playstyle classification |
|
||
|
||
### 03-interaction (World Interaction — 8 systems)
|
||
| # | Framework System | Game Asset |
|
||
|---|-----------------|-----------|
|
||
| 16 | BPC_InteractionDetector | All pickups, doors, puzzles, hiding spots |
|
||
| 17 | I_HidingSpot | BP_HidingSpot_Locker, _UnderBed, _Wardrobe |
|
||
| 18 | BPC_DiegeticDisplay | BP_DiegeticScreen_Monitor (security camera feed) |
|
||
| 19 | BP_DoorActor | BP_Door_Asylum, _OmegaWing, _Barricaded, _Void |
|
||
| 20 | BP_PuzzleDeviceActor | BP_Puzzle_Fusebox, _PipeOrgan, _MorgueDrawers |
|
||
| 21 | BPC_ContextualTraversalSystem | Vaulting over gurneys, mantling debris |
|
||
| 22 | BPC_PhysicsDragSystem | Dragging bodies/crates to climb or block doors |
|
||
| 23 | BPC_UsableWorldObjectSystem | Levers, valves, buttons (power, gas, elevator) |
|
||
|
||
### 04-inventory (Inventory — 11 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 24 | BPC_ContainerInventory | BP_Chest_Supply, BP_Desk_Drawer, BP_FilingCabinet |
|
||
| 25 | BP_ItemPickup | All 18 BP_Pickup_* actors |
|
||
| 26 | BPC_ActiveItemSystem | Quick-slot cycling through weapons/tools |
|
||
| 27 | BPC_CollectibleTracker | Old Photos, Void Shards (tracked, set bonuses) |
|
||
| 28 | BPC_ConsumableSystem | MedKit, Battery, Adrenaline, Sanity Pill use |
|
||
| 29 | BPC_DocumentArchiveSystem | Journal Pages, Patient Files (readable/journal) |
|
||
| 30 | BPC_EquipmentSlotSystem | PrimaryWeapon (pistol/shotgun), Tool (flashlight/crowbar) |
|
||
| 31 | BPC_InventorySystem | Full inventory grid with all items |
|
||
| 32 | BPC_ItemCombineSystem | Combine Battery+Flashlight to restore charge |
|
||
| 33 | BPC_JournalSystem | Active objectives displayed, completions logged |
|
||
| 34 | BPC_KeyItemSystem | Keycards, Warden's Key — door unlocking, protection from loss |
|
||
|
||
### 05-saveload (Save/Load — 9 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 35 | SS_SaveManager | Auto-save at checkpoints, manual save, load slots |
|
||
| 36 | I_Persistable | All doors, pickups, enemies (save/restore state) |
|
||
| 37 | BP_Checkpoint | BP_Checkpoint_SafeRoom, _Mirror |
|
||
| 38 | BPC_AltDeathSpaceSystem | Void Space on death — enter, explore, find exit |
|
||
| 39 | BPC_DeathHandlingSystem | Death → respawn or void space → state restoration |
|
||
| 40 | BPC_PersistentCorpseSystem | Enemy corpses persist across save/load/respawn |
|
||
| 41 | BPC_PersistentWorldStateRecorder | Door states, picked items, enemy positions saved |
|
||
| 42 | BPC_PlayerRespawnSystem | Respawn at last checkpoint after death |
|
||
| 43 | BPC_RunHistoryTracker | Death count, playtime, checkpoints per run |
|
||
|
||
### 06-ui (UI — 14 systems)
|
||
| # | Framework System | Game Override |
|
||
|---|-----------------|--------------|
|
||
| 44 | SS_UIManager | Menu stack manages all game menus |
|
||
| 45 | WBP_AccessibilityUI | Subtitles for whispered voices + accessibility options |
|
||
| 46 | WBP_DiegeticHUDFrame | Health/stress/stamina displayed on wristwatch |
|
||
| 47 | WBP_HUDController | WBP_GameHUDController (horror-themed layout) |
|
||
| 48 | WBP_InteractionPromptDisplay | "Pick up [Item]" / "Open [Door]" prompts |
|
||
| 49 | WBP_InventoryMenu | WBP_GameInventoryMenu (grid with horror styling) |
|
||
| 50 | WBP_JournalDocumentViewer | WBP_JournalHorror (reads documents + photos) |
|
||
| 51 | WBP_MainMenu | WBP_GameMainMenu ("Project Void" title + asylum background) |
|
||
| 52 | WBP_MenuFlowController | Handles back-nav across all menus |
|
||
| 53 | WBP_NotificationToast | "Checkpoint Reached" / "New Objective" toasts |
|
||
| 54 | WBP_ObjectiveDisplay | "Find the Warden's Key" / "Escape the Asylum" |
|
||
| 55 | WBP_PauseMenu | WBP_GamePauseMenu |
|
||
| 56 | WBP_ScreenEffectController | Damage vignette, stress blur, void distortion |
|
||
| 57 | WBP_SettingsMenu | Volume sliders → SS_AudioManager, control rebinding |
|
||
|
||
### 07-narrative (Narrative — 11 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 58 | BPC_NarrativeStateSystem | Chapter flags: "WardA_Complete", "MetSurvivor" |
|
||
| 59 | BPC_ObjectiveSystem | 3 main objectives + optional side objectives |
|
||
| 60 | BPC_DialoguePlaybackSystem | Survivor dialogue, whispered void voices |
|
||
| 61 | BPC_DialogueChoiceSystem | Player response choices to survivor NPC |
|
||
| 62 | BPC_BranchingConsequenceSystem | Choices affect ending, NPC survival, item availability |
|
||
| 63 | BPC_TrialScenarioSystem | Timed escape from Void Space |
|
||
| 64 | BPC_CutsceneBridge | Opening wake-up cutscene + ending cinematics |
|
||
| 65 | BPC_LoreUnlockSystem | Patient files, journal pages unlock lore entries |
|
||
| 66 | DA_NarrativeDataAssets | DA_Dialogue_*, DA_Cutscene_*, DA_Objective_* |
|
||
| 67 | BP_NarrativeTriggerVolume | BP_NarrativeTrigger_Intro, _VoidFirst, _Ending |
|
||
| 68 | BPC_EndingAccumulator | Tracks VoidShards, survivors, sanity → determines ending |
|
||
|
||
### 08-weapons (Weapons & Combat — 11 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 69 | BP_WeaponBase | BP_Pistol_Held, BP_Shotgun_Held |
|
||
| 70 | BPC_AmmoComponent | Pistol (9mm pool), Shotgun (shell pool) |
|
||
| 71 | BPC_CombatFeedbackComponent | Hit markers on enemy damage, kill confirm |
|
||
| 72 | BPC_DamageReceptionSystem | Enemy damage → resistance → health reduction |
|
||
| 73 | BPC_DeathCauseTracker | Logs: "Killed by Patient (melee)", "Killed by Shade (void)" |
|
||
| 74 | BPC_FirearmSystem | Pistol hitscan, Shotgun pellet spread |
|
||
| 75 | BPC_HitReactionSystem | Enemies flinch/stagger on hit |
|
||
| 76 | BPC_MeleeSystem | Crowbar swing (block, heavy attack) |
|
||
| 77 | BPC_RecoilSystem | Pistol recoil kick, Shotgun heavy kick |
|
||
| 78 | BPC_ReloadSystem | Pistol tactical reload, Shotgun shell-by-shell |
|
||
| 79 | BPC_ShieldDefenseSystem | (Optional) Warden's riot shield pickup |
|
||
|
||
### 09-ai (AI — 9 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 80 | BP_EnemyBase | BP_Enemy_Patient, BP_Enemy_Shade, BP_Enemy_Orderly |
|
||
| 81 | BP_PatrolPath | BP_PatrolPath_* throughout asylum hallways |
|
||
| 82 | BPC_AlertSystem | Suspicious→Alerted→Combat transitions |
|
||
| 83 | BPC_AIStateMachine | Patrol/Search/Combat/Flee state machine |
|
||
| 84 | AI_BaseAgentController | AI_PatientController, AI_ShadeController, AI_OrderlyController |
|
||
| 85 | BB_AgentBoard | BB_PatientData, BB_ShadeData, BB_OrderlyData |
|
||
| 86 | BPC_AIMemorySystem | Last known player location, investigation points |
|
||
| 87 | BPC_AIPerceptionSystem | Sight (flashlight increases visibility), hearing (running attracts) |
|
||
| 88 | BPC_BehaviourVariantSelector | Patient: Aggressive/Curious/Erratic variants |
|
||
|
||
### 10-adaptive (Adaptive — 15 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 89 | BPC_DifficultyManager | Player deaths → easier encounters; success → harder |
|
||
| 90 | BPC_FearSystem | AI fear of flashlight; player fear affects stress |
|
||
| 91 | BPC_PerformanceScaler | LOD scaling in large ward areas |
|
||
| 92 | BPC_ProceduralEncounter | BP_EncounterSpawner_* (dynamic enemy placement) |
|
||
| 93 | BPC_AdaptiveEnvironmentDirector | Room mutations: hallway reconfigures, doors disappear |
|
||
| 94 | BPC_AtmosphereStateController | WardA: tense → WardB: horror → Void: nightmare |
|
||
| 95 | BPC_AudioAtmosphereController | [DEPRECATED — replaced by SS_AudioManager] |
|
||
| 96 | BPC_LightEventController | Flickering lights, bulb explosions, emergency red |
|
||
| 97 | BPC_MemoryDriftSystem | Visual distortions: walls breathing, text shifting |
|
||
| 98 | BPC_PacingDirector | Intensity bands: exploration→tension→encounter→recovery |
|
||
| 99 | BPC_PlaystyleClassifier | Aggressive (shoot everything) vs Stealthy (hide) detection |
|
||
| 100 | BPC_RareEventSystem | Rare whisper events, ghostly apparitions |
|
||
| 101 | BPC_ScareEventSystem | Locker bang, mirror face, window hand slam |
|
||
| 132 | SS_AudioManager | All audio routing, bus management, room zone switching |
|
||
| 133 | BP_RoomAudioZone | BP_RoomAudioZone_WardA, _Basement, _Void |
|
||
| 134 | DA_AudioSettings | DA_AudioSettings_Horror (mix levels, ducking) |
|
||
| 135 | DA_RoomAcousticPreset | DA_RoomAcoustic_WardA, _Basement, _Void (reverb/occlusion) |
|
||
|
||
### 11-meta (Meta — 2 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 102 | BPC_ProgressStatTracker | Total playtime, collectibles found, enemies killed |
|
||
| 103 | SS_AchievementSystem | "First Light" (flashlight), "Untouchable" (no-damage run) |
|
||
|
||
### 12-settings (Settings — 5 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|----------------|----------------|
|
||
| 104 | BPC_AccessibilitySettings | Subtitle toggle, colorblind mode, controller remap |
|
||
| 105 | SS_SettingsSystem | Audio/Video/Controls persistent settings |
|
||
| 148 | BPC_HapticsController | Controller vibration: damage, weapon fire, heartbeat, footsteps, scares. Attached to PC_HorrorController |
|
||
| 149 | BPC_RenderPipelineManager | Quality presets (Low→Cinematic), Lumen/Baked switching, DLSS/FSR/TSR upscaling. PlanarCapture budget aware |
|
||
|
||
### 13-polish (Polish — 9 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 106 | BPC_AnalyticsTracker | Session metrics: time in each area, death locations |
|
||
| 107 | BPC_DevCheatManager | God mode, give item, teleport to area (dev testing) |
|
||
| 108 | BPC_ErrorHandler | Crash logging, safe recovery on level load failure |
|
||
| 109 | BPC_FPSCounter | Dev-only FPS overlay |
|
||
| 110 | BPC_LoadingScreen | WBP_LoadingHorror (progress bar + horror tips) |
|
||
| 111 | BPC_TutorialSystem | BP_TutorialTrigger_Controls, _Hiding, _Combat |
|
||
| 112 | WBP_CreditsScreen | L_Credits level + scroll widget |
|
||
| 113 | WBP_DebugMenu | Toggle debug: show AI paths, perception, stress values |
|
||
| 114 | WBP_SplashScreen | WBP_SplashHorror (studio logo + title + health warning) |
|
||
|
||
### 15-input (Input)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 128 | SS_EnhancedInputManager | All input contexts (Default, Hiding, WristwatchUI, UI, Inspection) |
|
||
|
||
### 16-state (State Management)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 130 | BPC_StateManager | Hiding blocks fire; death blocks interaction; cutscene blocks all |
|
||
| 131 | DA_StateGatingTable | Designer-configurable state permission rules |
|
||
|
||
### 17-capture (Planar Capture — 12 systems)
|
||
| # | Framework System | Demonstrated By |
|
||
|---|-----------------|----------------|
|
||
| 136 | BPC_PlanarCapture | All capture surfaces (component managing SceneCapture2D lifecycle) |
|
||
| 137 | BP_PlanarCaptureActor | BP_Mirror, BP_Portal, BP_Monitor, BP_HorrorMirror, BP_FakeWindow (all extend this) |
|
||
| 138 | SS_PlanarCaptureManager | Auto-created WorldSubsystem — manages quality budget across all 8 surfaces |
|
||
| 139 | BP_Mirror | BP_Mirror_NurseStation — standard reflection mirror with aging |
|
||
| 140 | BP_Portal | BP_Portal_VoidEntrance/Exit — void portal teleport with clip plane |
|
||
| 141 | BP_Monitor | BP_Monitor_Security/Morgue — security camera feeds, scanlines, static noise |
|
||
| 142 | BP_HorrorMirror | BP_HorrorMirror_Morgue/WardensOffice — wrong reflection, steam, text, scare events |
|
||
| 143 | BP_FakeWindow | BP_FakeWindow_WardensOffice — atmospheric window with weather overlay |
|
||
| 144 | M_CaptureSurface_Master | All mirror/portal/monitor surfaces (9-layer material stack) |
|
||
| 145 | MPC_CaptureSurface | All 10 MPC scalar params (SteamIntensity, DirtOpacity, MirrorDarkness, etc.) |
|
||
| 146 | DA_PlanarCaptureProfile | DA_PlanarCaptureProfile_Mirror — per-surface quality config |
|
||
| 147 | MI_MirrorInstances | MI_Mirror_Clean/Dirty/Steam/Horror, MI_Portal_Standard, MI_Monitor_Security, MI_FakeWindow_Interior |
|
||
|
||
---
|
||
|
||
## Build Order (Dependency-Safe)
|
||
|
||
Follow this order when creating uasset files in UE5:
|
||
|
||
| Phase | Content | Depends On | Approx. Assets |
|
||
|-------|---------|-----------|:---:|
|
||
| 0 | **Project Settings** — Plugins, GameplayTags, Asset Manager, Collision | *(none)* | — |
|
||
| 1 | **Core Classes** — GI_HorrorGame, GM_HorrorGameMode, PC_HorrorController, PS_HorrorPlayerState, GS_HorrorGameState | Framework C++ classes | 5 |
|
||
| 2 | **Maps** — L_SplashScreen, L_MainMenu, L_Test_Sandbox | Core Classes | 3 |
|
||
| 3 | **Input** — DA_InputMapping_Horror_PC (_Xbox) + IMC/IA references | SS_EnhancedInputManager | 2 |
|
||
| 4 | **Player Character** — BP_HorrorPlayerCharacter + all BPC_ components | Core, Maps, Input | 1 |
|
||
| 5 | **Data Assets (Items)** — All DA_Item_* assets | DA_ItemData | 13 |
|
||
| 6 | **Pickups** — All BP_Pickup_* actors | BP_ItemPickup, DA_Item_* | 18 |
|
||
| 7 | **Doors & Actors** — All BP_Door_*, BP_HidingSpot_* | BP_DoorActor, I_HidingSpot | 12 |
|
||
| 8 | **Containers** — BP_Chest_Supply, BP_Desk_Drawer, BP_FilingCabinet | BPC_ContainerInventory | 3 |
|
||
| 9 | **Puzzles** — BP_Puzzle_Fusebox, _PipeOrgan, _MorgueDrawers | BP_PuzzleDeviceActor | 3 |
|
||
| 10 | **Weapons (Held)** — BP_Pistol_Held, BP_Shotgun_Held, BP_Flashlight_Held, BP_Crowbar_Held | BP_WeaponBase | 4 |
|
||
| 11 | **UI Widgets** — All WBP_Game* widgets | SS_UIManager, WBP_* parents | 8 |
|
||
| 12 | **Enemies** — BP_Enemy_Patient, _Shade, _Orderly + AI controllers + BT + BB | BP_EnemyBase | 12 |
|
||
| 13 | **Narrative** — DA_Dialogue_*, DA_Cutscene_*, DA_Objective_*, trigger volumes, lore | DA_NarrativeDataAssets | 12+ |
|
||
| 14 | **Data Assets (Content)** — Encounters, Atmosphere, Scares, Puzzles, Objectives, Behaviour, Acoustic | DA_* parents | 20+ |
|
||
| 15 | **Checkpoints** — BP_Checkpoint_SafeRoom, _Mirror | BP_Checkpoint | 2 |
|
||
| 16 | **Room Audio Zones** — BP_RoomAudioZone_* | BP_RoomAudioZone | 3 |
|
||
| 17 | **Capture Surfaces** — BP_Mirror_NurseStation, BP_HorrorMirror_Morgue/WardensOffice, BP_Monitor_Security/Morgue, BP_Portal_VoidEntrance/Exit, BP_FakeWindow_WardensOffice | BP_PlanarCaptureActor | 9 |
|
||
| 18 | **Encounter Spawners** — BP_EncounterSpawner_* | BPC_ProceduralEncounter | 3 |
|
||
| 18 | **Atmosphere Actors** — BP_LightEvent_*, BP_ScareEvent_*, BP_AtmosphereController_* | BPC_* parent | 6 |
|
||
| 19 | **Tutorial Triggers** — BP_TutorialTrigger_* | BPC_TutorialSystem | 3 |
|
||
| 20 | **Polish** — BP_CreditsSequence, dev cheats, debug menu | Framework | 3 |
|
||
| 21 | **Full Levels** — L_Asylum_Entry → _WardA → _WardB → _Basement → _VoidSpace → _WardensOffice → _Ending → _Credits | All previous | 8 |
|
||
|
||
---
|
||
|
||
## Documentation Map
|
||
|
||
Each `docs/game/` file explains how to build a specific section of the prototype:
|
||
|
||
| Document | Covers | Build Phase |
|
||
|----------|--------|:----------:|
|
||
| [`GAMEINDEX.md`](GAMEINDEX.md) | **THIS FILE** — master reference | — |
|
||
| [`README.md`](README.md) | How to use these docs + framework separation rule | — |
|
||
| [`core-gameinstance.md`](core-gameinstance.md) | GI_HorrorGame setup — session init, save slot, subsystems | 1 |
|
||
| [`core-gamemode.md`](core-gamemode.md) | GM_HorrorGameMode setup — spawn rules, chapter transitions, death routing | 1 |
|
||
| [`core-controller-state.md`](core-controller-state.md) | PC_HorrorController, PS_HorrorPlayerState, GS_HorrorGameState | 1 |
|
||
| [`scene-flow.md`](scene-flow.md) | Complete scene loading: Splash → Menu → Game → Pause → Death → Credits | 2 |
|
||
| [`playercharacter.md`](playercharacter.md) | BP_HorrorPlayerCharacter — all 15 BPC_ components wired, GASP integration | 4 |
|
||
| [`levels.md`](levels.md) | All 11 level maps — layout, objectives, encounters, atmosphere | 2, 21 |
|
||
| [`ui-overrides.md`](ui-overrides.md) | WBP_GameHUDController, WBP_GameMainMenu, WBP_GamePauseMenu, WBP_SplashHorror, WBP_LoadingHorror, WBP_JournalHorror, WBP_DeathScreen | 11 |
|
||
| [`items-index.md`](items-index.md) | All 13 DA_Item_* + 18 BP_Pickup_* — creation walkthroughs | 5, 6 |
|
||
| [`item-flashlight.md`](item-flashlight.md) | Flashlight Tool — full build (EXISTING) | 5, 6, 10 |
|
||
| [`item-pistol.md`](item-pistol.md) | Pistol Weapon — full build (EXISTING) | 5, 6, 10 |
|
||
| [`item-medkit.md`](item-medkit.md) | MedKit Consumable — full build (EXISTING) | 5, 6 |
|
||
| [`item-keycard.md`](item-keycard.md) | Keycard Key Item — full build (EXISTING) | 5, 6 |
|
||
| [`weapons-index.md`](weapons-index.md) | All held weapons — pistol, shotgun, flashlight, crowbar — wiring | 10 |
|
||
| [`enemies-index.md`](enemies-index.md) | All enemies — Patient, Shade, Orderly — AI controllers, BT, perception | 12 |
|
||
| [`narrative-progression.md`](narrative-progression.md) | Objectives, dialogue, cutscenes, ending accumulator, branching | 13 |
|
||
| [`atmosphere-audio.md`](atmosphere-audio.md) | Atmosphere profiles, scares, lighting, room audio zones, adaptive environment | 14, 16, 17, 18 |
|
||
| [`planar-capture-examples.md`](planar-capture-examples.md) | Mirrors, horror mirrors, security monitors, void portals, fake windows — all 8 capture surfaces | 17 |
|
||
| [`save-checkpoints.md`](save-checkpoints.md) | Save system, checkpoints, death loop, void space, persistence | 15 |
|
||
| [`polish-loading-credits.md`](polish-loading-credits.md) | Tutorials, loading screen, credits, debug, analytics | 19, 20 |
|
||
| [`state-gating-examples.md`](state-gating-examples.md) | DA_StateGatingTable game-specific rules | 14 |
|
||
| [`haptics-example.md`](haptics-example.md) | Controller haptics — damage, weapons, heartbeat, scares, platform tuning | 5, 10, 13, 14 |
|
||
| [`render-profiles-example.md`](render-profiles-example.md) | Render pipeline — per-platform quality presets, Lumen vs Baked, upscaling setup | 5, 12, 14 |
|
||
|
||
---
|
||
|
||
## Notes for Expansion
|
||
|
||
### Short-Term (Finish the Prototype)
|
||
- [ ] Create placeholder meshes (whitebox) for all items, weapons, enemies
|
||
- [ ] Record placeholder audio (or use UE5 starter content)
|
||
- [ ] Implement all 18 pickup actors following the 4 existing item examples
|
||
- [ ] Build full WBP_GameHUDController with horror styling
|
||
- [ ] Create 3 enemy types with behavior trees
|
||
- [ ] Wire all 11 levels with objectives and transitions
|
||
- [ ] Implement save/load at checkpoints
|
||
|
||
### Medium-Term (Polish)
|
||
- [ ] Replace whitebox meshes with final art
|
||
- [ ] Add full MetaSounds audio (150+ triggers per sound catalog)
|
||
- [ ] Implement all 14 animation notifies for GASP
|
||
- [ ] Add multiplayer support (server-authoritative replication)
|
||
- [ ] Create platform-specific input profiles (Xbox, PS5)
|
||
- [ ] Add accessibility: subtitles, colorblind, haptic feedback profiles
|
||
|
||
### Long-Term (Full Game)
|
||
- [ ] Write complete narrative with branching dialogue
|
||
- [ ] Design 10+ puzzle devices
|
||
- [ ] Create 20+ scare events per atmosphere catalog
|
||
- [ ] Implement adaptive difficulty with player metrics
|
||
- [ ] Add collectible tracking with achievement unlocks
|
||
- [ ] Create ending variations (3-5 endings)
|
||
- [ ] Implement New Game+ with harder variants
|
||
- [ ] Localize all text into 8+ languages
|
||
|
||
### Framework Separation Checklist
|
||
- [ ] `Content/Framework/` contains ONLY framework systems (never modified)
|
||
- [ ] `Content/Game/` contains ALL game-specific content
|
||
- [ ] Game Blueprints are children of Framework Blueprints (never modify parent)
|
||
- [ ] Game Data Assets are instances of Framework Data Asset types
|
||
- [ ] Game references framework via interfaces and dispatchers (no hard refs)
|
||
- [ ] Project Settings point to Framework GI_GameFramework as Game Instance
|
||
- [ ] Game Maps reference GM_HorrorGameMode as GameMode override
|
||
|
||
---
|
||
|
||
*GAMEINDEX v1.0 — Master reference for Project Void horror game prototype. All 135 framework systems covered by at least one game asset. Follow the Build Order phases. Never modify Content/Framework/ files.*
|