Wwise Integration for Unity

A breakdown of the sound design and Wwise implementation for a sci-fi FPS game set on Mars.

UnityC#WwiseAudio Integration
Wwise Integration for Unity screenshot

(Video can be found https://youtu.be/NhZNNEWcUwA?feature=shared&t=207)

About the game

Genre: Sci-fi FPS Setting: Mars; a hostile environment with robotic enemies Goal: To destroy all the robot enemies.

The actions for the game;

  • walking and running on Mars sand and metal
  • shooting and reloading for 3 different weapons
  • Fall damage for the player
  • Flying with a jetpack
  • Damage from bullet impact
  • Player death
  • Bullet impacts
  • Enemies (turrets and drones)
    • Moving
    • Shooting
    • Spotting an enemy
    • death

Audio Pillar

The audio direction is built on three core pillars:

  • Intense
  • Immersive
  • Technologically Advanced

The goal is to create a seamless connection between the player and the Mars environment. The sound design aims to make players feel a rush during combat and calmness when out of combat. Audio cues are also crucial for gameplay; for instance, a player should be able to tell they are low on health without looking at the UI.

Music

Synth and Electronic music were chosen to complement the sci-fi theme and to provide a range of intensity for different gameplay scenarios.

Sound Identity

Sound Effects

The game's sound effects are categorized to create a clear and impactful audio experience.

Weapons

  • All weapons are designed to feel punchy.
  • AR style gun: Characterized by a fast fire rate.
  • Disk launcher: An area-of-effect weapon with a charge-up and hold mechanic, culminating in an explosion.
  • Shotgun: Fires a burst of bullets.

Player

  • Footsteps on sand and metal.
  • Jumping and landing sounds.
  • Jetpack activation and use.
  • Taking damage.
  • Picking up items.

Enemies

  • Shooting sounds.
  • An alert sound for when the player is spotted.
  • Dying/destruction sounds.
  • Sounds for taking damage.

Dynamic Range

To ensure clarity and prevent audio clutter, sounds are mixed into distinct layers:

Foreground: Critical gameplay sounds like weapons, player damage, and key enemy sounds.

Midground: Sounds that provide context, such as player movement, and general enemy and environment ambience.

Background: The most subtle sounds, including Martian wind ambience and music.

Diegetic vs. Non-Diegetic Sounds

The sound is separated into two categories to enhance immersion and provide clear player feedback.

Implementation & Technical

Engine & Middleware: Unity & Wwise

File Formats: WAV

Platforms: PC

Data Budget: The sound banks has a total size of 56MB, within a 60MB budget.

Data Budget

Game sync

wwise audio RTPC for player health used to make the heart beat audio loader and make it faster the lower you are. Player health also muffle the other sounds not in the player effect bus and lower music volume to amplify the low health warning.

Switches for landing and footsteps if the player is on metal or sand

Trigger which is played when an Enemy dies to be used as a stinger in the battle music.

Dynamic Audio

Music is handled by MusicHandler.cs. When an enemy detects the player or is shot at, the enemy will be added to an array in the music handler which checks the array to see if there are enemies. If the enemy stop firing at the player or is dead is removed and will wait a couple of seconds before fading back to explore music,
Music is just a music segment with layers of different audio to create unique sounds

//inside of MusicHandler.cs.
if (currentEnemyCount > 0)
{
    //if the current music state is not combat, play combat music
    if (!combatState)
    {
        combatState = true;
        // currentMusicState = MusicState.Combat;
        Debug.Log("Combat");
        AkSoundEngine.PostEvent("Play_Combat", gameObject);
        //stop the invoke
        CancelInvoke("PlayExploreMusic");
    }
}
else
{
    if (combatState)
    {
        //if the current music state is combat, play explore music
        Invoke("PlayExploreMusic", 7.5f);
    }
}

https://github.com/rm20killer/Audio-Assignment/blob/main/IMAT3004-Assignment/Assets/FPS/Audio/MusicHandler.cs

Original Recordings

To give the game a unique feel, several sounds were recorded originally, including player footsteps, damage sounds, jumps, the drone hum, and the screenshot UI click. These recordings were edited to fit the sci-fi theme and make player movement feel more realistic.