Receber por email
← Voltar para o catálogo

game-audio

Utilize esta skill para projetar e implementar sistemas de áudio em jogos, abrangendo efeitos sonoros, música adaptativa, áudio espacial/3D e integração com middleware como FMOD ou Wwise. Inclui design de som, implementação, mixagem e otimização de áudio para games.

185estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add AbsolutelySkilled/AbsolutelySkilled

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/game-audio-absolutelyskilled/svg)](https://www.skillteca.com.br/skills/game-audio-absolutelyskilled)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

When this skill is activated, always start your first response with the 🧢 emoji.

Game Audio

Game audio encompasses every sound a player hears - from UI clicks to orchestral scores that shift with gameplay. Unlike film audio, game audio is non-linear and reactive: sounds must respond to player actions, environmental state, and game events in real time. This skill covers sound design fundamentals, adaptive music composition and implementation, spatial (3D) audio systems, and professional middleware tools (FMOD Studio and Audiokinetic Wwise) that power audio in most shipped titles.

When to use this skill

Trigger this skill when the user:

  • Needs to design or implement a sound effects system for a game
  • Wants to create adaptive or dynamic music that responds to gameplay
  • Is setting up spatial/3D audio with HRTF or attenuation curves
  • Needs to integrate FMOD Studio or Wwise into a game engine
  • Wants to architect a sound event system or audio manager
  • Asks about audio mixing, buses, ducking, or signal routing
  • Needs to optimize audio for memory, CPU, or streaming performance
  • Wants to build dynamic soundscapes or ambient audio layers

Do NOT trigger this skill for:

  • Music composition theory or notation (use a music theory skill)
  • Non-game audio production like podcast editing or mastering (use audio-production)

Key principles

  1. Audio is reactive, not scripted - Game audio cannot be authored linearly like

film. Every sound must be designed as a response to an event. Think in terms of event-to-sound mappings, not timelines.

  1. Less is more in the mix - Players process audio subconsciously. A clean mix

with 4-6 prominent sounds is more impactful than 20 competing layers. Use priority systems, ducking, and voice limits to keep the mix focused.

  1. Variation prevents fatigue - Any sound heard more than twice needs randomization.

Use round-robin containers, pitch/volume randomization, and multiple samples to prevent repetition fatigue.

  1. Spatial audio sells immersion - Proper 3D spatialization, distance attenuation,

and environmental effects (reverb zones, occlusion) make players feel present in the world without them consciously noticing.

  1. Middleware is your friend - FMOD and Wwise exist so audio designers and

programmers can work in parallel. Sound designers author in the middleware tool; programmers fire events from code. This separation is non-negotiable on any team larger than one person.

Core concepts

The event-driven audio model

Game audio is built on an event system. Game code fires named events (e.g., Player/Footstep, Weapon/Fire, Music/EnterCombat), and the audio middleware resolves those events into actual sounds. This decoupling means:

  • Sound designers can swap, layer, or randomize sounds without code changes
  • Programmers don't need to know which .wav file plays for a footstep
  • Events can carry parameters (surface type, velocity, health percentage) that

the middleware uses to select or modulate sounds

Adaptive music architecture

Adaptive music uses one or more of these techniques to respond to gameplay:

| Technique | Description | Best for | |---|---|---| | Horizontal re-sequencing | Rearranges musical sections in real time | Exploration, open-world | | Vertical layering | Adds/removes instrument layers based on intensity | Combat escalation | | Stinger/transition | Plays a short musical phrase to bridge states | State changes (win, lose, discovery) | | Branching | Pre-authored alternate paths at decision points | Story-driven moments |

Most shipped games combine 2-3 of these. Vertical layering + stingers is the most common pattern for action games.

Spatial audio pipeline

The spatial audio pipeline processes each sound source through:

  1. Distance attenuation - Volume decreases with distance (linear, logarithmic,

or custom curve)

  1. Spatialization - Panning across speakers/headphones using HRTF (head-related

transfer function) or simple panning

  1. Occlusion/obstruction - Raycast from listener to source; muffle if geometry

blocks the path

  1. Environmental effects - Apply reverb, echo, or filtering based on the

room/space the sound is in (reverb zones)

FMOD vs Wwise at a glance

| Aspect | FMOD Studio | Wwise | |---|---|---| | Pricing | Free under $200K revenue | Free under 1000 sound assets | | Learning curve | Lower - familiar DAW-like UI | Steeper - more powerful, more complex | | Strength | Rapid prototyping, indie-friendly | Large-scale projects, AAA pipelines | | Unity integration | First-class plugin | First-class plugin | | Unreal integration | Community plugin | Built-in integration | | Scripting | C/C++ API, C# wrapper | C/C++ API, Wwise Authoring API |

See references/fmod-guide.md and references/wwise-guide.md for setup and API details.

Common tasks

Set up an audio event system

Create a centralized audio manager that maps game events to middleware calls.

// Unity + FMOD example
public class AudioManager : MonoBehaviour
{
    public static AudioManager Instance { get; private set; }

    private void Awake()
    {
        if (Instance != null) { Destroy(gameObject); return; }
        Instance = this;
        DontDestroyOnLoad(gameObject);
    }

    public void PlayOneShot(string eventPath, Vector3 position)
    {
        FMODUnity.RuntimeManager.PlayOneShot(eventPath, position);
    }

    public FMOD.Studio.EventInstance CreateInstance(string eventPath)
    {
        return FMODUnity.RuntimeManager.CreateInstance(eventPath);
    }

    public void SetGlobalParameter(string name, float value)
    {
        FMODUnity.RuntimeManager.StudioSystem.setParameterByName(name, value);
    }
}

// Usage from game code:
AudioManager.Instance.PlayOneShot("event:/SFX/Explosion", transform.position);

Implement adaptive music with vertical layering

Layer instrument stems that activate based on a game parameter (e.g., threat level).

FMOD Studio setup:
1. Create a Music Event with multiple audio tracks (stems):
   - Track 1: Ambient pad (always playing)
   - Track 2: Percussion (activates at threat > 0.3)
   - Track 3: Brass/strings (activates at threat > 0.6)
   - Track 4: Full orchestra (activates at threat > 0.9)

2. Create a parameter "ThreatLevel" (0.0 to 1.0) on the event

3. Add volume automation on each track tied to ThreatLevel:
   - Track 1: Volume 1.0 across full range
   - Track 2: Fade in from 0.0 to 1.0 between threat 0.3-0.4
   - Track 3: Fade in between 0.6-0.7
   - Track 4: Fade in between 0.9-1.0
// Code side - update the parameter from game state
private FMOD.Studio.EventInstance musicInstance;

void StartMusic()
{
    musicInstance = AudioManager.Instance.CreateInstance("event:/Music/Exploration");
    musicInstance.start();
}

void Update()
{
    float threat = CalculateThreatLevel();
    musicInstance.setParameterByName("ThreatLevel", threat);
}

Configure spatial audio with attenuation and occlusion

// FMOD: Set 3D attributes on a looping sound source
public class AudioEmitter : MonoBehaviour
{
    [SerializeField] private string eventPath = "event:/SFX/Generator_Hum";
    private FMOD.Studio.EventInstance instance;

    void Start()
    {
        instance = FMODUnity.RuntimeManager.CreateInstance(eventPath);
        instance.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(transform));
        instance.start();
    }

    void Update()
    {
        instance.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(transform));
    }

    void OnDestroy()
    {
        instance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
        instance.release();
    }
}

For occlusion, raycast from the listener to the source and set a low-pass filter parameter based on hit count:

void UpdateOcclusion()
{
    Vector3 listenerPos = Camera.main.transform.position;
    Vector3 direction = tran
Compartilhar X LinkedIn