
Introduction
Heirloom is my ongoing capstone project: a first-person horror investigation game set in my original Kindred universe. You play a GIA intern investigating a suburban murder, using a camera to document anomalies and cross into an "inner world" until a 70-year-old curse comes to light. Built on top of Out of Frame, pushed further in scope and polish, with fresh twists on familiar horror pacing.
My Roles:
Heirloom is a solo project. I designed and implemented the full gameplay experience end-to-end, with occasional level design feedback and support from a friend.
Game Design: designed all core mechanics, systems, and the overall progression structure
Technical Design: handled all technical work independently, including system architecture, player controls, camera mechanics, and interaction logic
Narrative Integration: adapted the story and setting from my Kindred worldbuilding into playable investigation beats and horror pacing
Technical Design
Core System and Architecture
Level streaming (inspired by Silent Hill): loads and unloads environment layers as the player moves between the surface world and the inner world; each chapter keeps its own version of the house, and transitions sync material swaps, house repairs, and content resets so the space stays consistent while staying modular
Real-time light detection (inspired by Visage): runs on the player character instead of scanning every light source, so SAN drains immediately when the player steps out of light without hurting performance
Quest and objective tracking: chains events in sequence, so completing A1 and A2 triggers the next objective plus world reactions like doors, cues, and unlocks
Camera capture detection: samples multiple screen-space points per shot to reliably confirm a photographed target
Post-processing: rebuilt and upgraded from Out of Frame, with camera states and transitions switching effects dynamically, backed by timeline-driven animations


System Design
Gameplay Loop / Sanity System
Iterated from an early anomaly-detection loop (inspired by The Exit 8, but read more like spot-the-difference than horror) into a linear-sandbox structure that splits gameplay pressure from narrative exploration
Surface world: a safe, story-rich hub, mostly locked down until the player earns access, space for reflection and context
Inner world: hosts each chapter's core gameplay; clearing it rewards a key that unlocks a new surface-world room, keeping survival/puzzle tension and story exploration in separate spaces
Unlocked rooms hide password fragments; combining all of them opens a hidden room holding the game's central twist, reached through exploration instead of a cutscene
SAN system: a negative feedback loop (part HP, part countdown) that activates in the inner world
Director system runs in parallel, picking nearby props and environment pieces to trigger anomalies (lights cutting out, disturbances, environmental shifts), so the threat feels like it's actively hunting the player, no scripted jump scares
Lit areas give the player some protection, so the director can't eliminate their only safe spot; paranormal events double as navigation cues, with sound and lighting guiding players toward their next objective without breaking immersion
Narrative Design
World Layers and Chapters
Narrative and gameplay get their own dedicated spaces, so players are never processing story while also managing threat
Inner world: active gameplay, players push through the director system's pressure and earn a key on completion
Surface world: pure exploration once unlocked, the player absorbs the 70-year-old curse through environmental storytelling with no mechanical interference
Every surface room adds its own narrative layer plus a fragment of the endgame puzzle, so the mystery builds chapter by chapter
The house gives up its secret only once every chapter is cleared and every room explored, so the final revelation lands as one payoff instead of scattered reveals


UX & Code Architecture
Performance Optimization
Blueprint Interface (BPI) architecture replaces hard references between actors with interface-based communication, cutting load overhead and making the project easier to extend without fragile connections
Component-based architecture isolates systems from each other: a Dialogue Component handles conversation logic, a Task Component handles mission data transfer
Any interactable object becomes a task object just by attaching the Task Component, no duplicate blueprints required








