Daily free asset available! Did you claim yours today?
The cover for Trapped in Terror: Sound Design for Horror Games with Strafekit

Trapped in Terror: Sound Design for Horror Games with Strafekit

February 10, 2025

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.

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

  3. 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.

  4. 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.

The audioSource.rolloffMode = AudioRolloffMode.Linear; line sets the rolloff mode to linear, meaning the volume decreases linearly with distance. The minDistance and maxDistance variables control the range at which the sound is audible, where minDistance is the distance at which the sound reaches maximum volume, and maxDistance is the distance at which the sound becomes inaudible. This allows you to fine-tune the spatial audio effect.

To ensure this script functions correctly, it’s important to handle potential errors. The if (player == null) check prevents a NullReferenceException if there’s no GameObject tagged as “Player” in the scene.

  1. In the Unity editor, drag the desired creaking floorboard audio clips from the imported foley pack to the creakingSounds array in the CreakingWall script.

  2. Adjust the detectionRange and maxVolume variables to fine-tune the effect.

    • A smaller detectionRange will cause the creaking to start only when the player is very close, creating a sense of immediate danger.
    • A lower maxVolume will make the creaking more subtle, building tension without being immediately alarming. A higher maxVolume can create a more jarring and startling effect.
  3. Make sure your player GameObject has a Collider, a Rigidbody component, and that its Tag is set to “Player.” To set the tag, select the Player GameObject, and in the Inspector window, locate the Tag dropdown menu at the top. Click the dropdown and select “Player.” If “Player” is not an option, click “Add Tag” and create a new tag named “Player.” You may want to add friction to the Rigidbody by reading "How to add Friction to a Rigidbody in Unity".

Now, as the player gets closer to the wall, the creaking sound will gradually increase in volume, creating a sense that the wall is about to collapse. Be sure to use 3D spatial audio to enhance the illusion of sounds emanating from different points in the environment. Use the Audio Mixer for added environmental effects, such as reverb, following the guidance in "Introduction to Post-Processing Effects in Unity". For more details on one-shot audio playback, see the Unity documentation for AudioSource.PlayOneShot(). The PlayOneShot function plays an audio clip independently of the AudioSource’s currently assigned clip. This means that even if the same creaking sound is triggered repeatedly, it will play each time without interrupting the previous playback. However, excessive use of PlayOneShot can lead to overlapping sounds, creating a messy and unrealistic effect. To avoid this, consider implementing a timer or a cooldown period that prevents the sound from being triggered too frequently.

To create more realistic and immersive soundscapes, adjust the audio source settings for 3D spatial audio, including details about falloff modes, attenuation curves, and min/max distances. Different falloff modes change the rate at which sounds attenuate with distance. Linear rolloff provides a realistic effect, while logarithmic rolloff can exaggerate distance, creating a sense of spaciousness.

For more advanced procedural audio generation, you may consider using Perlin noise; read "What is Perlin noise?" to learn more.

Advanced Layering Techniques: Weaving a Tapestry of Fear

The key to effective claustrophobic horror is layering. Don’t rely on single sounds in isolation. Combine different elements to create a constantly evolving and unsettling soundscape.

Ambience and Subtlety: The Unseen Pressure

Start with a base layer of subtle ambient noise, such as a low hum, a faint wind, or the distant sound of dripping water. This creates a sense of constant unease, even when nothing overtly scary is happening.

Panning and Directionality: Sounds from the Shadows

Use panning to create a sense of space and direction. A sound that seems to be coming from behind the player or from within the walls can be incredibly unnerving. Experiment with HRTF (Head-Related Transfer Function) spatialization for a more realistic 3D audio experience. For example, layer the ‘WaterDrip_01.wav’ with a very faint, heavily compressed ‘Whisper_03.wav’ from ‘Sinister Depths,’ panned slightly to the left, to create a subconscious sense of a hidden presence.

Dynamic Variation: The Rhythm of Fear

Vary the intensity and frequency of sounds to keep the player on edge. A sudden creak, followed by a period of silence, can be more effective than constant noise. You can use Random.Range to subtly vary the pitch or volume of sounds. You can also use coroutines to create randomized delays between sounds; see "A Short Guide: How to Check if a Coroutine is Running in Unity". For example, the following code snippet will randomly change the pitch of the AudioSource:

using UnityEngine;
using System.Collections;

public class RandomPitch : MonoBehaviour
{
    private AudioSource audioSource;

    void Start()
    {
        audioSource = GetComponent<AudioSource>();
        StartCoroutine(RandomizePitch());
    }

    IEnumerator RandomizePitch()
    {
        while (true)
        {
            // Generate a random pitch between 0.8 and 1.2
            float randomPitch = Random.Range(0.8f, 1.2f);
            audioSource.pitch = randomPitch;

            // Wait for a random time between 1 and 5 seconds
            float randomDelay = Random.Range(1f, 5f);
            yield return new WaitForSeconds(randomDelay);
        }
    }
}

