Note: By “audio middleware”, I mean products like Fmod, Wwise or OpenAL. And by “game engines” I mean publicly available options like Unity, Unreal Engine and Godot, as well as in-house AAA game engines the likes of DICE’s Frostbite, Rockstar’s RAGE, id Software’s id Tech, or Capcom’s RE Engine.
The only experience that I have with audio is through DAWs and VST plugins. The game engine that I’m trying to create has absolutely no support for audio right now, but I’m interested in learning how to implement support for audio and how that plays into events and stuff, as well as threads. I would like to be able to have control over audio (like how audio effects work) but I’d like to make sure it’s robust, stable and able to run on different machines.
I’m curious - how do robust game engines handle this problem? Do they use middleware like Wwise, Fmod or OpenAL? Do they use APIs like XAudio2, DirectSound, Core Audio, Pulse Audio or ALSA? Do they just go to the lowest level and use audio APIs like WASAPI, MME or ASIO? Or do they go even deeper than that? I’m struggling to figure out how this all works. Am I missing anything?