top of page

SPITE: Wrath of Valkyria

A nordic mythology themed diablo-like adventure where you play as a valkyrie tasked with slaying Heimsgandr, the eater of souls, before he becomes powerful enough to challenge the gods.

Developed together with students at The Game Assembly in Malmö over the course of 14 weeks in their self-developed engine, Catbox.

Apparently some sounds were lost while collecting footage for this trailer. You'll find most of them on this page.

Despite joining the team as a sound designer on my free time, I put an immense amount of effort into this project, which resulted in a game with a very detailed soundscape that is immersive, engaging and feels alive.

SPITE: Wrath of Valkyria features:

  • Four adaptive music tracks (and one non-adaptive)

  • Two cutscenes with detailed sound design and additional custom music

  • Voice design for three types of enemies, in addition to the boss and player character

  • Audio systems making certain sounds interact with eachother in various ways

  • An overall dynamic audio design with many variations for most sound effects

All of this considered, I would be surprised if this isn't the most ambitious soundscape a TGA-game has ever had.

ut3iy3.png

Cutscenes

Intro

Ending

Voice design

Wrath of Valkyria has voices for the valkyrie protagonist, the giant serpent boss, the zombie creatures called Hollows, archer trolls and the giant Jotunn. While the game doesn't have spoken dialogue like a scipt, I saw great potential in creating unique voices. Apart from the boss and Jotunn voices, which i made using my own voice, every category of creature has a separate real life "voice actor" that I recorded.

Player character

The player character is a tough and powerful valkyrie, and the most human out of any creature in the game. I asked my friend to help out as a female voice actor, directing and recording her making many voice expressions that I could use for actions and abilities.

The regular melee attack uses a 1-2-3 sequence where it gets stronger for every swing, so I separated attack grunts depending on how heavy they sound. This applies to the sword swing SFX too.

Player Hurt
00:00 / 00:07
Player UltimateAbility
00:00 / 00:19
Player Death
00:00 / 00:25
Player LowHealthBreaths
00:00 / 00:11
Player Attack Fast
00:00 / 00:04
Player Attack Mid
00:00 / 00:05
Player Attack Strong
00:00 / 00:02

Heimsgandr

Boss Spawn
00:00 / 00:19
BossBiteAttack1 Voice1
00:00 / 00:05

Designing the voice of the giant snake boss in the final level was very fun, and I learned a lot about what I can do with my own voice.

BossBiteAttack2 Voice2
00:00 / 00:09
RangedAttack Voice2
00:00 / 00:06

After recording myself sounding as monster-like as I could, i pitched myself down around 24 semitones and used heavy processing such as multiband compression, distortion, vocal processing tools and tremolo.

I structured Heimsgandr's cries into layers - I wanted him to sound like a huge monster, but it was also important that his voice had the character of a snake. Below is a rough showcase of how the layers were recorded and processed separately, and then assembled to make a single roar.

Recording 1
layer1.png
layer2.png
Layer1
Layer2
Final Sound
Recording 2
layer3.png
Layer3

I also processed some large bird and reptile cries and mixed them in with the rest of the layers to get a primal touch to the sound, though my own voice is definitely the most dominant aspect.

Hollows

The soulless Hollows are the most common enemy in the game. You will fight many of them in every level, so it was crucial to not make them repetitive and annoying.

As it turns out, my friend and programmer on the team had a real talent for making Minecraft-esque zombie noises. I brought my recording equipment to The Game Assembly, and we created these sounds with a surprisingly low amount of processing.

Hollow Hurt
00:00 / 00:10
Hollow Attack
00:00 / 00:13
Hollow Death
00:00 / 00:22
Hollow Idle
00:00 / 00:14
Hollow Detect
00:00 / 00:04

Trolls

Another friend stepped up to take on the role as voice actor for the archer trolls. More or less the only processing here is pitching down the audio and some EQing.

Troll Hurt
00:00 / 00:11
Troll Death
00:00 / 00:09
Troll Other
00:00 / 00:12

