Soar Up The Charts

Tin Heart Interactive is an independent video game studio based in Maryland. We’ve released sound packages for the Unity asset store as well as created a number of small narrative games as a nights and weekends endeavor for the past several years. In 2021, our studio went full-time as a contributing member on the vampire-fighting adventure game, #BLUD.

Watch Tin Heart Interactive's dev diary of the experience HERE.

TinHeart_News_2.png

We were overjoyed to be invited to participate in the second annual Step Up Your Sound game jam. The development team for this project was Steven Palermo (core systems programming), Kathleen Parker (3D modeling & textures), and Greg Lane (game design and general development). We all met through the games industry in Maryland or through the Baltimore Chapter of the IGDA and were excited to work collaboratively on a project together. Before getting into the games industry, Greg was an active member in a number of regional touring bands and naturally wanted to bring this experience to an audio-focused game jam.

Reaching out to former bandmates in the music industry, we were able to bring on Alden Ave and Keep Flying to bring their songs to life for our game Soar Up the Charts. Their pop-punk sounds had the right energy to really draw the player into a twitch-based action game.

TinHeart_1.png


In our game, you play as either a blimp or a paper plane that represents the band.  Your goal is to build up your band’s sound while flying through the liminal spaces backstage of the concert venue. Players begin with just the drums, and their power is determined by the beat of the music.

As you pick up collectables scattered throughout the track, new instruments (known as stems) are added to the game’s soundtrack. In addition to making the sound more complete, each of these stems is also paired with a power, so you’ll gain lasers, missiles, or shields to help you out. There are additional collectables in Soar Up the Charts that allow players unlock additional songs if they’re able to pick up enough credits during play. Depending on the cost of the track, this may take a few playthroughs in order to gain enough credits.

Along the way, enemy radios will fire static at your ship hoping to disrupt your sound. If they’re able to hit you, they’ll take away one of the song stems and reduce your overall power.

TinHeart_2_replacedImages.png

It’s often true that constraints breed creativity, forcing you to focus on creative solutions. We knew that we’d want a health bar and score on the UI, but we didn’t want to burden the screen with too many other distractions. Since the goal of this jam was to build a game for Android, we set up the player’s plane motion to work with finger swipes or a virtual joystick. (There’s a toggle in the menu for players.) When it came to firing weapons, however, we didn’t want to add yet another button for the player to track. After all, on a phone without tactile buttons, it’s possible that the player’s finger could drift while controlling the plane, and missing a fire button would be the difference between life and death!

Instead, we went back to the focus:  the music of the game.

We were able to leverage the power of Dolby Atmos to add sonic variety to positioning each of the stems in a different place to immerse the player in the middle of the song. We randomized the instrument locations so they would be close to the player but also located in slightly different places, allowing the player to ‘sit in the mix’ in a unique way each time they went through a level. Add in the doppler effect of whizzing by enemies and narrowly avoiding bullets, and there’s a full soundscape throughout the game!

We defined custom attenuation for each of the stems to achieve sonic variety of the different track placements. We adjust the Speaker Panning to Balance-Fade, allowing the source audio to be upmixed or downmixed as needed to match the channel configuration. For 3D Position we select Emitter with Automation. This is normally best for game interfaces, menus, and sources where 3D positioning is less important. After all, our stems are going to stay with the player for the whole level.

Finally, we want to define our automation. After creating a new path for each stem, we moved the positioning to the center (since we don’t want to hard-code our audio source’s position) and instead opted to randomize the starting position of each stem with Random Range. We’ve settled on a value of 25 for all of our vectors:  close enough to be heard well, while far enough to provide some variety.

TinHeart_3_Sonic Variety.png

We wanted the players to fire to the rhythm of each instrument, and the enemies to fire to the overall tempo of the song. In Wwise, we were able to set up each of our instrument stems to sync to the rhythm, which would in turn cause it to fire in time with the beat.

To achieve this effect, we first opened the Source editor. To do so, go to the menu bar > Views > Editors > Source Editor. (You could also use the shortcut Shift + X). This opens a new window where we can see the full waveform of a selected track.

TinHeart_4_SourceEditor.png

In the new window, on the right-hand side, we can see the option for ‘Marker Input Mode’. It defaults to ‘Import From File’, so we’re going to change it to ‘Detect from Transients’ in the drop-down menu. A transient is the onset of a change in the audio file, and Wwise has a built-in algorithm to add markers to these changes.

TinHeart_5_DetectFromTransients.png

Next, we need to adjust the Marker Detection Sensitivity. (There are no markers present if the value is set to zero.) As you scale this slide to the right, you can see markers automatically being added to the track. This is what we reference in Unity to determine the fire pattern. This is what we used for guitars, bass, and drums, since these stems were present throughout each of the songs.

TinHeart_6_MarkerDetectionSensitivity.png

Of course, you can place these yourself by selecting ‘Manual Markers’ from the Marker Input Mode drop-down. We used this marker placement for vocals and the auxiliary track (either organ or horns, depending on the song). In Unity we read these manual markers as a ‘toggle on’ and ‘toggle off’ markers, since they controlled the major offensive beam and the player’s shields.

To place a manual marker, right-click along the top of the timeline, and then select ‘Add Marker’. It’s important to note here that the manual marker will be placed wherever you right-click, not where the play marker is. Be sure to click and hold the left mouse button to grab and drag the marker into the desired place along the track.

One thing to note: if you’re set to Detect from Transients but you delete or adjust one of the markers, you’ll automatically be put into Manual Mode.

TinHeart_7_ManualMarker.png

One additional benefit that we didn’t initially consider: while we knew it would just ‘feel right’ to have the enemies fire in time, we discovered we could subdivide the rate of enemy fire, making them fire faster or slower. If we tie that to a slider in the game’s menu, we could also adjust the number of points the player scores per enemy, giving us built-in difficulty settings!

TinHeart_8_MenuOptions.png

We used the jam’s audio focus as a guiding star to the visuals of the game as well.

Fortunately, both bands had objects in mind to use as player vehicles: Keep Flying uses a paper plane with their logo, and Alden Ave prominently featured black balloons in one of their music videos. We were able to use established iconography of guitar amps and mixing boards for menu layouts, and we even incorporated a guitar pick as the app icon and for one of the power-ups. The levels themselves are just passageways in some concert venue; their only purpose is to get people and things from point A to point B… or they’re storage spaces for the band’s road cases.

TinHeart_9_enemy_concepts.jpg

Enemies were also designed with the audio theme in mind. Kathleen did a fabulous job creating these angry little enemy radios. Even in their final form, their antennas contained a quarter note feel.

TinHeart_10_SpeakerEnemy.png

As with any jam, there is a lot of content that may make it in or get cut in the final moments before the jam is complete. One of our last-minute successes were the flying enemies.Their jukebox-esque shells and quarter note thrusters allowed us to introduce a more dynamic enemy and change up the player experience.

TinHeart_11_PlacingFlyingEnemies.png

Thanks so much to Playcrafting, Dolby, and Samsung for supporting this event. And thank you to you for reading this behind-the-scenes look.

I hope you enjoy Tin Heart Interactive’s latest game, Soar Up the Charts!

For more about Tin Heart Interactive, please check out our website or find us on Twitter @_TinHeart.

Explore More