soundgarden

Back to main

The listening wind 💨

The gameplay I’m about to describe is inspired by several other gameplay experiences: First, the spatialization-based gameplay in Blind Drive (see previous post), second, a section in the puzzle adventure game Riven, where the player must navigate a dark tunnel, and third, the Super Mario 64 remake for Nintendo DS that features a section with spatialized audio to guide the player around a haunted house in order to find a star.

In my new gameplay mechanic, the player must navigate a pitch black cave where the path is not obvious. The player must listen and follow the sound of the wind passing through the cave in order to find the exit. To test this, I have created a gray box prototype of a cave environment (see screenshot, ceiling removed for demonstration). A spline marks the path through the cave. A wind audio emitter object moves along the spline, always positioned on the closest point to the player on the spline.

The wind audio emitter object has four audio sources, arranged in a rectangle, with two “front” sources designated to emit sounds from the direction the wind is heard to be coming from, and two “back” sources to emit sounds indicating the direction the wind is blowing towards. The back sources sound more quiet and muffled compared to the front sources. This is to indicate some directionality. I’m assuming that if the wind sound came only from a single source placed on the spline, the player would have no sense of direction when following the sound, and would be more likely to follow the sound back out where they came from. With the current setup, I’m envisioning the player to stop over and over again as they traverse the cave, listening to and noticing the differences between the two types of wind sounds, and learning to follow the one that sounds sharper and more pronounced. After adjusting the distances between the sources several times, I managed to navigate the cave only by sound. However, I find that this navigation by sound needs to become clearer and easier. Another issue is that with this setup there is potential for the audio sources to intersect with the cave walls, especially in curves. To solve that, I will most likely need to change the positioning of the wind sound sources along the spline. I’m thinking that instead of four sources moving on a fixed rig along the spline, the two pairs of sources should each be placed that they are always a certain distance in front and behind the closest point to the player on the spline. This way, I could place the front and back sources further apart from each other, possibly increasing the spatial audio impression that would help guide the player.

Home improvement ⚒️

I had originally planned to finish the two new islands first before adding improvements to the ecology island. However, now I’m getting regular feedback from testers for both the new in-development content and the existing content. Also, as I’m working on the new islands and figuring out Unreal, I’m constantly getting ideas for improving existing things. I decided it’s probably best to act on these ideas now, constantly implementing small improvements while I have a clear vision, rather than dealing with many old ideas at once later. Therefore, I have implemented several improvements in the ecology island.

The most noticeable improvement is in fixing the performance I had described in the previous post. It affected the existing island as well as the separate testing maps and made it significantly more difficult to engage in rhythm-based gameplay due to an inconsistent frame rate. It turned out that global illumination quality settings above medium would trigger a Lumen update 2-3 times per second that would lead to strong drops in frame rate. Lowering the setting to medium removed the issue but also had an impact on the lighting, making the scene darker overall. This required me to adjust the lights in the scene to compensate for that. I also noticed that emissive materials have now stopped affecting the scene lighting. Since I have not been relying on emissive surfaces so much, it’s not an issue, also considering that Unreal offers some good alternatives such as real-time area lights. Improving performance is not only important to guarantee a flawless experience of existing content and to facilitate gameplay that requires consistent timing. Since eventually all three islands will be featured on the same map, I have to make sure everything remains smooth once that becomes the case.

Another major improvement is the sound. All music speakers are finally working as intended! Before, some music speaker objects in the scene would either not work at all or not reactivate after being occluded. The issue lied in how I was routing the audio from the music MetaSound to the speakers. Before, every speaker would have a custom MetaSound that would read from an audio bus. This seemed to cause issues with how Unreal handled virtualization for audio sources. Now, I’m using source buses that play directly from the selected audio bus. As a result, there is less delay between the source and the speaker, lower CPU usage, and an overall more lush soundscape - win/win/win!

Last but not least, a gameplay improvement. after receiving feedback that for some players it was not clear they have to collect stones, I have begun to improve that. Now, whenever the player collects a stone, the painting in the swamp area will briefly light up, highlighting the stones. I hope that players will notice this, especially when collecting the stones near the painting at the beginning of the game.

More improvement 🛠️

To recap the general idea: As players collect rocks, parts of the island change, new interaction possibilities appear, and secrets unlock. There need to be more incentives and feedback mechanisms to motivate players to explore further. Some time ago, I was debating whether to add interaction input for the player, for example, letting the player interact with certain objects when clicking on them. My main concern was about communicating this mechanic without words. I think I can find a way by communicating that through the painting, maybe adding even more hints in this cave painting style around the island. If players had to click on the stones to collect them, this would add more potential for adding juice to that interaction. This clicking mechanism could be context sensitive. For example, in the rhythm grid puzzle, aiming at the next platform could highlight it, and clicking could make the player character jump on it immediately, without the player having to press the movement keys to steer the direction of the jump. This would make jumping across platforms more instantaneous and precise. Since the player then would only have to focus on the timing and direction, this might allow for faster and more complex rhythm grids to navigate. As I was also debating whether to let the player jump around freely some time ago, context-sensitive interactions would allow me to remove jumping without sacrificing any potential avenues for jumping-based gameplay.

Next up, there will be more work on the listening wind gameplay and possibly more improvements on the ecology island.