The Predecessor

Overview

Trailer

‍ ‍The Predecessor is an atmospheric videogame I created for my undergraduate thesis project at Stevens Institute of Technology. The player traverses a series of abstract, nonlinear worlds, interacting with enigmatic characters while collecting items and memories of the one who came before.

I developed this game on my own, and am responsible for all of the coding, game design, narrative, sound design, composition, and audio implementation. Development lasted roughly 18 months from initial conception to release on Steam and Itch in November 2025. In it, I sought to explore artistic concepts that are significant to me, drawing inspiration from the ethos of twentieth-century nontonal composers, the postmodern pastiche, and the presence of virtual spaces.

The game was developed in the Unity game engine, with code written in C# in Visual Studio. I implemented Wwise, an audio middleware software, to handle playback and dynamic manipulation of audio. Sound design and music assets were created in REAPER.

Technical Audio Details

To implement dynamic audio into The Predecessor, I made use of Wwise’s game syncs to control how audio responded to the player as they traversed through the game’s environments. This is seen in the use of states for dynamic music, and switches for dynamic footstep audio.

Dynamic Music States

At the end of each sequence of worlds, the player reaches a “core world,” which are vast spaces with multiple NPCs and objects to interact with. These core worlds have their own unique music track which changes dynamically depending on where the player is.

For example, the second core world, dubbed “Constructs,” has a base music layer, a layer for housing units, a layer for construct towers, and a layer for anomalous artifacts. In Wwise, these layers are all playing at once, with all but one muted. As the player enters a new bounding box, the Wwise state changes, triggering the current music layer to fade out, and the new one to fade in. This system allowed for the music transition to be controlled directly through Wwise, without having to code awkward crossfading coroutines. This same system is also used for applying effects on diegetic audio, such as when the player enters a body of water.

Wwise state group for music in the core world.

Code block that handles setting the states for dynamic music.

Dynamic Footstep Switches

For the footstep audio, I wanted to create a system that changes the footstep sound depending on the kind of material the player is walking on. I made use of Wwise’s switches to alternate between different material sounds using one event. I made a switch group with switches that represent all material types in the game, and created a global dictionary with Unity materials as the key and the Wwise switches as the values.

From there, I created a function to get the material type that is directly beneath the player, retrieve the corresponding Wwise switch, assign that switch in Wwise, and finally play the footstep event.

Wwise switch group for footstep sound materials.

all music players are playing at once, but only one is unmuted; when the music state changes, the previous music layer fades away, and the new layer fades in. this is handled directly in wwise, so there was no need to code awkward crossfading coroutines

Function that retrieves the relevant footstep switch and plays the footstep event.

Sound Design Reel