Add UI Overrides and Weapons Index documentation for Project Void
- Created ui-overrides.md detailing game-specific Widget Blueprint overrides, including purpose, widget index, visual styling, and accessibility requirements. - Established weapons-index.md outlining all held weapon actors, including their components, logic, and comparisons for gameplay mechanics.
This commit is contained in:
706
docs/game/GAMEINDEX.md
Normal file
706
docs/game/GAMEINDEX.md
Normal file
@@ -0,0 +1,706 @@
|
||||
# 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_AtmosphereController_WardA.uasset
|
||||
│
|
||||
├── 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 — 2 systems)
|
||||
| # | Framework System | Demonstrated By |
|
||||
|---|----------------|----------------|
|
||||
| 104 | BPC_AccessibilitySettings | Subtitle toggle, colorblind mode, controller remap |
|
||||
| 105 | SS_SettingsSystem | Audio/Video/Controls persistent settings |
|
||||
|
||||
### 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 |
|
||||
|
||||
---
|
||||
|
||||
## 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 | **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 |
|
||||
| [`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 |
|
||||
|
||||
---
|
||||
|
||||
## 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.*
|
||||
Reference in New Issue
Block a user