Initial Brainstorming
Notes helped clarify the themes, tone, and major emotional beats. Early ideas were centered on fear, curiosity, and the mundane.
A branching narrative horror game where your choices shape the story and determine your fate.
Developed over 2 months (November–December 2024), A Night at Home is a branching narrative horror game where players decisions shape the story, blending interactive fiction with subtle atmospheric horror.
Alone at night in your quiet, empty house, a noise pulls you from your thoughts. Do you brush it off and try to sleep, or let curiosity pull you deeper into the shadows?
Navigate a maze of creeping dread and uneasy choices in this interactive horror experience.
The development of A Night at Home moved through multiple phases — from story planning to interactive prototyping and finally a custom-coded interface.
Mapped narrative structure and key branching decisions using diagrams and flowcharts. Early visual planning helped define tone and pace.
Built a playable Twine prototype to test narrative logic and player choice flow. Iterated based on usability testing and readability concerns.
Used Twison to convert the Twine story into structured JSON data. This enabled full control over passage rendering and logic.
Rebuilt the experience using HTML, CSS, and JavaScript. Implemented a custom navigation system, conditional logic, and a responsive layout.
The game started as a simple Twine game. Over time, it transformed into a polished, custom interactive experience.
Before any technical implementation, the story structure was carefully mapped across several stages — from loose brainstorming to a full interactive diagram in Twine.
Each phase of development was guided by iterative feedback from players. Here's how the game evolved over time:
Building an interactive horror experience required balancing choice architecture with pacing and visual design.
Managing the length of passages was the key to maintaining flow. Early versions were too dense, so I focused on making each segment digestible and purposeful through iterative testing.
The transition to a custom interface using Twison broke some internal logic, forcing me to create a new navigation system and rethink how story data is handled.
The UI needed to support the tone of the story while staying intuitive. This included integrating save features, responsive layout, and page styles that reflected what's happening on-screen without distracting from the story.
Designing branching narratives taught me how to maintain story cohesion while still giving players meaningful choices that shape tone, pacing, and outcome.
Porting from Twine to a custom front-end pushed me to handle JSON structures, manage state persistence, and balance flexibility with usability.
Playtesting highlighted the importance of text rhythm: trimming excess, layering tension, and choice design.