Infinity: Battlescape has had its OpenAL audio engine switched to FMOD since v0.4.3.0. I feel feedback regarding audio should have its own thread.
First off, I just want it be known that video games that I’ve found to be most immersive, were the ones with the best audio engines. So for me this aspect is of critical importance.
Video clips of audial immersion in video games:
- This Battlefield: Bad Company 2 trailer convinced me to buy it just with that audio engine alone.
- Half-Life 2 had been my previous most immersive game also due to its audio engine: https://youtu.be/MQt1jtDBNK4?t=244 (University of North Carolina audio mod)
- Elite Dangerous Capital Ship arrival.
Here are audio related features I think would be worth implementing that would increase Audial Immersion within Battlescape:
- Different sounds for different perspectives
- First-person (2D stereo sound)
- Sound generator ship module (3D mono sound) - Off when damaged or when ship is near or is dead
- Speed of sound
- Instant in space
- Variety in speed while within different atmospheres of planets/moons
- Sound occlusion - obstructing objects decreases volume
- Recreated within Unity3D as a Video Demo:
- Equalizer (Implemented with v0.4.3.0)
- Low-pass filters
- Based on distances (High pitch disappears and bass remains)
Recreated within Unity3D as a Video Demo
- Doppler effect
- Degree always the same in space (Implemented with v0.4.3.0)
- Degree varies while within different atmospheres of planets/moons
Recreated within Unity3D as a Video Demo
Extra sound suggestions:
- Explosion shockwave - the wave when getting hit by the dust from the wreck
- Breaking the sound barrier, depends on the atmosphere of the planet or moon
Regarding general Battlescape audio feedback.
- The switch has fixed the crackling within the game. Still feels that it happens sometimes.
- Non-GUI sounds should all have slightly varied pitch.
- The general low quality explosion sound has to be replaced!!! It is the only one being played on a damaged station. Worse, at the same pitch level.
- Because of the switch to FMOD, currently it is not possible to Mod the audio parts of the game as all audio files are within FMOD bank files.
Other than that. IMHO the potential of FMOD is not currently used in any manner.
Doppler and muffle have already been implemented and will be available in next week’s patch. I thought it was pretty clear that the switch to FMOD was the first step only, the technical integration, and that more would be coming.
Good to hear.
Another issue that I remember is that build-up explosion sounds all suddenly stop when a dead ship vanishes.
Hmm, interesting, I’ll have to investigate that, but I have a feeling you might be right here, I noticed myself some sounds strangely getting cut before the end.
Was confirmed, some sounds were attached to 3D objects and the destruction of the 3D object instantly stopped whatever sounds were attached to it. I’m now letting the sounds play until the end. Will be fixed in next patch.
As expected, just these two additions significantly increased my immersive experience. Crossing fingers for other mentioned features in my second post to be implemented.
I attempted to create mod an audio mod with FMOD. With a few tools it is possible to extract .bank files and recreate them in FMOD. But either the sequence also has to be the same or the GUIDs to even replace audio files.
A blank “master” FMOD project would help, post explaining it in FMOD Discourse forum with, coincidentally, another flying simulation game: https://qa.fmod.com/t/modding-tools-access-replacing-sound/13689/2
I think for modding you don’t have to replace / modify the current fmod project. Just create a new one, and modify the audio.xml to reference it. It is possible to add more .bank files in it. The only question is how the master bank works, as you’d have more than one, I haven’t investigate yet if that would be an issue.
For example, I recreated a near 1to1 clone of General.bank, with only a 10 kb difference. Battlescape crashes claiming of not finding the events, when I attempt to replace the original. (recreated on the right, indexes don’t match)
Bank files do not contain strings to the events just the used audio file names, Master Bank Strings has the events.
Even if I want to mod one audio category, I need to recreate the Master Bank that contains information for all banks.
 Attaching another Master Bank to Audio.xml causes a FMOD Error 28 crash (‘An error occurred that wasn’t supposed to. Contact support.’) even if event names and bank names don’t conflict with original.
