Once you've learned the basics of FMod, one of the hardest things to do is... well, to decide what to do with it. Middleware is a huge help when it comes to implementing audio, but before we even open the program, it can be helpful to think about exactly how we want everything to sound and be triggered within the game, and create an audio battle plan of sorts. Happy accidents can and do happen, but you’ll probably find that you can get through your work much faster and with equally good results if you start with a goal in mind. For example, some important decisions to make about your sound effects are when or how they will be triggered (by a gameplay element? By the environment? Directly by the player?), and how the sound will change over time (using effects, like filters? Pitch or volume changes?).
We can apply the same principles to our music by asking ourselves questions like:
When will the music start and/or stop? How will it do that (will it fade out, etc.)?
Will it loop?
How does the music relate to the gameplay? What actions that the player takes will change the music? How will the music change?
How do the gameplay and story tie together? How can the music relate to both of these things?
Making these kinds of choices, while fun, can also be challenging. To give you some ideas for your own work, I’d like to share with you a piece that I wrote and implemented in Fmod.
What This Is:
This was actually a project I did for practice back at school (it might even be a fun thing to try if you have the time and want to experiment a bit musically!). The goal was to choose an existing game and create/implement an interactive score for a level of it. For my project, I chose the Melody Town level of Kirby’s Epic Yarn (because it’s the fuzziest and most adorable game in existence). If you haven’t played the game, omegatevolution does a good playthrough of the level without commentary on Youtube here.
Besides from being fuzzy and adorable, I also chose the game because I thought it would be an interesting challenge to think about how to make the music for platformers more interactive. Typically, each level (or group of levels) in a platformer has its own piece of music that just loops until you finish the stage. While this normally works just fine due to the levels typically being fairly short, I thought it would be a fun chance to try something new.
To that end, I started this project by thinking about what the main gameplay elements were and how the music work together with them. Being a platformer, the main gameplay hook is getting past obstacles and progressing through a level (and also finding sick fuzzy furniture for your adorable fuzzy apartment, but I digress). Keeping that concept of progression in mind, I decided to base my score off of how far the player had gotten in the level. The level I had chosen from Kirby’s Epic Yarn features different musical instruments as you go along, so it felt natural to use a theme and variation approach to the score. After playing through the level a few times, I was able to break it down into a few different sections:
Mixed instruments (start/end)
Level/French Horn transitions
After breaking down the level, I decided to write a different variation of the melody for each section, along with transitions. Because I knew that there would also need to be musical stingers (piano glissandos, harp glissandos, percussion hits, etc.), I also decided to keep everything in the same key. This also helped make writing the transitions between each section a lot easier, as well.
Because trying to explain and show things would be hard to do with screenshots, I’ve included a video that goes through the entire project below! If you'd like to see the actual FMod file, shoot me a quick message, and I'd be more than happy to send you a download link. I don’t go into the specifics about how I put everything together in FMod, but if you do have any questions about that, feel free to contact me or to leave a question in the comment section below!
Putting it Together in FMod
I hope this helped give you some ideas for your next project! Thanks for reading!