Not Frogger was the final project for my Intro to Game Design class at Becker. I had the fortune to choose who I worked with for this project, so I was able to work with people I knew I worked well with. We were able to take my original concept for this game and knock out what I consider to be a decent rendition of what this idea could be.

My original concept for the game was to take the Not Tetris approach to the arcade game Frogger. I'd originally had this idea years ago, when I used to post in the same forum thread as the creator of Not Tetris - back then, though, I lacked the skills to make my idea a reality. When this was assigned, and we each had to come up with a game proposal, I took my original idea - where you would play as the frog - and combined it with Clustertruck, which I was playing at the time. This is the result.

Highlight: Truck Audio

When it came to the audio for the truck, I was surprised that there wasn't much information on the internet about this - it appears that vehicle audio is too much of a niche subject for people to have written about it much. Most people said that AAA racing games record clips of each vehicle's engine running at different RPMs and then combine them together at runtime. I didn't have the equipment or the audio abilities to do this, so I had to find a simpler solution.

There is a company selling a solution for vehicle audio in Unity, but the cost was far too much. They did, however, have a demo, and that demo included free samples for use with their tool. I couldn't use the tool - but I could use the samples to try to replicate their tool. I decided I needed to write a state machine, which would transition between these four clips:

  • Idle
  • Acceleration
  • Redline
  • Deceleration
A chart of the audio state machine in Not Frogger. The states and transitions used in the audio subsystem of Not Frogger.

The concept was this: when the player was idling and started accelerating, it would transition to the acceleration clip. When the player was accelerating past the end of the acceleration clip, it would transition into the redline clip. If the player stopped accelerating from the redline clip, it would transition into the deceleration clip. If the player stopped accelerating from the acceleration clip, it would transition into the deceleration clip at a point proportional to their position in the acceleration clip. Once the deceleration clip was finished, it would transition back into idling.

This system isn't perfect. If I had the resources, it would be better to have clips for accelerating and decelerating at each RPM, so I could do better than to transition into the middle of a clip to simulate decelerating from a specific RPM. However, for a solution with the amount of money (none) and the audio equipment (none) that we had access to, it worked pretty well.

Months later, I happened upon a procedural solution for generating engine sounds: two sine waves, one at a constant frequency and one varying in frequency with the speed of the engine, simulates the sound of a real engine well enough to be a decent approach for a project like this. If I were to work on this project again, I would create a solution with this new knowledge.