Categories
Ambience Dev Diary

Dev Diary #16: This Week At A Glance (Plus A Video!)

Here’s a quick glance at what I got up to this week with gamedev:

  • Updated dungeon appearances and colour palettes for several areas.
  • Updated sandstorm effect with some cool rolling clouds.
  • Implemented and tested some gameplay-relevant weather effects. I also tweaked the procedural generation algorithm for dungeons – can now generate rooms with central “pools” of water or sand, as seen here.
  • Gameplay re-balancing for both dungeons and bosses.
  • Finally, I started playing around with video capture to see if I could get some videos made of Ambience gameplay, rather than just silent GIFs. I’ve been working a fair bit on the game’s OST and have been looking to show it off for a while. However video export to Twitter always seems to result in poor quality so here y’all go, you can have this little clip instead… 🙂
A glimpse of the first boss encounter in Ambience. Complete with soundtrack!
Categories
Ambience Dev Diary General

Dev Diary #8: Rhombus Returns!

Hello everybody! That’s right, Rhombus has finally emerged, battle-weary from an onslaught of exams, and is ready to dive back into some gamedev! Yeah, the past few weeks have been pretty tough study-wise, but I’m glad to say that the worst of it seems to be over (at least for now).

It’s easy for me to think back over the past action-filled weeks and think that I haven’t made any progress on Ambience at all. Thankfully, that’s not entirely true. A little while ago I had the idea of keeping a personal log of all the gamedev-related things I worked on, just to remind myself that I’m still moving forward. Progress is progress, no matter how seemingly small or insignificant.

Here’s a few things that I achieved:

  • Line of sight. Tweaked the line of sight scripts a bit more (and hopefully for the last time). Changed the line of sight in corridors from a square region to a more natural-looking circular one.

  • Drowning enemies. Worked on “drowning” enemies in marshy terrain. Significantly nerfed experience yield from drowned enemies to prevent the mechanic from being abused.
  • Items. Tweaked the items menu so that healing items can now be used on team members! (I was fairly proud of this one, actually – it’s something I’ve had in mind for a while, but haven’t really got around to actually implementing it.) Ally characters also visibly sweat when their HP or SP is low, which has already proven useful for me in my playthroughs.

  • Music. Remade a battle theme for Clarissa from scratch (I wasn’t particularly happy with the one I had before, although I’ve kept it and might still use it.) Also tweaked the “prison liberation” theme slightly.
  • Text updates. Had a long spell of writer’s block re. the second boss battle; eventually decided to leave it for the time being and work on something else. Added exclamations from Vulcan when the player activates their Ambience powers. Also added a joke which was deliberately meant to be lousy, but in reality is so lousy that I’m considering changing it. (Or not.)
    Went back to the boss battle, tweaked the cutscene slightly, and re-wrote the dialogue once more. It’s fairly short and punchy, and sets up the ideological clash between the Renegades and Foss’s Henchmen fairly well. I think I’ll leave it for the time being.

I’ve noticed that I’ve been lingering around the Mudreed Marsh mission for a bit too long, and I think it’s time to move on to bigger and better things. I’m definitely continuing the personal log, though – it makes writing progress posts like these much easier. It also makes gamedev much less overwhelming when you realise that you’ve been making more progress than you think.

Categories
Ambience Gamedev Grievances

Gamedev Grievances #13: Music – Heavybreeze Hills

When I finish composing a piece of music for Ambience, typically it’ll stay in its current form for a while before I decide, for one reason or another, that it needs improvement. So I work on enhancing it a bit, and then once I’m done, leave it be – until I decide it needs improvement again. Sometimes it takes several iterations of “improving and waiting” before a piece turns out exactly how I want it to.

Take, for example, Heavybreeze Hills, where you’re sent to scout for Foss’s Henchmen. It’s the next area to be explored after the Ambience demo ends. I’ve shown a few GIFs of the Hills before, but here’s how it looks at the current stage of development:

hbh-current-2016-10-12

Yes, that’s right – I’m also working on new character sprites! (More on that in a future update maybe.)

Anyway, the music for Heavybreeze Hills has undergone several reincarnations. The very first version sounded like this:

A problem I frequently encountered as a new composer was my habit of adding lots of deep strings and choir to try and make it sound all grand and epic. However, this often made the melody “blurred” and difficult to hear, which is what happened here with all the bass choir and a very loud bass guitar. (Also, that gong was just plain unnecessary.) Not only was it hard to listen to, but I also felt that it didn’t really capture the right feel – I wanted the theme to be a little lighter, a little less serious, and a little less like you’re embarking on another massive fantasy trilogy.

So I removed much of the emphasis on the bass, cut the choir completely, and made the melody a little lighter. This is the second version of the theme, which I think is the one which made it into the demo:

This wasn’t too bad, at least for a while. But then I started thinking about it again, and a few things stood out which needed changing.

I especially started thinking about the percussion. So far, the percussion was extremely simple – literally a kick drum and a tambourine. It didn’t really add much flavour to the theme at all. So I replaced it with a more sophisticated percussion loop, which also worked quite well with the 6/8 timing.

In addition, the theme was a little too slow and meandering for an exploration setting. Sure, it worked well for the grand, epic feel of the very first composition, but not anymore. So I ramped up the tempo a notch as well. I also extended the theme and changed the loop points to avoid having too many “slow sections”, and this helped maintain the faster pace throughout.

But that wasn’t all. I also started to dislike the flute.