Jotunn

Being decently confident in my ability to make low-pitched growling noises, I created the Jotunn voice using my own. The processing for these are similar to Heimsgandr's, though not as extreme, and they only use a single layer of audio.

Jotunn Hurt
00:00 / 00:07
Jotunn Detect
00:00 / 00:06
Jotunn Death
00:00 / 00:09
Jotunn Fast Attack
00:00 / 00:08
Jotunn Idle
00:00 / 00:12
Jotunn Slow Attack
00:00 / 00:12

In addition to the many variations of sound files, how they are used also gives a little bit of insight into the personalities of the various creatures. Trolls, for example, are a little less vocal than the mindless Hollows and don't make an idle sound or when detecting the player - as if they don't want to be noticed while preparing to fire an arrow from afar. Jotunns make noises during their big attack and death movements, but are less likely to grunt from taking damage because they are simply too large and sturdy to care.

Sound design

The overall soundscape is very thoroughly detailed, with sounds that immerses the player in the epic adventure by being dynamic, carefully timed to their animations and thematically consistent. It combines realistic and fantasy sounds to create a supernatural yet believable game experience with a clear viking aesthetic. I always want to make the audio feel like it comes out of the game world, and not a sound file in the game engine.

An example of a technique I used to achieve this is including layers of multiple randomized multisounds in a single FMOD event. You'll see this a lot in the short clips below.

Attacks and abilities

These are some of the most common sounds in the game, and so they had to feel satisfying and not repetitive. With the goal of creating layered attack sounds, I grabbed a kitchen knife, a saucepan, a dishbrush, a rope and started a recording session.

The standard melee and ranged player attacks came out like this:

Sword attacks 1, 2, 3. This is an early version where the player voice wasn't designed yet

Axe throw attack

I kept using these recordings for other attacks, but more complicated ones incorporated other sounds as well.

Whirlwind ability, "Fimbul Winter Storm"

Magic dash ability

I used less self-recorded material for the enemies, and more files from sound libraries that I edited. Still, enemy attacks were designed with the same layering process and the same techniques to achieve variety and to ensure the game sounds the way it looks.

Troll Arrow Launch
00:00 / 00:04

Jotunn slow attack

Heimsgandr bite attack 2

Interactions

Pray At Altar
00:00 / 00:07
UI Button Click
00:00 / 00:02
Level Up
00:00 / 00:07
UI Button Hover
00:00 / 00:01

Breakable barrels - which had one of the most layered and complex sounds - sadly were cut

Audio systems

Aside from the adaptive music system that I explain further down on this page, I created systems which communicate information to the player, counteracts combinations of sounds that aren't logical and cleans up the mix, making space for sounds that are supposed to be highlighted.

Since the game was developed in the team's self-developed engine and I didn't have access to working in it, I created these systems solely using FMOD features such as parameters, snapshots and VCAs. With this, all I had to tell the programmers was "when this specific thing happens, make parameter X go to value Y" and my systems would work as intended. In some cases I could even control that myself inside of FMOD events.

snapshots.png
mixer buses.png

Breaking through the mix

While almost every sound effect makes the music + ambience mixer bus duck a little bit with the use of sidechain compression, I wanted some sounds to stand out even more.

With the use of snapshot instruments, I could fade in my "Music Muffle" snapshot when leveling up, dying, finding a new ability by praying at an altar, or the magic shield ability is about to explode. This snapshot sets a low pass filter on the music + ambience bus.

The Boss Spawn sound has a similar effect, but simply reduces the volume of the music a bit rather than filtering it. This helps build suspense before the fight against Heimsgandr.

Magic shield

Whenever the player takes damage from an attack, two sound effects will play; the impact from the attack (which are different depending on the type of enemy) and the valkyrie's hurt voice expression.

However, while the magic shield spell is active the player is immune to all damage, so it wouldn't make sense for either of these sounds to be heard. I also wanted there to be a separate sound when the attacks hit the shield.

