In my previous post, I alluded to a third project that I worked on. Today, I will tell you all about this project. I have made some strides in my personal development as a game audio professional while also dealing with some setbacks. Let’s talk about this project!
INNER//ACTION Beginning
RVA game jams have been a continuing source of working on fun jam projects within my local community, and this jam is no exception. The theme for this game was officially “Inner//Action”. The goal of this jam was to create a game with either a simple or unique control scheme that anyone, from beginners to gaming pros, will be able to pick up and play. The idea is that we will be presenting these games for the gallery “Artworks” and the games need to be fun and easy to play by the general population.
This jam started out at first with needing to pick our own teams, but then morphed into assigned teams. Before that happened, I had already arranged to be on a team with Andrew. We were able to add a couple more talented folks to our team when team assignment happened. We added programmer Galan and artists Tori and Mickey. Here is a lovely picture of everyone during our co-working days in the gallery itself.

That picture was from our planning phase of the game. Initially, before we were one happy team, Andrew had the idea to make a Tamagotchi-style game where you would take care of a virtual pet. We had also talked about possibly making the game controller modeled after a baby, where you would physically have to take care of it!
In the end, we kept the idea of a virtual pet, but adapted it into a different concept. That concept is the player being in the role of an office manager. The office manager’s role is to make sure their cat employee is taken care of and not distracted, so that this worker can make money for your company. These games will run nonstop when the art exhibit opens to the public, so the idea for our game is to see how much money our cat will be able to make for the duration of the exhibit.
This jam also presented us with a unique timeline for our game. We had 48 hours to create a game from start to finish, but afterwards, we would have a whole month to polish up the game before the official exhibition of the game. With the ground rules set and the idea for our game finalized, let’s talk about actually making the game!
The 48 Hour Audio Challenge
I will start by describing the process for the sound effects, because there really wasn’t a lot for this game.
The main SFX you will probably hear the most often in this game is keyboard typing. For that, I recorded myself typing on a keyboard. The way I went about typing on the keyboard during the recording session was not to just hit the keys randomly, but to think about words and sentences to type. That way, the recording would sound as natural as possible with the cadences, instead of just hitting keys willy-nilly. As for the actual keyboard I used, I used my father’s Unicomp keyboard. The reason I picked that keyboard is that it uses the same buckling spring keys that the legendary IBM model M uses. Because of this, I thought this would be THE sound for an office keyboard. Here’s a picture I took from the recording session

The purring SFX was actual purring performed by our cat, Jill. She tends to purr every time I hold her, or pet her, or pretty much anytime she is excited. She was even excited when I was holding a microphone. I got some good purring sounds, and when I decided to poke her belly with the microphone, she ended up biting my hand! At that point, the recording session was done, but I had some good samples to pull from.

I want to talk about the next few SFX very quickly, because I want to go over the music. Please feel free to reach out to me if you have more questions about anything specific to the sound effects.
For the spray bottle, I recorded myself spraying a Windex bottle. For the money SFX, I recorded Jill’s bell collar while layering it over a beta computer OS sound that I found pleasing. For the Hiss SFX, I recorded myself hissing, but added very heavy chorusing. The reason for this is that the hiss by itself really did sound very unpleasant and grating, but adding the chorusing lightened that and made it sound really funny as a surprised sound. Also, for the cat eating SFX, I performed that sound.
Now let’s talk about the music.
When I approached the music for this game, I thought mainly about the art gallery itself. The game will most likely be in a noisy environment, and the people who come up to play the game might not hear the music that well, or will play the game for a couple of minutes and then walk away to another game. I wanted to design my music around that. I wanted the music to be there and pleasant to listen to, but something you can walk away from at any time without missing much.
The initial inspiration for the song was Music for Airports by Brian Eno. This record pretty much had a similar philosophy for what I was going for, so I took inspiration from that.
My initial draft of the song was very slow and ambient. I shared this draft with the group, who were not too receptive to the vision. I don’t remember too much what the exact feedback was, but from what I gathered, it all just amounted to a boring song. I took this feedback, and some musical examples the group sent me, and decided to spin the song into a Lo-Fi beat track. I really just took the same chord progressions and added some audio effects and some Lo-Fi drums on it. After these changes, the song was a hit. I also agree that the song ended up being better, and the Lo-Fi genre also fits with the office theme of the game very nicely.
Since our game also had a day and night cycle, I decided to also make a variation of the theme for nighttime. I just took the same chord progression, added some synth wind noises with sweeping filters, and some vibey/spacey bell stacked chords. I really like this version of the song better than the daytime theme personally, and it seems my teammates would also agree with me.
Speaking of stacked chords. For these tracks, I really tried not to think about music theory at all, and just tried my best to play jazzy stacked chords. I couldn’t tell you what the chords were if my life depended on it. I think in the end, I came up with a very nice jazzy chord progression, just by banging on the keys and experimenting.
The last bit of audio I did for the overall soundscape of the game was specifically for the daytime. While it is daytime, you will hear office noises, such as printers, fax machines, and people’s chatter. This was one of those sounds I took online from freesound as a Creative Commons Zero track. To add to this office-scape and flesh out the animal office worker world, I also took some similar recordings from freesound of cats meowing and dogs barking and layered them on top of the office-scape. For each of these animal samples, I tried my best to mix them in a way that would sound like they belonged in the same office, but also in the distance, as if these co-workers were talking outside of your little area. This overall soundscape would fade in during the day and fade out at night, because there won’t be many animals in this office burning the midnight oil.
First Time for Everything: Audio Implementation
Once I had all of these sounds, I handed them off to the programmer, like I normally do, to have them implemented into the game. This time, at the end of the 48 hours jam, I was not too satisfied with the audio mixing in the game, so I decided it would be the perfect time, within the month of refining the game, to learn audio implementation. In this next section, I will go over how I implemented audio for the first time.
One of the first things I did after downloading the project and setting up git was to change the audio bus structure in the project itself. Initially, the project only had 4 audio busses: the master, music, SFX, and typing sound. This was fine, and it worked, but I wanted a separate bus for each SFX to have more control over mixing these sounds in-game. At the same time, I also implemented the office ambience I designed, because it had not been implemented yet. Here is a screenshot of the audio bus, though I am unsure if this ended up being the final version, because I kept adding and iterating sounds.

Actually, adding the individual SFX on each separate audio bus turned out to be trickier than initially thought, because all the SFX were being played through one audiostream in Godot. My solution was to go into the code and break up the SFX as it was being played. To be honest, I barely understand how it works, but my code basically lives inside the playsound function. It monitors the name of the SFX thats played through the audiostream and assigns them to a bus. Which bus it was assigned to was determined by a dictionary. What this means is that when I added a new SFX, I needed to update the dictionary in the code. A little tedious, but this workaround worked.

The next thing I implemented was the Day/Night cycle music. I replaced the music player that was playing the daytime theme and used Godot’s new interactive music player. I put both day music and night music into the interactive music player and set the transitions to be about a 4-second crossfade between both tracks. Finally, I just hijacked the game’s existing Day/Night cycle code and implemented small lines of code that would play Day or Night music from the interactive music player when the Day/Night cycle code hit a certain time.
I thought that would be the end of the Day/Night audio code, but I went a step further. I added some tweening code in the game to function as audio fade-in/out. That way, when daytime comes, I fade in office ambience, and when nighttime comes, I fade it out. Tweening is another thing I barely understand, but from my understanding, you are using code to draw curves. These curves are normally used for animations, but they work for audio as well. From an audio perspective, I see them as a roundabout way to implement automation.
That wasn’t the only subtle thing I added to the audio implementation code. I’m really proud of the small lines of code I added to the cat goofing around state. On the music audio bus, I added some very wet, spacey-sounding reverb effect with some pre-delay. Once I added that to the audio bus, I would flip off the bypass for the effect when the cat is goofing around. It’s very subtle, but I think it really helps convey that your cat is losing focus. When the cat is focused again, I would turn on the bypass.
While I’m making all of this sound easy, the audio implementation was really not that easy. One of the small things I talked about in the previous paragraphs easily took 3-4 days to implement and debug. For example, I would say the longest implementation from the list was actually the Day/Night music. Most of the time was spent trying to debug an issue that occurred during implementation. The issue was that I could faintly hear the day’s music when transitioning to night. I pored over lines of code, even added my own debug code for error messages, just to figure out what was going on. Eventually, I did figure it out. What happened was that somewhere in the “Debug values” code, another audio player was being initialized to play music. I implemented this code to clear out any extraneous audio players

This was a great workaround and solved the issue. I let the programmer know of this, and they were appreciative, because they were able to dig in and find out exactly where the extra audioplayer was and got rid of it. This code is still in the game because it doesn’t hurt anything. I remember the programmer coming up to me and saying the issue with the day/night music was not my fault. I really didn’t want to blame anyone, after all, doing jams is a team exercise, and we are all in this together to make the best game possible.
Outside of all of this, the rest of the audio implementation was pretty straightforward. I just went into the code of different states in the game and added pretty much one line of code saying “play this sound,” depending on what sound needed to be played for which state.
The Showcase
As I am writing this, I am a couple of days out from the showcase of this game! I am so excited to see my hard work being put on public display at a freaking art gallery! I spent the past couple of days this week helping set up our exhibit. We even printed out posters from the game to hang up behind our setup! Our setup was intentionally set up to look like an office worker’s workstation. I even had some speakers hooked up to the PC that looked like office speakers to play the audio for our game. I was pleasantly surprised by how loud those speakers are.
What’s next for me is to be there for the gallery’s opening reception and talk to some folks from the local community about our game! If anyone is reading this and they are in the Richmond area, the exhibit is up at Artworks until October 18th, 2025. I really recommend checking it out, because there are so many great games being showcased there. I am constantly blown away by the talent and passion so many people in our small community have when making these games.
Big shoutout to RVA Game Jams for putting this together. I truly feel like I am a part of something special when I participate in this group. I mean it, every time I watch these YouTube video essays of the underground coding scene in the 80s/90s and how the people participating go on to greater things in the gaming industry, I think about RVA Game Jams continuing this tradition.
I also can’t forget about my teammates, Andrew, Tori, Galan, and Mickey. It was a blast working with every single one of you, and I can’t wait to make more things with you if and when our paths cross again in the future!
Feel free to follow my Bluesky as well. I will be posting about this gallery opening reception and pictures there. I really haven’t been the most active on there, but I promise to try to keep everyone more updated on the smaller things happening with my life there. I will keep these long posts on this website.
See you in the next post!
Leave a Reply