Get Your Personalized Game Dev Plan Tailored tips, tools, and next steps - just for you.

Trapped in Terror: Sound Design for Horror Games with Strafekit

Posted by Gemma Ellison
./
February 10, 2025
The cover for Trapped in Terror: Sound Design for Horror Games with Strafekit

Imagine the cold, dripping walls closing in, the echo of your breath the only sound in the oppressive darkness. This isn’t just a game; it’s a descent into primal fear. This article will show you how to weaponize Strafekit’s extensive foley assets to craft terrifyingly claustrophobic soundscapes for your horror game.

The Psychology of Claustrophobia and Sound: Turning Fear into Audio

Confined spaces trigger deep-seated anxieties, and sound plays a crucial role in shaping our perception of these spaces. By manipulating auditory cues, you can amplify the feeling of being trapped and vulnerable. This section focuses on actionable sound design techniques, not generalities.

  • Restricting Auditory Freedom: In open environments, sounds dissipate. In confined spaces, they bounce, reverberate, and linger, creating a sense of being surrounded. Use reverb and echo effects to emphasize the feeling of being trapped. For example, a long reverb tail on a footstep can suggest a vast, empty chamber, even if the visuals show a small room.
  • Heightening Awareness: When visual information is limited, hearing becomes paramount. Every creak, drip, and rustle takes on heightened significance, making the player hyper-aware of their surroundings. Use subtle sounds to create a sense of unease, even when nothing overtly threatening is happening. These sounds can also leverage the player’s intrinsic motivation, as explained in the article, "7 Reasons Why People Play Video Games".
  • Exploiting Threat Proximity: In confined spaces, threats feel much closer, and thus more dangerous. Binaural audio creates a 3D sound experience that can really mess with the player’s sense of space and heightens the feeling of claustrophobia. Amplify the volume of sounds that occur closest to the player in order to create a feeling of a threat closing in.

Strafekit Assets for Claustrophobia: A Toolkit of Terror

Strafekit’s royalty-free asset marketplace provides game developers with an extensive library of sound assets perfect for crafting claustrophobic soundscapes. Here’s how to use specific assets to create a sense of suffocating dread:

Water and Dampness: The Sound of Decay

The "Sounds of Water (77 unique water foley sounds)" pack is invaluable for creating the feeling of dampness and decay. Drips, gurgles, and the echo of water resonating in pipes can build a sense of unease.

  • Example: Imagine a scene where the player is crawling through a damp, forgotten tunnel. Layer the sound of a slow, consistent drip (WaterDrip_03.wav) with a faint gurgling noise (PipeGurgle_01.wav) to create the feeling of a leaking, unstable structure. Pan the drip sound slightly to the left and lower its volume by 3dB to create the impression that it’s coming from a crack in the wall to the left of the player. The “sewer drain” and “pipe burst” sounds from this pack are particularly effective. Enhance the drips using a high-pass filter to accentuate the higher frequencies, making them sound sharper and more persistent.

Industrial Oppression: The Hum of the Machine

The subtle hum of machinery or the distant clang of metal can create a sense of oppressive confinement, even if the player isn’t explicitly in an industrial setting.

  • Example: Use a low-frequency hum (DistantMachinery_01.wav) from the "Sinister Depths / Horror" pack to simulate the sound of a distant, unseen machine, subtly reinforcing the feeling of being trapped. Combine this with the “metallic scrape” sound (MetallicScrape_02.wav) to amplify the dread. This could be combined with the water sounds from "Sounds of Water (77 unique water foley sounds)" to create a feeling of a flooded factory. Add a subtle flanger effect to the “distant machinery” sound to give it a slightly off-kilter, unsettling quality. Modulate the flanger’s rate slowly to create a wavering, unpredictable sound.

Unstable Structures: The Groan of the Earth

The sound of wood groaning and settling is a classic element of claustrophobic horror.

  • Example: Combine the creaking sounds (HeavyCreak_02.wav) from the "Sinister Depths / Horror" pack with footsteps on wood from the "Footstep Foley Sound Effects" pack to create a sense of an unstable, collapsing environment. Lower the pitch of the creaks by 15% and pan them slightly to the left to simulate the sound of an old support beam giving way just outside the player’s field of vision. The “wood break” sound (WoodBreak_01.wav) is ideal for sudden collapses. Add a subtle distortion effect to the wood break sound to give it a more brittle, dangerous edge.

