Shadow Frames
Sole audio designer: sound design, voice recording and editing, implementation and the mix, in Wwise and Unreal Engine 5.
A black-and-white horror game set in one abandoned pub. The player finds changes by ear and photographs them with a Polaroid camera.
2025, four months. A multi-school team: game developers from Howest DAE, plus a writer from RITCS and a composer from the Royal Conservatory of Ghent who were both finishing their master’s. Over 200 Wwise events in the finished game. Tools: Wwise, Unreal Engine 5, C++, REAPER.
The ambience follows the board
Every confirmed photograph goes on the board and moves the pub’s ambience one stage further. The first adds weird noises to the base layer and the third a ghostly screech. The fourth swaps both for a horror drone, and from the eighth only the horror background ambience is left.
In Wwise the board is a switch group on RTPC_Photos_OnBoard, with a stage for every count from 0 to 10. In SC_AMB_Progressive, a layer that two stages share keeps playing through the switch instead of restarting.
ProgressiveAmbience switch group: one stage per photograph on RTPC_Photos_OnBoard.
SC_AMB_Progressive switch container.- ProgressiveAmbience
- StageThree
- Layers in this stage
BC_AMB_BaseLayerBC_AMB_Stage2_WeirdNoisesAMB_Stage3_GhostlyScreech
Anomaly sounds and Keiran’s voice lines
With no on-screen markers, each anomaly reaches the player in four sounds.
- Alert
A short alert with no direction signals that an object in the pub has changed.
- Object
The changed object plays its own spatial sound, and the player follows it through the pub.
- Camera
Raising the camera lowers the pub ambience and brings breathing and hand movement forward, in a mix state of its own.
- Whisper
A reversed whisper confirms the shot.
DA_Anomaly_Global holds the shared anomaly events and gives every anomaly Blueprint its own AnomalyType switch value. The Data Asset
KeiranVoicelinesSwitch in Wwise.I recorded some of the game’s voices myself. The lines of Keiran, the player character, are AI-generated; I edited and implemented them. His lines for the story anomalies play from one switch container on the StoryAnomaly switch group. Four reminder lines, such as IshouldPickup, work the same way on a switch group of their own.
An Unreal Data Table , DT_Dialogue, lists the duration of each line.
Footsteps and the enemy
I exposed the floor and enemy settings as Unreal Data Assets that designers could tune without changing code.
The player’s footsteps change with the floor: tiles, wood, concrete, creaky wood and creaky wooden stairs. BP_FootstepAudioManager listens to the On Footstep event, sets the FootstepSurface switch for the surface each step reports, then posts Play_PLYR_Footstep. The enemy’s footsteps cover the same five surfaces from a Data Asset of their own .