Reverb and Echo: The Walls Have Ears

Use reverb and echo effects to emphasize the feeling of being trapped within a confined space. Experiment with different reverb settings to simulate different room sizes and materials. Unity’s Audio Mixer provides built-in reverb effects you can use to adjust decay time and density.

  • Plate Reverb: Creates a metallic, artificial sound that works well in industrial settings.
  • Hall Reverb: Simulates a large, empty space, even if the visuals suggest otherwise, creating a sense of disorientation.
  • Convolution Reverb: Allows you to use real-world impulse responses to simulate specific environments, adding a layer of realism.

To enhance the feeling of claustrophobia, consider these sound design techniques:

  • Mixing Levels: Pay close attention to the levels of each sound in your soundscape. Quiet, subtle sounds can be just as effective as loud, jarring ones. Use compression to even out the dynamic range and create a sense of pressure. For example, compress the water dripping sounds to make them more consistent and unsettling.
  • EQing: Use equalization (EQ) to shape the frequency content of each sound and make them fit together better. Cut out unnecessary low frequencies to reduce muddiness and boost high frequencies to create a sense of tension. For example, slightly boost the high frequencies of creaking wood sounds to make them more brittle and unnerving.

Less is More: The Power of Silence

Sometimes, the most effective sound is no sound at all. A sudden, unexpected silence can be incredibly jarring and disorienting, especially after a period of intense auditory stimulation. Use silence strategically to amplify tension and create a sense of unease. Ensure the silence is used intentionally, and not because of a broken script. For instance, if the player is navigating a noisy, industrial environment, abruptly cutting the sound for a few seconds can create a moment of heightened anxiety, as they wait for the sounds to return. Use gradual fades to build tension leading up to a moment of silence.

Nextframe Integration for Enhanced Horror: AI-Powered Terror

Nextframe offers tools to refine your claustrophobic audio experience, including the following:

Copilot for Specific Sound Design Guidance: The AI Oracle

Use Copilot to get suggestions for complementary sound effects based on the specific type of confined space you’re designing. Instead of just asking for sound ideas, prompt Copilot to suggest specific parameters for sound effects.

  • Example: “I’m designing a claustrophobic tomb level. Suggest reverb parameters (decay time, density) that would enhance the feeling of being trapped. I want it to feel like the player is surrounded by stone. Specifically, suggest parameters for Unity’s Audio Mixer Reverb effect.”
  • Example: “I’m working on a scene set in a cramped spaceship corridor. Suggest sound effects from Strafekit that would emphasize the feeling of being surrounded by machinery and metal. Suggest at least five unique sound effects. For each sound effect, suggest modifications to the pitch or volume to further augment the feeling of claustrophobia. Return the modifications as a numbered list.”
  • Example: “I’m designing a scene where the player is trapped in a flooding basement. Suggest Copilot prompts that will help me find suitable sound effects for this environment. I want to emphasize the feeling of rising water and impending doom.”

Read "How to Use Nextframe’s Copilot to Solve Game Design Challenges" to get the most out of Copilot.

Symphony for Custom Ambient Tracks: The Soundtrack to Fear

Use Nextframe’s Symphony to generate a custom ambient track that subtly reinforces the feeling of claustrophobia. Experiment with drones, dissonant chords, and unsettling melodies to create a truly oppressive atmosphere. For example:

  • Generate a low, droning ambient track in the key of C minor, with a slow tempo (60 BPM) and instruments like cello and bassoon. Set the “dissonance” parameter to 0.75 to introduce unsettling harmonies. This will create a feeling of oppressive dread. Set the “mood” to "ominous".
  • Use Symphony to generate a track with dissonant intervals, a descending melodic line, and a lack of harmonic resolution to create unease. Set the “resolution” parameter to 0.25 to prevent the music from resolving to a satisfying cadence. This will leave the player feeling constantly on edge. The tempo should be around 70 BPM, and the genre should be "dark ambient".

See "How do I add music to my Unity, Unreal, or Godot game?" for instructions on implementing audio.

Before using Nextframe to develop your game, make sure to create a solid GDD (Game Design Document), to help solidify game design principles. Include the following link: "How to Write a Game Design Document".

Conclusion: Unleash the Terror Within

By focusing on the subtle details of foley sound and understanding the psychology of confined spaces, you can create a horror game that truly gets under the player’s skin. With Strafekit’s extensive library of high-quality, royalty-free foley sounds and the powerful AI tools of Nextframe, you have everything you need to craft a soundscape that will leave your players feeling trapped, suffocated, and utterly terrified.

Ready to create some terrifying confined spaces? Explore these asset packs on Strafekit today and unleash the sounds of suffocation:

Share your claustrophobic soundscapes or game projects using Strafekit with the Wayline community!