OpenArena / engine

OpenArena modifications to the ioquake3 engine
http://openarena.ws
GNU General Public License v2.0
212 stars 50 forks source link

Modularizing the audio/video renderers #76

Closed NeonKnightOA closed 2 months ago

NeonKnightOA commented 2 years ago

This is something we talked on Discord.

3DJ implemented support for OpenAL Soft. The problem is that such support replaces OpenAL HW rather than having it as an alternative. And, well, we don't have exactly a fond memory of when IOQ3 implemented SDL in an invasive way (long story short: it was the beginning of all the big problems).

The ideal solution would be two engine cvars controlling the audio and video devices. This has lots of utilities, among them helping troubleshooting and allowing new devices to be integrated.

That said, unlike gamecode, I don't have enough knowledge of engine to do something about it. So I'm leaving this as just an issue.

The-Gig commented 2 years ago

IDK... Maybe different "s_useopenal" numbers may in turn set different "s_aldriver" values, to use different versions of the library (if they come with different filenames)?

Also, trying to figure out the licensing, it looks like official openal versions changed licenses various times, like bsd then lgpl then proprietary. While Openal Soft is lgpl... And it looks like there are also a few more implementations existing: https://en.wikipedia.org/wiki/OpenAL#Implementations

The-Gig commented 2 years ago

To clarify what 3DJ did, he posted this package and said "I basically just added an OpenAL Soft DLL to the game folder to force the game to use it instead of regular OpenAL. I haven't used it in any of those OSs but this might work on Linux" OpenArenaHRTF-3DAudio.zip