fabiangreffrath / woof

Woof! is a continuation of the Boom/MBF bloodline of Doom source ports.
GNU General Public License v2.0
207 stars 32 forks source link

[Feature Request] SNDINFO (Ambient Sound) Support #1385

Open JohnMason1986 opened 8 months ago

JohnMason1986 commented 8 months ago

Main goal of this feature request is to untie hands of mappers that is sticking with such map formats like Boom and/or MBF21 by letting them to use ambient sounds.

There were an idea of ability to create actors that can represent ambient sounds and chosen tech was MBF21. Sadly, but this idea wasn't so successfull, since long ambient sounds became problematic to use. In short terms, you have two options:

1) To use one long sound that can be abrupted by pausing the game neither by walking too far away from actor. And after that your only option is to wait enough tics to pass, so actor can go to its "Loop" pointer. 2) To use several sounds, where each of them must be ~= 1 second long (equivalent of 35 tics in "Doom"). With this each game's second that passed, every next part of the sound can be heard whenever player gonna pause the game or walk too far away.

Even with 2nd option there is a loud'n'annoying popping sound that can be clearly heard every second, so this option still can't be used freely and w/o any additional problems. Here (Streamable) you can see this option in action. I can recommend to use a headphones to understand the problem.

After some research I found out that in the past there were some discussions about implementing a support of SNDINFO tech, so even on Boom/MBF21 maps mappers can use it to define a true ambient sounds easily and w/o any problems.

This feature were implemented in "DSDA-Doom" V0.27.0 and documentation about it can be found here (GitHub).

On the closing note I can add that hearing is very powerful human's sense among vision. Sure, map in videogame can have astonishing visual design, but ambient sounds is those working gnomes who makes it feeling alive. I am in love with mapping, but I am in more bigger love with sounding ambience as phenomenon itself. With this feature, many maps can become more convincing, since ambient sounds themselves are always surrounds us in real world. Also it is another important step to show off that even Boom/MBF21 maps can have such neat things inside.

P.S.: Adding showcase video from "Streamable" as separate file just in case... https://github.com/fabiangreffrath/woof/assets/156240806/6dc185b8-3ee5-4a6c-94e5-7050bb222c60

ceski-1 commented 7 months ago

Sadly, but this idea wasn't so successfull

Have you looked at the ambient sounds in Dimension of the Boomed? They seem to work okay.

  1. To use one long sound that can be abrupted by pausing the game neither by walking too far away from actor. And after that your only option is to wait enough tics to pass, so actor can go to its "Loop" pointer.
  2. To use several sounds, where each of them must be ~= 1 second long (equivalent of 35 tics in "Doom"). With this each game's second that passed, every next part of the sound can be heard whenever player gonna pause the game or walk too far away.

For the first item, I noticed this limitation with every source port I tried except GZDoom, which is able to seamlessly resume sounds. I don't know if can be addressed for Woof but I will take a look. I don't quite understand the wording for the second item, but it sounds related.

Even with 2nd option there is a loud'n'annoying popping sound that can be clearly heard every second, so this option still can't be used freely and w/o any additional problems. Here (Streamable) you can see this option in action.

Does this happen with a more recent Woof build? Some sound changes were made after Woof 12.0.0/12.0.2. If you are on Windows, you can try one of the automated builds (one of the artifact links at the bottom of the page).

Also, can you share the wad shown in that video? Or preferably, can you make a small test room with just the ambient sound placed in it and upload that here? You will have to zip the wad first before attaching it.

After some research I found out that in the past there were some discussions about implementing a support of SNDINFO

I like this feature too, so I'll see if I can implement it in the future.

JohnMason1986 commented 7 months ago

Also, can you share the wad shown in that video?

Sure thing! Here it is: AmbSnd.zip

It can be opened in the level editor named "Ultimate Doom Builder" and there you can find a winter humming ambient sound in the two snowy rooms (where I tried to do a falling snow via middle textures of the lines and via custom made actors).

If you gonna use resource editor named "Slade", you can find resulting DeHackEd file along with DecoHack sources (if you want to take a closer look).

On the map itself there is various ambients, like one from the method №1 (that can be easily abrupted) and also one from the method №2 (that have few ~1 second long pieces with popping sound every playback).

ceski-1 commented 7 months ago

Sure thing! Here it is: AmbSnd.zip

This is perfect, thank you.

ceski-1 commented 1 month ago

@JohnMason1986 I haven't forgotten about this feature request but the implementation will be a little trickier than expected (as is often the case with Doom's source code), so I've been putting it off for now.