4.14.1 Footsteps undesirable behaviour, maybe bug
Posted: Sat Mar 01, 2025 9:13 pm
I have noticed a potential problem when using footsteps on a terrain that has both footsteps and a splash defined. The problem is, you get both sounds.
There is also a related problem with 3D bridges.
Test file attached. Just load it and start Doom2 Map01
Minimal required lumps are included.
To make things easier, there is no music on the map.
a)
To the right of the player start is a strip of FLOOR0_3.
This should play "misc/chat" as a footstep.
It also has a splash with "world/quake" set as a small sound and "world/spark" set as its main sound.
If you run along it, you hear "misc/chat" and "world/quake" playing with every footstep.
I don't know if this was intended, but I only expected to hear "misc/chat".
(If you jump up and down on it (without otherwise moving), you hear "world/spark", and only "world/spark" as expected. (i.e. you trigger the main splash sound))
(If you shoot it you hear "world/quake", and only "world/quake", as expected. (i.e. you trigger the small splash sound))
IMO the combined effect of footsteps and splashes playing is undesirable behaviour because it means that the small splash sound is being played with every footstep.
This means that you either:
● have to accept that the small sound will be made whenever you walk on this floor, as well as any (perhaps) quieter walking sounds you might want to allocate to the terrain (which are likely to be drowned out by the splash sound),
● or you forgo the small sound and leave it all up to the footsteps. However, that would mean that small items and bullet puffs hitting the floor will not make the small sound as they would with a splash sound allocated to it,
● or you forgo the footstep sound, and leave it up to the splash sound. This would allow small items hitting the floor to make a sound, but it has to be a sound that is acceptable as a footstep and not some other kind of splash/impact. Moreover, the footstep volume CVAR does not affect the volume of splashes, so the player would have no control over how loud such splashes are.
So, for example, you can't set up a liquid that: if you walk on it you get a quiet sloshy sound; if you shoot at it you get a small splash sound, and if you jump on it you get the big splash sound.
The bottom line is that a splash is a splash, and a footstep is a footstep. They have different purposes and a splash sound really shouldn't be getting played every time a footstep happens.
b)
On the left, just so that it can be tested on its own, is a strip of FLAT4.
This should play "misc/chat2" as a footstep sound.
It does not have a splash defined, so that's all you should hear. Jumping on it or shooting it will be silent.
c)
In the middle of the map there is a 3D bridge.
On the top surface, there is FLAT4.
The floor below the bridge is FLOOR0_3.
Expected behaviour: walk across the bridge and you should hear the "tick, tick, tick" of "misc/chat2".
Actual behaviour: walk across the bridge and you hear "misc/chat2" and "world/quake".
In other words, it is playing the footstep sound from the top of the bridge (correct behaviour) and it is also playing the small sound from the splash attached to the FLOOR0_3 flat below the bridge (not correct).
This was noticed in an actual map where a metal bridge crossed a pool of lava. As I walked across the bridge, I could hear the "clank, clank, clank" of footsteps on the bridge, and the lava sizzling with every footstep around 200+ map units below.
What I feel should be happening:
● When walking/running on a floor, only the footstep sounds should play.
● When a small item (mass <10) hits a floor, only the smallsound from any allocated splashes should play.
● When a big item (mass >10) hits a floor, only the main sound from any allocated splash should play.
● When walking on a 3D floor over a terrain, only the footsteps from the top of the 3D floor should be heard. The floor below the bridge should not be making any noises/splash sounds at all.
So, what I think is happening is that when you walk on a flat that has a splash allocated, the footsteps code not only generates the footstep sounds, but it also triggers the smallsound from any splashes allocated to the terrain - both when you walk directly on it and even if you are walking above it on a 3D bridge. How easy it is to stop that happening, I have no idea.
It took me a while to unpick what was happening, so I hope I have got it right, and I hope the above makes sense.
TLDR version.
1) If you have a splash and footsteps allocated to a flat, the footsteps sound for the terrain and the small sound from the splash will be played with every footstep. I feel that footsteps should be made when walking, and the small sound should only be heard for its original intent - when small things (mass <10 IIRC) hit the floor.
2) If a 3D bridge passes over a floor with that has a terrain allocated to it which has a splash, the small sound for that splash will be played, even though the player is not actually on that floor, but passing over it on the 3D bridge.
There is also a related problem with 3D bridges.
Test file attached. Just load it and start Doom2 Map01
Minimal required lumps are included.
To make things easier, there is no music on the map.
a)
To the right of the player start is a strip of FLOOR0_3.
This should play "misc/chat" as a footstep.
It also has a splash with "world/quake" set as a small sound and "world/spark" set as its main sound.
If you run along it, you hear "misc/chat" and "world/quake" playing with every footstep.
I don't know if this was intended, but I only expected to hear "misc/chat".
(If you jump up and down on it (without otherwise moving), you hear "world/spark", and only "world/spark" as expected. (i.e. you trigger the main splash sound))
(If you shoot it you hear "world/quake", and only "world/quake", as expected. (i.e. you trigger the small splash sound))
IMO the combined effect of footsteps and splashes playing is undesirable behaviour because it means that the small splash sound is being played with every footstep.
This means that you either:
● have to accept that the small sound will be made whenever you walk on this floor, as well as any (perhaps) quieter walking sounds you might want to allocate to the terrain (which are likely to be drowned out by the splash sound),
● or you forgo the small sound and leave it all up to the footsteps. However, that would mean that small items and bullet puffs hitting the floor will not make the small sound as they would with a splash sound allocated to it,
● or you forgo the footstep sound, and leave it up to the splash sound. This would allow small items hitting the floor to make a sound, but it has to be a sound that is acceptable as a footstep and not some other kind of splash/impact. Moreover, the footstep volume CVAR does not affect the volume of splashes, so the player would have no control over how loud such splashes are.
So, for example, you can't set up a liquid that: if you walk on it you get a quiet sloshy sound; if you shoot at it you get a small splash sound, and if you jump on it you get the big splash sound.
The bottom line is that a splash is a splash, and a footstep is a footstep. They have different purposes and a splash sound really shouldn't be getting played every time a footstep happens.
b)
On the left, just so that it can be tested on its own, is a strip of FLAT4.
This should play "misc/chat2" as a footstep sound.
It does not have a splash defined, so that's all you should hear. Jumping on it or shooting it will be silent.
c)
In the middle of the map there is a 3D bridge.
On the top surface, there is FLAT4.
The floor below the bridge is FLOOR0_3.
Expected behaviour: walk across the bridge and you should hear the "tick, tick, tick" of "misc/chat2".
Actual behaviour: walk across the bridge and you hear "misc/chat2" and "world/quake".
In other words, it is playing the footstep sound from the top of the bridge (correct behaviour) and it is also playing the small sound from the splash attached to the FLOOR0_3 flat below the bridge (not correct).
This was noticed in an actual map where a metal bridge crossed a pool of lava. As I walked across the bridge, I could hear the "clank, clank, clank" of footsteps on the bridge, and the lava sizzling with every footstep around 200+ map units below.
What I feel should be happening:
● When walking/running on a floor, only the footstep sounds should play.
● When a small item (mass <10) hits a floor, only the smallsound from any allocated splashes should play.
● When a big item (mass >10) hits a floor, only the main sound from any allocated splash should play.
● When walking on a 3D floor over a terrain, only the footsteps from the top of the 3D floor should be heard. The floor below the bridge should not be making any noises/splash sounds at all.
So, what I think is happening is that when you walk on a flat that has a splash allocated, the footsteps code not only generates the footstep sounds, but it also triggers the smallsound from any splashes allocated to the terrain - both when you walk directly on it and even if you are walking above it on a 3D bridge. How easy it is to stop that happening, I have no idea.
It took me a while to unpick what was happening, so I hope I have got it right, and I hope the above makes sense.
TLDR version.
1) If you have a splash and footsteps allocated to a flat, the footsteps sound for the terrain and the small sound from the splash will be played with every footstep. I feel that footsteps should be made when walking, and the small sound should only be heard for its original intent - when small things (mass <10 IIRC) hit the floor.
2) If a 3D bridge passes over a floor with that has a terrain allocated to it which has a splash, the small sound for that splash will be played, even though the player is not actually on that floor, but passing over it on the 3D bridge.