Defining Surface Type

One of the greatest potentials for diversification, and something that immediately communicates a sense of place to the player, is the inclusion of different footstep surface types. While these may be represented in the game visually, it may take extra effort to communicate information about the surface type a character is traversing as a switch. Ideally the game engine has a way to specify the surface type of a traversal area, and this specification can be posted to Wwise as a switch.

[Note] Programmer Note

There is a helpful footstep integration example that comes as part of the Wwise Programmer SDK.

[Note] Designer Note

Once surface type is communicated to Wwise, there are other applications and uses for this information. If, for instance, you were building a dynamic rain system, you could use surface type to change rain drop impact playing back positionally from different surfaces in the game world. Also, most physics impact sounds benefit from knowing the surface material being impacted. As an example, the sound of a wood plank falling on dirt will have a much duller sound than on concrete.

As in the previous section, we’ll create a new switch container and subscribe it a new Surface_Type switch group (1). We can then add the random containers to the appropriate switches for either dirt or forest in the assigned objects area of the Content Editor (2).

Adding the Surface_Type switch group, and assigning objects

Using a multi-level switching system contributes to an organized and consolidated working methodology which is supported within the Wwise hierarchy. It also helps to keep the implementation clear and concise. Furthermore, switches can be added to switch groups as new types become available in the game, which makes scaling a straightforward endeavor. As an example, if we want to add an additional switch for the Stone surface type, we can add it to the switch group, and it will show up in the Assigned Objects section of the Contents Editor for any sound object subscribed to the Surface_Type group.

Adding an additional switch to an existing switch group

Let's say the sound content for the Stone footsteps hasn't been delivered yet. We can temporarily use any available audio content until it is ready to be replaced. Temporarily assigning content allows for immediate feedback and helps validate a working system. This can be further verified by looking at the capture log returned from the game as part of the Wwise Profiler. (See Optimization 10.4 Understanding the Different Types of Profiling in Wwise.)

This level of abstraction also allows you to share content between Switches and, when combined elementally, can produce additional variations without the need for additional content. For instance, combining Dirt and Stone sounds could produce a dirty/stone surface type variation using content that already exists.

Adding multiple sound objects to a single switch