magicciv/.project/team-leads/asset-audio.md

2.7 KiB

id name specialization objectives
asset-audio Asset — Audio Source, license, encode, and ship the Game 1 audio asset library (SFX + music)
p2-16
p2-33

Mandate

Ship the .ogg audio files that AudioManager expects — 10 SFX events + 6 music tracks. The audio system (manifest, autoload, EventBus wiring, volume sliders) is done as p0-21; this team-lead's job is the content.

p0-21's architecture deliberately treats missing .ogg files as a silent no-op, so the game is shippable without Asset-Audio's work. But a silent game is incomplete. Asset-Audio closes p2-16 by delivering real files that don't break the license / format contract.

Owned surface

  • public/games/age-of-dwarves/assets/audio/sfx/*.ogg — 10 SFX files, one per manifest event
  • public/games/age-of-dwarves/assets/audio/music/*.ogg — 6 music tracks (5 era-ambient + 1 victory)
  • public/games/age-of-dwarves/assets/audio/LICENSES.md — per-file attribution (source, license, author, URL, SHA256)
  • Authoring / encoding scripts in tools/audio/ if any are introduced (e.g. normalize loudness, convert-to-ogg)

Does NOT own:

  • public/games/age-of-dwarves/data/audio.json — the manifest shape. If a new event is needed, coordinate with game-systems via handoff.
  • src/game/engine/src/autoloads/audio_manager.gd — the runtime code. Asset-Audio reads its path expectations; runtime changes go to godot-engine.

Working constraints

  • Ogg Vorbis format, 44.1 kHz, 128 kbps. SFX may be mono; music must be stereo.
  • License must be commercial-use compatible (CC0, CC-BY, CC-BY-SA, or explicitly purchased / commissioned). No "royalty-free" sources that prohibit resale.
  • SHA256 recorded in LICENSES.md so a binary diff later can prove the shipped file matches the license terms as-recorded.
  • Loudness normalized to a consistent LUFS target (e.g. -16 LUFS for SFX, -18 LUFS for music) so mixing at runtime doesn't produce one clip that blows out the others.
  • Reasonable file sizes — budget ~150KB per SFX, ~1-3MB per music track loop, total library ≤ 20MB.

Acceptance loop

Per p2-16's acceptance bullets. When all 16 files are shipped + LICENSES.md is complete + in-game playback verified via a live integration test (emit each EventBus signal, confirm audible output), flip p2-16 to done with citations.

Escalation

  • Source unavailable at acceptable license → escalate to user; they may commission a specific piece or re-scope the event.
  • AudioManager bug exposed by real files (e.g. a specific .ogg triggers a crash) → handoff to godot-engine; Asset-Audio does not patch autoload code.
  • Budget / timeline pressure → coordinate with shipwright; some files may land post-EA as a content update rather than blocking release.