Psychonauts 2 is an exciting platforming adventure game that continues the story of Raz after the events within the 2005 title Psychonauts; spanning roughly a dozen levels inside the minds of multiple characters, each of which is entirely unique. From Psychedelic rock concerts to a cook show game, we find Raz encountering multiple situations, enemies and bosses. Due to the nature of this game, we found multiple challenges, sometimes unique to individual levels, as in many cases what had worked in one place may not have worked in another due to the ever-changing aesthetics of the game.
Double Fine consisted of five core audio professionals for Psychonauts 2. The Audio Director - Camden Stoddard, Senior Sound Designer - Paul O’Rourke, Voice & Localization Producer - Malena Annable, Technical Sound Designer - Steve Green, and VO Editor and Sound Designer - Kate Kelly.
Portal To My Mind
From the beginning, we knew and had already created a number of methods to make the player feel as though they were traversing surreal environments. One of the most well-used methods was our Portals; a defined “hole” which would immediately teleport the player from one area to the next. Many times, these portals would transpose you to the other side of a map. For audio, this creates a whole slew of problems... the trickiest one being the propagation of sound from one side to the other.
Rock and Roll
Much of the portal tech and programming was done by Aaron Jacobs, one of Double Fine’s many incredibly talented programmers.
The age-old scenario is walking through a door. You’d expect to hear the audio on the other side of the door. However technically everything on the other side of that door is a vast distance away, attenuation through Wwise would say that it’s too far to hear.
The Space Between Us
During development, the worst case scenario was in Ford’s Mailroom and the Dead Letter Offices. These offices are so far away from the central mail room in the game editor. However, during gameplay, thanks to the portal system it appears right in front of you with the massive Ford Mail Bot loudly toiling away.
All Praise FordBot
Initially we just couldn't hear it until we walked through the portal, and thus was close enough to be within its attenuation range.
Our second phase of problem-solving was mainly centered around creating a point source of ambience right at the door that would sound as though the Ford Bot was there. However, this wouldn’t be in sync with his animations and would go silent once you walked through the portal, away from this point source. We knew early on that the real solution would be to somehow fake it so that we could hear what was coming through the portal.
The image above shows the space between portals. In this instance, if you enter through Red, you come out from Green
Our solution ended up utilizing multiple listeners. Typically the listener the player uses is on the camera. However, when near a portal, we introduce a second listener of equal distance and placement on the opposite side of the portal. As the player’s camera moves, so does the second listener behind the portal. With some clever mixing, this allows for the audio on the other end of the portal to be picked up and played back.
Listeners. Listeners Everywhere
For the sake of performance, we generally allowed the second listener to pick up on most everything dynamic you’d expect to hear, such as if you threw a rock through a portal, but limited many loops or things we didn’t care so much about. We also set up a system where we could specify certain game objects to make sure they would be picked up by the second listener. Once the player crosses through the portal, the 2nd listener flops to the location of the old portal, maintaining the illusion and allowing you to hear everything in the room you just left.
Magic
New Problems
Being able to hear things on the other side of a map was great and helped with immersion. We of course found that it had its own set of problems and challenges. The primary problem came in the form of occlusion.
Early on into the project we had made the call to not use Wwise’s default occlusion. As great as it is, we found it a bit limiting for our particular needs. In many instances we found we wanted one object to be fully occluded, while another we may want to hear strictly a low pass filter, while on an object right next to that, we may want to have a hidden item fully occluded until you achieved a certain goal or collected a unique ability.
Crying Out Loud
Psychonauts 2 is wrought with collectables. So of course many of them are designed to be hidden or secretive. A scenario we encountered in Bobby Z’s level was that we were hearing a collectable character called “Emotional Baggage” cry out to the player at the other end of a portal. While we wanted the player to be able to find the collectable, we didn’t want it to be super obvious, or give away the illusion of the portal tech.
Essentially in Unreal Engine, we created a component we could attach to game objects and be able to, individually, tweak and tune occlusion settings using Wwise’s RTPC curves. Of course we did have a default setting in place; however, this gave us the benefit of being able to hand craft each instance of occlusion based problems in a game that - let’s be real here - doesn’t really adhere to realistic situations.
Housekeeping
As mentioned before, Psychonauts 2’s levels are each incredibly unique. A couple of which included 2D side-scrolling portions, each of which had their own aesthetics. By utilizing Wwise’s States, we constantly tell Wwise what level is actively loaded up. This allows us to easily change anything’s sound effect based on what level you’re in. Cassie’s side-scroller book levels and Hollis’ Heart Race are great examples of using the same event calls, but switching the audio used based on what level you’re in.
Thanks to Wwise we were able to maintain multiple unique systems and aesthetics over a multi-year development cycle for a game that needed to try to maintain as much of its roots as possible, while also adding in so much new stuff. And thanks to Audiokinetic for asking us to put this together. I hope you were able to take something useful away from it.
댓글