JUL 2, 1993

Murmur

A third-person psychological dream-horror built in Unity HDRP, C#. You wake, you follow a noise, you walk through room after room - and the rooms are lying to you. Doors close behind you, the space you just left is quietly replaced while you aren't looking, and something manifests only in the corner of your eye. The whole game is a loop that rebuilds itself out of code-generated rooms, and the horror is in what it dares to change while you can't see it.

Video only No in-browser build - the clip below is the full playthrough.

Murmur
EngineUnity HDRP
LanguageC#
PerspectiveThird-Person
StructureRoom Loop
ThreatGlimpse Entity
FocusDream Logic
Systems Built
  1. 01
    The Loop Modular Room Generation

    The game is a loop that builds itself: a director spawns a run of code-built room modules - bedroom, study, bathroom, kitchen, stair room - each snapping to the next through entry and exit sockets under a one-door-at-a-time rule, so the space extends ahead of you and folds up behind you. Walk far enough and it wraps back on itself. ModuleGameDirector.cs, ModuleFactory.cs, RoomModule.cs

  2. 02
    The Rule Off-Camera Swap Law

    The core of the horror is a hard invariant: nothing ever changes while you can see it. A frustum-and-occlusion visibility check decides what the camera actually holds, and every swap - the room behind you being replaced, a pose shifting, a light dying - is gated on the target being unseen. A change that fires in view is treated as a bug and asserted against. CameraVisibility.cs, OffCameraSwap.cs

  3. 03
    Doors Physical Push Doors

    No interact key - you open a door by walking into it. Each leaf is a real hinged rigidbody with a push-assist force, a self-closing spring, and positional hold-open that lets a door swing shut behind you the moment you step through. A velocity servo can also creep a door to an exact angle on command, so the world can move a door itself. PhysicsDoor.cs

  4. 04
    Movement Root-Motion & Gaze

    The avatar is driven by root motion routed into rigidbody velocity, so she slides smoothly along walls instead of juddering, and her body follows the camera only while she moves. A gaze system turns her head naturally toward whatever you point the camera at - noticing after a beat, easing rather than snapping - and the over-the-shoulder camera flips itself away from crowding walls on a slow, eased blend. RootMotionMotor.cs, GazeController.cs

  5. 05
    The Entity Glimpse-Only Presence

    The thing hunting you exists only in glimpses. It manifests strictly off-camera, then vanishes the instant the camera finds it, if you stare too long, if you get too close, or after long enough unseen - so it lives entirely in the edges of your vision and never resolves into a monster you can look at. MurmurEntity.cs, EntityController.cs

  6. 06
    Dread The Invisible Meter

    There is no fear bar. Dread is inferred purely from behaviour - freezing after a scare, backing away, whipping the camera, dwelling in the light - and the director reads that signal to pace what happens next. Two voices of ink text bleed onto the walls, one dreaming and one true, and the screen never cuts to black; even sleep and death tilt your view to the ceiling instead. DreadGauge.cs, InkDirector.cs