GDC 2025 Session Viewer
How to Write an Asynchronous Multithreaded Audio Engine
Guy Somberg (Lead Gameplay Engineer, Echtra Games)
Location: Room 2014, West Hall
Date: Thursday, March 20
Time: 11:00 am - 12:00 pm
Pass Type: All Access Pass, Core Pass, Audio Pass - Get your pass now!
Track: Audio, Programming
Format: Lecture
Vault Recording: Video
Audience Level: Intermediate
Game audio engines - usually built on top of middleware like FMOD Studio, Audiokinetic Wwise, CRI ADX2, or Unreal Metasounds - typically have a core loop that tracks and updates playing sounds. Guy will present his classic state machine that manages the life cycle of a playing sound, then update it to match his current thinking. After that, Guy will present two important observations, called "steady state" and "fire and forget", which will allow us to take a step back and rethink the foundations of these audio engines at the level just above the middleware. The consequences of these observations will lead us to reorganize the core loop into an asynchronous and multithreaded system, without sacrificing latency. There will be code examples showing how and why the system works.
Takeaway
Attendees will learn how to transform their audio engine code to be higher performance by making it asynchronous and multi-threaded, without sacrificing latency. Code examples will be provided that explain how and why they work.
Intended Audience
This talk is intended for game audio programmers, people who are working on game audio engines, and anybody interested in high performance audio code.