Gdzieś czytałem, że podobno jest użyte OpenAL. Więc to tylko kwestia jelenia.
With OpenAL Soft, it's definitely possible to create multiple contexts,
with multiple devices. Changing the context would only change which one
commands are issued to, and doesn't stop processing/output for
non-current contexts. There's not too much overhead with changing
contexts, though it would be a good idea to minimize changes by
updating the sounds, environments, and listener for each player
together. e.g.
alcMakeContextCurrent(Player1Ctx);
updatePlayer1Sounds();
updatePlayer1Listener();
alcMakeContextCurrent(Player2Ctx);
updatePlayer2Sounds();
updatePlayer2Listener();