Dev Week 8: BGM First Implementation, Other Mechanics

This week my main focus was getting some music into the game as this had been put off longer that other tasks. I also managed to complete some other tasks in engine as well as assist with playtesting.

Task Time Spent (hours)
Music-related tasks Finish Treachery theme and export for inclusion in game. 10h
Work completed on Heresy theme. 4h
Brainstorming melody, feel and form for main menu theme and Hellevator theme. 1h
Tasks in engine + playtesting Implementing dialogue sound switcher for Big Lucifer and Lil’ Lucifer in Treachery level + implementing completed BGM. 2h
Making Lil’ Lucifer’s speech cut off correctly in Hellevator sequences. Fixed Heresy boss dealing damage to player after death. 0.5h
Implementing reactive health bar in such a way that does not have to be triggered by individual damage events across the game. 2.5h
Adjusting the volume balance of different sounds in Treachery level and for player character. 1h
Assisting with notetaking on player experience during playtesting. 3h
24 hours

Completing the music for the Treachery theme was a long stretch but was fairly straightforward. Although the piano is the main focus of the piece, I layered some eerily distorted, otherworldly choral voices around it along with a simple, muffled kick and hit beat, to give a retro feel to what would otherwise seem like a dark, religious theme. In order to get the sound of the kick and voices right I had to do a fair bit of tweaking different attributes of each sound, but the final result sounds pretty good:

Given the time, I would like to tidy the sound for this track up a bit more in coming weeks. I also worked towards completion of the Heresy theme as well as planning the composition style and feel for the main menu theme and Hellevator theme, which are technically filler but still very important in their own right as they highly contribute to the titular image of the game.

The work that I did in Unreal Engine this week includes:

  • Implementing finished BGM for Treachery
  • Dialogue sound switcher structs (try saying say that 20 times fast)¬†for all dialogue in the Treachery level
  • Fixing speech cutoff in Hellevator sequences
  • Adjusting sound volume balance for Treachery and general actions for the player character

Aside from these, one of the main undertakings of this week was adding code to make the health bar widget reactive to taking damage and also display health state as below:

The good thing about this code is that it is entirely self sufficient; rather than having to add a cue or variable to any other actor blueprints that deal damage to the player character, this completely circumvents that by taking only the current health state of the player character as well as keeping the value from the previous tick for a reference. Then when a change is detected, the code is locked for half a second while the “take damage” red-tinted avatar is displayed, before unlocked. This collapses down to continually checking the fixed state of the player’s health and showing the corresponding avatar of Lil’ Death. A demo of this in gameplay is shown below:

Finally, I sat in on our team’s playtesting session on Monday and assisted with taking notes on player experience which I hope will be useful in addition to the other notes taken.

Tasks for next week:

  • Working on Heresy theme to (hopefully) the point of completion.
  • Record melodies in Ableton for Main Menu and Hellevator themes
  • Complete in-level Lil Lucifer dialogue for other levels apart from Treachery.
  • Implement death overlay animation and fonts if available, other UI tasks
  • Pull other tasks from backlog if time

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s