Skip to content

[Audio] Design Distinct Elemental Audio Signatures & Satisfying Combo Sounds (AUD-ELEM-1) #603

Description

@niyazmft

Description

Context:
Emberfall's audio system is metadata-driven with Burden captioning support, but currently uses placeholder synthesized SFX. The elemental combo system (Fire/Oil/Wind/Water) is a natural fit for distinct, satisfying audio signatures.

Problem Statement:
Community research shows audio is a high-leverage differentiator in tactical games. Players rely on sound cues to confirm actions, anticipate enemy moves, and feel the impact of combos. Generic or placeholder audio undermines the strategic satisfaction of a well-executed combo.

Technical Rationale:
Godot 4.6.3's AudioStreamPlayer + AudioServer allow bus-based mixing. The metadata-driven pipeline already supports captioning; extending it with layered elemental SFX is straightforward.

Functional Requirements

  • FR1: Design Elemental Audio Palette: each element has a base SFX, combo SFX, and ambient loop.
    • Fire: crackling ignition (base), explosive burst (combo), low campfire crackle (ambient)
    • Water: liquid splash (base), cascading gush (combo), gentle stream (ambient)
    • Wind: gust whoosh (base), tornado whirl (combo), gentle breeze (ambient)
    • Oil: viscous pour (base), igniting splatter (combo with Fire), dripping (ambient)
  • FR2: Implement Combo Satisfaction Crescendo: a short musical sting that scales in intensity based on combo chain length (2-element = simple, 4-element = orchestral hit).
  • FR3: Add Enemy Intent Audio: subtle directional audio cue 1 second before enemy acts (e.g., sword unsheathe, spell charge), giving attentive players a split-second warning.
  • FR4: Ensure all audio supports Burden captioning — every SFX has a [SOUND: description] metadata tag for deaf/hard-of-hearing players.
  • FR5: Implement Dynamic Audio Bus: combat SFX duck ambient music by 6dB during combo execution, then restore over 2 seconds.

Acceptance Criteria (DoD)

  • All 4 elements have distinct, recognizable SFX in a blind audio test (≥80% accuracy).
  • Combo crescendo sting plays correctly for chains of 2, 3, and 4+ elements.
  • Enemy intent audio is audible but not alarming; does not overlap with player action SFX.
  • Burden captioning covers 100% of new SFX events.
  • Audio bus ducking does not cause clipping or audible gaps.
  • Unit tests for audio event queue: ≥5 cases (rapid combos, overlapping enemies).
  • CI passes: gut suite green.

Edge Cases

Given When Then
Player has hearing impairment Burden captions on [SOUND: Fire ignites with a sharp crack] displayed
Multiple combos trigger simultaneously Audio plays Polyphonic limit: max 4 SFX + 1 sting; oldest fades
Player mutes SFX but keeps music Combo occurs Visual-only satisfaction (screen flash + particle burst)
Audio device switched mid-combat (Bluetooth dropout) Device reconnects Godot auto-resumes on default bus; no crash

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    audioAudio & Sound Effectscreative-assets-agentTasks assigned to creative-assets-agentenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions