Before I begin to work on systems that I have been planning the architecture for, I decided to set up FMOD and work through utilizing it’s interface and plugin to implement the sounds in the game.
In early August, a friend of mine doing Music Production at BIMM proposed that he work with me on my FMOD sound project for Scrimshaw. Over a few days we recorded a number of sound samples for:
- Vessel Sounds: Engine, Refuelling, Scraping against things, Cannon, Harpoon and Utility
- Port Sounds: Port Entry and Exit bells
- Ambience: Water sounds, ambient droning and misc
I decided to do a bit of learning about FMOD to prep myself, and watched a video tutorial series on FMODTV, as well as reading the documentation on the unity scripting tools they had to offer.
Sound Design Process
I started by prepping some of the sounds that would be simple one shots, such as firing the harpoon, collision sounds, changing states, and so on.
I divided the sounds into 2D and 3D events, as some sounds would need to be played in 3D space, and some could just be played straight into the listener. The simplest division was to make diegetic sounds in 3D, and all other sounds in 2D, as I wanted the game’s sounds to take place in the 3D space, so as not to remove from the sense of space the game will provide.
Some of the sounds would also be repeated a lot, so I set them up in FMOD multi instruments so that a randomly selected sound would play each time the event was triggered. These sounds are things like harpoon impacts, cannon firing sounds, scrapes and bumps, water splashes and so on.
The goal with the engine sound is to have it playing throughout the game, and move across sequence sections as the speed of the vessel increases. My current sound library however only allows for a simple engine buildup, repeating and falloff as the engine turns off.
The event is set up to play when the vessel engine starts, build up to a looping chugging sound, and hit the Logic marker halfway to stop. Once the engine stops, the queue is triggered and the timeline continues through to the engine falloff sound.
After setting up all the elements, I created a VesselAudioController script that is called to play sounds when needed from the vessel’s functions.
Review and Next Steps
After setting up all of the sounds in game and playing around with them a bit, I noticed issues with my current sounds and setup that I would have to address with future iterations on the FMOD project.
Firstly the engine sound was jarring as the long buildup and cooldown of the engine when it starts and stops overlaps when quickly starting and stopping the engine, and the looping chugging sound of the engine is quite overpowering on it’s own as well as not amping up and down when the engine gains and loses power, leading to a disconnect between the sound and ingame representation of the engine working.
I was also unable to use the reeling sounds for the harpoon, as the sounds were not recorded in a way that is capable of use with the current programatic setup of the harpoon itself. This will have to be revised, and a second pass at the game sounds will have to take into account the code setup and where to trigger changes in the game sound.
Another issue that may need resolution is that the game’s listener is set up on the vessel, so that the player feels as though they are on the vessel, but this sometimes leads to issues with the disconnect between the camera perspective, and the sounds that are played in the player’s headphones. This can either be remedied by setting up the listener on the camera, or figuring out how to balance diegetic sounds better to keep the player focused on their connection to the vessel.