Wwise Projects
Three school projects where I kept breaking things. That's where I actually learned Wwise.
Learning by Hitting Walls
Tutorials show you where everything is, but I didn't really understand Wwise until stuff started breaking. 256 voices blew up in a zombie shooter. Zone transitions sounded wrong in a platformer. An Android phone with 2 GB RAM told me my audio was too big.
Three solo school projects at DAE, spread across 2021-2024. None of them shipped. But I tracked memory, fought platform limits, and wrote real integration code. Each project broke something different, and each one taught me something I still use.
The zombie shooter taught me voice management. The platformer taught me spatial audio. The Android game taught me that memory is not free. That's where I actually got better.
Three Games, Three Problems
Boney Boogaloo
Zombie Wave ShooterMy first Wwise project and I immediately ran into the 256 voice limit. Every gunshot, every zombie spawn, every death scream was eating a voice. I built random containers (6 shot variants, 6 spawn variations, plus death screams) so each sound plays differently without stacking. Trimmed silence off every file, switched to ADPCM compression. 44 sounds total, and the voice count finally behaved.
Ellen
PlatformerPlatformer where I got to dig into spatial audio. Wrote 10 separate attenuation curves because a waterfall and a footstep shouldn't fall off the same way. Footsteps swap per surface using a raycast. The zone transitions were the tricky part: ambient crossfades between areas over 6.5 seconds through Wwise State groups, so you never hear a hard cut. 4 reverb buses to make small rooms sound small and big rooms sound big.
Stomach Aches
FPS Platformer - AndroidFPS platformer set inside a human body. The target was cheap Android phones with 2 GB RAM, so every kilobyte counted. I set up zone-based loading: only the current zone lives in memory (Brain 670 KB, Mouth 384 KB, Stomach 2.8 MB). The Wwise Silence plugin replaced actual audio files for quiet moments, which alone saved 80% memory. The waterfall has 3 distance layers driven by RTPC, so it sounds different at 5 meters vs. 30.
What Broke & How I Fixed It
256 Voices Wasn't Enough
What Was HardSounds were cutting out mid-play. Gunshots would just vanish. I had no idea voice limits were even a thing before this. Took me an hour of debugging to realize the problem wasn't my code, it was Wwise running out of voices to assign.
What I DidThe random containers handle variation, but the real fix was understanding voice priority. Gunshots need to play. A zombie grunt 30 meters away does not. I set up priority so close, loud sounds always win. Trimming silence off files was the other half - voices were being held open on dead air. That was when I realized not every sound needs to play - some can just be dropped and nobody notices.
Zone Transitions That Don't Sound Like a Hard Cut
What Was HardWalking between areas sounded awful. Forest to cave, silence to waterfall. It felt like someone flipped a switch instead of the player actually moving through a space. A 2-second fade wasn't enough either - it just sounded like a bad DJ crossfade.
What I Did6.5 seconds was the sweet spot for the crossfade. Shorter felt rushed, longer felt laggy. But the crossfade alone wasn't enough - the reverb also had to change. Walk from a big cave into a tight corridor and you hear it shrink around you. Once the reverb matched the room, it actually felt like walking through a real place instead of hearing two tracks crossfade.
2 GB RAM and Every Kilobyte Counts
What Was HardThe first build crashed on load. All audio in memory at once - the phone just gave up. I had to rethink the entire loading strategy. You cannot treat a 2 GB Android phone like a PC with 16 GB.
What I DidThe Wwise Silence plugin was the biggest win. Replacing actual WAV files with generated silence for quiet moments cut memory by 80% in one move. Zone-based SoundBank loading handles the rest - unload the previous zone before loading the next one. The waterfall was a special case: 3 RTPC-driven distance layers so it sounds right up close and far away without keeping three full-quality files resident. Total audio footprint per zone never exceeds 3 MB.