Skip to content
All game projects
In development Horror Action Adventure Unity · C#

Project NightFall

A third-person folk-horror game set in a rain-soaked Hong Kong village, where exploration, ritual and reflected moonlight become the player’s means of survival.

Project NightFall key art
Genre
Third-person survival horror
Setting
Fictional 1960s New Territories village, Hong Kong
Rendering
Unity 6.4 · URP → HDRP
Target
PC (Steam) · controller support planned
Team
Solo developer — design, code, art direction
Status
In development · playable vertical slice

Design pillars

01

Hong Kong folk horror

Ancestral halls, joss sticks, talismans, laundry-strung alleys and Lingnan village houses — a culture of fear players have rarely explored, grounded in real local belief.

02

Light is the weapon

Sophie cannot shoot her way out. She can only strike from inside moonlight, so every encounter becomes a question of positioning, not aim.

03

Fear that plays fair

Every ghost attack has a tell, one committed strike and real recovery time. Tension comes from pressure and pacing, never from cheap chain damage.

04

Atmosphere with purpose

Rain, fog, practical lights and wet surfaces build tension while preserving the silhouettes and navigation cues needed for fair play.

Selected gameplay

A limited look at the current build

Current build

A selected excerpt from the current Unity build. The public showcase is intentionally limited to keep encounters and story beats unspoiled.

Mechanics in brief

How Sophie survives the night

The current slice combines positioning, timing and readable enemy states. These selected development captures explain the player loop and the systems underneath it.

In-engine Bagua mirror focus reticle and moonlight reserve HUD
01

Focus and reflect

Raise the Bagua mirror inside a shaft of moonlight, hold aim to build focus, then release the reflected light. A well-timed reflect interrupts an incoming attack and rewards accuracy without turning the encounter into a shooter.

Implementation

Aiming owns the character-facing state while focus, moonlight validity and reserve are evaluated separately. The HUD mirrors those states so failed shots always have a readable cause.

In-engine struggle prompt during a ghost grab inside moonlight
02

Struggle and recovery

Some committed ghost attacks can become a short grab. Repeated input breaks the hold; success creates room to escape, while failure resolves damage once and still returns control cleanly.

Implementation

The struggle is a bounded combat state with explicit input ownership, a single damage-resolution gate, repel or stun feedback and a short post-hit protection window.

Unity scene view showing a ghost encounter, navigation and moonlight volumes
03

Ghost pursuit with limits

Ghosts patrol, investigate and attack, but do not follow forever. They give up beyond their encounter space, return toward their origin and can resume wandering or re-engage when the player comes back.

Implementation

A spawn-anchored state machine separates pursuit, attack recovery, return and wander. Leash and re-engagement bands prevent oscillation and keep the threat inside authored spaces.

Character & world direction

A Hong Kong folk-horror identity

The public artwork focuses on period architecture, weather, material studies and the protagonist’s production pipeline. Narrative characters and unreleased locations remain private.

Sophie character developmentSophie character developmentSophie character development
Protagonist

Sophie

A grounded modern protagonist developed through concept iteration, image-to-3D studies, cleanup, humanoid rigging and in-engine animation tests.

In-engine: the village approach at night — rain, wet planks and the gate ahead.
In-engine: the village approach at night — rain, wet planks and the gate ahead.
Bagua mirror prop — the player’s weapon and the story’s symbol of “truth reflected”.
Bagua mirror prop — the player’s weapon and the story’s symbol of “truth reflected”.
Environment concept: period Hong Kong interior for the urban chapters.
Environment concept: period Hong Kong interior for the urban chapters.

Technical production

From URP prototype to an HDRP vertical slice

The rendering work is treated as an engineering migration rather than a visual preset swap. It covers lighting data, custom shaders, physical exposure, fog, reflections and performance budgets.

Night-time bridge in rain with wet-surface reflections and flashlight lighting

Rain and wet-surface response

Rain streaks, reflected practical light and a controlled flashlight cone keep the bridge readable while preserving the low-key night exposure.

Unity AI Navigation debug view over the village environment

Navigation and encounter authoring

Scene-level navigation diagnostics make agent paths, walls and avoidance visible while encounter anchors keep pursuit inside the intended play space.

In-engine player view testing night lighting, foliage and flashlight response

Lighting migration checks

The HDRP pass is reviewed in gameplay framing so exposure, shadow priority, foliage readability and local fog are judged together rather than as isolated effects.

URP to HDRP rendering

The project began in URP Forward+ and now maintains an HDRP vertical slice. The migration replaces URP-specific renderer features and shaders with HDRP-native lighting, fog, reflection and material workflows.

Dynamic ambient lighting

Adaptive Probe Volumes provide spatially coherent ambient light across interiors, wet lanes and open village areas. Lighting scenarios and probe blending support atmosphere changes without flattening the night scene.

Screen-space global illumination

The URP prototype used an SSGI package with ambient-light override. The HDRP path moves this to native Screen Space Global Illumination for more stable indirect light and simpler rendering maintenance.

Volumetric fog

The URP build used a custom fullscreen fog pass and mesh light cones. HDRP uses native Volumetric Fog and Local Volumetric Fog for mist, moonlight shafts and room-scale density control.

Wet-surface materials

A custom village wet-surface shader exposes global wetness controls, so rain, puddles and reflections respond consistently across stone, wood and roof materials.

Lighting performance

Practical lights are tiered by importance: key lights cast shadows while supporting lights shape colour and depth without entering the shadow atlas. Physical light units and exposure are retuned for HDRP.

Gameplay architecture

State-driven encounters, bounded attack resolution, area ownership and camera hand-off keep combat readable while allowing the presentation layer to change independently.

Production tools

Editor bake and validation tools assemble the village, manage scene positions and catch broken references before Play Mode; an asset indexer links visual references back to design documents.

Private review

Request the playable build or full pitch.

Detailed gameplay systems, story material and milestone planning are available for studios, collaborators and publishers on request.