Footsteps and Proximity: The Echo of Isolation

Footsteps in confined spaces can convey not only the player’s movement but also the limited space around them.

  • Example: The "Footstep Foley Sound Effects" pack can be used to simulate the player walking on creaking wood in a dilapidated building or through a narrow, echoing corridor. The proximity of these sounds emphasizes the confined nature of the environment. Add a high-pass filter to the footsteps to remove low-frequency rumble and emphasize the sharp, brittle sounds of the wood, making the player feel like the floor could collapse at any moment. Experiment with different reverb settings to simulate different sizes of confined spaces, and make sure the footstep sounds are coming from slightly behind the character.

Unity Implementation: Creaking Walls Example

This example demonstrates how to trigger creaking sounds when the player gets close to a wall in Unity, creating a sense that the environment is closing in on them. For general instructions on implementing music, see the article "How do I add music to my Unity, Unreal, or Godot game?".

  1. Import the "Footstep Foley Sound Effects" pack and the "Sinister Depths / Horror" pack into your Unity project.

  • Create a new C# script called CreakingWall and attach it to a wall GameObject in your scene.

  • Add a Box Collider component to the wall GameObject. Set Is Trigger to true and adjust the size of the collider to create a trigger zone near the wall. The size of the Box Collider will determine the range at which the creaking sound is audible. A larger collider means the sound will start further away, while a smaller collider means the sound will only be audible when the player is very close. Adjust the collider’s size and position to fine-tune the effect.

  • In the CreakingWall script, add the following code:

  • using UnityEngine;
    
    public class CreakingWall : MonoBehaviour
    {
        public AudioClip[] creakingSounds; // Array of creaking sound effects
        private AudioSource audioSource;
        public float detectionRange = 5f; // Range at which creaking sounds start
        public float maxVolume = 0.7f; // Maximum volume of the creaking sound
    
        void Start()
        {
            // Get the AudioSource component, or add one if it doesn't exist
            audioSource = GetComponent<AudioSource>();
            if (audioSource == null)
            {
                audioSource = gameObject.AddComponent<AudioSource>();
            }
            audioSource.playOnAwake = false;
            audioSource.spatialBlend = 1; // Make the sound 3D
            audioSource.rolloffMode = AudioRolloffMode.Linear; // Use linear rolloff
            audioSource.minDistance = 1f; // Minimum distance for the sound to be audible
            audioSource.maxDistance = detectionRange; // Maximum distance for the sound to be audible
        }
    
        void Update()
        {
            // Find the player
            GameObject player = GameObject.FindGameObjectWithTag("Player");
            if (player == null)
            {
                Debug.LogError("No GameObject tagged 'Player' found in the scene.  CreakingWall script will not function correctly.");
                return;
            }
    
            // Calculate distance to the player
            float distance = Vector3.Distance(transform.position, player.transform.position);
    
            // If the player is within the detection range, play the creaking sound
            if (distance <= detectionRange)
            {
                // Calculate volume based on distance
                float volume = Mathf.Lerp(0, maxVolume, 1 - (distance / detectionRange));
                audioSource.volume = volume;
    
                //If the audio isn't playing, start it and pick a new clip
                if(!audioSource.isPlaying)
                {
                    //Pick a new clip
                    AudioClip clip = creakingSounds[Random.Range(0, creakingSounds.Length)];
    
                    //Null check
                    if (clip != null)
                    {
                        audioSource.clip = clip;
                        audioSource.PlayOneShot(clip); // Play the sound effect once
                    }
                }
            }
            else
            {
                // If the player is out of range, stop the creaking sound
                audioSource.Stop();
            }
        }
    }
    

    Copy and paste the above code into your CreakingWall script. This script relies on the AudioSource component, which is responsible for playing the audio. Setting audioSource.spatialBlend = 1; makes the sound 3D, meaning its volume and panning will change based on the player’s position relative to the wall.

    Create a free account, or log in.

    Gain access to free articles, game development tools, and game assets.