flute-triggered

No, wait, that’s not what I meant.

What I mean is that the flute sounded okay here on the main melody, but it had to span a wide range of notes – specifically, it had to go up an octave after the intro part, and Melody Assistant’s basic flute sound didn’t really cope well with that. I tried a few other flutes and whistles from both Melody Assistant and some free soundfonts, but none of them really cut it for me.

So what did I do? I changed tactics entirely – I gave up on the flute entirely and used an oboe instead, which sounded much nicer overall. Here’s the (probably) finished product:

I don’t know how much further development is going to happen to this piece – at the moment I’m pretty happy with it, but then again, things could change. Even so, it’s always satisfying to finish a piece and be able to listen to it in-game.

(Disclaimer: No flutes were harmed in the making of this soundtrack.)

Categories
Ambience Gamedev Grievances

Gamedev Grievances #5: Music – Prison Escape

As an indie developer working solo on Ambience, coding is only half the battle. I also have to look after sprites, sounds, music, story, and a whole host of other things that make the game nice to play. As I’ve mentioned in previous posts, I’ve been using various incarnations of GameMaker for about 10 years now – but I’ve also been a casual music composer for about that long as well.

The software I’m using to compose the Ambience soundtrack is called Melody Assistant. It’s fairly old software now and hasn’t been updated in quite a while, and is probably a bit underwhelming when compared with many of the more professional programs. However, it still works pretty well for most things I need it for, including support for soundfonts, special effects, and even karaoke. And, given I’ve been using it for about a decade, I’ve become pretty familiar with its user interface.

A screenshot of the Melody Assistant UI.
A screenshot of the Melody Assistant UI.

So as a change of pace, I decided this week I’d talk a little about my compositions, and specifically one piece I’ve been reworking lately: the prison escape theme.

Adjectives

Before I compose something, I usually think about what words come to mind when I think of that place, and make a composition accordingly. For example, dark prison corridors generates words like “dark”, “mysterious”, “foreboding”, and plenty of other adjectives like it. So you’d expect a theme for a dark prison corridor to have that feel.

However, in the context of Ambience, you’re not just sneaking through the prison corridors – you’re desperately fleeing, with prison guards hot on your heels. That scenario changes up the list of words quite significantly. “Fast”, “desperate”, “heart pounding…” And so on.

The theme I ended up composing was a mix of the two. It was fast-paced, but still had that dark, pounding feel to it. The piece still needed to match the fact that your character is sprinting down a dark corridor, rather than through a forest or across a battlefield.

Audio Normalization

Another problem I encountered with this piece, and quite a few others too, was problems with the dynamics and overall sound of the piece. Often I’d compose a piece and get it sounding the way I wanted, but then I’d export to MP3 and suddenly it’d sound a lot quieter for some reason. It turned out this was a result of Melody Assistant normalizing the audio during the export process, which also made it sound quieter – something that I couldn’t fix just by amplifying the audio in Audacity without clipping the audio. However, when I turned off the Normalize option, it messed up the dynamics of the specific piece – for example, it would make quiet sections of a piece too loud and aggressive, and even deteriorated the quality of the percussion.

Here’s a short section of the final boss theme that illustrates this quite well. First, the normalized export – which is way too quiet. (Maybe turn up your speakers a little if you need to.)

And here’s the non-normalized export. Note the low quality of the percussion, especially the fluctuating volume and the “wish-wash” sound of the snare drum towards the end. (Turn down the speakers!)

In the end, I tired of battling with Melody Assistant’s MP3 export function, and just used Audacity to record the audio directly from Melody Assistant as it played the piece. Then I trimmed the audio and exported it from Audacity.

Here’s the result of the direct recording. The percussion sounds much clearer now compared to the non-normalized export, and the changing dynamics elsewhere in the piece also came out nicely. For the time being, I’m happy with this result.

 

But nothing’s ever perfect!

I’m a bit of a perfectionist sometimes – which really comes out when I’m composing. If something doesn’t quite sound right, or doesn’t quite have the right feel, it needs to change. That means my music usually undergoes several revisions before it even comes close to the final version, and the prison theme is no exception.

The “old” version of the prison theme, which appears in the Ambience demo, sounds like this:

However, as time went on and I started hearing that theme again and again, I realized I wasn’t totally happy with it. It wasn’t quite enough of those descriptive words I’d thought of: it needed to be darker, more desperate, more fast-paced. The “normalized”, quiet audio from Melody Assistant didn’t help, either – although the sample here was a direct recording, which still sounded too quiet and subdued.

So I made a few changes. First of all, I switched around  the instrumentation a bit to make certain sections sound better. In particular, I changed the bass to a louder, fingered bass, which sounds a lot darker and captures the prison environment much better. I think it sounds much better than the quieter, acoustic bass I used previously.

In terms of dynamics, I made the piano theme at the beginning of the piece louder and more prominent, just to give it more of that “awesome piano solo” feel. However, I kept the piano soft during the rest of the theme. I also increased the tempo slightly: just enough to give it that more urgent feel, but not too much.

Meanwhile in the percussion, I changed the snare drum to make it sound a little heavier, again to match the “prison escape” feel. I also tried a new strategy: turning the whole percussion stave down a few semitones, to make the percussion sound a little deeper and not quite as tinny. It actually worked much better than I thought it would.

In the end, here’s what it sounded like on the direct recording:

Again, I’m fairly happy with this result. For now.