kolessios / insource-legacy

Modified version of Source Engine "Alien Swarm". Not suitable for production use.
Other
13 stars 5 forks source link

[SUGGESTION] Implement OpenAL #11

Open FriskTheFallenHuman opened 7 years ago

FriskTheFallenHuman commented 7 years ago

OpenAL-Source: https://github.com/monokrome/openal-source

A small description of OpenAL Source:

This is a project which aims to embed OpenAL into the Source Engine with a few other useful/related tools. This project pushes to take Source to accomplish new feats which it hasn't been able to do with it's in-engine audio. OpenAL for Source provides many new features to your Source games in comparison to the audio system that comes inside of the engine.

Another benefit gained from a custom audio solution is that you have direct access to the audio code in the SDK, which will provide you with more flexibility in your source games.

Features:

Coming Soon:

kolessios commented 7 years ago

It's an old project, but I'll see if I can implement it.

FriskTheFallenHuman commented 7 years ago

also you can improve it because a comparison to FMOD

FriskTheFallenHuman commented 7 years ago

FMOD only operates under the client so it is more profitable Open AL

GamerDude27 commented 7 years ago

Why not try implementing Steam Audio the same way this OpenAL was embedded?

kolessios commented 7 years ago

It's something that I have planned, Steam Audio seems to have many advantages over OpenAL/FMOD, however both FMOD and Steam Audio need the information of the geometry of the world and for now I have no idea how to get this information from the code.

I still do not understand everything completely, but from what I have investigated the parts where "the world is drawn" they send it directly to a function that is found in closed source libraries.

Example: https://github.com/WootsMX/insource/blob/master/game/client/viewrender.cpp#L3720

So for now I'll put these audio engines aside until I can find more help.

FriskTheFallenHuman commented 7 years ago

Like To @GamerDude27 you can try but i suggest that if the Open AL Fail to load ( whatever the reason ) then load FMOD and successively but first uses Steam Audio and use FMOD or Open AL as a fallback if Steam Audio dont work on a pc

kolessios commented 7 years ago

The idea is that the user has an option to choose the audio engine he wants, since some consume more resources than others.

FriskTheFallenHuman commented 7 years ago

exactly, FMOD is the best for playing music during the loading screen like NMRH and for music transition in the main menu but i dont know if they can work for the JukeBox

kolessios commented 7 years ago

I think FMOD is very complete, both to play music and game sounds, as I said before it allows you to configure the geometry of the current map to get an improved sound system, but as I said, I'm stuck right there because I have no idea how to get the geometry of the map.

For now I think FMOD is the easiest to implement, OpenAL is old and probably requires much more work, Steam Audio is the most recent and the most "innovative" but I do not know how hard it is to implement and for what I know it can be very heavy to run.

FriskTheFallenHuman commented 7 years ago

example, see the occlusion system implemented in CSGO ( it uses Steam Audio =

kolessios commented 7 years ago

I know it and it sounds very good, but what worries me is that the code of the licensed version of Source Engine is necessary to obtain the information of the geometry of the map. Without this information, any audio engine that is incorporated will only be used for music.

FriskTheFallenHuman commented 7 years ago

so for now, what Audio Engine will you use until you figure the solution?

kolessios commented 7 years ago

The native of the engine. For now OpenAL is very buggy, FMOD works only with certain sounds and without taking into account things like geometry, DSP, etc and Steam Audio I'm just going to see if I can do the initial implementation.

GamerDude27 commented 7 years ago

Thinking of it, is Wwise something that could be implemented? https://www.audiokinetic.com/products/wwise/

kolessios commented 7 years ago

I will try to implement it. In any case Wwise or FMOD is necessary to implement Steam Audio in the future.