Magic Shield
00:00 / 00:06

To achieve this, I created the parameter "Shield Active". While this parameter has a value of 1, the player hurt voice will be muted and shield impacts will be heard instead, as shown in the clip above.

This wasn't quite enough though, as the enemy attack hits had separate events. To make sure there were no taking-damage sfx playing while the shield is active, i created a VCA group for the enemy attack hits. Additionally, I created a mixer snapshot named "Enemy Attack Hits down".

This snapshot turns the volume of the VCA to -78dB. To make it activate during the magic shield ability, I made a snapshot instrument in the Player Hurt event with the condition that it would only activate while the Shield Active parameter was at 1.

VCA volume down.png
0441674c08515668a60c8f06cd15e739.png

Finally, i asked the programmers to set the value of the Shield Active paramater to 1 while the magic shield ability is active and it all worked as intended.

Heartbeats

To increase a sense of danger and suspense, I implemented a heartbeat sound that only plays when the "Player HP" parameter is very low. As you might have guessed, the value of this parameter reflects the player's health in the game.

I wanted this effect to be even greater though, so I made the parameter also control an LP filter on all of the music.

Aside from creating more tension, this has the additional effect of communicating to the player that they are at low health and should retreat or use a health potion.

Adaptive music design

Not counting the menu theme, all of the gameplay music is adaptive. The first levels have music that adapts dynamically to the player entering and exiting combat, and the music in the final level - the boss fight against Heimsgandr - changes with each of the three phases of the fight. In a sense, this means that the game effectively has 9 different music tracks.

Combat music system

Similarly to how I designed the adaptive music system in Vilse, the tracks in the forest, village and mountain levels all have either three or four layers. These vary slightly, but generally consist of something like a base layer, a granular layer of a different length to create non-repetition, and a combat layer. Some tracks have a non-combat layer too, like the example below.

92c3a45fa07bf7ff6602fca379677af4.png

There is only one parameter used to change the level music, called "Combat Layer". While it has a value of 1, the combat layer will fade in and the other layers will either go down a little bit in volume or not change at all.

Considering when the music should adapt and activate the combat music, I came up with a point system. Each different type of enemy are worth a different amount points, and while there are 5 or more points worth of enemies near the player, the Combat Layer parameter will go to 1 and the combat music will fade in.

  • A Hollow is worth 1 point

  • A Troll is worth 3 points

  • A Jotunn is worth 5 points, always changing the music during com

This results in a system where encountering just a few hollows or a single troll is less dramatic than fighting many and/or strong enemies.

3465d4736b12378f6dc91eae83d36493.png
19e6723cb1774e9a28a093c42c83aec6.png
6023e8a0cea6dc36bb6b1b8f75d7c02c.png
cdcc27c13a6c3509f94f03010e384eb5.png

Boss encounter

In the fourth and final level, the fight against Heimsgandr, the music behaves differently. Instead of being separated into the same layers as the tracks for the earlier levels, it is always playing an epic and suspenseful orchestral arrangement, with more dissonance and evil Heimsgandr-leitmotifs which were established as early as in the opening cutscene.

The boss fight consists of three phases. The music has a layer for every phase, adapting and becoming increasingly intense with every stage.

749db08159cba14014162ae6eaa2fcf5.png
ce3f918c16f63194e56e7ab7cf4384dc.png
Phase 1
00:00 / 01:48
Phase 2
00:00 / 02:00
Phase 3
00:00 / 01:43
b3c70f16f7de80b82a0f6dee3d2dbc4a.png

Using the Seek Speed setting in FMOD, the "Boss Phase" parameter is changed gradually and avoids any jarring sudden changed between the layers. This applies to the combat music in the earlier levels as well.

Combined with the seek speed, I created non-linear automation curves to ensure that the transitions happen smoothly and avoid any short losses in music volume when advancing in the battle.

ce80490a4cfdc5dead8fd46b997f9444.png

Full soundtrack

bottom of page