Soundscapes within themselves are made up of different sounds. Each sound you hear within an
env_soundscape is a separate sound that you could add through an
ambient_generic. Through a text file though, you can tell specifically what sounds to play and when to play them whilst that
env_soundscape is active. No need to add a bunch of
ambient_generics to a map and use a
logic_timer and all that jazz to give a random effect, a soundscape does it automatically.
Some soundscapes come with parameters with certain sounds that can be played at specific locations specified in the text file via an
info_target entity, basically working like it's own separate
ambient_generic, but tied to the rest of the soundscape and given specific FX. Soundscapes loop automatically, and can sound differently with every loop making it virtually impossible to tell it's loopable, because each sound is overlayed over the others at certain intervals giving it a more natural effect. Soundscapes automatically play everywhere, and even then, you can have certain sounds that only play from certain positions, giving them location, but yet staying in-sync with the rest of the sounds within that soundscape. For example, the loudspeaker and alarms in HL2 are randomly played making sure not to repeat the same sound until all the different loudspeaker sounds are played. While at the same time the alarm siren can go off at its own pace randomly giving the two an overlayed effect making it seem more happenstance than scripted.
As you can see, soundscapes are capable of doing so much more than just one sound being played at-a-time by an
ambient_generic, and are easier to set up through the text file vs. setting up multiple
ambient_generics through the I/O system.
Also, the fade effect between different
env_soundscapes make it nice for the designer, to make sure that there is an atmospheric sound playing at all times for the player, and that doesn't sound repetitive.
-And that's what makes
env_soundscapes so much better than
ambient_generics!
Blog:
www.playingarchitecture.net
LinkedIn:
Eric Lancon
Twitter:
@Riven202