Currently in I:B there is still no difference between space and atmosphere in regards to sound. EDIT: (I stand corrected, didn’t test, was judging from stream)
I take it that the planets within Battlescape haven’t been terraformed and any that have a “air speed” warning have atmospheres. How much difference would composition of gas make in terms of speed? From looking at the wiki about it, in our air it is more about the temperature. @JonnyRedHed and/or @Kichae might know better?
There’s a difference in atmospheres: sounds are not muffled. Well, more exactly, it depends on atmospheric density. So at low altitudes, in a dense atmosphere, the sounds aren’t muffled ( or not as agressively by distance ) anymore.
But yeah, other than that, there are no other differences than sounds in space. We could add more audio filters in FMOD to “deform” the sound in certain atmospheres but… real-time filters are pretty expensive. We’d have to test and see how it impacts performance.
But the I:Bs Audio Engine does get its own its own CPU thread, right? Is it sometimes surpassing usage of the CPU core already?
The speed of sound effect would only be about delaying sounds, so it should not impact performance.
And if I am not mistaken, the Doppler effect in FMOD shouldn’t be an expensive filter as it changes the pitch of a sound. But if it is, a distance limit could be added to it, say… disabled for anything beyond 2km.
Correct, it’s multi-threaded. I was speaking in the context of its own thread. If the audio thread becomes too “busy”, it can start to drop sounds, cause audio glitches and various other issues. So the load has to be balanced with the number of sounds you’re playing concurrently. If we played less sounds, we could double the load ( and have more filters ). But of course… we have a lot of sounds. A lot more than in other games. Especially in large battles… every single little visual effect has its own sound, so it’s not hard to imagine how in a typical situation we have 100s of sounds.
Note: I already optimized it ( read again the 1-2 dev updates when we introduced FMOD, IIRC I mentionned fixing the audio glitches, that’s exactly what it was ) by being smarter and not playing sounds that are too far away, or having a too low volume compared to other sounds. You don’t need to hear the little side thruster from an interceptor that is 10 Km away.
Composition plays a significant role in sound speed through a gas. While it increases with temperature, it decreases with the average molecular mass of the gas.
Sound travels through a gas essentially by giving the molecules an extra little jolt of momentum/energy, pushing them toward other molecules. They then collide and transfer that energy/momentum along to the next molecules. The hotter the gas, the faster the molecules are already moving, and since the movement of the molecules is what transfers the sound, the higher the sound speed; the lighter the molecules, the bigger the speed boost will be from the added energy/momentum, and thus the higher the sound speed (this is why voices get all high pitched when breathing helium – the speed of sound is much higher in He than in the standard ground level air mix!).
The speed of sound is also slower in gasses that experience hydrogen bonding or other strong attractive intermolecular forces, since they increase the amount of time over which the molecules will interact.
So the difference between the planets/moons within I:B should be pretty noticeable and not just between 280-340 m/s? Let alone differences in frequency modulation as the sounds pass through the medium.
Yeah, there would likely be some notable differences in speed. The larger a planetary body is, the more readily it can hold on to lighter elements, and the lower the average molecular mass will be. This would result in higher sound speeds and higher sound pitches at the same temperature as you move to planets of higher mass.
Mind you, this is a general trend. There are counter-examples in our own solar system: Venus and Mars both have atmospheres with a mean molecular weight of 43 g/mol, even though Venus is significantly more massive. But Venus is an odd duck in pretty much every way.
Then, of course, you have to take into consideration that less massive bodies can hold on to atmospheres with lower molecular weights the colder they are (planets lose the lighter elements due to them essentially boiling off into space; with less heat, there is less chance of losing those lighter elements). For this reason, Pluto has an atmosphere with a mean molecular weight comparable to that of Earth’s. But, of course, the speed of sound on Pluto would be very different compared to on Earth due to the extreme temperature difference.